Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile


Age of Heroes Headlines:  
5 Oct 2016: Heroes VII development comes to an end.. - read more
6 Aug 2016: Troubled Heroes VII Expansion Release - read more
26 Apr 2016: Heroes VII XPack - Trial by Fire - Coming out in June! - read more
17 Apr 2016: Global Alternative Creatures MOD for H7 after 1.8 Patch! - read more
7 Mar 2016: Romero launches a Piano Sonata Album Kickstarter! - read more
19 Feb 2016: Heroes 5.5 RC6, Heroes VII patch 1.7 are out! - read more
13 Jan 2016: Horn of the Abyss 1.4 Available for Download! - read more
17 Dec 2015: Heroes 5.5 update, 1.6 out for H7 - read more
23 Nov 2015: H7 1.4 & 1.5 patches Released - read more
31 Oct 2015: First H7 patches are out, End of DoC development - read more
5 Oct 2016: Heroes VII development comes to an end.. - read more
[X] Remove Ads
LOGIN:     Username:     Password:         [ Register ]
HOMM1: info forum | HOMM2: info forum | HOMM3: info mods forum | HOMM4: info CTG forum | HOMM5: info mods forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Heroes 3.5 - WoG and Beyond > Thread: Maps for test
Thread: Maps for test
Siegfried
Siegfried


Famous Hero
posted December 30, 2012 06:15 PM
Edited by Siegfried at 17:44, 03 Jan 2013.

Maps for test

I think, from time to time there will be maps in development, which need some testing. So this thread is for any mapmaker/scripter/modder who has a map that seems to be playable and needs some testing by others.

What should go here? The map introduction, a link to it, optionally a more thorough description, and the discussion about the map resp. the testing results.

And here i start.

Map: Retirement.
From the readme:
Quote:

This is a sequel of Queen Cathrins Armaggedon Blade war. All is over, and she's gonna retire, together with Roland (as was the last message in AB). They have a small town near the Dejan border and some little cleanup to get rid of the remaining necromantic infestation. Nothing grave, easy going.

But the necromancers are not beaten. Lord Haart, resurrected as undead, is going for revenge.


Link: Retirement

The map is mostly meant for testing my new scripts. But besides that the map should offer quite some fun to play. I'm not a very experienced H3 strategist, but the map is winnable without major problems, if you develop your heroes well (see attached readme).

P.S. (i forgot): Version: plain WoG 3.58f

P.S.: Updated link and renewed map and scripts. Now also contains ZEOBJTS.TXT, ZAOBJTS.TXt and ZOBJCTS.TXt, with renumbered terrain patches and swapped Halfling and Peasant dwellings. I think this was a bug in the files. The Dwelling for peasants had the name AVGhalf.def, and the dwelling for the Halflings had the name AVGpeas.def. I just swapped their subtypes. I wonder why nobody had tested this up to this day.

____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
djkiwi
djkiwi


Hired Hero
posted December 31, 2012 04:40 AM
Edited by djkiwi at 04:41, 31 Dec 2012.

Battle of the Bawses

link
8 player multiplayer arena with additional combination artifacts and scripted blanks. Debug menu enabled for obvious reasons..
-For Era 2.4 with Emerald plugin
-So far i've been able to Wogify here my settings file Link
!!!!make sure to backup your emerald folder before you overwrite it with the one i provided.  <<<<<<<<<<<<
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Salamandre
Salamandre


Admirable
Omnipresent Hero
Wog refugee
posted December 31, 2012 11:34 AM
Edited by Salamandre at 17:28, 31 Dec 2012.

Quote:

make sure to backup your emerald folder


Why? Create a mod, backups are not necessary with Era.

Siegfried mod for Era
Retirement 90 days link


____________
Era II mods and utilities

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Siegfried
Siegfried


Famous Hero
posted December 31, 2012 05:01 PM

Thanks for testing and link.

I replayed the map again, this time (accidentally) with creature accumulation disabled. It is better to play it enabled to give the AI at least a chance

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Salamandre
Salamandre


Admirable
Omnipresent Hero
Wog refugee
posted December 31, 2012 05:18 PM
Edited by Salamandre at 17:38, 31 Dec 2012.

