PDA

View Full Version : [HELP] XpMOD


Snitch
03-26-2014, 14:55
can someone Add for this Code > Spec name?
I look at someone, then it will show me the
Name: Level | Exp

As it shows mine I'm living.
#include <amxmodx>
#include <fvault>
#include <ColorChat>

new const g_vault_name[] = "EXP_MOD";
new const g_vault_lvl[] = "LVL_MOD";
new const LEVELS[7] = {
30, //lvl 0
80, //lvl 1
220, //lvl 2
370, //lvl 3
600, //lvl 4
1500, //lvl 5
5000 //lvl 6
}

new g_exp[33],g_lvl[33];
new XP_Kill,XP_Knife,XP_Hs,syncObj

public plugin_init()
{
register_plugin("XpMod", "1.0", "JustGo")
register_event("DeathMsg", "eDeath", "a")
XP_Kill=register_cvar("XP_per_kill", "2")
XP_Hs=register_cvar("XP_hs_bonus","3")
XP_Knife=register_cvar("XP_knife_bonus","3")
syncObj = CreateHudSyncObj()
}

public eDeath() //function name
{
// Create a variable to store the attacker's id
new attacker = read_data( 1 )
// We create the victim variable, so that this function can check
// if a player was killed
new iVictim = read_data( 2 )
// If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
new headshot = read_data( 3 )
if(attacker == iVictim)
{
return PLUGIN_HANDLED
}
//which weapon was used
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
// used for the xp_hs cvar
// it checks if the victim was killed by a headshot
if(headshot)
{
g_exp[attacker] += get_pcvar_num(XP_Hs)
}
else if(weapon == CSW_KNIFE)
{
g_exp[attacker] += get_pcvar_num(XP_Knife)
}
else
{
g_exp[attacker] += get_pcvar_num(XP_Kill)
}
while(g_exp[attacker] >= LEVELS[g_lvl[attacker]])
{
g_lvl[attacker] += 1
ColorChat(attacker, NORMAL, "^4[Nex] ^4Congratulations! ^1You are level^3 %i ", g_lvl[attacker])
}
SaveExp(attacker)
return PLUGIN_HANDLED
}

public show(id)
{
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
ShowSyncHudMsg(id,syncObj, "[ Level: %i| Exp: %i/%i]",g_lvl[id],g_exp[id],LEVELS[g_lvl[id]])
}

public client_putinserver(plr)
{
if( !is_user_hltv(plr) && !is_user_bot(plr) )
{
LoadExp(plr);
}
set_task(1.0, "show", plr, _, _, "b")
}

public client_disconnect(plr)
{
if( g_exp[plr] > 0 )
{
SaveExp(plr);

g_exp[plr] = 0;
}
}

SaveExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
num_to_str(g_lvl[plr], data2, sizeof(data2) - 1);

fvault_set_data(g_vault_lvl, authid, data2);
new data[16];
num_to_str(g_exp[plr], data, sizeof(data) - 1);

fvault_set_data(g_vault_name, authid, data);
}

LoadExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
if( fvault_get_data(g_vault_lvl, authid, data2, sizeof(data2) - 1) )
{
g_lvl[plr] = str_to_num(data2);
}
else
{
g_lvl[plr] = 0;
}
new data[16];
if( fvault_get_data(g_vault_name, authid, data, sizeof(data) - 1) )
{
g_exp[plr] = str_to_num(data);
}
else
{
g_exp[plr] = 0;
}
}

Buckshot
03-27-2014, 23:02
new target,body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )

if( target > 0 )
{
set_hudmessage( 0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0 )
show_hudmessage( id, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ id ], g_exp[ id ] );
}


Like this?

Snitch
03-28-2014, 07:50
new target,body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )

if( target > 0 )
{
set_hudmessage( 0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0 )
show_hudmessage( id, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ id ], g_exp[ id ] );
}
Like this?
public show(id)
{
new target,body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )

if( target > 0 )
{
set_hudmessage( 0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0 )
show_hudmessage( id, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ id ], g_exp[ id ] );
}
}
but if someone look at me he see the name and my exp and level?

