• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Problems with the Update 3

Don't you get a 0 damage done text on the screen when you set BLOCKDAMAGE to 0 with your code, CCC? In any case: When I tried to used the BLACKDAMAGE setting the way you do, it wouldn't work. Perhaps it does work for you; would be nice. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

BTW: The blockdamage code in Build 14 Alpha 6 Additional is quite different. You can put CCC's code into Alpha 6, but it does require some (easy) merging work. The file can't readily be put in.
 
<!--quoteo(post=183279:date=Feb 15 2007, 03:32 AM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Feb 15 2007, 03:32 AM) [snapback]183279[/snapback]</div><div class='quotemain'><!--quotec-->
Don't you get a 0 damage done text on the screen when you set BLOCKDAMAGE to 0 with your code, CCC? In any case: When I tried to used the BLACKDAMAGE setting the way you do, it wouldn't work. Perhaps it does work for you; would be nice. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
<!--QuoteEnd--></div><!--QuoteEEnd-->
Well, it DOES work for me <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" /> And I don't get any "0 damage done text " either. But the blockdamage idea is obviously not very popular anyway <img src="style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> , so who cares.
 
Which update version? What's the problem? What happens when you try?
 
<!--quoteo(post=183932:date=Feb 21 2007, 04:44 PM:name=Burnout)--><div class='quotetop'>QUOTE(Burnout @ Feb 21 2007, 04:44 PM) [snapback]183932[/snapback]</div><div class='quotemain'><!--quotec-->Dunno if its just me but the ship berthing option isnt working again.
<!--QuoteEnd--></div><!--QuoteEEnd-->Yepper

Update 3 don't like ship berthing

unless you load update 2 first.
 
<img src="style_emoticons/<#EMO_DIR#>/duel_pa.gif" style="vertical-align:middle" emoid=":ixi" border="0" alt="duel_pa.gif" /> <!--quoteo(post=183732:date=Feb 20 2007, 10:41 AM:name=CouchcaptainCharles)--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Feb 20 2007, 10:41 AM) [snapback]183732[/snapback]</div><div class='quotemain'><!--quotec-->
<!--quoteo(post=183279:date=Feb 15 2007, 03:32 AM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Feb 15 2007, 03:32 AM) [snapback]183279[/snapback]</div><div class='quotemain'><!--quotec-->
Don't you get a 0 damage done text on the screen when you set BLOCKDAMAGE to 0 with your code, CCC? In any case: When I tried to used the BLACKDAMAGE setting the way you do, it wouldn't work. Perhaps it does work for you; would be nice. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
<!--QuoteEnd--></div><!--QuoteEEnd-->
Well, it DOES work for me <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" /> And I don't get any "0 damage done text " either. But the blockdamage idea is obviously not very popular anyway <img src="style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> , so who cares.
<!--QuoteEnd--></div><!--QuoteEEnd-->
Well Sir ... I do!

I appreciate your work on this very much and have in fact merged it into B14A6 by taking your small addition into fightparams and just using the BLOCKDAMAGE constant in buildsettings as any integer instead of a binary.

I have it set to 5 <img src="style_emoticons/<#EMO_DIR#>/duel_pa.gif" style="vertical-align:middle" emoid=":ixi" border="0" alt="duel_pa.gif" />
The 'nice2have' solution would be an integer variable somewhat controlled by enemy strength of the guys attacking you and not just a constant.

Once again thank you for all your efforts.

All the best
Frans

EDIT: Well I just tried to implement my own solution based on your, Pieters and my own ideas and it seems to work just fine

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->        {    // HawkerT Feb07 Blockdamage
            int curBlockDamage = attack.skill.Fencing;
            int actBlockDamage = BLOCKDAMAGE;
            
            if(curBlockDamage > BLOCKDAMAGE)
            {
                actBlockDamage = curBlockDamage;
            }

            if(actBlockDamage > 0 && !LAi_IsImmortal(enemy) && GetCharacterEquipByGroup(attack, BLADE_ITEM_TYPE) != "bladeX4")
            {
                LAi_ApplyCharacterDamage(enemy, actBlockDamage);
                LAi_CheckKillCharacter(enemy);
                return;
            }
                        
            if(actBlockDamage > 0 && !LAi_IsImmortal(attack) && GetCharacterEquipByGroup(attack, BLADE_ITEM_TYPE) == "bladeX4")
            {
                LAi_ApplyCharacterDamage(attack, actBlockDamage);
                LAi_CheckKillCharacter(attack);
                return;
            }
        }    // HawkerT Feb07 Blockdamage end<!--c2--></div><!--ec2-->
 
