| Fraancooo-. |
10-04-2009 20:43 |
[REQ] Help Me! -Menu-
PHP Code:
#include <amxmodx> #include <nvault> #include <fun> #include <hamsandwich> #include <cstrike> #include <fakemeta>
#define MAXCLASSES 8 #define PREFIX "ExterminationMod" #define OFFSET_CLIPAMMO 51 #define OFFSET_LINUX_WEAPONS 4 #define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
#define m_pActiveItem 373
enum { PLAYERLEVEL_1 , PLAYERLEVEL_2 , PLAYERLEVEL_3 , PLAYERLEVEL_4 , PLAYERLEVEL_5 , PLAYERLEVEL_6 , PLAYERLEVEL_7 } enum { CLASS_NONE = 0 , CLASS_SURVIVOR , CLASS_NEMESIS , CLASS_DEPREDADOR , CLASS_ZOMBIE , CLASS_BOOMBER , CLASS_ALIEN , CLASS_PERSONAJEPERFECTO } new const CLASSES [ MAXCLASSES ][] = { "None" , "Survivor", "Nemesis" , "Depredador" , "Zombie" , "Boomber" , "Alien" , "PersonajePerfecto" }; new const LEVELS [20] = { 100 , 200 , 400 , 800 , 1600 , 3200 , 6400 };
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
new const g_MaxClipAmmo[] = { 0, 13, //CSW_P228 0, 10, //CSW_SCOUT 0, //CSW_HEGRENADE 7, //CSW_XM1014 0, //CSW_C4 30,//CSW_MAC10 30, //CSW_AUG 0, //CSW_SMOKEGRENADE 15,//CSW_ELITE 20,//CSW_FIVESEVEN 25,//CSW_UMP45 30, //CSW_SG550 35, //CSW_GALIL 25, //CSW_FAMAS 12,//CSW_USP 20,//CSW_GLOCK18 10, //CSW_AWP 30,//CSW_MP5NAVY 100,//CSW_M249 8, //CSW_M3 30, //CSW_M4A1 30,//CSW_TMP 20, //CSW_G3SG1 0, //CSW_FLASHBANG 7, //CSW_DEAGLE 30, //CSW_SG552 30, //CSW_AK47 0, //CSW_KNIFE 50//CSW_P90 }
new bool:speed1[33] new PlayerXP [ 33 ], PlayerLevel [ 33 ], PlayerClass [ 33 ]; new gCvar_Kill , gCvar_Knife , gCvar_HS , gCvar_Enable , g_Vault ; new g_msgSayText new FirstMenu[33] new const warn1[] = { "warn1.wav" }
public plugin_precache () { precache_model("models/player/survivor/survivor.mdl") precache_model("models/player/nemesis/nemesis.mdl") precache_model("models/player/depredador/depredador.mdl") precache_model("models/player/zombie/zombie.mdl") precache_model("models/player/boomber/boomber.mdl") precache_model("models/player/alien/alien.mdl") precache_model("models/player/personajeperfecto/personajeperfecto.mdl") precache_sound("warn1.wav") } public plugin_init () { register_plugin ( "ExterminationMod" , "1.0" , "fxfighter" ); register_event ( "DeathMsg" , "eDeath" , "a" ); register_event ( "ResetHUD" , "skill" , "be" ); register_event("CurWeapon","change_weapon","be","1=1") register_event("CurWeapon" , "Event_CurWeapon" , "be" , "1=1" ) gCvar_Enable = register_cvar ( "xp_save" , "1" ); gCvar_Kill = register_cvar ( "xp_per_kill" , "2" ); gCvar_HS = register_cvar ( "xp_hs_bonus" , "5" ); gCvar_Knife = register_cvar ( "xp_Knife_bonus" , "10" ); g_Vault = nvault_open ( "ExterminationMod" ); g_msgSayText = get_user_msgid("SayText") register_clcmd("chooseteam", "blockteam") register_clcmd("jointeam", "blockteam") register_clcmd ( "say /class" , "ElegirClase" ); register_clcmd ( "say_team /class" , "ElegirClase" ); register_clcmd ( "say /exp" , "ShowHud" ); register_clcmd ( "say_team /exp" , "ShowHud" ); RegisterHam( Ham_Spawn, "player", "fwPlayerSpawnPost", 1 ); }
public eDeath () { new attacker = read_data ( 1 ); new headshot = read_data ( 3 ); new clip , ammo , weapon = get_user_weapon ( attacker , clip , ammo ); PlayerXP [ attacker ] += get_pcvar_num ( gCvar_Kill ); if( headshot ) PlayerXP [ attacker ] += get_pcvar_num ( gCvar_HS ); if( weapon == CSW_KNIFE ) PlayerXP [ attacker ] += get_pcvar_num ( gCvar_Knife ); while( PlayerXP [ attacker ] >= LEVELS [ PlayerLevel [ attacker ]]) { client_print ( attacker , print_chat , "[%s] Felicidades! Tu eres nivel %i %s!" , PREFIX , PlayerLevel [ attacker ], CLASSES [ PlayerClass [ attacker ]]); PlayerLevel [ attacker ] += 1 ; } ShowHud(attacker); SaveData(attacker); }
public ShowHud ( id ) { set_hudmessage(255, 0, 0, -1.0, 0.0, 0, 6.0, 12.0); show_hudmessage(id, "[Nivel]: %i^n------------^n[Exp]: %i^n------------^n[Clase]: %s^n------------" , PlayerLevel [ id ], PlayerXP [ id ], CLASSES [ PlayerClass [ id ]]); }
public ExterminationMenu (id) { if(FirstMenu[id]) { new menu = menu_create ( "\rExterminationMod Menu" , "menu_handler" ); menu_additem ( menu , "\yElegir Tu Personaje" , "1" , 0 ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( id , menu , 0 ); return PLUGIN_CONTINUE ; } { FirstMenu[id] = true return PLUGIN_CONTINUE ; } } public menu_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { ElegirClase(id); } } menu_destroy(menu); return PLUGIN_HANDLED; } ElegirClase(id) { new menu = menu_create("\yElige Tu Clase", "submenu_handler") menu_additem ( menu , "\ySurvivor \d Nivel 1 Requerido" , "1" , 0 ); menu_additem ( menu , "\yNemesis \d Nivel 2 Requerido" , "2" , 0 ); menu_additem ( menu , "\yDepredador \d Nivel 3 Requerido" , "3" , 0 ); menu_additem ( menu , "\yZombie \d Nivel 4 Requerido" , "4" , 0 ); menu_additem ( menu , "\yBoomber \d Nivel 5 Requerido" , "5" , 0 ); menu_additem ( menu , "\yAlien \d Nivel 6 Requerido" , "6" , 0 ); menu_additem ( menu , "\yPersonajePerfecto \d Nivel 7 Requerido" , "7" , 0 ); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) }
public submenu_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); if( is_user_connected(id) ) ExterminationMenu(id); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch (key) { case 1: { strip_user_weapons(id) give_item(id, "weapon_knife") give_item(id, "weapon_m249") cs_set_user_bpammo (id, CSW_M249, 200) cs_set_user_model(id, "models/player/survivor/survivor.mdl") client_cmd(id, "spk %s", warn1) ChatColor(id, "Has Elegido A La Clase: .::Survivor::.") new iWeapon = read_data(2) if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) ) { cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] ) } } case 2: { strip_user_weapons(id) give_item(id, "weapon_knife") set_user_health(id, 2000) set_user_maxspeed(id, 320.0) cs_set_user_model(id, "nemesis") client_cmd(id, "spk %s", warn1) ChatColor(id, "!gHas Elegido A La Clase: .::Nemesis::.") } case 3: { strip_user_weapons(id) give_item(id, "weapon_knife") give_item(id, "weapon_m241") set_user_armor(id, 100) set_user_gravity(id, 0.5) cs_set_user_model(id, "depredador") client_cmd(id, "spk %s", warn1) ChatColor(id, "!g/Has Elegido A La Clase: .::Depredador::.") } case 4: { strip_user_weapons(id) set_user_health(id, 500) set_user_maxspeed(id, 400.0) cs_set_user_model(id, "zombie") client_cmd(id, "spk %s", warn1) ChatColor(id, "!gHas Elegido A La Clase: .::Zombie::.") } case 5: { strip_user_weapons(id) give_item(id, "weapon_knife") set_user_health(id, 1500) set_user_armor(id, 200) client_cmd(id, "spk %s", warn1) ChatColor(id, "!gHas Elegido A La Clase: .::Boomber::.") } case 6: { strip_user_weapons(id) give_item(id, "weapon_knife") set_user_health(id, 250) set_user_armor(id, 100) set_user_maxspeed(id, 350.0) client_cmd(id, "spk %s", warn1) ChatColor(id, "!gHas Elegido A La Clase: .::Alien::.") } case 7: { strip_user_weapons(id) give_item(id, "weapon_knife") set_user_health(id, 2500) set_user_armor(id, 200) set_user_maxspeed(id, 400.0) set_user_gravity(id, 0.5) client_cmd(id, "spk %s", warn1) ChatColor(id, "!gHas Elegido A La Clase: .::PersonajePerfecto::.") } } menu_destroy(menu); ExterminationMenu(id); return PLUGIN_HANDLED; }
public change_weapon(id) { set_task(0.1, "change_weapon", id) if(speed1[id]) { set_user_maxspeed(id, 700.0) } } public blockteam(id) { if(cs_get_user_team(id) == CS_TEAM_SPECTATOR || cs_get_user_team(id) == CS_TEAM_UNASSIGNED) return PLUGIN_CONTINUE; else { ExterminationMenu(id) } return PLUGIN_HANDLED; }
public client_connect ( id ) { if( get_pcvar_num ( gCvar_Enable ) == 1 ) LoadData ( id ); }
public client_disconnect ( id ) { if( get_pcvar_num ( gCvar_Enable ) == 1 ) SaveData (id); PlayerXP [ id ] = 0 ; PlayerLevel [ id ] = 0 ; PlayerClass [ id ] = 0 ; }
public SaveData ( id ) { new AuthID [ 35 ]; get_user_authid ( id , AuthID , 34 ); new vaultkey [ 64 ], vaultdata [ 256 ]; format ( vaultkey , 63 , "%s-Mod" , AuthID ); format ( vaultdata , 255 , "%i#%i#" , PlayerXP [ id ], PlayerLevel [ id ]); nvault_set ( g_Vault , vaultkey , vaultdata ); return PLUGIN_CONTINUE ; }
public LoadData (id) { new AuthID [ 35 ]; get_user_authid ( id , AuthID , 34 ); new vaultkey [ 64 ], vaultdata [ 256 ]; format ( vaultkey , 63 , "%s-Mod" , AuthID ); format ( vaultdata , 255 , "%i#%i#" , PlayerXP [ id ], PlayerLevel [ id ]); nvault_get ( g_Vault , vaultkey , vaultdata , 255 ); replace_all ( vaultdata , 255 , "#" , " " ); new playerxp [ 32 ], playerlevel [ 32 ]; parse ( vaultdata , playerxp , 31 , playerlevel , 31 ); PlayerXP [ id ] = str_to_num ( playerxp ); PlayerLevel [ id ] = str_to_num ( playerlevel ); return PLUGIN_CONTINUE ; }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!team", "^3") // Team Color if (id) players[0] = id else get_players(players, count, "ch") for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } }
This bug :cry:
1) Do not Open the menu
2) This disordered.
Someone fixes it?
Sorry For My Bad English , Use google translator.
Thanks
|