Serious problem with modding undead in WESNOTH 1.0.2

The place to post your WML questions and answers.

Moderator: Forum Moderators

Forum rules
  • Please use [code] BBCode tags in your posts for embedding WML snippets.
  • To keep your code readable so that others can easily help you, make sure to indent it following our conventions.
Post Reply
Sauron
Posts: 221
Joined: January 11th, 2006, 8:51 am
Location: Barad-Dur, Mordor
Contact:

Serious problem with modding undead in WESNOTH 1.0.2

Post by Sauron »

Hi!

I have come to a halt. I noticed I cannot recruit if I pick undead army (no matter in what of my eras...). The problem is as follows: I changed IDs and races of all units. And works fine, with one exception - adding "sauron_Walking Corpse" to recruit attrib of a side causes the side cannot recruit at all (with all other units - works fine!)
:

Code: Select all

#macro to define most of Walking Corpse
#define UNIT_BODY_WALKING_CORPSE BASE_IMAGE

id=sauron_Walking Corpse
name= _ "Walking Corpse"
race=sauron_undead
image="{BASE_IMAGE}.png"
image_defensive="{BASE_IMAGE}-attack.png"
hitpoints=72
movement_type=undeadfoot
movement=4
experience=24
level=0
alignment=chaotic
advanceto=sauron_Soulless
cost=6
usage=fighter
unit_description= _ "Walking Corpses are the bodies of the dead, re-animated by dark magic. Although weak in combat, these zombies can spread their curse to those they kill, increasing the army of undead."
get_hit_sound=zombie-hit.wav

        [death]
                [frame]
                begin=0
                end=200
                image="{BASE_IMAGE}-die-1.png"
                [/frame]
                [frame]
                begin=200
                end=400
                image="{BASE_IMAGE}-die-2.png"
                [/frame]
                [frame]
                begin=400
                end=600
                image="{BASE_IMAGE}-die-3.png"
                [/frame]
        [/death]

	[attack]
	name=fist
	type=impact
	range=short
	damage=4
	number=10
	special=plague
		[animation]
		direction=se,sw,ne,nw
			[frame]
			begin=-200
			end=100
			image="{BASE_IMAGE}-attack.png"
			[/frame]
		[/animation]
		[animation]
		direction=n
			[frame]
			begin=-200
			end=100
			image="{BASE_IMAGE}-attack-n.png"
			[/frame]
		[/animation]
		[animation]
		direction=s
			[frame]
			begin=-200
			end=100
			image="{BASE_IMAGE}-attack-s.png"
			[/frame]
		[/animation]
		[sound]
		time=-200
		sound=zombie-attack.wav
		[/sound]
	[/attack]
#enddef

[unit]
{UNIT_BODY_WALKING_CORPSE undead-zombie}
	[variation]
	variation_name=drake
	{UNIT_BODY_WALKING_CORPSE undead-zombie-drake}
	[/variation]

	[variation]
	variation_name=swimmer
	{UNIT_BODY_WALKING_CORPSE undead-zombie-swimmer}	
	[/variation]

	[variation]
	variation_name=troll
	{UNIT_BODY_WALKING_CORPSE undead-zombie-troll}
	[/variation]

	[variation]
	variation_name=wose
	{UNIT_BODY_WALKING_CORPSE undead-zombie-wose}
	[/variation]

	[variation]
	variation_name=saurian
	{UNIT_BODY_WALKING_CORPSE undead-zombie-saurian}
	[/variation]

	[variation]
	variation_name=mounted
	{UNIT_BODY_WALKING_CORPSE undead-zombie-mounted}
	[/variation]
[/unit]

Any ideas/suggestions WHY?

Thanx in advance.
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Sauron
Posts: 221
Joined: January 11th, 2006, 8:51 am
Location: Barad-Dur, Mordor
Contact:

Post by Sauron »

I patched it like this for now:

Code: Select all

[unit]
id=sauron_Walking Corpse
name= _ "Walking Corpse"
race=sauron_undead
image="undead-zombie.png"
image_defensive="undead-zombie-attack.png"
hitpoints=72
movement_type=undeadfoot
movement=4
experience=24
level=0
alignment=chaotic
advanceto=Soulless
cost=6
usage=fighter
unit_description= _ "Walking Corpses are the bodies of the dead, re-animated by dark magic. Although weak in combat, these zombies can spread their curse to those they kill, increasing the army of undead."
get_hit_sound=zombie-hit.wav

        [death]
                [frame]
                begin=0
                end=200
                image="undead-zombie-die-1.png"
                [/frame]
                [frame]
                begin=200
                end=400
                image="undead-zombie-die-2.png"
                [/frame]
                [frame]
                begin=400
                end=600
                image="undead-zombie-die-3.png"
                [/frame]
        [/death]

	[attack]
	name=fist
	type=impact
	range=short
	damage=4
	number=10
	special=plague
		[animation]
		direction=se,sw,ne,nw
			[frame]
			begin=-200
			end=100
			image="undead-zombie-attack.png"
			[/frame]
		[/animation]
		[animation]
		direction=n
			[frame]
			begin=-200
			end=100
			image="undead-zombie-attack-n.png"
			[/frame]
		[/animation]
		[animation]
		direction=s
			[frame]
			begin=-200
			end=100
			image="undead-zombie-attack-s.png"
			[/frame]
		[/animation]
		[sound]
		time=-200
		sound=zombie-attack.wav
		[/sound]
	[/attack]
[/unit]
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
User avatar
Sapient
Inactive Developer
Posts: 4453
Joined: November 26th, 2005, 7:41 am
Contact:

Post by Sapient »

If you look in your Wesnoth directory there should be a file named "stderr.txt". It may give you some hints in a situation like this. If there is trouble parsing one of the units on the recruit list, you will be unable to display the recruit dialog. However, the AI will still be able to recruit units, since it does not need to open the dialog to recruit.
http://www.wesnoth.org/wiki/User:Sapient... "Looks like your skills saved us again. Uh, well at least, they saved Soarin's apple pie."
User avatar
Noyga
Inactive Developer
Posts: 1790
Joined: September 26th, 2005, 5:56 pm
Location: France

Post by Noyga »

You need to change the name of the macro too :
UNIT_BODY_WALKING_CORPSE -> UNIT_BODY_SAURON_WALKING_CORPSE
else this will use the standard macro instead of you own macro
Btw, with 1.1.2 this shouldn't be a problem because of the usage of #undef that make the macro local to the file
Sauron
Posts: 221
Joined: January 11th, 2006, 8:51 am
Location: Barad-Dur, Mordor
Contact:

Post by Sauron »

Thanx 4 explanation :D :idea:
Sauron
Customize yourself random factor in game:
GET my mod [available as C++ sourcecode and compiled Windows executable] for wesnoth 1.6.4
at http://saurons-mod.zor.org/
Mod thread
http://www.wesnoth.org/forum/viewtopic.php?t=26803
Post Reply