Buckshot
03-28-2014, 07:58
#include <amxmodx>
#include <fvault>
#include <ColorChat>

new const g_vault_name[] = "EXP_MOD";
new const g_vault_lvl[] = "LVL_MOD";
new const LEVELS[7] = {
30, //lvl 0
80, //lvl 1
220, //lvl 2
370, //lvl 3
600, //lvl 4
1500, //lvl 5
5000 //lvl 6
}

new g_exp[33],g_lvl[33];
new XP_Kill,XP_Knife,XP_Hs,syncObj

public plugin_init()
{
register_plugin("XpMod", "1.0", "JustGo")
register_event("DeathMsg", "eDeath", "a")
XP_Kill=register_cvar("XP_per_kill", "2")
XP_Hs=register_cvar("XP_hs_bonus","3")
XP_Knife=register_cvar("XP_knife_bonus","3")
syncObj = CreateHudSyncObj()
}

public eDeath() //function name
{
// Create a variable to store the attacker's id
new attacker = read_data( 1 )
// We create the victim variable, so that this function can check
// if a player was killed
new iVictim = read_data( 2 )
// If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
new headshot = read_data( 3 )
if(attacker == iVictim)
{
return PLUGIN_HANDLED
}
//which weapon was used
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
// used for the xp_hs cvar
// it checks if the victim was killed by a headshot
if(headshot)
{
g_exp[attacker] += get_pcvar_num(XP_Hs)
}
else if(weapon == CSW_KNIFE)
{
g_exp[attacker] += get_pcvar_num(XP_Knife)
}
else
{
g_exp[attacker] += get_pcvar_num(XP_Kill)
}
while(g_exp[attacker] >= LEVELS[g_lvl[attacker]])
{
g_lvl[attacker] += 1
ColorChat(attacker, NORMAL, "^4[Nex] ^4Congratulations! ^1You are level^3 %i ", g_lvl[attacker])
}
SaveExp(attacker)
return PLUGIN_HANDLED
}

public show(id)
{
new target[32],body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if( target > 0 )
{
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
}

public client_putinserver(plr)
{
if( !is_user_hltv(plr) && !is_user_bot(plr) )
{
LoadExp(plr);
}
set_task(1.0, "show", plr, _, _, "b")
}

public client_disconnect(plr)
{
if( g_exp[plr] > 0 )
{
SaveExp(plr);

g_exp[plr] = 0;
}
}

SaveExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
num_to_str(g_lvl[plr], data2, sizeof(data2) - 1);

fvault_set_data(g_vault_lvl, authid, data2);
new data[16];
num_to_str(g_exp[plr], data, sizeof(data) - 1);

fvault_set_data(g_vault_name, authid, data);
}

LoadExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
if( fvault_get_data(g_vault_lvl, authid, data2, sizeof(data2) - 1) )
{
g_lvl[plr] = str_to_num(data2);
}
else
{
g_lvl[plr] = 0;
}
new data[16];
if( fvault_get_data(g_vault_name, authid, data, sizeof(data) - 1) )
{
g_exp[plr] = str_to_num(data);
}
else
{
g_exp[plr] = 0;
}
}


Try this.. I do not know if it compiles at all since i don't have the fvault include.. But hopefully it works

Snitch
03-28-2014, 08:21
#include <amxmodx>
#include <fvault>
#include <ColorChat>

new const g_vault_name[] = "EXP_MOD";
new const g_vault_lvl[] = "LVL_MOD";
new const LEVELS[7] = {
30, //lvl 0
80, //lvl 1
220, //lvl 2
370, //lvl 3
600, //lvl 4
1500, //lvl 5
5000 //lvl 6
}

new g_exp[33],g_lvl[33];
new XP_Kill,XP_Knife,XP_Hs,syncObj

public plugin_init()
{
register_plugin("XpMod", "1.0", "JustGo")
register_event("DeathMsg", "eDeath", "a")
XP_Kill=register_cvar("XP_per_kill", "2")
XP_Hs=register_cvar("XP_hs_bonus","3")
XP_Knife=register_cvar("XP_knife_bonus","3")
syncObj = CreateHudSyncObj()
}

