Írtam a Silent által írt XP Tut-ból egy plugint 1-2 dologgal.
Valaki javítsa ki pls sok hibát dob.
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <hamsandwich>
#include <fun>
#define PLUGIN "Szintrendszer"
#define VERSION "1.0"
#define AUTHOR "[PK]Uwillpay"
#define MAXCLASSES 10
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_KILL,XP_KNIFE,XP_Hs,SaveXP
new g_vault
new const CLASSES[MAXCLASSES] [] = {
"Tulelo",
"Katona",
"Probalkozik",
"Beavatott",
"Tehetseges",
"Rasszista",
"Fajpusztito",
"Remalom",
"BB Kocka",
"Parkour Tag"
}
new const LEVELS[10] = {
0,
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000
}
public plugin_init()
{
register_plugin("Szintrendszer","1.0","[PK]Uwillpay");
register_event("DeathMsg", "eDeath", "a")
SaveXP = register_cvar("SaveXP","1")
XP_Kill = register_cvar("XP_per_kill","20")
XP_Hs = register_cvar("XP_hs_bonus","20")
XP_Knife = register_cvar("XP_knife_bonus","20")
g_vault = nvault_open("szintrendszer")
register_clcmd("say /faj", "ChangeClass")
register_clcmd("say /kaszt", "ChangeClass")
register_clcmd("say /osztaly", "ChangeClass")
register_clcmd("say_team /faj", "ChangeClass")
register_clcmd("say_team /kaszt", "ChangeClass")
register_clcmd("say_team /osztaly", "ChangeClass")
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
}
public eDeath( )
{
new attacker = read_data( 1 )
new iVictim = read_data( 2 )
new headshot = read_data( 3 )
if(PlayerClass[attacker] == 0)
return PLUGIN_CONTINUE
new clip,ammo,weapon = get_user_weapon(attacker,clip,ammo)
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs)
if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_KNIFE)
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
client_print(attacker, print_chat, "\r[Parkour] \yGrat! Te egy \g%i \yszintu \g%s \yvagy!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
PlayerLevel[attacker] += 1
}
ShowHud(attacker)
}
public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15,)
show_hudmessage(id, "\r[Parkour]^n\ySzinted: \g%i^n\yXP-d: \g%i^n\yFajod: /g%s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
public ChangeClass(id)
{
new menu = menu_create("\r[Parkour]Faj Menu" , "Class_Handle");
menu_additem(menu, "\yTulelo", "1", 0);
menu_additem(menu, "\yKatona", "2", 0);
menu_additem(menu, "\yProbalkozik", "3", 0);
menu_additem(menu, "\yBeavatott", "4", 0);
menu_additem(menu, "\yTehetseges", "5", 0);
menu_additem(menu, "\yRasszista", "6", 0);
menu_additem(menu, "\yFajpusztito", "7", 0);
menu_additem(menu, "\yRemalom", "8", 0);
menu_additem(menu, "\yBB Kocka", "9", 0);
menu_additem(menu, "\yParkour Tag", "10", 0);
menu_setprop(menu , MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
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, "\r[Parkour]\yA te uj fajod: \g%s",CLASSES[i])
}
else
{
client_print(id,print_chat,"\r[Parkour]\yEddig is \g%s \yvoltal",CLASSES[id])
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}
public client_connect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{
LoadData(id)
}
}
public client_disconnect(id)
{
if(get_pcvar_num(SaveXP))
{
SaveData(id)
}
}
public SaveData(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%[Parkour]Szintrendszer",name)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
LoadData(id)
{
new name[32];
get_user_name(id, name, 31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s[Parkour]Szintrendszer;", name);
format(vaultdata,255,"%i#%i#",PlayerXP[id]layerLevel[id]);
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
PlayerXP[id] = str_to_num(playerxp);
PlayerLevel[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
//Szintenként HP növelés
public hpadas(id);
{
if(is_user_alive(id);
return PLUGIN_CONTINUE;
{
new elet = get_user_health(if);
set_user_health(id, elet+PlayerLevel[id]*15);
}
return PLUGIN_CONTINUE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/