You are on page 1of 32

Tutorial de Scripting para CS

DarkShade darkshade@counter-adiction.com

Counter-AdictioN http://www.counter-adiction.com

1. Introduccion al Scripting y al Curso 1.1. 1.2. 1.3. 1.4. Los archivos .cfg Lista de Comandos Teclas que se pueden utilizar Tipos de Scripts

2. Scripts de Compra 3. Scripts Interruptor (on/off) 4. Scripts de Bucle (1, 2, 3, 4, 1, 2, ...) 5. Pulsar y Soltar 6. Meta-Bind 7. Personaliza el menu 'Controls' (kb_act.lst) 8. Menu de compra con la ruleta del raton 9. Menus en pantalla -. Creditos y CopyRight

Nota de la versin: Esta este manual esta pendiente de una revisin, revisa counter-adiction.com para una versin mas actualizada.

Introduccion al Scripting

Introduccin
Binvenidos al primer manual de Scripting para CS escrito en espaa y en castellano. Recomiendo a todo el mundo pero especialmente si no tienes idea de ninguna clase de programacion de scripts o de cualquier clase de programacion que se sigan los manuales en orden y haciendolos todos, ya que solo asi se conseguira avanzar de forma facil y progresiva. Si decides seguir con el curso vas a enfrentarte a continuacion con la leccion mas pesada, aburrida, larga, liosa, ... pero tambien con la mas importante. La primera leccion contiene la base del scripting, no tienes que aprendertela entera (ninguna te la tienes que aprender), pero tendras que tener muy en cuenta todo lo que pone en ella para que tus scripts funcionen sin problemas, a la vez que tiene varios apartados con los comandos y las teclas que podremos usar. Recomiendo leer esta hoja de un tiron y si no se entiende leerla varias veces. xD (parezco el puto profe del insti, 8-D) Lo unico que os quiero aconsejar desde aqui es que no os desanimeis en esta interesante opcion que nos ofrece CS. El scripting no es en absoluto dificil, pero al ser tan facil para realizar tareas complicadas necesitaremos tantas tareas faciles que a veces podemos perdernos. Intentare hacerlo lo mas claro posible aunque eso haga que se tenga que extender el texto un poco mas (y utilizaremos unas utilidades que nos vendran muy pero que muy bien, xD). Si algo no lo entiendes prueba y trastea por ahi, luego leelo otra y otra vez, y si no, pues mandame un email e intentare ayudar.

Que es un bind?
Bind es un comando de HL que asigna un comando a una tecla. De la misma forma podemos asignar alias a una tecla. Veamos un ejemplo de bind (sintaxis: bind tecla "comando/alias"): bind x "+attack" Si ponemos esto en un archivo o lo introducimos desde la consola, la tecla 'x' servira ahora para atacar (igual que el click del raton normalmente). De esta forma podemos asignar a una tecla cualquier comando o alias.

Que es un alias?
Un alias es el nombre que TU le das a un comando o a un grupo de comandos. Half-Life trata un alias como un comando mas del juego. Veamos un ejemplo de alias (fijate en la sintaxis: alias nombre "comandos"): alias losmejores "say Somos los mejores, -=|C&S|=- RuLz!!!!!" Escribiendo esto en la consola o poniendolo en un archivo .cfg creamos el nuevo comando de HL 'losmejores', que mostrara el mensaje de chat que le hemos

especificado al escribir el comando en la consola o, mas facil aun, haciendo un bind a una tecla lo ejecutaremos solo pulsando la tecla asignada. Quedaria asi: alias losmejores "say Somos los mejores, -=|C&S|=- RuLz!!!!!" bind x "losmejores" Ahora pulsando la tecla 'x' diremos ese mensaje por el chat del juego. Complicandolo un poco mas, podemos hacer un alias que contenga varios comandos. Veamos un tipico ejemplo de alias de compra (mas sintaxis: alias nombre "comando; comando2; comando3; ..."): alias MP5 "buy; menuselect 3; menuselect 1" bind m "MP5" Ahora al comienzo de cada ronda, en vez de abrir el menu Comprar (M), elegir sub-fusiles (3) y luego la MP5 (1), unicamente tendras que pulsar la 'm' para hacer este trabajo. Un poco mas dificil todavia, podemos poner alias dentro de otros alias: alias MP5 "buy; menuselect 3; menuselect 1" alias Chaleco "buy; menuselect 8; menuselect 1" alias Municion "buy; menuselect 6" alias Compra"MP5; Chaleco; Municion" bind n "Compra" Comprendes lo que hacen estos alias?. Por si acaso te lo explico: Tenemos el alias 'MP5' que como hemos visto nos compra una MP5 (B 3 1), el alias 'Chaleco' nos compra el Chaleco (B 8 1) y el alias 'Municion' nos compra balas primarias (B 6). Despues tenemos el alias 'Compra' que lo que hace es lanzar los tres alias, con lo que al escribir Compra compraremos la MP5, el Chaleco y la Municion, todo esto asignado a la letra 'n'. Si lo lees despacio seguro que no hay problema, sigamos.

Que es un script?
Un script es un grupo de alias y binds que estan programados para realizar juntos tareas demasiado complicadas que no podrian hacer por separado. Hay multitud de scripts que se pueden dividir en tipos segun lo que hacen y como lo hacen. Muchos scripts se pueden descargar de internet para diversos usos. Despues de este curso estaras preparado para comprender y modificar estos scripts e incluso para hacer los tuyos propios. Mas adelante veremos los tipos de scripts uno a uno y con detalle.

Que es la consola?
Cuando me refiero a la consola no digo que tengamos una Play Station en nuestro HL ni mucho menos. Como supongo que sabes me estoy refiriendo a la ventana que aparece en HL al pulsar por defecto la tecla (\), situada a la izquierda del n 1, ventana en la cual podemos introducir comandos igual que lo haciamos en MS-DOS.

Si por cualquier razon tu consola no aparece al pulsar esta tecla (esta activada por defecto), es que deberas introducir el modificador '-console' en la linea de comandos que lanza tu HL. Si no sabes como hacerlo simplemente sigue leyendo.

La linea de comandos
La linea de comandos es el lugar desde donde nuestro querido Windows lanza Counter-Strike (bueno, lanza HL con modificadores para que se ponga en modo CS). Si abrimos las propiedades de nuestro acceso directo a CS y vamos a la pestaa 'Acceso directo', encontraremos la linea de comandos en el campo llamado 'Destino'. Lo que deberia aparecer aqui seria lo siguiente: (si tu linea no es igual, posiblemente deberias cambiarlo.) C:\Half-Life\hl.exe -console -game cstrike -noipx Los modificadores que vemos son '-console', para que se active la consola; 'game cstrike', para que arranque en modo Counter-Strike, en vez de Half-Life normal; '-noipx', que arranca sin soporte para IPX, lo que hace mas rapida nuestra conexion con el servidor. Aqui acaba esta primera leccion, espero que la tengas bien clara porque esto es la base de todo lo que vamos a ver a partir de ahora. Si es asi, pasemos a la siguiente leccion que es puramente teorica y aburrida. XD

Los archivos .cfg


config.cfg
Cada MOD que instalemos sobre nuestro HL va a guardar su propia configuracion en uno de estos archivos que situara en su carpeta. En nuestro caso este archivo esta situado en 'Half-Life\cstrike' y aqui debemos colocar nuestros .cfg personalizados. Configuracion de los controles, el raton, la pantalla, el sonido, el render, ... todo esta guardado en este archivo, por tanto lo siguiente que deberias hacer es una copia de este y guardarlo en un lugar seguro, igual que el autoexec.cfg que ahora veremos. Es recomendable no guardar ningun alias ni nada en este archivo, a parte de por el riesgo de 'cagarla' que esto conllevaria, porque cada vez que instalemos algo de CS nos va a borrar este archivo. Por este motivo es mejor guardarlo cada vez que lo modifiquemos en lugar seguro. La unica utilidad que le vamos a dar a este archivo va a ser la de incluir ahi nuestros binds, ya que el juego guarda ahi todos los que tiene (uno por cada tecla que sirve para algo) y asi podremos ver las teclas que nos quedan libres y mantendremos nuestros archivos ordenados y limpios.

