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 ... 25 - 26 - 27 ... 81 - 82 - 83

Ginden PW
11 kwietnia 2007, 19:13
Mistrz skryptów Altair:
ZVSE
!#VRz100:S^Nazwa jednego stworzenia^;
!#VRz101:S^Nazwa większej ilości stworzeń^;
!#UN:G1/x/0/100;
!#UN:G1/x/1/101;
Gdzie x to numer stworzenia
Skrypt wygląda tak:
Skrypt:
!#VRz100:S^Nazwa jednego stworzenia^;
!#VRz101:S^Nazwa większej ilości stworzeń^;
!#VRz102:S^Gorgona^;
!#VRz103:S^Gorgony^;
!?OB13/1/0;
!!UN:G1/x/0/100;
!!UN:G1/x/1/101;
!$OB13/1/0;
!!UN:G1/x/0/102;
!!UN:G1/x/1/103;
Oczywiście zamiast x numer stworzenia

aivin PW
12 kwietnia 2007, 07:43
Fajno, mniej więcej o to chodziło. Dzięki

Ginden PW
12 kwietnia 2007, 12:25
Ale jeśli po stronie wroga i gracza będą dwie np. gorgony to obie będą miały nazwę "Starożytna Gorgona".

avatar PW
12 kwietnia 2007, 20:46
A można prosić czarno na białym co dokładnie balansuje ten skrypt? Czyli ładnie opisane WSZYSTKIE modyfikacje...

Ginden PW
13 kwietnia 2007, 16:24
Niestety. Do skryptu wkradł się POWAŻNY błąd. Na skutek mojej znaajomości angielskiego pomyliłem maksymalne obrażenia z różnicą między największymi i minimalnymi i gdyby zastosować ten skrypt dostalibyśmy archaniły zadające 60 obrażeń, gnolle zadające 5 itd.

aivin PW
16 kwietnia 2007, 09:10
W jaki sposób używając okna dialogowego ‘Menu z jedną możliwą opcją wyboru naraz’,

!!VRz111:S^tytuł^;
!!VRz112:S^opcja 1^;
!!VRz113:S^opcja 2^;
!!VRz114:S^opcja 3^;
!!VRz115:S^opcja 4^;
!!VRz116:S^anuluj^;
!!VRz117:S^^;
!!IF:G1/8/16/z111/z112/z113/z114/z115/z116/z117/z117/z117/z117/z117/z117/z117;

Przykład ten pochodzi z Gildii ERM…

wpisać powiedzmy w pierwszą opcję

!!HE-1:C1/78/164/d;
!!HE-1:C1/79/164/d;

?

Altair PW
17 kwietnia 2007, 01:36
Hmm... Przecież tam jest wszystko dokładnie opisane. ;)
Liczba 8 oznacza numer zmiennej. Czyli:

!!HE-1&v8=1:C1/78/164/d;**opcja 1
!!HE-1&v8=2:C1/79/164/d;**opcja 2

jeśli oba mają być do pierwszej opcji to wtedy:
!!HE-1&v8=1:C1/78/164/d;
!!HE-1&v8=1:C1/79/164/d;

Dla pierwszej opcji zmienna ma wartość 1, dla drugiej 2, dla trzeciej 4, dla czwartej 8 i tak dalej...

aivin PW
17 kwietnia 2007, 13:14
Może i napisane, ale dla mnie te v8=... nie było aż tak jasne, zwłaszcza po 2 miesięcznej przerwie w tworzeniu i pisaniu skryptów do mapki :) Dzięki za pomoc, jak zwykle :))
Sam nie wiem czy w ogóle ją kiedyś skończę :D


...

No i się zapętliłem, bo chciałem korzystając z pętli !!DO ustawić system opłat za tą zamianę minotaurów ze wcześniejszego przykładu…
Chce, przykładowo, dla każdej jednostki, znajdującej się w dowolnym slocie bohatera
!!HE-1&v8=1:C1/78/164/d;
Dodać opłatę, np.
!!OW&v8=1:R-1/6/d-1000;
Wskazać za co ma pobierać te 1000 złota jeszcze mi się udało, ale z ustawieniem licznika i blokady, w przypadku braku surowców było już gorzej :/

