Kilka ciekawostek dotyczących modowania Heroes3

Hej!

Znalazłem w sieci kilka przydatnych (może?) narzędzi do usprawnienia Herosów, autorstwa rosyjskich fanów sagi HoMM. Oto i one:

  1. Mini-kalkulator, którego jedynym zadaniem jest ustalanie siły czarów, siły fizycznej i obrażeń zadawanych przez Heroes-a.
    imgcash4.imageshack.us/img511/75 … t01nz0.png

  2. Programik do (chyba) obróbki map herosów. Nie jestem pewny, bo u mnie nie chce działać :frowning:
    imgcash2.imageshack.us/img92/419 … t02xh7.png

  3. Najbardziej zagadkowa (według mnie) aplikacja stworzona z myślą o fanach Heroes3. Tak wygląda po odpaleniu:
    imgcash5.imageshack.us/img78/606 … 03aye1.png

    A tak po załadowaniu jednego z kilku plików h3o (to nie jest zero!):
    imgcash3.imageshack.us/img125/62 … 03byw1.png

  4. Kolejny zagadkowy programik. maksymalna liczba w tym programie to 9000 (różnica między liczbami wynosi 18).
    imgcash6.imageshack.us/img182/11 … t04yj7.png

  5. Opis zawartości (po angielsku) katalogu ZxTools:
    imgcash2.imageshack.us/img387/69 … t05gk9.png

  6. A oto i niespodzianka! Program, który mnie osobiście powalił na kolana. Opisywał nie będę, sami dojdziecie co, gdzie, jak i dlaczego. Tak wygląda po uruchomieniu:
    imgcash3.imageshack.us/img443/35 … 11asy0.png

    A tak wygląda po zaznaczeniu opisanej mapki, będącej prezentacją możliwości wizualnych programu:
    imgcash5.imageshack.us/img177/38 … 11bsn2.png

  7. A to jest program, w którym powstał opis testowej mapy (poprzeglądajcie sobie możliwości tego programiku :)):
    imgcash6.imageshack.us/img253/71 … t12ee4.png

Mam nadzieję, że nie spowolniłem przez swoją “próżność” prac nad VCMI 1.0?

Ad 1 - ciekawa aplikacja, nie wiedziałem o niej. Jakbyś mógł tu zamieścić linka do niej to byłbym wdzięczny.

Ad 3 - nie wygląda aż tak zagoadkowo. Pozwala zmienić wygląd obiektu, jego funkcję, pola które blokuje/na których można go odwiedzać oraz tereny, na których może występować.

Ad 4 - to chyba służy do zmiany rozmiaru (np. 144x144) mapy poszczególnych rozmiarów (np. XL). Po lewej wybierasz rodzaj rozmiaru, po prawej rozmiar.

Jeśli ten kalkulator nam sie przyda, to pewnie nawet przyspieszyłeś.

Drogi Tow dragon, jest tylko jeden problem. Te opisane programy pobrałem razem z mapami i kampaniami do H3 z P2P. Mam nadzieję, że tym wyznaniem, ciebie i innych zainteresowanych nie rozczarowałem. W załączniku jest spakowany plik torrent.

Opisane wcześniej programy znajdują się w katalogu Extra Stuff/Zx Tools(oprócz kalkulatora, który siedzi w Extra Stuff).

Aha, i tam jest kilka skryptów ERM i ERT. Czy mógłbyś mi wyjaśnić o co tym formacie chodzi (ERT)?

A oto i przykład: Jest plik script04.erm

ZVSE 
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2003.2.3.1842
 
** Arcane Tower ERM script v1.5 - Donald X. Vaccarino 
** Updated: 09/20/03 by Hermann the Weird
** Requires WOG v3.52 or later. 
** A location to let heroes exchange primary skill points 
 
** To use this code, put it into a Global Event, set to never happen, 
** and add some Arcane Tower buildings to your map. 
** It's the nifty tower three down from the Fortress in the editor 
 
** You can put an Arcane Tower and Alms House on the same map, but don't put them 
** right next to each other. If you put an Arcane Tower by a Magic Well or similar 
** object, note that it can be used to really fill up on spell points. 
 
** Variables Used: v590, v600-v617, v618, z403 
** Flags used: 2-5 
** z403 must not be changed in other programs! 
** v590 must always be 0! Some of my other scripts also use it as 0 for hint indexing. 
** The other variables may be used elsewhere but will be trashed by this code. 
 