Thanks for that, HawkerT. I'm going to be playing with your code and see what it does. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
Could you please tell me what I should add with the BuildSettings.h toggle when using your code?
 
<!--quoteo(post=184302:date=Feb 25 2007, 06:11 AM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Feb 25 2007, 06:11 AM) [snapback]184302[/snapback]</div><div class='quotemain'><!--quotec-->
Thanks for that, HawkerT. I'm going to be playing with your code and see what it does. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
Could you please tell me what I should add with the BuildSettings.h toggle when using your code?
<!--QuoteEnd--></div><!--QuoteEEnd-->
Hey Pieter, I hope you are doing good out there in that big pond cruising towards a more sunny and warm heaven on this earth.

I have enhaced the code integrity and performance when not wanting blockdamage.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    isBlocked = isBlocked && CheckAttribute(enemy,"equip.blade") && GetCharacterEquipByGroup(enemy,BLADE_ITEM_TYPE) != "bladeX4";
    // PB: Disable blocking for enemies with either no sword or their fists equiped
    if(isBlocked)
    {
        //Âåðîÿòíîñòü ïðîáèâêè
        float p = LAi_BladeFindPiercingProbability(attack, enemy, hitDmg);
        p = p + pBreak;
        //Åñëè øàíñîâ ïðîáèòü íåò, òî íåíàíîñèì ïðîâðåæäåíèÿ
        if(p < 0.0) return;
        //Åñëè øàíñîâ ïðîáèòü íåò, òî íåíàíîñèì ïðîâðåæäåíèÿ
        if(rand(10000) > p*10000)
        {// HawkerT Feb07 Blockdamage
            if(BLOCKDAMAGE > 0)
            {
                int curBlockDamage = attack.skill.Fencing;
                int actBlockDamage = BLOCKDAMAGE;
                if(curBlockDamage > BLOCKDAMAGE)
                {
                    actBlockDamage = 2*rand(curBlockDamage);
                }

                if(GetCharacterEquipByGroup(attack, BLADE_ITEM_TYPE) != "bladeX4")
                {
                    if(!LAi_IsImmortal(enemy))
                    {
                        LAi_ApplyCharacterDamage(enemy, actBlockDamage);
                        LAi_CheckKillCharacter(enemy);
                        return;
                    }
                }else{
                    if(!LAi_IsImmortal(attack))
                    {
                        LAi_ApplyCharacterDamage(attack, actBlockDamage);
                        LAi_CheckKillCharacter(attack);
                        return;
                    }
                }
                return;
            }
        }// HawkerT Feb07 Blockdamage end
    }<!--c2--></div><!--ec2-->
Well as you can see my solution is based on a characters fencing skill (1-10) which is applied during each block. My basic idea being that if a character (NPC) is skilled at fencing then blocking him/her will be more costly and less likely to be a walk in the park (you have to be more focussed and move faster, his/her blow will be harder and suck more juice from your muscles etc.).

I also want this solution to become harder as your own skill rises. But that is exactly the nice thing about using enemy fencing skill as this will follow your own skill somewhat. As I understand the game mechanics then enemy skill is automatically adjusted to higher levels when your own level rises.

Now if you use my solution 'out of the box' so to speak, then the toggle will be the minimum hit damage applied, i.e. if you set this to 2 (I have) then at least 2 points of damage will be applied when blocking even if your enemy has fencing skill 1. It also still functions as a toggle in that if you set it to 0 then no blockdamage will be applied.

I have also enhanced your initial fists check. If both opponents are using fists then no blockdamage is applied. If the attacker is using fists and the enemy is using a blade then if the enemy blocks the blockdamage is applied to the attacker. The logic being that trying to knock your opponent who then blocks you with a sharp blade ... well that is bound to hurt YOU!

Other then that the isImmortal checks are still in there.

Let me know when you refine it even further as I like this aspect of the game to become a bit better.

All the best
Frans
 
Thanks again, HawkerT. <img src="style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />

Some random thoughts without actually having tested it:

I expected the BLOCKDAMAGE setting to be used as maximum value instead of minimum value. Setting this value higher will make the beginning of the game harder, while not having much of an impact on the later stage of the game.

I'm not sure if 10 as max value is enough to make this mod still have an impact at high character levels. Perhaps there should be some sort of scalar. Perhaps a scalar taking the enemy or attack rank into account? Or perhaps a scalar in BuildSettings.h? Or a scalar that both takes into account the rank AND the BuildSettings.h value?

The way the fists code works now seems to mean that if the player has fencing = 10 and the enemy has fencing = 1, then the player gets a 10 hp points hit when being blocked. So this hp hit to the player actually increases as the player fencing skill increases. This would, in return, also make it so that an enemy with fencing = 1 will only get a 1 hp hit when being blocked by the player, even if the player's fencing = 10.

