Kwasowa Grota Heroes VIIMight & Magic XHeroes III - Board GameHorn of the AbyssHistoria Światów MMSkarbiecCzat
Cmentarz jest opustoszały
Witaj Nieznajomy!
zaloguj się    załóż konto
Niebiańska Kuźnia  (WoG, HotA, VCMI)temat: [WoG, ERA] Skrypty ERM
komnata: Niebiańska Kuźnia (WoG, HotA, VCMI)
strona: 1 - 2 - 3 ... 29 - 30 - 31 ... 81 - 82 - 83

aivin PW
3 czerwca 2007, 19:51
W jaki sposób utworzyć zapytanie odnoszące się do czaru rzuconego na mapie, np. spacer po wodzie. Oczywiście ma się ono odnosić do konkretnego pola (zdarzenia/event'u). Chce je zapisać pod jakąś zmienną i potem odpowiednio wykorzystać, np. Jeśli rzuciłeś 'spacer po wodzie' w lokalizacji !?LE123/23/0; to dzieje się coś tam...

Altair PW
3 czerwca 2007, 21:15
Oto przykładowy skrypt na to:

ZVSE

!?MG1;
!!OW:C?y-1;
!!OW:Ay-1/?y-2;
!!FU&y-2=-1:E;
!!HEy-2:P?y3/?y4/?y5;
!!IF:M^Współrzędne: %Y3 %Y4 %Y5
Zaklęcie: %V997^;

Po rzuceniu dowolnego zaklęcia na mapie przygody wyświetla się komunikat z współrzędnymi i numerem zaklęcia. Jak chyba widać numer czaru znajduje się w zmiennej v997, a współrzędne miejsca są pobierane z aktywnego bohatera. Skrypt łatwo można przerobić na własne potrzeby.

EDIT: Łatwo zauważyć, że komenda LE jest tu zbędna.

Summoner PW
4 czerwca 2007, 07:17
A teraz z czystej ciekawości. Czy można skasować jakiś obiekt komendą !!UN, kiedy nie ma on wejścia? Bo zawsze się programuje obiekty ze współrzędnymi ich wejść, podczas gdy np. mur nie ma wejścia. Z góry dzięki za odpowiedź.

aivin PW
4 czerwca 2007, 08:10
Dzięki Altair, myślę że sobie dam radę.
Summoner - da się, wystarczy podać współrzędne 1 pola które zajmuje dany obiekt, w tym przypadku mur, a cały zostanie zdjęty z mapy.

EDIT: Mam jeszcze jedno pytanie. Otóż chciałbym w jakiś sposób zmotywować gracza komputerowego do korzystania ze zwykłych obiektów w obrębie jego patrolu (jaki wcześniej mu ustawiłem). Próbowałem kilka sposobów, jednak on tylko reaguje gdy jakiś słabszy heroes podejdzie odpowiednio blisko. Nie zbiera prawie żadnych skrzynek, nie zajmuje kopalni itp.
Nie ma znaczenia czy jest on odkrywcą, wojownikiem czy budowniczym...
Czy istnieje jakieś skryptowe wsparcie na tego typu obojętność gracza komputerowego?

Altair PW
4 czerwca 2007, 13:42
Summoner:
A teraz z czystej ciekawości. Czy można skasować jakiś obiekt komendą !!UN, kiedy nie ma on wejścia? Bo zawsze się programuje obiekty ze współrzędnymi ich wejść, podczas gdy np. mur nie ma wejścia. Z góry dzięki za odpowiedź.

Skasować, można praktycznie każdy obiekt, który ma wejście lub (i) jest przeszkodą (czerwony kwadrat w edytorze). Natomiast obiekty które nie posiadają żadnej z tych dwóch cech nie mogą zostać usunięte z mapy (przynajmniej samą komendą UN:O).

aivin:
Mam jeszcze jedno pytanie. Otóż chciałbym w jakiś sposób zmotywować gracza komputerowego do korzystania ze zwykłych obiektów w obrębie jego patrolu (jaki wcześniej mu ustawiłem). Próbowałem kilka sposobów, jednak on tylko reaguje gdy jakiś słabszy heroes podejdzie odpowiednio blisko. Nie zbiera prawie żadnych skrzynek, nie zajmuje kopalni itp.
Nie ma znaczenia czy jest on odkrywcą, wojownikiem czy budowniczym...
Czy istnieje jakieś skryptowe wsparcie na tego typu obojętność gracza komputerowego?

Prawdopodobną przyczyną dla której gracz komputerowy nie reaguje jest zbyt mała wartość patrolu. Dlaczego jednak nie ustawić zmienne patrolu dla gracza AI?
Właśnie takie zadanie realizuje poniższy skrypt:

ZVSE

!?OBx/y/p;
!!HE-1:N?y2;
!!HE-1&y2=0:Uv998/v999/pr;

gdzie
x, y, p - współrzędne miejsca zmiany promienia patrolu. (musi znajdować się tam obiekt)
y2 - numer bohatera którego to dotyczy.
pr - promień patrolu, dla -1 hiros zostaje "uwolniony"

Zamiast v998, v999 (współrzędne miejsca) można ustawić inne wartości od których będzie liczony promień. Można także zamiast OB użyć LE by zabronić AI dostępu do pewnych miejsc.



aivin PW
4 czerwca 2007, 18:12
Przyznam, że to też stosowałem) Niestety problem nie leży w patrolu bo ustawiając obiekt na 2 pola od heroesa dając mu 10 patrolu, obiekt ma, delikatnie mówiąc, gdzieś.
Chyba niestety problem tkwi w zwyczajnej głupocie gracza komputerowego, który przecież nigdy nie charakteryzował się zbyt wielką bystrością w tej grze, nawet na najwyższym poziomie trudności.