public eDeath() //function name
{
// Create a variable to store the attacker's id
new attacker = read_data( 1 )
// We create the victim variable, so that this function can check
// if a player was killed
new iVictim = read_data( 2 )
// If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
new headshot = read_data( 3 )
if(attacker == iVictim)
{
return PLUGIN_HANDLED
}
//which weapon was used
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
// used for the xp_hs cvar
// it checks if the victim was killed by a headshot
if(headshot)
{
g_exp[attacker] += get_pcvar_num(XP_Hs)
}
else if(weapon == CSW_KNIFE)
{
g_exp[attacker] += get_pcvar_num(XP_Knife)
}
else
{
g_exp[attacker] += get_pcvar_num(XP_Kill)
}
while(g_exp[attacker] >= LEVELS[g_lvl[attacker]])
{
g_lvl[attacker] += 1
ColorChat(attacker, NORMAL, "^4[Nex] ^4Congratulations! ^1You are level^3 %i ", g_lvl[attacker])
}
SaveExp(attacker)
return PLUGIN_HANDLED
}

public show(id)
{
new target[32],body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if( target > 0 )
{
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
}

public client_putinserver(plr)
{
if( !is_user_hltv(plr) && !is_user_bot(plr) )
{
LoadExp(plr);
}
set_task(1.0, "show", plr, _, _, "b")
}

public client_disconnect(plr)
{
if( g_exp[plr] > 0 )
{
SaveExp(plr);

g_exp[plr] = 0;
}
}

SaveExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
num_to_str(g_lvl[plr], data2, sizeof(data2) - 1);

fvault_set_data(g_vault_lvl, authid, data2);
new data[16];
num_to_str(g_exp[plr], data, sizeof(data) - 1);

fvault_set_data(g_vault_name, authid, data);
}

LoadExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
if( fvault_get_data(g_vault_lvl, authid, data2, sizeof(data2) - 1) )
{
g_lvl[plr] = str_to_num(data2);
}
else
{
g_lvl[plr] = 0;
}
new data[16];
if( fvault_get_data(g_vault_name, authid, data, sizeof(data) - 1) )
{
g_exp[plr] = str_to_num(data);
}
else
{
g_exp[plr] = 0;
}
}
Try this.. I do not know if it compiles at all since i don't have the fvault include.. But hopefully it works
get_user_aiming( id, target, body )Error: Array must be indexed (variable "target") on line 77
Error: Argument type mismatch (argument 2) on line 72
Error: Argument type mismatch (argument 1) on line 73
Error: Array must be indexed (variable "target") on line 75

*Edit:*
But if i Alive if you can make like this
Level | exp

if im spec on someone i mean if im dead so Name | level | exp