If you make it rand(actBlockDamage), that should make the hp hit random. It'll also make it easier, because then the hp hit is not always equal to the enemy fencing skill, but is usually lower. To prevent it from becoming easier, change it to 2*rand(actBlockDamage). That way the average of the hp hits will be equal to the enemy fencing skill, but it can be both higher and lower. I personally like some randomness. That way you never know what to expect.

Please take above thoughts with a major grain of salt. My random thoughts might either be really good points or really bad ones. Do with the good ones as you wish and just ignore the others. It is not meant to critisize your work in any way.
 
the purpose of an increase of damage to the player when he has high fencing skill is to keep it challenging right? because at first glance, it would seem rather strange that he would actually get more damage while he would get better at fighting. but it does make sense to me.
 
<!--quoteo(post=184999:date=Mar 6 2007, 03:23 AM:name=Pieter Boelen)--><div class='quotetop'>QUOTE(Pieter Boelen @ Mar 6 2007, 03:23 AM) [snapback]184999[/snapback]</div><div class='quotemain'><!--quotec-->
Thanks again, HawkerT. <img src="style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />

Some random thoughts without actually having tested it:

I expected the BLOCKDAMAGE setting to be used as maximum value instead of minimum value. Setting this value higher will make the beginning of the game harder, while not having much of an impact on the later stage of the game.

I'm not sure if 10 as max value is enough to make this mod still have an impact at high character levels. Perhaps there should be some sort of scalar. Perhaps a scalar taking the enemy or attack rank into account? Or perhaps a scalar in BuildSettings.h? Or a scalar that both takes into account the rank AND the BuildSettings.h value?

The way the fists code works now seems to mean that if the player has fencing = 10 and the enemy has fencing = 1, then the player gets a 10 hp points hit when being blocked. So this hp hit to the player actually increases as the player fencing skill increases. This would, in return, also make it so that an enemy with fencing = 1 will only get a 1 hp hit when being blocked by the player, even if the player's fencing = 10.

If you make it rand(actBlockDamage), that should make the hp hit random. It'll also make it easier, because then the hp hit is not always equal to the enemy fencing skill, but is usually lower. To prevent it from becoming easier, change it to 2*rand(actBlockDamage). That way the average of the hp hits will be equal to the enemy fencing skill, but it can be both higher and lower. I personally like some randomness. That way you never know what to expect.

Please take above thoughts with a major grain of salt. My random thoughts might either be really good points or really bad ones. Do with the good ones as you wish and just ignore the others. It is not meant to critisize your work in any way.
<!--QuoteEnd--></div><!--QuoteEEnd-->

Hey Pieter, some good thoughts you have there!

Well the 2*rand thing is now in and working fine (i've edited my post above).

The fist logic ... hmmm ... well first of all I think it will very rarely be relevant! I mean how often will you try to attack with your fists when the enemy is sporting a huge cutlass? But anyway I know it seems a bit sillly but my intention is actually as you have statet above, in that the harder I hit with my fists (let's say I'm skill 9) the more I will do damage to myself when hitting the opponents sharp blade edge.

About the scalar and not being hard later on. Hmm, well you might be right although I am not sure. The thing is that I am playing with the toughness perk being only half it's current value for all characters, officers and NPC's (down from 3 to 1.5), as I think the toughness perk is nsimply to cheasy when being to strong. So this actually means a big difference throughout all levels. Also my main purpose for using the blockdamage mod is to hurt the player especially when being outnumbered. And I can tell you that if you have 3 guys with skill 10 hacking away at your blocks then your numbers will plummet real fast especially with the toughness perk halved. This is exactly my intention.

Anyway, I will keep your thoughts in mind.

Thank you and all the best
Frans
 
Your fists point makes sense. Sounds good to me. Also: All my comments are just random thoughts without actually playing with it. So do with them as you wish. I think it should be pretty fine with the rand() added. <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />
 
You may wish to change the fist logic so that it only applies damage rarely. In actual combat, you parry with the flat of the blade to avoid nicking it, and a rapier is a peicing weapon with no cutting edge at all.
 
You mean make it so that you only do damage once every few times you hit an enemy with your fists? Should be easy to do. Just add a rand into the code and it should work. Anyone else thinks that is a good idea?
 
No what I meant is it only applies damage to you when you hit a blocking opponent less often, as you usually block with the flat of the blade.
 
But the whole idea with the fists is to make them less lethal. Doing what you suggest will make them more lethal again. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
Back
Top