Adding Ranks to Each Level
Hello Im trying to create a new mod called Call Of Duty Mod. I plan on making it like the exact game play of COD 4 MP. So Far this is what I have accomplished. I need Help adding Ranks To Each Level that the player gains.
Here is the Code:
PHP Code:
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nvault> #define MAXCLASSES 6 new const CLASSES[MAXCLASSES][] = { "None", "Assault", "Spec Ops", "Heavy Gunner", "Demolitions", "Sniper" } new const LEVELS[55] = { 0, 30, 120, 270, 480, 750, 1080, 1470, 1920, 2430, 3000, 3650, 4380, 5190, 6080, 7050, 8100, 9230, 10440, 11730, 13100, 14550, 16080, 17690, 19380, 21150, 23000, 24930, 26940, 29030, 31240, 33570, 36020, 38590, 41280, 44090, 47020, 50070, 53240, 56530, 59940, 63470, 67120, 70890, 74780, 82920, 87170, 91540, 96030, 100640, 105370, 110220, 115190, 120280 } new g_msgStatusIcon new PlayerXP[33],PlayerLevel[33],PlayerClass[33] new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault public plugin_init() { register_plugin("CODmod", "1.0", "<STX>Link") g_msgStatusIcon = get_user_msgid("StatusIcon") register_message(g_msgStatusIcon, "msgStatusIcon") register_event("DeathMsg", "eDeath", "a") 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("CODmod") register_clcmd("say /class", "ChangeClass") register_clcmd("say_team /class", "ChangeClass") register_clcmd("say /xp", "ShowHud") register_clcmd("say_team /xp", "ShowHud") } public ChangeClass(id) { new menu = menu_create("Class Menu" , "Class_Handle"); menu_additem(menu ,"Assault", "1" , 0); menu_additem(menu ,"Spec Ops", "2" , 0); menu_additem(menu ,"Heavy Gunner", "3" , 0); menu_additem(menu ,"Demolitions", "4" , 0); menu_additem(menu ,"Sniper", "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[6] , szName[64]; new access , callback; menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback); new i = str_to_num(szCommand) if(PlayerClass[id] != i) { PlayerClass[id] = i client_print(id,print_chat,"You are now a %s",CLASSES[i]) } else { client_print(id,print_chat,"You are alredy a %s",CLASSES[i]) } menu_destroy(menu); return PLUGIN_CONTINUE } public msgStatusIcon(msgid, msgdest, id) { static szIcon[8]; get_msg_arg_string(2, szIcon, 7); if(equal(szIcon, "buyzone") && get_msg_arg_int(1)) { set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0)); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public eDeath(id) { new headshot = read_data( 3 ) new attacker = read_data( 1 ) new clip, ammo, weapon = get_user_weapon(id,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]]) { PlayerLevel[attacker] += 1 client_print(attacker, print_chat, "[COD Mod] Congratulations! You are a level %i %s!", PlayerLevel[attacker], CLASSES[PlayerClass[attacker]]) } 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^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) } 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 }
Here are the Ranks That I would Like to add:
PHP Code:
<Level><Rank><XP Needed> Private First Class 0 2 Private First Class I 30 3 Private First Class II 120 4 Lance Corporal 270 5 Lance Corporal I 480 6 Lance Corporal II 750 7 Corporal 1080 8 Corporal I 1470 9 Corporal II 1920 10 Sargeant 2430 11 Sargeant I 3000 12 Sargeant II 3650 13 Staff Sargeant 4380 14 Staff Sargeant I 5190 15 Straff Sargeant II 6080 16 Gunnery Sargeant 7050 17 Gunnery Sargeant I 8100 18 Gunnery Sargeant II 9230 19 Master Sargeant 10440 20 Master Sargeant I 11730 21 Master Sargeant II 13100 22 Master Gunnery Sergeant 14550 23 Master Gunnery Sergeant I 16080 24 Master Gunnery Sergeant II 17690 25 2nd Lieutenant 19380 26 2nd Lieutenant I 21150 27 2nd Lieutenant II 23000 28 1st Lieutenant 24930 29 1st Lieutenant I 26940 30 1st Lieutenant II 29030 31 Captain 31240 32Captain I 33570 33Captain II 36020 34Major 38590 35 Major I 41280 36 Major II 44090 37 Lt. Colonel 47020 38 Lt. Colonel I 50070 39 Lt. Colonel II 53240 40 Colonel 56530 41 Colonel I 59940 42Colonel II 63470 43Brigadier General 67120 44Brigadier General I 70890 45Brigadier General II 74780 46 Major General 78790 47 Major General II 82920 48 Major General II 87170 49 Lieutenant General 91540 50 Lieutenant General I 96030 51 Lieutenant General II 100640 52 General 105370 53 General I 110220 54 General II 115190 55 Commander 120280
Also I have another Request for help. For Each Class I cant figure out How to add the Weapons for each class. Or I should say rather where I shoulp Put it.
In My code it say for the class menu the Class_Handler Is this where I should set up for each class to give them the appropriate weapons?
|