If this topic is not for this section please move it moderators.
Hellol guys.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <nvault>
new const prefix[]="[Deathrun XP Mod]"
new const LEVELS[10] = {
50,
100,
150,
200,
250,
300,
350,
400,
450,
500
}
new drxpmod_playerxp[33], drxpmod_playerlevel[33]
new drxpmod_kill, drxpmod_knife, drxpmod_grenade, drxpmod_hs, drxpmod_invisibility, drxpmod_savexp, g_drxpmod_vault
public plugin_precache()
{
precache_sound("drxpmod_levelup.wav")
}
public plugin_init()
{
register_plugin("Deathrun XP Mod", "1.0", "Fxfighter")
register_event("ResetHUD","drxpmod_spawn","be")
register_event("DeathMsg", "drxpmod_death", "a")
register_dictionary( "deathrunxpmod.txt" )
drxpmod_savexp = register_cvar("drxpmod_savexp","1")
drxpmod_kill = register_cvar("drxpmod_kill", "10")
drxpmod_knife = register_cvar("drxpmod_knife","5")
drxpmod_grenade = register_cvar("drxpmod_grenade","15")
drxpmod_hs = register_cvar("drxpmod_hs","10")
drxpmod_invisibility = register_cvar("drxpmod_invisibility","200")
g_drxpmod_vault = nvault_open("deathrun_xp_mod")
register_concmd("amx_takexp", "cmd_take_exp", ADMIN_IMMUNITY, "<target> <amount>");
register_concmd("amx_givexp", "cmd_give_exp", ADMIN_IMMUNITY, "<target> <amount>");
}
public drxpmod_spawn(id)
{
if((drxpmod_playerlevel[id] < 10) && (drxpmod_playerxp[id] >= LEVELS[drxpmod_playerlevel[id]]))
{
client_print(id,print_chat,"%s %L",prefix, LANG_SERVER, "DRXPMOD_CONGR")
emit_sound(id, CHAN_ITEM, "drxpmodlevelup.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
while(drxpmod_playerxp[id] >= LEVELS[drxpmod_playerlevel[id]])
{
drxpmod_playerlevel[id] += 1
}
}
if(drxpmod_playerlevel[id] > 0 )
{
set_user_health(id, get_user_health(id) + 5*drxpmod_playerlevel[id]);
}
if(drxpmod_playerlevel[id] > 1)
{
give_item(id, "item_assaultsuit" );
}
if(drxpmod_playerlevel[id] > 2)
{
give_item(id, "weapon_hegrenade");
}
if(drxpmod_playerlevel[id] > 3)
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
}
if(drxpmod_playerlevel[id] > 5)
{
set_user_footsteps( id, 1 );
}
if(drxpmod_playerlevel[id] > 6)
{
set_user_maxspeed(id, get_user_maxspeed(id) + 160);
}
if(drxpmod_playerlevel[id] > 7)
{
set_user_gravity (id, 0.5);
}
if(drxpmod_playerlevel[id] > 8)
{
set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(drxpmod_invisibility) );
}
}
public drxpmod_death()
{
new iVictim = read_data( 2 )
new weapon, hitplace, attacker = get_user_attacker(iVictim,weapon,hitplace)
new victimname[32]
get_user_name(iVictim,victimname,31)
new wvar[32]
read_data(4, wvar, 31)
if(equal(wvar, "world", 5)) {
return
}
drxpmod_playerxp[attacker] += get_pcvar_num(drxpmod_kill)
if(hitplace == HIT_HEAD)
{
drxpmod_playerxp[attacker] += get_pcvar_num(drxpmod_hs)
client_print(attacker,print_chat,"%s %L", prefix, LANG_SERVER, "DRXPMOD_HEAD_KILL", get_pcvar_num(drxpmod_hs), victimname)
}
if(weapon == CSW_KNIFE)
{
drxpmod_playerxp[attacker] += get_pcvar_num(drxpmod_knife)
client_print(attacker,print_chat,"%s %L", prefix, LANG_SERVER, "DRXPMOD_KNIFE_KILL", get_pcvar_num(drxpmod_knife), victimname)
}
else if(weapon == CSW_HEGRENADE)
{
drxpmod_playerxp[attacker] += get_pcvar_num(drxpmod_grenade)
client_print(attacker,print_chat,"%s %L", prefix, LANG_SERVER, "DRXPMOD_GRENADE_KILL", get_pcvar_num(drxpmod_grenade), victimname)
}
drxpmod_hudinfo(attacker)
SaveData(attacker)
}
public drxpmod_hudinfo(id)
{
set_hudmessage(0, 156, 255, 0.01, 0.2, 0, 3.0, 3.0, 0.1, 0.2, 1)
show_hudmessage(id, "Level: %i^nXP: %i^n",drxpmod_playerlevel[id],drxpmod_playerxp[id])
set_task( 0.5, "drxpmod_hudinfo", id)
}
public client_connect(id)
{
if(get_pcvar_num(drxpmod_savexp) == 1)
{
LoadData(id)
}
set_task( 0.5, "drxpmod_hudinfo", id)
}
public client_disconnect(id)
{
if(get_pcvar_num(drxpmod_savexp) == 1)
{
SaveData(id)
}
drxpmod_playerxp[id] = 0
drxpmod_playerlevel[id] = 0
}
public SaveData(id)
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxpmod_playerxp[id],drxpmod_playerlevel[id])
nvault_set(g_drxpmod_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxpmod_playerxp[id],drxpmod_playerlevel[id])
nvault_get(g_drxpmod_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxpmod_playerxp[id] = str_to_num(playerxp)
drxpmod_playerlevel[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}
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)
client_print(0, print_chat, "ADMIN %s: give %s xp to %s", admin_name, amount, player_name)
drxpmod_playerxp[player] += expnum
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)
client_print(0, print_chat, "ADMIN %s: take %s xp from %s", admin_name, amount, player_name)
drxpmod_playerxp[player] -= expnum
SaveData(id)
return PLUGIN_CONTINUE
}