Jump to content

Tabla de líderes

  1. mathN

    mathN

    Mapper


    • Puntos

      6

    • Contenido

      1.422


  2. valeen.conti

    valeen.conti

    Mapper


    • Puntos

      5

    • Contenido

      235


  3. ciio

    ciio

    Registrado sin publicaciones


    • Puntos

      4

    • Contenido

      46


  4. giulix

    giulix

    Registrado sin publicaciones


    • Puntos

      4

    • Contenido

      26


Contenido popular

Showing content with the highest reputation on 28/08/10 en todas las areas

  1. Bueno gente por skype con los chicos decidimos hacer un llamado es el 2do llamado y este lo gravamos dura 10 min, la victima es un bar llamado ishidan donde venden sushi y nose que mierda mas jajja la cosa es que nico (mAr) habla como chino y nos re cantamos de risa con los mic silenciados , Gon (Ifrix) pidiendo un choripa (Choripan) los demás gritando y jodiendo Manuz, Emi , Chr.is y yo Perita . espero que les gustes y en una de esa hacemos mas llamados, no es con la intención de copiar a los 3 cabiados ni nada, es para cagarnos de risa entre nosotros espero que les guste.
    4 puntos
  2. Aprendizaje necesario: Básico sobre algunas Funciones. Aprendizaje extra: Aprenderse el Include del FVault que está posteado en este Post. Bueno, no hay nada mas que decir, esta todo explicado en el Codigo. Sin ZombiePlague #include < amxmodx > #include < fakemeta > #include < fvault > #include < cstrike > // Creamos variables globales new SZ_Password[ 192 ] new SZ_Password_T[ 33 ][ 192 ] new Registrado[ 33 ] new BadPassword[ 33 ] new const Vault[] = "_Datos" // Nombre del Archivo donde se guardaran los Datos. public plugin_init( ) { register_plugin( "Tutorial", "1.0", "Kiske" ) register_forward( FM_ClientUserInfoChanged, "FWClientUserInfoChanged" ) // Si no me equivoco esta forward se llama cuando el usuario cambia algo de su setinfo. register_clcmd( "say /registrarse", "CMDRegistrarse" ) register_clcmd( "IntroducirContrasenia", "CMDIntroducirContrasenia" ) } public client_disconnect( Index ) Save( Index ) // Esta función ponganla en todos los lugares donde quieren que se guarden sus cosas. public client_putinserver( Index ) { Registrado[ Index ] = 0 BadPassword[ Index ] = 0 Load( Index ) } public CMDRegistrarse( Index ) { if( Registrado[ Index ] || BadPassword[ Index ] ) return PLUGIN_HANDLED; client_cmd( Index, "messagemode IntroducirContrasenia" ) return PLUGIN_CONTINUE; } public CMDIntroducirContrasenia( Index ) { read_args( SZ_Password, 191 ) // Ponemos en la Variable SZ_Password lo que escribió como Contraseña remove_quotes( SZ_Password ) // Analiza lo que escribimos trim( SZ_Password ) // Esta opción es para remover los ESPACIOS ( si es que puso ) al principio y al final de lo que escribió if( equal( SZ_Password, "" ) || contain( SZ_Password, " ") != -1) // En la primer parte, verificamos si lo que ingresó contiene algo......y en la segunda parte verificamos si lo que ingresó tiene espacios, si coincide alguna de las dos cosas, no se lo aceptamos. return PLUGIN_HANDLED; else // Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios. { client_cmd( Index, "setinfo _pass ^"%s^"", SZ_Password ) // Creamos una Setinfo al jugador con el prefijo _pass y la contraseña que ingresó. Ustedes si quieren cambienle el prefijo. Registrado[ Index ] = 1 // Guardamos el Nombre, ls Password y el Dinero actual static SZ_Name[ 32 ], SZ_Data[ 512 ] get_user_name( Index, SZ_Name, 31 ) // Si quieren agregar mas Datos solo vayan aumentando el Parametro y las Variables. formatex( SZ_Data, charsmax( SZ_Data ), "%s %d", SZ_Password, cs_get_user_money( Index ) ) // Esta función del FVault sirve para setear datos ( Recomiendo: Que lean el Include del FVault que está posteado al final de este Post ) fvault_set_data( Vault, SZ_Name, SZ_Data ) // Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea. SZ_Password_T[ Index ] = SZ_Password return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public Save( Index ) { if( !Registrado[ Index ] || BadPassword[ Index ] ) // Si NO esta registrado, o si tiene la Contraseña Incorrecta, no le guardamos nada. return PLUGIN_HANDLED; // Voy a dar un Ejemplo en el caso de que quieran guardar Dinero o lo que sea. static SZ_Data[ 512 ], SZ_Name[ 32 ] formatex( SZ_Data, charsmax( SZ_Data ), "%s %d", SZ_Password_T[ Index ], cs_get_user_money( Index ) ) get_user_name( Index, SZ_Name, 31 ) fvault_set_data( Vault, SZ_Name, SZ_Data ) return PLUGIN_CONTINUE; } public Load( Index ) { static SZ_Data[ 512 ], SZ_Name[ 32 ], SETINFO_Password[ 191 ], VAULT_Password[ 191 ], Dinero[ 11 ] get_user_name( Index, SZ_Name, 31 ) get_user_info( Index, "_pass", SETINFO_Password, 190 ) // Seteamos en SETINFO_Password lo que tiene como Setinfo con el prefijo _pass if( !fvault_get_data( Vault, SZ_Name, SZ_Data, charsmax( SZ_Data ) ) ) // Detectamos si NO existe su Nombre y Data en el Vault. En ese caso, les dejo a su Creatividad para que piensen. return 0; Registrado[ Index ] = 1 // El Nombre y la Password JAMÁS la cargen. // Voy a dar un Ejemplo en el caso de que quieran cargar Dinero o lo que sea. parse( SZ_Data, VAULT_Password, 190, Dinero, 10 ) // La función PARSE, separa los Datos 1 por 1. Si guardamos la Password primero, y el Dinero despues, entonces este Parse está bien, obviamente tiene que seguir el Orden en el que se guardó. if( equal( SETINFO_Password, VAULT_Password ) ) // Si la Contraseña del Jugador coincide con la Registrada de su Nick, cargamos sus Datos. { // Fixeamos un Error para que no reemplaze la Password Registrada por alguna que puede llegar a cambiar el adentro del Server. SZ_Password_T[ Index ] = SETINFO_Password // Cargamos el Dinero. ( Numero ) cs_set_user_money( Index, str_to_num( Dinero ) ) // Si cargan una Variable es así: // Money = str_to_num( Dinero ) // Y si cargan una Native como en el caso de cs_set_user_money, bueno ya esta puesto arriba. // Ejemplo de: Cargar un Float // Variable_De_Float[ Index ] = str_to_float( Float ) return 2; } else // Si la Contraseña del Jugador NO coincide con la Registrada de su Nick, podemos Kickearlo, mandarlo a Spect, un menú, les dejo su creatividad... { BadPassword[ Index ] = 1 //.... } return 1; } public FWClientUserInfoChanged( Index, Buffer ) { if( !is_user_connected( Index ) ) return FMRES_IGNORED; static NickName[32], NickOld[32]; get_user_name( Index, NickOld, 31 ) engfunc( EngFunc_InfoKeyValue, Buffer, "name", NickName, 31 ) // Si tampoco me confundo, esto obtiene el valor "name" de su setinfo. if( equal( NickName, NickOld ) ) return FMRES_IGNORED; engfunc( EngFunc_SetClientKeyValue, Index, Buffer, "name", NickOld ) // Le volvemos a poner el nick viejo para que no se lo pueda cambiar. client_cmd( Index, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld ) return FMRES_SUPERCEDE; } Datos Extras: Una vez que te Registraste, no te podes volver a Registrar CON el mismo NICK. Si tenes la Password incorrecta, les dejo a su creatividad lo que quieran hacer, ahi ya dice donde es que le da la Password incorrecta, obviamente no te podes volver a Registrar. Cuando se te guardan los Datos por primera vez es algo asi: "Giulix" "cachoenlacolina 800" Cuando me desconecte, que se guardan los Datos, se me guardaron así: "Giulix" "cachoenlacolina 4600", obviamente porque gane Dinero. Testee todos los Bugs posibles, y 0 errores. Con ZombiePlague y con Menú de Registro y Logeo #include < fvault > // Creamos variables globales new SZ_Password[ 33 ][ 192 ] new SZ_Password_T[ 33 ][ 192 ] new Registrado[ 33 ] new BadPassword[ 33 ] new const Vault[] = "_Datos" // Nombre del Archivo donde se guardaran los Datos. public plugin_init( ) { register_clcmd( "say /registrarse", "CMDRegistrarse" ) register_clcmd( "IntroducirContrasenia", "CMDIntroducirContrasenia" ) } public client_disconnect( Index ) Save( Index ) // Esta función ponganla en todos los lugares donde quieren que se guarden sus cosas. public client_putinserver( Index ) { Registrado[ Index ] = 0 BadPassword[ Index ] = 0 set_task( 0.1, "clcmd_changeteam", Index ) // Les va a aparecer el Menú igual por más que tengan MOTD y esas mierdas. // Esta función ponganla abajo del reset_vars y abajo del statssave. Load( Index ) } // ATENCIÓN ACA !!: // En la Función que se llama: clcmd_changeteam(id) van a reemplazar todo lo que tengan por esto, a continuacion les explico: public clcmd_changeteam( Index ) { static Team; Team = get_user_team( Index ) if( ( Team == 0 || Team == 3 ) && !BadPassword[ Index ] && Registrado[ Index ] ) // Si esta en el Team UNNASIGNED o SPECTATOR, si tiene bien la Password y si está Registrado... return PLUGIN_CONTINUE; // ... le muestra el Menú de Teams. else if( !Registrado[ Index ] || BadPassword[ Index ] ) // Si no está Registrado o tiene mal la Password, le mostramos el Menú de Registro y Login. { static Menu, SZ_Items[ 32 ] Menu = menu_create( "\yTitulo", "MenuBadPassword" ) formatex( SZ_Items, 31, "%s", !Registrado[ Index ] ? "Registrar nueva Cuenta" : "Ingresar Contraseña" ) menu_additem( Menu, SZ_Items, "1" ) //* Si no está Registrado la Opción esta será: "Registrar nueva Cuenta", de lo contrario será: "Ingresar Contraseña". menu_setprop( Menu, MPROP_EXITNAME, "Salir" ) menu_display( Index, Menu, 0 ) return PLUGIN_HANDLED; } else show_menu_game( Index ) // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. return PLUGIN_HANDLED; } public CMDRegistrarse( Index ) { if( Registrado[ Index ] || BadPassword[ Index ] ) return PLUGIN_HANDLED; client_cmd( Index, "messagemode IntroducirContrasenia" ) return PLUGIN_CONTINUE; } public CMDIntroducirContrasenia( Index ) { read_args( SZ_Password[ Index ], charsmax( SZ_Password[ ] ) ) // Ponemos en la Variable SZ_Password lo que escribió como Contraseña remove_quotes( SZ_Password[ Index ] ) // Analiza lo que escribimos trim( SZ_Password[ Index ] ) // Esta opción es para remover los ESPACIOS ( si es que puso ) al principio y al final de lo que escribió if( equal( SZ_Password[ Index ], "" ) || contain( SZ_Password[ Index ], " ") != -1) // En la primer parte, verificamos si lo que ingresó contiene algo......y en la segunda parte verificamos si lo que ingresó tiene espacios, si coincide alguna de las dos cosas, no se lo aceptamos. return PLUGIN_HANDLED; else if( BadPassword[ Index ] ) // Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios, pero también quiere decir que está Introduciendo la Contraseña para Logearse. { static SZ_Data[ 512 ], SZ_Name[ 32 ], VAULT_Password[ 191 ] get_user_name( Index, SZ_Name, 31 ) if( !fvault_get_data( Vault, SZ_Name, SZ_Data, charsmax( SZ_Data ) ) ) return 0; parse( SZ_Data, VAULT_Password, 190 ) if( equal( SZ_Password[ Index ], VAULT_Password ) ) // Si lo que Ingreso coincide con la Password Registrada, lo mandamos a la Selección de Teams. { client_cmd( Index, "setinfo _pass ^"%s^"", SZ_Password[ Index ] ) BadPassword[ Index ] = 0 Load( Index ) // Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea. SZ_Password_T[ Index ] = SZ_Password[ Index ] return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } else // Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios. { client_cmd( Index, "setinfo _pass ^"%s^"", SZ_Password[ Index ] ) // Creamos una Setinfo al jugador con el prefijo _pass y la contraseña que ingresó. Ustedes si quieren cambienle el prefijo. Registrado[ Index ] = 1 // Guardamos el Nombre, ls Password y los AmmoPacks actuales static SZ_Name[ 32 ], SZ_Data[ 512 ] get_user_name( Index, SZ_Name, 31 ) // Si quieren agregar mas Datos solo vayan aumentando los parametros con su respectiva variable. formatex( SZ_Data, charsmax( SZ_Data ), "%s %d", SZ_Password[ Index ], g_ammopacks[index] ) // Esta función del FVault sirve para setear datos ( Recomiendo: Que lean el Include del FVault que está posteado al final de este Post ) fvault_set_data( Vault, SZ_Name, SZ_Data ) // Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea. SZ_Password_T[ Index ] = SZ_Password[ Index ] return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public Save( Index ) { if( !Registrado[ Index ] || BadPassword[ Index ] ) // Si NO esta registrado, o si tiene la Contraseña Incorrecta, no le guardamos nada. return PLUGIN_HANDLED; static SZ_Data[ 512 ], SZ_Name[ 32 ] // Guardamos la Data. formatex( SZ_Data, charsmax( SZ_Data ), "%s %d", SZ_Password_T[ Index ], g_ammopacks[index] ) get_user_name( Index, SZ_Name, 31 ) fvault_set_data( Vault, SZ_Name, SZ_Data ) return PLUGIN_CONTINUE; } Load( Index ) { static SZ_Data[ 512 ], SZ_Name[ 32 ], SETINFO_Password[ 191 ], VAULT_Password[ 191 ], APs[ 11 ] get_user_name( Index, SZ_Name, 31 ) get_user_info( Index, "_pass", SETINFO_Password, 190 ) // Seteamos en SETINFO_Password lo que tiene como Setinfo con el prefijo _pass if( !fvault_get_data( Vault, SZ_Name, SZ_Data, charsmax( SZ_Data ) ) ) // Detectamos si NO existe su Nombre y Data en el Vault. En ese caso, yo puse que lo mande al Menu de Teams ( Donde le pusimos que se Registre ). { set_task( 0.1, "clcmd_changeteam", Index ) // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2 return 0; } Registrado[ Index ] = 1 // El Nombre y la Password JAMÁS la cargen. parse( SZ_Data, VAULT_Password, 190, APs, 10 ) // La función PARSE, separa los Datos 1 por 1. Si guardamos la Password primero, y los AmmoPacks despues, entonces este Parse está bien, obviamente tiene que seguir el Orden en el que se guardó. if( equal( SETINFO_Password, VAULT_Password ) ) // Si la Contraseña del Jugador coincide con la Registrada de su Nick, cargamos sus Datos. { // Fixeamos un Error para que no reemplaze la Password Registrada por alguna que puede llegar a cambiar el adentro del Server. SZ_Password_T[ Index ] = SETINFO_Password // Cargamos los AmmoPacks. ( Numero ) g_ammopacks[index] = str_to_num( APs ) set_task( 0.1, "clcmd_changeteam", Index ) // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2 // Ejemplo de: Cargar un Float // Variable_De_Float[index] = str_to_float( Float ) return 2; } else // Si la Contraseña del Jugador NO coincide con la Registrada de su Nick, podemos Kickearlo, mandarlo a Spect, un menú, etc.. { BadPassword[ Index ] = 1 // Yo le voy a poner que si tiene mal la Password lo mande a Spect y el Menú de Ingresar la Password. set_task( 0.1, "clcmd_changeteam", Index ) // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2. //.... } return 1; } public MenuBadPassword( Index, Menu, Item ) { if( Item == MENU_EXIT ) { menu_destroy( Menu ) return PLUGIN_HANDLED; } static Access, Data[6], iName[64], CallBack menu_item_getinfo( Menu, Item, Access, Data, 5, iName, 63, CallBack ) switch( str_to_num( Data ) ) { case 1: { if( !Registrado[ Index ] ) CMDRegistrarse( Index ) else client_cmd( Index, "messagemode IntroducirContrasenia" ) } } menu_destroy( Menu ) return PLUGIN_HANDLED; } Datos Extras: Una vez que te Registraste, no te podes volver a Registrar CON el mismo NICK. Si tenes la Password incorrecta, los manda a un Menú de Logeo. Cuando se te guardan los Datos por primera vez es algo asi: "Giulix" "cachoenlacolina 800" Cuando me desconecte, que se guardan los Datos, se me guardaron así: "Giulix" "cachoenlacolina 4600", obviamente porque gane AmmoPacks. No testee nada asi que si encuentran algún POSIBLE Bug, me lo hacen saber. Algo que también quiero aclarar, es que para prohibir el CAMBIO de NICK, se fijen la primera parte SIN ZombiePlague, y fijense la Forward: register_forward( FM_ClientUserInfoChanged, "FWClientUserInfoChanged" ) que les va a servir para que no causen Bugs con los Nicks. Bugs Encontrados: Cuando te aparece el Menu de Registro / Login, si entras a otro Menú, se bugea y te deja entrar de CT y / o TT. SOLUCIÓN: La única que logré hacer yo y efectiva, es bloqueando que entre a otros Menúes si Registrado[ Index ] era igual a 0 y / o si BadPassword[ Index ] era igual a 1. ¿ Como bloquear un Menú para que no pueda acceder a el si esas Variables están mal. ? Todos los Menúes accesibles por SAY y / o CONSOLA, van a hacer que se bugeen, la solución es poner donde se llama la Función que se crea el MENÚ, el siguiente código: if( !Registrado[ Index ] || BadPassword[ Index] ) return; Este pequeño cógido, deben ponerlo en todos los Menúes que se pueda acceder a traves de SAY y / o CONSOLA Creditos a Kiske de allied modders
    4 puntos
  3. Bueno, tuto by Matuu.q22 , extrayendo de varias fuentes la informacion mas opiniones propias ¿Que es KZ? Estas 2 letras es un abreviado de Kreedz, es el nick de quien tuvo la idea e hizo los primeros mapas KZ. Por eso los mapas empiezan con kz_, pero obviamente que hoy en día hay varios mappers haciendo mapas KZ, y cada uno le pone su abreviación al principio, entonces en ves de ser kz_ es por ejemplo slD_ o clintmo_, etc.. Los KZ son mapas de saltos, es decir, son mapas en los cuales se escala. En el comienzo de cada mapa hay un boton a encender para activar la cuenta del tiempo, y una vez escalado todo el mapa llegaran al reloj del tiempo, el cual les mostrara el tiempo total tardaron en hacer el mapa. El KZ no es tan fácil como parece, lleva mucho tiempo aprender a saltar bien. Tienen que acostumbrarse a caerse ya que se caerán muchas veces, realmente muchas.. =P El primer error que todos los que se inician en el mundo KZ es que saltan recto (derecho). Es decir, corren para adelante y saltan en forma recta apretando solo la W, y ahí está el principal error. En KZ nunca se salta derecho, siempre se va moviendo para un costado en el aire, o mejor dicho, se salta strafeando en el aire. ¿Como strafear? (Tema trillado) Este tema la verdad esta en otros tutos, busquenlo en guias y tutoriales zona counter Strike. Asi que no voy a repostear. ¿Que es el Bunny Hop? El bunny hop es el salto de conejo, que significa saltar seguido sin frenarse. También es conocido como bhop. Empezas con un strafe para un lado y cuando apenas tocas el suelo haces un strafe para el otro. Un ejemplo seria: Vas corriendo con la w, saltas, soltas la w, apretas la a y moves el mouse para la izq, luego cuando el model toca el suelo saltas, pero apenas toka el suelo, y despues apretas la d y moves el mouse para la derecha, y asi sucesivamente Bunny Hop Avanzado NUNCA hay que saltar recto en un BHOP, solo hay que strafear. Cuando uno strafea, NO APRETA LA W. Esto es algo que cuesta entender al principio, como se puede saltar para adelante sin la W?, y la respuesta está justamente en el strafe. Con el movimiento para los costados logramos avanzar, y de hecho, se avanza muchísimo mas que saltando con la W. Cuando uno salta puede hacer varios strafes, aunque lo mas básico, es el salto con un solo strafe, es decir, un solo moviendo (para el costado obviamente). Supongamos que tenemos que saltar a un bloque (piedra) que está adelante. Lo que habría que lograr seria un salto en forma de un arco. Cuando vamos a saltar, no tenemos que hacerlo para adelante, sino apuntando un poco al costado (en diagonal). Pero no hay que olvidarse de que cuando estamos avanzando en la carrera para saltar se puede apretar la W, pero en el momento que apretamos el SPACE (o la tecla que tengan para saltar) se suelta la W hasta tocar el suelo otra ves. Por ejemplo, si tenemos que hacer un salto a un bloque que esta en un ángulo de 90 grados (adelante), la mira tiene que tener un ángulo de 60 grados (en diagonal), al saltar soltamos la W y controlaremos el skin solo con la A y D, si seguimos el ejemplo anterior, empezamos saltando hacia la derecha, y al saltar apretamos la A para hacer el arco. Pero atentos, uno puede empezar el movimiento del arco, es decir, apretar la A justo antes de saltar, lo que en realidad, es lo que debe de hacerse, pero eso lo ganarás con la práctica. El ángulo que uno tiene que tener antes de saltar no tiene que ser necesariamente el mismo, puede hacerse hasta sin ángulo, pero eso también lo mejoraras con la práctica. Bien, hasta ahora ya saben el salto mas básico, capaz al probarlo verán que no hay mucha diferencia con el típico salto que antes hacían (saltando para adelante con la W), pero practíquenlo, acostúmbrense a nunca apretar la W cuando saltan. Ahora voy a explicar el salto con doble strafe, si logran hacer este salto, quiere decir que ya aprendieron a saltar. El salto es igual que con un strafe, pero con dos, es decir, en ves de un arco, formarías una especie de S. La primer parte es igual a como antes lo explique, pero en la ultima parte del salto hay que strafear hacia el lado contrario. O sea que si saltas y girás la mira hacia la izquierda después tendrías que girar hacia la derecha, y ahí estarías haciendo el doble strafe. Éste es el verdadero salto, cada vez que saltes tenés que hacer el doble strafe, no importa si es un salto corto, ya que así ganarás tiempo. No te va a salir con el primer intento, de hecho te va a costar bastante aprender a hacer bien este salto, solo hay que tener paciencia y practicar. Pueden hacer la cantidad de strafes que quieran, siempre dependiendo de la longitud del salto, lo ideal es hacer de 3 a 5 strafes. Otro error que hacen los principiantes es el tema de la carrera y la caída del salto. Si tomás carrera hace que saltes mas lejos, pero no quiere decir que si venís corriendo 2 minutos vas a saltar el mapa entero, hay una distancia y si tomás mas carrera seria exactamente lo mismo. Siguiendo con el tema de la carrera, hay otro típico error, y es en el “camino de la carrera”. Si estamos en un bloque, hay que buscar la mejor posición para tener la mayor cantidad de carrera (obviamente hablando de un bloque tamaño mediano o chico). Lo que hay que hacer generalmente es siempre buscar las diagonales (en especial estando en un bloque cuadrado), que hacen que logres mas carrera, por eso es tan importante saber hacer el salto con strafe. Finalizando con el salto, tienen que fijarse donde caen, si caen casi en el final del bloque, quiere decir que están saltando demasiado largo, ya que después perderán tiempo tomando demasiada carrera (igualmente esto depende del mapa, pero tengan siempre eso en cuenta). También tienen que intentar caer con el ángulo en el cual van a saltar en ese bloque, así resulta mas fácil. CONSEJO: Les recomiendo que no salten con el SPACE, configurenlo y salten con la ruedita para arriba o para abajo y les va hacer mucho mas facil de saltar. Tenes que tener paciencia, no te va a salir en un dia ni en dos. Video de explicacion Bunny Hop + Strafe: Esto fue todo por hoy, Tuto by Matuu.q22 (Fuentes variadas todo internet mas opiniones personales)
    4 puntos
  4. ciio

    Recopilacion de Tutoriales

    Decidi volver a hacer la recopiñacion de tutoriales ya que seria mas facil editarlo Creditos : S34Qu4K3 por la anterior recopilacion Nivel Basico Pawn Como instalar plugins al AMXx creado por ciio Dejar un mensaje de bienvenida creado por ciio Compilar plugins localmente creado por S34Qu4K3 Compilar un archivo sma creado por giulix Programacion para principiantes (Pawn) creado por S34Qu4K3 Nivel Medio Pawn Menu Nuevo Simple creado por S34Qu4K3 Cvars y como se deben utilizar creado por S34Qu4K3 Menu viejo simple creado por S34Qu4K3 Funciones para plugins creado por ciio Datos de un player al apuntar creado por Ak-47 Menu con For/Loop creado por Varchar' Comandos Admins creado por aagguuu Uso de If creado por S34Qu4K3 Crear un XP mod creado por Chri.is Multiplicar el daño de un arma creado por Morte Darle model al jugador creado por valeen.conti Crear Cuentas y guardado de datos creado por giulix - Kiske Nivel Avanzado Pawn Borrar Entidades creado por S34Qu4K3 Zombie Plague Zombie Plague : Tutoriales Pequeños creado por ciio Zombie Plague : como crear tu primer extra item creado por ciio Zombie Plague : Crear niveles por AmmoPacks creado por giulix - Kiske
    3 puntos
  5. S34Qu4K3

    [Tutorial]Efecto de Luz

    Con esta explicacion aprenderas a crear un efecto de luz bastante real para usar en cualquier ventana, lampara o agujero por donde pase la luz del sol. Paso 1: Creamos el lugar de donde proviene la luz (en mi caso un agujero en el techo que da al cielo) Paso 2: Creamos un solido con la forma de el lugar/objeto donde estaria ubicada la luz. En esta parte hay que tener en cuenta inclinacion, altura y forma que va a tener la luz. Para hacer este efecto de luz el solido creado necesita una textura que en el nombre tenga: fade (pueden ver como es si miran la imagen Paso 3: A este solido creado, que sera nuestra luz, lo convertimos en "func_illusionary" (Ctrl + T) y le damos los siguientes atributos: Render Mode: Additive FX Amount: 40 * Non-Solid: Yes * (Yo use 40 en este caso, pero cualquier cantidad entre 50 y 20 les va a quedar bien tambien) Este es mi resultado: Guia By Santi para MZ
    2 puntos
  6. Necko

    [Tutorial] Firma Ronaldinho

    si vas a hacer copy y paste para tener admin en el 1# hacelo bien al menos :/
    2 puntos
  7. 250 Secretos del Diseño Web es un PDF con, como el nombre lo dice, 250 secretos para hacer un gran diseño para una web. Lamentablemente está en ingles, pero con algo de conocimiento + las palabras que ya aparecen en ingles en el photoshop, se entiende. Se divide en partes y, dentr de ellas, capítulos. Incluye la parte de diseño gráfico, contenido, orden dentro de la web y algo de HTML, CSS y XHTML. Para aquellas personas que les gusta o tienen pensado hacer webs les puede ser de gran ayuda. Info adicional 430Páginas. 7mb. DESCARGA: (Por N0.FE4R a DepositFiles) http://depositfiles.com/files/se0gs928b
    2 puntos
  8. En este tuto les enseñare a darle un model a un jugador ! Aqui esta todo explicado: #include #include #include public plugin_init() { register_plugin("Model a player", "1.0", "valeen.conti") //Registro el plugin... register_clcmd("say /model", "DarModel") //cuando escribe /model activa el public DarModel. } public plugin_precache() //Esto es para los que entran a la partida descarguen lo que pongo aca. { precache_model( "models/player/homero/homero.mdl" ) //Aca cargo el model. // tiene que cumplir con los requisitos: // la carpeta en donde esta el model tiene que tener el mismo nombre del model sin el .mdl // esa carpeta tiene que estar en la carpeta player // la carpeta player esta en la carpeta models // la carpeta models esta en cstrike // NO VOY A SEGUIR !, ya entendieron... } public DarModel(id) //public nombrado arriba { cs_set_user_model(id, "homero") //le damos el model que esta en plugin_precache. con la carpeta HOMERO client_print(id, print_chat, "[AMXX] Eres homeroooo !") //mandamos un mensaje avisando que es homero xD! } /* Aca ya esta todo terminado. Cosas a tener en cuenta: en cs_set_user_model(id, "homero") en mi caso es homero porque la carpeta donde esta el model se llama "homero". PD: NO SI O SI TIENE QUE SER HOMERO ¬¬' */ Espero que entiendan ! Cualquier duda pregunten
    1 punto
  9. kavboj

    Wild Ineters Cup [Coverage]

    Zona A - Viernes 27 de Agosto -[15hs a 18hs] Roar of Victory [16] vs [7] Came to win (map: de_inferno) Roar of Victory [1] vs [16] Wild Ineters (map: de_nuke) Wild Ineters [16] vs [1] Came to win (map: de_dust2) [1ro Zona A] Wild Ineters [2do Zona A] Roar of Victory Zona B [Viernes 27 - 18hs a 21hs] The Right Stuff [16] vs [2] Talento de Barrio (map: de_dust2) HIUX [16] vs [10] Bahamas Mamas (map: de_dust2) The Right Stuff [16] vs [5] HIUX (map: de_inferno) Talento de Barrio [8] vs [16] Bahamas Mamas (map: de_inferno) The Right Stuff [16] vs [1] Bahamas Mamas (map: de_train) HIUX [16] vs [4] Talento de Barrio (map: de_nuke) [1ro Zona B] The Right Stuff [2do Zona B] HIUX Zona C - Viernes 27 de Agosto - [21hs a 00hs] Killer ins [16] vs [9] +imba (map: de_inferno) Teletubies [0] vs [16] KeepSports (map: de_dust2) Killer ins [16] vs [1] Teletubies (map: de_nuke) +imba [6] vs [16] KeepSports (map: de_dust2) +imba [16] vs [0] Teletubies (W.O.) Killer ins [11] vs [16] KeepSports (map: de_inferno) [1ro Zona C] KeepSports [2do Zona C] Killer ins. Zona D - Sábado 28 de Agosto - [08hs a 11hs] frequency [16] vs [9] INFRA (map: de_nuke) Mystery [16] vs [12] Default (map: de_dust2) frequency [16] vs [5] Default (map: de_inferno) Mystery [16] vs [8] INFRA (map: de_inferno) frequency [16] vs [3] Mystery (map: de_train) INFRA [5] vs [16] Default (map: de_nuke) [1ro Zona D] Frequency [2do Zona D] Mystery Zona E - Sábado 28 de Agosto - [11hs a 14hs] Taxiboys [16] vs [2] Ghost (map: de_inferno) KAIDO [15] vs [15] P8 (map: de_dust2) Taxiboys [16] vs [4] KAIDO (map: de_train) Ghost [4] vs [16] P8 (map: de_inferno) Taxiboys [16] vs [2] P8 (map: de_nuke) Ghost [5] vs [16] KAIDO (map: de_tuscan) [1ro Zona E] Taxiboys [2do Zona E] KAIDO Zona F - Sábado 28 de Agosto - [14hs a 17hs] Exurbia Chargers [14:16] GotGame Hat All [11:16] ECO.COBRA Exurbia [16:05] Hat All GotGame [16:12] ECO.COBRA Exurbia Chargers [09:16] ECO.COBRA GotGame [16:06] Hat All [1ro Zona F] ECO.COBRA [2do Zona F] GotGame Zona G - Sábado 28 de Agosto - [17hs a 20hs] Bonsigne [16] vs [6] ROKT Bonsigne [16] vs [14] +46 ROKT [16] vs [10] +46 [1ro Zona G] Bonsigne [2do Zona G] ROKT Mejores 3ros clasificados 1ro p8 con 1pt -14 rondas 2do +46 con 0pts -8 rondas Roosters: OCTAVOS DE FINAL Sábado 28 de Agosto 21.30hs Wild Ineters [16][2] +46 (map: de_inferno) Wild Ineters [16][1] +46 (map: de_train) 21.30hs Bonsigne [14][16] HIUX (map: de_nuke) Bonsigne [16][2] HIUX (map: de_train) Bonsigne [16][3] HIUX (map: de_inferno) 23.00hs Frequency [16][4] Mistery (map: de_nuke) Frequency [16][1] Mistery (map: de_train) 23.00hs KeepSports [16][11] Roar of Victory (map: de_inferno) KeepSports [16][11] Roar of Victory (map: de_tuscan) 24.00hs The Right Stuff [16][6] P8 (map: de_inferno) The Right Stuff [16][6] P8 (map: de_dust2) Domingo 29 de Agosto 09.30hs Killer ins [14][16] ECO.COBRA (map: de_dus2) Killer ins [16][10] ECO.COBRA (map: de_nuke) Killer ins [16][6] ECO.COBRA (map: de_inferno) 09.30hs Taxiboys [16][7] KAIDO (map: de_nuke) Taxiboys [16][8] KAIDO (map: de_inferno) 12.00hs GotGame [22][25] ROKT (map: de_inferno) GotGame [2][16] ROKT (map: de_dust2) CUARTOS DE FINAL 13.00hs Frequency [6][16]KeepSports (map: de_train) Frequency [11][16] KeepSports (map: de_inferno) 14.00hs Bonsigne [13] vs [16] TaxiBoys (map: de_train) Bonsigne [12] vs [16] TaxiBoys (map: de_inferno) 15.00hs The Right Stuff [13] vs [16] ROKT(map: de_nuke) The Right Stuff [16][7] ROKT (map: de_dust2) The Right Stuff [][] ROKT (map: de_inferno) 16.00hs Wild Ineters [16][4] Killer.ins (map: de_dust2) Wild Ineters [16][11] Killer.ins (map: de_nuke) Roosters: SEMIFINALES Domingo 29 de Agosto 19.00hs KeepSports [5][16] Wild Ineters (map: de_inferno) KeepSports [3][16] Wild Ineters (map: de_train) 19.00hs. The Right Stuff [16][6] Taxiboys (map: de_inferno) The Right Stuff [19][17] Taxiboys (map: de_train) Tercer Y Cuarto Puesto KeepSports [5][16] Taxiboys (map: de_dust2) KeepSports [12][16] Taxiboys (map: de_nuke) FINAL Wild Ineters [14][16] The Right Stuff (map: de_inferno) Wild Ineters [16][2] The Right Stuff (map: de_train) Wild Ineters [16][12] The Right Stuff (map: de_nuke) 1ro: Wild Ineters 2do: The Right Stuff 3ro: Taxiboys HLTV NonSteam: hltv.localstrike.com.ar:27015 hltv.localstrike.com.ar:27016 HLTV Steam: hltvs.localstrike.com.ar:27015 hltvs.localstrike.com.ar:27016
    1 punto
  10. Espero que les haya servido.
    1 punto
  11. crea un solido con textura AAATRIGGER en un lugar que no se pueda alcanzar de ninguna forma como en un techo alto selecciona ese solido y presiona CTRL + T ahi pone func_buyzone ahora solo podran comprar en ese lugar pero como es inalcanzable no podran comprar ! Espero averte ayudado
    1 punto
  12. Mpr, ami también me pasó, cuando probas el mapa, 1 tenes 1 solo respawn (vos), no se activa tiene que aver otro player del otro equipo, te recomiendo que pruebes con los bots.
    1 punto
  13. Desbindea todo Primero fijate los bind de la lista y si podes elimina el bind del flood Si no Unbindall y a poner los predeterminado y los qe anotaste o te acordas
    1 punto
  14. Consola : UNBINDALL Despues vas a OPTIONS - KEYBOARD - USE DEFAULTS - OK y ahi deberia funcionar...
    1 punto
  15. Nicoó

    [Tutos] Muy Dificiles

    Bueno aca voy a decir lo mismo que en el otro No son propios Bueno aca termine de nuevo los dejo
    1 punto
  16. y fijate lo que hice especialmente para vos, compila los 2 codes, los agregas y listo al escribir /armas te da a elegir tus armas. o capaz no entendi lo que quisiste decir...
    1 punto
  17. Acá les dejo un wad, que lo hace mucho más real el efecto con la textura fade, si lo saben usar va a quedar 20 veces mejor. :imagenes: Dentro del CounterStrike :descarga: Saludillos, Intoxx
    1 punto
  18. Intoxx

    [Tutorial]Efecto de Luz

    Acá les dejo una textura personalizada que puede hacer el efecto mucho más real Descarga: http://www.mediafire.com/file/yjjr5mhzuh52ee2/lightefect.wad
    1 punto
  19. 1)pone en consola AMXMODMENU 2)pone la opcion SIGUIENTE 3)pone la opcion PAUSAR PLUGIN 4)una opcion dice "/ME", habilitala y pone GUARDAR CONFIGURACION. y ya esta eso de /me Ahora eso del menu: te lo hago con 2 plugins, no se si funca. lo hice rapido #include #include #include #include public plugin_init() { register_plugin("arma", "1.0", "valeen.conti") register_clcmd("say /armas", "CmdArma") } public CmdArma(id) { client_cmd(id, "amx_pedo") } pone eso en el AMX STUDIO y compila. y añadilo al sv, y ahora hace lo mismo con este code: /* AMX Mod script. * * Weapon Menu * by Mattcook & xeroblood * * Description: Gives clients weapons via a menu. * * Command: * amx_weaponmenu * or * weaponmenu * * Example: * bind "f" "amx_weaponmenu" * * Info: Weapon Menu is a re-make of my plugin Admin Weapon which gives players in the server weapons for free. * With Weapon Menu you can give any gun to any player in the server via a menu instead of the console commands. * * Credit: * xeroblood (Thank You soo much for all the help you have given me with the menu, and the plugin in general) * F1del1ty (Thanks for the great idea of this plugin) * */ #include #include // This is ONLY Required to Compile for AMX Mod X v1.0 // Comment or Remove to compile for AMX 0.9.9 #include // Max Values for Building Menus #define MAX_PLAYERS 32 #define MAX_WEAPONS 24 #define MAX_AMMO 11 #define MAX_ITEMS 8 #define MAX_DISPLAY 8 // Menu Type Indexes #define MT_PISTOL 0 #define MT_SHOTGUN 1 #define MT_SMG 2 #define MT_RIFLE 3 #define MT_MACHINE 4 #define MT_PAMMO 5 #define MT_SAMMO 6 #define MT_EQUIP 7 #define MT_EXTRA 8 // Array Index Offsets for Pin-pointing correct weapon #define OFFSET_SHOTGUN 6 #define OFFSET_SMG 8 #define OFFSET_RIFLE 13 #define OFFSET_MACHINE 23 // Max Menu Options for Each Menu // (Machine Gun Menu is Only 1 Option, so no array needed for it) #define MO_MAX_MAIN 9 #define MO_MAX_PISTOL 6 #define MO_MAX_SHOTGUN 2 #define MO_MAX_SMG 5 #define MO_MAX_RIFLE 10 #define MO_MAX_EQUIP 8 #define MO_MAX_EXTRA 14 // Main Menu Text new g_szMainMenuTxt[MO_MAX_MAIN][] = { "Pistols", "Shotguns", "SMGs", "Rifles", "Machine Guns", "Primary Ammo", "Secondary Ammo", "Equipment", "Extras Menu" } // Pistols Menu Text new g_szPistolMenuTxt[MO_MAX_PISTOL][] = { "USP", "Glock", "Deagle", "228 Compact", "Dual Elites", "Five-Seven" } //Shotguns Section new g_szShotgunMenuTxt[MO_MAX_SHOTGUN][] = { "Pump Shotgun", "Auto Shotgun" } //SMG Section new g_szSmgMenuTxt[MO_MAX_SMG][] = { "MP5", "TMP", "C90", "Mac10", "UMP" } //Rifles Section new g_szRifleMenuTxt[MO_MAX_RIFLE][] = { "Clarion", "Krieg SG552", "AK47", "M4A1", "Bullpup", "Scout", "AWP", "CT AutoSniper", "T AutoSniper", "Galil" } //Machine Guns Section new g_szMachineMenuTxt[] = "M249 (Para)" //Equipment Section new g_szEquipMenuTxt[MO_MAX_EQUIP][] = { "Kevlar", "Kevlar + Helmet", "Flashbang Grenade", "HE Grenade", "Smoke Grenade", "Defusal Kit", "Nighvision Goggles", "Shield" } //Extras Section new g_szExtraMenuTxt[MO_MAX_EXTRA][] = { "All Weapons", "M3 Set", "MP5 Navy Set", "Clarion Set", "Galil Set", "M4A1 Set", "AK47 Set", "Krieg SG552 Set", "Bullpup Set", "M249 Set", "Scout Set", "AutoSniper Set", "AWP Set", "Nades Set" } // Names of Weapons for give_item() native new g_szWeaponList[MAX_WEAPONS][] = { "weapon_usp", "weapon_glock18", "weapon_deagle", "weapon_p228", "weapon_elite", "weapon_fiveseven", "weapon_m3", "weapon_xm1014", "weapon_mp5navy", "weapon_tmp", "weapon_p90", "weapon_mac10", "weapon_ump45", "weapon_famas", "weapon_sg552", "weapon_ak47", "weapon_m4a1", "weapon_aug", "weapon_scout", "weapon_awp", "weapon_g3sg1", "weapon_sg550", "weapon_galil", "weapon_m249" } // Names of Equipment Items for give_item() native new g_szItemsList[MAX_ITEMS][] = { "item_kevlar", "item_assaultsuit", "weapon_flashbang", "weapon_hegrenade", "weapon_smokegrenade", "item_thighpack", "item_nvgs", "weapon_shield" } // Names of Ammo Packs for give_item() native new g_szAmmoList[MAX_AMMO][] = { "ammo_45acp", "ammo_9mm", "ammo_50ae", "ammo_357sig", "ammo_57mm", "ammo_buckshot", "ammo_556nato", "ammo_762nato", "ammo_338magnum", "ammo_308", "ammo_556natobox" } new g_nWeaponData[MAX_WEAPONS][2] = { { 0, 8 }, { 1, 8 }, { 2, 5 }, { 3, 6 }, { 1, 4 }, { 4, 4 }, { 5, 4 }, { 5, 4 }, { 1, 4 }, { 1, 4 }, { 4, 4 }, { 0, 6 }, { 0, 6 }, { 6, 3 }, { 6, 3 }, { 7, 3 }, { 6, 3 }, { 6, 3 }, { 7, 3 }, { 8, 3 }, { 7, 3 }, { 6, 3 }, { 9, 3 }, { 10, 7 } } // Tracks what page in menu you're on in Multi-Page Menus (Like Rifles and Players Menu) // Multiple players may open menu at same time, so we keep an array of MAX_PLAYERS (32) // to track each individual's menu page. // Player IDs range from 1-32 but our Array ranges from 0-31 so we minus 1 from PlayerID // when we use this array. Example: g_nMenuPosition[ id - 1 ] new g_nMenuPosition[MAX_PLAYERS] // We use this to track what menu the user is actually in so we can determine which menu // to display next. Different Menu types are: Main, Pistols, Shotguns, SMGs, Rifles, etc.. new g_nMenuType[MAX_PLAYERS] // Tracks which option in the menu was chosen new g_nMenuOption[MAX_PLAYERS] // The following are used for the Players Menu to Track Player Chosen new g_nMenuPlayers[MAX_PLAYERS][MAX_PLAYERS] new g_nMenuPlayersNum[MAX_PLAYERS] public plugin_init() { register_plugin( "Weapon Menu", "1.0", "Mattcook & xeroblood" ) register_clcmd( "amx_pedo", "ShowWeaponMenu") register_clcmd( "amx_pedos", "ShowWeaponMenu") register_cvar( "sv_weaponmenu_smoke", "1" ) // Give Smoke Nades? (1 = Yes, 0 = No) register_cvar( "sv_weaponmenu_state", "1" ) // Weapon Menu Return State // 0 = Exit Menu After Give-Item // 1 = Return to Players Menu // 2 = Return to Weapons Menu register_menucmd( register_menuid("Weapons Menu:"), 1023, "MainMenuCmd" ) register_menucmd( register_menuid("Pistols Menu:"), 1023, "RegularMenuCmd" ) register_menucmd( register_menuid("Shotguns Menu:"), 1023, "RegularMenuCmd" ) register_menucmd( register_menuid("SMGs Menu:"), 1023, "RegularMenuCmd" ) register_menucmd( register_menuid("Rifles Menu:"), 1023, "RifleMenuCmd" ) register_menucmd( register_menuid("Machine Guns Menu:"), 1023, "RegularMenuCmd" ) register_menucmd( register_menuid("Equipment Menu:"), 1023, "RegularMenuCmd" ) register_menucmd( register_menuid("Extras Menu:"), 1023, "ExtraMenuCmd" ) register_menucmd( register_menuid("Players Menu:"), 1023, "PlayerMenuCmd" ) return PLUGIN_CONTINUE } public ShowWeaponMenu( id, lvl, cid ) { if( cmd_access( id, lvl, cid, 0 ) ) { g_nMenuPosition[id-1] = 0 ShowMainMenu( id ) } return PLUGIN_HANDLED } /////////////////////////////////////////////////////////////////////////////////////////// // // Menu Handling Code Below // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Handles Menu Menu public MainMenuCmd( id, key ) { // Track which Menu Type was chosen g_nMenuType[id-1] = key switch( key ) { case 0: ShowPistolMenu( id ) case 1: ShowShotgunMenu( id ) case 2: ShowSmgMenu( id ) case 3: ShowRifleMenu( id, g_nMenuPosition[id-1] = 0 ) case 4: ShowMachineMenu( id ) case 5: ShowPlayerMenu( id, g_nMenuPosition[id-1] = 0 ) case 6: ShowPlayerMenu( id, g_nMenuPosition[id-1] = 0 ) case 7: ShowEquipMenu( id ) case 8: ShowExtraMenu( id, g_nMenuPosition[id-1] = 0 ) default: { /* Do Nothing Here (Exit Option) */ } } return PLUGIN_HANDLED } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Handles all Weapon Menus Except Multi-Page ones like Rifles Menu public RegularMenuCmd( id, key ) { // Track which Option was chosen g_nMenuOption[id-1] = key switch( key ) { case 9: { // User Chose to go Back to Previous Menu ShowMainMenu( id ) } default: ShowPlayerMenu( id, g_nMenuPosition[id-1] = 0 ) } return PLUGIN_HANDLED } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Handles Multi-Page Rifles Menu public RifleMenuCmd( id, key ) { // Track which Option was chosen g_nMenuOption[id-1] = g_nMenuPosition[id-1] * MAX_DISPLAY + key switch( key ) { case 8: { // User Selected "More..." Option ShowRifleMenu( id, ++g_nMenuPosition[id-1] ) } case 9: { // User Chose to go Back to Previous Menu if( g_nMenuPosition[id-1] ) { ShowRifleMenu( id, --g_nMenuPosition[id-1] ) }else { ShowMainMenu( id ) } } default: ShowPlayerMenu( id, g_nMenuPosition[id-1] = 0 ) } return PLUGIN_HANDLED } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Handles Multi-Page Players Menu public PlayerMenuCmd( id, key ) { switch( key ) { case 8: { // User Selected "More..." Option ShowPlayerMenu( id, ++g_nMenuPosition[id-1] ) } case 9: { // User Chose to go Back to Previous Menu if( g_nMenuPosition[id-1] ) { ShowPlayerMenu( id, --g_nMenuPosition[id-1] ) }else { ShowMainMenu( id ) } } default: { // Find which Player was chosen new nPlayerID = g_nMenuPlayers[id-1][g_nMenuPosition[id-1] * MAX_DISPLAY + key] // Give Player Selected Item GiveMenuItem( id, nPlayerID ) // Check which Menu to Re-Open (if any) switch( clamp(get_cvar_num("sv_weaponmenu_state"), 0, 2) ) { case 1: ShowPlayerMenu( id, g_nMenuPosition[id-1] ) // Players Menu (At Last Position) case 2: ShowMainMenu( id ) // Weapons Menu } } } return PLUGIN_HANDLED } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Handles Multi-Page Extras Menu public ExtraMenuCmd( id, key ) { // Track which Option was chosen g_nMenuOption[id-1] = g_nMenuPosition[id-1] * MAX_DISPLAY + key switch( key ) { case 8: { // User Selected "More..." Option ShowExtraMenu( id, ++g_nMenuPosition[id-1] ) } case 9: { // User Chose to go Back to Previous Menu if( g_nMenuPosition[id-1] ) { ShowExtraMenu( id, --g_nMenuPosition[id-1] ) }else { ShowMainMenu( id ) } } default: ShowPlayerMenu( id, g_nMenuPosition[id-1] = 0 ) } return PLUGIN_HANDLED } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // // Menu Building Code Below // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Main Menu Section public ShowMainMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yWeapons Menu:\w^n" ) for( i = 0; i < MO_MAX_MAIN; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szMainMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Exit" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Pistol Menu Section public ShowPistolMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yPistols Menu:\w^n" ) for( i = 0; i < MO_MAX_PISTOL; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szPistolMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Shotgun Menu Section public ShowShotgunMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yShotguns Menu:\w^n" ) for( i = 0; i < MO_MAX_SHOTGUN; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szShotgunMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build SMG Menu Section public ShowSmgMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[2256] nLen = format( szMenuBody, 255, "\ySMGs Menu:\w^n" ) for( i = 0; i < MO_MAX_SMG; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szSmgMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Rifle Menu Section public ShowRifleMenu( id, pos ) { if( pos < 0 ) return new i, j = 0, nStart, nEnd, nLen, nKeys = (1<<9) new szMenuBody[512] nStart = pos * MAX_DISPLAY if( nStart >= MO_MAX_RIFLE ) nStart = pos = g_nMenuPosition[id-1] = 0 nLen = format( szMenuBody, 511, "\yRifles Menu:\R%d/2^n\w^n", pos + 1 ) nEnd = nStart + MAX_DISPLAY if( nEnd > MO_MAX_RIFLE ) nEnd = MO_MAX_RIFLE for( i = nStart; i < nEnd; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (511-nLen), "%d. %s^n", j, g_szRifleMenuTxt[i] ) } if( nEnd != MO_MAX_RIFLE ) { format( szMenuBody[nLen], (511-nLen), "^n9. More...^n0. Back" ) nKeys |= (1<<8) } else format( szMenuBody[nLen], (511-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Machine Gun Menu Section public ShowMachineMenu( id ) { new nLen, nKeys = (1<<0|1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yMachine Guns Menu:\w^n" ) nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", 1, g_szMachineMenuTxt ) format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Equipment Menu Section public ShowEquipMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yEquipment Menu:\w^n" ) for( i = 0; i < MO_MAX_EQUIP; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szEquipMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Extras Menu Section /* public ShowExtraMenu( id ) { new i, nLen, nKeys = (1<<9) new szMenuBody[256] nLen = format( szMenuBody, 255, "\yExtras Menu:\w^n" ) for( i = 0; i < MO_MAX_EXTRA; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (255-nLen), "%d. %s^n", (i+1), g_szExtraMenuTxt[i] ) } format( szMenuBody[nLen], (255-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return }*/ public ShowExtraMenu( id, pos ) { if( pos < 0 ) return new i, j = 0, nStart, nEnd, nLen, nKeys = (1<<9) new szMenuBody[512] nStart = pos * MAX_DISPLAY if( nStart >= MO_MAX_EXTRA ) nStart = pos = g_nMenuPosition[id-1] = 0 nLen = format( szMenuBody, 511, "\yExtras Menu:\R%d/2^n\w^n", pos + 1 ) nEnd = nStart + MAX_DISPLAY if( nEnd > MO_MAX_EXTRA ) nEnd = MO_MAX_EXTRA for( i = nStart; i < nEnd; i++ ) { nKeys |= (1< nLen += format( szMenuBody[nLen], (511-nLen), "%d. %s^n", j, g_szExtraMenuTxt[i] ) } if( nEnd != MO_MAX_EXTRA ) { format( szMenuBody[nLen], (511-nLen), "^n9. More...^n0. Back" ) nKeys |= (1<<8) } else format( szMenuBody[nLen], (511-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody, -1 ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Build Player Menu Section public ShowPlayerMenu( id, pos ) { if( pos < 0 ) return get_players( g_nMenuPlayers[id-1], g_nMenuPlayersNum[id-1] ) new i, j = 0, idx new szUserName[32], szMenuBody[512] new nStart = pos * MAX_DISPLAY if( nStart >= g_nMenuPlayersNum[id-1] ) nStart = pos = g_nMenuPosition[id-1] = 0 new nLen = format( szMenuBody, 511, "\yPlayers Menu:\R%d/%d^n\w^n", (pos+1), (g_nMenuPlayersNum[id-1] / MAX_DISPLAY + ((g_nMenuPlayersNum[id-1] % MAX_DISPLAY) ? 1 : 0 )) ) new nEnd = nStart + MAX_DISPLAY new nKeys = (1<<9) if( nEnd > g_nMenuPlayersNum[id-1] ) nEnd = g_nMenuPlayersNum[id-1] for( i = nStart; i < nEnd; i++ ) { idx = g_nMenuPlayers[id-1][i] get_user_name( idx, szUserName, 31 ) nKeys |= (1< nLen += format( szMenuBody[nLen], (511-nLen), "%d. %s^n", j, szUserName ) } if( nEnd != g_nMenuPlayersNum[id-1] ) { nKeys |= (1<<8) format( szMenuBody[nLen], (511-nLen), "^n9. More...^n0. Back" ) } else format( szMenuBody[nLen], (511-nLen), "^n0. Back" ) show_menu( id, nKeys, szMenuBody ) return } // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // // Weapon Giving Code Below // /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// // Following Functions Actually Give The Items // stock GiveMenuItem( id, p_nPlayerID ) { new szUserName[32] get_user_name( p_nPlayerID, szUserName, 31 ) switch( g_nMenuType[id-1] ) { case MT_PISTOL: GivePlayerWeapon( p_nPlayerID, g_nMenuOption[id-1] ) case MT_SHOTGUN: GivePlayerWeapon( p_nPlayerID, (OFFSET_SHOTGUN + g_nMenuOption[id-1]) ) case MT_SMG: GivePlayerWeapon( p_nPlayerID, (OFFSET_SMG + g_nMenuOption[id-1]) ) case MT_RIFLE: GivePlayerWeapon( p_nPlayerID, (OFFSET_RIFLE + g_nMenuOption[id-1]) ) case MT_MACHINE: GivePlayerWeapon( p_nPlayerID, (OFFSET_MACHINE + g_nMenuOption[id-1]) ) case MT_PAMMO: GivePrimaryAmmo( p_nPlayerID ) case MT_SAMMO: GiveSecondaryAmmo( p_nPlayerID ) case MT_EQUIP: GivePlayerItem( p_nPlayerID, g_nMenuOption[id-1] ) case MT_EXTRA: GivePlayerExtra( p_nPlayerID, g_nMenuOption[id-1] ) } return } stock GivePlayerWeapon( id, nWeaponIdx ) { if( !is_user_alive(id) || (nWeaponIdx < 0) || (nWeaponIdx >= MAX_WEAPONS) ) return // Invalid User or Weapon give_item( id, g_szWeaponList[nWeaponIdx] ) for( new i = 0; i < g_nWeaponData[nWeaponIdx][1]; i++ ) give_item( id, g_szAmmoList[g_nWeaponData[nWeaponIdx][0]] ) return } stock GivePlayerExtra( id, nExtraIdx ) { if( !is_user_alive(id) || (nExtraIdx < 0) || (nExtraIdx >= MO_MAX_EXTRA) ) return new i, j switch( nExtraIdx ) { case 0: // Give Player All Weapons (+Ammo) { for( i = 0; i < MAX_WEAPONS; i++ ) { give_item( id, g_szWeaponList[i] ) for( j = 0; j < g_nWeaponData[i][1]; j++ ) give_item( id, g_szAmmoList[g_nWeaponData[i][0]] ) } } case 1: // Give Player M3 Set { GivePlayerWeapon( id, 6 ) // [6] = M3 GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 2: // Give Player MP5 Navy Set { GivePlayerWeapon( id, 8 ) // [8] = MP5 Navy GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 3: // Give Player Clarion Set { GivePlayerWeapon( id, 13 ) // [13] = Clarion (Famas) GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 4: // Give Player Galil Set { GivePlayerWeapon( id, 22 ) // [22] = Galil GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 5: // Give Player M4A1 Set { GivePlayerWeapon( id, 16 ) // [16] = M4A1 GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 6: // Give Player AK47 Set { GivePlayerWeapon( id, 15 ) // [15] = AK47 GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 7: // Give Player Krieg SG552 Set { GivePlayerWeapon( id, 14 ) // [14] = Krieg SG552 GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 8: // Give Player Bullpup Set { GivePlayerWeapon( id, 17 ) // [17] = Bullpup GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 9: // Give Player M249 Set { GivePlayerWeapon( id, 23 ) // [23] = M249 GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 10: // Give Player Scout Set { GivePlayerWeapon( id, 16 ) // [18] = Scout GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 11: // Give Player AutoSniper Set { GivePlayerWeapon( id, 20 ) // [20] = CT AutoSniper (G3SG1) //GivePlayerWeapon( id, 21 ) // [21] = T AutoSniper (SG550) GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 12: // Give Player AWP Set { GivePlayerWeapon( id, 19 ) // [19] = AWP GivePlayerWeapon( id, 2 ) // [2] = Deagle for( i = 1; i < 6; i++ ) GivePlayerItem( id, i ) // Kevlar, Flash/HE/Smoke Grenade, Defuse Kit } case 13: // Give Player Nades Set { for( i = 2; i < 5; i++ ) GivePlayerItem( id, i ) // Flash/HE/Smoke Grenades } } return } stock GivePlayerItem( id, nItemIdx ) { if( !is_user_alive(id) || (nItemIdx < 0) || (nItemIdx >= MAX_ITEMS) ) return // Invalid User or Item if( (nItemIdx == 4) && (get_cvar_num("sv_weaponmenu_smoke") < 1) ) return // Smoke Nades Restricted if( nItemIdx == 2 ) // If item is Flashbang, give it twice give_item( id, g_szItemsList[nItemIdx] ) give_item( id, g_szItemsList[nItemIdx] ) return } stock GivePrimaryAmmo( id ) { new nWeapons[32], nNum, i, j, k new szWeaponName[32] // Only give Primary Ammo for Guns Carried get_user_weapons( id, nWeapons, nNum ) for( i = 0; i < nNum; i++ ) { get_weaponname( nWeapons[i], szWeaponName, 31 ) for( j = OFFSET_SHOTGUN; j < MAX_WEAPONS; j++ ) { if( equali( szWeaponName, g_szWeaponList[j] ) ) { for( k = 0; k < g_nWeaponData[j][1]; k++ ) give_item( id, g_szAmmoList[g_nWeaponData[j][0]] ) } } } return } stock GiveSecondaryAmmo( id ) { new nWeapons[32], nNum, i, j, k new szWeaponName[32] // Only give Secondary Ammo for Pistols Carried get_user_weapons( id, nWeapons, nNum ) for( i = 0; i < nNum; i++ ) { get_weaponname( nWeapons[i], szWeaponName, 31 ) for( j = 0; j < OFFSET_SHOTGUN; j++ ) { if( equali( szWeaponName, g_szWeaponList[j] ) ) { for( k = 0; k < g_nWeaponData[j][1]; k++ ) give_item( id, g_szAmmoList[g_nWeaponData[j][0]] ) } } } return } // // /////////////////////////////////////////////////////////////////////////////////////////// Espero entiendas como hacerlo, (EL SEGUNDO CODE NO ES MIO, AGARRE EL WEAPONMENU Y LO EDITE PARA LO QUE VOS QUERES)
    1 punto
  20. Desaparecio el anterior post asi que lo vuelvo a subir :imagenes: SI alguien me las puede subir gracias, que no tengo el Wally aca :descarga:
    1 punto
  21. ciio

    [Tutorial] Regalar dinero

    Hola MZ! hoy les enseñare a regalar dinero mediante un menu.. #include #include #include #define PLUGIN "[Tutorial] Regalar Dinero" #define VERSION "1.0" #define AUTHOR "ciio" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /givemoney", "give_money") // cuando el administrador escriba /givemoney en el chat lo lleva al public give_money } public give_money(id) // Public que llamamos mas arriba { if (!(get_user_flags(id) & ADMIN_RCON)) // Si no es administrador le manda un mensaje de que no puede pasar { client_print(id, print_chat, "[AMXX] El acceso a este comando esta solo disponible para admin") return PLUGIN_HANDLED } // Si es admin lo lleva al public show_menu_give_money show_menu_give_money(id) return PLUGIN_HANDLED } public show_menu_give_money(id) // Public que llamamos arriba para ver los players conectados y darle dinero { new menu7 = menu_create("\yRegalar 5000$^n^n", "menu_give_money") // Titulo del menu y el hadle(lo que pasa al apretar al player) new players[32], pnum, tempid new szName[32], szTempid[10] //Nombre del player get_players(players, pnum) //Sacamos los players del server for(new i;i < pnum;i++) { tempid = players[i]//Sacamos los players del server get_user_name(tempid, szName, charsmax(szName))// Les sacamos el nombre num_to_str(tempid, szTempid, charsmax(szTempid)) menu_additem(menu7, szName, szTempid, 0) } menu_display(id, menu7, 0) } public menu_give_money(id, menu7, item) { if(item == MENU_EXIT) { menu_destroy(menu7) return PLUGIN_HANDLED } new data[6], iName[64] new access, callback menu_item_getinfo(menu7, item, access, data,5, iName, 63, callback) new tempid = str_to_num(data) new szAdminName[32] get_user_name(id,szAdminName,31) // Sacamos el nombre del admin que esta regalando la plata cs_set_user_money (tempid, cs_get_user_money(tempid) + 5000) // Le sumamos 5000$ de plata a la que ya tiene client_print(id, print_chat,"[AMXX] El admin %s te ha regalado 5000$",szAdminName) // Le dejamos un mensaje mostrando el nombre del admin // Que le regalo el dinero menu_destroy(menu7) return PLUGIN_HANDLED } pd : no esta probado, cualquier falla avisen porfavor.
    1 punto
  22. INFORMACION Para usar este programa (que viene en un rar) es solo necesario tener una webcam. No, no es para chicas x'd. Tiene diversas funciones, entre las cuales, una "camara de seguridad" o un "control". Es decir, en el caso de la camara de seguridad, apuntas hacia donde quieras y con el programa seleccionas que parte controlar. En caso de que por alli se produzca un movimiento, hará un ruido (que elijes) y te avisará. Otra función es, por ejemplo, controlar el nivel de agua en una jarra. La empiezas a llenar pero no tienes ganas de controlar, necesitas hacer otras cosas. Entonces, dejas el programa apuntando y cuando llege al nivel que le indicas, te avisa VIDEO DESCARGA: (Por N0.FE4R a DepositFiles) http://depositfiles.com/es/files/zo33epqae Sinceramente, es un programa para pasar el rato y para molestar a algunos amigos/familiares x'D. Pero bueno, cada uno le verá su utilidad.
    1 punto
  23. Nuevo Administrador General! Se suma un nuevo integrante a la lista de los Generales del servidor #2 Zombie Rampage. La lista queda de la siguiente manera: Incubus Morte Java -. UmbrellA .- [Machine]
    1 punto
  24. Pipo Argenti

    [Reglas] Pedidos Diseño

    Un pedido en la zona de diseño gráfico minimamente deberá contener los siguientes datos: Propósito de la imágen Ejemplo: Una firma --- Tamaño Ejemplo: 450x150 px --- Colores Ejemplo: Rojo y Verde --- Render Ejemplo: Tupac --- Texto Ejemplo: Mi firma --- Detalles Ejemplo: Me gustaría que sea oscura. Tener 50 mensajes como minimo para hacer un pedido. No se pide exactitud en ninguno de los items, solo entiendan mientras hacen el pedido que el Designer trata de crear lo que ustedes imaginan con la mayor precisión posible. Entiendan que un designer no es un esclavo. Si los pedidos son amables, las ganas al responder van a ser más. Traten de hacer los pedidos lo más claro posible, ya que el designer tiene que interpretar su idea desde cero.
    1 punto
  25. Polo

    se me desconecta inet

    podria ser por la zona, por ejemplo arnet se corta muy seguido en algunos lugares, fibertel lo mismo, depende ed la zona, talvez es otro el porblema, la solucion seria quejarte asi no te cobran tanto (tengo un amigo que lo hizo) y sino cambiar de internet
    1 punto
  26. Hardcook

    se me desconecta inet

    Nos viste cara de trabajar en Speedy? Ese tema puede ser por muchas cosas. Recomendación: Llama y pediles asistencia técnica, seguramente te lo reparan y alguna boludes se manda como bajarte el precio o no cobrarte por los próximos x meses. Eso si, decile que te anda mal hace banda. Saludos.
    1 punto
  27. ifrix

    se me desconecta inet

    te fijastes si se te desconecta cuando suena el telefono ol o atienden?
    1 punto
  28. agu

    se me desconecta inet

    o.o mas detalles :/ o llama al soporte tecnico de speedy a mi me pasa algo parecido solo qe tengo fiber y es cuando mi hermano y yo estamos jugando al cs al mismo tiempo :/ se reinicia el modem
    1 punto
Esta tabla de líderes esta establecida para Argentina - Buenos Aires/GMT-03:00
×
×
  • Crear nuevo...

Información importante

Al utilizar nuestra web, aceptas nuestras Política de privacidad estás de acuerdo con las condiciones establecidas.