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/mod] Aquamarine Library (AL)
komnata: Niebiańska Kuźnia (WoG, HotA, VCMI)

Altair PW
1 maja 2012, 23:02
Tak jak wspominałem (narzekałem) w kilku tematach trochę za dużo jest tych wszystkich wersji, pluginów do Woga (ERY) aby wszystko mógł opanować zwykły skrypter. Do której wersji pisać skrypty?
- 3.58F? - (zabugowana i trochę już archaiczna)
- TE (mało kto używa) czy 3.59 (niedokończony)
- ERA? (wciąż wychodzą nowe wersje mniej lub bardziej stabilne, wciąż mało popularna)
- VCMI? (wciąż brak skryptów)

Link do skryptu Aquamarine Library (AL) v3.0 beta (przetestowane dla 3.58F i ERA)

Nawet stosując standardową składnie i tak natkniemy się na problemy. Bo w samym ERMie są błędy. A już stosując skrypty korzystające ze składni UN:C (takie jak w temacie ERM poziom - "Impossible"), trzeba zakładać, że może "coś" nie działać w kolejnej wersji. Stąd pomysł stworzenia jednego skryptu łatające stare błędy i umożliwiający korzystanie z różnych funkcjonalności w maksymalnej liczbie wersji.
Czyli w skrócie, wersje się zmieniają twój skrypt powinien pozostać ten sam (wystarczy uaktualnić Aquamarine Library).
dlatego w tym temacie prezentuje skrypt Aquamarine Library (AL)

opis:
Stare funkcje (tylko dla 3.58F):

FU20300 / wersja komendy TE/ERY !!SS (pozwalająca na modyfikowanie zaklęć dla 3.58F)

Miejski portal przypisany do magii wody :)
** 20304 / poprawki do 3.58F (komenda dodająca drogę na mapę TR:T oraz niepotrzebnie odświeżająca ekran HE:F)

poprawka do dróg po prawej bez patcha
** 20309 / poprawka komendy !!MR:N (!?MR2)


AKTUALIZACJA

**20301 (GetMapName) - pobranie nazwy mapy
**20303 (GetBlackMarketArtifact) - obsługa czarnego rynku (tak jak w temacie ERM poziom - "Impossible")
**20305 (GetRumor) - czytanie/ustawianie pogłosek z karczmy.
**20306 (GetBattleType) - zmienianie typu bitwy (zwykła/w banku stworzeń) - stworzenia po lewej stronie lub w środku pola bitwy.
**20307 (GetSecondarySkillsText) - pobranie tekstu umiejętności drugorzędnych
**20308 (GetTownResourceSilo) - pobranie/ustawianie surowców w miejskim magazynie zasobów
**20310 (GetSkeletonTransformerCreature) - pobranie/ustawianie stworzeń zmienianych w szkieletorni
**20311 (SetSpellToCreature) - dodawanie jednostkom możliwości rzucania zaklęć
**20312 (GetCurrentDate) - pobieranie/ustawianie aktywnego czasu gry (w końcu herosi mogą podróżować w czasie ;) )
**20313 (SplitStr) - podział łańcucha znaków (np. tekst podzielony przecinkami) i zapis w postaci tablicy przy pomocy slotów ERY
**20315 (GetArtifactPrimarySkills) - set/get artifact primary skill modyficator
**20316 (GetArrowTowerCreature) - zmienianie stworzeń w wieżach miejskich (tylko era)
**20317 (GetArrowTowerXY) - zmienianie współrzędnych strzelców w wieżach miejskich
**20318 (GetCreatureMissile) - przypisywanie stworzeniom umiejętności strzelania








Altair PW
3 maja 2012, 14:00
Zaktualizowałem skrypt, dodałem pełną zgodność z ERĄ. Dodałem dwie nowe funkcjonalności. Wkrótce dodam przykładowe skrypty (póki co, bardziej zaznajomionym z ERM starczą komentarze w kodzie).

Shin0bi PW
3 maja 2012, 14:20
Niesamowite, wracasz do ERM Altair? Super, po tych skryptach z tematu poziom Impossible nie mogę się już doczekać kolejnych ^^

Irhak PW
3 maja 2012, 16:15
Cytat:
Niesamowite, wracasz do ERM Altair?
To on kiedykolwiek się z nim rozstał? :D

Altair PW
3 maja 2012, 16:37
Cytat:
To on kiedykolwiek się z nim rozstał? :D

