| 2reason2kill |
06-11-2011 04:43 |
Re: [Help]Why does the xp goes with everyclass?
Quote:
Originally Posted by Exolent[jNr]
(Post 1485581)
PHP Code:
#include <amxmodx> #include <amxmisc> #include <nvault> #include <fun> #include <hamsandwich> #include <cstrike> #include <engine>
#define MAXCLASSES 3 #define PREFIX "[ Jumper-Mod]"
enum { PLAYERLEVEL_1, PLAYERLEVEL_2, PLAYERLEVEL_3, PLAYERLEVEL_4, PLAYERLEVEL_5, PLAYERLEVEL_6, PLAYERLEVEL_7, PLAYERLEVEL_8, PLAYERLEVEL_9, PLAYERLEVEL_10, PLAYERLEVEL_11, PLAYERLEVEL_12, PLAYERLEVEL_13, PLAYERLEVEL_14, PLAYERLEVEL_15, PLAYERLEVEL_16, PLAYERLEVEL_17 } enum { CLASS_none = 0, CLASS_Jumper, CLASS_Paladins }
new teleport_counter; new Float:g_lastusetime[33];
new pcv_teleport_cooldown;
new BubbleSprite; new bool:g_bHasSuperKnife[33]; new bool:g_bHasSuperSpeed[33];
new g_iMaxPlayers;
new g_pCvarCostSuperCut, g_pCvarCostLowGrav, g_pCvarQuantityLowGrav, g_pCvarCostSpeed, g_pCvarQuantitySpeed, g_pCvarQuantityHealthCT, g_pCvarCostHealthCT, g_pCvarCostHE, g_pCvarQuantityHealthT1, g_pCvarCostHealthT1, g_pCvarQuantityHealthT2, g_pCvarCostHealthT2, g_pCvarCostInvisinsibilite, g_pCvarTimeInvisinsibilite;
new const CLASSES[MAXCLASSES][] = { "none", "Jumper", "Paladins" };
new const LEVELS[17] = { 0, 200, 400, 800, 1600, 3200, 5400, 6400, 7950, 10000, 15000, 18008, 23548, 25055, 30000, 40050, 60005
};
new PlayerXP[33][MAXCLASSES], PlayerLevel[33][MAXCLASSES], PlayerClass[33]; new gCvar_Kill, gCvar_Knife, gCvar_HS, gCvar_Enable, g_Vault; new bool:NewClass[33];
public plugin_init() { register_plugin("Jumper mod", "1.0", "2Reason2Kill"); RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1);
register_event("DeathMsg", "eDeath", "a"); register_event("ResetHUD", "skill", "be");
gCvar_Enable = register_cvar("xp_save", "1"); gCvar_Kill = register_cvar("xp_per_kill", "20"); gCvar_HS = register_cvar("xp_hs_bonus", "20"); gCvar_Knife = register_cvar("xp_Knife_bonus", "20"); g_Vault = nvault_open("Jumper-Mod"); pcv_teleport_cooldown = register_cvar("xp_teleport_cooldown", "10"); register_concmd("amx_take_exp", "cmd_take_exp", ADMIN_KICK, "<target> <amount>"); register_concmd("amx_give_exp", "cmd_give_exp", ADMIN_KICK, "<target> <amount>"); register_clcmd("say Changeclass", "ChangeClass"); register_clcmd("say_team Changeclass", "ChangeClass"); register_clcmd("say xp", "ShowHud"); register_clcmd("say_team /xp", "ShowHud"); register_clcmd("say class", "ChangeClass"); register_clcmd("say_team /class", "ChangeClass"); register_clcmd("say exp", "ShowHud"); register_clcmd("say_team /exp", "ShowHud"); register_clcmd("jump", "ActivateTeleport"); register_event("CurWeapon", "event_curweap on", "be", "1=1"); register_clcmd("/help", "Help"); register_message(get_user_msgid("ShowMenu"), "message_show_menu") register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu") register_logevent("Event_RoundStart", 2, "1=Round_Start"); register_message(get_user_msgid("TextMsg") ,"message_TextMsg") register_clcmd("/jmshop","Shop") g_pCvarCostSuperCut = register_cvar("shopbb_supercut", "10000"); g_pCvarCostLowGrav = register_cvar("shopbb_grav", "8000"); g_pCvarQuantityLowGrav = register_cvar("shopbb_quant_grav", "0.150"); g_pCvarCostSpeed = register_cvar("shopbb_speed", "8000"); g_pCvarQuantitySpeed = register_cvar("shopbb_quantity_speed", "400.0"); // Cvars CT g_pCvarQuantityHealthCT = register_cvar("shopbb_vie_ct", "150"); g_pCvarCostHealthCT = register_cvar("shopbb_prix_vie_ct", "5000"); g_pCvarCostHE = register_cvar("shopbb_he", "2500"); // Cvars T g_pCvarQuantityHealthT1 = register_cvar("shopbb_health_t1", "2000"); g_pCvarCostHealthT1 = register_cvar("shopbb_prix_health_t1", "8000"); g_pCvarQuantityHealthT2 = register_cvar("shopbb_health_t2", "5000"); g_pCvarCostHealthT2 = register_cvar("shopbb_prix_health_t2", "16000"); g_pCvarCostInvisinsibilite = register_cvar("shopbb_invins", "10000"); g_pCvarTimeInvisinsibilite = register_cvar("shopbb_time_invins", "5.0"); }
public plugin_precache() { precache_sound("jumper/jump.wav"); precache_sound("jumper/levelupcaster.wav"); precache_sound("jumper/error.wav"); BubbleSprite = precache_model("sprites/blueflare2.spr"); }
public fwdPlayerSpawn(id) { if(NewClass[id]) { ShowMenu(id); } else { ShowHud(id); skill(id); } }
public Help(id) { show_motd(id, "Help.txt" , "How To Play?"); }
public eDeath() { new attacker = read_data( 1 ); new headshot = read_data( 3 ); new clip, ammo, weapon = get_user_weapon(attacker, clip, ammo);
PlayerXP[attacker][PlayerClass[attacker]] += get_pcvar_num(gCvar_Kill);
if(headshot) PlayerXP[attacker][PlayerClass[attacker]] += get_pcvar_num(gCvar_HS);
if(weapon == CSW_KNIFE) PlayerXP[attacker][PlayerClass[attacker]] += get_pcvar_num(gCvar_Knife);
ShowHud(attacker); SaveData(attacker); CheckLevel(attacker); }
public CheckLevel(id) { while(PlayerXP[id][PlayerClass[id]] >= LEVELS[PlayerLevel[id][PlayerClass[id]]]) { PlayerLevel[id][PlayerClass[id]] += 1; if(PlayerLevel[id][PlayerClass[id]] != 1) { client_print( id, print_chat, "%s Congratulations! You are a level %i %s!", PREFIX, PlayerLevel[id][PlayerClass[id]], CLASSES[PlayerClass[id]]); client_cmd(id, "spk jumper/levelupcaster.wav") } } ShowHud(id); }
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][PlayerClass[id]], PlayerXP[id][PlayerClass[id]], CLASSES[PlayerClass[id]]); }
public ChangeClass(id) { if(is_user_alive(id)) { NewClass[id] = true; client_print( id, print_chat, "%s You can choose a new class upon spawn.", PREFIX); } else { ShowMenu(id); }
return PLUGIN_CONTINUE; }
public ShowMenu(id) { new menu = menu_create("What side do u chose?" , "Class_Handle"); menu_additem(menu ,"jumper", "1", 0); menu_additem(menu ,"Paladins", "2", 0); menu_setprop(menu , MPROP_EXIT , MEXIT_ALL); menu_display(id , menu , 0);
return PLUGIN_CONTINUE; }
public message_TextMsg( const MsgId, const MsgDest, const MsgEntity ) { static message[32] get_msg_arg_string(2, message, charsmax(message)) if(equal(message, "#Terrorists_Win")) { set_hudmessage( 200, 0, 0, -1.0, 0.40, 4, 3.0, 8.0, 0.0, 0.0, 10); show_hudmessage(0, "The Jumpers Survival!") } else if(equal(message, "#CTs_Win")) { set_hudmessage( 0, 0, 200, -1.0, 0.40, 4, 3.0, 8.0, 0.0, 0.0, 10); show_hudmessage(0, "The Paladins Killed Every Jumper!") } }
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, "%s You are now a %s", PREFIX, CLASSES[i]);
} else { client_print( id, print_chat, "%s You are already a %s", PREFIX, CLASSES[i]); } ShowHud(id); CheckLevel(id); NewClass[id] = false; menu_destroy(menu); return PLUGIN_CONTINUE; }
public Shop(id)
if ( is_user_alive(id) ) { new Text[64]; if(cs_get_user_team(id) == CS_TEAM_T) { new menu1 = menu_create("\y[\rJumpers Shop\y]", "jumperShop"); formatex(Text, charsmax(Text), "\wVitesse \y[\r%d $\y]", get_pcvar_num(g_pCvarCostSpeed)); menu_additem(menu1, Text, "0"); formatex(Text, charsmax(Text), "\wGravity \y[\r%d $\y]", get_pcvar_num(g_pCvarCostLowGrav)); menu_additem(menu1, Text, "1"); formatex(Text, charsmax(Text), "\wSuper Cut \y[\r%d $\y]", get_pcvar_num(g_pCvarCostSuperCut)); menu_additem(menu1, Text, "2"); formatex(Text, charsmax(Text), "\w+%d HP \y[\r%d $\y]", get_pcvar_num(g_pCvarQuantityHealthT1), get_pcvar_num(g_pCvarCostHealthT1)); menu_additem(menu1, Text, "3"); formatex(Text, charsmax(Text), "\w+%d HP \y[\r%d $\y]", get_pcvar_num(g_pCvarQuantityHealthT2), get_pcvar_num(g_pCvarCostHealthT2)); menu_additem(menu1, Text, "4"); formatex(Text, charsmax(Text), "\wInvincible \y[\r%d $\y]", get_pcvar_num(g_pCvarCostInvisinsibilite)); menu_additem(menu1, Text, "5");
menu_setprop(menu1, MPROP_EXITNAME, "Quitter");
menu_display(id, menu1); } else if(cs_get_user_team(id) == CS_TEAM_CT) { new menu2 = menu_create ("\y[\rPaladins\y]", "PaladinsShop"); formatex(Text, charsmax(Text), "\wSuper Cut \y[\r%d $\y]", get_pcvar_num(g_pCvarCostSuperCut)); menu_additem(menu2, Text, "1"); formatex(Text, charsmax(Text), "\wVitesse \y[\r%d $\y]", get_pcvar_num(g_pCvarCostSpeed)); menu_additem(menu2, Text, "2"); formatex(Text, charsmax(Text), "\wGravity \y[\r%d $\y]", get_pcvar_num(g_pCvarCostLowGrav)); menu_additem(menu2, Text, "3"); formatex(Text, charsmax(Text), "\w+%d HP \y[\r%d $\y]", get_pcvar_num(g_pCvarQuantityHealthCT), get_pcvar_num(g_pCvarCostHealthCT)); menu_additem(menu2, Text, "4"); formatex(Text, charsmax(Text), "\wGrenade \y[\r%d $\y]", get_pcvar_num(g_pCvarCostHE)); menu_additem(menu2, Text, "5"); menu_setprop(menu2, MPROP_EXITNAME, "Quitter") menu_setprop(menu2, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu2) } } else { client_print(id, print_chat, "You must be alive for buy !") } } public client_connect(id) { if(get_pcvar_num(gCvar_Enable) == 1) LoadData(id); NewClass[id] = true; }
public client_disconnect(id) { if(get_pcvar_num(gCvar_Enable) == 1) SaveData(id);
arrayset(PlayerXP[id], 0, MAXCLASSES) arrayset(PlayerLevel[id], 0, MAXCLASSES) PlayerClass[id] = 0; }
public SaveData(id) { new AuthID[35]; get_user_authid(id, AuthID, 34); new vaultkey[64], vaultdata[256], len; format(vaultkey, 63, "%s-Mod", AuthID); for(new i = 0; i < MAXCLASSES; i++) { len += formatex(vaultdata, 255, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]); } 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); nvault_get(g_Vault, vaultkey, vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32]; for(new i = 0; i < MAXCLASSES; i++) { strbreak(vaultdata, playerxp, 31, vaultdata, 255); strbreak(vaultdata, playerlevel, 31, vaultdata, 255); PlayerXP[id][i] = str_to_num(playerxp); PlayerLevel[id][i] = str_to_num(playerlevel); }
return PLUGIN_CONTINUE; }
// Give/Take XP addaon by [X]-RayCat public cmd_give_exp( id, level,cid ) { if( ! cmd_access ( id, level, cid, 3 ) ) return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 ); read_argv(2, amount, 20 ); read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( ! player ) return PLUGIN_HANDLED;
new admin_name[32], player_name[32]; get_user_name( id, admin_name, 31 ); get_user_name( player, player_name, 31 );
new expnum = str_to_num( amount );
PlayerXP[player][PlayerClass[player]] += expnum;
switch( get_cvar_num ( "amx_show_activity" ) ) { case 1: client_print( 0, print_chat, "ADMIN: gave %i points for %s.", expnum, player_name ); case 2: client_print( 0, print_chat, "ADMIN %s: gave %i points for %s.", admin_name, expnum, player_name ); }
client_print( player, print_chat, "[%s] You received %i points. (Total: %d)", PREFIX, expnum, PlayerXP[player][PlayerClass[player]] ); SaveData( id );
return PLUGIN_CONTINUE; } public cmd_take_exp( id, level,cid ) { if( ! cmd_access ( id, level, cid, 3 ) ) return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 ); read_argv( 2, amount, 20 ); read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( ! player ) return PLUGIN_HANDLED;
new admin_name[32], player_name[32]; get_user_name( id, admin_name, 31 ); get_user_name( player, player_name, 31 );
new expnum = str_to_num( amount );
PlayerXP[player][PlayerClass[player]] -= expnum;
switch(get_cvar_num("amx_show_activity")) { case 1: client_print( 0, print_chat, "ADMIN: took %i points from %s.", expnum, player_name ); case 2: client_print( 0, print_chat, "ADMIN %s: took %i points from %s.", admin_name, expnum, player_name ); }
client_print( player, print_chat, "%s You lost %i points. (Total: %d)", PREFIX, expnum, PlayerXP[player][PlayerClass[player]] ); SaveData( id );
return PLUGIN_CONTINUE; } public skill(id) { if(!is_user_alive(id)) if (PlayerClass[id] == CLASS_Paladins) {
switch(PlayerLevel[id][CLASS_Paladins]) { case 1: { //Level 1 and 2 set_user_health(id, 100) } } } } //To activate the teleport public ActivateTeleport(id) { if(!is_user_alive(id))
if (PlayerClass[id] == CLASS_Jumper && PlayerLevel[id][CLASS_Jumper] >= 4) { if (get_gametime() - g_lastusetime[id] < get_pcvar_float(pcv_teleport_cooldown)) { set_hudmessage(0, 0, 255, -1.0, -1.0) show_hudmessage(id, "You Must Wait"); client_cmd(id, "spk jumper/error.wav") return 0; }
new OldLocation[3], NewLocation[3]; get_user_origin(id, OldLocation); get_user_origin(id, NewLocation, 3); new UserOrigin[3]; get_user_origin(id, UserOrigin); new BubbleOrigin[3]; BubbleOrigin[0] = UserOrigin[0]; BubbleOrigin[1] = UserOrigin[1]; BubbleOrigin[2] = UserOrigin[2] + 40; message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_SPRITETRAIL); // TE ID write_coord(BubbleOrigin[0]); // Start Position X write_coord(BubbleOrigin[1]); // Start Position Y write_coord(BubbleOrigin[2]); // Start Position Z write_coord(UserOrigin[0]); // End Position X write_coord(UserOrigin[1]); // End Position Y write_coord(UserOrigin[2]); // End Position Z write_short(BubbleSprite); // Sprite Index write_byte(30); // Count write_byte(10); // Life write_byte(1); // Scale write_byte(50); // Velocity Along Vector write_byte(10); // Rendomness of Velocity message_end();
teleport_counter++; client_cmd(id,"spk jumper/jump.wav"); NewLocation[0] += ((NewLocation[0] - OldLocation[0] > 0) ? -50 : 50); NewLocation[1] += ((NewLocation[1] - OldLocation[1] > 0) ? -50 : 50); NewLocation[2] += 40; set_user_origin(id, NewLocation); g_lastusetime[id] = get_gametime(); } return PLUGIN_CONTINUE; }
|
Thnx, But can u tell me what u did change?
I want 2 learn =)
|