Altair PW
4 czerwca 2007, 20:22
No zależy jeszcze jaki to obiekt. (tego nie napisałeś) Jeśli to jest obiekt pusty to zachowanie gracza komputerowego jest jak najbardziej uzasadnione. Otóż widzi go jako piramidę, więc aby go zaatakować musi mieć odpowiednią armię, mądrość na mistrza itd. Oczywiście można go bardziej zmotywować do tego. Chciałbym zobaczyć tą mapkę i wtedy będę wiedział w czym dokładnie problem.

aivin PW
4 czerwca 2007, 21:17
Jak wcześniej pisałem - zwykły obiekt, czyli np. kopalnia złota. Mapę mogę podesłać jak tyko całkowicie przekonam się, że moje umiejętności nie będą wystarczające by ten aspekt rozwiązać. Aczkolwiek jest ona na etapie głębokiego niezaawansowania)

EDIT: Wysłałem jednak Tobie tą mapkę na maila podanego na stronie. Proszę, zobacz jak będziesz miał chwilę co tam może być nie tak.

AltairAltairJak dotąd jeszcze do mnie nie doszła, więc sprawdzić jej nie mogę.

Summoner PW
8 czerwca 2007, 12:40
A co, jeśli na jednym miejscu stoi więcej niż jeden obiekt? Zostają usunięte obydwa?
Btw, jak zobaczyłem Twoją mapę Altairze (Valley of emerald river chyba), to zacząłem wpadać w kompleksy co do jakości grafiki mojej mapy, i od razu mi się odechciało robić scenariusz :P
Edit: Zresztą mogę Ci przesłać ten kawałek, który już zrobiłem, to sobie zobaczysz jaki jestem nędzny :P

Altair PW
8 czerwca 2007, 16:54
Nie jeśli w danym miejscu stoją dwa obiekty to jedna komenda UN:O usuwa tylko jeden obiekt. Dlatego w takim wypadku należy użyć jej więcej razy. Co grafiki mojej mapy to nie ma co wpadać w kompleksy. Trening czyni mistrza. Oczywiście z chęcią obejrzę twoją mapę.

Summoner PW
9 czerwca 2007, 11:28
Jak sprawdzić, ile surowców ma jakiś gracz, żeby mu nie odjęło np. 20 jak ma czegos tylko 7? Bo chcę zrobić coś w stylu zamku, tylko że się go będzie na mapie budować za surowce :P
Altairze, wysłałem ci ten kawałek na maila, odrazu mówię, że są jeszcze podziemia. Jeszcze jej nie sprawdzałem, czy da się ją wygrać, ale pierwsze trudności zacząłem mieć przy szkieletach. Oczywiście nie trzeba ich pokonywać, ale wtedy się sporo traci na złocie. No znaczy nie tak sporo, ale jednak coś. Nie mam pomysłu na dalszą fabułę, będę musiał coś wymyślić...
PS: Nie, nie było o tych surowcach w poradniku ERM, chyba, że coś przeoczyłem.

Acid Dragon PW
9 czerwca 2007, 12:20
owszem, było.

