Morvan - początek moddingu

Wszelkie pytania na temat SAIL'a i modowania OW.
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Morvan - początek moddingu

Post by Morvan »

Hej, żeby nie zakładać za każdym razem nowego tematu to postanowiłem użyc jednego ogólnego.

Czy jest możliwość dodania domyślnego argumentu w funkcjach? W pascalu na google znalazłem, że się da, ale w Sailu nie działa standardowy sposób.

Czyli: export function setParametersOfCharacter(types, values, name='asd');
i moge go wywolac w taki sposob: setParametersOfCharacter(['sex', 'nation'], [2, 1]);
( w tym momencie name zostaje domyslny tj. 'asd')

lub w taki sposób: setParametersOfCharacter(['sex', 'nation'], [2, 1], 'inny name');
(w takim wypadku name sie zmienil na 'inny name')

Dzieki za pomoc
MasterKiller
Soldier level 6
Soldier level 6
Posts: 343
Joined: Tue Aug 09, 2011 5:51 pm

Re: Morvan - początek moddingu

Post by MasterKiller »

Zawsze możesz użyć zmiennej lokalnej. Słówko kluczowe var.

Jeśli chodzi o takie cuda, to raczej nie ma takiej opcji w SAILu - juz ci to gdzieś pisałem, to proste skrypty, a nie jakieś zaawansowane programowanie :D
Wszyscy jesteśmy żołnierzami: WYDANE
https://original-war.net/files.php?id=174
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

Dlatego sprawdzam co sie da, a co nie :) Moze istnialby jakis magiczny sposob na to, ktorego nie znam, dlatego wole sie upewnic. Var to tylko zmienna lokalna w funkcji (w tym przypadku), ktorej wartosci nie zmienie z zewnatrz, wiec wiadomo, ze to nie jest moje rozwiazanie. Jak bede mial jakies pytania to sie odezwe :)
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

Nigdzie nie jest opisana zmienna: hc_agressivity. Służy chyba ono głównie do zwierząt, ale jakie ma granice wartości. Na 0 małpy wgl nie atakowały, na 100000 zaczęły atakować pojedyncze jednostki ludzi. Większe grupy bały się dotknąć. Ktoś ma większe pojęcie na temat tej zmiennej? Pozdrawiam
User avatar
Antitheus
Kung Führer
Kung Führer
Korea North
Posts: 2527
Joined: Thu Jan 04, 2007 9:45 pm
Location: Gorzów Wlkp.
Contact:

Re: Morvan - początek moddingu

Post by Antitheus »

https://original-war.net/sailbase.php?d ... bles&id=20
Pewnie przyjmuje wartości od 0/1 do 10 i zapewne używasz jej przy definiowaniu postaci - tj. małpy w sailu. Podejrzyj sobie kod 1 misji rosyjskiej bo wysoce prawdopodobne, że tam tego użyto.
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

w linku jest opis - apemen only. Oj brakuje dokladnych opisow wszystkich zmiennych, funkcji itd. Sa zbyt ogolne albo nawet opisu brak. Szkoda ze do tygrysow tego tez nie ma.

Przetestowalem je w sailu, to tak jak pisalem przy 0 nie atakowaly, a jak dalem wartosc 100000 to atakowaly tylko pojedynczych ludzi.

Potem sobie sprawdze te misje rosyjska. Moze przy misji Amerykanskiej z Gladstone tez cos bedzie. Jak cos znajde to dam znac.
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: Morvan - początek moddingu

Post by Serpent »

hc_agressivity odnosi się do wszystkich zwierząt w grze.

Przedział od 0 do 100, ale może też być wartość ujemna.
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
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

http://screenshot.sh/mLfqvZXNE1dPA

PlaceUnitArea(i, Rand(spawnApeman1, spawnApeman2), false);

Mam taki kod, a małpki mi się często respią na area 'unload'. Obszary tworzone przez edytor są jakieś niesprawne? Może powinienem je stworzyć również za pomocą sail?

Efekt: http://screenshot.sh/m7V2UNyiWr5Y0

SpawnApeman2 jest na dole, na pewno nie znajduje się w polu unload.
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: Morvan - początek moddingu

Post by Serpent »

Rand(min, max); przyjmuje wartości liczbowe. Powinieneś użyć takiego kodu:
PlaceUnitArea(i, [spawnApeman1, spawnApeman2][Rand(1,2)], false);
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
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

Serpent wrote:Rand(min, max); przyjmuje wartości liczbowe. Powinieneś użyć takiego kodu:
PlaceUnitArea(i, [spawnApeman1, spawnApeman2][Rand(1,2)], false);
To juz wiem czemu wkradlo sie w pule losujaca area unload ^^ Na tutorialu na YT widzialem, ze czesto tam uzywal Rand(sex_male, sex_female) i nie pomyslalem, ze sa to stale liczb i tylko liczby sa losowane.

