Bienvenido(a) Visitante | RSS
[GLX] Clan
[GLX] Clan [GLX] Clan

[ Nuevos mensajes · Participantes · Reglas del foro · Búscar · RSS ]
  • Página 1 de 1
  • 1
Foro » Publico » Sauerbraten (consejos, configuración, solución de problemas) » Como saber el fin / inicio de una partida (funciones (o eventos) intermission y mapstart)
Como saber el fin / inicio de una partida
AlebrijeFecha: Jueves, 31-Jul-2014, 11:39 AM | Mensaje # 1
Maestro
Grupo: Miembros
Mensajes: 134
Reputación: 2
Estatus: Offline

Muchas veces queremos hacer un script y necesitamos que al iniciar o finalizar una partida se lleve a cabo alguna 'accion' como inicializar variables a un valor predeterminado, ejecutar alguna función o realizar alguna operación pero, no sabemos cuando finaliza o inicia una partida (en cube script). Bueno, la solución a ese problema es usando los 'eventos' intermission y mapstart. Estos 'eventos' (o funciones) están en el cliente de Sauerbraten original y también deben existir en cualquier clientmod.

intermission = [ ]
Este nos sirve para saber cuando ha finalizado una partida. Lo que debemos colocar entre los corchetes son los comandos y/o funciones que deben ejecutarse al terminar una partida.
Por ejemplo, podemos 'automatizar' un mensaje al finalizar una partida de la siguiente manera:

intermission = [say "mondrigos feos!!"]

Esta linea la debemos agregar de preferencia a nuestro autoexec.cfg pero, pueden colocarla en el archivo donde tengan su script, siempre y cuando solo exista una sola definición de dicha función.

mapstart = [ ]
Este 'evento' (o función) nos sirve para saber cuando a iniciado una partida. Al igual que con intermission, lo que debemos colocar entre los corchetes son los comandos y/o funciones que deseamos que se ejecuten al iniciar una partida.
Por ejemplo, hagamos que al iniciar una partida digamos también algún mensaje en el chat.

mapstart = [say "ha inicado un nueva partida!!" ]

Al igual que con intermission, esta linea la vamos agregar a nuestro autoexec.cfg o algun otro archivo cfg pero, solo debe existir una solo definición de dicha función (o evento).

Como verán son ejemplos sencillos pero, pueden usarse acciones más complejas que solo usarlo para mensajes de texto.

Estas funciones (o eventos) no funcionan (en el chat) como los demás comandos del Sauer; es decir, si intentan buscarlas (con el chat y /) como lo harían normalmente no les aparecerán a menos que ya las tengan definidas en su autoexec.cfg. Si existen (estan definidas en el autoexec.cfg) se ejecuta su contenido sino, simplemente no pasa absolutamente nada. Es como la variable gamehud de famoso script para las estadisticas, si ustedes tuvieran una instalacion limpia de su Sauer y escriben /game + [TAB] les dara las variables que comiencen con game pero no les aparecera el gamehud hasta que 'instalen' el script (en donde se definira la variable gamehud).

Hay otra variable para el hud pero en modo edit, es edithud.

Si quieren ver donde y como estan definidas dichas variables en el código fuente de su sauer

edithud: /src/engine/rendergl.cpp [linea 2498]
gamehud : /src/engine/rendergl.cpp [linea 2514]
intermission: /src/fpsgame/fps.cpp [linea 462]
mapstart: /src/fpsgame/fps.cpp [linea 592]


 
Foro » Publico » Sauerbraten (consejos, configuración, solución de problemas) » Como saber el fin / inicio de una partida (funciones (o eventos) intermission y mapstart)
  • Página 1 de 1
  • 1
Búscar: