Witam, po dłuższej przerwie wzieło mnie ponownie na robienie moda (dokładnie rzecz biorąc kontynuowanie tego co kiedyś stworzyłem) i natknąłem się na problem. Wydaje mi się, że kiedyś już widziałem na forum rozwiązanie tego problemu, ale nie mogę znaleźć. Mianowicie chodzi o to, aby postać nie mogła zostać uleczona powyżej danego poziomu do okreslonego momentu (lub w ogóle do końca misji).
Re: Leczenie do określonego poziomu
Posted: Mon Jan 14, 2013 5:49 pm
by Serpent
Every 0$01 trigger GetLives(postać) >= 500 do // jeżeli postać bedzie miała hp większe/równe 500
begin
SetLives(postać, 499);
enable;
end;
Re: Leczenie do określonego poziomu
Posted: Mon Jan 14, 2013 5:58 pm
by Night
Dzięki. Tak kombinowałem kod, tylko zabrakło mi enable, dlatego nie działało.
Every 0$1 trigger GetLives(ident_postaci) >= 495
Begin
SetLives(ident_postaci,490);
Enable;
End;
Dlaczego? W skrypcie Serpa HP będzie na chwilę wskakiwać na kolor zielony. Mój kod uwzględnia nawet drobne opóźnienia i nie będzie tak mocno obciążał komputera (podczas gdy mój skrypt zadziała 1 raz, kod Serpa będzie użyty 5 razy przy takim samym efekcie). Można nawet zmienić te wartości na kolejno 490 i 470 lub na coś podobnego. Faktem jest, że kod Serpa w dużym stopniu komputera nie obciąży komputera, ale jeżeli mamy setki takich akcji i słaby komputer to możemy mieć problemy z płynnością, które notabene występowały w modach OW (vide mod Leszcza).
Ale zaszalałem z łaciną
Re: Leczenie do określonego poziomu
Posted: Mon Jan 14, 2013 6:04 pm
by Serpent
omg, toż to tylko przykład
Re: Leczenie do określonego poziomu
Posted: Mon Jan 14, 2013 6:12 pm
by Night
To już praktycznie jest to samo, więc nie ma wiekszego znaczenia przy tej mapie na której będzie wykorzystywane, ale i tak mam ustawione tym drugim przykładem (na sekunde i na hp 400)
Re: Leczenie do określonego poziomu
Posted: Tue Jan 15, 2013 9:20 pm
by Night
Mam jeszcze podobną sytuację tylko z pojazdem i paliwem. Kod bliżniaczy:
every 0$1 trigger GetFuel(cargo1)> 0 MARKED 04 do
begin
SetFuel(cargo1, 0);
enable
end;
Działa niestety tylko za pierwszym razem tj. przy starcie, bak jest opróżniany. Gdy inżynierem donosze paliwo, to bak się zapełnia. Marked 04 jest włączony na starcie i nie ma jeszcze nawet wyłączenia, więc nie przez to.