|
Script FAQ
Aviso: Este FAQ se halla en proceso de elaboración, no se encuentra completo.
Autor: M Dragon.
Introducción:
- ¿Qué es un script?
- Script en inglés significa "guión". Un script es un conjunto de códigos, comandos, etc. que en su conjunto forman una serie de instrucciones a seguir para el funcionamiento de un programa.
- Dentro del NetBattle un script es la columna vertebral de un server, ya que este controla su funcionamiento en un rango muy alto. Un server sin un buen script definitivamente no vale la pena.
- ¿Cómo creo un server?
- Es muy sencillo. Sigue el siguiente camino:
- Inicio
- Programas
- Hubertware
- NetBattle
- Tools
- Run a Server
- Ahora sólo debes completar algunos datos como el nombre y la descripción de tu server y estará listo.
- ¿Dónde se crea/coloca el script?
- Los scripts que hagas (o que te pasen o encuentres) deben ser colocados en la Ventana del Script (Script Window). En la ventada del server entra a: Server > Script Window.
- ¿De qué forma funcionan?
- Los Scripts se van ejecutando línea por línea a medida que ciertas acciones o eventos (Events) se van realizando.
- Los bloques básicos de un script son los Eventos. Estos separan distintos comandos (acciones a ejecutarse) dependiendo del evento que debe ocurrir para que se activen. Para mayor información lee el Script FAQ.
Primera Parte - Eventos:
Los bloques básicos del código del script están separados en Eventos. Esos bloques se ejecutarán cuando se realice la acción indicada en el Evento. Para que el código se active ANTES de que el evento ocurra, coloca un "-" antes del nombre del evento. Para que se active DESPUÉS, coloca un "+".
Esta es la forma básica de escribirlo:
Código de Evento
Event {-|+}[NombredelEvento]
[Código]
EndEvent
- [NombredelEvento]
- Listado de entradas válidas:
| |
| NombredelEvento |
Descripción |
| ServerStartup |
Se activa al abrir el server. |
| NewMessage |
Se activa cuando llega un mensaje a la casilla de texto del server. |
| ChatMessage |
Se activa cuando un mensaje de chat es recibido. |
| PlayerSignOn |
Se activa cuando un jugador entra al server. |
| PlayerSignOff |
Se activa cuando un jugador sale del server. |
| ChallengeIssued |
Se activa cuando se pide una batalla. |
| BattleBegin |
Se activa cuando se empieza una batalla. |
| BattleOver |
Se activa cuando termina una batalla. |
| PlayerKick |
Se activa cuando un jugador es pateado (Kick). |
| PlayerBan |
Se activa cuando un jugador es baneado (Ban). |
| PlayerAway |
Se activa cuando un jugador cambia su estado a NoDisponible (Away). |
| TeamChange |
Se activa cuando un jugador cambia sus Pokémon. |
| Timer |
Éste es un evento distinto a todos los que habías visto antes. Este evento no es activado por una acción como los demás, pero se activa automáticamente en un intervalo de tiempo determinado. Esta es la forma de hacer un evento temporizador.
Código de Evento Timer
Event Timer [Intervalo]
[Código]
EndEvent
Este evento omite el + o el -, pero agrega un argumento: el intervalo del temporizador. El intervalo puede ser cualquier número entero entre 1 (1 segundo) y 99999 (99999 segundos).
|
| NombredelEvento |
Descripción |
| |
- Ejemplo:
- En este ejemplo, el código escrito en [Código] se activará cada vez que un jugador entre al server, y se ejecutará luego de que el proceso de ingreso termine:
Ejemplo de Evento
Event +PlayerSignOn
[Código]
EndEvent
- Ahora, ¿qué es lo que podemos poner en [Código]? Veamos:
Segunda Parte - Comandos:
Los comandos completan varias tareas por sí mismos cuando se ejecutan. Sin embargo, la mayoría de los Comandos requieren cierto tipo de información adicional, llamada Argumentos. En la siguiente tabla se muestra el comando con su(s) respectivo(s) argumento(s) (si lo tienen) y su descripción.
- Símbolos:
-
- # Argumento con valor numérico.
- $ Argumento con valor texto.
- ! Argumento con valor numérico y/o texto.
- @ Constante.
- Indicaciones:
- Los Argumentos de un Comando van separados por comas.
- El texto, como valor de un argumento, siempre debe estar en comillas.
- Comandos:
- Los dos primeros comandos se envían a la pantalla de texto del server.
| |
| Comando |
Argumentos |
Descripción |
| /? |
!Val |
Envía el valor de !Val a la casilla de texto del Server (solo el dueño del server lo puede ver). |
| /Clear |
|
Borra todo el texto en la casilla de texto del Server. |
| /SendPM |
#NºJugador, $Mensaje |
Envía el texto $Mensaje sólo al jugador con el número #NºJugador. |
| /SendAll |
$Mensaje |
Envía el texto $Mensaje a todos los jugadores conectados. |
| /Kick |
#NºJugador |
Desconecta al jugador #NºJugador. |
| /Ban |
#NºJugador |
Banea por IP del jugador #NºJugador. |
| /SIDBan |
#NºJugador |
Banea la Identificación del jugador #NºJugador. |
| /TempBan |
#NºJugador |
Banea al jugador #NºJugador durante 15 minutos. Durante ese tiempo, el ban no se puede quitar. |
| /Run |
$Dirección |
Abre el programa ubicado en $Dirección. |
| /SaveValue |
$Key, !Val |
Guarda un valor en el Registro de Windows. Las "Keys" son guardadas en el directorio SaveSetting del Visual Basic en /NetBattle/Script Values/[$Key] (Key corresponde al nombre de la entrada de registro). |
| /SetPlayerInfo |
#NºJugador, @Info, !NuevoValor |
Establece o cambia la información indicada de un Jugador como !NuevoValor. Solo algunos datos pueden ser cambiados. La lista de los valores validos para @Info son:
- AUTH
- Autoridad (0 = Usuario, 1 = Mod, 2 = Admin).
- BWTH
- Peleando con... (0 si no está en batalla).
- SPED
- Velocidad de Conexión.
- HIDE
- Equipo Oculto (0 = Oculto, 1 = Visible).
- WINS
- Victorias.
- LOSE
- Derrotas.
- TIES
- Empates.
- DISC
- Desconexiones en batalla.
- NAME
- Nombre.
- IPAD
- Dirección IP.
- PSID
- Station ID.
- DNSA
- Dirección DNS.
- EXTR
- Información Extra.
- VERS
- Versión de NetBattle.
|
| /Set |
!Var, !Val |
Las variables son creadas con el comando /Set. Este comando tiene 2 argumentos: !var y !val. El primer argumento es especial en el hecho de que no puede ser un simple valor numérico o de texto, debe ser una variable. Si la variable no existe aún, el comando /Set la creará. De cualquier forma, el valor de !val será guardado en esa variable. Este argumento puede ser omitido, en cuyo caso tomará el valor 0 ó " ", dependiendo del tipo de variable.
Hay 2 tipos de variables: De Texto y Numéricas. Cuando te estés refiriendo a una variable de texto, coloca un "$" antes de su nombre. Para una variable numérica, coloca un "#" antes de su nombre. Los nombres de las variables sólo deben contener letras. Puedes observar las variables y sus respectivos valores en la lengüeta "Variables" en la Script Window.
Algunas veces se vuelve necesario tener una variable diferente para cada jugador conectado. Para hacer esto, puedes crear un Conjunto de Jugadores. Créalo con el comando /SetPA de esta forma:
Código /SetPA
/SetPA {#|$}NombreConjunto
Luego, puedes establecer las variables individuales con el comando /Set:
Código /Set
/Set #NombreConjunto(#NºJugador), #Valor
Cuando un jugador sale del server, la variable asignada a ese jugador es automáticamente borrada, y cuando un jugador entra al server, una nueva variable es creada automáticamente para ese jugador. Los valores para todos los jugadores pueden ser vistos en la ventana del script en la lengüeta "Player Arrays" (PA).
|
| /Unset |
!Var |
Borra la variable !Var. |
| /Inc |
#Var, #Cantidad |
Se le incrementa al valor de la variable #Var, el valor de #Cantidad. |
| /StopEvent |
|
Este comando detiene el curso del evento actual. El comando /StopEvent sólo es valido en algunos eventos. Esto funciona sólo si está en un evento menos, indicando que el evento se activa antes de que ocurra la acción. Cuando el /StopEvent se activa, la acción que activó el evento se cancela. |
| /Exit |
|
Cuando este comando es ejecutado, el script se detiene prematuramente y no se procesan más líneas. |
| Comando |
Argumentos |
Descripción |
| |
- Ejemplo:
- Ahora intentemos añadir un comando al ejemplo anterior. Este script se activará justo después de que un jugador entre al server, y le mandará al jugador que se conecte el segundo mensaje, y a todos los jugadores conectados el primer mensaje.
Ejemplo de Comando
Event +PlayerSignOn
/SendAll "¡Todos, ríanse del idiota que acaba de entrar!"
/SendPM #Source, "¡Bienvenido al Server!"
EndEvent
- Además de ser parte integral del script, los comandos también se pueden ocupar directamente en la casilla de texto del Server para ejecutar acciones inmediatas.
Revisado el 4 de julio de 2008 a las 21:26
|