** Functions Used: 620-627 
 
 
** Initialization code 
!#UN:P104/?v1;     [Check for WoG option] 
!#VRz403&v1=1:Sz104000; 
!#VRv590&v1=1:S0; 
!#HT63/9&v1=1:V590/0/403; [set hint to z403, whenever v590 is 0, which it always will be] 
 
** end of Initialization code 
 
 
** Object routine 
 
!?OB63/9;
!!UN:P104/?y-1;     [Check for WoG option]
!!FU&y-1=0:E;     [Exit if its disabled] 
 
!!FU620&1000:P; [do rest of code if human (not AI)] 
 
** end of object routine 
 
 
** function to handle visiting by humans 
** code is broken up this way to avoid having to retest the same flags over and over 
 
!?FU620; 
 
!!IF:M1/z104001; 
!!IF:Q2/z104002; 
!!IF&-2:M1/z104003; 
 
!!FU621&2:P; [do rest of code if they picked yes] 
 
** end of function 
 
 
** function to handle meaningful visit by non-AI 
 
!?FU621; 
 
!!IF:Q3/31/0/33/0/7/z104004; 
!!IF&3:Q4/31/1/32/1/7/z104005; 
!!VRv600&3/4:S0; [v600=0 = they want attack] 
!!VRv600&3/-4:S1; [v600=1 = they want defense] 
!!IF&-3:Q4/33/1/34/1/7/z104006; 
!!VRv600&-3/4:S2; [v600=2 = they want spell power] 
!!VRv600&-3/-4:S3; [v600=3 = they want knowledge] 
 
!!VRv601:S4; [v601=4 = no payment chosen] 
!!IF&v600<>0:Q5/31/0/2/z104007; 
!!VRv601&v600<>0/5:S0; [v601=0 = pay with attack] 
!!IF&v600<>1/v601=4:Q5/32/0/2/z104008; 
!!VRv601&v600<>1/v601=4/5:S1; [v601=1 = pay with defense] 
!!IF&v600<>2/v601=4:Q5/33/0/2/z104009; 
!!VRv601&v600<>2/v601=4/5:S2; [v601=2 = pay with spell power] 
!!IF&v600<>3/v601=4:Q5/34/0/2/z104010; 
!!VRv601&v600<>3/v601=4/5:S3; [v601=3 = pay with knowledge] 
 
!!IF&v601=4:M1/z104011; 
!!FU622&v601<4:P; [continue if both skills picked] 
 
** end of function 
 
 
** function to handle trades once skills are selected 
 
!?FU622; 
 