Co do Twojego kodu, owszem działa i też od razu mam swoje rozwiązanie - stworzyłem swoją funkcję losującą, która losuje nie tylko liczby, ale i więcej wartości (w sumie akurat wczoraj ją stworzyłem - działanie chyba takie same jak przy Twoim kodzie). Ale nie o tym. Nie do końca rozumiem ten kod, który mi napisałeś.

Wcześniej mi pisałeś, że można tworzyć tablice wielowymiarowe - testowałem na różne sposoby nie znalazłem żadnego żeby zadziałał, a w przynajmniej w taki sposób jaki powinny działać normalne tablice. Tutaj widzę, że tworzysz tak jakby tablicę dwuwymiarową, ale jak ona tutaj konkretnie działa? [wartości np. tata, mama, ojciec, syn, kazirodztwo][tutaj podaje liczbe do ktorej wartosci mam sie odwolac np. 3], rezultat bedzie 'ojciec' - w taki jak właśnie opisałem? Jeżeli tak to dziwnie działają tutaj tablice :D
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: Morvan - początek moddingu

Post by Serpent »

Tutaj występuje tylko jedna tablica która zawiera aree.

Tablica := [area1, area2];

W drugim nawiasie kwadratowym losowany jest indeks, czyli numer elementu z tablicy arei.
Dlatego powyższy kod zwraca ci jedną z dwóch dostępnych w tablicy arei.
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
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

Serpent wrote:Tutaj występuje tylko jedna tablica która zawiera aree.

Tablica := [area1, area2];

W drugim nawiasie kwadratowym losowany jest indeks, czyli numer elementu z tablicy arei.
Dlatego powyższy kod zwraca ci jedną z dwóch dostępnych w tablicy arei.
W sumie racja, jak to sobie tak rozpisałem :
tablica:=['asd','mama','tata','ojciec'];
display_strings:=tablica[Rand(1,4)];

to od razu się kapnąłem jak to działa. Możesz mi podać jakiś przykład tablicy dwuwymiarowej, jak tworzysz?
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: Morvan - początek moddingu

Post by Serpent »

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
Morvan
Soldier level 2
Soldier level 2
Posts: 32
Joined: Fri Aug 05, 2016 11:04 pm

Re: Morvan - początek moddingu

Post by Morvan »

Wczesniej myslalem, ze jak dam disable na every to ono nie działa wgl. Po kilku testach zauwazylem, ze czas w danym every sobie biegnie, lecz nie jest wlaczane dopoki jest disable. Kiedy daje np. enable(01) po 3 minutach gry a w tym every mam Every 0$50 marked 01 do begin... to ten every moze mi sie po tym enable zalaczyc nawet po sekundzie, jezeli akurat zbliza sie ten czas. Czy da sie w jakis sposob zresetowac dany every, a mianowicie jego czas? W razie czego moge rowniez sam odliczac czas i dodawac ifa przy every sekundowym, ale troche slabe rozwiazanie. Albo moze jest jakies inne rozwiazanie tego problemu?

Raczej obawiam sie, ze kazdy poszczegolny every nie dziala jak stoper, a dziala po prostu od poczatku z czasem gry i mierzy roznice w czasie - tj. niemozliwe do manipulowania czasem w every.
Every 1$00 bedzie zawsze sie probowal zalaczyc przy 1, 2, 3 itd. minucie gry. Nie zas od powiedzmy 00:30 minuty gry, a potem dopiero co minute, czyli 1:30, 2:30 , 3:30 itd.

2 pytanie. Czy jest jakies zdarzenie, ktore jest wywolywane w momencie kiedy dana jednostka zauwazy druga jednostke? Czy tutaj raczej rozwiazaniem jest sprawdzanie ich odleglosci (2 unitow) powiedzmy co sekunde (every) i jak sa blisko siebie to robie swoj kod. Chcialem tak ustawic zeby wrogie jednostki zabijaly po drodze malpoludow neutralnych.
MasterKiller
Soldier level 6
Soldier level 6
Posts: 343
Joined: Tue Aug 09, 2011 5:51 pm

Re: Morvan - początek moddingu

Post by MasterKiller »

Instnieje funkcja See(side, unit), gdzie side to twoja strona(tzn. fog side), a unit to widziana jednostka. Musialbys przelecieć listę małpoludów i sprawdzać na każdym czy jest widziany co np. sekundę.

Jeśli dobrze pamiętam, to jest jakiś specjalny, dziwny zapis który odpala every z opóźnieniem, o ile się nie mylę to np.

Code: Select all

every 0$30+1$0 do

odpali every po 30 sekundach, i potem co 1 minutę. Nie jestem jednak tego pewien na 100%, i może Serpent mnie tu poprawi(bo niestety, nie ma takich niuansów w SAIL Syntaxie na OW Support :().
Wszyscy jesteśmy żołnierzami: WYDANE
https://original-war.net/files.php?id=174
Post Reply