autoexec.cfg
Este sera el archivo sobre el que trabajemos de momento. Es el unico archivo .cfg que se ejecuta automaticamente, ademas del config.cfg y posiblemente ni siquiera lo tengas en tu ordenador, ya que el CS no lo crea. Esta situado en el mismo directorio que el anterior, si no lo tienes ahi es que no lo tienes y deberas crearlo. En el vamos a guardar todos los alias que creemos aqui (recuerda, de forma ordenada y limpia si no quieres luego volverte loco para encontrar un error). En caso de no tener este archivo asegurate de que lo creas correctamente: Abre NotePad (por ejemplo) y guarda el archivo vacio en el directorio correspondiente pero asegurandote que esta marcada la opcion 'Todos los archivos (*.*)' y de introducir el nombre completo 'autoexec.cfg'. Despues ya esta preparado para meter material en el. NOTA: Hay gente que le da fallos al crear este archivo, si es tu caso el 'truco' es copiar y pegar el config.cfg y renombrarlo a autoexec.cfg, entonces funcionara seguro.

Otros archivos .cfg


Si nuestros scripts empiezan a tener una longitud considerable no es recomendable (y puede darnos problemas) el meter todos los alias en el mismo archivo. De forma que tendremos que ordenarlos en diferentes archivos para mantener un tamao razonable en cada .cfg El problema, como ya te habras dado cuenta, ya lo hemos comentado: Solo los dos archivos que hemos visto se ejecutan por si solos. La solucion es bien sencilla: la orden 'exec': exec nuevoarchivo.cfg Aadiendo estas sentencias al autoexec.cfg cargara los archivos secundarios que hayamos creado y todo quedara limpio y ordenado (que pesado!!).

Los Comandos de HL/CS


Aqui tenemos una completisima lista de los comandos disponibles para HL y CS. Posiblemente no esten todos, pero con esto tenemos suficiente para poder configurar nuestro CS punto a punto y para hacer scripts de mucha calidad. Que los disfruteis.

Comando / Variable +attack +attack2 +back

Permiso Categoria cliente cliente cliente jugador jugador jugador

Descripcion Ataque primario Ataque secundario / accion especial (zoom, silenciador, etc. ) Retroceder

+duck +forward +jump +klook +left +lookdown +lookup +mlook +movedown +moveleft +moveright +moveup +reload +right +showscores

cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente

jugador jugador jugador jugador jugador jugador jugador raton jugador jugador jugador jugador jugador jugador jugador

Agacharse Avanzar Saltar Activa el teclado para mirar Movimiento lateral izquierdo Mirar abajo Mirar arriba Activa el raton para mirar Moverse hacia abajo / bajar una escalera, nadar hacia abajo Movimiento lateral Izquierdo Movimiento lateral Derecho Moverse hacia arriba / subir una escalera, nadar hacia arriba Recarga el arma activa Movimiento lateral Derecho Muestra resultados y pings de los jugadores Fuerza al jugador a andar, si 'always run' (siempre correr) esta activado y viceversa. Modificador de avance. Cuando esta tecla esta pulsada usa las flechas de direccion para moverte. Usa un item (un boton, una ametralladora, un jeep, ...) Cambia el color de la CrossHair (punto de mira) Agrupa comandos en un alias para hacer varias acciones en un solo comando. Activa/desacriva la opcion para subir texturas y modelos propios al servidor Establece la distancia a la cual desaparece el sonido de ambiente. Establece el nivel del sonido ambiente Graba una demo y la aade al archivo de demo situado en 'HalfLife/Valve/demo.dem'

+speed

cliente

jugador

+strafe

cliente

jugador

+use adjust_crosshair alias "cmd1; cmd2" allowupload ambient_fade 100 ambient_level 0.300 appenddemo

cliente cliente cliente cliente cliente cliente cliente

jugador jugador jugador up/download audio audio demo

bind bottomcolor 6 brightness 1 buy buyequip buyammo1 buyammo2 cancelselect changeteam

cliente cliente cliente cliente cliente cliente cliente cliente cliente

jugador jugador video jugador jugador jugador jugador jugador jugador

Combina una tecla con un comando/alias Establece el color de fondo del modelo de jugador Activa la reduccion de luz. Cuanto mas alto es el valor mas luz. Abre el menu Comprar Abre el menu Comprar Equipamiento Compra un cargador de municion primaria Compra un cargador de municion de pistola Cancela la seleccion Muestra el menu de cambio de equipo Activa el descargar mapas, modelos y calcamonias del servidor cuando conectamos. 1 es activado, 0 desactivado. Activa el subir mapas, modelos y calcamonias al servidor cuando conectamos. 1 es activado, 0 desactivado. Establece la velocidad a la que las teclas de direccion cambian el angulo de vista. Establece la velocidad de retroceso del jugador. Puede estar como maximo la que tenga marcada el servidor. Establece la cantidad de veces que la vista se mueve cuando el jugador esta corriendo. Establece la frecuencia a la que la vista se mueve cuando el jugador esta corriendo. Establece la cantidad que la vista se mueve cuando el jugador esta corriendo. Activa la descarga de modelos y calcamonias durante el juego. 1 es activado, 0 desactivado. Establece la velocidad de avance de un jugador. Puede estar como maximo a la velocidad que el server tenga marcada. Activa el movimiento estimado del avance de un jugador.

cl_allowdownload 0

cliente

up/download

cl_allwupload 0

cliente

up/download

cl_anglespeedkey 0.670 cl_backspeed 400

cliente

jugador

cliente

jugador

cl_bob 0.010

cliente

jugador

cl_bobcycle 0.800

cliente

jugador

cl_bobup 0.500

cliente

jugador

cl_download_ingame cliente 0

up/download

cl_forwardspeed 400 cliente

jugador

cl_gaitestimation 1

cliente

jugador

cl_gg 0 cl_himodels cl_messages cl_movespeedkey 0.300 cl_nopred 0 cl_pitchdown cl_pitchspeed 225 cl_pitchup

cliente cliente cliente cliente cliente cliente cliente cliente

jugador jugador jugador jugador jugador jugador jugador jugador

Activa el modo de medida. 1 es activado, 0 desactivado. Activa modelos de jugador de alta calidad. 1 es activado, 0 desactivado. Muestra los mensajes del servidor. Establece la velocidad de movimiento usando el teclado. Activa la prediccion del cliente. 1 es activado, 0 desactivado. Establece el angulo maximo para mirar abajo. Por defecto es 89 Establece la velocidad a la que cambia el angulo. Establece el angulo maximo para mirar arriba. Por defecto es 89 Muestra los FPS (Frames Por Segundo). Por defecto es 0 (desactivado). Mejor que netgraph para ahorrar FPS. Activa la vista del estado de los paquetes de red. 1 es activado, 0 desactivado. Establece el numero de servidores en la lista. Activa los modelos solidos de jugador. 1 es activado, 0 desactivado. Establece la velocidad del jugador cuando trepa. Establece la distancia de bajo el agua. Establece la velocidad de giro. Como maximo puede estar en el maximo que tenga el servidor. Limpia la pantalla de la consola. Se puede usar en conjuncion con un comando. Lista todos los comandos de consola. Si pones 'cmdlist a' lista los que empiezan por a. Si pones 'cmdlist log archivolog' escribe la lista en c:\archivolog Conecta a un servidor con la IP especificada. Lista las variables de la consola. 'cvar log archivovar' escribe la lista a c:\archivovar

cl_showfps 1

cliente

jugador

cl_shownet 0

cliente

jugador

cl_slist 10 cl_solid_jugadors 1 cl_upspeed 320 cl_waterdist 4 cl_yawspeed 210 clear cmd

cliente cliente cliente cliente cliente cliente cliente

jugador jugador jugador jugador jugador jugador jugador

cmdlist

cliente/ servidor

todos

connect

cliente cliente/ servidor

jugador

cvarlist

todos

developer 0 disconnect drawradar drop

