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

Information aboute The New Pirate Age - Update! [WIP]

That looks as though it should work, at least as far as talking to Skullface, agreeing to pay him, and triggering quest case "Skullface_Quest".

Dialog case "Node_1" seems to be what happens if you say you don't have the money. Put this into "Skullface_dialog7":
Code:
Diag.TempNode = "Node_1";

Look at dialog case "exit":
Code:
Diag.CurrentNode = Diag.TempNode;
It sets "CurrentNode" to whatever is in "TempNode". If you change "TempNode" then, when the dialog exits, what you put into "TempNode" is where the dialog will start next time.

What that means is that, after you've told Skullface that you don't have the money, every time you talk to him again, the dialog will start at "Node_1". If you again say that you don't have the money, the dialog exits straight away, and when you return again, the dialog will again start at "Node_1".
 
To give the player a ship: GiveShip2Character
You already know this because you use it in your "StartStoryline.c" to give the player a different ship depending on which character you're playing. For example:
Code:
GiveShip2Character(PChar,"SchoonerWar","Walrus",-1,PIRATE,true,true);
gives you a ship of type "SchoonerWar", named "Walrus". The ship data is modified for a Pirate design. The ship will be given full crew and supplies. Change the ship type and name to whatever you prefer.

In general:
Code:
GiveShip2Character(character, ship type, ship name, cannon type, nation, crew hired, supplies)
Replace "character" with either PChar (you) or CharacterFromID("Roronoa Zorro") to give the ship to someone else, e.g. Roronoa Zorro.
Replace "ship type" with a valid type from "PROGRAM\Ships\Ships_init.c".
Replace "cannon type" with a valid type from "PROGRAM\Cannons\Cannons_init.c", or just use -1 to give the ship its normal cannons.
Replace "nation" with ENGLAND, FRANCE, SPAIN, PORTUGAL, HOLLAND or PIRATE to adjust the ship's data to make it appear to be designed by that nation.
Replace "crew hired" with true if you want the ship to have a full crew, or false if you want the ship to be without a crew so that you have to go to a tavern to hire them.
Replace "supplies" with true if you want the ship to have food, rum and ammunition already, or false to have an empty cargo hold so you have to buy supplies from a store.

Where to put it: probably in "quests_reaction.c". If you are to get the ship after talking to the character then you know how to do that. Set up his dialog and have AddDialogExitQuest. Make it trigger the quest case where you get the ship.

There is no point in repeating the question. If I haven't seen the first one, I won't see the second one either!
 
In general:
Code:
GiveShip2Character(character, ship type, ship name, cannon type, nation, crew hired, supplies)
Replace "character" with either PChar (you) or CharacterFromID("Roronoa Zorro") to give the ship to someone else, e.g. Roronoa Zorro.
Replace "ship type" with a valid type from "PROGRAM\Ships\Ships_init.c".
Replace "cannon type" with a valid type from "PROGRAM\Cannons\Cannons_init.c", or just use -1 to give the ship its normal cannons.
Replace "nation" with ENGLAND, FRANCE, SPAIN, PORTUGAL, HOLLAND or PIRATE to adjust the ship's data to make it appear to be designed by that nation.
Replace "crew hired" with true if you want the ship to have a full crew, or false if you want the ship to be without a crew so that you have to go to a tavern to hire them.
Replace "supplies" with true if you want the ship to have food, rum and ammunition already, or false to have an empty cargo hold so you have to buy supplies from a store.
Are you documenting that stuff somewhere? That right there is perfect for future reference! :onya
 
@Grey Roger

Can you help me to add 6 Dialog Text (Line 200-205) in Franky Dialog Files. It should be come after „About you .....“ dialog Text.
And after Line 205 the Thousands Sunny Quest on „New Greanada“ Twon.
Please look in the Dropbox the Franky Files.

Thanks.
 
Why do you need help? You already know how to write dialog. You also already know how to use a dialog to trigger a quest.

The "Franky" files seem to be copied from "Enc_Officer_dialog". This is not a good place to start your own dialog. You already know that the start point for creating your own dialog is "blank_dialog", which you can find and copy from "PROGRAM\Storyline\Ardent\DIALOGS".
 
