Jak zmniejszyć ilość zabieranego hp po zatruciu?
Wrzucam sma bo załączniki z pierwszego postu nie działają.
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <fakemeta>
#define TASK_ID 128000
#define CZAS_LADOWANIA 10 // Jak dlugo ma sie ladowac moc w sekundach
new bool:moc_zaladowana[33];
new bool:ma_klase[33];
new msg_bartime;
new const nazwa[] = "Truciciel";
new const opis[] = "AK47, 1 HE, 1SG, po naladowaniu noza - zatruwa swoich wrogow pociskami.";
new const bronie = 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_AK47;
new const zdrowie = 20;
new const kondycja = 10;
new const inteligencja = 2;
new const wytrzymalosc = 0;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
register_event("CurWeapon", "CurWeapon", "be", "1=1");
register_event("ResetHUD", "ResetHUD", "abe");
register_event("Damage", "Damage", "be", "2!0", "3=0", "4!0")
msg_bartime = get_user_msgid("BarTime");
register_forward(FM_PlayerPreThink, "client_PreThink");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
ma_klase[id] = true;
public cod_class_disabled(id)
ma_klase[id] = false;
public client_PreThink(id)
{
if(!task_exists(id+TASK_ID))
return;
if(pev(id, pev_button) & (IN_MOVELEFT+IN_MOVERIGHT+IN_FORWARD+IN_BACK+IN_JUMP+IN_DUCK))
{
change_task(id+TASK_ID, CZAS_LADOWANIA.0);
set_bartime(id, CZAS_LADOWANIA);
}
}
public CurWeapon(id)
{
if(get_user_weapon(id) == CSW_KNIFE && !moc_zaladowana[id] && ma_klase[id])
{
set_task(CZAS_LADOWANIA.0, "MocZaladowana", id+TASK_ID);
set_bartime(id, CZAS_LADOWANIA);
}
else
{
remove_task(id+TASK_ID);
set_bartime(id, 0);
}
}
stock set_bartime(id, czas)
{
message_begin((id)?MSG_ONE:MSG_ALL, msg_bartime, _, id)
write_short(czas);
message_end();
}
public MocZaladowana(id)
{
id -= TASK_ID;
if(!ma_klase[id]) return;
moc_zaladowana[id] = true;
client_print(id, print_center, "POCISKI ZOSTALY ZATRUTE!");
CurWeapon(id);
}
public ResetHUD(id) moc_zaladowana[id] = false;
#define TASK_ZATRUCIE 64000
new zatruwajacy[33];
public Damage(id)
{
new attacker = get_user_attacker(id);
if(!is_user_alive(attacker)) return;
if(!moc_zaladowana[attacker]) return;
zatruwajacy[id] = attacker;
if(!task_exists(id+TASK_ZATRUCIE)) set_task(1.0, "Zatruj", id+TASK_ZATRUCIE, _, _, "a", 5);
}
public Zatruj(id)
{
id -= TASK_ZATRUCIE;
client_print(id, print_center, "Zostales zatruty!!");
cod_inflict_damage(zatruwajacy[id], id, 8.0, 0.15);
}
Wydawało mi się że chodzi o tą ostatnią funkcję i podejrzewam(nie pamietam dokładnie) że gdy próbowałem to zmieniłem
cod_inflict_damage(zatruwajacy[id], id, 8.0, 0.3);
na
cod_inflict_damage(zatruwajacy[id], id, 8.0, 0.15);
Ale to chyba nic nie dało

To hp za szybko schodzi.
Edit: nieaktualneposzukałem natywu cod_inflict_damage i znalazłem że to 8.0 jest odpowiedzialne za obrażenia, a ta druga wartość za inteligencję
Użytkownik niemamkonta edytował ten post 10.03.2012 21:37