Postanowiłem wam udostępnić moc dla klasy, która aktywuje się po naładowaniu noża. Zrobił to dla mnie Pan QTM_Peyote, jednak postanowiłem się z wami podzielić.
Jeśli można proszę o zdjęcie ostrzeżenia.
Zaczynamy:
Pod ostatnim #include dodajemy
#define TASK_ID 128000
Pod statystykami klasy dodajemy:
#define CZAS_LADOWANIA 10 // Jak dlugo ma sie ladowac moc w s new bool:moc_zaladowana[33]; new bool:ma_klase[33]; new msg_bartime;
Do public plugin_init() dopisujemy to:
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");
#define TASK_ID 128000
Na sam koniec SMA klasy dodajemy to: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, "Umiejetnosc zostala aktywowana!"); 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.3); }