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

Devlin Opera for the 65742th time

@Grey Roger very weird screenshot quality with F8, and for some reason it gets worse when I upload them here, but hopefully you can read it. :razz

I played with the screen size in config, don't know if I have messed them up now. It's
screen_x = 1024
screen_y = 768
right now.
 

Attachments

  • seadogs2_0000.png
    seadogs2_0000.png
    340.9 KB · Views: 79
  • seadogs2_0004.png
    seadogs2_0004.png
    347.1 KB · Views: 73
  • seadogs2_0005.png
    seadogs2_0005.png
    456 KB · Views: 71
  • seadogs2_0008.png
    seadogs2_0008.png
    455.2 KB · Views: 75
  • seadogs2_0011.png
    seadogs2_0011.png
    2.2 MB · Views: 83
  • seadogs2_0017.png
    seadogs2_0017.png
    2.2 MB · Views: 87
There's definitely something wrong with "seadogs2_0004.png". I've seen that before when I was trying something else:
Need Help - Updating the Russian Translation

Try splitting that line in the "dialog.h" file to leave out the "Señora". In the "dialog.c" file, have something like:
Code:
dialog.text = DLG_TEXT[101] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[102];
Replace "101" and "102" with correct line numbers. Assuming the soldier's nation has correctly been set to Spain (and the dialog may have other problems if it has not), he should now address Beatrice as "Señorita".

I've no idea why special characters don't work in "dialog.h" any more - in that post, I assumed it was because "ã" was causing trouble because that specific letter needs special treatment. If "ñ" is also displaying wrong then it's a wider problem. In any case, while the letters do silly things in "dialog.h", they seem to work correctly in just about everything else.
 
How exactly are ships defined? If I define it in the captains character sheet with ch.Ship.Name and ch.Ship.Type, does it then exist and can be put e.g. in a sea battle?

And if we're at it, what would be a good ship type for a french pirate/corsair ship in Early Explorers?
 
Ships are defined in "PROGRAM\Ships\Ships_init.c".

Ships are indeed assigned to characters by 'ch.Ship.Name' and 'ch.Ship.Type'. The character can then be put into a sea battle and should appear in that ship. Take a look at "PROGRAM\Storyline\Hornblower\characters\init\TempQuest.c", where the first entry is for "Quest_frigate_captain", who is captain of the Temeraire. Then look in "PROGRAM\Storyline\Hornblower\quests\quests_reaction.c", case "French_Battle_Setup", to see how the battle against the Temeraire is set up.

These lines are optional:
Code:
characters[GetCharacterIndex("Quest_frigate_captain")].nosurrender = 2;
...
Character_SetAbordageEnable(characterFromID("Quest_frigate_captain"), false);
The first means the ship will never surrender under any circumstances. If you set it to 1 instead of 2, the captain may surrender during boarding but won't surrender at sea. The attribute can also be set in the character's definition, e.g. in "PROGRAM\Characters\init\SideQuest.c", "Mystery_Man_01" has this in his definition:
Code:
ch.nosurrender = 2;
And that's why the Satanist ships never surrender.

'Character_SetAbordageEnable' allows you to prevent the ship from being boarded. In "Hornblower", you're in a frigate, Temeraire is a 3rd rate ship of the line, and this is very early in the story. Short of using cheatmode to make yourself immortal, you aren't going to win a boarding action. This command also prevents the enemy from initiating boarding against you. It's also why you're never going to capture the Flying Dutchman.

As for a French ship, edit "InternalSettings.h" to enable cheatmode. Start a new FreePlay game. Set the year to something in "Early Explorers". Then click on the ship icon, which takes you to the ship selection screen. You can specify French ships, you can specify warships or "versatile" - ships which work as both merchant and warship, such as the fast galleon. You can specify class/tier. Then scroll through the ships which match your specifications.

If you can't find anything suitable which is specifically French, set the nation to "Any" and see what other nations have to offer - he might have captured a ship from some other nation.
 
A few thoughts on the new stuff - I haven't got very far yet but anyway...

