miseria | Fecha: Martes, 05-Ago-2014, 9:45 PM | Mensaje # 1 |
Neófito
Grupo: Usuarios
Mensajes: 1
Reputación: 0
Estatus: Offline
| Alebrije ahora parece que el script funciona, aunque de las funciones que saque de quadropolis hay cosas que no entiendo por ejemplo @@(getdeaths) No se que son esas arrobas, parecen punteros como en C.
¿Alguien sabe donde puedo encontrar un buen tutorial de CubeScript?
Pego el script y tambien lo mando como adjunto.
// *** ZOOM con la ruedita del mouse *** // Se activa y se desactiva cob SPACE
Mis_zoom_0
// Aca ponés la tecla que quieras usar para el zoom (SPACE queda mas comodo que Z) //bind "MOUSE9" [ togglezoom; Mis_sniper ] bind "SPACE" [ togglezoom; Mis_sniper ] //bind "Z" [ togglezoom; Mis_sniper ]
alias Mis_sniper [ sound 11; if (= $Mis_flg 0) [ Mis_zoom_1 ] [ Mis_zoom_0 ]; ]
// Aca va la configuracion inicial alias Mis_zoom_0 [ zoomfov 60; zoominvel 250; zoomoutvel 100; crosshairsize 20; hudgun 1; bind MOUSE3 "weapon" bind MOUSE4 [ universaldelta 1 ] bind MOUSE5 [ universaldelta -1 ] Mis_flg = 0; ]
alias Mis_zoom_1 [ setweapon RI bind "MOUSE4" [ Mis_zoom_in ]; bind "MOUSE5" [ Mis_zoom_out ]; bind "MOUSE3" [ attack ]; zoominvel 0; zoomoutvel 0; crosshairsize 25; hudgun 0; Mis_flg = 1; ]
alias Mis_zoom_in [ if (&& (> $zoomfov 10) $zoom) [ zoomfov (- $zoomfov 10); togglezoom; togglezoom; if (< crosshairsize 50) [crosshairsize (+ $crosshairsize 5)] [] ] []; ]
alias Mis_zoom_out [ if (&& (< $zoomfov 60) $zoom) [ zoomfov (+ $zoomfov 10); togglezoom; togglezoom; if (> $crosshairsize 15) [crosshairsize (- $crosshairsize 5)] [] ] [];
]
// Funciones extraidas de eventhandles.cfg por RaZgRiZ // http://quadropolis.us/node/3362 onclientdeath = [ _cd_tmp = $arg1 if (!=s $_cd_tmp "") [ sleep 5 [ if (&& [> (getdeaths) @@(getdeaths)] [= (getfrags) @@(getfrags)]) [_cd_tmp] onclientdeath $_cd_tmp ] ] ]
nuevojuego = [ _cd_tmp = $arg1 if (!=s $_cd_tmp "") [ sleep 5 [ if (> (timeremaining) 599) [_cd_tmp] [] nuevojuego $_cd_tmp ] ] ]
onclientsuicide = [ _cs_tmp = $arg1 if (!=s $_cs_tmp "") [ sleep 5 [ if (&& [> (getdeaths) @@(getdeaths)] [< (getfrags) @@(getfrags)]) [_cs_tmp] onclientsuicide $_cs_tmp ] ] ]
onteamswitch = [ _ts_tmp = $arg1 if (!=s $_ts_tmp "") [ sleep 5 [ if (&& [m_teammode (getmode)] [!=s (getteam) @@(getteam)] [=s (mapname) @@(mapname)]) [_ts_tmp] onteamswitch $_ts_tmp ] ] ]
onclientdeath [ Mis_zoom_0 ] nuevojuego [ Mis_zoom_0 ] onclientsuicide [ Mis_zoom_0 ] onteamswitch [ Mis_zoom_0 ]
|
|
| |
Alebrije | Fecha: Miércoles, 06-Ago-2014, 10:56 AM | Mensaje # 2 |
Maestro
Grupo: Miembros
Mensajes: 134
Reputación: 2
Estatus: Offline
| Lo de @ no son punteros y lo puedes ver en la documentación del Sauer, en tu archivo ../sauerbraten/docs/config.html en la seccion de cube script:
An alternative to $x is @x, which uses an alias as a macro. The difference is that @x can be substituted inside [] forms before they have ever been evaluated (at parse time), which makes them useful for composing strings or creating code on the fly. The @x form will be substituted using the value of x at the time the enclosing [] is evaluated. You can add more @ prefixes to move up more levels of []s, so @@x will move up two levels of []s and so on. Example: x = 0; if $cond [x = 1; [x = 2; echo @@x]] will echo 0, since it uses the value of x at two levels up.
El 'evento' de nuevojuego lo puedes cambiar por: mapstart = [Mis_zoom_0]
Otra cosa, porque no simplemente con presionar de nuevo SPACE se active y/o desactive tu script, ¿porque tienes que esperar a que te maten, suicides, cambies de equipo o empiece un nuevo juego para hacerlo? (¿o así es como lo quieres?)
Agregado (06-Ago-2014, 10:56 AM) ---------------------------------------------
Tutorial de Cube Script solo encontre este: Scripting Guide que supongo que ya lo has visto todo.
Si quieres conocer todos los comandos y funciones que tiene el Sauerbraten (desde Linux), usando la terminal ve al directorio ../sauerbraten/src/engine y escribes lo siguiente:
grep -n "COMMAND" *.cpp
y te dara una lista de todos los comandos, el numero de línea (-n opcional) y el archivo donde se encuentran para que así puedas buscarlos en el codigo fuente y saber que hace cada uno de ellos. Tambien puedes ir al directorio ../sauerbraten/src/fpsgame para hacer algo similar.
Si quieres conocer todas las variables que puedes usar en el Sauer, puedes hacer algo similar en ambos directorios con el mismo comando pero poniendo entre comillas "VAR" de la siguiente manera.
grep -n "VAR" *.cpp
En algunos archivos de cabecera (los *.h) también hay variables.
Mensaje editado por Alebrije - Miércoles, 06-Ago-2014, 10:58 AM |
|
| |