AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Class problem. (https://forums.alliedmods.net/showthread.php?t=82853)

ianglowz 12-31-2008 03:34

Class problem.
 
How to make the menu can choose the classes?

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta_util>
#include <fakemeta>
#include <hamsandwich>

#define MAXCLASSES 4
#define CLASS_Buggy 1
#define CLASS_Scures 2
#define CLASS_Scooby 3

const HIDE_MONEY = (1<<5)

new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Buggy",
    
"Scures",
    
"Scooby"    
}
new const 
LEVELS[8] = {
    
100
    
200
    
400
    
600,
    
800,
    
900,
    
1000,
    
1500
}
new 
PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new 
XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
new thickness
public plugin_init()
{
    
register_plugin("gHosT_Xp""1.0""ianglowz")
 
    
register_event("DeathMsg""eDeath""a"
    
register_event("ResetHUD","on_spawn","be"
    
    
SaveXP register_cvar("SaveXP","0")
    
XP_Kill=register_cvar("XP_per_kill""20")
    
XP_Hs=register_cvar("XP_hs_bonus","20")
    
XP_Knife=register_cvar("XP_knife_bonus","20")
    
g_vault nvault_open("animod")
    
thickness register_cvar("ghost_glow","15")
 
    
register_clcmd("say /ghost""ChangeClass")
    
register_clcmd("say_team /ghost""ChangeClass")
    
register_clcmd("say /xp""ShowHud")
    
register_clcmd("say_team /xp""ShowHud")
}
public 
eDeath(  ) 
{
    new 
attacker read_data)
    new 
headshot read_data)
    new 
clipammoweapon get_user_weapon(attacker,clip,ammo);
 
    
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
 
    if(
headshot)
    
PlayerXP[attacker] += get_pcvar_num(XP_Hs)
 
    if(
weapon == CSW_KNIFE)
    
PlayerXP[attacker] += get_pcvar_num(XP_Knife)
 
 
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    {
    
client_print(attackerprint_chat"[gHosT XpMod] Congratulations! You are a level %i %s!",PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
    
PlayerLevel[attacker] += 1
    
}

    
ShowHud(attacker)
    
SaveData(attacker)
}

public 
ShowHud(id)
{
    
set_hudmessage(00255, -1.0, -1.0)
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
    
}
public 
ChangeClass(id)
{
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Buggy gHosT""1" 0);
    
menu_additem(menu ,"Scures gHosT""2" 0);
    
menu_additem(menu ,"Scooby gHosT""3" 0);   
 
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
 
    
menu_display(id menu 0);
 
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item
{
    if(
item == MENU_EXIT
    {
 
        
menu_destroy(menu);
 
    }
 
    new 
szCommand[6] , szName[64];
    new 
access callback;
 
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
 
    new 
str_to_num(szCommand)
    if(
PlayerClass[id] != i)
    {
        
PlayerClass[id] = i
        client_print
(id,print_chat,"[gHosT XpMod]You are now a %s",CLASSES[i])
    }
    else
    {
        
client_print(id,print_chat,"[gHosT XpMod]You are already a %s",CLASSES[i])
    }
 
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}
public 
client_connect(id)
{
    if(
get_pcvar_num(SaveXP) == 1)
    {
 
        
LoadData(id)
    }
}
public 
client_disconnect(id)
{
    if(
get_pcvar_num(SaveXP) == 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(vaultdata255"#"" ")
 
    new 
playerxp[32], playerlevel[32]
 
    
parse(vaultdataplayerxp31playerlevel31)
 
    
PlayerXP[id] = str_to_num(playerxp)
    
PlayerLevel[id] = str_to_num(playerlevel)
 
    return 
PLUGIN_CONTINUE
}
public 
on_spawn(id)
{
    
fm_strip_user_weapons(id)    
    
    if (
PlayerLevel[id] == 2
    {               
//
    
set_user_health(id135); 
    
set_user_gravity(id1.5);
    }
    
    if (
PlayerLevel[id] == 3
    {               
//
    
set_user_health(id150); 
    
set_user_gravity(id1.2);
    
set_user_rendering(idkRenderFxGlowShell25500kRenderNormal,get_pcvar_num(thickness))
    }
    
    if (
PlayerLevel[id] == 4
    {               
//
    
set_user_health(id185);
    
set_user_gravity(id1.0);
    
set_user_rendering(idkRenderFxGlowShell71237231kRenderNormal,get_pcvar_num(thickness))
    }
    
    if (
PlayerLevel[id] == 5
    {               
//
    
set_user_health(id200); 
    
set_user_gravity(id0.8);
    
set_user_rendering(idkRenderFxGlowShell2552550kRenderNormal,get_pcvar_num(thickness))
    }
    
    if (
PlayerLevel[id] >= 6
    {               
//
    
set_user_health(id255);
    
set_user_gravity(id0.5);
    
set_user_rendering(idkRenderFxGlowShell255255255kRenderNormal,get_pcvar_num(thickness))
    }

    if (
PlayerClass[id] == CLASS_Buggy)
    {             
//
    
give_item(id"weapon_awp");
    
give_item(id"ammo_338magnum");
    
give_item(id"ammo_338magnum");
    
give_item(id"ammo_338magnum");
    
give_item(id"weapon_hegrenade");
    }             
//
     
    
if (PlayerClass[id] == CLASS_Scures)
    {             
//
    
give_item(id"weapon_m249");
    
give_item(id"weapon_deagle");
    
give_item(id"ammo_556natobox"); 
    
give_item(id"ammo_556natobox");    
    
give_item(id"weapon_hegrenade");
    }             
// 
     
    
if (PlayerClass[id] == CLASS_Scooby)
    {             
//
    
give_item(id"weapon_m4a1");        
    
give_item(id"ammo_556nato");
    
give_item(id"ammo_556nato");
    
give_item(id"ammo_556nato");
    
give_item(id"ammo_556nato");
    
give_item(id"weapon_hegrenade");         
    }
   } 

Because when I choose the classes,it don't give the weapon that I set.

Hawk552 12-31-2008 03:39

Re: Class problem.
 
The XP mod tutorial seriously needs to be taken down. I don't think you could count in a lifetime how many times people have changed a couple of lines in XP mod, had trouble with it because they don't know what they're doing, then go and complain without realizing that they started learning with something much harder than they can handle.

On top of this, the XP mod is done poorly and it uses outdated APIs which discourages people from using things that make it much easier to do what they're trying to do.

As for your question, Search. I'll give you a clue: look for "new menus" in "Code Snippets/Tutorials".

ianglowz 12-31-2008 03:47

Re: Class problem.
 
Thanks.


All times are GMT -4. The time now is 09:12.

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