Activa/Desactiva los mensajes de autores desarolladores depuracion en la consola. 1 activado, 0 de MODs desactivado. cliente cliente cliente jugador jugador jugador Desconecta un jugador del servidor. Muestra el radar. 'hideradar' lo oculta. Suelta lo que tengas en tus manos en ese momento. Muestra un texto en la pantalla. Util para informar al jugador de lo que nuestro script o .cfg esta haciendo. Activa la consola. Actua como la tecla ocultando la consola y cancelando selecciones. Ejecuta un script o archivo .cfg. Cierra el juego o el servidor dedicado sin confirmacion. Simula lag. Cuanto mayor sea el numero mas lag. Simula paquetes perdidos. Cuanto mayor sea el numero mas paquetes perdidos. Fuerza el jugador a mirar al frente en el centro. Establece el framerate maximo para un juego LAN. Establece el framerate maximo para un juego por internet. Establece el framerate maximo para un juego singleplayer. Muestra informacion del usuario. Muestra informacion del servidor. cliente cliente cliente cliente cliente cliente video jugador jugador video video video Establece el nivel gamma. Pide la autentificacion en WON Muestra las ips de los servidores y el numero total de servidores. Establece el nivel minimo de alpha. Activa calidad visual. Grietas entre texturas se muestran cuando se pone a 1. Activa el render de los objetos visibles

echo "message" enableconsole escape exec exit fakelag 0

cliente cliente cliente cliente/ servidor cliente/ servidor cliente

jugador jugador jugador todos todos jugador

fakeloss 0

cliente

jugador

force_centerview fps_lan fps_modem fps_single fullinfo fullserverinfo gamma 3 getcertificate getsv gl_alphamin 0.250 gl_clear 0 gl_cull 1

cliente cliente cliente cliente

jugador jugador jugador jugador

unicamente. 1 activado, 0 desactivado. 0 ahorra FPS. gl_d3dflip 0 gl_dither 1 cliente cliente video video Activa el render inverso para D3D Activa el dithering. 1 activado, 0 desactivado. Lista los datos de la tarjeta de video. Vendedor, Renderizado, version y extensiones. Activa el parche especial para el punto de mira cuando usamos el 3DNow! 3Dfx MiniGL. 1 activado, 0 desactivado. Activa la vista de grietas entre texturas. 1 activado, 0 desactivado. 1 da mas calidad pero unos FPS mas lentos. Activa los abujeros de luz. 1 activado, 0 desactivado. Establece el tamao maximo de textura. Establece una luz uniforme sin sombras. 1 activado, 0 desactivado. Solo funciona en OpenGL. Activa el nivel maximo de brillo. 1 activado, 0 desactivado. Activa las texturas paletizadas. 1 activado, 0 desactivado. Establece la calidad de renderizado. Cuanto mas calidad menos velocidad. Establece la calidad de render para el jugador. cuanto mas calidad menos velocidad. Establece el offset de los poligonos. Pureba diferentes valores para solucionar errores de fluctuacion de texturas. Establece el valor de redondeo de texturas. Cuanto mas alto sea el numero mas rapido pero menos calidad. Activa el alisamiento de modelos. 1 activado, 0 desactivado. Activa la mezcla de graficos de sprites. 1 activado, 0 desactivado. Informa el numero de texels que se suben a la tarjeta de video. Activa un tipo de texel. 1 activado, 0 desactivado.

gl_dump

cliente

video

gl_flipmatrix 0

cliente

video

gl_keeptjunctions 0

cliente

video

gl_lightholes 0 gl_max_size 256 gl_monolights 0

cliente cliente cliente

video video video

gl_overbright 0 gl_palette_tex 0 gl_picmip 0

cliente cliente cliente

video video video

gl_playermip 0

cliente

video

gl_polyoffset 4

cliente

video

gl_round_down 3

cliente

video

gl_smoothmodels 0 gl_spriteblend 0 gl_texels gl_texsort 0

cliente cliente cliente cliente

video video video video

Establece el modo de render basado en la calidad mas baja pero mas rapida que la mas alta, que es mas lenta. gl_texturemode [tipo] cliente video [tipo] puede ser: gl_nearest_mipmap_nearest, gl_linear_mipmap_nearest (estos dos distribuyen el filtro bilineal) y gl_nearest_mipmap_linear, gl_linear_mipmap_linear (que distribuyen el filtro trilineal) Establece el tamao maximo del ZBuffer Activa la aceleracion del render de 3Dfx. 1 activado, 0 desactivado. Establece el tamao del r_netgraph Establece el valor maxmo que muestra r_netgraph Establece el valor basico de r_netgraph Establece el valor medio de r_netgraph Oculta la consola Oculta el radar Activa el sonido de alta calidad: 1=22kHz, 0=11kHz Activa el mostrar la ID del jugador.1 activado, 0 desactivado. Activa el cambio rapido de arma. 1 activado, 0 desactivado. Establece el tiempo que duran los mensajes de chat en la patnalla. Activa la linterna Pone el logo Selecciona el ultimo item Selecciona el proximo item Selecciona el item anterior Te suicidas Establece el nivel gamma Lista informacion sobre Activa la vista centrada cuando 'mlock' esta desactivado. 1 activado, 0 desactivado.

gl_zmax 4096 gl_ztrick 1 graphheight 64 graphhigh 512 graphmean 1 graphmedian 128 hideconsole hideradar hisound 1 hud_centerid 0 hud_fastswitch 0 hud_saytext_time 5 impulse 100 impulse 201 lastinv invnext invprev kill lightgamma 2.500 listdemo lookspring 0

cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente

video video jugador jugador jugador jugador jugador jugador audio jugador jugador jugador jugador jugador jugador jugador jugador jugador video demo raton

lookstrafe 0

cliente

raton

Activa el movimiento con el raton cuando 'mlock' esta activado. 1 activado, 0 desactivado. Activa el filtrado de raton (suavizado). 1 activado, 0 desactivado. Establece el multiplicador de velocidad del raton. Establece el multiplicador de velocidad del movimiento vertical del raton. Numeros negativos suponen un ratonlook invertido. Establece el multiplicador de velocidad del movimiento lateral del raton. Establece el multiplicador de la velocidad de sensiblidad del raton. Elige un item del menu. Muestra a todos los jugadores del servidor. Muestra a los jugadores de tu mismo equipo. Muestra el MOTD del servidor. (Message Of The Day/Mensaje del Dia) Cambia el nombre del jugador Muestra tus FPS, latencia, paquetes que suben/bajan y frecuencia de actualizacion cliente/servidor. 0 lo apaga, 3 muestra los datos sin grafico y ahorra FPS. Activa el sonido. 1 activado, 0 desactivado. Manda un ping al servidor. Reproduce un sonido .wav. Muestra una demo con velocidad normal. Establece el volumen de la demo. Invierte el ping para ayudar a la latencia. Sale a Windows sin confirmacion. Establece el maximo de calcomanias. Activa el mostrar el modelo del arma del jugador. 1 activado, 0 desactivado.

m_filter 0 m_forward

cliente cliente

raton raton

m_pitch 0.022

cliente

raton

m_side 0.800 m_yaw 0.022 menuselect messagemode messagemode2 motd name

cliente cliente cliente cliente cliente cliente cliente

raton raton jugador jugador jugador jugador jugador

net_graph 1

cliente

jugador

nosound 0 pingsv play playdemo playvol 9 pushlatency -100 quit r_decals 250 r_drawviewmodel 0

cliente cliente cliente cliente cliente cliente cliente/ servidor cliente cliente

audio jugador audio demo demo jugador todos jugador jugador

r_dynamic 0 r_mmx 0 radio1 radio2 radio3

cliente cliente cliente cliente cliente

video jugador jugador jugador jugador