!!VRv602:Sv600 +31; [get picture # of skill they want] 
!!VRv603:Sv601 +31; [get picture # of skill they pay] 
!!HE-1:F?v604/?v605/?v606/?v607; [fetch skill values] 
!!VRv608:S604 +v600; [variable # of amount of skill they want] 
!!VRv609:S604 +v601; [variable # of amount of skill they pay] 
 
!!FU625:P; [get "clean" skill values in v611-v614 (no artifacts)] 
!!VRv618:S611 +v601; [variable # of clean skill amount to pay] 
!!VRv610:Svv618; [times they can trade] 
!!VRv610&v601>1:-1; [can trade one less if spell power or knowledge] 
!!IF&v610<1:M1/z104012; 
!!FU623&v610>0:P; [continue if they can pay] 
 
** end of function 
 
 
** function to trade once we know they can 
 
!?FU623; 
 
!!IF:V2/1; [flag indicates we'll make trade] 
!!DO624/1/30/1:P; [allow them to make the chosen trade as many times as they can] 
!!IF:M1/z104013; 
 
** end of function 
 
 
** function to trade one skill point, done repeatedly 
 
!?FU624; 
 
!!VRvv609&2:-1; [deduct one point of paying skill] 
!!VRvv608&2:+1; [add one point to wanted skill] 
!!HE-1&2:Fv604/v605/v606/v607; [save new skill values] 
!!VRv610&2:-1; [countdown times we can make trade] 
!!IF&2/v610=0:Q1/v602/1/1/z104014; 
!!IF&2/v610=0:V2/0; 
!!IF&2/v610>0:Q2/v602/1/2/z104015; 
 
** end of function 
 
 
** function to get real stats, removing effects of artifacts 
** "clear" stats are stored in v611-v614 
 
!?FU625; 
 
!!HE-1:F?v611/?v612/?v613/?v614; [get stats including artifact effects] 
 
!!VRv616:S1; [amount of skill for subroutine] 
!!DO627/1/6/1:P; [handle artifacts that follow a pattern by number] 
 
!!FU626:P12/12/-3/0/0; [titan's gladius] 
!!FU626:P18/-3/12/0/0; [sentinel's shield] 
!!FU626:P24/0/0/-2/10; [thunder helmet] 
!!FU626:P30/0/0/10/-2; [titan's cuirass] 
!!FU626:P128/3/3/3/6; [armageddon's blade] 
!!FU626:P129/21/21/21/21; [angelic alliance] 
!!FU626:P132/3/3/2/2; [armor of the damned] 
!!FU626:P134/16/16/16/16; [power of the dragon father] 
!!FU626:P135/9/9/8/8; [titan's thunder] 
 
** end of function 
 
 
** function to handle modifying stats for several artifacts that fit a pattern 
** v616 counts from 1 to 6 
 
!?FU627; 
 
!!VRv617&v616>1:Sv616 +5; [attack artifact - 7-11] 
!!FU626&v616>1:Pv617/v616/0/0/0; [modify stats] 
!!VRv617&v616>1:Sv616 +11; [defense artifact - 13-17] 
!!FU626&v616>1:Pv617/0/v616/0/0; [modify stats] 
!!VRv617&v616<6:Sv616 +18; [knowledge artifact - 19-23] 
!!FU626&v616<6:Pv617/0/0/0/v616; [modify stats] 
!!VRv617&v616<6:Sv616 +24; [spell power artifact - 25-29] 
!!FU626&v616<6:Pv617/0/0/v616/0; [modify stats] 
!!VRv617:Sv616 +30; [every skill artifact - 31-36] 
!!FU626:Pv617/v616/v616/v616/v616; [modify stats] 
!!VRv617&v616<5:Sv616 +36; [att/def artifact - 37-40] 
!!FU626&v616<5:Pv617/v616/v616/0/0; [modify stats] 
!!VRv617&v616<5:Sv616 +40; [spell power/knowledge artifact - 41-44] 
!!FU626&v616<5:Pv617/0/0/v616/v616; [modify stats] 
 
!!VRv616:+1; [inc counter] 
 
** end of function 
 
 
** function to modify stats based on presence of one artifact 
** x1 = art, x2 = amt to modify att, x3 def, x4 spell power, x5 knowledge 
 
!?FU626; 
 
!!HE-1:A2/x1/0/?v615; [get number of equipped artifacts] 
!!VRx2:*v615; [multiply amount by number of artifacts] 
!!VRx3:*v615; 
!!VRx4:*v615; 
!!VRx5:*v615; 
!!VRv611:-x2; [deduct total amount from stat variable] 
!!VRv612:-x3; 
!!VRv613:-x4; 
!!VRv614:-x5; 
 
** end of function

To zawartość pliku script04.ert wygląda tak:

104000	Arcane Tower	String type = <!#S>	07.06.2003
104001	A ghost floats down a staircase and glides up to you. It floats there, flickering, regarding you. At last it speaks. "It is well that you came here, traveller. I can help you."	String type = <!!M>	07.06.2003
104002	The ghost continues. "I can make you strong, give you power - perhaps as much power as I have! But it will cost you dearly. I can give you skill at attack, defense, spellcasting, or knowledge... in return, I require the same. One for one. Are you interested?"	String type = <!!Q>	07.06.2003
104003	"Ah, traveller, you will know one day that you have erred."	String type = <!!M>	07.06.2003
104004	"Of course. Who wouldn't be? I can teach you combat prowess or spell prowess. Do you prefer combat (attack or defense) or spells (spell power or knowledge)?"	String type = <!!Q>	07.06.2003
104005	"Will it be attack or defense?"	String type = <!!Q>	07.06.2003
104006	"Will it be spell power or knowledge?"	String type = <!!Q>	07.06.2003
104007	"Will you pay me with your attack skill?"	String type = <!!Q>	07.06.2003
104008	"Will you pay me with your defense skill?"	String type = <!!Q>	07.06.2003
104009	"Will you pay me with your spell power?"	String type = <!!Q>	07.06.2003
104010	"Will you pay me with your knowledge?"	String type = <!!Q>	07.06.2003
104011	"Then you have nothing to pay me! Begone!"	String type = <!!M>	07.06.2003
104012	"You can't trick me! You have none to pay!"	String type = <!!M>	07.06.2003
104013	The ghost admires its handiwork. "Your new powers are affecting you. I can see the change already..."	String type = <!!M>	07.06.2003
104014	"Excellent!"	String type = <!!Q>	07.06.2003
104015	"Excellent! The same trade again?"	String type = <!!Q>	07.06.2003

PS. Łączna waga pliku exe po ściągnięciu wynosi 316 MB, i jest kilka dodatkowych “bonusów”.
Heroes_III_Maps_(RoE__AB__SoD__WoG).4358618.TPB.7z (20.4 KB)

Żywcem wyjęty z WoG-a. Wersja z 3.58f, bez Script Update.

Pliki ERT zawierają w sobie teksty wykorzystywane przez skrypty ERM. Dzięki temu można przetłumaczyć komunikaty tych skryptów, nie ingerując w same skrypty.

Tak, na pewno, sam kiedyś się tym bawiłem. Dzięki temu można tworzyć w edytorze mapy większych rozmiarów.

Na oko pozwala edycji informacji o defach/obiektach. Każda mapa ma komplet informacji o defach użytych na niej obiektów (zawierających blockmapy, visitmapy i obiekt z którym jest związany). Oprócz tego gra ma w pliku tekstowym spis domyślnych ustawień wszystkich obiektów. Przypuszczam, ze to właśnie je można było zmieniać tym programem.

Może nie wspiera wszystkich formatów?

Tow, a czy powiedziałbyś mi, o co chodzi w tej “parce” plików (głównie mi chodzi o plik ERS)? Podaję ci przykładową parkę skryptów, która bawi się w zmienianie Nekropolii.

Plik script89.erm:

ZVSE
ERMS_ScriptDate=5.3(March).2006
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945

!?TM1;
!!UN:P89/?y-1; [check if script is enabled]
!!UN&y-1=1:T4/1/0/141;
!!UN&y-1=1:T4/2/0/159;
!!UN&y-1=1:T4/3/0/154;
!!UN&y-1=1:T4/4/0/196;
!!MA&y-1=1:C196/1/5C196/6/7500;

Plik script89.ers:

	89	1	1	-1	0	1	89	Necropoly boost	Necropoly boost	Necropoly boost

Skrypt - jeżeli jest załączony - zmienia dostępne do rekrutacji jednostki z pierwszych czterech poziomów nekropolii na kolejno mumię, ducha, krwawego smoka, drakolicza. Ponadto ma ustawiać cenę drakolicza na 7500 złota i 5 rtęci.

Numer skryptu (89) wysoki, nie jest to część WoG-a 3.58f, a w skryptach dla wersji 3.59 pod tym numerem kryje się co innego - tak więc jest to najpewniej jakiś przypadkowy twór fanowski, może część jakiegoś zestawu dodatkowych skryptów dla WoG-a?
Specjalnego sensu w tym skrypcie nie widzę… choć wprawdzie swój cel (Necropoly boost) spełnia :wink:

A plik ERS zawiera informacje o tym, jak skrypt ma się przedstawiać w opcjach wogifikacji (nazwa, miejsce, opis, i takie tam).

Domyślam się że to jakiś tester map który sprawdza ich jakość

Nie, to po prostu baza danych. Tester map byłby strasznie skomplikowany.

Czy mógłby mi to jakoś wysłać bo nie chce mi się wszystkiego ściągać

Edit: Już nietrzeba

I jak? Programiki się przydają czy to tylko marnowanie cennego czasu i miejsca na dysku?

No cóż, ja mam dostęp do internetu uniemożliwiający korzystanie z p2p, a Tow chyba też nie ściągał…

A co byś powiedział, gdybym przesłał albo tobie albo Tow-owi te programiki i któryś z was by je umieścił w dziale Download. Chyba nic nikomu by się nie stało, a programiki byłyby dostępne dla każdego chętnego.

Zgoda, mój mail to [impono MALPA gmail.com].

Tow, poszło do ciebie :mrgreen: :mrgreen: :mrgreen:

ale macie problemy z torrentami!
Wchodzicie na imageshack.us i macie opcje sciągnij torrent + możliowść edycji

No cóż, ja na przykład nie wiedziałem o takiej możliwości…