Fulqrum Publishing Home   |   Register   |   Today Posts   |   Members   |   UserCP   |   Calendar   |   Search   |   FAQ

Go Back   Official Fulqrum Publishing forum > Fulqrum Publishing > King's Bounty > King's Bounty: Armored Princess > Mods

Mods Armored Princess mods

Reply
 
Thread Tools Display Modes
  #1  
Old 09-09-2013, 07:21 PM
MattCaspermeyer MattCaspermeyer is offline
Approved Member
 
Join Date: Aug 2010
Posts: 553
Lightbulb I'm not sure, try these...

Quote:
Originally Posted by rikkaidd View Post
thanks a thousand! this is excellent and very complete tutorial..
On the dragon i have worked badly but i have had this game from one week, must still learn; as you said, am going by intuition and modding experience in other games.

I had already done a magic addition,but at the beginning without animation
then I have made a modification putting the basic animation "priest2", but the signalling on the struck targets is not seen, he signals only a target but he strikes at least 3.

Code:
main {
  class=chesspiece
  model=priest2.bma
  cullcat=0
}
arena_params {
  features_label=cpi_priest_feat
  .........................
  attacks=moveattack,shot,respawn,holy_rage,firethrow
  ...............
  firethrow {
    dontusenearenemy=1
    device=firecatapult
    class=throw
    picture=BA1_CatapultFire_
    picture_small=BA1_CatapultFire_small.png
    distance=50
    ad_factor=1
    base_attack=0
    mindist=2
    reload=4
    penalty=0.5
    animation=cast/throw/thtarget  //animation change with basic animation priest2
    throw=catapultfireball
    hinthead=special_fire_catapult_head
    hint=special_fire_catapult_hint
    framekey=x
    7in1=0.5
    friendly_fire=1
    damage {
      fire=5,7
    }
    custom_params {
      burn=25
    }
  }
Hmmm... I haven't worked too much with the ATOM animations, but it looks like you copied firethrow from CATAPULT.ATOM to PRIEST2.ATOM.

Try this:

Code:
  firethrow {
    dontusenearenemy=1
//    device=firecatapult  <-- Comment out this line, I'm not sure what it does, so experiment
    class=throw
    picture=BA1_CatapultFire_
    picture_small=BA1_CatapultFire_small.png
    distance=50
    ad_factor=1
    base_attack=0
    mindist=2
    reload=3
    penalty=0.5
    animation=cast/throw/thtarget  <-- you already changed this, so this should be correct
    throw=priest2_ball  <-- change this to the priest attack, I think it's needed as catapultfireball doesn't exist in the PRIEST2.ATOM, but not certain
    hinthead=special_fire_catapult_head
    hint=special_fire_catapult_hint
    framekey=x
    7in1=0.5
    friendly_fire=1
    damage {
      fire=8,13
    }
    custom_params {
      burn=50
    }
  }
I'm not sure if the above will do anything, but give that a try. Another thing you can try is (copy shot from PRIEST2.ATOM):

Code:
  shot2 {
    group=1,2
    class=throw
    base_attack=1
    ad_factor=1
    distance=7
    mindist=2
    showdmg=1
    penalty=0.5
    7in1=0.5
    friendly_fire=1
    animation=cast/throw/thtarget
    throw=priest2_ball
    framekey=x
    damage {
      magic=5,7
    }
    custom_params {
      holy=150 //%
    }
  }
Try that, don't forget to add shot2 to the attacks list. Another thing is that if you look at the posthitmaster for PRIEST2.ATOM, you'll see that features_holy is being called. It is possible that you need to add the holy= custom parameter to your fireshot (change burn to holy) as you may be crashing the LUA features_holy function.

Do you run the game in debug mode? Open a command prompt in the AP directory and type kb -dev to launch the game in debug mode. You should have a "freeze" if there is a problem and then ALT-Tab back to Windows to see if there is a pop-up message.

A lot of the scripts don't have good error checking and since your fire_shot doesn't have a holy custom parameter, it will be nil in the LUA function and if the function doesn't check for nil (note that the Inquisitor's base and throw attacks both have a holy custom parameter) then it will crash the function.

Try that as any error in the LUA scripts will abort the script and it will just move on to the next unit.

Good luck!

/C\/C\
Reply With Quote
  #2  
Old 09-12-2013, 06:27 PM
rikkaidd rikkaidd is offline
Registered Member
 
Join Date: Sep 2013
Posts: 8
Default

Quote:
Originally Posted by MattCaspermeyer View Post
Good luck!
I am working at the boss demenion" verona.embryos.loc.txt"to increase his troops;
for modify his hero abilities, how i can to know what *.hero file corresponds to demenion???
i have already read your guide on as modify these * hero file!

furthermore I have a small problem of game,nothing what to do with modding :I am not able to reach/find samman on shettera ,is bug?

Last edited by rikkaidd; 09-12-2013 at 06:31 PM.
Reply With Quote
  #3  
Old 09-13-2013, 07:30 AM
MattCaspermeyer MattCaspermeyer is offline
Approved Member
 
Join Date: Aug 2010
Posts: 553
Exclamation Use ENG_ACTORS.LNG & ENG_ENEMY_HEROES.LNG...

