Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
Buenas quisiera saber como edito los frags de cada kenife que no encuentro nada que yo sepa... Porfavor.
Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
new kKnifeSelected[ 33 ], gFrag[ 33 ];
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS };
new const Knifes[][KNIFE_DATA] ={ { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 1 }, { "Matirllo I", "models/FOX_CTF/v_knife2.mdl", "models/FOX_CTF/p_knife2.mdl", 2 }, { "Matirllo II", "models/FOX_CTF/v_knife3.mdl", "models/FOX_CTF/p_knife3.mdl", 3 } };
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); register_event("DeathMsg", "EventoM", "a"); register_clcmd( "say /knife", "ShowMenuKnifes" ); }
public ham_KnifeDeployPost( wpn_ent ){ static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public ShowMenuKnifes( index ){ static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\d%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \nivel: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); } public EventoM(){ new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
24/09/2018, 06:47 PM
(Última modificación: 24/09/2018, 06:49 PM por Juansi Loow.)
Edita el ultimo parametro
Código PHP: //NOMBRE CUCHI - MODEL_V - MODEL_P - FRAGS { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 25 }, { "Matirllo I", "models/FOX_CTF/v_knife2.mdl", "models/FOX_CTF/p_knife2.mdl", 30 }, { "Matirllo II", "models/FOX_CTF/v_knife3.mdl", "models/FOX_CTF/p_knife3.mdl", 50 }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
(24/09/2018, 06:47 PM)Juansi Loow escribió: Edita el ultimo parametro
Código PHP: //NOMBRE CUCHI - MODEL_V - MODEL_P - FRAGS { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 25 }, { "Matirllo I", "models/FOX_CTF/v_knife2.mdl", "models/FOX_CTF/p_knife2.mdl", 30 }, { "Matirllo II", "models/FOX_CTF/v_knife3.mdl", "models/FOX_CTF/p_knife3.mdl", 50 }
Gracias, probare... oye y ya solucione lo de mi ctf
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
(24/09/2018, 06:50 PM)Alejandro escribió: (24/09/2018, 06:47 PM)Juansi Loow escribió: Edita el ultimo parametro
Código PHP: //NOMBRE CUCHI - MODEL_V - MODEL_P - FRAGS { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 25 }, { "Matirllo I", "models/FOX_CTF/v_knife2.mdl", "models/FOX_CTF/p_knife2.mdl", 30 }, { "Matirllo II", "models/FOX_CTF/v_knife3.mdl", "models/FOX_CTF/p_knife3.mdl", 50 }
Gracias, probare... oye y ya solucione lo de mi ctf Probalo, y me alegro !
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
24/09/2018, 07:25 PM
(Última modificación: 24/09/2018, 08:01 PM por Alejandro.)
(24/09/2018, 07:04 PM)Juansi Loow escribió: (24/09/2018, 06:50 PM)Alejandro escribió: (24/09/2018, 06:47 PM)Juansi Loow escribió: Edita el ultimo parametro
Código PHP: //NOMBRE CUCHI - MODEL_V - MODEL_P - FRAGS { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 25 }, { "Matirllo I", "models/FOX_CTF/v_knife2.mdl", "models/FOX_CTF/p_knife2.mdl", 30 }, { "Matirllo II", "models/FOX_CTF/v_knife3.mdl", "models/FOX_CTF/p_knife3.mdl", 50 }
Gracias, probare... oye y ya solucione lo de mi ctf Probalo, y me alegro ! esta bien, ahora pero cuando escojo un cuchillo, y quiero escojer otro no puedo :3
Miento si sirve ya probe, pero poria aumentar daño a cada una?
Bro otra cosa los nivees o frags no e guardan
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
El ultimo parametro es el daño de cada cuchillo
Prueba
Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
new kKnifeSelected[ 33 ], gFrag[ 33 ];
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 5, 1.0 }, { "Matirllo I", "models/v_knife.mdl", "models/p_knife.mdl", 7, 2.5}, { "Matirllo II", "models/v_knife.mdl", "models/p_knife.mdl", 10, 4.0} };
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "EventoM", "a"); register_clcmd( "say /knife", "ShowMenuKnifes" ); }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\d%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \nivel: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); } public EventoM(){ new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
24/09/2018, 08:09 PM
(Última modificación: 24/09/2018, 08:17 PM por Alejandro.)
(24/09/2018, 08:03 PM)Juansi Loow escribió: El ultimo parametro es el daño de cada cuchillo
Prueba
Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
new kKnifeSelected[ 33 ], gFrag[ 33 ];
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 5, 1.0 }, { "Matirllo I", "models/v_knife.mdl", "models/p_knife.mdl", 7, 2.5}, { "Matirllo II", "models/v_knife.mdl", "models/p_knife.mdl", 10, 4.0} };
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "EventoM", "a"); register_clcmd( "say /knife", "ShowMenuKnifes" ); }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\d%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \nivel: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); } public EventoM(){ new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
calidad pero el guardado es lo unico que falta osea si cambio mapa se me quita el knife
Otra pregunta esto me sirve para dar frags? o le falta algo Código PHP: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author"
public plugin_init() { register_concmd("dar_frags", "cmd_frags", ADMIN_RCON, " - Frags [Nombre] [Cantidad]"); } public cmd_frag(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; // Retrieve arguments static arg[32], arg2[6], player, frag read_argv(1, arg, sizeof arg - 1) read_argv(2, arg2, sizeof arg2 - 1) player = cmd_target(id, arg, CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF) // Invalid target if (!player) return PLUGIN_HANDLED; // Increase Points frag = (str_to_num(arg2)) client_print(id, print_chat, "Le Diste %d Frags a %s", frag, arg) client_print(player, print_chat, "te dieron %d De Frags", frag) return PLUGIN_HANDLED; }
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <adv_vault>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
enum _:CAMPOS_VAULT { CAMPO_KNIFE_SELECTED }
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 1, 1.0 }, { "Martillo I", "models/v_knife.mdl", "models/p_knife.mdl", 3, 2.5}, { "Martillo II", "models/v_knife.mdl", "models/p_knife.mdl", 5, 4.0} }; new kKnifeSelected[33] new gFrag[33]; new g_Campos[CAMPOS_VAULT]; new g_Vault; new g_MaxPlayers new g_Nombre[33][32];
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "Event_DeathMsg", "a"); register_logevent("EventRoundStart", 2, "0=World triggered", "1=Round_Start") register_clcmd( "say /knife", "ShowMenuKnifes" ); g_Vault = adv_vault_open("Save_KnifeADV", false); g_Campos[CAMPO_KNIFE_SELECTED] = adv_vault_register_field(g_Vault, "knife_selected"); adv_vault_init(g_Vault); g_MaxPlayers = get_maxplayers() }
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public client_putinserver(id) { get_user_name( id, g_Nombre[ id ], charsmax( g_Nombre[ ] ) ); Cargar(id) }
public client_disconnect(id) { Guardar(id) }
public EventRoundStart() { for(new id = 1; id <= g_MaxPlayers; id++) { Guardar(id) } }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public Event_DeathMsg() { new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\w%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \dFRAGS: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); }
public Guardar(id) { adv_vault_set_start(g_Vault); adv_vault_set_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED], kKnifeSelected[id]);
adv_vault_set_end(g_Vault, 0, g_Nombre[id]); }
public Cargar(id) { if(!adv_vault_get_prepare(g_Vault, _, g_Nombre[id])) return; kKnifeSelected[id] = adv_vault_get_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED]); }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
24/09/2018, 09:21 PM
(Última modificación: 24/09/2018, 09:27 PM por Alejandro.)
(24/09/2018, 08:32 PM)Juansi Loow escribió: Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <adv_vault>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
enum _:CAMPOS_VAULT { CAMPO_KNIFE_SELECTED }
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 1, 1.0 }, { "Martillo I", "models/v_knife.mdl", "models/p_knife.mdl", 3, 2.5}, { "Martillo II", "models/v_knife.mdl", "models/p_knife.mdl", 5, 4.0} }; new kKnifeSelected[33] new gFrag[33]; new g_Campos[CAMPOS_VAULT]; new g_Vault; new g_MaxPlayers new g_Nombre[33][32];
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "Event_DeathMsg", "a"); register_logevent("EventRoundStart", 2, "0=World triggered", "1=Round_Start") register_clcmd( "say /knife", "ShowMenuKnifes" ); g_Vault = adv_vault_open("Save_KnifeADV", false); g_Campos[CAMPO_KNIFE_SELECTED] = adv_vault_register_field(g_Vault, "knife_selected"); adv_vault_init(g_Vault); g_MaxPlayers = get_maxplayers() }
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public client_putinserver(id) { get_user_name( id, g_Nombre[ id ], charsmax( g_Nombre[ ] ) ); Cargar(id) }
public client_disconnect(id) { Guardar(id) }
public EventRoundStart() { for(new id = 1; id <= g_MaxPlayers; id++) { Guardar(id) } }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public Event_DeathMsg() { new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\w%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \dFRAGS: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); }
public Guardar(id) { adv_vault_set_start(g_Vault); adv_vault_set_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED], kKnifeSelected[id]);
adv_vault_set_end(g_Vault, 0, g_Nombre[id]); }
public Cargar(id) { if(!adv_vault_get_prepare(g_Vault, _, g_Nombre[id])) return; kKnifeSelected[id] = adv_vault_get_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED]); }
necesito el plugin adv_vault?
(24/09/2018, 08:32 PM)Juansi Loow escribió: Código PHP: #include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <adv_vault>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
enum _:CAMPOS_VAULT { CAMPO_KNIFE_SELECTED }
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 1, 1.0 }, { "Martillo I", "models/v_knife.mdl", "models/p_knife.mdl", 3, 2.5}, { "Martillo II", "models/v_knife.mdl", "models/p_knife.mdl", 5, 4.0} }; new kKnifeSelected[33] new gFrag[33]; new g_Campos[CAMPOS_VAULT]; new g_Vault; new g_MaxPlayers new g_Nombre[33][32];
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "Event_DeathMsg", "a"); register_logevent("EventRoundStart", 2, "0=World triggered", "1=Round_Start") register_clcmd( "say /knife", "ShowMenuKnifes" ); g_Vault = adv_vault_open("Save_KnifeADV", false); g_Campos[CAMPO_KNIFE_SELECTED] = adv_vault_register_field(g_Vault, "knife_selected"); adv_vault_init(g_Vault); g_MaxPlayers = get_maxplayers() }
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public client_putinserver(id) { get_user_name( id, g_Nombre[ id ], charsmax( g_Nombre[ ] ) ); Cargar(id) }
public client_disconnect(id) { Guardar(id) }
public EventRoundStart() { for(new id = 1; id <= g_MaxPlayers; id++) { Guardar(id) } }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public Event_DeathMsg() { new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\w%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \dFRAGS: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); }
public Guardar(id) { adv_vault_set_start(g_Vault); adv_vault_set_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED], kKnifeSelected[id]);
adv_vault_set_end(g_Vault, 0, g_Nombre[id]); }
public Cargar(id) { if(!adv_vault_get_prepare(g_Vault, _, g_Nombre[id])) return; kKnifeSelected[id] = adv_vault_get_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED]); }
no me abrio el menu
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
24/09/2018, 09:29 PM
(Última modificación: 24/09/2018, 09:30 PM por Juansi Loow.)
Disculpa me olvide de mencionarte. Si necesitas el plugin adv_vault
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
(24/09/2018, 09:29 PM)Juansi Loow escribió: Disculpa me olvide de mencionarte. Si necesitas el plugin adv_vault
oye pero el menu no me abre
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
24/09/2018, 09:41 PM
(Última modificación: 24/09/2018, 09:41 PM por Juansi Loow.)
A mi me funciona bien
Recuerda poner el plugin adv_vault.amxx arriba de todo
adv_vault.amxx
plugin_knife.amxx
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
(24/09/2018, 09:41 PM)Juansi Loow escribió: A mi me funciona bien
Recuerda poner el plugin adv_vault.amxx arriba de todo
adv_vault.amxx
plugin_knife.amxx
asi mismo lo tengo alv xd que sad
Mensajes: 449
Temas: 32
Registro en: Apr 2017
Reputación:
6
te suelta algun log en consola, cuando intentas abrir el menu??
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Mensajes: 299
Temas: 44
Registro en: Aug 2016
Reputación:
2
si tienes un plugin que ejecute el hook say ponlo por debajo
ejemplo
adv_vault.amxx debug
plugin_knife.amxx debug
admin_prefix.amxx debug
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
25/09/2018, 07:28 AM
(Última modificación: 25/09/2018, 07:29 AM por Alejandro.)
Ya solucione muchas gracias a todos
Yo podria diseñar algo para dar frags?
Mensajes: 449
Temas: 32
Registro en: Apr 2017
Reputación:
6
claro que puedes, si tienes la imaginación para hacerlo...
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
xd dentro del plugin me ayudan? un cmd que diga dar_Frags
Mensajes: 449
Temas: 32
Registro en: Apr 2017
Reputación:
6
ya te lo pase por privado, pero que quieres, adaptarlo??
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
25/09/2018, 12:33 PM
(Última modificación: 25/09/2018, 01:53 PM por Juansi Loow.)
(25/09/2018, 11:57 AM)Saber escribió: ya te lo pase por privado, pero que quieres, adaptarlo??
Por que por privado y no por aca ? a alguien mas le puede servir...
PD: alejandro aca tenes, probalo y decime
Código PHP: #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta> #include <adv_vault>
new const P_INFO[][] = { "KnifeMenu", "1.0", "kikizon" };
enum _:KNIFE_DATA { KNIFE_NAME[30], KNIFE_VMDL[ 50 ], KNIFE_PMDL[ 50 ], FRAGS, Float:DAMAGE_KNF };
enum _:CAMPOS_VAULT { CAMPO_KNIFE_SELECTED }
new const Knifes[][KNIFE_DATA] = { { "Default", "models/v_knife.mdl", "models/p_knife.mdl", 1, 1.0 }, { "Martillo I", "models/v_knife.mdl", "models/p_knife.mdl", 3, 2.5}, { "Martillo II", "models/v_knife.mdl", "models/p_knife.mdl", 5, 4.0} }; new kKnifeSelected[33] new gFrag[33]; new g_Campos[CAMPOS_VAULT]; new g_Vault; new g_MaxPlayers new g_Nombre[33][32];
public plugin_init() { register_plugin( P_INFO[ 0 ], P_INFO[ 1 ], P_INFO[ 2 ] ); RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_KnifeDeployPost", true ); RegisterHam(Ham_TakeDamage, "player", "Ham_Take_Damage") register_event("DeathMsg", "Event_DeathMsg", "a"); register_logevent("EventRoundStart", 2, "0=World triggered", "1=Round_Start") register_clcmd( "say /knife", "ShowMenuKnifes" ); register_concmd("amx_frags", "Concmd_Frags", ADMIN_RCON, "<Nombre o #ID> '+' | '-' | 'Cantidad' Ej: amx_frags Usuario +50 o -50 para quitar"); g_Vault = adv_vault_open("Save_KnifeADV", false); g_Campos[CAMPO_KNIFE_SELECTED] = adv_vault_register_field(g_Vault, "knife_selected"); adv_vault_init(g_Vault); g_MaxPlayers = get_maxplayers() }
public plugin_precache() { for(new k = 1; k < sizeof Knifes; ++k) { precache_model( Knifes[ k ][ KNIFE_VMDL ]); precache_model( Knifes[ k ][ KNIFE_PMDL ]); } }
public client_putinserver(id) { get_user_name( id, g_Nombre[ id ], charsmax( g_Nombre[ ] ) ); Cargar(id) }
public client_disconnect(id) { Guardar(id) }
public EventRoundStart() { for(new id = 1; id <= g_MaxPlayers; id++) { Guardar(id) } }
public ham_KnifeDeployPost( wpn_ent ) { static kOwner; kOwner = get_weapon_ent_owner( wpn_ent ); if ( !pev_valid(kOwner) || !is_user_alive( kOwner ) ) return; set_pev( kOwner, pev_viewmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_VMDL ] ); set_pev( kOwner, pev_weaponmodel2, Knifes[ kKnifeSelected[kOwner] ][ KNIFE_PMDL ] ); }
public Ham_Take_Damage(Victima, inflictor, Atacante, Float:Danio, damage_bits) { if(!is_user_alive(Atacante)) return HAM_IGNORED; if(get_user_weapon(Atacante) == CSW_KNIFE ) { Danio *= Knifes[kKnifeSelected[Atacante]][DAMAGE_KNF]; } SetHamParamFloat( 4, Danio ) return HAM_HANDLED; }
public Event_DeathMsg() { new attacker = read_data(1); new victim = read_data(2); if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim)) return ; ++gFrag[attacker]; }
public ShowMenuKnifes( index ) { static k, knife[40], menu; menu = menu_create("\wMenu de Knifes", "menu_knifes" ); for(k = 0; k < sizeof Knifes; ++k ) { if( kKnifeSelected[ index ] == k ) { formatex( knife, charsmax(knife), "\w%s \r[ \yACTUAL \r]", Knifes[ k ][ KNIFE_NAME ] ); menu_additem( menu, knife, "" ); } else { if( gFrag[ index ] >= Knifes[ k ][ FRAGS ] ) menu_additem( menu, Knifes[ k ][ KNIFE_NAME ], "" ); else { formatex( knife, charsmax(knife), "\d%s \r[ \dFRAGS: %d \r]", Knifes[ k ][ KNIFE_NAME ], Knifes[ k ][ FRAGS ] ); menu_additem( menu, knife, "" ); } } } menu_display( index, menu ); }
public menu_knifes( index, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return PLUGIN_HANDLED; } if( kKnifeSelected[ index ] == item ) { client_print( index, print_center, "Ya elegiste este knife"); return PLUGIN_HANDLED; } if( gFrag[ index ] < Knifes[ item ][ FRAGS ]) { client_print( index, print_chat, "Necesitas ser nivel: %d", Knifes[ item ][ FRAGS ] ); return PLUGIN_HANDLED; } kKnifeSelected[ index ] = item; engclient_cmd( index, "weapon_knife"); menu_destroy( menu ); return PLUGIN_HANDLED; }
public Concmd_Frags(id, level, cid) { if (!cmd_access(id,level,cid,2)) { client_print(id, print_chat, "** No tenes acceso para usar este comando.")//, INFOPLUGIN[3]) return PLUGIN_HANDLED } new sArg1[32], NameADM[32], NamePLAYER[32], iJugador get_user_name(id, NameADM, 31) read_argv(1, sArg1, 31) iJugador = cmd_target(id, sArg1, CMDTARGET_ALLOW_SELF); get_user_name(iJugador, NamePLAYER, 31) if(!iJugador) return PLUGIN_HANDLED; new sArg2[21] read_argv(2, sArg2, 20) new iFrags new iLastFrags iFrags = str_to_num(sArg2) iLastFrags = gFrag[iJugador] switch(sArg2[0]) { case '+', '-': { gFrag[iJugador] += iFrags client_print(iJugador, print_chat, "** %s te %s %d Frags (Antes tenias: %d)", NameADM, (sArg2[0] == '+') ? "dio" : "saco", iFrags, iLastFrags) } default: { gFrag[iJugador] = iFrags client_print(id, print_chat, "** Le has editado los Frags a %s y ahora tiene %d Frags (Antes tenia: %d)", NamePLAYER, iFrags, iLastFrags) client_print(iJugador, print_chat, "** %s te ha editado tus Frags, ahora tenes %d Frags^1 ^3(^1Antes tenias: %d)", NameADM, iFrags, iLastFrags) } } return PLUGIN_HANDLED }
stock get_weapon_ent_owner(ent) { if (pev_valid(ent) != 2) return -1; return get_pdata_cbase(ent, 41, 4); }
public Guardar(id) { adv_vault_set_start(g_Vault); adv_vault_set_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED], kKnifeSelected[id]);
adv_vault_set_end(g_Vault, 0, g_Nombre[id]); }
public Cargar(id) { if(!adv_vault_get_prepare(g_Vault, _, g_Nombre[id])) return; kKnifeSelected[id] = adv_vault_get_field(g_Vault, g_Campos[CAMPO_KNIFE_SELECTED]); }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 449
Temas: 32
Registro en: Apr 2017
Reputación:
6
Código PHP: iLastFrags = gFrag[iJugador
------------------->
Código PHP: iLastFrags = gFrag[iJugador]
FIX
Yo no le pase este plugins por privado, le di la idea del Concmd, ya que no me dijo que lo queria adaptado. pero bueno.
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Mensajes: 659
Temas: 97
Registro en: Feb 2016
Reputación:
12
25/09/2018, 04:11 PM
(Última modificación: 25/09/2018, 04:20 PM por Alejandro.)
Oye lo de dar frags no me funciona pong +100 y nada dice solo has dado 0 frags a player Código PHP: /* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3
Version Con Guardado NFVAULT ------------------------------- */
#include <amxmisc> #include <fakemeta> #include <nfvault> #include <jctf>
new const PLUGIN[] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR[] = "kikizon"
/* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web[] = "www.tunserver.com.ve" // Se Muestra en HUD new const Prefijo[] = "!g(!y|!g->!tFox!g<-!y|!g)!y" // Prefijo en say new const Sonido[] = "FOXSOUND_CTF/up.wav" // Sonido Rango UP
new Flags; new g_AdminTag[33][10]
enum _:Data { TAG[10], FLAG }
new const AdminsTags[][Data] = { { "DUEÑO", ADMIN_RCON }, { "SOCIO", ADMIN_IMMUNITY }, { "ADMIN", ADMIN_KICK }, { "SPAMERO", ADMIN_RESERVATION } } /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _:DATA { NOMBRE[30], FRAGS } new const Rangos[][DATA] = { { "Novato", 100 }, { "Amateur", 200 }, { "Amateur II", 300 }, { "Semi PRO", 500 }, { "Semi PRO II", 700 }, { "Semi PRO III", 800 }, { "PRO", 900 }, { "PRO II", 1000 }, { "PRO Gold", 1200 }, { "Semi FOX", 1300 }, { "Semi FOX II", 1400 }, { "FOX COMPLETE",1500 }, { "FOX COMPLETE II", 1700 }, { "FOX LEGEDNARIO", 1800 }, { "FOX LEGENDARIO MASTER", 1900 }, { "FOX LEGENDARIO ELITE", 2000 }, { "OFICIAL FOX", 2100 }, { "OFICIAL FOX MASTER", 2200 }, { "GEFE GUERRILLERO FOX", 2500 } }
/* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/
/* ==================================== *[VARIABLES]* =====================================*/ new g_rango[33], g_frags[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, VERSION, AUTHOR) register_event("DeathMsg", "Event_DeathMsg", "a") register_logevent("logevent_round_end", 2, "1=Round_End") register_clcmd("say", "message_saytext") register_clcmd("say_team", "message_sayteam") /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ 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 /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj() g_maxplayers = get_maxplayers() g_msgTeamInfo = get_user_msgid("TeamInfo") g_msgSayText = get_user_msgid("SayText") nfv_file("Ranguitos", VaultRango, charsmax(VaultRango)) } /* ==================================== *[PRECACHE]* =====================================*/ public plugin_precache() precache_sound(Sonido) /* =================================== *[HUD]* =====================================*/ 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(7, 174, 242, 0.60, 0.67, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d || Rango: %s || Adrenalina: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE],jctf_get_adrenaline(id)) } else { set_hudmessage(7, 174, 242, 0.0, 0.15, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "===|COMUNIDAD FOX|===||>^n||Frags: %d^n||Rango: %s^n======================||>^n||Sig. Rango: %s^n||Frags Restantes: %d^n======================||>^n||%s^n======================||>^n||Adrenalina: %d^n======================||>", g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] - g_frags[id], Web, jctf_get_adrenaline(id)) } } /* ================================== [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") if(!is_user_admin(id)) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), "") return } Flags = get_user_flags( id ); for(new i; i < sizeof AdminsTags; i++) { if(Flags & AdminsTags[i][FLAG]) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG]) break; } } } /* ================================== [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) new weaponid = get_user_weapon(attacker) if(victim == attacker) return; if(is_user_alive(attacker)) { g_frags[attacker]++ if(get_pcvar_num(cvar_knifex2)) { if(weaponid == CSW_KNIFE) 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) { chatcolor(id, "%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] == '!' || 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)) format(said, charsmax(said), "^x01%s (^x04 %s^x01 )^x04 [^x03%s^x04]^x01->^x03%s^x01:^x04 %s", alive, Rangos[g_rango[id]][NOMBRE], g_AdminTag[id], name, said) } else { format(said, charsmax(said), "^x01%s (^x04 %s^x01 )^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] == '!' || 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 ^x03[^x01%s^x03] (^x04 %s^x01 )^x04 [^x03%s^x04]^x01->^x03%s^x01:^x04 %s", alive, playerTeam, Rangos[g_rango[id]], g_AdminTag[id], name, said) } else { format(said, charsmax(said), "^x01%s ^x03[^x01%s^x03] ^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 de chatcolor stock chatcolor( id, const input[], any:... ) { static szMsg[ 191 ], msgSayText; if( !msgSayText ) msgSayText = get_user_msgid( "SayText" ); vformat( szMsg, 190, input, 3 );
replace_all( szMsg, 190, "!g", "^4" ); replace_all( szMsg, 190, "!y", "^1" ); replace_all( szMsg, 190, "!t", "^3" ); message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id ); write_byte( id ? id : 33 ); write_string( szMsg ); message_end( ); } // 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; }
Hoidan editen desde este para no tener que cambiar las rutas cada rato xd aja me gustaria que Funcionara lo de dar frags y los frags aparescan tambien en la tabla de score de estadistica, y agregar que los admins puedan usar todas las skins asi no tengan la cantidad de frags porfa Código PHP: /* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3
Version Con Guardado NFVAULT ------------------------------- */
#include <amxmisc> #include <fakemeta> #include <nfvault> #include <jctf>
new const PLUGIN[] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR[] = "kikizon"
/* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web[] = "www.tunserver.com.ve" // Se Muestra en HUD new const Prefijo[] = "!g(!y|!g->!tFox!g<-!y|!g)!y" // Prefijo en say new const Sonido[] = "FOXSOUND_CTF/up.wav" // Sonido Rango UP
new Flags; new g_AdminTag[33][10]
enum _:Data { TAG[10], FLAG }
new const AdminsTags[][Data] = { { "DUEÑO", ADMIN_RCON }, { "SOCIO", ADMIN_IMMUNITY }, { "ADMIN", ADMIN_KICK }, { "SPAMERO", ADMIN_RESERVATION } } /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _:DATA { NOMBRE[30], FRAGS } new const Rangos[][DATA] = { { "Novato", 100 }, { "Amateur", 200 }, { "Amateur II", 300 }, { "Semi PRO", 500 }, { "Semi PRO II", 700 }, { "Semi PRO III", 800 }, { "PRO", 900 }, { "PRO II", 1000 }, { "PRO Gold", 1200 }, { "Semi FOX", 1300 }, { "Semi FOX II", 1400 }, { "FOX COMPLETE",1500 }, { "FOX COMPLETE II", 1700 }, { "FOX LEGEDNARIO", 1800 }, { "FOX LEGENDARIO MASTER", 1900 }, { "FOX LEGENDARIO ELITE", 2000 }, { "OFICIAL FOX", 2100 }, { "OFICIAL FOX MASTER", 2200 }, { "GEFE GUERRILLERO FOX", 2500 } }
/* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/
/* ==================================== *[VARIABLES]* =====================================*/ new g_rango[33], g_frags[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, VERSION, AUTHOR) register_event("DeathMsg", "Event_DeathMsg", "a") register_logevent("logevent_round_end", 2, "1=Round_End") register_clcmd("say", "message_saytext") register_clcmd("say_team", "message_sayteam") /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ 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 /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj() g_maxplayers = get_maxplayers() g_msgTeamInfo = get_user_msgid("TeamInfo") g_msgSayText = get_user_msgid("SayText") nfv_file("Ranguitos", VaultRango, charsmax(VaultRango)) } /* ==================================== *[PRECACHE]* =====================================*/ public plugin_precache() precache_sound(Sonido) /* =================================== *[HUD]* =====================================*/ 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(7, 174, 242, 0.60, 0.67, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d || Rango: %s || Adrenalina: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE],jctf_get_adrenaline(id)) } else { set_hudmessage(7, 174, 242, 0.0, 0.15, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "===|COMUNIDAD FOX|===||>^n||Frags: %d^n||Rango: %s^n======================||>^n||Sig. Rango: %s^n||Frags Restantes: %d^n======================||>^n||%s^n======================||>^n||Adrenalina: %d^n======================||>", g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] - g_frags[id], Web, jctf_get_adrenaline(id)) } } /* ================================== [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") if(!is_user_admin(id)) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), "") return } Flags = get_user_flags( id ); for(new i; i < sizeof AdminsTags; i++) { if(Flags & AdminsTags[i][FLAG]) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG]) break; } } } /* ================================== [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) new weaponid = get_user_weapon(attacker) if(victim == attacker) return; if(is_user_alive(attacker)) { g_frags[attacker]++ if(get_pcvar_num(cvar_knifex2)) { if(weaponid == CSW_KNIFE) 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) { chatcolor(id, "%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] == '!' || 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)) format(said, charsmax(said), "^x01%s (^x04 %s^x01 )^x04 [^x03%s^x04]^x01->^x03%s^x01:^x04 %s", alive, Rangos[g_rango[id]][NOMBRE], g_AdminTag[id], name, said) } else { format(said, charsmax(said), "^x01%s (^x04 %s^x01 )^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] == '!' || 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 ^x03[^x01%s^x03] (^x04 %s^x01 )^x04 [^x03%s^x04]^x01->^x03%s^x01:^x04 %s", alive, playerTeam, Rangos[g_rango[id]], g_AdminTag[id], name, said) } else { format(said, charsmax(said), "^x01%s ^x03[^x01%s^x03] ^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 de chatcolor stock chatcolor( id, const input[], any:... ) { static szMsg[ 191 ], msgSayText; if( !msgSayText ) msgSayText = get_user_msgid( "SayText" ); vformat( szMsg, 190, input, 3 );
replace_all( szMsg, 190, "!g", "^4" ); replace_all( szMsg, 190, "!y", "^1" ); replace_all( szMsg, 190, "!t", "^3" ); message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id ); write_byte( id ? id : 33 ); write_string( szMsg ); message_end( ); } // 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; }
|