. As previously mentioned, the player is strongly encouraged to become a pirate. First I get possibly the best pirating ship in the game, let alone "Early Explorers" period, the fast galleon. Then I'm sent to San Salvador, I need to hoist a pirate flag before I get there, giving me all the reason I need to steal someone's cargo and sell my ill-gotten gains before going to the one place where I can make peace with pirates - San Salvador town hall. Then I'm sent to the pirate settlement on Nuestra Senora de las Nieves, the one place where I can join the Pirate Brotherhood. The code for false flag recognition now works, and the bug whereby no items are for sale if you land at a beach seems to be fixed. All of which means that if Spain doesn't like the player (which it probably won't if the player is me :rpirate) then the player is likely to want to moor at a beach rather than in port.

. So I loaded up an old save from when I was in Santiago with two sailors still to round up. After completing that, I went to the ship for the cabin scene, which now ends with me being sent to Santo Domingo. I landed at Boca de Yuman, walked into Santo Domingo and nothing happened. Partly because it's the usual way to get information when no other clues have been presented, and partly because I've seen the new dialog files, I figured I needed to talk to the tavern keeper, but he didn't have anything useful to say. At least, not until I'd remembered that you don't cater to beach landers, so I walked into Santo Domingo port, Bonnie said her piece, and then the tavern keeper was more helpful. Guille the Kid then failed to appear - this was an old save after all, and Guille the Kid doesn't exist in this game.

. Next I tried starting a new game and used the jump start to go straight to Santo Domingo. Guille the Kid did appear in the tavern but didn't appear outside. That's because your upload puts "SDTown_l.GM" into "RESOURCE\MODELS\Locations\Town_SantoDomingo". It should go into "RESOURCE\MODELS\Locations\Town_SantoDomingo\center". With the file in its proper place, Guille the Kid duly appeared outside the tavern.

. Please remember to put all new character names into "characters_names.txt". The Spanish and Russian translations are progressing nicely; if the new names are added to the English file, the translators can put them into their respective versions. Most of the names will be the same in the Spanish version, though the Russian version needs everything translated because it uses the Cyrillic alphabet.

. Descriptive names such as "Cunning Frog" will be translated in Spanish - for comparison, take a look at "RESOURCE\INI\TEXTS\SPANISH\Storyline\Ardent\characters_names.txt", in which "Soaring Hawk" is translated as "Halcón En El Cielo". What that means is that this...
Cunning Frog said:
My names ending with the letter 'G' is a funny coincidence. Because no one who drinks wine has a name starting with the letter 'G'!
... will not work because the Spanish translation for "Cunning Frog" probably won't end with "G". It might work if everyone else whose name in English ends with "G" has a different name in Spanish which ends with the same letter as Spanish for "Cunning Frog", though that will probably spoil the joke of "Donkey Kong". And the Spanish version of "PZChief Cunning Frog_dialog.h" will need to replace 'G' with the Spanish common letter. Russian will need to do the same.

. In English, all nation names are capitalised. That includes descriptive names - "French", "European", "Spaniard" etc. I've corrected a couple of dialog files. There may be more needed.

. Back to Guille the Kid. He tries to threaten me because there are three of them with daggers. At least after the jump start, there are also three of us, with swords, and Blaze is not one to back down from a fight. Lorena Lopez starts from some distance away and if Beatrice hadn't been frozen in place by 'LAi_SetActorType', Guille the Kid and his mates would be down long before Lorena finally arrived. Perhaps start Lorena a bit closer? And have Lorena tell Guille that she's saving him from us, not the other way round. ;)
 

Attachments

  • Lorena Lopez_dialog.h
    4.1 KB · Views: 53
  • Bonnie Devlin_dialog.h
    6.8 KB · Views: 52
Last edited:
Port vs. Beach: I could just make it so the dialog with Bonnie, where they decide to ask in the tavern and which makes the quest continue, is triggered upon entering both Santo Domingo port and Santo Domingo town, should you come from a beach and thus enter the town first. Refresh my memory: Are both win.condition.l1 or is one l1 and the other l2? Which one makes it so just one of them has to be fulfilled, and not both?