Last edited:
That depends on who is doing the fighting. If it's a group, e.g. the Lighthouse Pirates because you put them into the monster group and then told the monster group to attack the pirates, then add a 'LAi_group_SetCheck' line to the quest case. For example:
Code:
        case "Lighthouse_Pirates":
            LAi_group_MoveCharacter(CharacterFromID("Kuro"), LAi_monsters_group);
            LAi_group_MoveCharacter(CharacterFromID("Jango"), LAi_monsters_group);
            LAi_group_MoveCharacter(CharacterFromID("Gino"), LAi_monsters_group);
            LAi_group_MoveCharacter(CharacterFromID("Genzo"), LAi_monsters_group);
            LAi_group_SetRelation(LAi_monsters_group, LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
            LAi_group_FightGroups(LAi_monsters_group, LAI_GROUP_PLAYER, true);
           LAi_group_SetCheck(LAi_monsters_group, "LightHouse_Pirates_Defeated");   //  <-- This line triggers case "Lighthouse_Pirates_Defeated" when the fight ends
        break;

If it's a single enemy, e.g. Dark Assassin, then you can do this:
Code:
        case "Dark_Assassin_Quest":
            LAi_group_MoveCharacter(CharacterFromID("Dark_Assassin"), LAi_monsters_group);
            LAi_group_SetRelation(LAi_monsters_group, LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
            LAi_group_FightGroups(LAi_monsters_group, LAI_GROUP_PLAYER, true);
           PChar.quest.Assassin_dead.win_condition.l1 = "NPC_Death";          // These three lines trigger case "Assassin_dead" when "Dark_Assassin" dies
           PChar.quest.Assassin_dead.win_condition.l1.character = "Dark_Assassin";
           PChar.quest.Assassin_dead.win_condition = "Assassin_dead";
        break;

Either way, you're triggering a new quest case when the fight is over. That quest case is where you will give the ship to the player. And you already know how to do that because I explained it in post #568.
 
@Grey Roger

First it is on a Singel Person.

Secound! I Test The Skullface Dialog.
The Dialogs Text Works.
but the dont give me the Iteme(the Book)
The Error File is emty.

Where is the Error?

Cu
 

Attachments

  • compile.log
    23.7 KB · Views: 84
  • initItems.c
    326 KB · Views: 93
  • quests_reaction.c
    7.2 KB · Views: 69
  • initQuestItems.c
    4.2 KB · Views: 76
  • Skullface_dialog.c
    2.5 KB · Views: 81
For a start, in "initQuestItems.c", several items are defined twice, both as quest items and as general items. I'm not sure how much damage that does, but certainly something is going wrong with items because in "compile.log":
Gauging: start NPC init
WARNING!!! Item id = worker_Axe not implemented
WARNING!!! Item id = vivre_card not implemented
WARNING!!! Item id = SecretBook not implemented
WARNING!!! Item id = Galleobook not implemented
WARNING!!! Item id = Smuggler-route not implemented
WARNING!!! Item id = hourglass not implemented
WARNING!!! Item id = Eageleye not implemented
Gauging: done NPC init
As far as I can tell, that's happening during character initialisation. What really puzzles me is that it complains about "worker_Axe", and that's not one of yours, it's a standard item in "initItems.c". If "initItems.c" was broken then I'd expect a whole lot more items to be reported there, starting with any weapon assigned to any character involved in a sidequest.

In any case, the reason you're not getting the book is that it doesn't exist. There's another complaint about it near the bottom of "compile.log":
WARNING!!! Item id = SecretBook not implemented
Quest name Skullface_Quest FOUND in QuestComplete
That tells us that quest case "Skullface_Quest" was correctly triggered. That's where you're supposed to get the book, but there's that error message saying that the book isn't there.

See what happens if you remove these lines from "initQuestItems.c":
Code:
  n = InitItem(n,"Galleobook",  "",    "NPA1", 7, 0.10,  1,    0,   0,   1,  1, 1,     0,  +2,  0,  0,  0,  0,  0,  0,  0, +1,    1, 1, 1, 1); //<- Can Not bought in Shops and found on any Ships
  n = InitItem(n,"hourglass",   "",    "NPA1", 2, 0.10,  1,    0,   0,   1,  1, 1,     0,   0,  0,  0,  0,  0,  0,  0,  0, +1,    1, 1, 1, 1); //<- Can Not bought in Shops and found on any Ships
  n = InitItem(n,"Eageleye",    "",    "NPA1", 3, 0.10,  1,    0,   0,   1,  1, 1,     0,   0,  0,  +2, 0,  0,  0,  0,  0,  0,    1, 1, 1, 1); //<- Can Not bought in Shops and found on any Ships
  n = InitItem(n,"trident",       "",    "NPA1", 4, 0.10,  1,    0,   0,   1,  1, 1,     0,  +3, +3,  +2, 0,  0,  0,  0,  0,  0,    1, 1, 1, 1); //<- Can Not bought in Shops and found on any Ships
And then start a new game.
 
@Grey Roger

Please can you check in my Dropbox in the Items Folder the Intems.c file.

This Items are skill Quest Items.
Look for „New Pirate Age“

Please tell me put I in the right Place.

Thanks Cu
Pk
 
Quest items can't have skill bonuses because the code which handles them, 'InitQuestItem', has no parameters for skills. Anything which is to have skill bonuses must be a non-quest item in the lower part of "initQuestItems.c". In that case, it should not be defined again in the upper part which deals with quest items.

The following items should appear either in "initItems.c" or "initQuestItems.c", but not both:
"hourglass", "Eageleye", "trident", "Galleobook", "aztec_compass". Of those, remove "aztec_compass" from "initQuestItems.c" - it must stay in "initItems.c" because it's part of another quest not related to your storyline. Remove "hourglass", "Eageleye", "trident" and "Galleobook" from "initItems.c" because they are specific to your storyline, so they should be in "initQuestItems.c".

Also in "initItems.c", "bladeC38" is defined both as a quest blade (line 507) and as a normal blade (line 2860). Remove one of them. Lines 3624 and 3630 both refer to "bladeC38"; at best the game will ignore one of them, at worst that will break the file, so remove one of them. Likewise, lines 3626 and 3631 are both for "bladeC40", so remove one of them.

Line 3719 also deals with "bladeC38" but is a different switch block to line 3624, so that's alright; but line 3723 is in the same block as line 3719 and deals with "bladeC38". Remove either line 3719 or 3723. Likewise, remove either line 3721 or line 3725 for "bladeC40".
 
"aztec_compass" is an item that should always be available. It is needed to get to Isla de Muerta.
 
Back
Top