Cytat:
!!OW:R#1/#2/$3;

Set/check/get a resource
#1 - Owner (See Format E1)
#2 - Resource type (See Format R)
$3 - Resource value
You can use a set style Ri/3/1000 or R3/j/d500... or get style Rj/5/?n.
In the latter case, the current value of the resource is not changed.
Owner may be -1 which means the current player R-1/.../...

Summoner PW
9 czerwca 2007, 12:33
Dziękuję za odpowiedź, ale mówiłem o Poradniku ERM Altaira :P Chyba, że wyszła nowa wersja :P

Nemomon PW
9 czerwca 2007, 15:43
Zadam takie głupie pytanie (na które i tak nikt nie odpowie a na pewno nie tak, jakbym chciał), które pisałem kiedyś w Koncercie Życzeń HOMM6. Mianowicie, czy jest możliwe (przynajmniej teoretycznie) zrobienie dodatkowych Podziemi, podobnie jak Altair zrobił Wielosakwę? Takie Podziemia mogły by być generowane losowo lub Edytor Map musiałby być wyposażony w dodatkowe funkcje.

Ginden PW
9 czerwca 2007, 16:25
Da się... Ale to tak gigantyczna ilość kodu, że to jest niewarte roboty. Zadowala cię około 80 000 linijek kodu? Trzeba by napisać skrypt tworzący podziemia, ustawiający elementy, trzeba by by zapisać każdą informację np. czy miasto jest rozbudowane do poziomu x, znaleźć miejsce dla wszystkich armii neutralnych, zapisać armie bohaterów, i sprawdzić stare podziemia. O ile skrypt "tworzący" podziemia na nowo (np. wskutek działania obiektu) jest prosty lecz czasochłonny to to jest niemal niemożliwe.

Acid Dragon PW
9 czerwca 2007, 16:48
Wg mnie to jednak niemożliwe nawet teoretycznie.

Gdyż teoretycznie właśnie przy przechodzeniu do "nowego podziemia" trzeba by w istocie zapisać wszelkie informacje poprzedniego podziemia, a potem wczytać zapisane dane następnego i przerysować mapę od nowa. W praktyce nie mamy nawet technicznej możliwości zapisania tylu zmiennych do pamięci.

Altair PW
9 czerwca 2007, 17:07
Teoretycznie to z pamięcią większego problemu nie ma bo można zmienne zapisywać do zewnętrznych plików a potem to wczytywać. Problem jest tutaj zupełnie innej natury. Nie można bowiem niektórych obiektów wstawić za pomocą komendy UN:I. Są to m.in. puszki Pandory, chatki i strażnicy misji oraz większość obiektów terenu drzewka, krzaczki i wszystkie inne obiekty terenu, które czynią mapę miłą dla oka. Kolejna sprawa to generowanie samego terenu. Tutaj potrzebny jest dość skomplikowany algorytm. Kolejna sprawa to szybkość działania. Nie ukrywam, że nawet na mapie 36x36 zauważalne byłoby spowolnienie (kilka sekund pomiędzy przechodzeniem pomiędzy podziemiami). Nie wiem także jak miałyby działać wtedy portale. Reasumując taka hipotetyczna mapa działała by bardzo wolno i możliwości użycia obiektów byłyby mocno ograniczone.

IamBD PW
9 czerwca 2007, 18:50
Czy istnieje taki, aby jednostki mogły rzucać zaklęcia. Jeśli tak to może mi ktoś podać taki skrypt??

Altair PW
9 czerwca 2007, 19:11
Jakich stworzeń można wiedzieć? Jak rozumiem chodzi ci o stworzenia które już posiadają zaklęcia jak Czarodziejski smok, Gremlinołaj itp. to służy do tego !!BMx:U4/$;
Co zaś tyczy się stworzeń które normalnie nie posiadają zaklęć to niestety posiadam tylko wersję beta takiego skryptu. Jest to ponad 1000 linijek kodu i nie zawsze działa poprawnie.

Ginden PW
9 czerwca 2007, 20:47
A jeśli włożę do gry animację stwora razem z rzucaniem zaklęcia i ustawię zaklęcie tą komendą to stworzenie będzie rzucało zaklęcie jak gremlinołaj czy smok?
strona: 1 - 2 - 3 ... 29 - 30 - 31 ... 81 - 82 - 83
temat: [WoG, ERA] Skrypty ERM

powered by phpQui
beware of the two-headed weasel