Przykładowo
- 10minotaurów – 10000 złota.
- Gdy gracz posiada 5000 złota, zostaje zamienionych 5 minotaurów a pięć zostaje niezmienionych (jeśli jest jakiś wolny slot na jednostkę), lub wyświetla się stosowna informacja i nic się nie dzieje

Jakiś pomysł na rozwiązanie tego problemu?

aivin PW
20 kwietnia 2007, 12:11
Próbowałem przekształcić kod na ‘podatki chłopów’ aczkolwiek robie to zapewne strasznie nieudolnie i zupełnie nie wiem jak sprawić by pętla wykonywała się tylko w obiekcie

!#VRv803:S0;
!#VRz202:S^opis^;
!#HT63/49:T202;
!?OB63/49&1000;

a nie codziennie jak właśnie to czyni.

!!DO111/1/1/1&y1=y2:Px16/y2; ** przekazanie parametru x16 do x1 kolejnej funkcji i y2 do x2 – nie do końca rozumiem zastosowanie parametru x i może w tym problem, oraz składni ‘Px16/y2’

!?FU111;
!!HEx1:C0/x16/?y1/?y2; **sprawdzenie ilości czegoś w armii
!!VRy3&y1=78:Sy2*-10; **ustalenie mnożnika ujemnego jeśli OK. ( znaczy - jest Minotaur)
!!VRy3&y178:S0; **jeśli nie OK to koniec

!!OW:Rx2/6/dy3; ** wykonanie

Poza tym, pętla chyba wcale nie musi być potrzebna skoro początek wynosi 1, koniec – również 1, a mimo to zlicza ilość jednostek. Wniosek: Albo pętla odnosi się zupełnie do czego innego, a liczenie jednostek jest pobocznym działaniem co wydaje mi się najbardziej prawdopodobne, albo nie rozumiem tej składni zupełnie i powinienem zacząć uczyć się na prostszych przykładach:)

Altair PW
21 kwietnia 2007, 01:11
Wszystkim początkującym radzę zaczynać od prostych przykładów. :)
W tym wypadku rozwiązanie jest proste:

ZVSE

!?OBtyp/podtyp;
!!OW:C?y2;**określenie gracza
!!DO70/0/6/1:Py2;**przeszukanie slotów bohatera od 0 do 6

!?FU70;
!!HE-1:C0/x16/?y1/?y2;
!!VRy3&y1=78:Sy2*-10;**ustawienie mnożnika w tym wypadku -10 za każdego
!!VRy3&y1<>78:S0;
!!OW:Rx1/6/dy3;**dodanie złota
!!OW:Rx1/6/?y5;
!!OW&y5<0:Rx1/6/0;**zerowanie gdy złoto<0

EDIT:
Nie wiem po co chciałeś ustawić pętlę na 1 jeden obieg skoro ma sprawdzać chyba wszystkie sloty bohatera. ;P

!!DO służy do wywoływania pętli. Natomiast do pojedynczego wywołania funkcji służy !!FUnr:P;

aivin PW
22 kwietnia 2007, 10:52
Dzięki!
Małe sprostowanie do jednej linijki:
!!VRy3&y1=78:Sy2*-10;**ustawienie mnożnika w tym wypadku 2 za każdego
teraz będzie ok.
Chciałem jeszcze aby po zapłacie jednostki zamieniły się na inne, a dokładniej na C164, po zapłacie oczywiście:
!!HE-1:C1/78/164/d;
Wpisując powyższą linijkę kodu, niweluje działanie pętli którą napisał Altair.
Nie wiem jak ustawić kolejność akcji. Próbowałem za pomocą kolejnej funkcji, sądząc że wykonają się po kolei:
!?FU71;
Czy też:
!!FU70:P; i !?FU70;
ale to wszystko sprawia tylko wykonanie akcji zamiany jednostek, bez ubytku złota



