PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>
new const PLUGIN_NAME[] = "Seviye Plugini";
new const drxp_version[] = "2.0";
new const LEVELS[10] = {
50,
150,
300,
450,
650,
850,
950,
1000,
1150,
1400
}
new drxp_playerxp[33], drxp_playerlevel[33];
new drxp_kill, drxp_knife, drxp_grenade, drxp_hs, drxp_savexp, g_drxp_vault;
public plugin_init()
{
register_plugin(PLUGIN_NAME, drxp_version, "KronoS");
RegisterHam(Ham_Spawn, "player", "drxp_spawn", 1);
register_event("DeathMsg", "drxp_death", "a");
drxp_savexp = register_cvar("drxp_savexp","1");
drxp_kill = register_cvar("drxp_kill", "20");
drxp_knife = register_cvar("drxp_knife","30");
drxp_grenade = register_cvar("drxp_grenade","20");
drxp_hs = register_cvar("drxp_hs","30");
g_drxp_vault = nvault_open("deathrun_xp");
register_concmd("amx_xpalcam", "cmd_take_exp", ADMIN_BAN, "<target> <amount>");
register_concmd("amx_xpvercem", "cmd_give_exp", ADMIN_BAN, "<target> <amount>");
}
public drxp_spawn(id)
{
if((drxp_playerlevel[id] < 10) && (drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]]))
{
client_print(id,print_chat,"[%s].Dusman oldurerek XP kazandin ve seviye atlayin!!", PLUGIN_NAME);
while(drxp_playerxp[id] >= LEVELS[drxp_playerlevel[id]])
{
drxp_playerlevel[id] += 1;
}
}
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], wvar[32];
get_user_name(iVictim,victimname,31);
read_data(4, wvar, 31);
if(equal(wvar, "world", 5))
return;
if(attacker < 1 || attacker > 32)
return;
drxp_playerxp[attacker] += get_pcvar_num(drxp_kill);
client_print(attacker,print_chat,"[%s] Tebrikler %i XP'yi, %s oldurerek kazandin!", PLUGIN_NAME, get_pcvar_num(drxp_kill), victimname);
if(hitplace == HIT_HEAD)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_hs);
client_print(attacker,print_chat,"[%s] Tebrikler %i XP'yi, %s HeadShot ile oldurerek kazandin!", PLUGIN_NAME, get_pcvar_num(drxp_hs), victimname);
}
if(weapon == CSW_KNIFE)
{
drxp_playerxp[attacker] += get_pcvar_num(drxp_knife);
client_print(attacker,print_chat,"[%s] Tebrikler %i XP'yi. %s bicak ile oldurerek kazandin!", PLUGIN_NAME, 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] Tebrikler %i XP'yi. %s bomba ile oldurerek kazandin.!", PLUGIN_NAME, get_pcvar_num(drxp_grenade), victimname);
}
drxp_hudinfo(attacker);
}
public drxp_hudinfo(id)
{
set_hudmessage(255, 0, 0, 0.01, 0.2, 0, 3.0, 90.0);
if(drxp_playerlevel[id] < 10)
show_hudmessage(id, "{Seviye}: %i^n{XP}: %i / %i", drxp_playerlevel[id], drxp_playerxp[id], LEVELS[drxp_playerlevel[id] + 1]);
else
show_hudmessage(id, "{Seviye}: %i^nSon Seviyedesin!!", drxp_playerlevel[id]);
set_task(2.0, "drxp_hudinfo", id);
}
public client_putinserver(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;
}
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#",drxp_playerxp[id],drxp_playerlevel[id]);
nvault_set(g_drxp_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#",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);
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 : [%s] XP'yi %s ' adli oyuncuya verdi.", admin_name, amount, player_name)
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)
client_print(0, print_chat, "[Admin] = %s : [%s] XP'yi %s ' adli oyuncudan aldi.", admin_name, amount, player_name)
drxp_playerxp[player] -= expnum
SaveData(id)
return PLUGIN_CONTINUE
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
![[Resim: KGWySL.png]](https://i.resimyukle.xyz/KGWySL.png)