For the next part, you are actually sent to a beach for a change. ;) But in one of the routes, you send the ship into town to meet it there later. This means you'll have to leave town with your ship which has been placed there through quest_reactions.

Guille and Lorena: To me, this was mostly filler to lead to the tavern puzzle, plus my desire to have more quest action take place in the towns, plus my idea to give every one of the next three chapters a character that you can hire as your officer. But I still don't know how useful and interesting the latter really is. Any suggestions and improvements for that whole part are welcome.

Chief Cunning Frog: I'm sure his name can be translated. In German, he would be Häuptling Listiger Frosch for example. Actually he's the ancestor of another cunningly amphibious chief, Häuptling Listiger Lurch, who inspired the name in the first place. ;)

The letter 'G': Although told in riddle-language, this is just a way to say that a certain character (Georg Geheim, but simply naming him would be too easy) doesn't drink wine. There are countless other possiblities for this. I could easily help any translators to convey the neccessary information so it still works, or maybe even better, I could use a less language-based description in English. E.g. "The person who shares a table with two beer-drinkers doesn't drink wine".

Ship: Thanks, I will work on the Captain first and look for a ship I like, and for the second route I'll try to implement the ship. In the other route you actually learn that the pirates are not too bright (or to be clear: they're idiots). I don't know if that would make them more or less likely to surrender. ;) But it would obviously be more of a challenge if they don't surrender.

Another problem: I've got myself a temporary companion like this:
Code:
            LAi_SetOfficerType(characterFromID("Annie O'Byrne"));
            SetOfficersIndex(Pchar, 1, getCharacterIndex("Annie O'Byrne"))
A little bit later, I've got this:
Code:
        case "Killed_Scouts":
                        if (CheckQuestAttribute("ANNIE", "staysback"))
                        {
                 LAi_SetFightMode(PChar, false);
                 LAi_SetActorType(pchar)
                 Pchar.dialog.CurrentNode = "Waiting_for_Kay";
                 LAi_ActorSelfDialog(PChar, "");
                        }

                        if (CheckQuestAttribute("ANNIE", "comeswith"))
                        {
                 LAi_SetFightMode(PChar, false);
                 LAi_SetFightMode(characterFromID("Annie O'Byrne"), false);
                 LAi_SetActorType(characterFromID("Annie O'Byrne"));
                 Characters[GetCharacterIndex("Annie O'Byrne")].Dialog.CurrentNode = "Scouts_ded_with_Annie";
                 LAi_ActorDialog(characterFromID("Annie O'Byrne"), Pchar, "", 1.0, 0);
                        }
        break;

        case "Annie_leaves_fort":
            RemoveOfficersIndex(pchar, GetCharacterIndex("Annie O'Byrne"));
            LAi_ActorRunToLocator(characterFromID("Annie O'Byrne"), "reload", "reload1", "Annie_to_Kay", 3.0);
        break;
In the second if-condition, she is set to actor and talks to me. Her dialog exit triggers the next quest case and she's meant to run to reload1 and disappear. Instead, she aimlessly walks around the area. No error file, but compile.log says this:

Code:
Actor error: character <Annie O'Byrne> now is not actor, his have type <citizen>

But compile.log also says that "Annie_leaves_fort" works.
 
Port vs. Beach: I could just make it so the dialog with Bonnie, where they decide to ask in the tavern and which makes the quest continue, is triggered upon entering both Santo Domingo port and Santo Domingo town, should you come from a beach and thus enter the town first. Refresh my memory: Are both win.condition.l1 or is one l1 and the other l2? Which one makes it so just one of them has to be fulfilled, and not both?
If you have "win_condition.l1" and "win_condition.l2" then both must be fulfilled. I've had one go up to "win_condition.l5" before - that is, 5 separate conditions must pass for the quest case to trigger. (Two different NPC's must be dead, it must be night time, you must be at the correct locator and you must own a lockpick.)