Ginden PW
22 kwietnia 2007, 12:48
Poradnik ERM!

Summoner PW
22 kwietnia 2007, 23:30
Witam. Po tym, jak zagrałem w kampanię pt. "Czas Przygody" postanowiłem zrobić swoją mapę, też w tym stylu. Pierwszy domek który zrobiłem nazwałem (przez VRz) "Twój dom". Wszystko jest ok. Potem do niego zrobiłem tekst z obrazkiem ogra, czy chcesz przeszukać swój dom itd. W wypadku TAK (zrobiłem z dwoma przyciskami i obrazkiem okno dialogowe) przeszukiwało się dom i upgrade'owało się ogra w ogra szamana. W przypadku NIE zrobiłem, że "wychodzisz z domu czując, że to jednak była lepsza decyzja" (ale jestem złośliwy :P). Supcio wszystko jak narazie, ale co mam zrobić, żeby jak wejdziemy tam drugi raz to nie będzie już pytania czy chcesz przeszukać swój dom, tylko że już nie ma po co wchodzić do tego domostwa? Wybaczcie, że nie wkleiłem pełnego skryptu, ale mam 2 komputery i teraz siedzę na tym, na którym nie mam WOGa. Liczę na waszą pomoc.
Summoner

Altair PW
23 kwietnia 2007, 02:22
Aivin:
Wpisując powyższą linijkę kodu, niweluje działanie pętli którą napisał Altair.
Nie wiem jak ustawić kolejność akcji. Próbowałem za pomocą kolejnej funkcji, sądząc że wykonają się po kolei:
!?FU71;
Czy też:
!!FU70:P; i !?FU70;
ale to wszystko sprawia tylko wykonanie akcji zamiany jednostek, bez ubytku złota

Aivin twój problem polega na tym, że nie rozumiesz działania pętli i tego skryptu. Skoro pętla sprawdza jakie jednostki są w danym slocie to do pętli trzeba także przypisać pobieranie komendę zamiany. Gdzieś musi być sprawdzone czy bohater posiada środki na ulepszenie danego oddziału. Dlatego taki skrypt powinien wyglądać mniej więcej tak:

ZVSE
!?OB63/3;
!!OW:C?y2;**okreslenie gracza
!!DO70/0/6/1:Py2;**przeszukanie slotów bohatera od 0 do 6

!?FU70;
!!HE-1:C0/x16/?y1/?y2;
!!OW:Rx1/6/?y5;

!!VRy7&y2>0:Sy5:10;
!!VRy8&y2>0:Sy2*-10;

!!OW&y7>=y2/y1=78:Rx1/6/dy8;**odjęcie złota
!!HE-1&y7>=y2/y1=78:C0/x16/164/d;

Summoner :
Supcio wszystko jak narazie, ale co mam zrobić, żeby jak wejdziemy tam drugi raz to nie będzie już pytania czy chcesz przeszukać swój dom, tylko że już nie ma po co wchodzić do tego domostwa?

Rozwiązanie tego problemu jest bardzo proste (pisałem o tym kiedyś). Należy zastosować komendą !!POx/y/p:
Działa ona jak zmienne z tym, że są one powiązane ze współrzędnymi mapy.
Oto przykładowe zastosowanie:

ZVSE
!?OBtyp/podtyp;
!!PO998:V0/?y5;
!!IF&y5<1:M^Pierwsze odwiedzenie obiektu.^;
!!IF&y5=1:M^Kolejne odwiedzenia obiektu^;
**Jakieś komendy
!!PO998:V0/1;

Polecam lekturę poradnika ERM mojego autorstwa. Są tam m.in. informacje na ten temat.


aivin PW
23 kwietnia 2007, 13:33
Dzięki. Bardziej nie rozumiem tych warunków y1..y8 itd. Samą pętle nie trudno zrozumieć, ale ciągle mam właśnie z tym problem. Myślę że to kwestia praktyki zupełnie jak ucząc się programowania w C++, Javie.. dlatego się nie poddaje. :)

