• 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!

Few minor modifications/additions/`bug-fixes` for PotC

Thanks a lot Petros! Can't wait for the pictures! If you want to make a new picture for the Solingen Rapier too, that would be great. I just LOOOOVE Solingen Rapiers. (Since they've got something to do with The Netherlands <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" /> )
The etherbottle idea sounds like the best idea I couldn't have thought of! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" />
And I'll check out the troubles with Rys Bloom. With a bit of luck, I can figure out what's wrong. (BTW: I did change the Marc Blacque skin into Cat's `retro-French` sailor look)

BTW: Alan was right about the tatoo dialog. I fixed it now, though.
 
I'm trying to disable the blocking key when having the "sword" which is your fists equiped. There wouldn't happen to be anyone knowing if that is acchievable and how, right? I don't want you to be able to block anything with your fists... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
Another question: Why does using "makeint(pchar.rank)" in LAi_events.c cause trouble (errors so the game won't start)? I am trying to make the following code for the new fists weapon:<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    if( CheckAttribute(weapon, "fist" ) && enemy.chr_ai.group != LAI_GROUP_PLAYER )

    {

 LAi_ApplyCharacterDamage(enemy, makeint(pchar.rank) + rand(5));

 // Does additional damage to enemy; character's rank increases damage (= punch power)

 if(rand(100)< makeint(pchar.rank) + 5)

 // Checks if punch knocks enemy out; character's rank increases chance

 {

     LAi_SetPoorTypeNoGroup(enemy);    // makes initial target collapse or cover

     enemy.stuntime = locTmpTime;    // stores the time of this, for reawakening

     enemy.stuntime.dialog.filename = enemy.dialog.filename;    // saves original dialog

     enemy.dialog.filename = "stunned_dialog.c";    // assigns "stunned" dialog during stuntime

   if(enemy.sex == "man") {PlaySound("OBJECTSVoicesdeadmaledead1.wav")}    // groan

     else{PlaySound("OBJECTSVoicesdeadfemaledead_wom2.wav")}

 }

    }<!--c2--></div><!--ec2-->Also: Trying to add a particle system when the enemy is knocked out has been refusing to work as well...
 
Two things I just noticed:
1) I got poisoned while fighting in Douwesen, but have no idea why. Could any enemy have had a poisonous weapon?
2) After dying and being revived in the tavern, I was still poisoned, so I died again in half a minute. Shouldn't you be cured when you're revived?

Little question:
Weapon name: Your Trusty Fists
Decription: They may not do as much damage as an avarage sword, but they can knock your opponent out. And as you increase in rank, so does your ability to beat the living daylights out of your foes!

Anyone knows a better (or funnier) name/description?
And please note: The features don't work yet.
 
Here are two Etherbottle options:
Ether1<img src="http://www.pix8.net/pro/pic/7888greeb/365363.jpg" border="0" class="linked-image" />
Ether2<img src="http://www.pix8.net/pro/pic/7888greeb/365364.jpg" border="0" class="linked-image" />

CCC, Everyone, what yas think?

Another question, CCC should we put this into "itemsccc.tga.tx"
so that:
itm.picIndex = 10;
itm.picTexture = "ITEMS_ccc";

... and how did you get the ether bottle to link to PicIndex = 18 of Items1?
 
Hi to everybody <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" />

I'm a new crew member (but an old seadog)
"Chapeau" (cap off) 4 all u talented boys & girls!!

Just a question, It's de "stormy start" an optional tutorial game start?

That's all by the moment. tks a lot
 
Yay for fists, I'd wished for that a while ago. And stupendous that you could potentially knock someone out. The description's great, Pieter... I'd only correct "avarage" to "average." (This ability would come in very nicely in this OTHER quest idea of mine...) OR it could allow you to enter boxing matches for money...

And yay for a new pic of the Solingen... I always ignore it, I sell it away, because I assume it's the needle. But that's going to be another part of this one quest, and I was about to change it myself... but I'll leave that to you, Petros. And I'll save a copy of the first etherbottle pic and put it in itemsccc.tga, to replace the current one.

I've a similiar question: For my leeches, they need their own "used item" icon... there are two "useditem" textures in the battleinterface folder, and I want to make a new one, which I did but which I can't make work. I probably need to reference it in some file like "pictures" in the ini folder, but it's not in that file itself, or in any in the same folder. Does someone know where?

---

Pieter: I've noticed you can poison your officers with the borgiablade or throwing knife... and I guess they can poison you as well. I don't mind; it's only fair. I just never give my officers poison weapons. But I don't see why enemies shouldn't have them. I'd vote for giving all the Akellani borgiablades, or making them their own poisoned tribal weapon of some sort.

Hobo: The stormy start is a new dialog/game option in combination with CCC's special weapons assembly kit... it should be on the ftp server as a standalone (look at the sticky at the top of the modding forum for instructions on the FTP), or get one of Pieter's composition downloads, which make a slough more changes, that all must be installed over the latest version of build12.

Cat: A while ago I mentioned some quest cases in Danielle's `after-game` dialog that aren't in quest_reactions.c or both_reactions.c...

In this, for one, "end_game2" is nowhere to be found.
case "Clement_home2":
Dialog.Text = DLG_TEXT[459];
Link.l1 = DLG_TEXT[460];
Link.l1.go = "exit";
NextDiag.TempNode = "After_Final2";
AddDialogExitQuest("end_game2");
break;

Nor is "Story_Danielle_Departs_Exit" a little farther down.
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> <b>Hoboseadog, </b>and welcome aboard! Have an ale! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/beer2.gif" style="vertical-align:middle" emoid=":beer" border="0" alt="beer2.gif" />

Yes, the Stormy Start is optional - you can either do it, or go through the tutorial with Malcolm as usual, when you start a new game. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />

<b>Pieter</b> I love the "trusty fists" idea, but when you are unarmed, no enemy will attack you. They might have their swords out but they will not attack you if you do not have a sword equipped. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" /> Are you going to make a boxing ring? <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

<b>Petros, </b>I like the crystal (white) one better, nice job! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />

<b>Alan: </b>RE: Danielle fix, I'll take a peek and see. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />

Ah... "end_game2" is in quests_reaction.c -

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->  case "end_game":

     SetQuestHeader("After_Final");  // --> Cat for Danielle fix

     AddQuestRecord("After_Final", "1");    

     

     Pchar.quest.Story_Take_Clement_Home.win_condition.l1 = "location";

     Pchar.quest.Story_Take_Clement_Home.win_condition.l1.location = "Oxbay_Lighthouse";

     Pchar.quest.Story_Take_Clement_Home.win_condition = "Story_Take_Clement_Home";

     Pchar.quest.Story_Take_Clement_Home.fail_condition = "Story_Take_Clement_Home";    

     Characters[GetCharacterIndex("researcher")].Dialog.CurrentNode = "Home_again";  

     Characters[GetCharacterIndex("danielle")].Dialog.CurrentNode = "Clement_home";

 break;

 

 case "end_game2":      

     Pchar.quest.Story_AfterFinalOnRedmond2.win_condition.l1 = "location";

     Pchar.quest.Story_AfterFinalOnRedmond2.win_condition.l1.location = "Redmond_shore_02";

     Pchar.quest.Story_AfterFinalOnRedmond2.win_condition = "Story_AfterFinalOnRedmond2";

     Pchar.quest.Story_AfterFinalOnRedmond2.fail_condition = "Story_AfterFinalOnRedmond2";

     Characters[GetCharacterIndex("danielle")].Dialog.CurrentNode = "AfterFinal2";   // <-- Cat for Danielle fix

 break;<!--c2--></div><!--ec2-->It's not in the regular place with all the other code for the Danielle/Clement fix, it's at line 3517 - by the endgame credits and the code for "KillTheFinalBoss". <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />
 
