Leczenie do określonego poziomu

Wszystko o modach, patchach i błędach w OW oraz ogólnym programowaniu.
Post Reply
User avatar
Night
Soldier level 4
Soldier level 4
Posts: 146
Joined: Sat Jun 26, 2010 10:06 am

Leczenie do określonego poziomu

Post 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).
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Leczenie do określonego poziomu

Post 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;
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
User avatar
Night
Soldier level 4
Soldier level 4
Posts: 146
Joined: Sat Jun 26, 2010 10:06 am

Re: Leczenie do określonego poziomu

Post by Night »

Dzięki. Tak kombinowałem kod, tylko zabrakło mi enable, dlatego nie działało.
User avatar
Nitek
Community Veteran
Community Veteran
Posts: 999
Joined: Mon Apr 13, 2009 4:13 pm
Location: Białystok
Contact:

Re: Leczenie do określonego poziomu

Post 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:
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Leczenie do określonego poziomu

Post by Serpent »

omg, toż to tylko przykład :arlol:
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
User avatar
Night
Soldier level 4
Soldier level 4
Posts: 146
Joined: Sat Jun 26, 2010 10:06 am

Re: Leczenie do określonego poziomu

Post 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)
User avatar
Night
Soldier level 4
Soldier level 4
Posts: 146
Joined: Sat Jun 26, 2010 10:06 am

Re: Leczenie do określonego poziomu

Post 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.
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Leczenie do określonego poziomu

Post by Serpent »

Code: Select all

Every 0$0.1 trigger not GetFuel(car) = 0 do
begin
SetFuel(car, 0);
enable;
end;
Sprawdzone działa.
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
User avatar
Nitek
Community Veteran
Community Veteran
Posts: 999
Joined: Mon Apr 13, 2009 4:13 pm
Location: Białystok
Contact:

Re: Leczenie do określonego poziomu

Post 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.
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Leczenie do określonego poziomu

Post 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;
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
User avatar
Night
Soldier level 4
Soldier level 4
Posts: 146
Joined: Sat Jun 26, 2010 10:06 am

Re: Leczenie do określonego poziomu

Post 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
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

Re: Leczenie do określonego poziomu

Post by Serpent »

Szkoda że wcześniej nie zobaczyłem tego posta.

Co do tematu, manewrowanie enablami nic by tu nie dało.
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Post Reply