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

Mod Release Levis' Stuff [October 7th (v2)]

I know the Church was quite against science for quite a while, yes.
But next thing you know, we end up offending people and I'd really like to keep more controverse far, far away from us.
I've had enough of that last week....

What if one of the options in the story shows you that it was the evil father from the Strange Things sidequest who was responsible?
Possibly combined with a possession that came from that Abbey next door.
Then it is still in there all the same, but also shows it is one person with an obvious evil element in there.
I will add something about that :), it might be a little bit subtle but if people are offended we can tell them it's there.
I need to think on how to add it best so expect it somewhere this week :).
 
It is not a good idea to close the apothecary. If it's out of action, what are you supposed to do with dead birds? (I found this out the hard way when playing "Hornblower" some time ago. The apothecary is removed when you use his shop for a late night card game and originally he wasn't put back, which meant I was stuck when I found a bird. Then I fixed the code so the apothecary is put back.)
 
It is not a good idea to close the apothecary. If it's out of action, what are you supposed to do with dead birds? (I found this out the hard way when playing "Hornblower" some time ago. The apothecary is removed when you use his shop for a late night card game and originally he wasn't put back, which meant I was stuck when I found a bird. Then I fixed the code so the apothecary is put back.)
Good point. Of course "the apothecary closing" happens when you make a mistake in this sidequest. But that IS a rather harsh penalty indeed.
The dead birds are meant to be somewhat annoying, but not TOO hard to get rid of.
 
It is not a good idea to close the apothecary. If it's out of action, what are you supposed to do with dead birds? (I found this out the hard way when playing "Hornblower" some time ago. The apothecary is removed when you use his shop for a late night card game and originally he wasn't put back, which meant I was stuck when I found a bird. Then I fixed the code so the apothecary is put back.)
Good point ... didn't think about that .... let me think about that :).
Maybe a reopening a certain time later ... so you do need to wait untill you cen get rid of the bird but it is possible...
 
Update first post. It should be fully compatible with the zip uploaded by @Pieter Boelen. I've winmerged everything and for me the game starts, so please let me know if there are any problems.

If you want to try something nice after you did an F11 execute this command trough the console:
Code:
GiveItem2Character(pchar,"vegetal");

It will give you an new item. Let's me know what you think about it ;) (It has no negetive effects).

if you also execute this:
Code:
PChar.quest.found_vegetal = true;

You can go to the apothecary to get an explantion of the item. This will close a quest which you might not have started yet. So I sugest you only do that if you are testing something.
 
All sorts of queries for @Levis:

Since my hope was to have a finished(ish) Beta 4 version by the end of this week, I cannot help but feel uncomfortable with all this brand new stuff.
What are the chances of this breaking yet more stuff that was working before? We've had that happen a gazillion times already.
I'd really, really rather not have it happen a gazillion and one times. :shock

So with your change for the Treasure Quests, you can sort-of have multiple ones active at the same time?
Or at least a quest one and a random one?

What is 'GetPrettyLocationName' meant for?
How compatible might that be with the 'FindDestinationName' function I recently added to quests_common.c?

What is the idea with the "officiant buying an albatross"?
Is that something that is meant to ALWAYS happen? Or just for this sidequest of yours?

What does this mean?
Code:
    case "remove_opium_effect":
       //TODO: Make use of Buff/Debuff system when made
       //TODO: Probably fails when used multiple times but don't know for sure. Need to check

You seem to have missed some recent code I added.
If I understand correctly, I can now add that here instead:
Code:
     //Levis: Added for treasurequest
     case "Found Treasure":
       CloseQuestHeader("treasure");

       Group_DelCharacter("Treasure_Pirate", "Treasure Pirate");
       Group_deleteGroup("Treasure_Pirate");
     break;

Is this here quite necessary?
Code:
           DeleteAttribute(chr, "required_item."+loc);
           aref reqitem; makearef(reqitem,chr.required_item);
           if(GetAttributesNum(reqitem) == 0)
             DeleteAttribute(chr, "required_item");
That's rather a lot of code to remove one attribute. Can't we use only that first line?

More plants? We're getting quite a lot!
I thought this sidequests was meant to be another way to find the "Ayacuahasa" (sp?).
What is this "Vegetal" meant to be? The word itself just means "relating to plants", so it doesn't really sound like a plant name. :confused:

If you want to add a character to the character array in mid-game, this is how I'd normally do it:
Code:
  if(GetCharacterIndex("B_keeper") == -1)
   {
     n = FindBlankCharSlot();
     CHARACTERS_QUANTITY++; // NK 05-04-05
     if(n != -1)
     {
       makeref(ch,Characters[n]);
       ch.old.name = "Ye Keeper"; // MAXIMUS 16.10.2006
       ch.old.lastname = "o' ye Hoarde"; // MAXIMUS 16.10.2006
       ch.name    = TranslateString("","Ye Keeper");
       ch.lastname    = TranslateString("","o' ye Hoarde");
       ch.id     = "B_keeper";
       ch.model   = "admiral";
       ch.sex = "man";
       ch.act.type = "citizen";
       ch.location = "none";
       ch.location.group = "goto";
       ch.location.locator = "goto1";
       ch.dialog.filename = "B_hoardkeeper.c";
       ch.nation = ENGLAND;
       ch.rank    = 1;
       ch.reputation = "None";
       ch.experience = "0";

       ch.skill.Leadership = 6;
       ch.skill.Fencing = 3;
       ch.skill.Sailing = 4;
       ch.skill.Accuracy = 9;
       ch.skill.Cannons = 5;
       ch.skill.Grappling = 5;
       ch.skill.Repair = 6;
       ch.skill.Defence = 8;
       ch.skill.Commerce = 7;
       ch.skill.Sneak = 8;
       ch.money = 10;
       LAi_SetStayType(ch);
       LAi_SetHP(ch, 200.0, 200.0);
       if(show) Log_SetStringToLog(TranslateString("","BK Keeper initialised."));
     }
   }

Anyway, just some random thoughts.... :oops:
 
All sorts of queries for @Levis:

Since my hope was to have a finished(ish) Beta 4 version by the end of this week, I cannot help but feel uncomfortable with all this brand new stuff.
What are the chances of this breaking yet more stuff that was working before? We've had that happen a gazillion times already.
I'd really, really rather not have it happen a gazillion and one times. :shock
I try not to break stuff believe me :p.

So with your change for the Treasure Quests, you can sort-of have multiple ones active at the same time?
Or at least a quest one and a random one?

Yes, also cleaning up the code a Little bit :).

What is 'GetPrettyLocationName' meant for?
How compatible might that be with the 'FindDestinationName' function I recently added to quests_common.c?

It used to be in smuggling.c before. I believe it's used for the patrol schedule. It might do the same, I will look for that later.

What is the idea with the "officiant buying an albatross"?
Is that something that is meant to ALWAYS happen? Or just for this sidequest of yours?

It's when the apothecary is closed, so you can still get rid of the albatross.

What does this mean?
Code:
    case "remove_opium_effect":
       //TODO: Make use of Buff/Debuff system when made
       //TODO: Probably fails when used multiple times but don't know for sure. Need to check
When working on the Vegetal I noticed the logic I used before didn't work right for that, so I Need to look into the Opium effect more. Probably for Opium it does work because things stack differently, but I was to tired to look at it back then.

You seem to have missed some recent code I added.
If I understand correctly, I can now add that here instead:
Code:
     //Levis: Added for treasurequest
     case "Found Treasure":
       CloseQuestHeader("treasure");

       Group_DelCharacter("Treasure_Pirate", "Treasure Pirate");
       Group_deleteGroup("Treasure_Pirate");
     break;
You could add it there yes, Must have indeed missed that Piece of code when doing the winmerges...

Is this here quite necessary?
Code:
           DeleteAttribute(chr, "required_item."+loc);
           aref reqitem; makearef(reqitem,chr.required_item);
           if(GetAttributesNum(reqitem) == 0)
             DeleteAttribute(chr, "required_item");
That's rather a lot of code to remove one attribute. Can't we use only that first line?
Because of how the treasurequest is set up this is now needed. Later I might look into this more but I didn't want to break anything so I tried to Change as few as possible.

More plants? We're getting quite a lot!
I thought this sidequests was meant to be another way to find the "Ayacuahasa" (sp?).
What is this "Vegetal" meant to be? The word itself just means "relating to plants", so it doesn't really sound like a plant name. :confused:
It's not a plant, it's a potion. And I needed something as a reward for going down this track and wanted to try if this worked.
Look at this page why I called it vegetal (Ayahuasca - Wikipedia, the free encyclopedia).