Activa la luz dinamica. 1 activado, 0 desactivado. Activa los calculos MMX para estas CPUs. 1 activado, 0 desactivado. Abre el Menu 1 de radio Abre el Menu 2 de radio Abre el Menu 3 de radio Activa el grafico para condiciones de red. 0 desactivado, 1 muestra verde = bueno, amarillo = malo, rojo = horrible, 2 muestra el tamao de los paquetes. Establece la relacion de datos. 10005000 para modem, 10000 o mas para LAN. Reconecta al servidor. Guarda una demo en HalfLife\Valve\.dem Intenta conectar cuatro veces mas a un servidor que ha fallado cuatro veces ya. Volumen maximo para reproducir sonido 2D. Rango de 0 a 1.0. Activa soporte A3D. 1 activado, 0 desactivado. Establece la distancia para el maximo volumen. Establece la distancia para el minimo volumen. Hincha el factor de los poligonos en A3D 2.0 Establece el tamao del bufer. Establece desactivar A3D. 1 activado, 0 desactivado. Ajusta el ratio de las unidades a metros, afectando velocidad, posicionamiento y distancia. cuanto mayor sea el numero, todo se hace mas mas cercano se hace todo. Ajustar desde 0 hasta el infinito. Ajusta el doppler. 1 activado, 0 desactivado. Ajustar de 0 a 10, es muy sensivle. Activa soporte EAX. 1 activado, 0 desactivado.

r_netgraph 0

cliente

jugador

rate 5000 reconnect record retry s_2dvolume 1 s_a3d 0.000000 s_automax_distance 30 s_automin_distance 2 s_bloat 2.0 s_buffersize 65536 s_disable_a3d 0

cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente

jugador jugador demo jugador audio audio audio audio audio audio audio

s_distance 60

cliente

audio

s_doppler 0.0

cliente

audio

s_eax 0

cliente

audio

s_enable_a3d s_geometry 0 s_max_distance 1000

cliente cliente

audio audio

Activa soporte A3D. Activa render geometrico. Solo para A3D. 1 activado, 0 desactivado. Distancia maxima hasta que deja de aplicarse el rolloff. Ajustar desde 's_min_distance' hasta el infinito. Distancia minima desde el origen hasta el que escucha antes de aplicar rolloff. Ajustar desde 0 hasta 's_max_distance' Maximo de poligonos a renderizar en A3D 2.0. Ponerlo a 0 es como poner en off 's_geometry'. Ajustar desde 0 hasta el infinito. Valor de transmision por materiales. Cuanto mas pequeo sea el numero, menos sonido atravesara los materiales. Ajustar de 0 a 1.0 Activa que el sonido pase a traves de los materiales. Solo para A3D 2.0. 1 activado, 0 desaxtivado. Retraso entre un sonido y su refleccion mas cercana. Solo para A3D 2.0. Cuanto mas retraso, mas tiempo entre el origen y la primera refleccion. Ajustar de 0 a 100. Ajusta el aumento de cada refleccion en A3D 2.0, donde los efectos de distancia se incrementan: las altas frecuencias se filtran y el volumen se reduce. Ajustar de 0 a 10. Controla la mezcla de reverberacion en A3D. Cuanto mayor sea el numero mas humedo sera el sonido. Ajustar de 0 a 1.0 Abla con todos los jugadores en el server. Abla con los miembros de tu equipo. Establece el tiempo que duraran los mensajes del server en la pantalla.

cliente

audio

s_min_distance 5

cliente

audio

s_numpolys 200

cliente

audio

s_occfactor 0.250

cliente

audio

s_occlude 0

cliente

audio

s_refdelay 4

cliente

audio

s_refgain 0.4

cliente

audio

s_verbwet 0.25

cliente

audio

say "message"

cliente

jugador jugadors

say_team "message" cliente scr_centertime 2 scr_conspeed 600 scr_printspeed 7 screenshot sensitivity 9 cliente cliente cliente cliente

jugador jugador jugador raton

Establece la velocidad de scroll de la consola. Establece la velocidad de impresion de los mensajes. Captura la pantalla Establece la sensiblidad del raton.

servidorinfo setdemoinfo info setinfo showbriefing showinfo 0 showpackets 0 showpause 0 showram 0 sizedown sizeup slot1 slot2 slot3 slot4 slot5 slot6 slot7 slot8 slot9 slot10 snapshot startdemos stop

cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente

jugador demo jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador jugador demo demo

Muestra informacion del server. Aade informacion a una demo, como un titulo de texto, numero de pista, etc.

Muestra informacion del mapa. Activa la vista de todos los paquetes. 1 activado, 0 desactivado. Activa la vista de los paquetes de red. 1 activado, 0 desactivado. Activa la pausa de la vista de graficos. 1 activado, 0 desactivado. Activa la vista de la RAM disponible. 1 activado, 0 desactivado. Disminuye el tamao de la pantalla y incrementa los FPS. Incrementa el tamao de la pantalla y disminuyen los FPS. Selecciona el slot 1 del inventario (o del menu) Selecciona el slot 2 del inventario (o del menu) Selecciona el slot 3 del inventario (o del menu) Selecciona el slot 4 del inventario (o del menu) Selecciona el slot 5 del inventario (o del menu) Selecciona el slot 6 del inventario (o del menu) Selecciona el slot 7 del inventario (o del menu) Selecciona el slot 8 del inventario (o del menu) Selecciona el slot 9 del inventario (o del menu) Selecciona el slot 10 del inventario (o del menu) Toma un screenshot Empieza a reproducir demos constantemente. Detiene la grabacion de una demo.

stopdemo stopsound swapdemo timedemo toggleconsole topcolor 30 unbind unbindtodos use vid_config_x 800 vid_config_y 600 vid_d3d 0 vid_describemode vid_mode 0 vid_nopageflip 0 vid_wait 0 viewframe violence_ablood 0 volume 1.0

cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente cliente

demo audio demo demo jugador jugador jugador jugador jugador video video video video video video video video jugador audio

Detiene la reproducion de una demo Detiene la reproduccion de un sonido Intercambia la posicion de dos segmentos dentro de una demo Reproduce una demo a los maximos FPS y informa de la media de FPS. Abre la consola. Establece el color de fondo del modelo. Elimina un bind a una tecla. Elimina todos los binds (cuidadin con esto) Usa un item o arma. Establece la resolucion horizontal Establece la resolucion vertical Activa soporte Direct3D. 1 activado, 0 desactivado. Muestra los parametros de video Establece el modo de video. Desactiva el flip. 1 activado, 0 desactivado. Activa la sincronizacion de video. 1 activado, 0 desactivado. Activa wire-frame, solo para OpenGL. Activa la sangre. 1 activado, 0 desactivado. Establece el volumen del juego. Pistolas: glock18/usp/deagle/p228/elite/fiveseven Escopetas: m3/xm1014 SubFusiles: mp5navy/p90/tmp/mac10/ump45

weapon_

cliente

jugador

Fusiles: ak47/sg552/m4a1/aug Rifles: scout/awp/g3sg1/sg550 Metralletas: m249 Granadas: flashbang/hegrenade/smokegrenade Otras: c4/knife

- Selecciona directamente un arma. Si haces un bind a weapon_knife, pulsando la tecla te pone el cuchillo. Por ejemplo. wait cliente jugador Pausa por un instante la ejecucion de un alias.

Teclas disponibles para Bind


Esta es una lista de todas las teclas a las que se puede hacer referencia con un 'bind' y el nombre exacto que tendremos que poner para que la reconozca. Las teclas que no estan aqui (como la ) no se pueden enlazar. Por ejemplo, para hacer un bind en el numero 3 del teclado numerico haremos: bind KP_PGDN "alias"

Letras y Numeros 1 Q A Z 2 W S X 3 E D C 4 R F V 5 T G B 6 Y H N 7 U J M 8 I K 9 O L 0 P

Botones Raton MOUSE1 AUX5 MOUSE2 AUX6 MOUSE3 MWHEELUP MOUSE4 MWHEELDOWN

Botones Joystick JOY1 JOY2 JOY3 JOY4 AUX5 AUX6

Teclas Especiales ENTER ALT DEL CAPSLOCK SPACE BACKSPACE HOME SHIFT TAB END CRTL ESCAPE PGDN PAUSE INS PGUP

Teclas de Funcion F1 F7 F2 F8 F3 F9 F4 F10 F5 F11 F6 F12

Flechas de Direccion LEFTARROW RIGHTARROW UPARROW DOWNARROW

Teclado Numerico KP_UPARROW


(8)