Summoner PW
23 kwietnia 2007, 15:35
Faktycznie, jest o tym w poradniku. Ściągnąłem go, przeczytałem (jeszcze nie do końca), ale nie mogę się doczekać i już muszę zadać kolejne pytanie. Wszystko jak najbardziej działa, skrypt wygląda tak :
ZVSE
!?OB63/6;
!!PO998:V0/?y5;
!!IF&y5i tutaj ma być "5 mniejsze od 1"1:Q2/21/90/2^Oto twój dom. Twoja rodzina zawsze była biedna, nie ma więc tutaj nic wartościowego. Jedynie jakiś stary ekwipunek bojowy twojego dziadka mógłby poniewierać się gdzieś między śmieciami. Twój ojciec - tak jak ty - postanowił wyruszyć z domu w poszukiwaniu sławy, kiedy ty byłeś jeszcze małym dzieckiem. Może jednak zostawił coś dla swojego syna? Czy chcesz przeszukać twój dom?^;
!!IF&2:M^Szukasz wyposażenia po wszystkich zakamarkach w domu. Gdy wydaje ci się, że w domu nie ma nic odpowiedniego dla wojownika zauważasz, że pod starą szmatą leżą szaty szamana ogrów!^;
!!HE-1&2:C1/90/91/d;
!!IF&y5=1:M^Ten dom przypomina ci jedynie o przeszłości, tej jednak nie chcesz już pamiętać. Nie masz ochoty tu wchodzić kolejny raz.^;
!!PO998:V0/1;
Nie wiem czemu ale nie mogłem tam na początku skryptu wpisać znaku, że coś jest mniejsze od drugiej liczby. Chodzi o to, że chcę zrobić tak, że jak wchodzę do domku to mnie pyta, czy chcę przeszukać dom - to mam. Jeśli kliknę tak to mi ulepszy ogra, jeśli kliknę nie to mi nie ulepszy - to też już mam. A jak odmówię i wyjdę to mi ma pisać "ten dom przypomina ci..." a nie pisze tylko to, tylko przed tym jeszcze "Szukasz wyposażenia...". No i ulepsza ogra jak się zgodzę i potem przyjdę jeszcze raz... Wiem, że jestem kompletnym imbecylem jeśli chodzi o ERM, więc lepiej pójdę poczytać twój poradnik, Altairze :P

aivin PW
23 kwietnia 2007, 17:51
Chyba chodziło Ci mniej więcej o to:

ZVSE
!#VRv805:S0;
!#VRz198:S^nazwa^;
!#HT63/6:T198;
!?OB63/6;
!!PO998:V0/?y5;
!!IF&y5 < 1:Q2/21/90/2^Oto twój dom. Twoja rodzina zawsze była biedna, nie ma więc tutaj nic wartościowego. Jedynie jakiś stary ekwipunek bojowy twojego dziadka mógłby poniewierać się gdzieś między śmieciami. Twój ojciec - tak jak ty - postanowił wyruszyć z domu w poszukiwaniu sławy, kiedy ty byłeś jeszcze małym dzieckiem. Może jednak zostawił coś dla swojego syna? Czy chcesz przeszukać twój dom?^;
!!IF&y5 < 1/2:M^Szukasz wyposażenia po wszystkich zakamarkach w domu. Gdy wydaje ci się, że w domu nie ma nic odpowiedniego dla wojownika zauważasz, że pod starą szmatą leżą szaty szamana ogrów!^;
!!HE-1&2:C1/90/91/d;
!!IF&y5=1:M^Ten dom przypomina ci jedynie o przeszłości, tej jednak nie chcesz już pamiętać. Nie masz ochoty tu wchodzić kolejny raz.^;
!!PO998:V0/1;

Summoner PW
23 kwietnia 2007, 18:14
Nie chodziło mi mniej więcej o to, chodziło mi DOKŁADNIE o to!! Bardzo dziękuję, może jednak moja mapa kiedyś zostanie wykonana?