Ah I see, I think I made a mistake, as I only allowed your custom scripts to be loaded if wogification.

I will redo the mod tomorrow, with all scripts available. So you only replaced scripts 00-03.erm, right?
____________
Era II mods and utilities

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
djkiwi
djkiwi


Hired Hero
posted December 31, 2012 09:49 PM

Quote:
Quote:

make sure to backup your emerald folder


Why? Create a mod, backups are not necessary with Era.

Siegfried mod for Era
Retirement 90 days link




BoB Beta 0.3

how do i turn that into an era mod? (since now it all seems to be working except for the blank artifacts bug)
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Siegfried
Siegfried


Famous Hero
posted January 01, 2013 09:18 AM
Edited by Siegfried at 15:56, 01 Jan 2013.

Quote:
So you only replaced scripts 00-03.erm, right?


No, it is a 100% replacement.
This is not just only a small set of functions. It is a complete system, designed from scratch. All the triggers and functions work together. The basic functionality is, on every action, where a hero meets another object, may it be hero or dwelling or hatever, there is always the same setup stored in the same variables. So i do need a range of 200 v variables to do that. And of course some functions. It would be possible to adapt that to WoG scripts when i get such a range of v variables and a set of functions. I simply was too lazy to search for that.

The most work would be to remove the 3 timers and redo timer based functionality by using the standard WoG timers. They are made up differently.

The main advantage of using the same variable layout all over again and again is, that for any function i have access to these variables. I'm using a function to to it always the same way. Here it is:


** Function to store active side (hero)
** x1 = id
!?FU1&v100=34;                 ** Object 34 = Hero
**IF:M^FU1, storing hero^;
!!VRv101:Sx1;                  ** v101 = hero id
!!VRv100&x1<0:S-1;
!!FU&x1<0:E;
!!HEx1:O?v102;                 ** v102 = owner
!!HEx1:B2/?v103;               ** v103 = class
!!VRv104:Sv103:2;              ** v104 = alignment
**IF:M^DEBUG: ID=%V101, Owner=%V102, Class=%V103, Alignment=%V104^;
!!HEx1:F?v105/?v106/?v107/?v108;** primary skills
!!HEx1:X?v109/?v110/?v111/?v112/?v113/?v114/?v115; ** Speciality
!!VRv110&v109=1/v110<120:&65534; ** Always even number = basic type
!!VRv110&v109=4/v110<120:&65534;
!!HEx1:E?v116/?v117;           ** v116 = Exp. Pts, v117 = level
!!HEx1:R0/?v118 R1/?v119;      ** v118 = morale, v119 = luck
!!DO3/0/27/1:Px1/120;
!!FU:E;

For the right side i simply use another, nearly identical function that stores all to v200 and subsequent, with identical layout. And for towns (as soon as i need it) there will be another such function which stores relevant town data when visiting a town. These data are then available in all functions. That makes the whole system more consistent. FU3 stores all SS to v120...v147. For right side hero all SS are stored to v220 ... v247. For differences in function i just have to care about 1 digit.

I have f.ex. redone the witch hut script, with some modifications, using this. The pre-visit trigger is pretty standard:

** Object 113: Witch hut
!?OB113&1000;
**IF:M^DEBUG: Witch hut^;
!!HE-1:N?y-1;                  ** Hero id
!!FU&y-1<0:E;                  ** Something went wrong (no hero)
!!VRv100:S34;                  ** set marker: Hero
!!FU1:Py-1;                    ** Store hero
!!VRv200:S113;                 ** set marker: witch hut
!!WHv998/v999/v1000:S?v201;    ** set subtype (secondary skill) to v201
!!HE-1:Sv201/?y-2;             ** y-2 = heroes expertise
!!FU&y-2>0/v109<>0:E;          ** If hero already knows it, exit
!!FU&y-2>0/v109=0/v110<>v201:E;
!!OBv998/v999/v1000:M-1/1/0;   ** Disable message
!!FU:E;

And now the post-trigger, which shows some basic usage of this setup:

** Witch hut Post-visit, Hero not SS specialist
!$OB113&1000/v100=34/v109<>0;
**IF:M^DEBUG: Witch hut post^;
!!HE-1:N?y-1;                  ** Hero id
!!WHv998/v999/v1000:S?y-2;     ** Subtype (ss)
!!HE-1:Sy-2/?y-3;              ** Heroes expertise
!!VRy-4:S120+y-2;              ** y-4 points to former skill level
!!FU&vy-4>0/v109<>0:E;         ** Exit if already had this skill and not SS spec.
!!FU&vy-4>0:E;
!!FU&y-3<>1:E;                 ** Something went wrong, should be exactly 1
!!VRy-5:Sy-2+1;                **
!!VRy-5:*3;                    ** y-5 = (skill + level) image number
!!UN:N4/1/y-2;                 ** Name lookup: z1 = name of skill
!!IF:Q1/20/y-5/2^The witch living here offers you to learn %Z1. Do you want to listen?^;
!!HE-1&-1:Sy-2/0;              ** set skill to 0 if no
!!FU:E;

** Witch hut Post-visit, Hero is SS specialist, but other SS
!$OB113&1000/v100=34/v109=0/v110<>v201;
**IF:M^DEBUG: Witch hut post^;
!!HE-1:N?y-1;                  ** Hero id
!!WHv998/v999/v1000:S?y-2;     ** Subtype (ss)
!!HE-1:Sy-2/?y-3;              ** Heroes expertise
!!VRy-4:S120+y-2;              ** y-4 points to former skill level
!!FU&vy-4>0:E;                 ** Exit if already had this skill
!!FU&y-3<>1:E;                 ** Something went wrong, should be exactly 1
!!VRy-5:Sy-2+1;                **
!!VRy-5:*3;                    ** y-5 = (skill + level) image number
!!UN:N4/1/y-2;                 ** Name lookup: z1 = name of skill
!!IF:Q1/20/y-5/2^The witch living here offers you to learn %Z1. Do you want to listen?^;
!!HE-1&-1:Sy-2/0;              ** set skill to 0 if no
!!FU:E;


** Witch hut for skill specialist
!$OB113&1000/v100=34/v109=0/v110=v201;
!!WHv998/v999/v1000:S?y-2;     ** Subtype (ss)
!!HE-1:Sy-2/?y-3;              ** Heroes expertise
!!FU&y-3=3:E;                  ** Already at maximum
!!VRy-5:Sy-2+1;
!!VRy-5:*3;
!!VRy-5:+2;                    ** y-5 = (skill + level) image number
!!UN:N4/1/y-2;                 ** Name lookup
!!IF:Q1/20/y-5/2^The witch living here offers you to learn expert %Z1. Do you want to listen?^;
!!HE-1&1:Sy-2/3;               ** Set skill to maximum if yes
!!FU:E;


You see three triggers !$OB113, all with different pre-conditions. Only one of them will execute, depending what information is stored. The same information at the same location is available in battle, at battlefield setup, at any battle action, always. So i can write small functions (triggers) with well-defined pre-conditions. This makes the whole code much cleaner.

I think i'll rewrite most of WoG using this system. There are some functions i like very much (like parts of the Mithril scripts), others could need some enhancement (like the Witch Hut), others i do not like. Nevertheless, based on this system all functionality should be much more clear, local block.

I've just made a screenshot, showing one of the functions. Fighting against a necromancer may curse the opponent, depending on the necromancers skills. In this case the necro had logistics and estates. The result is here. Although i think i have to recalculate the parameters :) This is one of the WoG features that was not widely used in the standard scripts.



BTW: I forgot something. One of the implemented features need a slightly modifies ZAOBJTS.TXt, where the subtypes of the special terrain patches are renumbered. Here it is. It would be good to renumber the ZEOBJTS.TXt as well, but since anyone patches and modifies that file maybe it's better for me not to do that.

Ah, and one more: Would anyone mind to exchange the defs for the halfling dwelling and the peasant dwelling?

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Jump To: « Prev Thread . . . Next Thread »
Post New Poll    Post New Topic    Post New Reply

Page compiled in 0.0646 seconds