1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152. | #include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <colorchat>
new const LEVELS[6] = { 0, 200, 400, 800, 1600, 3200 };
new iExp[33],iLvl[33];
new cKill,g_vault;
new doswiadczenie_za_bombe;
new podkladajacy;
new rozbrajajacy;
public plugin_init()
{
register_plugin("exp", "0.1", "Flyen & Harsay & Kruszynka");
register_event("DeathMsg", "EventSmierci", "a");
g_vault = nvault_open("TestExpSave");
cKill = register_cvar("amx_exp_kill", "20");
doswiadczenie_za_bombe = register_cvar("amx_exp_bomb", "100")
register_logevent("BombaPodlozona", 3, "2=Planted_The_Bomb");
register_event("SendAudio", "BombaRozbrojona", "a", "2&%!MRAD_BOMBDEF");
register_event("BarTime", "RozbrajaBombe", "be", "1=10", "1=5")
}
public EventSmierci()
{
new iKiller = read_data(1);
new iVictim = read_data(2);
new gNumExp = get_pcvar_num(cKill);
new Kid[32],Vid[32];
get_user_name(iKiller, Kid, 31);
get_user_name(iVictim, Vid, 31);
if(get_user_team(iKiller) != get_user_team(iVictim))
{
iExp[iKiller] += gNumExp;
ColorChat(iKiller, GREEN, "^x03[Exp]^x04 %s^x01 Otrzymales^x04 %d doswiadczenia^x01 za zabicie^x04 %s",Kid ,gNumExp, Vid);
}
SprawdzPoziom(iKiller);
Zapisz(iKiller);
}
public client_connect(id)
{
Wczytaj(id);
set_task(0.1, "PokazInformacje",id,_,_,"b");
}
public client_disconnect(id)
{
Zapisz(id);
}
public Zapisz(id)
{
new NameID[31];
get_user_name(id,NameID,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_set(g_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public Wczytaj(id)
{
new NameID[31];
get_user_name(id,NameID,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new PEXP[32], PLEV[32];
parse(vaultdata, PEXP, 31, PLEV, 31);
iExp[id] = str_to_num(PEXP);
iLvl[id] = str_to_num(PLEV);
return PLUGIN_CONTINUE;
}
public SprawdzPoziom(id)
{
while(iExp[id] >= LEVELS[iLvl[id]]){
ColorChat(id, GREEN, "^x03[Exp]^x04 Awansowales na kolejny poziom!")
iLvl[id] += 1
}
Zapisz(id);
}
public PokazInformacje(id)
{
if(is_user_alive(id)){
set_hudmessage(255, 0, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
show_hudmessage(id,"[Poziom: %i]^n[Doswiadczenie: %i]", iLvl[id], iExp[id]);
}
return PLUGIN_CONTINUE;
}
public RozbrajaBombe(id)
rozbrajajacy = id;
public BombaPodlozona()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "TERRORIST");
if(get_playersnum() > 1)
{
iExp[podkladajacy] += doswiadczenie_za_bombe;
for (new i=0; i<playerCount; i++)
{
if(id != podkladajacy)
{
iExp[id] += cKill;
client_print(id, print_chat, "[NaturaMod] Dostales %i doswiadczenia za podlozenie bomby przez twoj team.", cKill);
}
else
{
iExp[id] += doswiadczenie_za_bombe;
client_print(id, print_chat, "[NaturaMod] Dostales %i doswiadczenia za podlozenie bomby.", doswiadczenie_za_bombe);
}
SprawdzPoziom(id);
}
}
}
public BombaRozbrojona()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "CT");
iExp[rozbrajajacy] += doswiadczenie_za_bombe;
for (new i=0; i<playerCount; i++)
{
if(id != rozbrajajacy)
{
iExp[id] += cKill;
client_print(id, print_chat, "[NaturaMod] Dostales %i doswiadczenia za rozbrojenie bomby przez twoj team.", cKill);
}
else
{
iExp[id] += doswiadczenie_za_bombe;
client_print(id, print_chat, "[NaturaMod] Dostales %i doswiadczenia za rozbrojenie bomby.",doswiadczenie_za_bombe);
}
SprawdzPoziom(id);
}
}
|