PDA

View Full Version : [Help]Why does the xp goes with everyclass?


2reason2kill
06-11-2011, 04:05
I does my exp Go with every class?


if im a jumper level 10 then the other class are level 10 how 2 change that?#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], PlayerLevel[33], 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] += 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);

ShowHud(attacker);
SaveData(attacker);

CheckLevel(attacker);
}

public CheckLevel(id)
{
while(PlayerXP[id] >= LEVELS[PlayerLevel[id]])
{
PlayerLevel[id] += 1;
if(PlayerLevel[id] != 1)
{
client_print( id, print_chat, "%s Congratulations! You are a level %i %s!", PREFIX, PlayerLevel[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], PlayerXP[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);

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;
}

// 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] += 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] );
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] -= 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] );
SaveData( id );

return PLUGIN_CONTINUE;
}
public skill(id)
{
if(!is_user_alive(id))


if (PlayerClass[id] == CLASS_Paladins)
{


switch(PlayerLevel[id])
{
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] >= 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;
}

Exolent[jNr]
06-11-2011, 04:31
#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;
}

2reason2kill
06-11-2011, 04:43
;1485581']#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 =)

Exolent[jNr]
06-11-2011, 04:58
new PlayerXP[33][MAXCLASSES], PlayerLevel[33][MAXCLASSES]

Added so that the "xp" and "level" variables are also indexed by a class number.
This separates the "xp" and "level" from each class.

After changing that, I had to change all other lines that used those 2 variables.
Also, the save/load is different since there is more data to save/load.

2reason2kill
06-11-2011, 15:12
;1485608']new PlayerXP[33][MAXCLASSES], PlayerLevel[33][MAXCLASSES]Added so that the "xp" and "level" variables are also indexed by a class number.
This separates the "xp" and "level" from each class.

After changing that, I had to change all other lines that used those 2 variables.
Also, the save/load is different since there is more data to save/load.
Wow Thank u, well explained


i tested but i dont know why i cant teleport now....

Exolent[jNr]
06-11-2011, 16:32
Because you only allow the player to teleport if he is dead.
See the first line in the function: !is_user_alive(id)

2reason2kill
06-11-2011, 16:57
;1485954']Because you only allow the player to teleport if he is dead.
See the first line in the function: !is_user_alive(id)
so ! means OPPOSITE?

And why doesnt the exp save?

nikhilgupta345
06-11-2011, 17:06
Here's just one problem I can see.


len += formatex(vaultdata, 255, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);


->


len += formatex(vaultdata, 255 - len, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);

2reason2kill
06-11-2011, 17:20
Here's just one problem I can see.


len += formatex(vaultdata, 255, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);
->


len += formatex(vaultdata, 255 - len, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);

it didnt work :/

Exolent[jNr]
06-11-2011, 17:46
Yeah, it should be this:
len += formatex(vaultdata[len], 255 - len, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);

2reason2kill
06-12-2011, 05:16
;1486022']Yeah, it should be this:
len += formatex(vaultdata[len], 255 - len, "%i#%i#", PlayerXP[id][i], PlayerLevel[id][i]);
It work:grrr: