Dzisiaj mam 2 problemiki:
1.
Stworzyłem klasę, która leczy pod PPM [ sprite ściągnąłem od kodu DeadSkull by DarkGL ], jednakże przy zrespieniu się zmienna nie przyjmuje wartości 3.
Spoiler
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <fun>
#define dodaj_exp(%1,%2) cod_set_user_xp(%1, cod_get_user_xp(%1) + %2)
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
new const nazwa[] = "Doktor";
new const opis[] = "Moze uleczac graczy po namierzeniu i nacisnieciu PPM";
new const bronie = 0;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new ma_klase[33];
new index[33];
new ilosc[33];
new const szSprite[] = "sprites/leczenie.spr"
new pSprite;
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
RegisterHam(Ham_Spawn, "player", "Respawn", 1);
}
public plugin_precache()
{
pSprite = precache_model(szSprite)
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
ilosc[id] = 3;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public client_PreThink(id)
{
new button = get_user_button(id)
new oldbutton = get_user_oldbutton(id)
new ofiara, body;
if(ma_klase[id] && button & IN_ATTACK2 && !(oldbutton & IN_ATTACK2))
{
get_user_aiming(id, ofiara, body)
index[id] = ofiara;
Ulecz(id)
}
}
public Ulecz(id)
{
new maxx = 100 + cod_get_user_health(index[id])
new nick[32], nick2[32];
get_user_name(id, nick, 32)
get_user_name(index[id], nick2, 32)
if(!ilosc[id])
{
client_print(id, print_center, "Wykorzystales juz leczenia na te runde")
return PLUGIN_HANDLED;
}
if(get_user_health(index[id]) > (maxx/2))
{
client_print(id, print_center, "Gracz %s ma wiecej niz 50 proc zycia", nick2)
return PLUGIN_HANDLED;
}
if(get_user_team(id) == get_user_team(index[id]))
{
new Float:fOrigin[3];
pev(index[id],pev_origin,fOrigin);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY )
write_byte(TE_SPRITE)
write_coord_f(fOrigin[0])
write_coord_f(fOrigin[1])
write_coord_f(fOrigin[2])
write_short(pSprite)
write_byte(10)
write_byte(255)
message_end()
set_user_health(index[id], maxx)
dodaj_exp(id, 70)
ilosc[id]--
client_print(id, print_center, "[%i/3]Gracz %s uleczony (+70 EXP)", ilosc[id], nick2)
client_print(index[id], print_center, "Zostales uleczony przez %s", nick)
}
return PLUGIN_CONTINUE;
}
public Respawn(id)
{
ilosc[id] = 3;
client_print(id, print_center, "Wyposazyles sie w 3 paczki leczace")
}
2. Nie zapisuje mi się lokalizacja NPC [ http://amxx.pl/topic/128809-npc/ ]. Nie ingerowałem w zapis pozycji. Co robię nie tak?
Z góry dzięki i pozdrawiam!


Dodatki SourceMod














