Problem z klasą ~ Zabójca
Eldo.
10.09.2013
Siemka !
Stworzyłem klasę, która:
- Ładuję na nożu niewidzialność lecz, gdy dodałem aby moc ładowała się tylko podczas stania w miejscu nie działa już niewidzialność
- Klasę daje w załączniku
Załączone pliki
Vasto_Lorde
11.09.2013
Ja bym zamienił if'a z:
if(!(is_user_moving(id)) && get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) && weapon == 29))
na
if(!(button2 & IN_FORWARD) && !(button2 & IN_BACK) && !(button2 & IN_MOVELEFT) && !(button2 & IN_MOVERIGHT) !(button2 & IN_JUMP) && weapon == CSW_KNIFE))
Ponieważ nie jestem pewny czy dodawanie:
IN_FORWARD+IN_BACK
W ten sposób jest poprawne.
Eldo.
11.09.2013
Zrobiłem to co napisałeś lecz podczas kompilacji wywala błędy:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team Error: Expected token: ")", but found "!" on line 54 Warning: Expression has no effect on line 54 Error: Expected token: ";", but found ")" on line 54 Error: Invalid expression, assumed zero on line 54 Error: Too many error messages on one line on line 54 Compilation aborted. 4 Errors. Could not locate output file C:\Users\Krupek\Desktop\CodMod\scripting\zabojca.amx (compile failed).
Użytkownik maybe1love edytował ten post 11.09.2013 13:51
Vasto_Lorde
11.09.2013
Sorry, ślepy jestem.
if(!(button2 & IN_FORWARD) && !(button2 & IN_BACK) && !(button2 & IN_MOVELEFT) && !(button2 & IN_MOVERIGHT) && !(button2 & IN_JUMP) && weapon == CSW_KNIFE)
Skompilowałem klasę pomyślnie z tym.
Eldo.
11.09.2013
Klasa teraz się kompiluje ale nie działa jak powinna.
Powinna: Gdy raz załaduje pasek jest niewidzialny lecz jak zmieni na inną broń jest widzialny i tak za każdym razem musi ładować jak zmieni na nóż. Posiadam klasę, która działa dobrze tylko, że w biegu można ładować pasek a ja chcę aby tylko w miejscu mógł ładować.
Vasto_Lorde
12.09.2013
Jestem prawie pewny, że chodzi ci o to:
A z CurWeapon się nei zrozumieliśmy, myślałem, że gracz ma cały czas niewidzialność jak naładuje. Kod napisany w szkole, niekompilowany, niesprawdzany.
Eldo.
12.09.2013
Dalej nie działa.
Tu daję działającą klasę lecz pasek ładuje się nawet, gdy gracz jest w ruchu.
#include <amxmodx> #include <engine> #include <codmod> #include <fun> #include <dhudmessage> #define TIME 5.0 #define UNIKAT 2013 new const nazwa[] = "Zabojca"; new const opis[] = ""; new const bronie = (1<<CSW_P228)|(1<<CSW_TMP)|(1<<CSW_FLASHBANG); new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; new const TXT[] = "[Zabojca] Jestes tymczasowo niewidzialny (noz)"; new msgBarTime; new bool:ma_klase[33]; public plugin_init() { cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("CurWeapon", "knife", "be", "1=1"); msgBarTime = get_user_msgid("BarTime"); } public cod_class_enabled(id) { ma_klase[id] = true; set_user_footsteps(id, 1); } public cod_class_disabled(id) { ma_klase[id] = false; set_user_footsteps(id, 0); } public knife(id) { if(ma_klase[id]) { if(read_data(2) == CSW_KNIFE) { if(!task_exists(id+UNIKAT)) { new data[1]; data[0] = id; bartime(id, floatround(TIME)) set_task(TIME, "set_invisible", id+UNIKAT, data, 1) } } else { if(task_exists(id+UNIKAT)) { remove_task(id+UNIKAT); bartime(id, 0); } set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255); } } } public set_invisible(data[]) { new id = data[0]; set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10); set_dhudmessage(255, 255, 0, -1.0, 0.2, 0, 6.0, 3.0) show_dhudmessage(id, TXT) } stock bartime(id, czas) { message_begin(MSG_ONE_UNRELIABLE, msgBarTime, .player = id); write_short(czas); message_end(); }