aivin PW
24 kwietnia 2007, 19:02
Dzieje mi się coś dziwnego z poniższym, trochę zmodyfikowanym na te jednostki, skryptem a mianowicie:
- zakładając że gracz posiada 10 rtęci i 10 000zł i 15 zmor:
-- układając je na slotach w następujący sposób kolejno: 11 4 - wówczas skrypt wykonuje się poprawnie: gracz traci 4 rtęci i 80złota i dostaje zamiast 4 - zmor 4 duchy
-- jednak układając je już: 10 5 - wówczas dzieją się jakieś anomalie i tracę 5 rtęci, 300 złota i z 15 zmor robi się 15 duchów..

- przy 25 zmorach
-- układ 15 10 10 w slotach: wszystko dzieje się jak powinno tj. 10 duchów (w slocie po 15 zmorach) i odpowiednie ubytki surowców
-- układ 10 10 15 w slotach: kolejna anomalia: pierwsze 2 sloty - po 10 duchów, -10 rtęci i - 400 złota.

Ewidentnie problem z rtęcią w pętli, ale na jakich zasadach? Skoro działa prawidłowo gdy na 1 slocie jest więcej jednostek niż posiadanych surowców na modyfikacje. Oto skrypt:

ZVSE
!#VRv804:S0;
!#VRz203:S^Num a Nga^;
!#HT63/6:T203;
!?OB63/6&1000;


!!IF&1000:Q891/21/60/21/61/21/159/10^Wybierz rodzaj jednostki, którą chcesz ulepszyć do Ducha.
Koszt za jednego:

- Zmora {20 złota} i {1 rtęć}
- Upiór {1 rtęć}^;
!!OW:C?y2;**okreslenie gracza

!!DO71/0/6/1:Py2;**przeszukanie slotów bohatera od 0 do 6
!?FU71;
!!HE-1:C0/x16/?y1/?y2;
!!OW:Rx1/1/?y5;
!!OW:Rx1/6/?y6;

zmora
!!VRy7&v891=1/y2 > 0:Sy5:1; **sprawdzenie srodkow
!!VRy8&v891=1/y2 > 0:Sy2*-1;**odjecie srodkow
!!OW&v891=1/y7 > =y2/y11 > =y2/y1=60:Rx1/1/dy8;**odjęcie rtęci

!!VRy11&v891=1/y2 > 0:Sy6:20; **sprawdzenie srodkow
!!VRy12&v891=1/y2 > 0:Sy2*-20;**odjecie srodkow
!!OW&v891=1/y11 > =y2/y7 > =y2/y1=60:Rx1/6/dy12;**odjęcie złota

!!HE-1&v891=1/y7 > =y2/y11 > =y2/y1=60:C0/x16/159/d;

upior
!!VRy9&v891=2/y2 > 0:Sy5:1; **sprawdzenie srodkow
!!VRy10&v891=2/y2 > 0:Sy2*-1;**odjecie srodkow
!!OW&v891=2/y9 > =y2/y1=61:Rx1/1/dy10;**odjęcie rtęci
!!HE-1&v891=2/y9 > =y2/y1=61:C0/x16/159/d;

Summoner PW
26 kwietnia 2007, 21:14
-Witaj podróżniku. Jestem starożytną czaszką wytworzoną przez Wielkiego Mistrza Altaira. Przelał we mnie całą swą wiedzę o pewnych skryptach nazywanych ERM lecz nie utracił przy tym nic z własnej. Pozostawił mnie tutaj, abym wybrańcom przekazywała swe wieloletnie doświadczenie życiowe. Czy chcesz z niego skorzystać, chcesz przenieść się w przeszłość?

Nie obrazisz się, Altairze? :)
strona: 1 - 2 - 3 ... 25 - 26 - 27 ... 81 - 82 - 83
temat: [WoG, ERA] Skrypty ERM

powered by phpQui
beware of the two-headed weasel