If you want to add a character to the character array in mid-game, this is how I'd normally do it:
Code:
  if(GetCharacterIndex("B_keeper") == -1)
   {
     n = FindBlankCharSlot();
     CHARACTERS_QUANTITY++; // NK 05-04-05
     if(n != -1)
     {
       makeref(ch,Characters[n]);
       ch.old.name = "Ye Keeper"; // MAXIMUS 16.10.2006
       ch.old.lastname = "o' ye Hoarde"; // MAXIMUS 16.10.2006
       ch.name    = TranslateString("","Ye Keeper");
       ch.lastname    = TranslateString("","o' ye Hoarde");
       ch.id     = "B_keeper";
       ch.model   = "admiral";
       ch.sex = "man";
       ch.act.type = "citizen";
       ch.location = "none";
       ch.location.group = "goto";
       ch.location.locator = "goto1";
       ch.dialog.filename = "B_hoardkeeper.c";
       ch.nation = ENGLAND;
       ch.rank    = 1;
       ch.reputation = "None";
       ch.experience = "0";

       ch.skill.Leadership = 6;
       ch.skill.Fencing = 3;
       ch.skill.Sailing = 4;
       ch.skill.Accuracy = 9;
       ch.skill.Cannons = 5;
       ch.skill.Grappling = 5;
       ch.skill.Repair = 6;
       ch.skill.Defence = 8;
       ch.skill.Commerce = 7;
       ch.skill.Sneak = 8;
       ch.money = 10;
       LAi_SetStayType(ch);
       LAi_SetHP(ch, 200.0, 200.0);
       if(show) Log_SetStringToLog(TranslateString("","BK Keeper initialised."));
     }
   }

Anyway, just some random thoughts.... :oops:

People should just use a new game but I understand they might not so thats why I just gave some code to run. This should work too :).[/Quote][/QUOTE]
 
I must say originally I intended to be the quest smaller. But when writing it I noticed there where Option you could take which I didn't take into account. Hence the other stuff got added. Tonight I intend to finish it, like I say in the Spoiler I'm almost there. After that I'm going to do bug Fixing again. I hope to have that done tomorrow night. Then on friday I can fix things which are left over. I'm also aiming for a good finished Version this Weekend.
 
Code:
itmname_indian_treasure_note {Note}
itmdescr_indian_treasure_note
{
This might contain something important.
}
^ Just remembered.... I was going to mention that looks somewhat nondescript.
Would you be able to think of some more details so you can tell what it relates to?

I try not to break stuff believe me :p.
Of course you don't! I hope nobody would ever deliberately do that. Still, it happens unintentionally all the same.
I do it myself often enough as well, which is why I'm trying to keep all changes to an absolute minimum these days.
At least until after Beta 4 has been finished.

It's when the apothecary is closed, so you can still get rid of the albatross.
So... then you need to die to be able to get rid of it?
Or can you just talk to her when she's walking around the Tavern?
Only Bridgetown or ALL of them?

It's not a plant, it's a potion. And I needed something as a reward for going down this track and wanted to try if this worked.
Look at this page why I called it vegetal (Ayahuasca - Wikipedia, the free encyclopedia).
"Adherents of União do Vegetal call this brew hoasca or vegetal."
^ Maybe call it "Hoasca" then? Sounds less English and more indian.

But this is Ayahuasca in potion form? So we sort-of get two versions of the same? o_O

People should just use a new game but I understand they might not so thats why I just gave some code to run. This should work too :).
I know why you mentioned using that code; it just looked a bit weird because of my familiarity with that part already in Reinit.c .
Actually, maybe we should consider using Reinit.c for this purpose again in the first place. That is what it was originally meant for.
At some point. It is just more work to keep it up-to-date and prevent it messing things up, so I never really bothered.

After that I'm going to do bug Fixing again. I hope to have that done tomorrow night. Then on friday I can fix things which are left over. I'm also aiming for a good finished Version this Weekend.
Two days for fixing then. Getting tight.
And I also didn't manage to get anything of my To-Do list done today and yesterday due to new stuff that needed doing first. :facepalm
 
The following just occurred to me....
"enhance a user's fighting ability for a short while"
^ Isn't that pretty much what the "Rush" ability does? :shock

I don't know why, but it seems that I am in an extremely critical mood today.
Sorry 'bout that; I don't mean to be.... :oops:
 
Also, what happens if Bridgetown is Portuguese in Early Explorers?
I think Steven gets renamed then to a random Portuguese name; but his name is hard-coded in a lot of different places. :facepalm
 
Also, what happens if Bridgetown is Portuguese in Early Explorers?
I think Steven gets renamed then to a random Portuguese name; but his name is hard-coded in a lot of different places. :facepalm
I assumed he was not renamed because in the Dialog it was also hardcoded before.

The following just occurred to me....
"enhance a user's fighting ability for a short while"
^ Isn't that pretty much what the "Rush" ability does? :shock
It works very different to the Rush Ability. Try it out :).

