Pokéxperto
018
 
PxP PxP PxP PxP     PxP   PxP     PxP     PxP     PxPPxP     PxP

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:
  1. Inicio
  2. Programas
  3. Hubertware
  4. NetBattle
  5. Tools
  6. 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

 

Riolu
C

Home