KP_END
(1)

KP_INS
(0)

KP_DEL
(.)

KP_DOWNARROW KP_SLASH KP_HOME


(2) (/) (7)

KP_PGUP
(9)

KP_PGDN
(3)

KP_RIGHTARROW KP_ENTER
( 6) (Intro)

KP_5
(5)

KP_MINUS
(-)

KP_PLUS
(+)

KP_LEFTARROW
(4)

Caracteres Especiales , * . [ / ] \ ; = ' ~ (\)

Tipos de Scripts

Introduccin
Dentro del scripting disponemos de pocos comandos y pocas estructuras que utilizar, ya que es un lenguaje de script y por tanto muy sencillo. Por tanto para

realizar tareas mas o menos complicadas tendremos que agrupar varios alias que trabajen juntos para realizar una tarea mas complicada, lo que llamamos un Script. Ahora vamos a ver por encima los diferentes tipos de alias y script que hay y los 'trucos' que utilizan para combinar los alias adecuadamente, en las proximas lecciones veremos uno a uno con mas detalle y explicaremos como funcionan. La unica utilidad que le vamos a dar a este archivo va a ser la de incluir ahi nuestros binds, ya que el juego guarda ahi todos los que tiene (uno por cada tecla que sirve para algo) y asi podremos ver las teclas que nos quedan libres y mantendremos nuestros archivos ordenados y limpios.

Alias +/Este tipo de alias se utiliza en muchas ocasiones. Tendremos un alias (+) que se ejecutara al pulsar la tecla deseada, y otro (-) el que se ejecuta cuando se suelta la tecla. Esto nos permite modificar los comandos para hacerlos mas completos. Como ejemplo sencillo podriamos hacer un alias que enviara un mensaje de chat a tu equipo cuando apretas el boton de recargar y les avise de que deben cubrirte. Ventajas: o o Posiblidad de hacer Meta-Binds (ver mas abajo) Reemplazar los movimientos/acciones por defecto por otros mas completos.

Meta-Binds
Un script meta-bind se basa en alias +/- y consigue que podamos tener varias acciones en la misma tecla que podremos elegir pulsando otra tecla que elijamos. P.Ej: Alt, Ctrl, ... De esta forma, por ejemplo, puedes hacer que con una tecla compres una MP5 y si estas pulsando la tecla Alt compre una Colt, ... Ventajas: o o Deja libres muchas teclas Permite colocar las acciones en las teclas mas accesibles.

Inconvenientes: o o Tiempo de programacion, es un proceso lento de programar. Necesitan mucho espacio, suelen hacerse en archivos .cfg aparte.

Interruptores
Los scripts interruptor nos permiten activar y desactivar una opcion con la misma tecla utilizando dos alias para las acciones y uno que elija la que se tiene que ejecutar.

Esto nos permite poder activar/desactivar el radar, el net_graph, mostrar/ocultar el arma que llevamos, etc. Hay pocas utilidades para estos scripts pero se suelen utilizar a menudo en combinaciones mas complejas. Ventajas: o Se pueden usar para hacer Ciclos (ver mas abajo)

Inconvenientes: o Suelen necesitar demasiado espacio si se utilizan muchos.

Ciclos
Los scripts de ciclo son una extension de los interruptores. Permiten utilizar en la misma tecla un ciclo de opciones, por ejemplo subir el volumen (volumen 1, 2, 3, 4, 1, 2, 3 ...). Esto nos permite agrupar acciones que puedan tener varios valores como el volumen, los diferentes modos del net_graph, etc ... Ventajas: o Utiliza una tecla para varias acciones

Inconvenientes: o Suelen necesitar demasiado espacio si se utiizan mucho.

Menus en Pantalla
Combinando diferentes tipos de alias y de scripts podemos hacer menus que aparezcan en pantalla y que podremos elegir las diferentes opciones mediante cualquier tecla. Estos menus tienen un resultado final como los menus de compra en modo texto o los menus de radio. Esto nos permite poder agrupar diferentes acciones que podemos ejecutar con combinaciones de teclas, como las compras o la radio. Podemos hacer menus para controlar los bots, para decir frases por el chat, para administrar un servidor ... Ventajas: o o o Permite multitud de opciones utilizando solo una tecla. Permite tener muchas opciones que de no ser asi nos seria imposible por falta de teclas. Podemos activar estos menus con las teclas o con el raton (incluso con la rueda vertical).

Inconvenientes: o o Tiempo de programacion, es un proceso lento de programar. Espacio, necesitaremos un archivo aparte para el menu ya que utilizan mucho espacio.

Alias de Compra

Los alias de compra son los primeros que se suelen aprender por su sencillez, por eso, en vez de aprender a hacer alias de compra (que sera lo primero que aprendamos), vamos a ir mas lejos. Vamos a crear nuestro primer Script. Un script de compra sencillo. Empecemos. En primer lugar tenemos que aprender a hacer alias. Esto es sencillo. Para hacer alias de compra utilizaremos unicamente los siguientes comandos: buy, buyequip, slot10, wait, menuselect. (si tienes dudas mira la lista de comandos) Lo primero que debe aparecer en nuestro autoexec (no es obligado, pero es recomendable mantener un orden) son los alias comunes, que son alias que utilizaremos en otros alias. Vamos a verlos: alias alias alias alias alias alias alias alias alias alias ms1 ms2 ms3 ms4 ms5 ms6 ms7 ms8 ms9 mclr "menuselect 1" "menuselect 2" "menuselect 3" "menuselect 4" "menuselect 5" "menuselect 6" "menuselect 7" "menuselect 8" "menuselect 9" "slot10; wait; wait; slot10"

Supongo que no tendras problemas en comprender la sintaxis y el significado de estos sencillos alias: ms1-ms9 sustituyen a menuselect 1-9 y mclr lo que hace es cerrar el menu metiendo un slot10. Ponemos varios wait y otro slot10 por si el primero se perdiera debido al lag. (posiblemente para partidas con mucho lag tengamos que poner mas wait y mas slot10, pero como ejemplo sirve asi). Ahora hacemos nuestro primer alias de compra: alias MP5 "buy; ms3; ms1; mclr" Supongo que ahora se ve mas claro para que sirven los alias comunes, aqui vemos que podemos hacer alias de compra con ellos de forma muy facil y limpia. Este alias compra una MP5: Primero abre el menu Comprar (buy), luego elige el 3er slot (ms3) y luego el primero (ms1), despues cierra el menu de compra (mclr). Como esto es muy facil, vamos a hacer un alias para cada arma dando forma a nuestro script de compra (si alguna arma no la usas nunca no hace falta que la pongas, asi ahorraremos algo de espacio). Copia esto a tu autoexec. // Pistolas - ms1 // alias USP "buy; ms1; ms1; mclr" alias GLOCK "buy; ms1; ms2; mclr" alias EAGLE "buy; ms1; ms3; mclr" alias P228 "buy; ms1; ms4; mclr"

// Escopetas - ms2 // alias M3 "buy; ms2; ms1; mclr" alias XM1014 "buy; ms2; ms2; mclr" // Sub-Fusiles - ms3 // alias MP5 "buy; ms3; ms1; mclr" alias TMP "buy; ms3; ms2; mclr" alias P90 "buy; ms3; ms3; mclr" alias UZI "buy; ms3; ms4; mclr" // Fusiles y Rifles - ms4 // alias AK47 "buy; ms4; ms1; mclr" alias SIG "buy; ms4; ms2; mclr" alias M4 "buy; ms4; ms3; mclr" alias AUG "buy; ms4; ms4; mclr" alias SCOUT "buy; ms4; ms5; mclr" alias AWP "buy; ms4; ms6; mclr" alias G3SG1 "buy; ms4; ms7; mclr" // Ametralladora - ms5 // alias M249 "buy; ms5; ms1" Ahora podemos bindar cualquier arma tan solo con 'bind tecla arma', pero no nos vamos a conformar con comprar solo un arma. Necesitaremos mas cosas: alias alias alias alias alias alias alias alias alias balas1 "buy; ms6" balas2 "buy; ms7" chaleco "buy; ms8; ms1" casco "buy; ms8; ms2" fb "buy; ms8; ms3" he"buy; ms8; ms4" sm "buy; ms8; ms5" def "buy; ms8; ms6" nv "buy; ms8; ms7" // // // // // // // // // Balas Primarias Balas Pistola Chaleco Chaleco+Casco FlashBang Granada Explosiva Granada de Humo Defuse Kit Night Vision

