Blogia
Rol

Scripts Basicos.

NOTA: Los ____ al inicio de las líneas de los scripts no son parte y han sido colocados para sangrar únicamente.

Colocaremos una serie de scripts básicos para ver las palabras reservadas y la estructura, pues eso básica...

Empecemos por 3 muy comunes.

Cerrar las puertas al cabo de un rato abierta.
Lo mismo pero además echar la llave.
Sentarse en banco o similar.

Las dos primeras, las de cerrar la puerta, el script creado hay que ponerlo en el evento OnOpen, para que cuando alguien abra la puerta pase lo ahí expuesto.

El del banco debe colocarse en el evento OnUsed, para que se lance cuando alguien cliquee sobre el.

Código:

//script: cierrapuertallav
void main()
{
//Espera 10 segundos, cierra la puerta, echa la llave a la puerta.
DelayCommand(10.0, ActionCloseDoor (OBJECT_SELF));
DelayCommand(10.0, ActionDoCommand (SetLocked (OBJECT_SELF, TRUE)));

}


Código:

//script: cierrapuerta
void main()
{
____DelayCommand(10.0, ActionCloseDoor (OBJECT_SELF));
}


Código:

//script: sillagremio
void main()
{
____ object oJugador = GetLastUsedBy(); //Jugador el ultimo que cliqueo
____ object oSilla = OBJECT_SELF; //Silla sobre la que se ha cliqueado
____ //Si es un objetivo valido y no hay nadie sentado.
____ if (GetIsObjectValid(GetSittingCreature(oSilla)) == FALSE)
____ {
________ AssignCommand(oJugador,ActionSit(oSilla));//Sentarse.
____ }
}


Txibi.

Volver arriba


Staff
DM

Registrado: 09 Jul 2004
Mensajes: 408

Publicado: Mie Jul 14, 2004 9:15 pm Asunto:

--------------------------------------------------------------------------------

Ligera modificación

Esto solia hacerlo en mi época de programador para ahorrar código , aunque se complica bastanta y luego no es facil de entender.

Código:


//script: sillagremio
void main()
{
____ //Si es un objetivo valido y no hay nadie sentado.
____ if (GetIsObjectValid(GetSittingCreature(oSilla)) == FALSE)
____ AssignCommand(GetLastUsedBy(),ActionSit(OBJECT_SELF));//Sentarse.
}


Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1402
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mie Jul 14, 2004 9:21 pm Asunto: Saludos.

--------------------------------------------------------------------------------

Saludos.

Esta perfecto, pero en ocasiones la orden "AsignCommand" se bloquea si su usa con "ActionSit" y sospecho que con cualquier acción directa... es un C un poco básico, así que siempre es mejor dejarlo muuuyy separado.

Ya te habrás dado cuenta de que tienes que declarar todas las variables por narices. En cualquier caso son todas variables locales, al finalizar el script se destruyen (creo) con lo cual un script, salvo que se use muchas veces no da lag aunque tenga muchas variables.

Txibi.

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1402
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mie Jul 14, 2004 9:24 pm Asunto: Saludos.

--------------------------------------------------------------------------------

Saludos.

Las palabras reservadas estan en el aurora a la derecha en guiones, de azul.

Las constantes en mayusculas.

A ver si encuentro algo y posteo.

Txibi.

Volver arriba


Staff
DM

Registrado: 09 Jul 2004
Mensajes: 408

Publicado: Mie Jul 14, 2004 9:37 pm Asunto:

--------------------------------------------------------------------------------

En cualquier caso siempre es bueno estructurar, queda mas claro y a las dos semanas puedes entender lo que hicistes

Volver arriba

0 comentarios