Seite 1 von 4

Morvan - początek moddingu

Verfasst: Mo Aug 15, 2016 6:55 pm
von 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

Re: Morvan - początek moddingu

Verfasst: Mo Aug 15, 2016 8:46 pm
von 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

Re: Morvan - początek moddingu

Verfasst: Di Aug 16, 2016 3:14 pm
von 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 :)

Re: Morvan - początek moddingu

Verfasst: Mi Aug 17, 2016 6:46 pm
von 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

Re: Morvan - początek moddingu

Verfasst: Mi Aug 17, 2016 7:12 pm
von 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.

Re: Morvan - początek moddingu

Verfasst: Mi Aug 17, 2016 11:02 pm
von 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.

Re: Morvan - początek moddingu

Verfasst: Mi Aug 17, 2016 11:04 pm
von Serpent
hc_agressivity odnosi się do wszystkich zwierząt w grze.

Przedział od 0 do 100, ale może też być wartość ujemna.

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:07 pm
von 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.

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:14 pm
von Serpent
Rand(min, max); przyjmuje wartości liczbowe. Powinieneś użyć takiego kodu:
PlaceUnitArea(i, [spawnApeman1, spawnApeman2][Rand(1,2)], false);

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:31 pm
von Morvan
Serpent hat geschrieben: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

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:34 pm
von 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.

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:37 pm
von Morvan
Serpent hat geschrieben: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?

Re: Morvan - początek moddingu

Verfasst: Fr Aug 19, 2016 1:39 pm
von Serpent

Re: Morvan - początek moddingu

Verfasst: Mi Aug 24, 2016 3:21 pm
von 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.

Re: Morvan - początek moddingu

Verfasst: Mi Aug 24, 2016 4:01 pm
von 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: Alles auswählen

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 :().