Hmkay, I'll hold off adding the bottle till the votes are in. I voted for black and Cat for white...

Cat, you fancy yourself pretty good at finding images? I searched for hours the other week and found two great shots of Peter the Great, the Russian tsar of late 17th/early 18th c, wearing this neat blue naval coat... but I lost the images to a corrupt disk and can't find them online again...

[edit again] I'll see if I have that text in my quests file. Something tells me I don't...
 
Alan hope you check back in here... We `cross-posted`, you your message, and my edit. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
 
<!--`QuoteBegin-alan_smithee`+--><div class='quotetop'>QUOTE(alan_smithee)</div><div class='quotemain'><!--QuoteEBegin-->Cat, you fancy yourself pretty good at finding images? I searched for hours the other week and found two great shots of Peter the Great, the Russian tsar of late 17th/early 18th c, wearing this neat blue naval coat... but I lost the images to a corrupt disk and can't find them online again.[/quote]<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" /> Sorry you had a corrupt disk, that sux! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/urgh.gif" style="vertical-align:middle" emoid=":urgh" border="0" alt="urgh.gif" /> But the... Ah a challenge... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

Here are links to some pics that may help - they're not all what you might be looking for but I thought you might find them interesting! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" />

<a href="http://college.hmco.com/history/west/mosaic/chapter10/images/peter_the_great.jpg" target="_blank">http://college.hmco.com/history/west/mosai...r_the_great.jpg</a>
<a href="http://www.kunstkamera.ru/panorama/encyclopaedia/images/Peter.jpg" target="_blank">http://www.kunstkamera.ru/panorama/encyclo...mages/Peter.jpg</a>
<a href="http://www.frccusa.org/Collection.html" target="_blank">http://www.frccusa.org/Collection.html</a>
<a href="http://www.chateauselections.com/images/1819%20Peter%20Close.jpg" target="_blank">http://www.chateauselections.com/images/18...ter%20Close.jpg</a>
<a href="http://www.hermitagemuseum.org/imgs_En/08/hm88_0_1_23_0.jpg" target="_blank">http://www.hermitagemuseum.org/imgs_En/08/...88_0_1_23_0.jpg</a>
<a href="http://www.brianmay.com/queen/wwry/moscow/jun04/PeterTheGreatTunic_518.jpg" target="_blank">http://www.brianmay.com/queen/wwry/moscow/...atTunic_518.jpg</a>
<a href="http://www.vancouverwebs.ca/cows_pne2004.html" target="_blank">http://www.vancouverwebs.ca/cows_pne2004.html</a> (not TSAR Peter, but Peter the Great, just the same!) <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />
<a href="http://worldroots.com/brigitte/gifs5/`peter1russia1672-2`.jpg" target="_blank">http://worldroots.com/brigitte/gifs5/peter...1672-2`.jpg</a>
<a href="http://www.geocities.com/eric_armfelt/images/peterdenstore.jpg" target="_blank">http://www.geocities.com/eric_armfelt/imag...terdenstore.jpg</a>

Okay... Here's the secret...

<a href="http://images.google.com/imghp?hl=en&lr=&sa=N&tab=wi" target="_blank">http://images.google.com/imghp?hl=en&lr=&sa=N&tab=wi</a> GOOGLE IMAGE SEARCH. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />
 
Pieter, I'm not sure how large you wanted this to be.
<img src="http://www.pix8.net/pro/pic/7888greeb/365885.jpg" border="0" class="linked-image" />
 
Beautiful pics, Petros <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" /> As for the etherbottle, I'd prefer the white one (more translucent = etheric <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> )

As for where to put them you'd better rely on Cat or Alan, who did the facelift for the SWAK. Graphics are not my strong point <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />



<!--`QuoteBegin-Pieter` Boelen+--><div class='quotetop'>QUOTE(Pieter Boelen)</div><div class='quotemain'><!--QuoteEBegin-->Another question: Why does using "makeint(pchar.rank)" in LAi_events.c cause trouble (errors so the game won't start)?  ..[/quote]
Did you define pchar as object ?

The error log usually gives you a hint what's wrong, even if the game doesn't even start. In this case it would have said something like "undeclared variable "pchar" "


<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->What must be defined is the object(reference) that the attribute .wealth belongs to. If you work in a dialogfile there should already be something like ref pchar = getmaincharacter() on top. If you work in another file check if there is already another reference to the maincharacter and use that. (pchr, mchar, mc ... )
Should there be no reference at all you must define your own.<!--QuoteEnd--></div><!--QuoteEEnd-->


Here is my review of the code you posted earlier:

Nice work, Pieter. That shows that you have the necessary way of logical thinking that a coder needs. Only a few details need to be changed:


<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->if( CheckAttribute(weapon, "disarm" ) &&  LAi_IsFightMode(enemy) && !bAbordageStarted &&  enemy.nodisarm != 1)<!--c2--></div><!--ec2-->
enemy.nodisarm != 1 will create an errormessage if the enemy character doesn't have that attribute. The program will waste some time searching in vain for that attribute in order to check if it is 1 . Missing attributes are often the cause for lurches in the game.

Better use !CheckAttribute(enemy, "nodisarm" ) instead. The program will then continue without delay if enemy has no "nodisarm" attribute, and abort the disarming procedure if you assigned one.

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->{

if(rand(100)< sti(weapon.disarm) +sti(attack.skill.Fencing)/2)

{

                                       

    PlaySound("OBJECTSduelsword_fallen.wav");



     string enemy_blade = GetCharacterEquipByGroup(enemy,BLADE_ITEM_TYPE);

      RemoveCharacterEquip(enemy,  BLADE_ITEM_TYPE );

      TakeItemFromCharacter(enemy, enemy_blade);

      GiveItem2Character(attack, enemy_blade);<!--c2--></div><!--ec2-->
You can move that whole block here cause it is the same no matter if you, your officers or someone else is being disarmed. Saves eight lines of code and two variable definitions (all costing a tiny little bit of performance).
Left is now only the code that is different for player, officers and NPCs


<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    if ( enemy.chr_ai.group !=  LAI_GROUP_PLAYER )

             {

                   LAi_SetCitizenTypeNoGroup(enemy);

                   Log_SetStringToLog("You disarmed your opponent!");

              }

              else

              {

               if ( enemy.chr_ai.group =  LAI_GROUP_PLAYER && enemy.chr != PLAYER)<!--c2--></div><!--ec2-->
Must be enemy.chr_ai.group == LAI_GROUP_PLAYER. "==" for checking conditions, "=" to set a value or variable
But you can skip the whole check for LAI_GROUP_PLAYER cause you already checked != LAI_GROUP_PLAYER before the "else"
An easy check for the player would be enemy.id != "blaze"

A way to force the officer to put his imaginary sword away would be to give him a new AI task.

LAi_tmpl_afraid_SetAfraidCharacter(enemy, attack, true);

makes the officer flee from the attacker. IMHO the most realistic behaviour. To turn the panicked guy into a fighting follower again you must only talk to him and order him to follow you again. (and give him a sword)

So here is my proposal for the disarm code:

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->

if( CheckAttribute(weapon, "disarm" ) &&  LAi_IsFightMode(enemy) && !bAbordageStarted &&  !CheckAttribute(enemy, "nodisarm" ) )

 {

         if(rand(100)< sti(weapon.disarm) +sti(attack.skill.Fencing)/2)

         {

                  PlaySound("OBJECTSduelsword_fallen.wav");

                  string enemy_blade = GetCharacterEquipByGroup(enemy,BLADE_ITEM_TYPE);

                  RemoveCharacterEquip(enemy,  BLADE_ITEM_TYPE );

                  TakeItemFromCharacter(enemy, enemy_blade);

                  GiveItem2Character(attack, enemy_blade);



                   if ( enemy.chr_ai.group !=  LAI_GROUP_PLAYER )

                   {

                            LAi_SetCitizenTypeNoGroup(enemy);

                            Log_SetStringToLog("Opponent disarmed !");

                   }

                   else

                   {

                             if ( enemy.id != "blaze" ) // if NOT player

                            {

                                  Log_SetStringToLog("One of your officers was disarmed!");

                                  LAi_tmpl_afraid_SetAfraidCharacter(enemy, attack, true); // makes officer flee

                                  LAi_SetAfraidDead(enemy);

                           }

                           else

                           {

                                  Log_SetStringToLog("You were disarmed!");

                           }

                  }

           }

 }  <!--c2--></div><!--ec2-->

I love the fistfight idea. An nice punching sound would be the one that the sandbag makes (see initItems.c )
 
<!--`QuoteBegin-Pieter` Boelen+--><div class='quotetop'>QUOTE(Pieter Boelen)</div><div class='quotemain'><!--QuoteEBegin-->Two things I just noticed:
1) I got poisoned while fighting in Douwesen, but have no idea why. Could any enemy have had a poisonous weapon?
2) After dying and being revived in the tavern, I was still poisoned, so I died again in half a minute. Shouldn't you be cured when you're revived?
[/quote]
1. possible (Borgiablade, Poisoned throwingknife ? )

2. Makes sense. I'll make a fix for that.
 
Here it is: Add the command " DeleteAttribute(chr, "chr_ai.poison"); " to the LAi_CheckKillCharacter function in Loc_AILAi_utils:


void LAi_CheckKillCharacter(aref chr)
{
....
Postevent("EventCharacterDead", 1, "i", chr);
//Ïåðåèíèöèèðóåì ïàðàìåòðû

// ccc fix for poisoned rebirths
DeleteAttribute(chr, "chr_ai.poison");

//ccc Survival -> if(CheckAttribute(chr, "chr_ai.type")) //original code, replaced by
if(sti(chr.index) == GetMainCharacterIndex() )
....

That prevents also NPCs like soldiers from being recreated with poison in their veins.
 
<b>Petros</b>, those images are very good - both he fist and the etherbottle - oh, and if we get to vote, I'm for the white one.
 
Solingen Rapier, this is where I'm at.

First, any change in the interface Pic should be reflected in the "Blade26.gm" as well.

I have found that the Solingen Rapier is a sword whose blade is crafted in Solingen but whose hilt may be of various designs created in various places.

The closest matches for `in-game` swords are:
Needle --- game uses it now
Conquistador --- good but the gm is too flat
Corsair's Pride --- already cloned into the Cardinal's Guard
Silver Leaf -I think this works best

If there are no objections, I will `re-skin` the SilverLeaf for our new Solingen!
The interface pic will be done 6 times for various grades and added to items9.tga.tx index 4 (Alan's bracePistols items)
 
Thanks a lot Cat <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
Thanks a lot Alan <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />
 
I'd create a brand new sword pic, meself... plenty of armoury sites online with really neat looking pictures. I found one where the Schiavona (sharkskin grip!) is identical to the game one.

---
I use Google image search all the time... but it has its flaws.

--

neato fist. it makes me wanna see a big "sock! pow! baff!" graphic when I punch someone. Or even a big juicy "swak!"
 
<!--`QuoteBegin-alan_smithee`+--><div class='quotetop'>QUOTE(alan_smithee)</div><div class='quotemain'><!--QuoteEBegin-->I'd create a brand new sword pic, meself... plenty of armoury sites online with really neat looking pictures. I found one where the Schiavona (sharkskin grip!)  is identical to the game one.
[/quote]

Problem is then you have to create a Sword model to match your Pic.

The sword you or your officers carry really should look like the sword depicted in the interface.
 
Back
Top