Page 1 of 1

Leczenie do określonego poziomu

Posted: Mon Jan 14, 2013 5:45 pm
by Night
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.

Re: Leczenie do określonego poziomu

Posted: Mon Jan 14, 2013 6:03 pm
by Nitek
Lepiej zrobić

Code: Select all

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ą :disco:

Re: Leczenie do określonego poziomu

Posted: Mon Jan 14, 2013 6:04 pm
by Serpent
omg, toż to tylko przykład :arlol:

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:

Code: Select all

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.

Re: Leczenie do określonego poziomu

Posted: Mon Jan 21, 2013 2:18 pm
by Serpent

Code: Select all

Every 0$0.1 trigger not GetFuel(car) = 0 do
begin
SetFuel(car, 0);
enable;
end;
Sprawdzone działa.

Re: Leczenie do określonego poziomu

Posted: Mon Jan 21, 2013 4:25 pm
by Nitek
Spróbuj w swoim kodzie zmienić

Code: Select all

Enable;
na

Code: Select all

Enable(04);
Jeżeli będzie wszystko działać, w dalszej części kodu po

Code: Select all

Disable(04);
daj jeszcze

Code: Select all

Wait(0$1);
Disable(04);
Żeby kod się nie zbugował w wyjątkowych okolicznościach.

Re: Leczenie do określonego poziomu

Posted: Mon Jan 21, 2013 5:06 pm
by Serpent
Spoiler:
Nitek wrote:Spróbuj w swoim kodzie zmienić

Code: Select all

Enable;
na

Code: Select all

Enable(04);
Jeżeli będzie wszystko działać, w dalszej części kodu po

Code: Select all

Disable(04);
daj jeszcze

Code: Select all

Wait(0$1);
Disable(04);
Żeby kod się nie zbugował w wyjątkowych okolicznościach.
Na kij to?!


Jak chce sobie definiować kiedy pojazd ma mieć blokadę wystarczy że doda warunek:

Code: Select all

CrF = true; // by włączyć
CrF = false; // aby wyłączyć

Every 0$0.1 trigger not GetFuel(car) = 0 and CrF do
begin
SetFuel(car, 0);
enable;
end;

Re: Leczenie do określonego poziomu

Posted: Mon Jan 21, 2013 7:28 pm
by Night
Co prawda już ominąłem problem zmieniając lekko fabułę(co nawet wyszło na plus), ale napewno kiedyś się przyda.
Na

Code: Select all

Enable(04);
Próbowałem i bez markeda, nie działało, więc ta zmiana by zapewne nie pomogła

Re: Leczenie do określonego poziomu

Posted: Mon Jan 21, 2013 7:31 pm
by Serpent
Szkoda że wcześniej nie zobaczyłem tego posta.

Co do tematu, manewrowanie enablami nic by tu nie dało.