Take a look at the end of case "YoHoRum", which has two different "win_condition.l1" sets, both leading to "Martinica_start". Then "Martinica_start" cancels both of them - it does no harm to cancel the one which actually triggered, and it prevents "Martinica_start" from triggering again if you went to the port and then later go to the beach, or vice versa. Next, case "Bonnie_Martinica_start" checks where you're moored and sends you to the appropriate reload. After Bonnie has finished her quest, cases "Bonnie_returns_Martinica_fallen" and "Bonnie_returns_Martinica_talkedfin" check where you moored and again send you to the appropriate locator.

I'd suggest that you either have Bonnie say her piece when you enter town, regardless of where you moored; or you do something similar to Martinica, check both port and beach, have Bonnie speak at whichever place you landed and cancel the triggers for both. Action in Santo Domingo appears to end in the tavern judging by case "Domingo_Debriefingfin", so you don't need to worry where the player moored for that part.

Guille and Lorena: To me, this was mostly filler to lead to the tavern puzzle, plus my desire to have more quest action take place in the towns, plus my idea to give every one of the next three chapters a character that you can hire as your officer. But I still don't know how useful and interesting the latter really is. Any suggestions and improvements for that whole part are welcome.
The only suggestion I'd make there is to have Lorena start somewhere closer, and have her tell Guille that one of these days he's going to get himself killed and the only reason this isn't that day is that she got there in time. As for having each chapter potentially give you an officer, it's interesting if you make the characters interesting, and useful if you you use 'ch.quest.officertype' plus suitable skills in their definitions to give them a useful position on the ship.

The letter 'G': Although told in riddle-language, this is just a way to say that a certain character (Georg Geheim, but simply naming him would be too easy) doesn't drink wine. There are countless other possiblities for this. I could easily help any translators to convey the neccessary information so it still works, or maybe even better, I could use a less language-based description in English. E.g. "The person who shares a table with two beer-drinkers doesn't drink wine".
That is certainly another possibility, change the clue. :onya

Ship: Thanks, I will work on the Captain first and look for a ship I like, and for the second route I'll try to implement the ship. In the other route you actually learn that the pirates are not too bright (or to be clear: they're idiots). I don't know if that would make them more or less likely to surrender. ;) But it would obviously be more of a challenge if they don't surrender.
It's up to you. The point is, the "nosurrender" attribute is not a necessary component of a battle, so if you copy the battle code from "Hornblower" (which, incidentally, is exactly what I did when I wrote my first battle for "Ardent"), you don't need to copy that line.

Another problem: I've got myself a temporary companion like this:
Code:
            LAi_SetOfficerType(characterFromID("Annie O'Byrne"));
            SetOfficersIndex(Pchar, 1, getCharacterIndex("Annie O'Byrne"))
A little bit later, I've got this:
Code:
        case "Killed_Scouts":
                        if (CheckQuestAttribute("ANNIE", "staysback"))
                        {
                 LAi_SetFightMode(PChar, false);
                 LAi_SetActorType(pchar)
                 Pchar.dialog.CurrentNode = "Waiting_for_Kay";
                 LAi_ActorSelfDialog(PChar, "");
                        }

                        if (CheckQuestAttribute("ANNIE", "comeswith"))
                        {
                 LAi_SetFightMode(PChar, false);
                 LAi_SetFightMode(characterFromID("Annie O'Byrne"), false);
                 LAi_SetActorType(characterFromID("Annie O'Byrne"));
                 Characters[GetCharacterIndex("Annie O'Byrne")].Dialog.CurrentNode = "Scouts_ded_with_Annie";
                 LAi_ActorDialog(characterFromID("Annie O'Byrne"), Pchar, "", 1.0, 0);
                        }
        break;

        case "Annie_leaves_fort":
            RemoveOfficersIndex(pchar, GetCharacterIndex("Annie O'Byrne"));
            LAi_ActorRunToLocator(characterFromID("Annie O'Byrne"), "reload", "reload1", "Annie_to_Kay", 3.0);
        break;
In the second if-condition, she is set to actor and talks to me. Her dialog exit triggers the next quest case and she's meant to run to reload1 and disappear. Instead, she aimlessly walks around the area. No error file, but compile.log says this:

Code:
Actor error: character <Annie O'Byrne> now is not actor, his have type <citizen>