Aqui tenemos los alias para comprar el equipamiento. De esta forma podremos crear alias multiples de una forma muy facil: alias arma "mp5; balas1; casco; he; mclr; wait; wait; mclr" Como puedes ver el alias queda muy limpio y sencillo. He puesto dos veces 'mclr' con un par de waits por si el primero no pudiera cerrar el odioso menu de compra. Pero normalmente, debido al lag, sera mejor hacer los alias de compra de esta forma: alias +MP5X "buy; ms3; ms1; balas; casco, mclr" alias -MP5X "mclr; wait, wait; mclr" De esta forma lo que hacemos es ejecutar el primer alias al pulsar la tecla, poniendo un 'mclr' al final como siempre, y el segundo alias (el del -) se ejecuta al soltar la tecla, poniendo nuevamente dos 'mclr' mas. Asi si esperamos un poco antes de soltar la tecla es posible solucionar el problema cuando hay mas lag. Este tipo de alias los veremos en la leccion 5 (Pulsar y Soltar la tecla), pero nos vienen bien para solucionar este problema aqui. Asi que puedes hacer todos los alias que hemos copiado y pegado anteriormente de esta forma y asi practicas un poco ok?. xD

Por supuesto este script es muy sencillo y para que sea algo util tendras que personalizarlo a tu gusto. Hacer alias con las combinaciones que tu utilices, hacer binds en las teclas que te vengan bien, modificar los alias a tu gusto. Esto es solo el principio, el final lo pones tu.

Interruptores (on/off)
Con este titulo que puede parecer algo complicado vamos a ver un truco para hacer alias que sirvan de interruptor. Me explico, que al pulsar una tecla se active algo y al pulsar de nuevo se desactive (encender y apagar la linterna, por ejemplo). Para conseguir esto nos basaremos en la idea de meter el comando 'alias' dentro de otro alias. Que para que sirve esto?, Pues para modificar alias desde otros alias. Este truco lo utilizaremos mucho a partir de ahora. El comando alias crea un alias. Si metemos este comando dentro de otro alias lo que haremos sera poder modificar un alias desde otro. (mas que modificarlo crearlo cada vez). Vamos a ver el ejemplo completo y ahora vamos con las explicaciones: alias radar "radar-si" alias radar-si "drawradar; alias radar radar-no" alias radar-no "hideradar; alias radar radar-si" Aqui lo tenemos. El primer alias: 'radar', lo que hace es simplemente llamar al segundo 'radar-si'. El segundo: 'radar-si' lo que hace es mostrar el radar y ... volver a crear un alias llamado 'radar' que llame a 'radar-no'. Ahi esta el truco. Ahora al llamar a 'radar' ejecuta 'radar-no', que lo que hace es ocultar el radar y cambiar el alias 'radar' por 'radar-si', quedando como al principio. Menudo lio. Lo explicare otra vez. Lo que hacemos que cuando llamamos a radar se active el radar y cambiamos radar para que cuando lo llamemos otra vez lo oculte. Ahora al ejecutar radar oculta el radar y volvemos a cambiarlo para que la proxima vez lo encienda. Si no te aclaras con estas explicaciones mias (que no me extraa), solo tienes que entender el funcionamiento para crear alias de este tipo. alias nombre "nombre-on" alias nombre-on "comandos; alias nombre nombre-off" alias nombre-off "comandos; alias nombre nombre-on" bind tecla "nombre" Este es el esquema. Donde pone 'comandos' pon lo que quieras que se ejecuten al activar o desactivar nuestro alias y en el nombre pon lo que quieras pero siempre siguiendo el esquema. Lo mejor para entender esto es practicar y ver algunos que ya esten hechos. Para esto mira las secciones de ejemplos.

Bucles (1, 2, 3, 4, 1, 2 ...)

Si comprendiste el tutorial anterior, el de Interruptores, seguro que no tienes problema para entender este, ya que se basa en el mismo 'truco'. Si tubiste problemas con el anterior puede que este te sirva para verlo mas claro. Nuestro proposito ahora sera hacer una serie de alias con unos comandos y que al pulsar la tecla a la que hacemos el bind se ejecute el primero, al pulsar otra vez el segundo, al pulsar otra vez el tercero ... hasta que llegue al ultimo y entonces empiece otra vez. Para eso, igual que en el tutorial anterior vamos a ver el ejemplo completo y luego lo comentamos. Para el ejemplo utilizaremos el comando net_graph con sus 4 diferentes variables (3 versiones y 1 para apagarlo). alias alias alias alias alias net "net1" net1 "net_graph net2 "net_graph net3 "net_graph net4 "net_graph 1; 2; 3; 0; alias alias alias alias net net net net net2" net3" net4" net1"

Como ves este alias tiene una forma muy parecida al de los interruptores. Lo que hace es cuando llamamos a net, este llama a net1. net1 activa el 'net_graph 1' y hacer que net llame a net2. net2 activa 'net_graph 2' y vuelve a cambiar net para que llame a net3. Y asi tantos como queramos hasta llegar al 4 en nuestro caso, que activa 'net_graph 0' (lo desactiva) y vuelve a activar net al net1, con lo que el bucle vuelve a empezar. Supongo que estara mas o menos claro. Como siempre la mejor forma de comprenderlo completamente sera haciendo pruebas y mirando algunos que ya esten hechos.

Pulsar y soltar una tecla


Vamos a ver ahora una opcion muy interesante que consiste en hacer un alias que se ejecutara al pulsar la tecla a la que lo hemos bindado (como siempre) y otro que se ejecute cuando soltemos esa tecla (esto es lo nuevo, xD). Puede que no le veamos mucha utilidad a esto al principio pero nos puede venir muy bien y conseguir resultados muy interesantes. Se suele usar mucho para los scripts de compra (para cerrar el menu despues de comprar, como ya vimos en su tutorial correspondiente), para el 'Crouch Jump' (que veremos en el ejemplo) y para usos muy variados, dependiendo de la imaginacion de cada uno. Para hacer esto necesitamos el alias que ejecutaremos al pulsar (+) y el que ejecutaremos al soltar (-), ademas del bind que tendra que estar ligado al primero (+). Veamos el ejemplo y luego seguimos: alias +cjump "+jump; +duck" alias -cjump "-jump; -duck" bind "k" "+cjump"

Visto el ejemplo podemos adivinar si no lo sabiamos lo que es el 'Crouch Jump'. Si vemos el primer alias (+), lo que hace es saltar (+jump) y agacharse (+duck). El problema es que si hacemos solo este alias siempre estarias agachado y no pararia de saltar nunca, por eso en el otro alias (-) hacemos que deje de saltar (-jump) y que deje de andar agachado (-duck). Con esto conseguimos que al pulsar la tecla saltemos y nos mantengamos agachados hasta soltar la tecla. Supongo que es facil de entender. Esto lo utilizaremos mas veces de las que parece, por lo que es conveniente tenerlo claro.

