i cant teleport I dont know why i changed somethings and then this happen
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;
}