amx_tiger
03-28-2014, 14:10
public show(id)
{
new target[32],body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if( target > 0 )
{
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
}

-->


public show(id)
{
new target,body;
get_user_aiming( id, target, body )
if( target > 0 )
{
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if (!is_user_alive(id))
{
new szName[ 32 ]
get_user_name( target, szName, charsmax( szName ) )
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
else
ShowSyncHudMsg(id,syncObj, "Level: %i | Exp: %i/%i", g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])

}
}

Snitch
03-29-2014, 18:01
public show(id)
{
new target[32],body;
new szName[ 32 ]
get_user_aiming( id, target, body )
get_user_name( target, szName, charsmax( szName ) )
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if( target > 0 )
{
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
}-->


public show(id)
{
new target,body;
get_user_aiming( id, target, body )
if( target > 0 )
{
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
if (!is_user_alive(id))
{
new szName[ 32 ]
get_user_name( target, szName, charsmax( szName ) )
ShowSyncHudMsg(id,syncObj, "Name: %s | Level: %i | Exp: %i/%i", szName, g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])
}
else
ShowSyncHudMsg(id,syncObj, "Level: %i | Exp: %i/%i", g_lvl[ target ], g_exp[ target ], LEVELS[g_lvl[ target ]])

}
}

It shows me a few seconds and then disappears or it does not show anything..

and sometime when im moveing it disappears the message and sometimes it shows

xxxperts
03-30-2014, 02:53
can someone Add for this Code > Spec name?
I look at someone, then it will show me the
Name: Level | Exp

As it shows mine I'm living.
#include <amxmodx>
#include <fvault>
#include <ColorChat>

new const g_vault_name[] = "EXP_MOD";
new const g_vault_lvl[] = "LVL_MOD";
new const LEVELS[7] = {
30, //lvl 0
80, //lvl 1
220, //lvl 2
370, //lvl 3
600, //lvl 4
1500, //lvl 5
5000 //lvl 6
}

new g_exp[33],g_lvl[33];
new XP_Kill,XP_Knife,XP_Hs,syncObj

public plugin_init()
{
register_plugin("XpMod", "1.0", "JustGo")
register_event("DeathMsg", "eDeath", "a")
XP_Kill=register_cvar("XP_per_kill", "2")
XP_Hs=register_cvar("XP_hs_bonus","3")
XP_Knife=register_cvar("XP_knife_bonus","3")
syncObj = CreateHudSyncObj()
}

public eDeath() //function name
{
// Create a variable to store the attacker's id
new attacker = read_data( 1 )
// We create the victim variable, so that this function can check
// if a player was killed
new iVictim = read_data( 2 )
// If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
new headshot = read_data( 3 )
if(attacker == iVictim)
{
return PLUGIN_HANDLED
}
//which weapon was used
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
// used for the xp_hs cvar
// it checks if the victim was killed by a headshot
if(headshot)
{
g_exp[attacker] += get_pcvar_num(XP_Hs)
}
else if(weapon == CSW_KNIFE)
{
g_exp[attacker] += get_pcvar_num(XP_Knife)
}
else
{
g_exp[attacker] += get_pcvar_num(XP_Kill)
}
while(g_exp[attacker] >= LEVELS[g_lvl[attacker]])
{
g_lvl[attacker] += 1
ColorChat(attacker, NORMAL, "^4[Nex] ^4Congratulations! ^1You are level^3 %i ", g_lvl[attacker])
}
SaveExp(attacker)
return PLUGIN_HANDLED
}

public show(id)
{
set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 12.0)
ShowSyncHudMsg(id,syncObj, "[ Level: %i| Exp: %i/%i]",g_lvl[id],g_exp[id],LEVELS[g_lvl[id]])
}

public client_putinserver(plr)
{
if( !is_user_hltv(plr) && !is_user_bot(plr) )
{
LoadExp(plr);
}
set_task(1.0, "show", plr, _, _, "b")
}

public client_disconnect(plr)
{
if( g_exp[plr] > 0 )
{
SaveExp(plr);

g_exp[plr] = 0;
}
}

SaveExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
num_to_str(g_lvl[plr], data2, sizeof(data2) - 1);

fvault_set_data(g_vault_lvl, authid, data2);
new data[16];
num_to_str(g_exp[plr], data, sizeof(data) - 1);

fvault_set_data(g_vault_name, authid, data);
}

LoadExp(plr)
{
new authid[35];
get_user_authid(plr, authid, sizeof(authid) - 1);
new data2[16];
if( fvault_get_data(g_vault_lvl, authid, data2, sizeof(data2) - 1) )
{
g_lvl[plr] = str_to_num(data2);
}
else
{
g_lvl[plr] = 0;
}
new data[16];
if( fvault_get_data(g_vault_name, authid, data, sizeof(data) - 1) )
{
g_exp[plr] = str_to_num(data);
}
else
{
g_exp[plr] = 0;
}
}

i had posted this kind of code lets check again & again..! till u dont get.

hornet
03-30-2014, 03:42
Your main issue is that your calling a task to detect looking at a player, rather than a real event such as StatusValue which would be ideal for this.

Buckshot
03-30-2014, 03:56
It shows me a few seconds and then disappears or it does not show anything..

and sometime when im moveing it disappears the message and sometimes it shows


Yes. that is what you asked for. This message only shows up while looking at a player.

Snitch
03-30-2014, 06:22
Yes. that is what you asked for. This message only shows up while looking at a player.
I know, it work perfect but my exp and level sometimes disappears when im moveing with bh

But anywayswork i will fix it