Quote:
Originally Posted by rikkaidd View Post
I am working at the boss demenion" verona.embryos.loc.txt"to increase his troops;
for modify his hero abilities, how i can to know what *.hero file corresponds to demenion???
i have already read your guide on as modify these * hero file!

furthermore I have a small problem of game,nothing what to do with modding :I am not able to reach/find samman on shettera ,is bug?
Samman is "upstairs" - you have to go up on one of the flying rocks (or whatever they are called).

To find the list of heroes, there are a couple of different ways to do it:

Decompile all the *.HERO files (this is easily done if you build the BAT / CMD file in Excel - I did this for TL). You will see something like this:

Code:
{Y}{}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 11 elements
{
	{U}{uid} = {26443629}
	{U}{au} = {646065185}
	{W}{h} = {ehero_system_hint_26443629}
	{A}{ato} = {}
	{A}{sp} = {spell_defenseless/spell_bless/spell_magic_bondage/spell_fire_ball}
	{U}{le} = {17}
	{U}{in} = {2}
	{U}{ma} = {80}
	{U}{atk} = {13}
	{U}{de} = {5}
	{Y}{fi}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{1} // 1 elements
	{
		{Y}{-N/A-}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 6 elements
		{
			{Y}{filter}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 1 elements
			{
				{A}{belligerent} = {ally}
			}
			{A}{pbonus} = {krit,20,0,0,-100,0,0}
			{A}{dbonus} = {}
			{A}{rbonus} = {}
			{A}{attack_on} = {}
			{A}{attack_off} = {}
		}
	}
}
See {U}{au} and ehero_system_hint_*? {U}{au} is the actor unit ID and you can search for that in ENG_ACTORS.LNG. You'll see that if you search for 646065185 you'll find Rake Yavik. You can also try to use the number after ehero_system_hint and search for that in ENG_ENEMY_HEROES.LNG. Sometimes the descriptor is not descriptive enough, but it should be enough. Sometimes an enemy hero won't have an {au}, but almost all of them do.

Another way to do it is to open ENG_ACTORS.LNG and search for the hero's name (they are almost always in this list). For example, for Demenion you'll see:

Code:
.
.
.
actor_system_1760723417_name=Lin Thorvald
actor_system_1760723417_sdesc_=Dwarven engineer
actor_system_1780811564_name=Demenion
actor_system_1780811564_sdesc_=Usurper-King
actor_system_1785069666_name=Workshop
actor_system_1789540691_name=Master Dagon
actor_system_1789540691_sdesc_=Dwarven engineer
.
.
.
Here you see Demenion, and then you see the description: "Usurper-King". You can then try to search in ENG_ENEMY_HEROES.LNG for "Usurper" you'll get:

Code:
.
.
.
ehero_system_hint_1246967819=The dreadful leader of the Orc Exodus. He is one of the seven champion-warriors elected to serve on the Council of Ancestors. And for twenty-five years, none have surpassed him in military skill.
ehero_system_hint_131404540=Usurper-King of Teana, who seized power through treachery. A very crafty opponent.
ehero_system_hint_1315000373=Dark Elf, servant of Demenion. It is said that under his leadership, monstrous atrocities are being committed in the prison.
.
.
.
You see that "ehero_system_hint_131404540" describes what seems to be Demenion. The number is the number of Demenion's *.HERO file: 131404540.HERO. Decompile his *.HERO file and you'll get:

Code:
{Y}{}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 11 elements
{
	{U}{uid} = {131404540}
	{U}{au} = {1780811564}
	{W}{h} = {ehero_system_hint_131404540}
	{A}{ato} = {}
	{A}{sp} = {spell_lightning/spell_demonologist/spell_ram/spell_hypnosis}
	{U}{le} = {46}
	{U}{in} = {15}
	{U}{ma} = {220}
	{U}{atk} = {20}
	{U}{de} = {20}
	{Y}{fi}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{1} // 1 elements
	{
		{Y}{-N/A-}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 6 elements
		{
			{Y}{filter}, F_SORTED{0}, F_COMPACT_TAGS{1}, F_NONAMES{0} // 1 elements
			{
				{A}{belligerent} = {ally}
			}
			{A}{pbonus} = {}
			{A}{dbonus} = {}
			{A}{rbonus} = {physical,15,0,0,-100,0,0}
			{A}{attack_on} = {}
			{A}{attack_off} = {}
		}
	}
}
See the number for {U}{au}? That is the actor unit id and note that 1780811564 matches the name and description in ENG_ACTORS.LNG. That's how you'll know that you have the right file.

The best way to do it is the first way, but that requires you to decompile all the *.HERO files and match them up. The second or third way are good if you want to try just one.

I've meant to create a cross-reference hero list like I did for TL, but haven't gotten to it, yet. I'll try to get to it in the next couple of days for the full list, as it is easy for me to do...

Good luck!

/C\/C\
Reply With Quote
  #4  
Old 09-13-2013, 02:36 PM
rikkaidd rikkaidd is offline
Registered Member
 
Join Date: Sep 2013
Posts: 8
Default

thanks
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:51 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.