Code:
itmname_indian_treasure_note {Note}
itmdescr_indian_treasure_note
{
This might contain something important.
}
^ Just remembered.... I was going to mention that looks somewhat nondescript.
Would you be able to think of some more details so you can tell what it relates to?
It's a book item so you can examine it and get more text. I think that should do fine right?

So... then you need to die to be able to get rid of it?
Or can you just talk to her when she's walking around the Tavern?
Only Bridgetown or ALL of them?
You can just talk to her when she is Walking in the tavern, and ist only the Bridgetown one.

"Adherents of União do Vegetal call this brew hoasca or vegetal."
^ Maybe call it "Hoasca" then? Sounds less English and more indian.

But this is Ayahuasca in potion form? So we sort-of get two versions of the same? o_O
This is more like the refined form. I'm still looking for a better Name but for now I think this doesn't Sound bad. Especially because ist mostly just ment to be a mix of different herbal extracts etc.

I know why you mentioned using that code; it just looked a bit weird because of my familiarity with that part already in Reinit.c .
Actually, maybe we should consider using Reinit.c for this purpose again in the first place. That is what it was originally meant for.
At some point. It is just more work to keep it up-to-date and prevent it messing things up, so I never really bothered.
Let's Keep it for now, I still want to make a function to actually reinit the character Array right so new characters are added but old ones aren't overwritte (except when a Attribute is given maybe?), but also not trying to break anything now. A normal Player should never have to bother with that anyways. It's only for testers etc. After Beta4 is released we might want to look into the upgrade function again. So every "Change" which would require a new game is just added to this function so the Player only has to call it once to get his game up to date again.

Two days for fixing then. Getting tight.
And I also didn't manage to get anything of my To-Do list done today and yesterday due to new stuff that needed doing first. :facepalm
I know what I still Need to do and it all ties together. When I start with it I probably Need to finish it instantly because else I f*ck things up again. I might be putting it off a Little bit because I dont look Forward to some of those things :p.
 
@Levis: Please find attached files with some extra edits of my own (mainly dialog/text).
When you get the chance, be sure to merge it with your own game code and make sure I didn't mess anything up... :wp
 

Attachments

  • LEVIS_FIXES_JAN6_PB.zip
    897.3 KB · Views: 100
@Levis: Please find attached files with some extra edits of my own (mainly dialog/text).
When you get the chance, be sure to merge it with your own game code and make sure I didn't mess anything up... :wp
I haven't done anything today yet because I was at work ;). so nice Timing.
 
I assumed he was not renamed because in the Dialog it was also hardcoded before.
I'll add ch.questchar = true; then.

It works very different to the Rush Ability. Try it out :).
No time, sorry.

It's a book item so you can examine it and get more text. I think that should do fine right?
I figured the item name and description should have a slight clue on why should read it.

Which reminds me, I corrected this line:
Code:
case "indian_treasure_note": genitm.groupID = BOOK_ITEM_TYPE; genitm.QuestName = "Found Treasure Note";    genitm.text = "indian_treasure_note";   break; //Levis: Indian Treasure

You can just talk to her when she is Walking in the tavern, and ist only the Bridgetown one.
Got it. :onya

Let's Keep it for now, I still want to make a function to actually reinit the character Array right so new characters are added but old ones aren't overwritte (except when a Attribute is given maybe?), but also not trying to break anything now. A normal Player should never have to bother with that anyways. It's only for testers etc. After Beta4 is released we might want to look into the upgrade function again. So every "Change" which would require a new game is just added to this function so the Player only has to call it once to get his game up to date again.
Indeed no concern for now.

I know what I still Need to do and it all ties together. When I start with it I probably Need to finish it instantly because else I f*ck things up again. I might be putting it off a Little bit because I dont look Forward to some of those things :p.
Fixing bugs isn't always the most fun thing to do, I know.
But if we don't do it, we continue being stuck. We've basically been stuck for half a year now.
I know I have, at least, because I've been deliberately not doing fancy new stuff specifically because we really must get that Beta 4 done. :(
 
@Levis: I know "characterization" for the various characters in the game hasn't truly been considered for a very long time.
But the whole "Matton" talk got me thinking about that in relation to the Bridgetown Apothecary and the tavern girl.

Of course the Apothecary himself was always meant to be a personification of "Stephen Maturin" from Master & Commander.
If I recall though from the Help the Church sidequest (which is now available in all storylines),
that particular tavern girl helped an evil monk (Father Gareth) blackmail a good man (Father Jerald).

