Ostatnim czasem zabrałem się za edytowanie pluginu diablo mod, aby czas wczytywania umiejętności był krótszy. Plugin udało się skompilować i wszystko elegancko działa. Po pewnym czasie gry różnymi klasami zauważyłem jednak, że mimo iż czas wczytywania magicznego pocisku się zmniejszył, a ja z powodzeniem ustawiłem maksymalną liczbę pocisków na 5, po wystrzeleniu jednego pocisku po załadowaniu dowolnej ich ilości, liczba pocisków się zeruje. Za pewne w internecie jest rozwiązanie tego problemu, ale doszedłem do wniosku, że jeżeli naprawię to sam, to przynajmniej czegoś się nauczę.
Otworzyłem zatem kod pluginu i znalazłem poniższy fragment:
if(golden_bulet[id]>0) { golden_bulet[id]-- h_bulet=1 }Pomyślałem, że to wina właśnie tej instrukcji warunkowej, więc zacząłem ją analizować. Doszedłem do wniosku, że instrukcja zmniejsza liczbę kul nie bacząc czy gracz strzela czy też nie, więc przerobiłem kod aby wyglądał tak:
if(golden_bulet[id]>0 && esf_is_shooting(id,1)) { golden_bulet[id]-- h_bulet=1 }Oczywiście na początek dodałem oczywiście #include <esf>. Nie wiem czy ustawiłem dobry parametr mode na 1, ale to teraz mniej ważne, Otóż podczas próby kompilacji online mam taki problem:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team /home/groups/amxmodx/tmp3/phphXLGfI.sma(8202) : error 017: undefined symbol "esf_is_shooting" 1 Error. Could not locate output file /home/groups/amxmodx/public_html/websc3/phphXLGfI.amx (compile failed).Na moim komputerze również nie mogę skompilować.
W załączniku daję cały zmodyfikowany plik sma mojego diablo moda.
Proszę o pomoc i pozdrawiam.