Potrzebuje funkcji wywoływanej tylko i wyłącznie przy strzale
Można by ją wyłuskać z eventu:
register_event("CurWeapon", "ZmianaBroni","be", "1=1")
Na przykład po sprawdzeniu warunku czy liczba ammo w magu się pomniejszyła względem ostatniego wywołania funkcji, to dobry pomysł? Jakieś propozycje?
Z tego co znalazłem to:
#pragma semicolon 0 #include <amxmisc> #include <fakemeta> new iEvents[] = {20,12,18,17,23,24,15,10,11,22,13,21,14,16,27,28,4,6,3,7,8,9,2,1,5} public plugin_init() { register_plugin("Blokujemy dzwieki", "1.0", "DarkGL") register_forward(FM_PlaybackEvent, "fwPlaybackEvent"); } public Strzal(id){ //funkcja wywolywana tylko przy strzale } public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) { static bool:bFind bFind=false; for(new i = 0;i < sizeof iEvents;i++){ if(eventindex == iEvents[i]){ bFind = true; break; } } if(bFind) Strzal(id); return FMRES_IGNORED; }
Trochę to przerobiłem i powiedzcie czy to ma sens? Po mojemu to ta funkcja zje procka, ale czy to zadziała zawsze i tylko przy strzale? Z góry dzięki za odp
Edit, lol nie można by było zapisać tej funkcji na przykład tak?
public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) { switch(eventindex){ case 0: return FMRES_IGNORED; case 19: return FMRES_IGNORED; case 25: return FMRES_IGNORED; case 26: return FMRES_IGNORED; } if(eventindex<29) Strzal(id); return FMRES_IGNORED; }
hmm, nie lepiej?
Jeszcze jeden edit, "#pragma semicolon 0", co to jest?
Użytkownik Ossal edytował ten post 17.05.2015 01:24