I have problem with this. It's not completed i know but why 2 classes (zlonierz and kamikadze) have no special abilities? Can someone explain that?
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#define MAXCLASSES 6
enum {
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3, // How many Levels
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6,
PLAYERLEVEL_7,
PLAYERLEVEL_8,
PLAYERLEVEL_9,
PLAYERLEVEL_10
}
enum {
CLASS_BRAK = 0,
CLASS_ZOLNIERZ,
CLASS_KAMIKADZE, // Add your Classes there..
CLASS_MEDYK,
CLASS_SNAJPER,
CLASS_KOMANDOS
}
new const CLASSES[MAXCLASSES][] = {
"Brak",
"Zolnierz",
"Kamikadze",
"Medyk",
"Snajper",
"Komandos"
}
new const LEVELS[10] = {
25,
50,
75,
100,
125,
150,
175,
200,
250,
350
}
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
public plugin_init()
{
register_plugin("WarMod", "1.0", "lisek")
register_event("DeathMsg", "eDeath", "a");
register_logevent("logevent_round_start", 2, "1=Round_Start")
SaveXP = register_cvar("SaveXP","1")
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("warmod")
register_clcmd("say /klasa", "ChangeClass")
register_clcmd("say_team /klasa", "ChangeClass")
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
}
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(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(attacker, print_chat, "*WarMod* Awansujesz! Masz level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
PlayerLevel[attacker] += 1
}
ShowHud(attacker)
SaveData(attacker)
}
public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
show_hudmessage(id, "Level: %i^nXP: %i^nKlasa: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
public ChangeClass(id)
{
new menu = menu_create("Class Menu" , "Class_Handle");
menu_additem(menu ,"Zolnierz", "1" , 0);
menu_additem(menu ,"Kamikaze", "2" , 0);
menu_additem(menu ,"Medyk", "3" , 0);
menu_additem(menu ,"Snajper", "4" , 0);
menu_additem(menu ,"Rambo", "5" , 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[7] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 6 , szName , 63 , callback);
new i = str_to_num(szCommand)
if(PlayerClass[id] != i)
{
PlayerClass[id] = i
client_print(id,print_chat,"Twoja klasa to %s", CLASSES[i])
}
else
{
client_print(id,print_chat,"Aktualnie posiadasz klase %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(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
}
public client_putinserver(id)
set_task(6.0, "ChangeClass", id)
//wlasciwosci poszczegolnych klas
//Zolnierz
public logevent_round_start(id)
{
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 1)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 2)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 3)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_mp5navy");
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 4)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_galil");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 5)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_famas");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 6)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_sg550");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 7)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_sg552");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
give_item(id,"ammo_556nato");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 8)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
give_item(id,"weapon_ak47");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 9)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
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");
}
if (PlayerClass[id] == CLASS_ZOLNIERZ || PlayerLevel[id] == 10)
{
give_item(id,"weapon_deagle");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"ammo_50ae");
give_item(id,"weapon_shield");
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_ak47");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
give_item(id,"ammo_762nato");
give_item(id,"weapon_flashbang");
give_item(id,"weapon_flashbang");
give_item(id,"weapon_smokegrenade");
give_item(id,"weapon_hegrenade")
}
//Kamikadze
if (PlayerClass[id] == CLASS_KAMIKADZE)
{
set_user_maxspeed(id,1000.0);
engclient_cmd(id,"weapon_knife")
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 1)
{
set_user_armor(id,25);
set_user_health(id,25)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 2)
{
set_user_armor(id,50);
set_user_health(id,50)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 3)
{
set_user_armor(id,75);
set_user_health(id,75)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 4)
{
set_user_armor(id,100);
set_user_health(id,100)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 5)
{
set_user_armor(id,125);
set_user_health(id,125)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 6)
{
set_user_armor(id,150);
set_user_health(id,150)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 7)
{
set_user_armor(id,175);
set_user_health(id,175)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 8)
{
set_user_armor(id,200);
set_user_health(id,200)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 9)
{
set_user_armor(id,250);
set_user_health(id,250)
}
if (PlayerClass[id] == CLASS_KAMIKADZE || PlayerLevel[id] == 10)
{
set_user_armor(id,400);
set_user_health(id,400)
}
}