Since I think Mr. Mather-Wren is probably quite a respectable person, why would he want to be affiliated with either of these low-lifes?
Especially if you make use of my suggestion to have the whole "angry church mob" thing to be the doing of the evil monk.
Possibly with some effects of the Maltese Knight Abbey on top.

For the sake of role-playing, it might be worth to think of a way that this can all work together while maintaining internal sense.
One option might be that "Nadine Jansen" was helping Father Gareth as he had promised to leave Mather-Wren alone if she did.
So that makes it a double blackmail.

Also, why does she have a Dutch name when she lives in an English town?
It is specifically mentioned for "Yedam Kinne" who lives there as well. So maybe something could be made of that as well?

I think @Talisman is quite familiar with these sort of things. Maybe he's got a thought too?
 
@Levis: I know "characterization" for the various characters in the game hasn't truly been considered for a very long time.
But the whole "Matton" talk got me thinking about that in relation to the Bridgetown Apothecary and the tavern girl.

Of course the Apothecary himself was always meant to be a personification of "Stephen Maturin" from Master & Commander.
If I recall though from the Help the Church sidequest (which is now available in all storylines),
that particular tavern girl helped an evil monk (Father Gareth) blackmail a good man (Father Jerald).

Since I think Mr. Mather-Wren is probably quite a respectable person, why would he want to be affiliated with either of these low-lifes?
Especially if you make use of my suggestion to have the whole "angry church mob" thing to be the doing of the evil monk.
Possibly with some effects of the Maltese Knight Abbey on top.

For the sake of role-playing, it might be worth to think of a way that this can all work together while maintaining internal sense.
One option might be that "Nadine Jansen" was helping Father Gareth as he had promised to leave Mather-Wren alone if she did.
So that makes it a double blackmail.

Also, why does she have a Dutch name when she lives in an English town?
It is specifically mentioned for "Yedam Kinne" who lives there as well. So maybe something could be made of that as well?

I think @Talisman is quite familiar with these sort of things. Maybe he's got a thought too?

Hmmm I forgot she is also involved in that quest.
For now I first want to finish it but if @Talisman can tell me how she is directly involved I might be able to alter dialogs just a little bit to make more sense of it :).

On reason I actually tie this to the church also is so you will sooner find out about the quest for the "telescope"
 
@Levis: If I recall though from the Help the Church sidequest (which is now available in all storylines),
that particular tavern girl helped an evil monk (Father Gareth) blackmail a good man (Father Jerald).
The monk you're thinking of is Gilber Ballester, who isn't even "Father Gilbert" - presumably he's trying to get Father Jerald out of the way so he can be promoted to "Father". Father Gareth is the one in league with the Animists, based in Port Royale.

One option might be that "Nadine Jansen" was helping Father Gareth as he had promised to leave Mather-Wren alone if she did.
So that makes it a double blackmail.

Also, why does she have a Dutch name when she lives in an English town?
It is specifically mentioned for "Yedam Kinne" who lives there as well. So maybe something could be made of that as well?
There's no particular reason why someone can't go to live in a colony owned by another nation - in fact, one of the side quests involves a French woman moving to a Spanish colony with your assistance, unless you choose to betray her. But the fact that Nadine Jansen is in league with Yedam Kinne could be significant. Perhaps they were doing something crooked in Kralendijk (former Douwesen - they both date back to the stock game, when Willemstad didn't exist :)), were in danger of being caught, and fled to Bridgetown together.
 
The monk you're thinking of is Gilber Ballester, who isn't even "Father Gilbert" - presumably he's trying to get Father Jerald out of the way so he can be promoted to "Father". Father Gareth is the one in league with the Animists, based in Port Royale.
Thanks for correcting me there! I was writing from memory and didn't have that quite clear. :facepalm

There's no particular reason why someone can't go to live in a colony owned by another nation - in fact, one of the side quests involves a French woman moving to a Spanish colony with your assistance, unless you choose to betray her. But the fact that Nadine Jansen is in league with Yedam Kinne could be significant. Perhaps they were doing something crooked in Kralendijk (former Douwesen - they both date back to the stock game, when Willemstad didn't exist :)), were in danger of being caught, and fled to Bridgetown together.
Sounds like a fun idea. Indeed I see no reason why they couldn't move to other nation's colonies, but giving that a reason could add to the fun. :onya

Assuming that we do want to make something of Yedam and Nadine both being Dutch,
I added the "questch" attribute to Nadine to ensure that they both remain Dutch in Early Explorers as well.
 
Back
Top