But compile.log also says that "Annie_leaves_fort" works.
No, "compile.log" says that "Annie_leaves_fort" completed - not necessarily that it worked. If you don't see that line then "Annie_leaves_fort" didn't trigger at all. (It might also not show up if the game crashes part way through "Annie_leaves_fort", but presumably that didn't happen!)

The obvious solution would be to put another 'LAi_SetActorType(characterFromID("Annie O'Byrne"));' line in "Annie_leaves_fort", right before the 'LAi_ActorRunToLocator' command. 'LAi_ActorDialog' must always be preceded by 'LAi_SetActorType' and presumably the dialog process then leaves the character not in actor mode.
 
I'd suggest that you either have Bonnie say her piece when you enter town, regardless of where you moored; or you do something similar to Martinica, check both port and beach, have Bonnie speak at whichever place you landed and cancel the triggers for both. Action in Santo Domingo appears to end in the tavern judging by case "Domingo_Debriefingfin", so you don't need to worry where the player moored for that part.
That's what I thought as well. Instead of checking the beaches (there must be quite few on Hispaniola), Bonnie speaks when you land in the port, as she does now, but also when you enter the town center from the jungle. And yes, the Debriefing takes place in the tavern this time, with the first properly named appearance of the "Village Idiot", so it will all work and I don't have to the same thing as in Martinica where it always checks where your ship is.

I'm also going to do the changes for Lorena/Guille and Chief Cunning Frog. Sounds all good to me. :onya

I don't remember ever having the problem of characters falling out of the actor mode after a dialog. And putting the SetActor line in both cases didn't help. Very weird. Why does she become CitizenType? There's nothing in the quest or the character file that remotely has anything to do with CitizenType. :shrug

EDIT: It gets weirder: I skipped her RunToLocator and actually that whole quest case. Now I can at least continue to the next quest case, but the line

Code:
ChangeCharacterAddressGroup(characterFromID("Annie O'Byrne"), "Byrne_inside", "reload", "reload1");

Which I used several times already, doesn't work either. ANnie just doesn't teleport away. My only guess is that she isn't properly removed as an officer. Basically she joins me with

Code:
LAi_SetOfficerType(characterFromID("Annie O'Byrne"));
SetOfficersIndex(Pchar, 1, getCharacterIndex("Annie O'Byrne"))

and should leave again with

Code:
LAi_SetActorType(characterFromID("Annie O'Byrne"));
RemoveOfficersIndex(pchar, GetCharacterIndex("Annie O'Byrne"));
 
Last edited:
My only guess is that she isn't properly removed as an officer.
I have used
Code:
RemoveOfficersIndex(pchar, GetCharacterIndex("Wench3"));
RemovePassenger(pchar, characterFromID("Wench3"));
to get rid of an officer.
 
That's what I thought as well. Instead of checking the beaches (there must be quite few on Hispaniola), Bonnie speaks when you land in the port, as she does now, but also when you enter the town center from the jungle.
There are four beaches on Hispaniola. Boca de Hubon leads to Buccaneers Camp, from where you can walk to Santa Maria del Puerto (alias Hopital, alias Port au Prince in other periods). Cape Francos and Ile a Vache don't lead to any settlements. The only one which concerns us here is Boca de Yuman, which leads to the clearing with the windmill, from where the player can walk to Santo Domingo outskirts. (Unless he turns right at the windmill instead of left, in which case he'll find your quest tavern a bit too early, though he won't be able to enter because you've locked the door right at the start of the game. ;))

As for Annie O'Byrne, try @Jack Rackham's suggestion to use 'RemovePassenger' as well as 'RemoveOfficersIndex' to make sure she's no longer associated with you. If that still doesn't work, upload your newest versions of "quests_reaction.c", "Annie_dialog.c", and preferably a savegame from shortly before Annie joins you, then I can try to see what is happening.
 
@Jack Rackham 's suggestion didn't work for me. So I'm uploading a savegame for @Grey Roger to test. Instead of picking out all the dialog and character files that might be needed (and an important locator file was missing as well) I exported the whole Devlin Opera folder once again.