Meta-Bind
Antes de empezar con este manual tengo que decir que nos enfrentamos a un nivel avanzado que es complicado de entender y algo lioso. Para comprender el funcionamiento del meta-bind hay que tener muy claros todos los conceptos anteriores y desenvolverse con soltura con alias, binds, pulsar/soltar, etc ... Tambien es cierto que el meta-bind es una posiblidad muy interesante y que nos va a dar unas configuraciones de teclado y raton espectaculares, por lo que vale la pena currar, ya que los resultados seran muy buenos. El meta-bind nos da la posiblidad de utilizar varios comandos en las mismas teclas. Tal y como hacen otros muchos programas podemos ejecutar un alias al pulsar una tecla, otro en la misma tecla manteniendo pulsado Alt, o Ctrl, o Shift ... El problema es que CS no nos da esta opcion y la tenemos que hacer 'a mano'. Lo bueno es que como no nos da la opcion podemos utilizar cuantas teclas queramos (no hace falta que sean Alt-Ctrl-Shift). En el ejemplo de esta leccion vamos a utilizar las teclas F1-F5 para decir comandos de radio. Utilizaremos 5 comandos al pulsar las teclas y otros 5 al mantener pulsada la tecla 'Alt' (por ejemplo). Lo primero que necesitamos son los alias para poner los 10 comandos de radio (que no explicare por su sencillez): alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias +go "radio2; wait; ms1" -go "mclr" +sto "radio2; wait; ms5" -sto "mclr" +cov "radio1; wait; ms1" -cov "mclr" +rog "radio3; wait; ms1" -rog "mclr" +neg "radio3; wait; ms8" -neg "mclr" +ene "radio3; wait; ms2" -ene "mclr" +hol "radio1; wait; ms3" -hol "mclr" +fal "radio2; wait; ms2" -fal "mclr" +sec "radio3; wait; ms4" -sec "mclr" +tak "radio1; wait; ms6" -tak "mclr" // GoGoGo // Storm the Front // Cover Me // Roger - Affirmative // Negative // Enemy Spotted // Hold this Position // Fall Back // Sector Clear // Taking Fire

Ahora vamos a hacer los bind normales para los 5 primeros comandos (tampoco lo explicare): bind bind bind bind bind f1 f2 f3 f4 f5 "+go" "+sto" "+cov" "+rog" "+neg"

Ahora viene lo mas complicado de entender. Vamos a hacer un alias que modifique estos binds al pulsar la tecla prevista (Alt, en este caso), de forma que al pulsar la tecla cambie los binds y al soltarla los deje como estaban. alias +meta1 "bind f1 +ene; bind f2 +hol; bind f3 +fal; bind f4 +sec; bind f5 +tak" alias -meta1 "bind f1 +go; bind f2 +sto; bind f3 +cov; bind f4 +rog; bind f5 +neg" Este es el 'truco' de esta leccion. Si hasta aqui esta claro no tendras problemas para seguir. Lo unico que nos queda es hacer el bind en la tecla que utilicemos de 'meta'. bind alt "+meta1" Ya lo tenemos todo. Ahora al pulsar F1-F5 ejecutaremos los comandos de los primeros binds. Si pulsamos Alt modificara estos binds y al pulsar F1-F5 ejecutaremos los otros comandos. Al soltar Alt volveremos a tener los binds originales y ejecutaremos con F1-F5 los comandos normales. Aqui tienes todo el script completo para que lo analices mas despacio. Puedes modificarlo y probarlo a tu gusto para comprenderlo mejor. Has pensado lo que podrias hacer con tu raton con estas posiblidades? Puedes asignar varias funciones al mismo boton del raton, por ejemplo ... // Lineas para el autoexec.cfg o cualquier .cfg personalizado alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias alias +go "radio2; wait; ms1" -go "mclr" +sto "radio2; wait; ms5" -sto "mclr" +cov "radio1; wait; ms1" -cov "mclr" +rog "radio3; wait; ms1" -rog "mclr" +neg "radio3; wait; ms8" -neg "mclr" +ene "radio3; wait; ms2" -ene "mclr" +hol "radio1; wait; ms3" -hol "mclr" +fal "radio2; wait; ms2" -fal "mclr" +sec "radio3; wait; ms4" -sec "mclr" +tak "radio1; wait; ms6" -tak "mclr" // GoGoGo // Storm the Front // Cover Me // Roger - Affirmative // Negative // Enemy Spotted // Hold this Position // Fall Back // Sector Clear // Taking Fire

alias +meta1 "bind f1 +ene; bind f2 +hol; bind f3 +fal; bind f4 +sec; bind f5 +tak" alias -meta1 "bind f1 +go; bind f2 +sto; bind f3 +cov; bind f4 +rog; bind f5 +neg"

// Lineas para el config.cfg con los binds bind bind bind bind bind bind f1 "+go" f2 "+sto" f3 "+cov" f4 "+rog" f5 "+neg" alt "+meta1"

El kb_act
Lo primero que debes hacer antes de seguir con este tutorial es localizar el archivo kb_act.lst, situado en \Half-Life\cstrike\gfx\shell\ y hacer una copia de seguridad por si metemos la pata. En este manual vamos a ver que contiene y para que sirve este archivo, que nos vendra bien a la hora de personalizar nuestro CS. Este archivo contiene el codigo del menu 'Controls' de nuestro CS, desde donde se eligen las teclas para funcionar en el juego. Esto quiere decir que cuando modificas una tecla desde este menu, lo que haces es modificar los binds situados en el config.cfg Vamos a ver que aspecto tiene este archivo en un editor de texto y encontraras algo como esto:

Como ves esta dividido en dos columnas. En la columna derecha encontramos una lista de alias entre comillas (" "). Estos son los alias que se crean al instalar CS

y la mayoria son necesarios para jugar. En la columna derecha vemos una descripcion de lo que hace cada alias de la izquierda. Por ejemplo, la linea de "+jump", se describe como 'Jump' a la derecha. Cuando pongas tus propias descripciones procura no utilizar mas de 28 caracteres o espacios. Bien, pues si aadimos nuevos alias a este archivo de la misma forma que estan esos (los nuevos alias deben estar en autoexec.cfg o otro .cfg personalizado), la descripcion aparecera en el menu 'Controls' y podremos modificar la tecla a usar por ese alias desde ese menu, sin tener que editar el config.cfg cada vez. Por ejemplo, podremos introducir una nueva linea con el comando "kill", y como descripcion "Suicidarse". Cuando abramos este menu tendremos una nueva opcion 'Suicidarse' y podremos elegir una tecla, que sera la que ejecute el comando 'kill'. Tambien podemos escribir lineas en blanco o con caracter descriptivo utilizando el comando "blank", tal y como se ve en la imagen y eliminar lineas que ya estan para evitar que alguien cambie las teclas para ellas.Aqui tienes un screenshot de un trozo de mi kb_act para que veas como funciona.

Ademas de la utilidad de este archivo para nuestros alias personales y nuestra comodidad, nos puede venir muy bien si hacemos scripts para distribuir, ya que conseguiremos una integridad con el juego digna de un profesional y haremos mas facil la tarea de personalizacion por parte del usuario.

Comprar con la Ruleta del Raton

Vamos a ver como generar un menu de compra que funcione unicamente con el raton, utilizando la ruleta vertical (Mouse-Wheel) para cambiar entre los elementos del menu. Este manual nos servira para comprender como controlar la rueda (CS solo reconoce la rueda vertical) para otras posibles aplicaciones. Antes de empezar decir que este es un manual algo complicado y necesitaremos conocer bien el resto de manuales y de tener algo de experiencia con alias de compra, alias de bucle, etc ... (en realidad lo que haremos sera un gran alias de bucle que llamara a otros alias de compra). Pero no os quiero asustar antes de tiempo (xD) comencemos el tutorial y ya me contareis al final. Lo primero que hacemos, como siempre, es definir los alias comunes que utilizaremos en nuestro script:

alias "cd1" "clear; developer 1" alias "e3" "echo ; echo ; echo" alias "menu_left" "wep4" alias "menu_right" "wep2" alias "pick" "wep1" alias "d0" "developer 0"

Limpia los echos de la pantalla y activa modo desarrollo 3 echos limpian el menu como si se hubiera refrescado Mueve el menu a la izquierda Mueve el menu a la derecha Elige el elemento que hay seleccionado en este momento Desactiva modo desarrollo.

