Ràngós CSGO + Knifes Por Rângô - Hinami - 07/08/2015
Son los rangos de kikizone con knifes es algo fácil pero acá lo dejo si alguien busca esto.
no lo probé pero compila si hay algo malo me dicen,
lo aporte con tal de que no se pierda en los pedidos
nFvault
Código PHP:
#include amxmisc #include fakemeta #include nfvault #include hamsandwich #include cstrike #include ColorChat new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP new const PLUGIN [][] = { "Rangos CSGO + Knifes" , "1.0" , "kikizon" } enum _ : DATA_K { K_NOMBRE [ 32 ], VMDL [ 30 ], PMDL [ 30 ], NECESARIO } enum _ : DATA { NOMBRE [ 30 ], FRAGS } new const Knifes [ ][ DATA_K ] = { { "Normal" , "v_knife" , "p_knife" , 1 }, { "Knife feo :v" , "v_knife" , "p_knife" , 2 } }; new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 99999 } //fix } new g_rango [ 33 ], g_frags [ 33 ], kElegido [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) #define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id) new VaultRango [ 128 ], szRangos [ 180 ], szKey [ 30 ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN [ 0 ], PLUGIN [ 1 ], PLUGIN [ 2 ]) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) RegisterHam ( Ham_Item_Deploy , "weapon_knife" , "ham_KnifeDeployPost" , true ); register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) register_clcmd ( "asd" , "ShowMenuKnifes" ) cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - ÑO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - ÑO :v SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) nfv_file ( "Ranguitos" , VaultRango , charsmax ( VaultRango )) } public plugin_precache () { static i , buffer [ 300 ]; for( i = 0 ; i < sizeof Knifes ; ++ i ) { formatex ( buffer , charsmax ( buffer ), "models/%s.mdl" , Knifes [ i ][ VMDL ] ); precache_model ( buffer ); formatex ( buffer , charsmax ( buffer ), "models/%s.mdl" , Knifes [ i ][ PMDL ] ); precache_model ( buffer ); } precache_sound ( Sonido ) } public ham_KnifeDeployPost ( wpn ) { static id ; id = get_weapon_ent_owner ( wpn ); if (! pev_valid ( id ) || ! is_user_alive ( id )) return; static WeaponID ; WeaponID = cs_get_weapon_id ( wpn ); static buffer [ 128 ]; if( WeaponID == CSW_KNIFE ) { formatex ( buffer , charsmax ( buffer ), "models/%s.mdl" , Knifes [ kElegido [ id ]][ VMDL ]); set_pev ( id , pev_viewmodel2 , buffer ); formatex ( buffer , charsmax ( buffer ), "models/%s.mdl" , Knifes [ kElegido [ id ]][ PMDL ]); set_pev ( id , pev_weaponmodel2 , buffer ); } } public ShowMenuKnifes ( index ) { static k , menu , string [ 80 ]; menu = menu_create ( "\rMenu de Cuchillos" , "menu_knifes" ); for( k = 0 ; k < sizeof Knifes ; ++ k ) { if( g_rango [ index ] >= Knifes [ k ][ NECESARIO ]) menu_additem ( menu , Knifes [ k ][ K_NOMBRE ], "" ); else { formatex ( string , charsmax ( string ), "\d%s \y[ \r%s \y]" , Knifes [ k ][ K_NOMBRE ], Rangos [ Knifes [ k ][ NECESARIO ]][ NOMBRE ]); menu_additem ( menu , string , "" ); } } menu_display ( index , menu ); return PLUGIN_HANDLED ; } public menu_knifes ( index , menu , item ){ if( item == MENU_EXIT ){ menu_destroy ( menu ); return PLUGIN_HANDLED ; } if( g_rango [ index ] < Knifes [ item ][ NECESARIO ]) { ColorChat ( index , NORMAL , "Necesitas ser rango: !g^" % s ^ " !npara usar este knife" , Rangos [ Knifes [ item ][ NECESARIO ]][ NOMBRE ]); ShowMenuKnifes ( index ); return PLUGIN_HANDLED ; } kElegido [ index ] = item ; engclient_cmd ( index , "weapon_knife" ); menu_destroy ( menu ); return PLUGIN_HANDLED ; } public HUD ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "HUD" , id + TASK_HUD , _ , _ , "b" ) } /* ================================== [DISCONNECT] ===================================*/ public client_disconnect ( id ) { if( XD ) Guardar ( id ); remove_task ( id + TASK_HUD ) } /* ================================== [ROUND END] ===================================*/ public logevent_round_end () { for(new id = 1 ; id <= g_maxplayers ; id ++) { if( XD ) Guardar ( id ); } } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( get_user_weapon ( attacker ) == CSW_KNIFE ) return; g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { ColorChat ( id , NORMAL , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) Aumento = false } } /*===================================== *[SAY]* =====================================*/ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '/' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '/' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* =================================== *[GUARDADO]* =====================================*/ Guardar ( id ) { formatex ( szKey , charsmax ( szKey ), "data_rangos" ) formatex ( szRangos , charsmax ( szRangos ), "%d %d" , g_frags [ id ], g_rango [ id ]) nfv_set_data ( VaultRango , szKey , g_playername [ id ], szRangos ) } Cargar ( id ) { new g_load_c1 [ 25 ], g_load_c2 [ 25 ] formatex ( szKey , charsmax ( szKey ), "data_rangos" ) if(! nfv_get_data ( VaultRango , szKey , g_playername [ id ], szRangos , sizeof ( szRangos ) - 1 )) return; parse ( szRangos , g_load_c1 , charsmax ( g_load_c1 ), g_load_c2 , charsmax ( g_load_c2 )) g_frags [ id ] = str_to_num ( g_load_c1 ) g_rango [ id ] = str_to_num ( g_load_c2 ) } /* =================================== *[STOCKS]* =====================================*/ stock get_weapon_ent_owner ( ent ) { if ( pev_valid ( ent ) != 2 ) return - 1 ; return get_pdata_cbase ( ent , 41 , 4 ); } // Stock para Saber Si el mensaje es valido stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; }
Una mierda que hize sin testear jaja
es esto;
RE: Ràngós CSGO + Knifes Por Rângô - -.- - 07/08/2015
Y lo aportas después que....yo me viera echo un menú de knife por rangos ....
Malandro Buen aporte a muchos les servira..
PD: Me as ganado en apostarlo aunque tiene muchas diferencias :'v
RE: Ràngós CSGO + Knifes Por Rângô - totopizza - 07/08/2015
Que ganas de aportar las cosas de kiki yo aportar el weapon cso game??
RE: Ràngós CSGO + Knifes Por Rângô - FloresMagon - 07/08/2015
Vaya al parecer no tienen imaginacion ni creatividad para aportar sus propias cosas y recurren a aportar algo de otro persona....
Pd: Este no es el codigo original
RE: Ràngós CSGO + Knifes Por Rângô - Nazi.- - 07/08/2015
Facilitas trabajo para los nuevos buen aporte pero como dice flores
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 07/08/2015
(07/08/2015, 09:23 AM) FloresMagon escribió: Vaya al parecer no tienen imaginacion ni creatividad para aportar sus propias cosas y recurren a aportar algo de otro persona....
Pd: Este no es el codigo original
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 07/08/2015
(07/08/2015, 09:17 AM) totopizza escribió: Que ganas de aportar las cosas de kiki yo aportar el weapon cso game?? ese no lo tengo
(07/08/2015, 09:23 AM) FloresMagon escribió: Vaya al parecer no tienen imaginacion ni creatividad para aportar sus propias cosas y recurren a aportar algo de otro persona....
Pd: Este no es el codigo original
.l.
solo queria ser popular en medio de la guerra de ayer
no es el cde original por que nunca lo posteo
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 07/08/2015
(07/08/2015, 06:46 PM) NkkI escribió: (07/08/2015, 09:17 AM) totopizza escribió: Que ganas de aportar las cosas de kiki yo aportar el weapon cso game?? ese no lo tengo
(07/08/2015, 09:23 AM) FloresMagon escribió: Vaya al parecer no tienen imaginacion ni creatividad para aportar sus propias cosas y recurren a aportar algo de otro persona....
Pd: Este no es el codigo original
.l.
solo queria ser popular en medio de la guerra de ayer
no es el cde original por que nunca lo posteo
u.u :'v y como Agg mas knifes u.u? Explica :'v
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 07/08/2015
Código PHP:
new const Knifes [ ][ DATA_K ] = { // nombre mdlv mdlp rango { "Normal" , "v_knife" , "p_knife" , 1 }, { "Knife feo :v" , "v_feo" , "p_feo" , 2 }, //nuevo { "hola soy un knife" , "vmdl" , "pmdl" , 5 } //sin coma el ultimo }
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 07/08/2015
seria algo así ?
Código PHP:
new const Knifes [][ D_K ] = { { "Default" , "v_default" , "p_default" , 1 }, { "Bayonet" , "v_bayonet" , "p_bayonet" , 2 }, { "ButterFly" , "v_butterfly" , "p_butterfly" , 3 }, { "Flip" , "v_flip" , "p_flip" , 4 }, { "Gut" , "v_gut" , "p_gut" , 5 }, { "Huntsman" , "v_huntsman" , "p_huntsman" , 6 }, { "M9 Bayonet" , "v_m9" , "p_m9" , 7 }, { "Karambit" , "v_karambit" , "p_karambit" , 8 } };
RE: Ràngós CSGO + Knifes Por Rângô - FloresMagon - 07/08/2015
El código original ^^
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 07/08/2015
tu si lo tienes u.u
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 07/08/2015
si
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 07/08/2015
u.u
RE: Ràngós CSGO + Knifes Por Rângô - PredatorFlys - 08/08/2015
( 24) Load fails: Plugin uses an unknown function (name "adv_vault_get_field") - check your modules.ini.
a q se debe eso?
RE: Ràngós CSGO + Knifes Por Rângô - Heber[$]ource - 08/08/2015
Ese error es porque no tenes instalado la API de adv vault.
Tenes que descargar el adv_vault.sma, compilarlo, pegarlo en la carpeta plugins y en plugins.ini lo instalas como si fuera un plugin cualquiera (adv_vault.amxx)
Otra cosa, la linea de adv_vault.amxx debe estar puesta mas antes de los plugins que utilizan adv_vault (osea, casi al principio)
RE: Ràngós CSGO + Knifes Por Rângô - DiegeZon KKO - 08/08/2015
Un ejemplo
Código:
Adv_vault.amxx // antes de los rangos
Rangos.amxx /// así debe de estar :)
Aquí esta el .inc y source del adv_vault
--> https://amxmodx-es.com/Thread-API-Advanced-Vault-System-1-5-12-06-2015
RE: Ràngós CSGO + Knifes Por Rângô - PredatorFlys - 08/08/2015
L 08/08/2015 - 20:33:40: [AMXX] Displaying debug trace (plugin "rangos.amxx")
L 08/08/2015 - 20:33:40: [AMXX] Run time error 4: index out of bounds
L 08/08/2015 - 20:33:40: [AMXX] [0] rangos.sma::HUD (line 131)
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 08/08/2015
modificaste algo del plugin o.O?
si no luego veo cuando ande en la pc..
por que el hud si sale, esta default yo solo le agrege knifes.
RE: Ràngós CSGO + Knifes Por Rângô - PredatorFlys - 08/08/2015
si sale bien, solo cambie el tag y el mdl, mas nada, me interesa esto para mi dm, tengo que examinar bien para saber como editar algo en el rank del cuchillo, pero de momento quitar los errores, ah otra cosa no se estan guardando los frags, hago 100 frags me salgo o se cambia mapa y aparecen bugs salen otros rangos y a la final no se guardan.
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 08/08/2015
prueba ahora
RE: Ràngós CSGO + Knifes Por Rângô - PredatorFlys - 09/08/2015
probare, sugerencias si usas Inc colorchat para que agregas un stock chatcolor?
solo cambia Código PHP:
chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ])
--------->
Código PHP:
ColorChat ( id , NORMAL , "%s Felicidades subiste al rango:^x04 [ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ])
y elimina el stock
RE: Ràngós CSGO + Knifes Por Rângô - Hinami - 09/08/2015
a mierda cierto gracias es que acostumbro a usar el inc y ese plug ya trae stock xD
ahora edito
RE: Ràngós CSGO + Knifes Por Rângô - Elaion - 09/08/2015
Pobre kikizon Le roban todas sus ideas
Buen aporte @NkkI
RE: Ràngós CSGO + Knifes Por Rângô - PredatorFlys - 09/08/2015
el adv_vaul tiene problemas de guardado, usare de momento solo el nfvaul