- Load the savegame
- Enter the house and talk to Killian O'Byrne
- When Annie talks to you, choose the following dialog options: Don't worry. In my experience, french pirates are pretty stupid by their nature. I bet I can make them leave the island with just a few simple tricks. and Alright. It might be dangerous, but if you insist...
- Now she's with you. Go to Eden Rock (left at the first jungle intersection, then right) and talk to Beatrice at the beach.
(When Beatrice leaves with the ship, Annie disappears as well. This is a minor cosmetic problem. She reappears in the next location)
- Go to the camp, to the right from the beach
- Three pirates attack. Kill them or let immortal Annie do the work ;) Then she talks to you.
- A fade happens, that's always lagging a bit for me. Four more pirates appear and talk to you.
- This is where the quest currently ends. But Annie is still around after the last talk with the pirates. She should have been removed from my company and teleported back to the house. And now, some of the pirates follow me! Perhaps because I used Lai_ActorFollow so they run up to me in the first place?
 

Attachments

  • Savegame.zip
    722.9 KB · Views: 75
It will be a while before I can try your savegame. But one thing which puzzles me is that I can't find how quest case "Annie_leaves_fort" is triggered. Killing the three scouts triggers a dialog with Annie, which triggers "Kay_picks_up", which triggers "Kay_picks_up2", which triggers a dialog with Mad Kay Hubecher and makes the other Kays follow you. But "Kay_picks_up2" does not seem to trigger anything further and neither does "Mad Kay Hubecher_dialog.c".
 
Looks like I've made a mess: Like I said, I shortened the two quest cases into one, thus skipped Annie_leaves_fort to make things more simple and just teleport her away instead of making her run to the exit first (because that didn't work). But it looks like I've put my next changes into the very quest case that I just left out, which GR is right about, isn't triggered anymore. :facepalm


Mad Kay Hubecher_dialog.c isn't supposed to trigger anything yet. That's where the mostly chronological code ends currently.

I'll tidy up my code first and test again...
 
Okay. The problem, of Annie not doing the correct ActorRunToLocator stuff has been solved by just leaving it out. And the problem of her still not disappearing has been solved by actually putting it in the correct quest case. :facepalm I've been dumber than the french pirates in my story.
 
Another problem is that when I tried your savegame, I got as far as trying to enter the pirate camp, then the screen went black. In "system.log":
Code:
resource\models\locations\Pirate Fort\PiF_l_BTP.gm: can't open geometry file
And indeed, "RESOURCE\MODELS\Locations\Pirate Fort\PiF_l_BTP.gm" does not exist. Could you upload it? Also upload your current version of "quests_reaction.c", please.
 
I always forget something outside the two storyline folders, in this case that locator file. I added a few locators and removed the smoke in this version, as far as I remember. I'll upload it tonight.
 
@Grey Roger here's the locator file (I suppose you know where to put it) and quest_reaction, even though I'm probably going to do further work on the latter this evening.
 

Attachments

  • files.zip
    25 KB · Views: 66
@Grey Roger more about characters joining/following me: Are the only two options basically 1) adding them as passenger and officer and 2) setting them to actor and use LAi_ActorFollowEverywhere(CharacterFromID("Dou_soldier_1"), "", 1.0); (example from the Kapitein of Kralendijk)?