No te preocupes si no entiendes estos alias ahora, lo importante es que los entiendas cuando los veas funcionar en el script. Sigamos, vamos a definir el primer alias, los demas tendran un aspecto muy similar a este por lo que es importante comprender bien el funcionamiento: alias "wep1" "cd1; e3; echo ->Five-Seven<- MP5 AUG Desert Eagle ; d0; alias menu_left wep4; alias menu_right wep2; alias pick fiveseven" Como puedes ver el alias no es dificil. Limpia el menu que habia, muestra las opciones correspondientes (la sleccion es lo que hay entre -> y <- (se puede utilizar lo que se quiera aqui) y luego se redefine el alias para pasar a la siguiente opcion y la anterior (menu_left y menu_right) y el alias para seleccionar el item adecuado (pick). Tal y como dije antes esto no es mas que un alias de bucle pero algo mas complicado. Vamos a ver el resto de los alias que completan el menu y puede que lo veas mas claro: alias wep2 "cd1; e3; echo Five-Seven ->MP5<- AUG Desert Eagle ; d0; alias menu_left wep1; alias menu_right wep3; alias pick hkmp5" alias wep3 "cd1; e3; echo Five-Seven MP5 ->AUG<- Desert Eagle ; d0; alias menu_left wep2; alias menu_right wep4; alias pick steyraug" alias wep4 "cd1; e3; echo Five-Seven MP5 AUG ->Desert Eagle<- ; d0; alias menu_left wep3; alias menu_right wep1; alias pick deagle" Como hemos visto antes los cambios son obvios. Visto asi no parece tan dificil. Ahora solo necesitaremos definir los alias hkmp5, steyraug, deagle, fiveseven, ... para que compren las armas correspondientes. Complicando un poco mas la cosa se puede utilizar este sistema para crear categorias separadas como esto ...

alias cat1 "cd1; e3; echo ->SMGs<- Shotguns Rifles ; d0; alias menu_left wep3; alias menu_right wep1; alias pick smgs1"> Para hacer esto lo que hacemos es modificar la opcion 'pick' para en vez de llamar a un alias de compra envie la accion a otro alias que mostrara la subcategoria, en este caso smgs1, que deberia abrir un nuevo menu similar a los que hemos definido antes ... alias smgs1 "cd1; e3; echo ->MP5<- UMP TMP ; d0; alias menu_left wep3; alias menu_right smgs2; alias pick mp5" Hasta aqui este manual, solo falta hacer los binds a la ruleta y concretar lo que quieres personalizar. Esto se podria complicar mucho mas, pero eso lo dejo en tus manos.

Menus de texto en pantalla

Como ultima leccion de nuestro tutorial vamos a realizar un script complicado pero que nos vendra bien en muchas ocasiones y que conseguira una personalizacion de CS muy importante. Lo que vamos a hacer es menus personalizados como los que salen a quien no usan los menus graficos (VGI), como un servidor. El resultado sera un menu escrito en pantalla en modo texto con cada opcion precedida de un numero. Al pulsar el numero se activara la opcion correspondiente o se abrira un sub-menu con mas opciones. En este ejemplo utilizaremos un script que controla algunos aspectos del admin_mod. Tengo que decir que es un manual avanzado, y que es necesario tener conocimientos de scripting en general y algo de experiencia para poder hacer un script de este tipo. La teoria de este script es la misma que la del menu de compra con el MouseWheel, pero haciendolo algo mas complicado y extenso. Para no sobrecargar de texto este manual analizaremos los archivos de codigo que utiliza el script para las explicaciones. Empezaremos por el archivo principal, el que genera el primer menu: DESCARGAR Bien, en primer lugar vemos una serie de comentarios que indican para que sirve el archivo seguidas de unas instrucciones echo que muestran una serie de mensajes de texto al intentar conectar al servidor. Sirve para avisar al usuario que se esta cargando un script. Hasta aqui es opcional y no modifica el funcionamiento del script. Despues tenemos 5 instrucciones exec que cargan los demas archivos que componen el script y donde estan las funciones que ahora veremos. Es muy recomendable hacer varios archivos en tus scripts para mantener ordenadas las funciones y no hacer los archivos demasiado pesados. Ahora tenemos un bloque con funciones generales como acostumbramos a ver en todos los scripts que hemos hecho. Veremos la utildad de estas funciones a lo largo del tutorial.

Y aqui tenemos ya la primera funcion del script y una de las mas dificiles e importantes, la funcion admintog. Esta es la funcion que muestra y oculta el menu en la pantalla. Su funcionamiento es facil, una funcion interruptor normal, veamos su contenido detallado que se basa en utilizar otros alias que encontramos en el mismo archivo: alias admintog admintogon alias admintogon "con_notifytime 10; adminbind; clear; +d; echo Modo Admin On; admenu; -d; alias admintog admintogoff" alias admintogoff "con_notifytime 5; reslot; clear; +d; echo Modo Admin Off; -d; alias admintog admintogon" con_notifytime: Con este comando hacemos que los mensajes que escribamos tarden mas en desaparecer para que nuestro menu no se 'esfume' nada mas aparecer. adminbind: Este alias modifica los binds de las teclas 0-1 y los asigna a los comandos del script. A partir de este momento al pulsar estos numeros ejecutaremos los comandos determinados por el script, en vez de los slot1-slot0 que tienen por defecto. clear: borra la pantalla +d/-d: Este alias activa el modo desarrollo, lo que nos permite escribir en la parte superior de la pantalla, mas tarde se desactiva con -d. echo: Muestra el mensaje en la pantalla admenu: Alias que llama a admenu1 y admenu2, que muestran las opciones del primer menu en la pantalla. alias admintog admintogoff: Como ya sabras esto hace que al volver a llamar a admintog se desactive el menu, en vez de activarse como ahora. Bien, ya tenemos el menu en la pantalla. Supongo que el analisis de este primer alias complejo te da una idea clara de como funciona esto. Por si acaso y para aclararlo mas analizaremos algun alias mas: alias adminbind "bind 1 adm1; bind 2 adm2; bind 3 adm3; bind 4 adm4; bind 5 adm5; bind 6 adm6; bind 7 adm7; bind 8 adm8; bind 9 adm9; bind 0 adm10" alias reslot "bind 1 slot1; bind 2 slot2; bind 3 slot3; bind 4 slot4; bind 5 slot5; bind 6 slot6; bind 7 slot7; bind 8 slot8; bind 9 slot9; bind 0 slot10" El alias adminbind, que es llamado desde el anterior, lo que hace es asignar a las teclas numericas del 1 al 0 los comandos adm1,adm2,adm3...adm0. Comandos que son propios del script y que seran los que se ejecuten al pulsar las teclas de numeros cuando el menu este en pantalla. Despues el alias reslot, que es llamado en admintogoff para cerrar el menu, funciona al contrario, este vuelve a asignar las teclas a slot1,slot2,slot3...slot10, que son las opciones por defecto que trae el CS. Si comprendes el funcionamiento de lo que hemos comentado hasta ahora no te costara programar tus propios menus. Lo unico que se hace es mostrar el menu en la pantalla y cambiar los binds. Despues se borrar el menu y se vuelven a restaurar los binds como estaban. Es sencillo. Si en vez de asignar una opcion a un numero quieres que aparezca otro menu, un submenu del principal, pues tendras que hacer los alias para el segundo menu igual que para el primero y al pulsar el numero correspondiente hacerlo aparecer.

En estos casos se suele utilizar el 0 para volver al menu anterior, borrando el menu actual y llamando al principal. Para ver todo esto funcionando os recomiendo analizar el script completo del menu del admin_mod que os comentaba mas arriba. Leelo, analizalo despacio, sigue el camino de cada alias viendo cada uno a quien llama y fijate en la organizacion por ficheros. Es la mejor forma de aprender. Puedes descargar el script completo desde Counter-AdictioN, seccion Scripting.

Creditos
Este manual ha sido escrito integramente por DarkShade para la seccion de Scripting de Counter-AdictioN. Algunos de los tutoriales se han basado en los originales escritos por SxRxRnR para Counter-Script, con permiso escrito por email de este para traducirlos. La REPRODUCCIN de este documento esta permitida siempre y cuando se distribuya integramente y sin ningun cambio. NO esta permitida ninguna modificacin en cualquier parte del codumento ni la distribucin parcial de cualquier parte de este. Tampoco esta permitida la reproduccin total o parcial de cualquier parte del tutorial en ningun otro formato que no sea el original. NO esta permitida la reproduccin del manual en formato web fuera de Counter-AdictioN, salvo confirmacin por parte del autor. Plagio Sux! XD

http://www.counter-adiction.com

You might also like