2. Jak zrobić że za każde wbicie lvla dostajemy np 1 pkt i za ten pkt możemy dodać w x statystykę
kod do dr będą +
Spoiler
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
new const CHAT_TAG[]="[Deathrun XP]"
new const LEVELS[10] = {
50,
100,
150,
200,
250,
300,
350,
400,
450,
500
}
new drxp_playerxp[33], drxp_playerlevel[33], drxp_respawn[33]
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault, save_methode
public plugin_init()
{
register_plugin("Deathrun XP", "1.1", "nikt")
// Events
register_event("HLTV", "drxp_newround", "a", "1=0", "2=0")
register_event("ResetHUD","drxp_spawn","be")
register_event("DeathMsg", "drxp_death", "a")
// Cvars
drxp_savexp = register_cvar("drxp_savexp","1")
drxp_kill = register_cvar("drxp_kill", "10")
drxp_knife = register_cvar("drxp_knife","5")
drxp_grenade = register_cvar("drxp_grenade","15")
drxp_hs = register_cvar("drxp_hs","10")
save_methode = register_cvar("drxp_save_methode", "2") // 1. nick, 2. Steamid, 3. IP
// nvault
g_drxp_vault = nvault_open("drxp_mod")
// Give xp commands
register_concmd("drxp_take_exp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");
register_concmd("drxp_give_exp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>");
}
public drxp_newround(id)
{
if((drxp_playerlevel[id] > 4) && (drxp_playerlevel[id] < 9))
drxp_respawn[id] = 1
else if(drxp_playerlevel[id] == 10)
drxp_respawn[id] = 2
}
public drxp_spawn(id)
{
if(drxp_playerlevel[id] > 0)
set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id])
}
public drxp_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)
drxp_playerxp[attacker] += get_pcvar_num(drxp_kill)
if(hitplace == HIT_HEAD)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_hs)
client_print(attacker,print_chat,"%s Dostales podwojny %i XP za trafienie %s headshot!", CHAT_TAG, get_pcvar_num(drxp_hs), victimname)
}
else if(weapon == CSW_KNIFE)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_knife)
client_print(attacker,print_chat,"%s Dostales %i XP za zabicie z %s knife!", CHAT_TAG, get_pcvar_num(drxp_knife), victimname)
}
else if(weapon == CSW_HEGRENADE)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade)
client_print(attacker,print_chat,"%s Dostales %i XP za zabicie z %s HE!", CHAT_TAG, get_pcvar_num(drxp_grenade), victimname)
}
else if(drxp_playerxp[attacker] >= LEVELS[drxp_playerlevel[attacker]])
{
drxp_playerlevel[attacker] += 1
client_print(attacker,print_chat,"%s Gratulacje!Wlasnie wbiles level!", CHAT_TAG)
}
drxp_hudinfo(attacker)
SaveData(attacker)
if(drxp_respawn[iVictim] != 0)
set_task( 5.0, "drxp_revive", iVictim)
}
public drxp_revive(id)
ExecuteHamB(Ham_CS_RoundRespawn, id)
public drxp_hudinfo(id)
{
set_hudmessage(255, 255, 255, 0.01, 0.2, 0, 3.0, 3.0)
show_hudmessage(id, "Level: %i^nXP: %i^n",drxp_playerlevel[id],drxp_playerxp[id])
set_task( 2.0, "drxp_hudinfo", id)
}
public client_connect(id)
{
if(get_pcvar_num(drxp_savexp) == 1)
LoadData(id)
set_task( 10.0, "drxp_hudinfo", id)
}
public client_disconnect(id)
{
if(get_pcvar_num(drxp_savexp) == 1)
SaveData(id)
drxp_playerxp[id] = 0
drxp_playerlevel[id] = 0
drxp_respawn[id] = 0
}
public SaveData(id)
{
switch(get_pcvar_num(save_methode))
{
case 1:
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
case 2:
{
new szAuthid[32]
get_user_authid(id, szAuthid, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szAuthid)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
case 3:
{
new szIP[32]
get_user_ip(id, szIP, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szIP)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
}
}
public LoadData(id)
{
switch(get_pcvar_num(save_methode))
{
case 1:
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
case 2:
{
new szAuthid[32]
get_user_name(id, szAuthid, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",szAuthid)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
case 3:
{
new szIP[32]
get_user_name(id, szIP, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szIP)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
}
}
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 );
drxp_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 );
drxp_playerxp[player] -= expnum;
SaveData( id );
return PLUGIN_CONTINUE;
}
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
new const CHAT_TAG[]="[Deathrun XP]"
new const LEVELS[10] = {
50,
100,
150,
200,
250,
300,
350,
400,
450,
500
}
new drxp_playerxp[33], drxp_playerlevel[33], drxp_respawn[33]
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault, save_methode
public plugin_init()
{
register_plugin("Deathrun XP", "1.1", "nikt")
// Events
register_event("HLTV", "drxp_newround", "a", "1=0", "2=0")
register_event("ResetHUD","drxp_spawn","be")
register_event("DeathMsg", "drxp_death", "a")
// Cvars
drxp_savexp = register_cvar("drxp_savexp","1")
drxp_kill = register_cvar("drxp_kill", "10")
drxp_knife = register_cvar("drxp_knife","5")
drxp_grenade = register_cvar("drxp_grenade","15")
drxp_hs = register_cvar("drxp_hs","10")
save_methode = register_cvar("drxp_save_methode", "2") // 1. nick, 2. Steamid, 3. IP
// nvault
g_drxp_vault = nvault_open("drxp_mod")
// Give xp commands
register_concmd("drxp_take_exp", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");
register_concmd("drxp_give_exp", "cmd_give_exp", ADMIN_BAN, "<target> <amount>");
}
public drxp_newround(id)
{
if((drxp_playerlevel[id] > 4) && (drxp_playerlevel[id] < 9))
drxp_respawn[id] = 1
else if(drxp_playerlevel[id] == 10)
drxp_respawn[id] = 2
}
public drxp_spawn(id)
{
if(drxp_playerlevel[id] > 0)
set_user_health(id, get_user_health(id) + 5*drxp_playerlevel[id])
}
public drxp_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)
drxp_playerxp[attacker] += get_pcvar_num(drxp_kill)
if(hitplace == HIT_HEAD)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_hs)
client_print(attacker,print_chat,"%s Dostales podwojny %i XP za trafienie %s headshot!", CHAT_TAG, get_pcvar_num(drxp_hs), victimname)
}
else if(weapon == CSW_KNIFE)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_knife)
client_print(attacker,print_chat,"%s Dostales %i XP za zabicie z %s knife!", CHAT_TAG, get_pcvar_num(drxp_knife), victimname)
}
else if(weapon == CSW_HEGRENADE)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade)
client_print(attacker,print_chat,"%s Dostales %i XP za zabicie z %s HE!", CHAT_TAG, get_pcvar_num(drxp_grenade), victimname)
}
else if(drxp_playerxp[attacker] >= LEVELS[drxp_playerlevel[attacker]])
{
drxp_playerlevel[attacker] += 1
client_print(attacker,print_chat,"%s Gratulacje!Wlasnie wbiles level!", CHAT_TAG)
}
drxp_hudinfo(attacker)
SaveData(attacker)
if(drxp_respawn[iVictim] != 0)
set_task( 5.0, "drxp_revive", iVictim)
}
public drxp_revive(id)
ExecuteHamB(Ham_CS_RoundRespawn, id)
public drxp_hudinfo(id)
{
set_hudmessage(255, 255, 255, 0.01, 0.2, 0, 3.0, 3.0)
show_hudmessage(id, "Level: %i^nXP: %i^n",drxp_playerlevel[id],drxp_playerxp[id])
set_task( 2.0, "drxp_hudinfo", id)
}
public client_connect(id)
{
if(get_pcvar_num(drxp_savexp) == 1)
LoadData(id)
set_task( 10.0, "drxp_hudinfo", id)
}
public client_disconnect(id)
{
if(get_pcvar_num(drxp_savexp) == 1)
SaveData(id)
drxp_playerxp[id] = 0
drxp_playerlevel[id] = 0
drxp_respawn[id] = 0
}
public SaveData(id)
{
switch(get_pcvar_num(save_methode))
{
case 1:
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
case 2:
{
new szAuthid[32]
get_user_authid(id, szAuthid, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szAuthid)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
case 3:
{
new szIP[32]
get_user_ip(id, szIP, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szIP)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_set(g_drxp_vault,vaultkey,vaultdata)
}
}
}
public LoadData(id)
{
switch(get_pcvar_num(save_methode))
{
case 1:
{
new PlayerName[35]
get_user_name(id,PlayerName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",PlayerName)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
case 2:
{
new szAuthid[32]
get_user_name(id, szAuthid, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s",szAuthid)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
case 3:
{
new szIP[32]
get_user_name(id, szIP, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s", szIP)
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
drxp_playerxp[id] = str_to_num(playerxp)
drxp_playerlevel[id] = str_to_num(playerlevel)
}
}
}
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 );
drxp_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 );
drxp_playerxp[player] -= expnum;
SaveData( id );
return PLUGIN_CONTINUE;
}