May character has now gotten rid of Annie and is currently in the company of three corsairs (the number may decrease to one, since there's some fighting going on). When I fight with them against enemy groups I'll use something like LAi_group_FightGroups("Bad_scouts", LAI_GROUP_PLAYER, 1); so this probably means, the corsairs should temporarily be my officers, so they fight in my group?
 
Adding them as officer will work - they'll follow you around and will fight for you. The obvious drawback is that if you have the three corsairs as officers then you don't have Bonnie or Blaze - though that's not a problem if this is a continuation of the chapter on Las Tortugas in which you play Blaze, while Beatrice and Bonnie have been removed. It will mean that if the player brought another officer, e.g. Lorena Lopez, that officer will disappear too. It also means that you can't count on the corsairs being there when you need them as the player may have switched them out to put his own officers back, though that can be prevented by making the corsairs unremovable, e.g.:
Code:
SetCharacterRemovable(CharacterFromID("Corsair1"), true);

LAi_ActorFollowEverywhere makes the character follow you around but the character is in actor mode and won't fight. This is useful for a character which needs to stay with you but not be an officer, such as that soldier in "Kapitein of Kralendijk" - he follows you to the town hall, where you tell him to stand guard, he never needs to fight.

Do these corsairs spawn somewhere and then follow you to a different location for the fight? Or do they just show up at the fight scene? If the latter, take a look at "PROGRAM\Storyline\standard\quests\quests_reaction.c", case "Story_Blaze_and_Glover_Land_troops":
Code:
                if (!LAi_IsDead(characterFromID("Ewan Glover")))
                {
                    //----------Âûñàæèâàåì Àíãëèéñêèõ ñîëäàò âìåñòå ñ èãðîêîì
                    ChangeCharacterAddress(characterFromID("Eng_land_soldier_01"), "Oxbay_shore_02", "locator7");
                    ChangeCharacterAddress(characterFromID("Eng_land_soldier_02"), "Oxbay_shore_02", "locator23");
                    ChangeCharacterAddress(characterFromID("Eng_land_soldier_03"), "Oxbay_shore_02", "locator24");
                    ChangeCharacterAddress(characterFromID("Eng_land_soldier_04"), "Oxbay_shore_02", "locator25");
                }
And then in case "Wilfred_exit_fight":
Code:
            LAi_group_MoveCharacter(characterFromID("Fra_patrolman_01"), "FRANCE_SOLDIERS");
            LAi_group_MoveCharacter(characterFromID("Fra_patrolman_02"), "FRANCE_SOLDIERS");
            LAi_group_MoveCharacter(characterFromID("Fra_patrolman_03"), "FRANCE_SOLDIERS");
            LAi_group_MoveCharacter(characterFromID("Fra_patrolman_04"), "FRANCE_SOLDIERS");
            //--------Ïîÿâëåíèå ôðàíöóçñêèõ ñîëäàò
            ChangeCharacterAddressGroup(characterFromID("Fra_patrolman_01"), "Oxbay_shore_02", "reload", "reload2_back");
            ChangeCharacterAddress(characterFromID("Fra_patrolman_02"), "Oxbay_shore_02", "locator27");
            ChangeCharacterAddress(characterFromID("Fra_patrolman_03"), "Oxbay_shore_02", "locator26");
            ChangeCharacterAddress(characterFromID("Fra_patrolman_04"), "Oxbay_shore_02", "locator13");
            //-----------Ñìåíà òèïà àíãëèéñêèì ñîëäàòàì
            LAi_group_MoveCharacter(characterFromID("Eng_land_soldier_01"), LAI_GROUP_PLAYER);
            LAi_group_MoveCharacter(characterFromID("Eng_land_soldier_02"), LAI_GROUP_PLAYER);
            LAi_group_MoveCharacter(characterFromID("Eng_land_soldier_03"), LAI_GROUP_PLAYER);
            LAi_group_MoveCharacter(characterFromID("Eng_land_soldier_04"), LAI_GROUP_PLAYER);
            //--------íàïàäåíèå èõ íà ãðóïïó èãðîêà
            LAi_group_SetRelation("FRANCE_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
            LAi_group_FightGroups("FRANCE_SOLDIERS", LAI_GROUP_PLAYER, true);
            LAi_group_SetCheck("FRANCE_SOLDIERS", "Story_kill_french_patrol");
This is where you've escorted Ewan Glover to Bridgetown, met Wilfred, waited until night, then gone to Gray Rock Bay. Case "Story_Blaze_and_Glover_Land_troops" places the British troops. After some dialog, case "Wilfred_exit_fight" places the French soldiers, puts all the British soldiers into LAI_GROUP_PLAYER, puts all the French soldiers into AI group "FRANCE_SOLDIERS", and sets the two groups to fight. You could do something similar if the player goes to the fight location and meets all the corsairs there, both friend and foe.
 
Back
Top