Będzie już kilka lat jak nie wychodzą żadne nowe (większe) skrypty.

majaczek PW
4 maja 2012, 16:29
Chciałem się już spytać skąd wziąć Aquamarine - ale powstał teamt. Dobra robota!


Szkoda że skryptów jest tak ubogo. Proponuje dodać funkcję na przywołanie żywiołaków (kody UN:C na stworzenie dla każdego z tych czarów), oraz jeśli się dokopię który z 2x50 adresów jest odpowiedzialny za co dokładnie - funkcję na modyfikowanie Commanderów na polu bitwy (mam jeszcze sporo do sprawdzenia).

Chyba że jest tam sporo niewymienionych funkcji, a te wypisane to tylko przykłady - wtedy proszę o bardziej szczegółową listę.


Cieszę się że taki projekt powstał. Mam nadzieję że wessie inne skrypty na UN:C z publicznie dostępnych w sieci.

TopFunny525 PW
26 maja 2012, 12:59
Ciekawe Skrypty(skrypt). Mam nadzieję, że nie zaprzestaniesz projektu i będziesz kontynuował ulepszanie jego. Obejrzę się później gdyż teraz... nie mam jak go obejrzeć i przetestować. Pozdro.

Altair PW
25 września 2013, 23:34
AKTUALIZACJA

Wersja 3.0 (link w pierwszym poście)

Nowości:

**20313 (SplitStr) - podział łańcucha znaków (np. tekst podzielony przecinkami) i zapis w postaci tablicy przy pomocy slotów ERY
**20315 (GetArtifactPrimarySkills) - set/get artifact primary skill modyficator
**20316 (GetArrowTowerCreature) - zmienianie stworzeń w wieżach miejskich (tylko era)
**20317 (GetArrowTowerXY) - zmienianie współrzędnych strzelców w wieżach miejskich
**20318 (GetCreatureMissile) - przypisywanie stworzeniom umiejętności strzelania



- Możliwość stosowania nazw funkcji -
Najbardziej denerwującym elementem w ERM jest brak możności używania nazw funkcji (można od biedy używać makr ale wtedy potrzebujemy na każdą nazwę jedną zmienną "v"). Musimy więc stosować numeracje i stosować duuużo komentarzy. Jednak jeśli korzystamy z Ery mamy wybór. Jedną z ciekawszych rzeczy w ERZE są tablice asocjacyjne. Standardowo aby pobrać/ustawić pogłoskę w karczmy (za pomocą tego skryptu) musimy:

!!VRz11:S^Graal jest na bagnach!^;

!!FU20305:Pz11/1;**ustawienie pogłoski

!!FU20305:Pz11/0;**pobranie pogłoski
!!IF:M^%Z11^;**wyświetlenie

Teraz o ile korzystamy z Ery (i mojego skryptu):

!!VRz11:S^Graal jest na bagnach!^;

!!VRz10:S^SetRumor^;
!!FU77:Pz10/z11;

!!VRz10:S^GetRumor^;
!!FU77:Pz10/z11;
!!IF:M^%Z11^;**wyświetlenie

Jak widać w drugim przypadku przekazujemy nazwę funkcji do tymczasowej zmiennej "z10" wywołujemy pomocniczą funkcje !!FU77 (zawsze tą samą). Ostatni parametr rozróżniający (0 odczyt, i 1 zapis) zniknął, a całość rożni się teraz tylko nazwą. ;)

Pobranie nazwy mapy

Kiedyś:
!!FU20301:Pz11;

Teraz:
!!VRz10:S^GetMapName^;
!!FU77:Pz10/z11;

Możemy też definiować własne funkcje. Deklaracje wpisując do !?FU78; najlepiej na początku pliku (!!SN:W^Nazwa_funkcji(#Liczba parametrów)^/rzeczywisty_numer _funkcji;):

** deklaracja

!?FU78;
!!SN:W^TestowaFunkcja(#2)^/15999;
!!SN:W^KolejnaTestowaFunkcja(#2)^/16000;

**koniec deklaracji

!?FU15999;
!!IF:M^test parametr-1:%X1 parametr-2:%X2^;

Potem aby wywołać wystarczy:
!!VRz10:S^TestowaFunkcja^;
!!FU77:Pz10/1/2;
temat: [WoG, ERA/mod] Aquamarine Library (AL)

powered by phpQui
beware of the two-headed weasel