AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [REQ] Help Me! -Menu- (https://forums.alliedmods.net/showthread.php?t=105470)

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 ,
    
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" );
    
RegisterHamHam_Spawn"player""fwPlayerSpawnPost");
    
}

public 
eDeath () {
    new 
attacker read_data );
    new 
headshot read_data );
    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 ] += ;
    }
    
    
ShowHud(attacker);
    
SaveData(attacker);
}

public 
ShowHud id )
{
    
set_hudmessage(25500, -1.00.006.012.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" );
        
        
menu_setprop menu MPROP_EXIT MEXIT_ALL );
        
menu_display id menu );
        
        return 
PLUGIN_CONTINUE ;
    }
    {
        
FirstMenu[id] = true
        
return PLUGIN_CONTINUE ;
    }
}
public 
menu_handler(idmenuitem)
    {
        if( 
item == MENU_EXIT )
        {
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED;
        }
        
        new 
data[6], iName[64];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccessdata,5iName63callback);
        
        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" );
        
menu_additem menu "\yNemesis \d Nivel 2 Requerido" "2" );
        
menu_additem menu "\yDepredador \d Nivel 3 Requerido" "3" );
        
menu_additem menu "\yZombie \d Nivel 4 Requerido" "4" );
        
menu_additem menu "\yBoomber \d Nivel 5 Requerido" "5" );
        
menu_additem menu "\yAlien \d Nivel 6 Requerido" "6" );
        
menu_additem menu "\yPersonajePerfecto \d Nivel 7 Requerido" "7" );
        
        
menu_setprop(menuMPROP_EXITMEXIT_ALL)
        
menu_display(idmenu0)
    }

public 
submenu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        
        if( 
is_user_connected(id) )
            
ExterminationMenu(id);
        
        return 
PLUGIN_HANDLED;
    }
        
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
        
    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 (idCSW_M249200)
            
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_ammoget_pdata_cbase(idm_pActiveItem) , g_MaxClipAmmoiWeapon ] )
            }
        }
        case 
2
        {    
            
strip_user_weapons(id)
            
give_item(id"weapon_knife")
            
set_user_health(id2000)
            
set_user_maxspeed(id320.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(id100
            
set_user_gravity(id0.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(id500)
            
set_user_maxspeed(id400.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(id1500)
            
set_user_armor(id200
            
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(id250)
            
set_user_armor(id100
            
set_user_maxspeed(id350.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(id2500)
            
set_user_armor(id200
            
set_user_maxspeed(id400.0)
            
set_user_gravity(id0.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(id700.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 ) == )
        
LoadData id );
}

public 
client_disconnect id )
{
    if( 
get_pcvar_num gCvar_Enable ) == )
        
SaveData (id);
    
    
PlayerXP id ]    = ;
    
PlayerLevel id ]    = ;
    
PlayerClass id ]    = ;
}

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 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
    
if (idplayers[0] = id
    
else get_players(playerscount"ch")
    for (new 
0counti++)
    {
    if (
is_user_connected(players[i]))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_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

fysiks 10-04-2009 22:59

Re: [REQ] Help Me! -Menu-
 
Did you ask the plugin's author?

Fraancooo-. 10-05-2009 12:26

Re: [REQ] Help Me! -Menu-
 
I do not understand .
:|

"fxfighter" did the tutorial exp...


All times are GMT -4. The time now is 22:41.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.