void SideQuestComplete(string sQuestName) { ref PChar, sld, NPChar, lcn; // KK --> int iPassenger, cidx, i, j, indianid; float locx, locy, locz, parx, pary, parz; float x1,x2,y1,y2,z1,z2,x,y,z; string homelocation, homegroup, homelocator, attr; // <-- KK PChar = GetMainCharacter(); switch(sQuestName) { /////////////////////////////////////////////////////////////// ///// OFFICER TUTORIAL /////////////////////////////////////////////////////////////// case "OT_Captain_enter_location": NPChar = CharacterFromID("Officer_Tutorial_Captain"); ChangeCharacterAddressGroup(NPChar, PChar.location, "reload", "reload1"); LAi_SetActorType(NPChar); LAi_SetActorType(PChar); NPChar.dialog.currentnode = "talk in tavern"; LAi_ActorDialog(NPChar,Pchar,"",10.0,1.0); PChar.quest.Officer_Tutorial_Expire.win_condition.l1 = "Timer"; PChar.quest.Officer_Tutorial_Expire.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); PChar.quest.Officer_Tutorial_Expire.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Officer_Tutorial_Expire.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); PChar.quest.Officer_Tutorial_Expire.win_condition = "OT_Expired"; LAi_SetPlayerType(PChar); break; case "OT_Go_Visit": NPChar = CharacterFromID("Officer_Tutorial_Captain"); SetQuestHeader("Officer_Tutorial"); AddQuestRecord("Officer_Tutorial", 1); PChar.quest.Officer_Tutorial.TalkedtoOfficer = true; LAi_ActorRunToLocator(NPChar,"reload","reload1","OT_Captain_leaves_location",40); break; case "OT_Captain_leaves_location": NPChar = CharacterFromID("Officer_Tutorial_Captain"); ChangeCharacterAddressGroup(NPChar, "Oranjestad_Port_Captain_House", "goto", "goto2"); LAi_SetStayType(NPChar); NPChar.dialog.currentnode = "Officer_Tutorial_Start"; break; case "OT_Finish": AddQuestRecord("Officer_Tutorial", 2); CloseQuestHeader("Officer_Tutorial"); AddXP(pchar, "Leadership", 150, XP_GROUP_OFFIC); break; case "OT_Expired": CloseQuestHeader("Officer_Tutorial"); break; /////////////////////////////////////////////////////////////// ///// Smugglers Guild /////////////////////////////////////////////////////////////// case "learn about smugglers": //Levis you've heard about smugglers so let the player know: if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } break; case "Smugglers First Meeting": GiveItem2Character(Pchar,"smugglingbook"); Pchar.quest.smuggling_got_book = true; if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } AddQuestRecord("smuggleguild", 2); break; case "Smuggler Paid for relation": pchar.quest.smuggling_guild.liking = 25; if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } if(!CheckAttribute(pchar,"quest.smuggling_guild.times_payed")) { AddQuestRecord("smuggleguild", 9); pchar.quest.smuggling_guild.times_payed = 0; } pchar.quest.smuggling_guild.times_payed = sti(pchar.quest.smuggling_guild.times_payed) + 1; break; case "Smuggler Guild Refused Governor": if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } break; case "Smuggler Guild Accepted Governor": if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } ref gov_town = GetCurrentTown(); Preprocessor_AddQuestData("town", FindTownName(gov_town.id)); AddQuestRecord("smuggleguild", 3); Preprocessor_Remove("town"); pchar.quest.smuggling_guild.governor_quest = true; pchar.quest.smuggling_guild.governor_quest.town = gov_town.id; pchar.quest.smuggling_guild.governor_quest.nation = gov_town.nation; GiveItem2Character(pchar,"smuggling_papers"); break; case "Smugglers Opium Discovery": if(!CheckAttribute(pchar,"quest.smuggling_guild.have_met")) { SetQuestHeader("smuggleguild"); AddQuestRecord("smuggleguild", 1); pchar.quest.smuggling_guild.have_met = true; } if(!CheckAttribute(pchar,"quest.smuggling_guild.opium_explain")) { AddQuestRecord("smuggleguild", 4); } break; case "Smugglers Opium Explain": pchar.quest.smuggling_guild.opium_explain = true; int NumMembers = 3+rand(3); GetSmugglingGuildMembers(NumMembers, "OpiumBuyers", "OpiumBuyer.c"); //Get the opiumlist item ref opiumlist; string client=""; //TODO: do this trough translate string string booktext=""; makeref(opiumlist,Items[GetItemIndex("opiumlist")]); //Make a nice list aref Clients; makearef(Clients,pchar.quest.smuggling_guild.people.OpiumBuyers); for(i=0;i 31) { trace("MADE MOB SMALLER TO KEEP SLOTS FREE"); nummob = LAi_numloginedcharacters-30; } for (i = 0; i <= nummob; i++) { IDXname = "Mob"+i; sld = LAi_CreateFantomCharacterExOt(false, OFFIC_TYPE_CIVILIAN, GetRandomRank(true, OFFIC_TYPE_CIVILIAN, 0), true, 0.75, GetRandomModelForTypeExSubCheck(1, "lower_citizens", "man", GetCurrentLocationNation()), "reload", "reload15"); Pchar.quest.mysterious_plants.mob.(IDXname) = sld.index; LAi_SetActorType(sld); LAi_group_MoveCharacter(sld, "Mob"); LAi_ActorRunToLocator(sld, "goto", "goto27", "", -1); } break; case "Walk to Priest Apothecary": //Talk to the priest in charge sld = &characters[sti(Pchar.quest.mysterious_plants.mob.priest)]; //LAi_ActorFollow(sld, pchar, "", 3.0); LAi_ActorWaitDialog(PChar, sld); LAi_ActorDialog(sld, Pchar, "", 1.0, 0); break; case "Apothecary Fight Mob": //We fight the mob LAi_group_FightGroups(LAI_GROUP_PLAYER, "Mob", true); LAi_SetPlayerType(Pchar); for(i=0; i < GetPassengersQuantity(PChar); i++) { cidx = GetPassenger(PChar, i); if (IsOfficer(Characters[cidx])) { LAi_SetOfficerType(Characters[cidx]); } } PChar.locationLock = true; ChangeRMRelation(pchar, GetCurrentLocationNation(), -20); AddQuestRecord("plants", 4); PChar.quest.apothecary_fight_mob.win_condition.l1 = "Group_Death"; PChar.quest.apothecary_fight_mob.win_condition.l1.group = "Mob"; PChar.quest.apothecary_fight_mob.win_condition = "Steven Comes Outside"; break; case "Steven Comes Outside": locations[FindLocation("Greenford_town")].reload.l18.disable = 1; sld = &characters[GetCharacterIndex("Apothecary")]; ChangeCharacterAddressGroup(sld,pchar.location,"reload","reload13"); LAi_SetActorType(sld); LAi_SetActorType(PChar); LAi_ActorWaitDialog(PChar, sld); sld.Dialog.CurrentNode = "Killed Mob"; LAi_ActorDialog(sld, Pchar, "", 1.0, 0); break; case "Officiant helps steven": sld = GetTownOfficiant("Greenford"); ChangeCharacterAddressGroup(sld,"Greenford_town","goto","goto15"); sld.Dialog.Filename = "apothecary_quest.c"; sld.Dialog.CurrentNode = "Help Steven Leave"; LAi_SetActorType(sld); LAi_ActorTurnToLocator(Pchar,"goto","goto15"); LAi_ActorWaitDialog(PChar, sld); LAi_ActorDialog(sld,pchar,"",1.0,0); break; case "Steven Leaves": if(CheckCharacterPerkLocked(Pchar, "ImprovePotions")) UnlockPerkCharacter(PChar ,"ImprovePotions"); AddQuestRecord("plants", 8); CloseQuestHeader("plants"); LAi_ActorTurnToLocator(Pchar,"reload","reload13"); sld = &characters[GetCharacterIndex("Apothecary")]; LAi_ActorRunToLocation(sld, "reload", "reload13", "none", "", "", "", 45.0); sld = GetTownOfficiant("Greenford"); LAi_type_actor_Reset(sld); LAi_ActorRunToLocator(sld, "reload", "reload13", "", -1); pchar.quest.mysterious_plants.steven_left = true; pchar.quest.mysterious_plants.officiant_buys_albatros = true; DeleteAttribute(&Stores[GREENFORD_STORE],"apothecary"); //Remove from array so fetchquest wont pick it anymore DeleteAttribute(&PChar,"quest.mysterious_plants.mob"); LAi_QuestDelay("Reset Officiant",3); break; case "Reset Officiant": sld = GetTownOfficiant("Greenford"); LAi_SetWaitressType(sld); ChangeCharacterAddressGroup(sld,"Greenford_tavern","waitress","barmen"); sld.Dialog.Filename = "eng_officiant_dialog.c"; sld.Dialog.CurrentNode = "First time"; LAi_SetPlayerType(Pchar); DisableFastTravel(false); DisableMenuLaunch(false); break; case "Apothecary Pay": LAi_SetPlayerType(Pchar); DisableFastTravel(false); DisableMenuLaunch(false); for(i=0; i < GetPassengersQuantity(PChar); i++) { cidx = GetPassenger(PChar, i); if (IsOfficer(Characters[cidx])) { LAi_SetOfficerType(Characters[cidx]); } } locations[FindLocation("Greenford_town")].reload.l18.disable = 0; PChar.quest.mysterious_plants.donate = 1000; sld = &characters[sti(Pchar.quest.mysterious_plants.mob.priest)]; LAi_type_actor_Reset(sld); LAi_ActorRunToLocation(sld, "reload", "reload15", "none", "", "", "Remove Mob", 45.0); aref mob; makearef(mob,Pchar.quest.mysterious_plants.mob); for(i=1;i 6) { level = 10 + 6-sti(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed"))*2; //The level will increase at some point so this isn't an infinite XP farm } sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", level, true, 1.0, "indian"+indianid, "goto", LAi_FindRandomLocator("goto")); if(rand(99>50) || GetAttribute(Pchar,"quest.mysterious_plants.indians.killed") > 3) { //LAi_SetWarriorType(sld); //LAi_warrior_SetStay(sld, 1); LAi_SetCivilianGuardianType(sld); } else { LAi_SetPoorType(sld); } sld.Dialog.Filename = "Indian Guard.c"; sld.Dialog.CurrentNode = "First time"; LAi_group_MoveCharacter(sld, "IndianGuards"+i); LAi_group_SetRelation("IndianGuards"+i, LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL); //LAi_group_SetAlarmReaction("IndianGuards"+i, LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL, LAI_GROUP_ENEMY); if(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed") > 8) { LAi_group_FightGroups("IndianGuards"+i, LAI_GROUP_PLAYER,true); LAi_group_FightGroups(LAI_GROUP_PLAYER, "IndianGuards"+i,true); if(!CheckAttribute(pchar,"quest.mysterious_plants.indians.onsight")) { AddQuestRecord("plants",32); pchar.quest.mysterious_plants.indians.onsight = true; } } if(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed") > 30) //Killing all ambushes and doing the smugglers quest will still not get you over this number. So if you do you are just killing them for fun and/or XP so you deserve to get punished { LAi_SetImmortal(sld,true); //You asked for it } string conditioncase = "Kill_Indian_Guards"+i; Pchar.quest.(conditioncase).win_condition.l1 = "NPC_Death"; Pchar.quest.(conditioncase).win_condition.l1.character = sld.id; Pchar.quest.(conditioncase).win_condition = "Kill Indian Guard"; } for (i = 0; i <= numindians; i++) { for (j = 0; j <= numindians; j++) { LAi_group_SetRelation("IndianGuards"+i, "IndianGuards"+j, LAI_GROUP_NEUTRAL); //LAi_group_SetAlarmReaction("IndianGuards"+i, "IndianGuards"+j, LAI_GROUP_ENEMY, LAI_GROUP_ENEMY); } } pchar.quest.Apothecary_Guard_Ship_reset.win_condition.l1 = "ExitFromLocation"; pchar.quest.Apothecary_Guard_Ship_reset.win_condition.l1.location = "Greenford_port"; pchar.quest.Apothecary_Guard_Ship_reset.win_condition = "Set Guard Again"; break; case "Set Guard Again": //Also clear kill conditions DeleteAttribute(&pchar,"quest.Kill_Indian_Guards0"); DeleteAttribute(&pchar,"quest.Kill_Indian_Guards1"); DeleteAttribute(&pchar,"quest.Kill_Indian_Guards2"); if(CheckAttribute(PChar,"quest.mysterious_plants.guard_ship")) { Pchar.quest.Apothecary_Guard_Ship.win_condition.l1 = "location"; Pchar.quest.Apothecary_Guard_Ship.win_condition.l1.character = PChar.id; Pchar.quest.Apothecary_Guard_Ship.win_condition.l1.location = "Greenford_port"; Pchar.quest.Apothecary_Guard_Ship.win_condition = "Ship Guarded"; } break; case "Kill Indian Guard": if(PChar.location == "Greenford_port") { i = sti(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed")) + 1; Pchar.quest.mysterious_plants.indians.killed = i; } break; case "Apothecary Meet In Tavern": AddQuestRecord("plants", 16); pchar.quest.mysterious_plants.heard_job = "talk to captain"; Pchar.quest.Apothecary_Meet_Tavern.win_condition.l1 = "location"; Pchar.quest.Apothecary_Meet_Tavern.win_condition.l1.character = PChar.id; Pchar.quest.Apothecary_Meet_Tavern.win_condition.l1.location = "Greenford_tavern"; Pchar.quest.Apothecary_Meet_Tavern.win_condition = "Apothecary Set Up Meeting Captain"; break; case "Apothecary Set Up Meeting Captain": indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "indian"+indianid, "reload", "reload2"); Pchar.quest.mysterious_plants.indianspy = sld.index; LAi_SetStayType(sld); LAi_StoreFantom(sld); sld.Dialog.Filename = "Indian Guard.c"; sld.Dialog.CurrentNode = "First time"; sld = characterFromID("Robert Cook"); LAi_SetStayType(sld); ChangeCharacterAddressGroup(sld,pchar.location,"goto","goto2"); sld.Dialog.Filename = "apothecary_quest.c"; sld.Dialog.CurrentNode = "Talk about plan"; break; case "Apothecary Meet At Lighthouse": LAi_SetActorType(pchar); sld = characterFromID("Robert Cook"); LAi_SetActorType(sld); LAi_ActorRunToLocation(sld,"reload","reload1","Oxbay_Lighthouse","goto","goto1","Apothecary Trigger Indian",10); SetCharacterShipLocation(sld, "Oxbay_Lighthouse"); pchar.quest.Arrived_At_Lighthouse.win_condition.l1 = "location"; pchar.quest.Arrived_At_Lighthouse.win_condition.l1.location = "Oxbay_Lighthouse"; pchar.quest.Arrived_At_Lighthouse.win_condition = "Prepare Apothecary Ambush Lighthouse"; break; case "Apothecary Trigger Indian": LAi_ActorTurnToLocator(pchar,"goto","goto8"); sld = &characters[sti(Pchar.quest.mysterious_plants.indianspy)]; LAi_SetActorType(sld); LAi_ActorRunToLocation(sld,"reload","reload1","none","","","Apothecary Indian Left",10); LAi_QuestDelay("turn_to_indianspy",2); //JRH: see what that indian's up to LAi_QuestDelay("turn_to_indianspy",3); LAi_QuestDelay("turn_to_indianspy",4); LAi_QuestDelay("turn_to_indianspy",5); LAi_QuestDelay("turn_to_indianspy",6); LAi_QuestDelay("turn_to_indianspy",7); LAi_QuestDelay("turn_to_indianspy",8); LAi_QuestDelay("turn_to_indianspy",9); break; //JRH --> case "turn_to_indianspy": sld = &characters[sti(Pchar.quest.mysterious_plants.indianspy)]; LAi_ActorTurnToCharacter(PChar, sld); break; //<-- JRH case "Apothecary Indian Left": LAi_SetPlayerType(pchar); AddQuestRecord("plants", 17); Locations[FindLocation("Greenford_town")].vcskip = true; //Added to make sure the questscene works pchar.quest.apothecary_follow_indian.win_condition.l1 = "ExitFromLocation"; pchar.quest.apothecary_follow_indian.win_condition.l1.location = "Greenford_tavern"; pchar.quest.apothecary_follow_indian.win_condition = "Apothecary Follow Indian"; pchar.quest.apothecary_killed_spy.win_condition.l1 = "NPC_Death"; PChar.quest.apothecary_killed_spy.win_condition.l1.character = &characters[sti(Pchar.quest.mysterious_plants.indianspy)].id; pchar.quest.apothecary_killed_spy.win_condition.l1.character = "Apothecary Killed Indian Spy"; break; case "Apothecary Found Follow": DeleteAttribute(&Locations[FindLocation("Greenford_town")],"vcskip"); DeleteAttribute(&pchar,"quest.mysterious_plants.indianspy"); LAi_UnStoreFantom(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); AddQuestRecord("plants", 18); break; case "Apothecary Killed Indian Spy": DeleteAttribute(&pchar,"quest.mysterious_plants.indianspy"); LAi_UnStoreFantom(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); i = sti(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed")) + 1; Pchar.quest.mysterious_plants.indians.killed = i; AddQuestRecord("plants", 21); break; case "Apothecary Follow Indian": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { ChangeCharacterAddressGroup(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"Greenford_town","reload","reload7"); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"goto","goto14","",20); LAi_QuestDelay("Apothecary Follow Indian 2",8); } break; case "Apothecary Follow Indian 2": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"goto","goto38","",20); LAi_QuestDelay("Apothecary Follow Indian 3",7); } break; case "Apothecary Follow Indian 3": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocation(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"reload","reload19","none","","","",20); } LAi_QuestDelay("Apothecary Build Obstacles",0); Locations[FindLocation("Greenford_suburb")].vcskip = true; //Added to make sure the questscene works pchar.quest.apothecary_follow_indian.win_condition.l1 = "ExitFromLocation"; pchar.quest.apothecary_follow_indian.win_condition.l1.location = "Greenford_town"; pchar.quest.apothecary_follow_indian.win_condition = "Apothecary Follow Indian 5"; break; case "Apothecary Build Obstacles": lcn = &Locations[FindLocation("Greenford_suburb")]; cidx = -1; for(i = 1; i<=MAXBUILDINGS; i++) { attr = "building."+i+".building"; if( !CheckAttribute(lcn,attr) && cidx < 0) { cidx = i; } } string buildingid = ""+cidx; pchar.quest.mysterious_plants.baricade.l1 = buildingid; lcn.building.(buildingid).building = "box"; lcn.building.(buildingid).interior = ""; lcn.building.(buildingid).x = -27.167; lcn.building.(buildingid).y = 1; lcn.building.(buildingid).z = 34.291; lcn.building.(buildingid).ay = 0; lcn.building.(buildingid).aigroup = "blockade"; cidx += 1; buildingid = ""+cidx; pchar.quest.mysterious_plants.baricade.l2 = buildingid; lcn.building.(buildingid).building = "box"; lcn.building.(buildingid).interior = ""; lcn.building.(buildingid).x = -28.296; lcn.building.(buildingid).y = 1; lcn.building.(buildingid).z = 33.846; lcn.building.(buildingid).ay = 0; lcn.building.(buildingid).aigroup = "blockade"; cidx += 1; buildingid = ""+cidx; pchar.quest.mysterious_plants.baricade.l3 = buildingid; lcn.building.(buildingid).building = "bale"; lcn.building.(buildingid).interior = ""; lcn.building.(buildingid).x = -27.458; lcn.building.(buildingid).y = 1; lcn.building.(buildingid).z = 33.549; lcn.building.(buildingid).ay = 0; lcn.building.(buildingid).aigroup = "blockade"; cidx += 1; buildingid = ""+cidx; pchar.quest.mysterious_plants.baricade.l4 = buildingid; lcn.building.(buildingid).building = "bale"; lcn.building.(buildingid).interior = ""; lcn.building.(buildingid).x = -27.963; lcn.building.(buildingid).y = 1; lcn.building.(buildingid).z = 34.571; lcn.building.(buildingid).ay = 0; lcn.building.(buildingid).aigroup = "blockade"; break; case "Apothecary Follow Indian 5": DeleteAttribute(&Locations[FindLocation("Greenford_suburb")],"vcskip"); if(pchar.location == "Greenford_suburb" && CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { ChangeCharacterAddressGroup(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"Greenford_suburb","reload","reload_3_3_back"); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"goto","goto14","",20); LAi_QuestDelay("Apothecary Follow Indian 6",10); StartBlockadeCheck("Greenford_suburb"); pchar.quest.Apothecary_indian_detour.win_condition.l1 = "locator"; pchar.quest.Apothecary_indian_detour.win_condition.l1.location = pchar.location; pchar.quest.Apothecary_indian_detour.win_condition.l1.locator_group = "reload"; pchar.quest.Apothecary_indian_detour.win_condition.l1.locator = "door_15"; pchar.quest.Apothecary_indian_detour.win_condition = "Apothecary Not This Way"; } break; case "Apothecary Follow Indian 6": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"goto","goto22","",20); LAi_QuestDelay("Apothecary Follow Indian 7",15); } break; case "Apothecary Follow Indian 7": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"goto","goto44","",20); LAi_QuestDelay("Apothecary Follow Indian 8",12); } break; case "Apothecary Follow Indian 8": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocator(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"officers","door_1_3","",20); LAi_QuestDelay("Apothecary Follow Indian 9",1); } break; case "Apothecary Follow Indian 9": if(CheckAttribute(pchar,"quest.mysterious_plants.indianspy")) { LAi_type_actor_Reset(&characters[sti(Pchar.quest.mysterious_plants.indianspy)]); LAi_ActorRunToLocation(&characters[sti(Pchar.quest.mysterious_plants.indianspy)],"reload","door_1","none","","","Apothecary Follow Indian End",20); } break; case "Apothecary Follow Indian End": DoQuickSave(); //JRH: as it crashes in the warehouse sometimes AddQuestRecord("plants", 19); AddXP(pchar, SKILL_ACCURACY, 500, XP_GROUP_OFFIC); AddXP(pchar, SKILL_SNEAK, 750, XP_GROUP_OFFIC); Locations[FindLocation("greenford_warehouse")].vcskip = true; Pchar.quest.Apothecary_Enter_Warehouse.win_condition.l1 = "location"; Pchar.quest.Apothecary_Enter_Warehouse.win_condition.l1.character = PChar.id; Pchar.quest.Apothecary_Enter_Warehouse.win_condition.l1.location = "greenford_warehouse"; Pchar.quest.Apothecary_Enter_Warehouse.win_condition = "Apothecary entered warehouse"; break; case "Reported Indians in Warehouse": DeleteAttribute(&Pchar,"quest.Apothecary_Enter_Warehouse"); DeleteAttribute(&Locations[FindLocation("greenford_warehouse")],"vcskip"); LAi_QuestDelay("Apothecary Remove Baricade",0); PChar.quest.mysterious_plants.indians.safe = true; PChar.quest.mysterious_plants.reported_crime.inwarehouse = true; ChangeRMRelation(PChar, GetCurrentLocationNation(), 4); AddQuestRecord("plants", 28); AddXP(pchar, SKILL_LEADERSHIP, 1000, XP_GROUP_OFFIC); break; case "Apothecary Not This Way": LAi_SetActorType(Pchar); if(!CheckAttribute(Pchar,"quest.mysterious_plants.guardwarehouse")) { indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 1, true, 1.0, "indian"+indianid, "reload", "reload_1"); Pchar.quest.mysterious_plants.guardwarehouse = sld.index; LAi_StoreFantom(sld); } else { sld = &characters[sti(Pchar.quest.mysterious_plants.guardwarehouse)]; ChangeCharacterAddressGroup(sld,pchar.location,"reload","reload_1"); } sld.Dialog.Filename = "Indian Guard.c"; sld.Dialog.CurrentNode = "Spotted warehouse"; LAi_SetActorType(sld); LAi_ActorTurnToLocator(Pchar,"reload","reload_1"); LAi_ActorWaitDialog(PChar, sld); LAi_ActorDialog(sld,pchar,"",1.0,0); break; case "Apothecary seen by guard warehouse": LAi_ActorRunToLocator(PChar,"reload","reload_1","Apothecary let's try it again",-1); sld = &characters[sti(Pchar.quest.mysterious_plants.guardwarehouse)]; LAi_ActorRunToLocator(sld,"reload","door_14","",-1); break; case "Apothecary let's try it again": sld = &characters[sti(Pchar.quest.mysterious_plants.guardwarehouse)]; ChangeCharacterAddressGroup(sld,"none","",""); LAi_SetPlayerType(PChar); if(!CheckAttribute(Pchar,"quest.mysterious_plants.seenbywarehouseguard")) { AddQuestRecord("plants", 20); Pchar.quest.mysterious_plants.seenbywarehouseguard = true; } pchar.quest.Apothecary_indian_detour.win_condition.l1 = "locator"; pchar.quest.Apothecary_indian_detour.win_condition.l1.location = pchar.location; pchar.quest.Apothecary_indian_detour.win_condition.l1.locator_group = "reload"; pchar.quest.Apothecary_indian_detour.win_condition.l1.locator = "door_15"; pchar.quest.Apothecary_indian_detour.win_condition = "Apothecary Not This Way"; break; case "Apothecary entered warehouse": //First check trough which door we came DeleteAttribute(&Locations[FindLocation("greenford_warehouse")],"vcskip"); if(PChar.location.locator == "reload1") { //Front Door: This means ambush time //Lock the doors Locations[FindLocation(PChar.location)].reload.l1.disable = true; Locations[FindLocation(PChar.location)].reload.l1.disable = true; //Make the ambush 12 8 7 6 indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto2"); GiveItem2Character(sld,"indian_treasure_note"); LAi_group_MoveCharacter(sld, "Indian Ambush"); Pchar.quest.mysterious_plants.indianambush.indian0 = sld.index; indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto12"); LAi_group_MoveCharacter(sld, "Indian Ambush"); Pchar.quest.mysterious_plants.indianambush.indian1 = sld.index; indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto8"); LAi_group_MoveCharacter(sld, "Indian Ambush"); Pchar.quest.mysterious_plants.indianambush.indian2 = sld.index; indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto7"); LAi_group_MoveCharacter(sld, "Indian Ambush"); Pchar.quest.mysterious_plants.indianambush.indian3 = sld.index; indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto6"); LAi_group_MoveCharacter(sld, "Indian Ambush"); Pchar.quest.mysterious_plants.indianambush.indian4 = sld.index; //Only get help if you saved your crewmember if(CheckAttribute(Pchar,"quest.mysterious_plants.crewmember_killed")) { LAi_QuestDelay("PreProcess Cavalry Apothecary",0); //Let's generate the characters already LAi_QuestDelay("Apothecary enter the Cavalry",20); //You have to survive 20 seconds } //Start fighting LAi_group_FightGroups(LAI_GROUP_PLAYER, "Indian Ambush", true); LAi_QuestDelay("Hide Indian Treasure Random",0); PChar.quest.apothecary_fight_mob.win_condition.l1 = "Group_Death"; PChar.quest.apothecary_fight_mob.win_condition.l1.group = "Indian Ambush"; PChar.quest.apothecary_fight_mob.win_condition = "Apothecary Defeated Ambush"; AddQuestRecord("plants", 21); } if(PChar.location.locator == "reload2") { //Back Door: This means we can overhear them talk but first let's get to a safe location. LAi_QuestDelay("Apothecary Sneak in Warehouse",0); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian1", "goto", "goto1"); GiveItem2Character(sld,"indian_treasure_note"); LAi_SetActorType(sld); LAi_ActorTurnToLocator(sld,"reload","reload1"); sld.Dialog.Filename = "apothecary_quest.c"; Pchar.quest.mysterious_plants.indianambush.indian0 = sld.index; LAi_group_MoveCharacter(sld, "Indian Ambush"); indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian2", "goto", "goto2"); LAi_ActorTurnToLocator(sld,"goto","goto1"); Pchar.quest.mysterious_plants.indianambush.indian1 = sld.index; sld.Dialog.Filename = "apothecary_quest.c"; LAi_SetActorType(sld); LAi_group_MoveCharacter(sld, "Indian Ambush"); } LAi_QuestDelay("Apothecary Remove Baricade",0); break; case "PreProcess Cavalry Apothecary": for (i = 0; i <= 15; i++) { sld = LAi_CreateFantomCharacterExOt(true, GetBoardingCrewType(PChar), sti(pchar.rank), false, 0.0, LAi_GetBoardingModel(PChar, ""), "goto", "goto11"); EquipFromLocker(sld); CheckCharacterCurse(sld); ChangeCharacterAddressGroup(sld,"none","",""); Pchar.quest.mysterious_plants.crewhelp = i; string crewhelpid = "crewmember"+i; Pchar.quest.mysterious_plants.crewhelp.(crewhelpid) = sld.index; } break; case "Apothecary enter the Cavalry": //This should help you survive the battle AddXP(pchar, SKILL_LEADERSHIP, 1000, XP_GROUP_OFFIC); if(!CheckAttribute(Pchar,"quest.mysterious_plants.won_ambush")) { for (i = 0; i <= sti(Pchar.quest.mysterious_plants.crewhelp); i++) { string crewhelpid2 = "crewmember"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid2))]; ChangeCharacterAddressGroup(sld,Pchar.location,"reload","reload1"); LAi_SetWarriorType(sld); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); LAi_SetImmortal(sld,true); //We set them to immortal first untill the dialog is done } LAi_SetImmortal(Pchar,true); sld.Dialog.Filename = "apothecary_quest.c"; sld.Dialog.CurrentNode = "Help During Ambush"; LAi_SetActorType(Pchar); LAi_SetActorType(sld); LAi_ActorTurnToLocator(Pchar,"reload","reload1"); LAi_ActorWaitDialog(PChar, sld); LAi_ActorDialog(sld,pchar,"",1.0,0); PlayStereoSound("OBJECTS\ABORDAGE\abordage_wining.wav"); //Also the indians are set to immortal untill the dialog is done for (i = 0; i < 5; i++) { crewhelpid2 = "indian"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.(crewhelpid2))]; LAi_SetImmortal(sld,true); //We set them to immortal first untill the dialog is done } } Pchar.quest.mysterious_plants.crewmembers_helped_ambush = true; break; case "Continue Apothecary Ambush": //Set everyone mortal again //If you are playing on a lower difficulty we keep your crew immortal so they are a better help here for (i = 0; i < 5; i++) { string crewhelpid3 = "indian"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.(crewhelpid3))]; LAi_SetImmortal(sld,false); } if(GetDifficulty() >= DIFFICULTY_SEADOG) { for (i = 0; i <= sti(Pchar.quest.mysterious_plants.crewhelp); i++) { crewhelpid3 = "crewmember"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid3))]; LAi_SetImmortal(sld,false); string conditioncase2 = "CrewMember_Killed_In_Ambush"+i; Pchar.quest.(conditioncase2).win_condition.l1 = "NPC_Death"; Pchar.quest.(conditioncase2).win_condition.l1.character = sld.id; Pchar.quest.(conditioncase2).win_condition = "Apothecary Defeated Ambush"; } //We keep the one crew member immortal because that one has to talk to us again once we've won. LAi_SetWarriorType(sld); LAi_SetImmortal(sld,true); } else { //Still need to set the one who talked to us back to warrior type crewhelpid3 = "crewmember"+15; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid3))]; LAi_SetWarriorType(sld); } //Set Pchar again LAi_SetPlayerType(Pchar); LAi_SetFightMode(PChar, true); LAi_QuestDelay("Continue Apothecary Ambush 2",2); //Give the player a little bit of time to look at the situation before he gets damage again. break; case "Continue Apothecary Ambush 2": LAi_SetImmortal(Pchar,false); break; case "Crewmember defeated during ambush": pchar.ship.crew.quantity = sti(pchar.ship.crew.quantity) - 1; if(sti(pchar.ship.crew.quantity) < 1) { pchar.ship.crew.quantity = 1; //There is at least 1 crewmember back at the ship } PChar.quest.mysterious_plants.crewmembers_killed_by_indians = sti(GetAttribute(PChar,"quest.mysterious_plants.crewmembers_killed_by_indians")) + 1; break; case "Apothecary Defeated Ambush": i = sti(GetAttribute(Pchar,"quest.mysterious_plants.indians.killed")) + 5; Pchar.quest.mysterious_plants.indians.killed = i; Pchar.quest.mysterious_plants.won_ambush = true; //Have dialog with crewmember again if(CheckAttribute(Pchar,"quest.mysterious_plants.crewmembers_helped_ambush")) { string crewhelpid6 = "crewmember"+15; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid6))]; sld.Dialog.CurrentNode = "Won Ambush"; LAi_SetActorType(Pchar); LAi_SetActorType(sld); LAi_ActorWaitDialog(PChar, sld); LAi_ActorDialog(sld,pchar,"",5.0,0); AddQuestRecord("plants", 23); } else { AddQuestRecord("plants", 22); } //Delete Kill conditions for (i = 0; i <= sti(Pchar.quest.mysterious_plants.crewhelp); i++) { DeleteAttribute(&pchar,"quest.CrewMember_Killed_In_Ambush"+i); } //Unlock Doors Again Locations[FindLocation(PChar.location)].reload.l1.disable = false; Locations[FindLocation(PChar.location)].reload.l1.disable = false; //Some cleanup pchar.quest.Apothecary_Exit_Warehouse.win_condition.l1 = "ExitFromLocation"; pchar.quest.Apothecary_Exit_Warehouse.win_condition.l1.location = Pchar.location; pchar.quest.Apothecary_Exit_Warehouse.win_condition = "Apothecary Exit Warehouse 3"; break; case "Apothecary Exit Warehouse": LAi_SetPlayerType(Pchar); for (i = 0; i <= sti(Pchar.quest.mysterious_plants.crewhelp); i++) { string crewhelpid4 = "crewmember"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid4))]; LAi_SetActorType(sld); LAi_ActorRunToLocator(sld,"reload","reload1","",-1); } LAi_QuestDelay("Apothecary Exit Warehouse 2",5); break; case "Apothecary Exit Warehouse 2": for (i = 0; i <= sti(Pchar.quest.mysterious_plants.crewhelp); i++) { string crewhelpid5 = "crewmember"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.crewhelp.(crewhelpid5))]; ChangeCharacterAddressGroup(sld,"none","",""); } break; case "Apothecary Exit Warehouse 3": DeleteAttribute(&Pchar,"quest.mysterious_plants.crewhelp"); DeleteAttribute(&Pchar,"quest.mysterious_plants.indianambush"); PChar.quest.mysterious_plants.indians.safe = true; break; case "Apothecary Sneak in Warehouse": LAi_SetActorType(Pchar); LAi_ActorRunToLocator(Pchar,"goto","goto17","Apothecary Sneak in Warehouse 2",-1); break; case "Apothecary Sneak in Warehouse 2": LAi_ActorRunToLocator(Pchar,"goto","goto7","Apothecary Sneak in Warehouse 3",-1); sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.indian0)]; LAi_ActorTurnToLocator(sld,"goto","goto2"); sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.indian1)]; LAi_ActorRunToLocator(sld,"goto","goto1","",-1); break; case "Apothecary Sneak in Warehouse 3": PChar.quest.mysterious_plants.talkingindian = "indian1"; PChar.quest.mysterious_plants.node = "Indians Talk 1"; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.indian1)]; sld.Dialog.CurrentNode = PChar.quest.mysterious_plants.node; LAi_type_actor_Reset(sld); LAi_ActorSetStayMode(sld); LAi_ActorSetSitMode(PChar); LAi_ActorWaitDialog(sld, PChar); LAi_ActorDialogNow(PChar,sld,"",-1); break; case "Apothecary Sneak in Warehouse Dialog": if(PChar.quest.mysterious_plants.talkingindian == "indian1") { PChar.quest.mysterious_plants.talkingindian = "indian0" } else { PChar.quest.mysterious_plants.talkingindian = "indian1" } string talkingindian = PChar.quest.mysterious_plants.talkingindian; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.(talkingindian))]; sld.Dialog.CurrentNode = PChar.quest.mysterious_plants.node; LAi_type_actor_Reset(sld); LAi_ActorSetStayMode(sld); LAi_ActorWaitDialog(sld, PChar); LAi_ActorDialogNow(PChar,sld,"",-1); break; case "Apothecary Sneak in Warehouse Fight": for (i = 0; i < 2; i++) { string crewhelpid7 = "indian"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.(crewhelpid7))]; LAi_SetWarriorType(sld); LAi_group_MoveCharacter(sld, "Indian Ambush"); } LAi_SetPlayerType(Pchar); LAi_SetFightMode(PChar, true); LAi_group_FightGroups(LAI_GROUP_PLAYER, "Indian Ambush", true); AddQuestRecord("plants", 25); DeleteAttribute(&Pchar,"quest.mysterious_plants.indianambush"); Pchar.quest.Killed_Indian_Ambush.win_condition.l1 = "NPC_Death"; Pchar.quest.Killed_Indian_Ambush.win_condition.l1.character = sld.id; Pchar.quest.Killed_Indian_Ambush.win_condition = "Apothecary Killed Indians Afterall"; break; case "Apothecary Sneak in Warehouse Spotted": for (i = 0; i < 2; i++) { string crewhelpid8 = "indian"+i; sld = &characters[sti(Pchar.quest.mysterious_plants.indianambush.(crewhelpid8))]; LAi_SetWarriorType(sld); LAi_group_MoveCharacter(sld, "Indian Ambush"); } LAi_SetPlayerType(Pchar); LAi_SetFightMode(PChar, true); LAi_group_FightGroups(LAI_GROUP_PLAYER, "Indian Ambush", true); AddQuestRecord("plants", 27); DeleteAttribute(&Pchar,"quest.mysterious_plants.indianambush"); Pchar.quest.Killed_Indian_Ambush.win_condition.l1 = "NPC_Death"; Pchar.quest.Killed_Indian_Ambush.win_condition.l1.character = sld.id; Pchar.quest.Killed_Indian_Ambush.win_condition = "Apothecary Killed Indians Afterall"; break; case "Apothecary Killed Indians Afterall": PChar.quest.mysterious_plants.indians.safe = true; break; case "Apothecary Sneak in Warehouse Away": LAi_type_actor_Reset(PChar); LAi_ActorRunToLocator(Pchar,"reload","reload2","Apothecary Sneak in Warehouse Away 2",-1); AddQuestRecord("plants", 26); break; case "Apothecary Sneak in Warehouse Away 2": LAi_SetPlayerType(Pchar); DoQuestReloadToLocation("Greenford_suburb", "reload", "door_14", ""); DeleteAttribute(&Pchar,"quest.mysterious_plants.indianambush"); PChar.quest.mysterious_plants.indians.safe = true; PChar.quest.mysterious_plants.indians.overheard = true; AddXP(pchar, SKILL_SNEAK, 1500, XP_GROUP_OFFIC); break; case "Reported Indians without Proof": PChar.quest.mysterious_plants.reported_crime.withoutproof = true; ChangeRMRelation(PChar, GetCurrentLocationNation(), 9); AddQuestRecord("plants", 29); AddXP(pchar, SKILL_LEADERSHIP, 500, XP_GROUP_OFFIC); break; case "Reported Indians with Proof": TakenItems(pchar,"vegetal",-10); PChar.quest.mysterious_plants.reported_crime.withproof = true; ChangeRMRelation(PChar, GetCurrentLocationNation(), 14); AddQuestRecord("plants", 30); AddQuestRecord("indian_treasure", 7); CloseQuestHeader("indian_treasure"); AddXP(pchar, SKILL_LEADERSHIP, 1500, XP_GROUP_OFFIC); break; case "Apothecary Remove Baricade": DeleteAttribute(pchar,"quest.Apothecary_indian_detour"); StopBlockadeCheck("Greenford_suburb"); Building_delete(&Locations[FindLocation("Greenford_suburb")], pchar.quest.mysterious_plants.baricade.l1); Building_delete(&Locations[FindLocation("Greenford_suburb")], pchar.quest.mysterious_plants.baricade.l2); Building_delete(&Locations[FindLocation("Greenford_suburb")], pchar.quest.mysterious_plants.baricade.l3); Building_delete(&Locations[FindLocation("Greenford_suburb")], pchar.quest.mysterious_plants.baricade.l4); break; case "Prepare Apothecary Ambush Lighthouse": //Incase you leave we need to set it again pchar.quest.Arrived_At_Lighthouse.win_condition.l1 = "ExitFromLocation"; pchar.quest.Arrived_At_Lighthouse.win_condition.l1.location = "Oxbay_Lighthouse"; pchar.quest.Arrived_At_Lighthouse.win_condition = "Set Prepare Ambush Again"; //Set Captain okay again sld = characterFromID("Robert Cook"); LAi_SetStayType(sld); sld.Dialog.Filename = "apothecary_quest.c"; if(isDay()) { sld.Dialog.CurrentNode = "Arrived at Lighthouse during day"; } else { if(pchar.location.from_sea == "Oxbay_Lighthouse") { sld.Dialog.CurrentNode = "Arrived at Lighthouse by sea"; } else { sld.Dialog.CurrentNode = "Arrived at Lighthouse"; } } //Generate the ambush already for (i = 0; i < 8; i++) { indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "goto", "goto8"); attr = "indian"+i; pchar.quest.mysterious_plants.indianambush.(attr) = sld.index; LAi_SetWarriorType(sld); LAi_group_MoveCharacter(sld, "Indian Ambush"); ChangeCharacterAddressGroup(sld,"none","",""); //hide them untill you talked with the captain } break; case "Set Prepare Ambush Again": pchar.quest.Arrived_At_Lighthouse.win_condition.l1 = "location"; pchar.quest.Arrived_At_Lighthouse.win_condition.l1.location = "Oxbay_Lighthouse"; pchar.quest.Arrived_At_Lighthouse.win_condition = "Prepare Apothecary Ambush Lighthouse"; break; case "Apothecary Arrived at Lighthouse": //Some cleanup if you didn't follow the indian LAi_QuestDelay("Apothecary Remove Baricade",0); //Let's see how you did if(CheckAttribute(PChar,"quest.mysterious_plants.indians.safe") && !isDay() && pchar.location.from_sea != "Oxbay_Lighthouse") { sld = characterFromID("Robert Cook"); sld.Dialog.CurrentNode = "Depart To Columbia"; LAi_SetActorType(sld); LAi_SetActorType(pchar); LAi_ActorWaitDialog(sld, PChar); LAi_ActorDialogNow(PChar,sld,"",-1); } else { LAi_SetActorType(pchar); LAi_ActorTurnToLocator(pchar,"ships_other","ship_1"); Ship_Detonate(characterFromID("Robert Cook"), false, false); LAi_QuestDelay("Apothecary Explosion Again",2); LAi_QuestDelay("Apothecary Seen Ship Blow Up",4); } break; case "Apothecary Explosion Again": Ship_Detonate(characterFromID("Robert Cook"), false, false); break; case "Apothecary Seen Ship Blow Up": sld = characterFromID("Robert Cook"); sld.Dialog.CurrentNode = "Ship Blow Up"; LAi_ActorWaitDialog(sld, PChar); LAi_ActorDialogNow(PChar,sld,"",-1); break; case "Apothecary Indians Attack at Lighthouse": LAi_SetPlayerType(PChar); sld = characterFromID("Robert Cook"); LAi_SetImmortal(sld,true); //We don't want armada get killed by some natives. LAi_SetActorType(sld); LAi_ActorRunToLocation(sld,"reload","reload1","none","","","Apothecary Lighthouse Give Up",45.0); for (i = 0; i < 8; i++) { attr = "indian"+i; sld = &characters[sti(pchar.quest.mysterious_plants.indianambush.(attr))]; LAi_SetWarriorType(sld); if(rand(99) > 50) { TakeNItems(sld,"curare",1+rand(4)); } else { TakeNItems(sld,"tar",1+rand(4)); } ChangeCharacterAddressGroup(sld,pchar.location,"goto","goto8"); LAi_group_MoveCharacter(sld, "Indian Ambush"); } LAi_group_FightGroups(LAI_GROUP_PLAYER, "Indian Ambush", true); break; case "Apothecary Lighthouse Give Up": AddQuestRecord("plants", 31); PChar.quest.mysterious_plants.give_up = true; break; case "At Steven while Giving Up 1": sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD, "isIndian","","", 20, true, 1.0, "indian1", "reload", "reload1"); LAi_StoreFantom(sld); LAi_SetActorType(sld); LAi_SetActorType(PChar); PChar.quest.mysterious_plants.give_up.indian = sld.index; sld.Dialog.Filename = "apothecary_quest.c"; sld.Dialog.CurrentNode = "Give Up 2"; LAi_ActorWaitDialog(PChar,sld); LAi_ActorDialog(sld, PChar, "", 1.0, 0); break; case "At Steven while Giving Up 2": sld = &characters[GetCharacterIndex("Apothecary")]; LAi_SetActorType(sld); LAi_ActorSetSitMode(sld); LAi_ActorWaitDialog(PChar, sld); sld.Dialog.CurrentNode = "Give Up 3"; LAi_ActorDialog(sld, Pchar, "", 1.0, 0); break; case "At Steven while Giving Up 3": sld = &characters[sti(PChar.quest.mysterious_plants.give_up.indian)]; LAi_type_actor_Reset(sld); LAi_ActorSetStayMode(sld); LAi_ActorWaitDialog(sld, PChar); sld.Dialog.CurrentNode = "Give Up 4"; LAi_ActorDialogNow(PChar,sld,"",-1); break; case "Given Up End at Steven": sld = &characters[sti(PChar.quest.mysterious_plants.give_up.indian)]; LAi_UnStoreFantom(sld); LAi_ActorRunToLocation(sld, "reload", "reload1", "none", "", "", "", 45.0); LAi_SetPlayerType(pchar); AddQuestRecord("plants",33); CloseQuestHeader("plants"); DeleteAttribute(&pchar,"quest.mysterious_plants.guard_ship"); //JRH--> sld = &characters[GetCharacterIndex("Apothecary")]; LAi_SetSitType(sld); //dialog wasn't possible DeleteAttribute(pchar,"quest.mysterious_plants.give_up"); //dialog repeated give up thing //<--JRH break; case "Payback Indians after give up at Steven": Preprocessor_AddQuestData("amount", PChar.quest.mysterious_plants.give_up.amount); Preprocessor_AddQuestData("time", PChar.quest.mysterious_plants.give_up.time); AddQuestRecord("plants", 34); Preprocessor_Remove("amount"); Preprocessor_Remove("time"); PChar.quest.Indians_Attack_No_Opium.win_condition.l1 = "Timer"; PChar.quest.Indians_Attack_No_Opium.win_condition.l1.date.day = GetAddingDataDay(0,sti(PChar.quest.mysterious_plants.give_up.time),0); PChar.quest.Indians_Attack_No_Opium.win_condition.l1.date.month = GetAddingDataMonth(0,sti(PChar.quest.mysterious_plants.give_up.time),0); PChar.quest.Indians_Attack_No_Opium.win_condition.l1.date.year = GetAddingDataYear(0,sti(PChar.quest.mysterious_plants.give_up.time),0); PChar.quest.Indians_Attack_No_Opium.win_condition = "Failed To Deliver Opium To Indians"; sld = &characters[sti(PChar.quest.mysterious_plants.give_up.indian)]; LAi_ActorRunToLocation(sld, "reload", "reload1", "none", "", "", "Indian left steven for Cartagena", 45.0); break; case "Indian left steven for Cartagena": LAi_SetPlayerType(pchar); DeleteAttribute(&pchar,"quest.mysterious_plants.guard_ship"); LAi_QuestDelay("Place Indian In Hotel Again",0); break; case "Prepare Payback Indians with Opium": sld = &characters[sti(PChar.quest.mysterious_plants.give_up.indian)]; ChangeCharacterAddressGroup(sld,"Cartagena Hotel", "goto", "goto1"); LAi_SetStayType(sld); sld.Dialog.CurrentNode = "Pay Opium"; pchar.quest.Add_Native_In_Hotel.win_condition.l1 = "ExitFromLocation"; pchar.quest.Add_Native_In_Hotel.win_condition.l1.location = "Cartagena Hotel"; pchar.quest.Add_Native_In_Hotel.win_condition = "Place Indian In Hotel Again"; break; case "Place Indian In Hotel Again": if(sti(GetAttribute(PChar,"quest.mysterious_plants.give_up.amount"))>0) { sld = &characters[sti(PChar.quest.mysterious_plants.give_up.indian)]; ChangeCharacterAddressGroup(sld,"none", "", ""); pchar.quest.Add_Native_In_Hotel_again.win_condition.l1 = "location"; pchar.quest.Add_Native_In_Hotel_again.win_condition.l1.location = "Cartagena Hotel"; pchar.quest.Add_Native_In_Hotel_again.win_condition = "Prepare Payback Indians with Opium"; } break; case "Failed To Deliver Opium To Indians": //Place Indian Ambush pchar.vcskip = true; pchar.quest.prepare_to_die_by_indians.win_condition.l1 = "ExitFromLocation"; pchar.quest.prepare_to_die_by_indians.win_condition.l1.location = pchar.location; pchar.quest.prepare_to_die_by_indians.win_condition = "Indians will slay you now!"; break; case "Indians will slay you now!": for (i = 0; i < 1; i++) { indianid = 1+rand(2); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 20, true, 1.0, "indian"+indianid, "reload", LAi_FindRandomLocator("reload")); if(rand(99) > 50) { TakeNItems(sld,"curare",1+rand(4)); } else { TakeNItems(sld,"tar",1+rand(4)); } LAi_SetWarriorType(sld); LAi_group_MoveCharacter(sld, "Indian Ambush"); } //Lock all locators aref reloads; makearef(reloads,Locations[FindLocation(pchar.location)].reload); for(i=0;i if (!CharacterIsDead(characterFromID("Bernardo Gamboa"))) { LAi_SetActorType(characterFromID("Bernardo Gamboa")); LAi_ActorFollow(pchar, characterFromID("Bernardo Gamboa"), "", 1.5); LAi_ActorFollow(characterFromID("Bernardo Gamboa"), pchar, "to_the_ship_3", 1.5); } else { LAi_SetActorType(characterFromID("Corentin Lucay")); LAi_ActorFollow(pchar, characterFromID("Corentin Lucay"), "", 1.5); LAi_ActorFollow(characterFromID("Corentin Lucay"), pchar, "to_the_ship_3", 1.5); } // <-- KK break; case "to_the_ship_3": LAi_type_actor_Reset(pchar); // KK --> if (!CharacterIsDead(characterFromID("Bernardo Gamboa"))) { LAi_ActorWaitDialog(pchar, characterFromID("Bernardo Gamboa")); LAi_ActorDialog(characterFromID("Bernardo Gamboa"), pchar, "", 2.0, 1.0); } else { LAi_ActorWaitDialog(pchar, characterFromID("Corentin Lucay")); LAi_ActorDialog(characterFromID("Corentin Lucay"), pchar, "", 2.0, 1.0); } // <-- KK break; case "from_the_ship": DoQuestReloadToLocation("Douwesen_port", "reload", "reload2", "not_to_the_ship"); break; case "back_to_the_port": DoQuestReloadToLocation("Douwesen_port", "reload", "reload2", "player_back"); break; case "bad_fight_in_ship": // KK --> PChar.quest.BlazeKilledFightingWithGamboa.win_condition.l1 = "NPC_Death"; PChar.quest.BlazeKilledFightingWithGamboa.win_condition.l1.character = PChar.id; PChar.quest.BlazeKilledFightingWithGamboa.win_condition = "BlazeKilledFightingWithGamboa"; // <-- KK LAi_SetPlayerType(pchar); LAi_group_MoveCharacter(characterFromID("Bernardo Gamboa"), "PIRATES_ON_GAMBOA_SHIP"); LAi_group_MoveCharacter(characterFromID("Corentin Lucay"), "PIRATES_ON_GAMBOA_SHIP"); LAi_group_FightGroups("PIRATES_ON_GAMBOA_SHIP", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("PIRATES_ON_GAMBOA_SHIP", "kill_him_all_in_gamboa_ship_complete"); break; // KK --> case "BlazeKilledFightingWithGamboa": pchar.quest.to_ship_of_Bernardo_Gamboa.win_condition.l1 = "location"; pchar.quest.to_ship_of_Bernardo_Gamboa.win_condition.l1.location = "douwesen_port"; pchar.quest.to_ship_of_Bernardo_Gamboa.win_condition = "to_ship_of_Bernardo_Gamboa"; LAi_group_RemoveCheck("PIRATES_ON_GAMBOA_SHIP"); if (CharacterIsDead(characterFromID("Bernardo Gamboa"))) { ChangeCharacterAddressGroup(characterFromID("Corentin Lucay"), "Gamboa_ship", "goto", "goto4"); characters[GetCharacterIndex("Corentin Lucay")].Dialog.Filename = "Bernardo Gamboa_dialog.c"; characters[GetCharacterIndex("Corentin Lucay")].Dialog.CurrentNode = "you_again"; } else { LAi_group_MoveCharacter(characterFromID("Bernardo Gamboa"), "QC_CITIZENS"); characters[GetCharacterIndex("Bernardo Gamboa")].Dialog.CurrentNode = "you_again"; } if (!CharacterIsDead(characterFromID("Corentin Lucay"))) LAi_group_MoveCharacter(characterFromID("Corentin Lucay"), "QC_CITIZENS"); characters[GetCharacterIndex("Toff Oremans")].quest.daughter = "help_begin"; break; // <-- KK case "kill_him_all_in_gamboa_ship_complete": LAi_QuestDelay("kill_him_all_in_gamboa_ship_2_complete", 2.0); break; case "kill_him_all_in_gamboa_ship_2_complete": AddQuestRecord("daughter", 3); LAi_SetActorType(pchar); pchar.dialog.currentnode = "Teneken_in_the_ship"; LAi_ActorSelfDialog(pchar, "player_back"); break; case "teneken_in_the_ship": LAi_fade("teneken_in_the_ship_2", ""); break; case "teneken_in_the_ship_2": ChangeCharacterAddress(characterFromID("Tanneken Oremans"), "Gamboa_ship", "goto2"); LAi_SetActorType(characterFromID("Tanneken Oremans")); LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Tanneken Oremans")); LAi_ActorDialog(characterFromID("Tanneken Oremans"), pchar, "player_back", 2.0, 1.0); break; case "talk_in_gamboa_ship": LAi_Type_Actor_Reset(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Corentin Lucay")); LAi_SetActorType(characterFromID("Corentin Lucay")); LAi_ActorDialog(characterFromID("Corentin Lucay"), pchar, "", 2.0, 1.0); break; case "second_talk_in_gamboa_ship": LAi_Type_Actor_Reset(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Bernardo Gamboa")); LAi_ActorDialog(characterFromID("Bernardo Gamboa"), pchar, "", 2.0, 1.0); break; case "gamboa_died": LAi_SetPlayerType(pchar); LAi_group_MoveCharacter(characterFromID("Bernardo Gamboa"), "PIRATES_ON_GAMBOA_SHIP"); LAi_group_MoveCharacter(characterFromID("Corentin Lucay"), LAI_GROUP_PLAYER); LAi_group_FightGroups("PIRATES_ON_GAMBOA_SHIP", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("PIRATES_ON_GAMBOA_SHIP", "gamboa_died_complete"); break; case "gamboa_died_complete": LAi_QuestDelay("gamboa_died_2_complete", 1.0); break; case "gamboa_died_2_complete": if (!LAi_isDead(characterFromID("Corentin Lucay"))) { characters[GetCharacterIndex("Corentin Lucay")].dialog.currentnode = "three"; LAi_SetActorType(characterFromID("Corentin Lucay")); LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Corentin Lucay")); LAi_ActorDialog(characterFromID("Corentin Lucay"), pchar, "player_back", 2.0, 1.0); AddQuestRecord("daughter", 4); } else { LAi_QuestDelay("teneken_in_the_ship", 1.0); } break; /////////////////////////////////////////////////////////////// ///// RYS BLOOM QUEST /////////////////////////////////////////////////////////////// case "rys_becomes_officer": PlayerLostMoney(characterFromID("Rys Bloom"), 500);//MAXIMUS: new function located in Dialog_func.c characters[getCharacterIndex("Rys bloom")].quest.officertype = OFFIC_TYPE_FIRSTMATE;//MAXIMUS AddPassenger(Pchar, characterFromID("Rys Bloom"), 0); LAi_SetOfficerType(characterFromID("Rys Bloom")); characters[getCharacterIndex("Rys bloom")].location = "none"; characters[GetCharacterIndex("Rys Bloom")].Dialog.Filename = "Enc_Officer_dialog.c"; // KK characters[GetCharacterIndex("Rys Bloom")].Dialog.CurrentNode = "Hired"; // KK break; /////////////////////////////////////////////////////////////// ///// BALDEWYN COFFIER & ARNAUD MATTON /////////////////////////////////////////////////////////////// case "hire_baldewyn": LAi_Fade("", "hire_baldewyn_2"); break; case "hire_baldewyn_2": ChangeCharacterAddress(characterFromID("Baldewyn Coffier"), "none", ""); break; case "baldewyn_wait_month": //characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "wait_month"; if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.arno == "accepted") //Fix:Storekeeper:19.09 { characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "money_2"; } else { characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "wait_month"; } PChar.quest.baldewyn_wait_month_timer.win_condition.l1 = "Timer"; PChar.quest.baldewyn_wait_month_timer.win_condition.l1.date.day = GetAddingDataDay(0, 1, 0); PChar.quest.baldewyn_wait_month_timer.win_condition.l1.date.month = GetAddingDataMonth(0, 1, 0); PChar.quest.baldewyn_wait_month_timer.win_condition.l1.date.year = GetAddingDataYear(0, 1, 0); PChar.quest.baldewyn_wait_month_timer.win_condition = "baldewyn_wait_month_timer_complete"; break; case "baldewyn_wait_month_timer_complete": characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "money_3"; //Fix:Storekeeper:19.09 break; /////////////////////////////////////////////////////////////// ///// SINK THE PIRATE CORVETTE /////////////////////////////////////////////////////////////// case "joseph_claude_le_mougne_english_war_ship": characters[GetCharacterIndex("joseph claude le moigne")].quest.english_war_ship = "1"; SetCharacterRelation(GetCharacterIndex("Eng Captain Near FdF"),GetMainCharacterIndex(),RELATION_ENEMY); SetCharacterRelation(GetCharacterIndex("FalaiseDeFleur Commander"),GetCharacterIndex("Eng Captain Near FdF"),RELATION_ENEMY); Group_CreateGroup("Eng Captain Near FdF"); Group_AddCharacter("Eng Captain Near FdF", "Eng Captain Near FdF"); Group_SetGroupCommander("Eng Captain Near FdF", "Eng Captain Near FdF"); Group_SetAddress("Eng Captain Near FdF", "FalaiseDeFleur", "Quest_Ships","Quest_Ship_12"); Group_SetTaskAttack("Eng Captain Near FdF", PLAYER_GROUP, true); UpdateRelations(); SetQuestHeader("Hire_by_france_for_defeat_england_corvette"); AddQuestRecord("Hire_by_france_for_defeat_england_corvette", 1); pchar.quest.killing_pirate_near_fdf.win_condition.l1 = "NPC_death"; pchar.quest.killing_pirate_near_fdf.win_condition.l1.character = "Eng Captain Near FdF"; pchar.quest.killing_pirate_near_fdf.win_condition = "killing_pirate_near_fdf"; break; case "killing_pirate_near_fdf": characters[getCharacterindex("Joseph Claude Le Moigne")].quest.english_war_ship = "2"; break; /////////////////////////////////////////////////////////////// // ESCORT VIGILA MENDES' SHIP + ZAID MURRO'S PROBLEM // Rewritten by PB for improved reliability /////////////////////////////////////////////////////////////// case "Mendes_go_away_from_muelle_store": pchar.quest.death_of_vigila_mendes.win_condition.l1 = "NPC_death"; pchar.quest.death_of_vigila_mendes.win_condition.l1.character = "Vigila Mendes"; pchar.quest.death_of_vigila_mendes.win_condition = "death_of_vigila_mendes_complete"; LAi_SetActorType(characterFromID("Vigila Mendes")); Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "locator2", "Mendes_Leaves", 2.0); SetCompanionIndex(pchar,-1, GetCharacterIndex("Vigila Mendes")); SetCharacterRemovable(characterFromID("Vigila Mendes"), false); AddCharacterGoods(CharacterFromID("Vigila Mendes"), GOOD_EBONY, 500); pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1 = "location"; pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1.location = "Falaise_De_Fleur_Store"; pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition = "Mendes_go_away_from_muelle_store_complete"; break; case "Mendes_go_away_from_muelle_store_complete": //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 1 ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Falaise_De_Fleur_Store", "goto5"); LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar); break; case "Mendes_go_away_from_falaise_de_fleur_store": Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "reload1", "Mendes_Leaves", 2.0); RemoveCharacterGoods(characterFromID("Vigila Mendes"), GOOD_EBONY, 500); AddCharacterGoods(characterFromID("Vigila Mendes"), GOOD_LINEN, 500); pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1 = "location"; pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1.location = "Muelle_store"; pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition = "Mendes_go_away_from_falaise_de_fleur_store_complete"; break; case "Mendes_Leaves": ChangeCharacterAddress(characterFromID("Vigila Mendes"), "None", ""); break; case "vigila_to_muelle_tavern": Lai_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar); break; case "Mendes_go_away_from_falaise_de_fleur_store_complete": ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Muelle_store", "locator5"); LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar); break; case "death_of_vigila_mendes_complete": //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 2 AddQuestRecord("mendes", 4); CloseQuestHeader("mendes"); ChangeCharacterReputation(pchar, -2); break; case "mendes_away_forewer": LAi_SetActorType(characterFromID("Vigila Mendes")); LAi_ActorGoToLocation(characterFromID("Vigila Mendes"), "reload", "locator2", "none", "", "", "", 3.0); //ZAID MURRO - çàêðûâàåì âîçìîæíîñòü ïðîõîäèòü ýòîò êâåñò //ChangeCharacterAddress(characterFromID("Zaid Murro"), "none", ""); //NK disable this (dunno why it's here but it breaks Zaid) break; case "zaid_to_muelle_town": LAi_ActorGoToLocator(characterFromID("Zaid Murro"),"reload", "reload2", "zaid_to_muelle_town_complete", 2.0); break; case "zaid_to_muelle_town_complete": ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "Muelle_town_01", "goto4"); LAi_SetStayType(CharacterFromID("Zaid Murro")); break; case "revenge_for_bandits": ChangeCharacterAddress(CharacterFromID("danielle_quests_corsair_1"), "Muelle_town_exit", "locator9"); ChangeCharacterAddress(CharacterFromID("danielle_quests_corsair_2"), "Muelle_town_exit", "citizen01"); // NK --> Characters[GetCharacterIndex("danielle_quests_corsair_1")].greeting = "Gr_isla muelle soldier"; Characters[GetCharacterIndex("danielle_quests_corsair_2")].greeting = "Gr_isla muelle soldier"; Characters[GetCharacterIndex("danielle_quests_corsair_3")].greeting = "Gr_isla muelle soldier"; Characters[GetCharacterIndex("danielle_quests_corsair_4")].greeting = "Gr_isla muelle soldier"; // Julian Characters[GetCharacterIndex("danielle_quests_corsair_5")].greeting = "Gr_isla muelle soldier"; // Julian LAi_SetActorType(CharacterFromID("danielle_quests_corsair_1")); Lai_ActorWaitDialog(characterFromID("danielle_quests_corsair_1"), pchar); LAi_SetActorType(CharacterFromID("danielle_quests_corsair_2")); // Julian Lai_ActorWaitDialog(characterFromID("danielle_quests_corsair_2"), pchar); // Julian // NK <-- break; case "fight_with_bandits_in_muelle_town_exit": AddQuestrecord("murro", 2); LAi_group_MoveCharacter(characterFromID("danielle_quests_corsair_1"), "BANDITS"); LAi_group_MoveCharacter(characterFromID("danielle_quests_corsair_2"), "BANDITS"); LAi_group_FightGroups("BANDITS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("BANDITS", "fight_with_other_bandits_in_muelle_town_exit"); //NK fix break; case "fight_with_other_bandits_in_muelle_town_exit": DisableFastTravel(true); DisableMenuLaunch(true); DoQuestCheckDelay("fight_with_other_bandits_in_muelle_town_exit_2", 3.0); break; case "fight_with_other_bandits_in_muelle_town_exit_2": DisableFastTravel(false); DisableMenuLaunch(false); AddQuestrecord("murro", 3); ReanimateCharacter("danielle_quests_corsair_1"); ReanimateCharacter("danielle_quests_corsair_2"); ReanimateCharacter("danielle_quests_corsair_3"); // Julian --> ChangeCharacterAddressGroup(CharacterFromID("danielle_quests_corsair_4"), "none", "reload", "reload1"); ChangeCharacterAddressGroup(CharacterFromID("danielle_quests_corsair_5"), "none", "reload", "reload1"); LAi_SetActorType(CharacterFromID("danielle_quests_corsair_4")); LAi_SetActorType(CharacterFromID("danielle_quests_corsair_5")); ChangeCharacterAddressGroup(CharacterFromID("danielle_quests_corsair_3"), "Muelle_town_exit", "reload", "reload1"); ChangeCharacterAddressGroup(CharacterFromID("danielle_quests_corsair_4"), "Muelle_town_exit", "reload", "reload1"); ChangeCharacterAddressGroup(CharacterFromID("danielle_quests_corsair_5"), "Muelle_town_exit", "reload", "reload1"); LAi_ActorFollow(CharacterFromID("danielle_quests_corsair_4"), CharacterFromID("danielle_quests_corsair_3"), "", 20); LAi_ActorFollow(CharacterFromID("danielle_quests_corsair_5"), CharacterFromID("danielle_quests_corsair_3"), "", 30); characters[GetCharacterIndex("Zaid Murro")].quest.bandits = "2"; LAi_SetActorType(CharacterFromID("danielle_quests_corsair_3")); LAi_ActorDialog(CharacterFromID("danielle_quests_corsair_3"), pchar, "", 4.0, 1.0); // Julian <-- break; case "fight_with_other_bandits_in_muelle_town_exit_3": LAi_group_MoveCharacter(characterFromID("danielle_quests_corsair_3"), "BANDITS"); // Julian LAi_group_MoveCharacter(characterFromID("danielle_quests_corsair_4"), "BANDITS"); // Julian LAi_group_MoveCharacter(characterFromID("danielle_quests_corsair_5"), "BANDITS"); // Julian LAi_group_FightGroups("BANDITS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("BANDITS", "fight_with_other_bandits_in_muelle_town_exit_4"); //NK fix break; case "fight_with_other_bandits_in_muelle_town_exit_4": AddQuestrecord("murro", 4); characters[GetCharacterIndex("Zaid Murro")].quest.bandits = "3"; break; /////////////////////////////////////////////////////////////// // HELP THE BOATSWAIN + HELP THE LADY (CatalinaThePirate FB Quest) /////////////////////////////////////////////////////////////// case "story_fred_bob_fired": RemoveOfficersIndex(pchar, GetCharacterIndex("Fred Bob")); RemovePassenger(pchar, characterFromID("Fred Bob")); LAi_ActorGoToLocation(characterFromID("Fred Bob"), "Muelle_port", "goto", "goto9", "", "", "", 25.0); LAi_QuestDelay("story_fred_bob_fired2", 25.0); break; case "story_fred_bob_fired2": ChangeCharacterAddress(characterFromID("Fred Bob"), "Muelle_port", "goto9"); LAi_SetCitizenType(characterFromID("Fred Bob")); Characters[GetCharacterIndex("Fred Bob")].Dialog.CurrentNode = "come_back_fredbob"; break; case "story_fred_bob_fired3": Characters[GetCharacterIndex("Fred Bob")].Dialog.CurrentNode = "come_back_fredbob2"; break; case "Story_gotoQC": ChangeCharacterAddressGroup(characterFromID("Armand Delacroix"), "QC_tavern", "Sit", "Sit8"); pchar.quest.estrella_qc = "here"; break; case "Story_SitAndDrinkWithDelacroix": LAi_Fade("Story_SitAndDrinkWithDelacroix_2", "Story_DelacroixStartTalkingInTavern"); break; case "Story_SitAndDrinkWithDelacroix_2": LAi_SetActorType(pchar); LAi_ActorSetSitMode(pchar); ChangeCharacterAddressGroup(pchar, "QC_tavern", "sit", "sit4"); break case "Story_DelacroixStartTalkingInTavern": SetCurrentTime(23, 0); LAi_ActorDialogNow(Pchar, characterFromID("Armand Delacroix"), "", -1); break; case "Story_SitAndDrinkWithDelacroix3": LAi_Fade("Story_SitAndDrinkWithDelacroix_4", "Story_DelacroixGiddy"); break; case "Story_SitAndDrinkWithDelacroix_4": LAi_SetActorType(characterFromID("Armand Delacroix")); ChangeCharacterAddress(characterFromID("Armand Delacroix"), "QC_port", "goto19"); DoQuestReloadToLocation("QC_port", "goto", "goto18", "Story_DelacroixGiddy"); break case "Story_DelacroixGiddy": SetCurrentTime(4, 0); LAi_ActorTurnToCharacter(characterFromID("Armand Delacroix"), PChar); LAi_ActorDialog(characterfromID("Armand Delacroix"), pchar, "", 1.0, 1.0); Characters[GetCharacterIndex("Armand Delacroix")].Dialog.CurrentNode = "giddy"; break; case "Story_Exit_StageLeft": DeleteQuestAttribute("estrella_qc"); LAi_ActorRunToLocation(characterFromID("Armand Delacroix"), "reload", "reload3", "none", "", "", "", 45.0); break; case "Story_Estrella_Reload_to_IMGate": ChangeCharacterAddressGroup(characterFromID("Estrella De Alencar"), "none", "none", "none"); SetCurrentTime(1, 0); Locations[FindLocation("Muelle_town_03")].vcskip = true; // NK StoreOfficers(pchar.id); // KK DoQuestReloadToLocation("Muelle_town_01", "reload", "reload14", "Story_Estrella_Afraid"); break; case "Story_Estrella_Afraid": LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorWaitDialog(Pchar, characterFromID("Estrella Disguised")); LAi_ActorDialog(characterFromID("Estrella Disguised"), Pchar, "", 7.0, 0); break; case "Story_EstrellaBecomesOfficer": SetOfficersIndex(Pchar, 3, GetCharacterIndex("Estrella Disguised")); characters[GetCharacterIndex("Estrella Disguised")].dialog.currentnode = "reunited"; Locations[FindLocation("Muelle_shore")].vcskip = true; // KK --> homelocation = Characters[GetCharacterIndex("spain_soldier_05")].location; homegroup = Characters[GetCharacterIndex("spain_soldier_05")].location.group; homelocator = Characters[GetCharacterIndex("spain_soldier_05")].location.locator; pchar.quest.Story_stop_estrella.win_condition.l1 = "locator"; pchar.quest.Story_stop_estrella.win_condition.l1.location = homelocation; pchar.quest.Story_stop_estrella.win_condition.l1.locator_group = homegroup; pchar.quest.Story_stop_estrella.win_condition.l1.locator = homelocator; pchar.quest.Story_stop_estrella.win_condition = "Story_stop_estrella"; Locations[FindLocation(homelocation)].locators_radius.(homegroup).(homelocator).old = Locations[FindLocation(homelocation)].locators_radius.(homegroup).(homelocator); Locations[FindLocation(homelocation)].locators_radius.(homegroup).(homelocator) = 5.0; // <-- KK break; case "Story_stop_estrella": LAi_SetActorType(characterFromID("spain_soldier_05")); characters[GetCharacterIndex("spain_soldier_05")].dialog.currentnode = "stop_estrella"; LAi_ActorWaitDialog(Pchar, characterFromID("spain_soldier_05")); LAi_ActorDialogNow(characterFromID("spain_soldier_05"), pchar, "Story_stop_estrella1", -1); break; case "Story_stop_estrella1": // KK --> homelocation = Characters[GetCharacterIndex("spain_soldier_05")].location; homegroup = Characters[GetCharacterIndex("spain_soldier_05")].location.group; homelocator = Characters[GetCharacterIndex("spain_soldier_05")].location.locator; Locations[FindLocation(homelocation)].locators_radius.(homegroup).(homelocator) = Locations[FindLocation(homelocation)].locators_radius.(homegroup).(homelocator).old; DeleteAttribute(&Locations[FindLocation(homelocation)], "locators_radius." + homegroup + "." +homelocator + ".old"); // <-- KK LAi_SetGuardianType(characterFromID("spain_soldier_05")); LAi_group_MoveCharacter(characterFromID("spain_soldier_05"), "SPAIN_SOLDIERS"); Pchar.quest.Story_EstrellaReunited.win_condition.l1 = "location"; Pchar.quest.Story_EstrellaReunited.win_condition.l1.location = "Muelle_town_exit"; Pchar.quest.Story_EstrellaReunited.win_condition = "estrella_disguised_exit_run"; break; case "estrella_disguised_exit_run": LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorWaitDialog(Pchar, characterFromID("Estrella Disguised")); characters[GetCharacterIndex("Estrella Disguised")].dialog.currentnode = "close_call"; LAi_ActorDialog(characterFromID("Estrella Disguised"), Pchar, "", 1.0, 0); ChangeCharacterAddress(characterFromID("Armand Delacroix"), "Muelle_shore", "goto8"); break; case "estrella_disguised_exit_run1": LAi_SetOfficerType(characterFromID("Estrella Disguised")); Pchar.quest.Story_EstrellaReunited.win_condition.l1 = "location"; Pchar.quest.Story_EstrellaReunited.win_condition.l1.location = "Muelle_shore"; Pchar.quest.Story_EstrellaReunited.win_condition = "estrella_disguised_exit_run2"; break; case "estrella_disguised_exit_run2": LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorWaitDialog(Pchar, characterFromID("Estrella Disguised")); characters[GetCharacterIndex("Estrella Disguised")].dialog.currentnode = "reunited"; LAi_ActorDialog(characterFromID("Estrella Disguised"), Pchar, "", 4.0, 0); break; case "estrella_disguised_attack1": LAi_group_FightGroups("SPAIN_SOLDIERS", LAI_GROUP_PLAYER, true); DeleteAttribute(&Locations[FindLocation("Muelle_town_03")],"vcskip"); LAi_group_Register("FBQ_SPAIN_SOLDIERS"); LAi_group_Register("FBQ_Armand"); LAi_group_MoveCharacter(characterFromID("Armand Delacroix"), "FBQ_Armand"); LAi_group_SetRelation("FBQ_SPAIN_SOLDIERS", "FBQ_Armand", LAI_GROUP_NEUTRAL); LAi_QuestDelay("estrella_disguised_attack2", 1.0); break; case "estrella_disguised_attack2": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); LAi_group_FightGroups("FBQ_SPAIN_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_QuestDelay("estrella_disguised_attack3", 1.0); break; case "estrella_disguised_attack3": characters[GetCharacterIndex("Estrella Disguised")].dialog.currentnode = "reunited2"; LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorWaitDialog(Pchar, characterFromID("Estrella Disguised")); LAi_ActorDialog(characterFromID("Estrella Disguised"), Pchar, "", 4.0, 0); DeleteAttribute(&Locations[FindLocation("Muelle_shore")],"vcskip"); break; case "estrella_disguised_attack4": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "goto", "goto7"); // PB LAi_group_MoveCharacter(sld, "FBQ_SPAIN_SOLDIERS"); LAi_group_FightGroups("FBQ_SPAIN_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_SetOfficerType(characterFromID("Estrella Disguised")); LAi_QuestDelay("estrella_disguised_attack5", 6.0); break; case "estrella_disguised_attack5": LAi_group_SetRelation("FBQ_SPAIN_SOLDIERS", "FBQ_Armand", LAI_GROUP_ENEMY); LAi_group_FightGroups("FBQ_SPAIN_SOLDIERS", "FBQ_Armand", true); LAi_QuestDelay("Story_Reunited2", 3.0); break; case "Story_Reunited2": LAi_group_SetCheck("FBQ_SPAIN_SOLDIERS", "Story_Reunited3"); break; case "Story_Reunited3": characters[GetCharacterIndex("Armand Delacroix")].dialog.currentnode = "reunited_flight"; LAi_SetActorType(characterFromID("Armand Delacroix")); LAi_ActorWaitDialog(Pchar, characterFromID("Armand Delacroix")); LAi_ActorDialog(characterFromID("Armand Delacroix"), Pchar, "", 20.0, 0); break; case "Story_estrella_farewell": characters[GetCharacterIndex("Estrella Disguised")].dialog.currentnode = "estrella_farewell"; LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorWaitDialog(Pchar, characterFromID("Estrella Disguised")); LAi_ActorDialog(characterFromID("Estrella Disguised"), Pchar, "", 4.0, 0); break; case "Story_Exit_StageRight": RemoveOfficersIndex(pchar, GetCharacterIndex("Estrella Disguised")); RemovePassenger(pchar, characterFromID("Estrella Disguised")); RestoreOfficers(pchar.id); // KK LAi_SetActorType(characterFromID("Armand Delacroix")); LAi_SetActorType(characterFromID("Estrella Disguised")); LAi_ActorRunToLocation(characterFromID("Armand Delacroix"), "goto", "goto11", "none", "", "", "", 20.0); LAi_ActorRunToLocation(characterFromID("Estrella Disguised"), "goto", "goto11", "none", "", "", "", 20.0); LAi_QuestDelay("Story_Armand_and_Estrella_Escape", 20.0); break; case "Story_Armand_and_Estrella_Escape": ChangeCharacterAddress(characterFromID("Armand Delacroix"), "", ""); ChangeCharacterAddress(characterFromID("Estrella Disguised"), "", ""); LAi_group_SetRelation("SPAIN_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL); LAi_group_SetRelation("FBQ_SPAIN_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL); LAi_group_FightGroups("FBQ_SPAIN_SOLDIERS", LAI_GROUP_PLAYER, false); break; case "Story_Armand_refused": LAi_SetPlayerType(Pchar); ChangeCharacterAddress(pchar, "qc_tavern", "goto5"); break; /////////////////////////////////////////////////////////////// // Hitman Edited by SCM /////////////////////////////////////////////////////////////// case "Hit_start": SetEnterLocationQuest("Conceicao_tavern", "Hit_start_check", 0); chrEnableReloadLocator("Muelle_town_01", "Reload21", 0); chrEnableReloadLocator("Greenford_town", "reload5", 0); chrEnableReloadLocator("Conceicao_town", "reload15", 0); chrEnableReloadLocator("Hit_house", "Reload2", 0); //SCM chrEnableReloadLocator("Hit_study", "Reload1", 0); //SCM chrEnableReloadLocator("Hit_study", "Reload2_back", 0); //SCM chrEnableReloadLocator("Hit_passage", "Reload10", 0); //SCM // NK --> PChar.quest.Hit_Rumor.win_condition.l1 = "rank"; PChar.quest.Hit_Rumor.win_condition.l1.character = Pchar.id; PChar.quest.Hit_Rumor.win_condition.l1.value = 5; PChar.quest.Hit_Rumor.win_condition.l1.operation = ">="; PChar.quest.Hit_Rumor.win_condition = "Hit_Rumor"; break; case "Hit_Rumor": SetRumourState("Hitman_start", true); // NK <-- break; case "Hit_start_check": if(makeint(PChar.rank) >= 5) { SetRumourState("Hitman_start", false); // NK StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_start_check"); bDisableFastReload = 1; ChangeCharacterAddressGroup(CharacterFromID("Ambroz Bricenos"), "Conceicao_tavern", "goto", "goto4"); ChangeCharacterAddressGroup(CharacterFromID("Mateus Santos"), "Hit_house", "goto", "goto7"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Desiree' Muerte"), "Hit_house", "goto", "goto3"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug2"), "Hit_house", "goto", "goto4"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug3"), "Hit_house", "goto", "goto5"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug4"), "Hit_house", "goto", "goto1"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug5"), "Hit_house", "goto", "goto9"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug6"), "Hit_house", "goto", "goto6"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug7"), "Hit_house", "goto", "goto2"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug8"), "Hit_house", "goto", "goto8"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug9"), "Hit_passage", "sit", "sit1"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Camille Leone"), "Hit_passage", "goto", "goto9"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Pris1"), "Hit_passage", "goto", "goto1"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Pris2"), "Hit_passage", "goto", "goto2"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Pris3"), "Hit_passage", "goto", "goto3"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Pris4"), "Hit_passage", "goto", "goto4"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Geffrey Bampfylde"), "Hit_house1", "goto", "goto6"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Bucho"), "Hit_house1", "goto", "goto1"); //SCM ChangeCharacterAddressGroup(CharacterFromID("Amerigo Vieira"), "Hit_house2", "goto", "goto4"); LAi_SetImmortal(CharacterFromID("Ambroz Bricenos"), 1); LAi_SetImmortal(CharacterFromID("Mateus Santos"), 1); LAi_SetImmortal(CharacterFromID("Desiree' Muerte"), 1); //SCM LAi_SetImmortal(CharacterFromID("Thug2"), 1); LAi_SetImmortal(CharacterFromID("Thug3"), 1); LAi_SetImmortal(CharacterFromID("Thug9"), 1); LAi_SetImmortal(CharacterFromID("Camille Leone"), 1); LAi_SetImmortal(CharacterFromID("Geffrey Bampfylde"), 1); LAi_SetImmortal(CharacterFromID("Bucho"), 1); LAi_SetImmortal(CharacterFromID("Pepin Bertillon"), 1); LAi_SetImmortal(CharacterFromID("Bertillon's guard1"), 1); LAi_SetImmortal(CharacterFromID("Bertillon's guard2"), 1); LAi_SetImmortal(CharacterFromID("Amerigo Vieira"), 1); LAi_SetImmortal(CharacterFromID("Vito Leone"), 1); LAi_SetWarriorType(CharacterFromID("Mateus Santos")); LAi_SetWarriorType(CharacterFromID("Desiree' Muerte")); //SCM LAi_SetWarriorType(CharacterFromID("Thug2")); LAi_SetWarriorType(CharacterFromID("Thug3")); //SCM LAi_SetWarriorType(CharacterFromID("Thug4")); //SCM LAi_SetWarriorType(CharacterFromID("Thug5")); //SCM LAi_SetWarriorType(CharacterFromID("Thug6")); //SCM LAi_SetWarriorType(CharacterFromID("Thug7")); //SCM LAi_SetWarriorType(CharacterFromID("Thug8")); //SCM LAi_warrior_SetStay(CharacterFromID("Mateus Santos"), 1); LAi_warrior_SetStay(CharacterFromID("Desiree' Muerte"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug2"), 1); LAi_warrior_SetStay(CharacterFromID("Thug3"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug4"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug5"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug6"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug7"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Thug8"), 1); //SCM LAi_warrior_SetStay(CharacterFromID("Camille Leone"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Mateus Santos"), 1); LAi_warrior_DialogEnable(CharacterFromID("Desiree' Muerte"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug2"), 1); LAi_warrior_DialogEnable(CharacterFromID("Thug3"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug4"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug5"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug6"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug7"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug8"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug9"), 1); //SCM LAi_warrior_DialogEnable(CharacterFromID("Camille Leone"), 1); //SCM //LAi_group_MoveCharacter(CharacterFromID("Mateus Santos"), "santos_group"); //LAi_group_MoveCharacter(CharacterFromID("Desiree' Muerte"), "santos_group"); //SCM LAi_group_MoveCharacter(CharacterFromID("Thug2"), "santos_group"); //LAi_group_MoveCharacter(CharacterFromID("Thug3"), "santos_group"); LAi_group_MoveCharacter(CharacterFromID("Thug4"), "santos_group"); //SCM LAi_group_MoveCharacter(CharacterFromID("Thug5"), "santos_group"); //SCM LAi_group_MoveCharacter(CharacterFromID("Thug6"), "santos_group"); //SCM LAi_group_MoveCharacter(CharacterFromID("Thug7"), "santos_group"); //SCM LAi_group_MoveCharacter(CharacterFromID("Thug8"), "santos_group"); //SCM LAi_group_SetRelation("santos_group", "santos_group", LAI_GROUP_FRIEND); LAi_SetHuberType(characterfromID("Thug9")); //SCM LAi_SetActorType(CharacterFromID("Ambroz Bricenos")); Characters[GetCharacterIndex("Ambroz Bricenos")].dialog.currentnode = "wetjob"; LAi_ActorDialog(CharacterFromID("Ambroz Bricenos"), PChar, "", 15.0, -1); } break; case "Hit_END": Characters[GetCharacterIndex("Ambroz Bricenos")].Location = "none"; Characters[GetCharacterIndex("Mateus Santos")].Location = "none"; Characters[GetCharacterIndex("Thug2")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug4")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug5")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug6")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug7")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug8")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug9")].Location = "none"; //SCM Characters[GetCharacterIndex("Pris1")].Location = "none"; //SCM Characters[GetCharacterIndex("Pris2")].Location = "none"; //SCM Characters[GetCharacterIndex("Pris3")].Location = "none"; //SCM Characters[GetCharacterIndex("Pris4")].Location = "none"; //SCM Characters[GetCharacterIndex("Camille Leone")].Location = "none"; //SCM Characters[GetCharacterIndex("Geffrey Bampfylde")].Location = "none"; Characters[GetCharacterIndex("Bucho")].Location = "none"; Characters[GetCharacterIndex("Pepin Bertillon")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard1")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard2")].Location = "none"; Characters[GetCharacterIndex("Amerigo Vieira")].Location = "none"; Characters[GetCharacterIndex("Vito Leone")].Location = "none"; chrEnableReloadLocator("Muelle_town_01", "Reload21", 0); chrEnableReloadLocator("Greenford_town", "reload5", 0); chrEnableReloadLocator("Conceicao_town", "reload15", 0); PChar.quest.Hitman = "end"; PChar.quest.Hitman.over = "yes"; CloseQuestHeader("Hitman"); break; case "Hit_END_timer": Characters[GetCharacterIndex("Ambroz Bricenos")].Location = "none"; Characters[GetCharacterIndex("Mateus Santos")].Location = "none"; Characters[GetCharacterIndex("Desiree' Muerte")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug2")].Location = "none"; Characters[GetCharacterIndex("Thug3")].Location = "none"; Characters[GetCharacterIndex("Thug4")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug5")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug6")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug7")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug8")].Location = "none"; //SCM Characters[GetCharacterIndex("Thug9")].Location = "none"; //SCM Characters[GetCharacterIndex("Camille Leone")].Location = "none"; //SCM Characters[GetCharacterIndex("Geffrey Bampfylde")].Location = "none"; Characters[GetCharacterIndex("Bucho")].Location = "none"; Characters[GetCharacterIndex("Pepin Bertillon")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard1")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard2")].Location = "none"; Characters[GetCharacterIndex("Amerigo Vieira")].Location = "none"; Characters[GetCharacterIndex("Vito Leone")].Location = "none"; chrEnableReloadLocator("Muelle_town_01", "Reload21", 0); chrEnableReloadLocator("Greenford_town", "reload5", 0); chrEnableReloadLocator("Conceicao_town", "reload15", 0); PChar.quest.Hitman = "end"; //Add journal entry AddQuestRecord("Hitman", 21); CloseQuestHeader("Hitman"); break; case "Hit_timer1": PChar.quest.Hit_timer1.win_condition.l1 = "Timer"; PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer1.win_condition = "Hit_END_timer"; break; case "Hit_timer2": PChar.quest.Hit_timer2.win_condition.l1 = "Timer"; PChar.quest.Hit_timer2.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer2.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Hit_timer2.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer2.win_condition = "Hit_END_timer"; break; case "Hit_timer3": PChar.quest.Hit_timer3.win_condition.l1 = "Timer"; PChar.quest.Hit_timer3.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer3.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Hit_timer3.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer3.win_condition = "Hit_END_timer"; break; case "Hit_timer4": PChar.quest.Hit_timer4.win_condition.l1 = "Timer"; PChar.quest.Hit_timer4.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer4.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Hit_timer4.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer4.win_condition = "Hit_END_timer"; break; case "Hit_timer5": PChar.quest.Hit_timer5.win_condition.l1 = "Timer"; PChar.quest.Hit_timer5.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer5.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0); PChar.quest.Hit_timer5.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0); //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task PChar.quest.Hit_timer5.win_condition = "Hit_END_timer"; break; case "Hit_refused_Ambroz": // dialog exit from Ambroz // PB: Allow starting the quest again --> characters[GetCharacterIndex("Ambroz Bricenos")].dialog.currentnode = "wetjob2"; LAi_SetCitizenType(characterFromID("Ambroz Bricenos")); EndQuestMovie();TrackQuestMovie("end","Hit_refused_Ambroz_end"); bDisableFastReload = 0; // PB: Allow starting the quest again <-- DeleteEnterLocationQuest("Conceicao_tavern", "Hit_start_check"); /* LAi_ActorGoToLocation(CharacterFromID("Ambroz Bricenos"), "reload", "reload1", "none", "", "", "Hit_refused_Ambroz_end", 3.0); break; case "Hit_refused_Ambroz_end": EndQuestMovie();TrackQuestMovie("end","Hit_refused_Ambroz_end"); bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0);*/ break; case "Hit_start1": // dialog exit from Ambroz DeleteEnterLocationQuest("Conceicao_tavern", "Hit_start_check"); PChar.quest.Hitman = "goto_mateus"; LAi_ActorGoToLocation(CharacterFromID("Ambroz Bricenos"), "reload", "reload1", "Conceicao_shore_02", "goto", "citizen06", "Hit_start2", 3.0); chrEnableReloadLocator("Muelle_town_01", "reload21", 1); //Add journal entry SetQuestHeader("Hitman"); AddQuestRecord("Hitman", 1); break; case "Hit_start2": EndQuestMovie();TrackQuestMovie("end","Hit_start2"); bDisableFastReload = 0; LAi_SetWarriorType(CharacterFromID("Ambroz Bricenos")); LAi_warrior_SetStay(CharacterFromID("Ambroz Bricenos"), 1); LAi_warrior_DialogEnable(CharacterFromID("Ambroz Bricenos"), 1); PChar.quest.Hit_start3.win_condition.l1 = "location"; PChar.quest.Hit_start3.win_condition.l1.location = "Hit_house"; PChar.quest.Hit_start3.win_condition = "Hit_start3"; break; case "Hit_start3": StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_start3"); LAi_SetActorType(PChar); Characters[GetCharacterIndex("Mateus Santos")].dialog.currentnode = "start"; LAi_ActorDialog(PChar, CharacterFromID("Mateus Santos"), "", 10.0, -1); break; case "Hit_refused_Mateus": // dialog exit from Mateus EndQuestMovie();TrackQuestMovie("end","Hit_refused_Mateus"); bDisableFastReload = 1; LAi_SetPlayerType(PChar); LAi_warrior_DialogEnable(CharacterFromID("Mateus Santos"), 0); LAi_warrior_DialogEnable(CharacterFromID("Desiree' Muerte"), 4); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug2"), 0); LAi_warrior_DialogEnable(CharacterFromID("Thug3"), 0); LAi_warrior_DialogEnable(CharacterFromID("Thug4"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug5"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug6"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug7"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug8"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Thug9"), 0); //SCM LAi_warrior_DialogEnable(CharacterFromID("Camille Leone"), 0); //SCM PChar.quest.Hit_refused_Mateus_end.win_condition.l1 = "location"; PChar.quest.Hit_refused_Mateus_end.win_condition.l1.character = PChar.id; PChar.quest.Hit_refused_Mateus_end.win_condition.l1.location = "Muelle_town_01"; PChar.quest.Hit_refused_Mateus_end.win_condition = "Hit_refused_Mateus_end"; break; case "Hit_refused_Mateus_end": bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //Add journal entry AddQuestRecord("Hitman", 20); break; case "Hit_die": // dialog exit from Mateus EndQuestMovie();TrackQuestMovie("end","Hit_die"); LAi_SetPlayerType(PChar); StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_die"); bDisableFastReload = 1; LAi_LocationFightDisable(&Locations[FindLocation("Hit_house")], 0); //SCM Fight ok LAi_SetImmortal(CharacterFromID("Mateus Santos"), 1); LAi_SetImmortal(CharacterFromID("Desiree' Muerte"), 1); //SCM LAi_SetImmortal(CharacterFromID("Thug2"), 1); LAi_SetImmortal(CharacterFromID("Thug3"), 1); LAi_SetActorType(CharacterFromID("Mateus Santos")); LAi_SetActorType(CharacterFromID("Desiree' Muerte")); //SCM LAi_SetActorType(CharacterFromID("Thug2")); LAi_SetActorType(CharacterFromID("Thug3")); LAi_SetActorType(CharacterFromID("Thug4")); //SCM LAi_SetActorType(CharacterFromID("Thug5")); //SCM LAi_SetActorType(CharacterFromID("Thug6")); //SCM LAi_SetActorType(CharacterFromID("Thug7")); //SCM LAi_SetActorType(CharacterFromID("Thug8")); //SCM LAi_SetActorType(CharacterFromID("Thug9")); //SCM LAi_SetActorType(CharacterFromID("Camille Leone")); //SCM LAi_ActorAttack(CharacterFromID("Mateus Santos"), PChar, ""); LAi_ActorAttack(CharacterFromID("Desiree' Muerte"), PChar, "");//SCM LAi_ActorAttack(CharacterFromID("Thug2"), PChar, ""); LAi_ActorAttack(CharacterFromID("Thug3"), PChar, ""); LAi_ActorAttack(CharacterFromID("Thug4"), PChar, ""); //SCM LAi_ActorAttack(CharacterFromID("Thug5"), PChar, ""); //SCM LAi_ActorAttack(CharacterFromID("Thug6"), PChar, ""); //SCM LAi_ActorAttack(CharacterFromID("Thug7"), PChar, ""); //SCM LAi_ActorAttack(CharacterFromID("Thug8"), PChar, ""); //SCM break; case "Hit_mark_Ambroz": // dialog exit from Mateus EndQuestMovie();TrackQuestMovie("end","Hit_mark_Ambroz"); LAi_SetPlayerType(PChar); PChar.quest.Hitman = "mark_ambroz"; LAi_SetImmortal(CharacterFromID("Ambroz Bricenos"), 0); LAi_SetCheckMinHP(CharacterFromID("Ambroz Bricenos"), 0.0, 0, "Hit_killed_Ambroz"); //TIMER 1 LAi_QuestDelay("Hit_timer1", 0.0); //Add journal entry AddQuestRecord("Hitman", 2); LAi_LocationFightDisable(&Locations[FindLocation("Hit_house")], 1); //Stops fight SCM LAi_SetHuberType(characterfromID("Mateus Santos")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Mateus Santos"), "Hit_house", "sit", "sit1");//SCM break; case "Hit_kill_Ambroz": // dialog exit from Ambroz StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_kill_Ambroz"); bDisableFastReload = 1; LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Ambroz Bricenos")); LAi_ActorAttack(CharacterFromID("Ambroz Bricenos"), PChar, ""); break; case "Hit_killed_Ambroz": EndQuestMovie();TrackQuestMovie("end","Hit_killed_Ambroz"); bDisableFastReload = 0; PChar.quest.Hitman = "hit_ambroz"; Characters[GetCharacterIndex("Ambroz Bricenos")].Location = "none"; //KILL TIMER 1 Pchar.quest.Hit_timer1.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 3); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 2500); } else { AddPartyExp(pchar, 2500); } break; case "Hit_spared_Ambroz": // dialog exit from Ambroz StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_spared_Ambroz"); bDisableFastReload = 1; LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Ambroz Bricenos")); LAi_ActorRunToLocation(CharacterFromID("Ambroz Bricenos"), "reload", "locator3", "none", "", "", "Hit_spared_Ambroz_end", 7.0); break; case "Hit_spared_Ambroz_end": EndQuestMovie();TrackQuestMovie("end","Hit_spared_Ambroz_end"); bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER 1 Pchar.quest.Hit_timer1.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 4); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); } else { AddPartyExp(pchar, 2500); } break; case "Hit_mark_Geffrey": // dialog exit from Mateus PChar.quest.Hitman = "mark_geffrey"; PChar.quest.Hit_Geffrey.win_condition.l1 = "location"; PChar.quest.Hit_Geffrey.win_condition.l1.character = PChar.id; PChar.quest.Hit_Geffrey.win_condition.l1.location = "Hit_house1"; PChar.quest.Hit_Geffrey.win_condition = "Hit_Geffrey"; chrEnableReloadLocator("Greenford_town", "reload5", 1); //TIMER 2 LAi_QuestDelay("Hit_timer2", 0.0); //Add journal entry AddQuestRecord("Hitman", 5); break; case "Hit_Geffrey": StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_Geffrey"); bDisableFastReload = 1; LAi_LocationFightDisable(&Locations[FindLocation("Hit_house1")], 1); LAi_SetActorType(PChar); LAi_SetActorType(CharacterFromID("Bucho")); LAi_ActorTurnToCharacter(CharacterFromID("Bucho"), PChar); LAi_ActorDialog(PChar, CharacterFromID("Geffrey Bampfylde"), "", 2.0, -1); break; case "Hit_talk_to_Bucho": // dialog exit from Geffrey LAi_SetPlayerType(PChar); LAi_ActorDialog(CharacterFromID("Bucho"), PChar, "", 1.0, -1); break; case "Hit_kill_Bucho": // dialog exit from Bucho LAi_LocationFightDisable(&Locations[FindLocation("Hit_house1")], 0); LAi_SetImmortal(CharacterFromID("Bucho"), 0); LAi_ActorAttack(CharacterFromID("Bucho"), PChar, ""); LAi_SetCheckMinHP(CharacterFromID("Bucho"), 0.0, 0, "Hit_killed_Bucho"); break; case "Hit_killed_Bucho": Characters[GetCharacterIndex("Bucho")].Location = "none"; Characters[GetCharacterIndex("Geffrey Bampfylde")].dialog.currentnode = "plea"; LAi_SetActorType(CharacterFromID("Geffrey Bampfylde")); LAi_SetStayType(PChar); LAi_SetPlayerType(PChar); LAi_ActorDialog(CharacterFromID("Geffrey Bampfylde"), PChar, "", 4.0, -1); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 1750); } else { AddPartyExp(pchar, 1750); } break; case "Hit_spare_Geffrey": // dialog exit from Geffrey LAi_ActorRunToLocation(CharacterFromID("Geffrey Bampfylde"), "reload", "reload1", "none", "", "", "Hit_spared_Geffrey", 4.0); break; case "Hit_spared_Geffrey": EndQuestMovie();TrackQuestMovie("end","Hit_spared_Geffrey"); bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER Pchar.quest.Hit_timer2.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 7); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 3000); } else { AddPartyExp(pchar, 3000); } break; case "Hit_kill_Geffrey": // dialog exit from Geffrey LAi_CharacterDisableDialog(CharacterFromID("Geffrey Bampfylde")); LAi_SetImmortal(CharacterFromID("Geffrey Bampfylde"), 0); GiveItem2Character(CharacterFromId("Geffrey Bampfylde"), "blade5"); EquipCharacterByItem(CharacterFromId("Geffrey Bampfylde"), "blade5"); LAi_ActorAttack(CharacterFromID("Geffrey Bampfylde"), PChar, ""); LAi_SetCheckMinHP(CharacterFromID("Geffrey Bampfylde"), 0.0, 0, "Hit_killed_Geffrey"); break; case "Hit_killed_Geffrey": EndQuestMovie();TrackQuestMovie("end","Hit_killed_Geffrey"); bDisableFastReload = 0; PChar.quest.Hitman = "hit_geffrey"; Characters[GetCharacterIndex("Geffrey Bampfylde")].Location = "none"; ChangeCharacterAddressGroup(CharacterFromID("Thug7"), "Hit_passage", "goto", "goto16"); //SCM //KILL TIMER Pchar.quest.Hit_timer2.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 6); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 3000); } else { AddPartyExp(pchar, 3000); } break; case "Hit_mark_Pepin": // dialog exit from Mateus PChar.quest.Hitman = "mark_pepin"; ChangeCharacterAddressGroup(CharacterFromID("Pepin Bertillon"), "QC_port", "goto", "goto12"); ChangeCharacterAddressGroup(CharacterFromID("Bertillon's guard1"), "QC_port", "goto", "character11"); ChangeCharacterAddressGroup(CharacterFromID("Bertillon's guard2"), "QC_port", "goto", "character12"); LAi_SetImmortal(CharacterFromID("Pepin Bertillon"), 0); LAi_SetImmortal(CharacterFromID("Bertillon's guard1"), 0); LAi_SetImmortal(CharacterFromID("Bertillon's guard2"), 0); LAi_SetWarriorType(CharacterFromID("Pepin Bertillon")); LAi_SetWarriorType(CharacterFromID("Bertillon's guard1")); LAi_SetWarriorType(CharacterFromID("Bertillon's guard2")); LAi_warrior_DialogEnable(CharacterFromID("Pepin Bertillon"), 1); LAi_warrior_DialogEnable(CharacterFromID("Bertillon's guard1"), 1); LAi_warrior_DialogEnable(CharacterFromID("Bertillon's guard2"), 1); LAi_group_MoveCharacter(CharacterFromID("Pepin Bertillon"), "Bertillon_Group"); LAi_group_MoveCharacter(CharacterFromID("Bertillon's guard1"), "Bertillon_Group"); LAi_group_MoveCharacter(CharacterFromID("Bertillon's guard2"), "Bertillon_Group"); PChar.quest.Hit_goto_QC_port.win_condition.l1 = "location"; PChar.quest.Hit_goto_QC_port.win_condition.l1.character = PChar.id; PChar.quest.Hit_goto_QC_port.win_condition.l1.location = "QC_port"; PChar.quest.Hit_goto_QC_port.win_condition = "Hit_goto_QC_port"; //TIMER 3 //LAi_QuestDelay("Hit_timer3", 0.0); //SCM //Add journal entry AddQuestRecord("Hitman", 8); break; case "Hit_goto_QC_port": LAi_warrior_SetCommander(CharacterFromID("Bertillon's guard1"), CharacterFromID("Pepin Bertillon")); LAi_warrior_SetCommander(CharacterFromID("Bertillon's guard2"), CharacterFromID("Pepin Bertillon")); LAi_group_SetCheck("Bertillon_Group", "Hit_killed_Pepin"); LAi_SetActorType(PChar); LAi_ActorSelfDialog(PChar, "Hit_goto_QC_port1"); break; case "Hit_goto_QC_port1": LAi_SetPlayerType(PChar); break; case "Hit_spare_Pepin": // dialog exit from Pepin LAi_SetImmortal(CharacterFromID("Pepin Bertillon"), 1); LAi_SetImmortal(CharacterFromID("Bertillon's guard1"), 1); LAi_SetImmortal(CharacterFromID("Bertillon's guard2"), 1); LAi_SetActorType(CharacterFromID("Pepin Bertillon")); LAi_SetActorType(CharacterFromID("Bertillon's guard1")); LAi_SetActorType(CharacterFromID("Bertillon's guard2")); LAi_ActorGoToLocation(CharacterFromID("Pepin Bertillon"), "reload", "reload2", "none", "", "", "", 7.0); LAi_ActorGoToLocation(CharacterFromID("Bertillon's guard1"), "reload", "reload2", "none", "", "", "", 7.0); LAi_ActorGoToLocation(CharacterFromID("Bertillon's guard2"), "reload", "reload2", "none", "", "", "", 7.0); LAi_QuestDelay("Hit_spared_Pepin", 0.0); break; case "Hit_spared_Pepin": //END QUEST LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER Pchar.quest.Hit_timer3.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 10); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2000); } else { AddPartyExp(pchar, 2000); } break; case "Hit_kill_Pepin": // dialog exit from Pepin LAi_warrior_DialogEnable(CharacterFromID("Pepin Bertillon"), 0); LAi_warrior_DialogEnable(CharacterFromID("Bertillon's guard1"), 0); LAi_warrior_DialogEnable(CharacterFromID("Bertillon's guard2"), 0); LAi_group_FightGroups("Bertillon_Group", LAI_GROUP_PLAYER, 1); break; case "Hit_killed_Pepin": EndQuestMovie();TrackQuestMovie("end","Hit_killed_Pepin"); PChar.quest.Hitman = "hit_pepin"; Characters[GetCharacterIndex("Pepin Bertillon")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard1")].Location = "none"; Characters[GetCharacterIndex("Bertillon's guard2")].Location = "none"; ChangeCharacterAddressGroup(CharacterFromID("Thug8"), "Hit_passage", "goto", "goto14"); //SCM //KILL TIMER Pchar.quest.Hit_timer3.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 9); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 4500); } else { AddPartyExp(pchar, 4500); } break; case "Hit_mark_Amerigo": // dialog exit from Mateus PChar.quest.Hitman = "mark_amerigo"; PChar.quest.Hit_Amerigo.win_condition.l1 = "location"; PChar.quest.Hit_Amerigo.win_condition.l1.character = PChar.id; PChar.quest.Hit_Amerigo.win_condition.l1.location = "Hit_house2"; PChar.quest.Hit_Amerigo.win_condition = "Hit_Amerigo"; chrEnableReloadLocator("Conceicao_town", "reload15", 1); //TIMER 4 //LAi_QuestDelay("Hit_timer4", 0.0); //SCM //Add journal entry AddQuestRecord("Hitman", 11); break; case "Hit_Amerigo": StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_Amerigo"); bDisableFastReload = 1; LAi_SetActorType(PChar); LAi_ActorDialog(PChar, CharacterFromID("Amerigo Vieira"), "", 4.0, -1); break; case "Hit_kill_Amerigo": // dialog exit from Amerigo LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Amerigo Vieira")); LAi_SetImmortal(CharacterFromID("Amerigo Vieira"), 0); LAi_ActorAttack(CharacterFromID("Amerigo Vieira"), PChar, ""); LAi_SetCheckMinHP(CharacterFromID("Amerigo Vieira"), 0.0, 0, "Hit_killed_Amerigo"); break; case "Hit_killed_Amerigo": EndQuestMovie();TrackQuestMovie("end","Hit_killed_Amerigo"); bDisableFastReload = 0; PChar.quest.Hitman = "hit_amerigo"; Characters[GetCharacterIndex("Amerigo Vieira")].Location = "none"; ChangeCharacterAddressGroup(CharacterFromID("Thug2"), "Hit_passage", "goto", "goto17"); //SCM //KILL TIMER Pchar.quest.Hit_timer4.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 12); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 6000); } else { AddPartyExp(pchar, 6000); } break; case "Hit_spare_Amerigo": // dialog exit from Amerigo LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Amerigo Vieira")); LAi_ActorRunToLocation(CharacterFromID("Amerigo Vieira"), "reload", "reload1", "none", "", "", "Hit_spared_Amerigo", 3.0); break; case "Hit_spared_Amerigo": EndQuestMovie();TrackQuestMovie("end","Hit_spared_Amerigo"); bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER Pchar.quest.Hit_timer4.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 13); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 4000); } else { AddPartyExp(pchar, 4000); } break; case "Hit_join_Amerigo": // dialog exit from Amerigo EndQuestMovie();TrackQuestMovie("end","Hit_join_Amerigo"); bDisableFastReload = 0; PChar.quest.Hitman = "hit_amerigo"; //SCM LAi_SetPlayerType(PChar); LAi_SetOfficerType(CharacterFromID("Amerigo Vieira")); LAi_SetImmortal(CharacterFromID("Amerigo Vieira"), 0); AddPassenger(Pchar, characterFromID("Amerigo Vieira"), 0); //BT May 09 SetOfficersIndex(PChar, -1, GetCharacterIndex("Amerigo Vieira")); //END QUEST //LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER Pchar.quest.Hit_timer4.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 14); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 1500); } else { AddPartyExp(pchar, 5000); } break; case "Hit_mark_Vito": // dialog exit from Mateus PChar.quest.Hitman = "mark_vito"; LAi_SetStayType(CharacterFromID("Vito Leone")); ChangeCharacterAddressGroup(CharacterFromID("Vito Leone"), "Conceicao_church", "goto", "goto7"); //TIMER 5 //LAi_QuestDelay("Hit_timer5", 0.0); //SCM //Add journal entry AddQuestRecord("Hitman", 15); break; case "Hit_kill_Vito": // dialog exit from Vito bDisableFastReload = 1; LAi_LocationFightDisable(&Locations[FindLocation("Conceicao_church")], 0); LAi_SetActorType(CharacterFromID("Vito Leone")); LAi_SetImmortal(CharacterFromID("Vito Leone"), 0); LAi_CharacterDisableDialog(CharacterFromID("Vito Leone")); LAi_SetCheckMinHP(CharacterFromID("Vito Leone"), 0.0, 0, "Hit_killed_Vito"); break; case "Hit_killed_Vito": PChar.quest.Hitman = "hit_vito"; bDisableFastReload = 0; LAi_LocationFightDisable(&Locations[FindLocation("Conceicao_church")], 1); Characters[GetCharacterIndex("Vito Leone")].Location = "none"; //KILL TIMER Pchar.quest.Hit_timer5.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 16); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 7000); } else { AddPartyExp(pchar, 7000); } break; case "Hit_spare_Vito": // dialog exit from Vito bDisableFastReload = 1; LAi_CharacterDisableDialog(CharacterFromID("Vito Leone")); Characters[GetCharacterIndex("Vito Leone")].Location = "none"; PChar.quest.Hit_spared_Vito.win_condition.l1 = "location"; PChar.quest.Hit_spared_Vito.win_condition.l1.character = PChar.id; PChar.quest.Hit_spared_Vito.win_condition.l1.location = "Conceicao_town"; PChar.quest.Hit_spared_Vito.win_condition = "Hit_spared_Vito"; LAi_group_SetRelation("santos_group", "santos_group", LAI_GROUP_ENEMY); //SCM break; case "Hit_spared_Vito": bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //KILL TIMER Pchar.quest.Hit_timer5.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 17); //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 4000); } else { AddPartyExp(pchar, 4000); } break; case "Hit_mark_Mateus": // dialog exit from Vito PChar.quest.Hitman = "mark_mateus"; Characters[GetCharacterIndex("Mateus Santos")].Location = "none"; //SCM ChangeCharacterAddressGroup(CharacterFromID("Mateus Santos"), "Hit_house", "goto", "goto3"); //SCM LAi_SetWarriorType(CharacterFromID("Mateus Santos")); //SCM LAi_warrior_DialogEnable(CharacterFromID("Mateus Santos"), 1);//SCM LAi_SetHuberStayType(characterFromID("Mateus Santos")); //SCM LAi_group_FightGroups("Santos_Group", LAI_GROUP_PLAYER, 1); LAi_SetStayType(CharacterFromID("Desiree' Muerte")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Desiree' Muerte"), "Hit_passage", "goto", "goto16"); //SCM LAi_SetStayType(CharacterFromID("Thug3")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug3"), "Hit_passage", "goto", "goto14"); //SCM PChar.quest.Hit_Mateus.win_condition.l1 = "location"; PChar.quest.Hit_Mateus.win_condition.l1.character = PChar.id; PChar.quest.Hit_Mateus.win_condition.l1.location = "Hit_house"; PChar.quest.Hit_Mateus.win_condition = "Hit_Mateus"; //KILL TIMER Pchar.quest.Hit_timer5.over = "yes"; //Add journal entry AddQuestRecord("Hitman", 18); break; case "Hit_Mateus": StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_Mateus"); bDisableFastReload = 1; LAi_SetActorType(PChar); LAi_ActorDialog(PChar, CharacterFromID("Mateus Santos"), "", 4.0, -1); //SCM break; case "Hit_kill_Mateus": // dialog exit from Mateus LAi_LocationFightDisable(&Locations[FindLocation("Hit_house")], 0); //Fight ok SCM LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Mateus Santos")); //SCM LAi_SetImmortal(CharacterFromID("Mateus Santos"), 0); //SCM LAi_ActorAttack(CharacterFromID("Mateus Santos"), PChar, ""); //SCM LAi_SetCheckMinHP(CharacterFromID("Mateus Santos"), 0.0, 0, "Hit_killed_Mateus"); //SCM chrEnableReloadLocator("Hit_house", "Reload2", 1); //SCM chrEnableReloadLocator("Hit_house", "Reload1", 0); //SCM chrEnableReloadLocator("Hit_study", "Reload1", 0); //SCM for testing chrEnableReloadLocator("Hit_study", "Reload2_back", 1); //SCM chrEnableReloadLocator("Hit_passage", "Reload10", 1); //SCM LAi_SetImmortal(CharacterFromID("Thug2"), 0); //SCM break; case "Hit_killed_Mateus": EndQuestMovie();TrackQuestMovie("end","Hit_killed_Mateus"); PChar.quest.Hitman = "hit_mateus"; Characters[GetCharacterIndex("Mateus Santos")].Location = "none"; //SCM GiveItem2Character(pchar, "Santos_Ring"); //SCM GiveItem2Character(pchar, "Santos_Keys"); //SCM GiveItem2Character(pchar, "Santos_Journal1"); //SCM GiveItem2Character(pchar, "Santos_Journal2"); //SCM LAi_SetStayType(CharacterFromID("Vito Leone")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Vito Leone"), "Muelle_church", "goto", "goto9"); //SCM LAi_SetStayType(CharacterFromID("Desiree' Muerte")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Desiree' Muerte"), "Muelle_church", "goto", "goto4"); //SCM LAi_SetStayType(CharacterFromID("Thug3")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug3"), "Muelle_church", "goto", "goto5"); //SCM PChar.quest.Hit_congrats.win_condition.l1 = "locator"; PChar.quest.Hit_congrats.win_condition.l1.location = "Muelle_church"; PChar.quest.Hit_congrats.win_condition.l1.locator_group = "goto"; //PChar.quest.Hit_congrats.win_condition.l1.locator = "goto7"; //SCM PChar.quest.Hit_congrats.win_condition.l1.character = PChar.id; PChar.quest.Hit_congrats.win_condition = "Hit_congrats"; //Give XP if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 7000); } else { AddPartyExp(pchar, 7000); } break; case "Hit_congrats": StartQuestMovie(true, false, false);TrackQuestMovie("start","Hit_congrats"); LAi_SetActorType(PChar); LAi_ActorDialog(PChar, CharacterFromID("Vito Leone"), "", 4.0, -1); break; case "Hit_complete": // dialog exit from Vito LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Vito Leone")); LAi_ActorGoToLocation(CharacterFromID("Vito Leone"), "reload", "reload2", "none", "", "", "Hit_complete_end", 2.0); //SCM LAi_SetActorType(CharacterFromID("Desiree' Muerte")); //SCM LAi_ActorGoToLocation(CharacterFromID("Desiree' Muerte"), "reload", "reload2", "none", "", "", "Hit_complete_end", 2.0); //SCM LAi_SetActorType(CharacterFromID("Thug3")); //SCM LAi_ActorGoToLocation(CharacterFromID("Thug3"), "reload", "reload2", "none", "", "", "Hit_complete_end", 2.0); //SCM LAi_SetHuberStayType(characterFromID("Thug9")); //SCM ChangeCharacterAddressGroup(CharacterFromID("Thug9"), "Muelle_church", "goto", "goto1"); //SCM LAi_SetActorType(CharacterFromID("Thug9")); //SCM LAi_ActorRunToLocation(CharacterFromID("Thug9"), "reload", "reload1", "none", "", "", "Hit_complete_end", 2.0); //SCM break; case "Hit_complete_end": EndQuestMovie();TrackQuestMovie("end","Hit_complete_end"); bDisableFastReload = 0; //END QUEST LAi_QuestDelay("Hit_END", 0.0); //Add journal entry AddQuestRecord("Hitman", 19); CloseQuestHeader("Hitman"); break; /////////////////////////////////////////////////////////////// // Peter Blood by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// //Bartolomeu case "Bart_start": SetEnterLocationQuest("Grand_Cayman_Tavern", "Bart_start_check", 0); break; case "Bart_start_check": if(makeint(PChar.rank) >= 1) { ChangeCharacterAddressGroup(CharacterFromID("Bartolomeu o Portugues"), "Grand_Cayman_Tavern", "goto", "goto1"); } break; case "Bart_search_refused": PChar.quest.Bartolomeu = "refused"; SetQuestHeader("Bartolomeu"); AddQuestRecord("Bartolomeu", 11); DeleteEnterLocationQuest("Grand_Cayman_Tavern", "Bart_start_check"); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorGoToLocation(CharacterFromID("Bartolomeu o Portugues"), "reload", "reload1", "none", "", "", "adeus", 5.0); break; case "adeus": Characters[GetCharacterIndex("Bartolomeu o Portugues")].Location = "none"; PChar.quest.Bartolomeu = "end"; PChar.quest.Bartolomeu.over = "yes"; CloseQuestHeader("Bartolomeu"); break; case "Bart_start_search": PChar.quest.Bartolomeu = "search"; DeleteEnterLocationQuest("Grand_Cayman_Tavern", "Bart_start"); Locations[FindLocation("Cuba_port")].reload.l1.disable = true; LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetImmortal(CharacterFromID("Bartolomeu o Portugues"), 1); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); DisableFastTravel(true); DisableMenuLaunch(true); bSuppressResurrection = true; SetQuestHeader("Bartolomeu"); AddQuestRecord("Bartolomeu", 1); Pchar.quest.Bartolomeu.win_condition.l1 = "location"; Pchar.quest.Bartolomeu.l1.character = "Bartolomeu o Portugues"; Pchar.quest.Bartolomeu.win_condition.l1.location = "Cuba_shore_01"; PChar.quest.Bartolomeu.win_condition = "essai"; break; case "essai": SetCurrentTime(12, 0); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "came"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 0.0, 1.0); break; case "fight": locations[FindLocation("Cuba_shore_01")].reload.l1.disable = 1; locations[FindLocation("Cuba_shore_01")].reload.l2.disable = 1; locations[FindLocation("Cuba_shore_01")].reload.l3.disable = 1; LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "reload", "reload2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); LAi_group_FightGroups("SHORE_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SHORE_SOLDIERS", "essai_2"); break; case "essai_2": AddQuestRecord("Bartolomeu", 2); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 1000); } else { AddPartyExp(pchar, 2500); } LAi_SetStayType(pchar); locations[FindLocation("Cuba_shore_01")].reload.l1.disable = 0; locations[FindLocation("Cuba_shore_01")].reload.l2.disable = 0; locations[FindLocation("Cuba_shore_01")].reload.l3.disable = 0; LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "in_shore"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 2.0, 1.0); break; case "bartfollow": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetImmortal(CharacterFromID("Bartolomeu o Portugues"), 1); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); PChar.quest.Bartolomeu = "crew"; Pchar.quest.Bartolomeu.win_condition.l1 = "location"; Pchar.quest.Bartolomeu.l1.character = "Bartolomeu o Portugues"; Pchar.quest.Bartolomeu.win_condition.l1.location = "Havana_town_05"; PChar.quest.Bartolomeu.win_condition = "outhavana"; break; case "outhavana": Locations[FindLocation("Havana_town_05")].reload.l3.disable = true; Locations[FindLocation("Havana_town_05")].reload.l21.disable = true; Locations[FindLocation("Havana_town_05")].reload.l4.disable = true; Locations[FindLocation("Havana_town_05")].reload.l22.disable = true; LAi_SetPlayerType(pchar); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto_24"); // PB LAi_SetHP(sld, 80.0, 80.0); sld.dialog.filename = "Bartolomeu o Portugues_dialog.c"; sld.dialog.currentnode = "guarda"; sld.id = "soldat"; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto_43"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_SetActorType(sld); LAi_ActorFollow (sld, pchar, "", 10); sld.id = "soldat1"; LAi_group_MoveCharacter(sld, "GATE_SOLDIERS"); LAi_SetActorType(characterfromID("soldat")); LAi_ActorDialog(characterfromID("soldat"), PChar, "", 0.5, 10); break; case "fight_2": LAi_SetWarriorType(characterfromID("soldat")); LAi_SetWarriorType(characterfromID("soldat1")); LAi_group_MoveCharacter(characterFromID("soldat"), "GATE_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("soldat1"), "GATE_SOLDIERS"); LAi_group_SetCheck("GATE_SOLDIERS", "hurry"); LAi_group_FightGroups("GATE_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); break; case "hurry": LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "savecrew"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 1.0, 1.0); AddQuestRecord("Bartolomeu", 3); break; case "goverplace": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetImmortal(CharacterFromID("Bartolomeu o Portugues"), 1); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); Locations[FindLocation("Havana_town_05")].reload.l3.disable = false; Locations[FindLocation("Havana_town_05")].reload.l21.disable = false; Locations[FindLocation("Havana_town_05")].reload.l4.disable = false; Locations[FindLocation("Havana_town_05")].reload.l22.disable = false; Locations[FindLocation("Havana_town_02")].vcskip = true; PChar.quest.Bartolomeu = "hang"; Pchar.quest.Bartolomeu.win_condition.l1 = "location"; Pchar.quest.Bartolomeu.l1.character = "Bartolomeu o Portugues"; Pchar.quest.Bartolomeu.win_condition.l1.location = "Havana_town_02"; PChar.quest.Bartolomeu.win_condition = "discours"; break; case "discours": Locations[FindLocation("Havana_town_02")].reload.l1.disable = true; Locations[FindLocation("Havana_town_02")].reload.l2.disable = true; Locations[FindLocation("Havana_town_02")].reload.l3.disable = true; Locations[FindLocation("Havana_town_02")].reload.l4.disable = true; Locations[FindLocation("Havana_town_02")].reload.l5.disable = true; Locations[FindLocation("Havana_town_02")].reload.l7.disable = true; Locations[FindLocation("Havana_town_02")].reload.l8.disable = true; Locations[FindLocation("Havana_town_02")].reload.l10.disable = true; Locations[FindLocation("Havana_town_02")].reload.l11.disable = true; DeleteAttribute(&Locations[FindLocation("Havana_town_02")],"vcskip"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_01"), "Havana_town_02", "goto", "goto30"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_02"), "Havana_town_02", "goto", "goto31"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_03"), "Havana_town_02", "goto", "goto32"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_04"), "Havana_town_02", "goto", "goto33"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_05"), "Havana_town_02", "goto", "goto34"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_06"), "Havana_town_02", "goto", "goto35"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto36"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto37"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto38"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto39"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto40"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "goto", "goto41"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "animists2", "goto", "goto42"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SOLDATOS"); sld.dialog.filename = "Bartolomeu o Portugues_dialog.c"; sld.dialog.currentnode = "devil"; sld.id = "bourreau"; // PB: Hangman should use axe --> TakeItemFromCharacter(sld, GetCharacterEquipByGroup(sld, BLADE_ITEM_TYPE)); // Takes hangman's random blade away TakeItemFromCharacter(sld, GetCharacterEquipByGroup(sld, GUN_ITEM_TYPE)); // Takes hangman's random gun away GiveItem2Character(sld,"bladeaxe1"); // Gives hangman an axe EquipCharacterByItem(sld,"bladeaxe1"); // Equips the axe // PB: Hangman should use axe <-- LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto44", "beforevent", 38.0); break; case "beforevent": //LAi_ActorTurnToCharacter(pchar, characterFromID("bourreau"));useless line now!! LAi_SetStayType(pchar); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "before"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 9.0, 1.0); break; case "commandant": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetImmortal(CharacterFromID("Bartolomeu o Portugues"), 1); LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto43", "talkhangman", 21.0) break ; case "talkhangman" : LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("bourreau")); LAi_ActorDialog(characterfromID("bourreau"), PChar, "", 1, 1.0); break; case "combat": LAi_ActorAttack(CharacterFromID("bourreau"), PChar, ""); LAi_SetPlayerType(Pchar); LAi_QuestDelay("fight_4", 2.0); break; case "fight_4": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); LAi_group_FightGroups("SOLDATOS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SOLDATOS", "fuite"); break; case "fuite": LAi_KillCharacter(characterFromID("bourreau")); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_SetImmortal(CharacterFromID("Bartolomeu o Portugues"), 1); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_01")); LAi_SetImmortal(CharacterFromID("bart_pirate_01"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_01"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_02")); LAi_SetImmortal(CharacterFromID("bart_pirate_02"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_02"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_03")); LAi_SetImmortal(CharacterFromID("bart_pirate_03"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_03"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_04")); LAi_SetImmortal(CharacterFromID("bart_pirate_04"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_04"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_05")); LAi_SetImmortal(CharacterFromID("bart_pirate_05"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_05"), "", 60.0); LAi_SetActorType(characterFromID("bart_pirate_06")); LAi_SetImmortal(CharacterFromID("bart_pirate_06"), 1); LAi_ActorFollowEverywhere(characterFromID("bart_pirate_06"), "", 60.0); LAi_SetStayType(pchar); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 1000); } else { AddPartyExp(pchar, 2500); } LAi_QuestDelay("rencontre", 4.0); break; case "rencontre": PChar.quest.Bartolomeu = "rencontrer"; LAi_SetActorType(characterFromID("bart_pirate_06")); characters[GetCharacterIndex("bart_pirate_06")].dialog.currentnode = "First time"; LAi_ActorDialog(characterfromID("bart_pirate_06"), PChar, "", 1.0, 1.0); break; case "rencontrebc": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "bartpirat"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), PChar, "", 1.0, 1.0); break; case "bartmoi": Locations[FindLocation("Havana_town_02")].reload.l1.disable = false; Locations[FindLocation("Havana_town_02")].reload.l2.disable = false; Locations[FindLocation("Havana_town_02")].reload.l3.disable = false; Locations[FindLocation("Havana_town_02")].reload.l4.disable = false; Locations[FindLocation("Havana_town_02")].reload.l5.disable = false; Locations[FindLocation("Havana_town_02")].reload.l7.disable = false; Locations[FindLocation("Havana_town_02")].reload.l8.disable = false; Locations[FindLocation("Havana_town_02")].reload.l10.disable = false; Locations[FindLocation("Havana_town_02")].reload.l11.disable = false; LAi_ActorFollowEverywhere(characterFromID("bart_pirate_06"), "", 60.0); DoReloadCharacterToLocation("Havana_Outskirts", "goto", "goto9"); Locations[FindLocation("Havana_Outskirts")].reload.l1.disable = true; ChangeCharacterAddressGroup(CharacterFromID("Bartolomeu O Portugues"), "Havana_Outskirts", "goto", "goto8"); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "outcity"; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 10.0, 1.0); AddQuestRecord("Bartolomeu", 4); break; case "fight_5": LAi_SetPlayerType (Pchar); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SPANISHS"); LAi_group_FightGroups("SPANISHS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SPANISHS", "evasion_2"); break; case "evasion_2": LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Locations[FindLocation("Havana_Outskirts")].reload.l1.disable = false; Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "avantplage"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), PChar, "", 0.0, 1.0); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 1000); } else { AddPartyExp(pchar, 2500); } break; case "evasion_3": AddQuestRecord("Bartolomeu", 5); PChar.quest.Bartolomeu = "evas"; LAi_SetPlayerType (Pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); Pchar.quest.Bartolomeu.win_condition.l1 = "location"; Pchar.quest.Bartolomeu.l1.character = "Bartolomeu o Portugues"; Pchar.quest.Bartolomeu.win_condition.l1.location = "Cuba_shore_01"; PChar.quest.Bartolomeu.win_condition = "plage"; break; case "plage": Locations[FindLocation("Cuba_shore_01")].reload.l3.disable = true; LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "locator26", "plage_1", 10.0) ChangeCharacterAddressGroup(CharacterFromID("Bartolomeu o Portugues"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_01"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_02"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_03"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_04"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_05"), "Cuba_shore_01", "reload", "reload2"); ChangeCharacterAddressGroup(CharacterFromID("bart_pirate_06"), "Cuba_shore_01", "reload", "reload2"); break; case "plage_1": LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "second"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), PChar, "", 4.0, 1.0); LAi_SetOfficerType(characterFromID("bart_pirate_01")); LAi_SetOfficerType(characterFromID("bart_pirate_02")); LAi_SetOfficerType(characterFromID("bart_pirate_03")); LAi_SetOfficerType(characterFromID("bart_pirate_04")); LAi_SetOfficerType(characterFromID("bart_pirate_05")); LAi_SetOfficerType(characterFromID("bart_pirate_06")); break; case "embarquer": PChar.quest.Bartolomeu = "contact"; LAi_SetPlayerType (Pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); ChangeCharacterAddressGroup(CharacterFromID("Juan Hernandez"), "Santiago_port", "goto", "goto24"); LAi_SetCitizenType(CharacterFromID("Juan Hernandez")); ChangeCharacterAddress(characterFromID("bart_pirate_01"), "none", ""); ChangeCharacterAddress(characterFromID("bart_pirate_02"), "none", ""); ChangeCharacterAddress(characterFromID("bart_pirate_03"), "none", ""); ChangeCharacterAddress(characterFromID("bart_pirate_04"), "none", ""); ChangeCharacterAddress(characterFromID("bart_pirate_05"), "none", ""); ChangeCharacterAddress(characterFromID("bart_pirate_06"), "none", ""); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "crewship"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), PChar, "", 1.0, 1.0); AddQuestRecord("Bartolomeu", 6); break; case "walkcrew": PChar.quest.Bartolomeu = "blackcorsair"; ChangeCharacterAddressGroup(CharacterFromID("Emilio Soares"), "Santiago_town_exit2", "goto", "locator9"); LAi_SetCitizenType(CharacterFromID("Emilio Soares")); AddQuestRecord("Bartolomeu", 7); break; case "quitcuba": Locations[FindLocation("Cuba_shore_01")].reload.l3.disable = false; LAi_SetOfficerType(characterFromID("Juan Hernandez")); ChangeCharacterAddress(characterFromID("Juan Hernandez"), "none", ""); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "horscuba"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), PChar, "", 0.0, 1.0); break; case "directredmond": AddQuestRecord("Bartolomeu", 8); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorFollowEverywhere(characterFromID("Bartolomeu o Portugues"), "", 60.0); LAi_SetActorType(characterFromID("Emilio Soares")); LAi_SetImmortal(characterFromID("Emilio Soares"), true); LAi_ActorFollowEverywhere(characterFromID("Emilio Soares"), "", 60.0); PChar.quest.Bartolomeu = "dernier"; Pchar.quest.Bartolomeu.win_condition.l1 = "location"; Pchar.quest.Bartolomeu.l1.character = "Bartolomeu o Portugues"; Pchar.quest.Bartolomeu.win_condition.l1.location = "Redmond_Town_01"; PChar.quest.Bartolomeu.win_condition = "mercenaires"; break; case "mercenaires": Locations[FindLocation("Redmond_Town_01")].reload.l1.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l2.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l3.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l5.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l6.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l8.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l9.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l10.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l11.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l12.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l13.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l14.disable = true; Locations[FindLocation("Redmond_Town_01")].reload.l15.disable = true; LAi_SetOfficerType(characterFromID("Emilio Soares")); ChangeCharacterAddress(characterFromID("Emilio Soares"), "none", ""); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Man3", "goto", "goto16"); LAi_SetHP(sld, 120.0, 120.0); sld.dialog.filename = "Bartolomeu o Portugues_dialog.c"; sld.dialog.currentnode = "lafin"; sld.id = "chef"; LAi_SetActorType(characterFromID("chef")); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Pirat8", "goto", "goto17"); LAi_SetHP(sld, 120.0, 120.0); LAi_group_MoveCharacter(sld, "mercenary"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Pirat9", "goto", "goto18"); LAi_SetHP(sld, 120.0, 120.0); LAi_group_MoveCharacter(sld, "mercenary"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Pirat13", "goto", "goto19"); LAi_SetHP(sld, 120.0, 120.0); LAi_group_MoveCharacter(sld, "mercenary"); LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto15", "dispute_2", 20.0); break; case "dispute_2": LAi_SetPlayerType (Pchar); LAi_SetActorType(characterFromID("chef")); LAi_ActorDialog(characterFromID("chef"), PChar, "", 0.0, 1.0); break; case "dispute_3": LAi_ActorAttack(CharacterFromID("chef"), PChar, ""); LAi_QuestDelay("dispute_4", 2.0); break; case "dispute_4": LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); LAi_group_FightGroups("mercenary", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("mercenary", "findefin"); break; case "findefin": Locations[FindLocation("Redmond_Town_01")].reload.l1.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l2.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l3.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l5.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l6.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l8.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l9.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l10.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l11.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l12.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l13.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l14.disable = false; Locations[FindLocation("Redmond_Town_01")].reload.l15.disable = false; Locations[FindLocation("Cuba_port")].reload.l1.disable = false; bSuppressResurrection = false; DisableFastTravel(false); DisableMenuLaunch(false); LAi_KillCharacter(characterFromID("chef")); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "lafin_2"; LAi_ActorDialog(characterFromID("Bartolomeu O Portugues"), PChar, "", 0.0, 1.0); break; case "bartofficer": PChar.Quest.Bartolomeu = "1"; AddQuestRecord("Bartolomeu", 9); CloseQuestHeader("Bartolomeu"); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 20000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 20000); } LAi_SetImmortal(characterFromID("Bartolomeu O Portugues"), false); AddPassenger(Pchar, characterFromID("Bartolomeu O Portugues"), 0); SetOfficersIndex(Pchar, 9, getCharacterIndex("Bartolomeu O Portugues")); LAi_SetOfficerType(characterFromID("Bartolomeu O Portugues")); SetCrewQuantity(pchar, makeint(GetCrewQuantity(pchar) + 7)); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.filename = "Enc_Officer_dialog.c"; Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.CurrentNode = "hired"; break; case "bartbye": AddQuestRecord("Bartolomeu", 10); CloseQuestHeader("Bartolomeu"); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 20000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 20000); } LAi_SetImmortal(characterFromID("Bartolomeu O Portugues"), false); LAi_ActorGoToLocator(characterFromID("Bartolomeu O Portugues"), "goto", "goto24", "disparu", 40.0); break; case "disparu": LAi_SetOfficerType(characterFromID("Bartolomeu O Portugues")); ChangeCharacterAddress(characterFromID("Bartolomeu O Portugues"), "none", ""); break; /////////////////////////////////////////////////////////////// // Turks Help by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// case "Turks_start": SetEnterLocationQuest("Turks_Tavern", "Turks_start_check", 0); break; case "Turks_start_check": if(makeint(PChar.rank) >= 10) { ChangeCharacterAddressGroup(CharacterFromID("Pieter Boelen"), "Turks_Tavern", "goto", "goto6"); } break; case "Turks_search_refused": PChar.quest.Turkshelp = "refused"; DeleteEnterLocationQuest("Turks_Tavern", "Turks_start_check"); LAi_SetActorType(characterFromID("Pieter Boelen")); LAi_ActorGoToLocation(characterFromID("Pieter Boelen"), "reload", "reload1", "none", "", "", "", 0.0); SetQuestHeader("Turkshelp"); AddQuestRecord("Turkshelp", 7); CloseQuestHeader("Turkshelp"); break; case "Turks_start_search": PChar.quest.Turkshelp = "search"; DeleteEnterLocationQuest("Turks_Tavern", "Turks_start_check"); LAi_SetImmortal(CharacterFromID("Pieter Boelen"), 1); bSuppressResurrection = true; SetQuestHeader("Turkshelp"); AddQuestRecord("Turkshelp", 1); ChangeCharacterAddressGroup(CharacterFromID("Diego Cordoba"), "Santiago_Tavern", "goto", "goto3"); LAi_QuestDelay("Turks_timer1", 0.0); break; case "meetboca": DoReloadCharacterToLocation("Cuba_shore_02", "goto", "goto11"); LAi_SetStayType(pchar); ChangeCharacterAddressGroup(CharacterFromID("Diego Cordoba"), "Cuba_shore_02", "goto", "goto16"); locations[FindLocation("Cuba_shore_02")].reload.l2.disable = 1; locations[FindLocation("Cuba_shore_02")].reload.l1.disable = 1; pchar.location.from_sea = "Cuba_shore_02"; SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK Characters[GetCharacterIndex("Diego Cordoba")].dialog.currentnode = "begin_4"; LAi_SetActorType(characterFromID("Diego Cordoba")); Pchar.quest.Turks_timer1.over = "yes"; LAi_QuestDelay("parle", 1.0); break; case "parle": LAi_ActorDialog(characterFromID("Diego Cordoba"), pchar, "", 0.0, 2.0); break; case "fightboca": LAi_SetPlayerType(pchar); LAi_SetImmortal(CharacterFromID("Diego Cordoba"), 1); LAi_ActorAttack(CharacterFromID("Diego Cordoba"), PChar, ""); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto12"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto12"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto12"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto12"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); LAi_group_FightGroups("SHORE_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SHORE_SOLDIERS", "diegosurrender"); break; case "diegosurrender": LAi_SetActorType(characterFromID("Diego Cordoba")); Characters[GetCharacterIndex("Diego Cordoba")].dialog.currentnode = "begin_8"; LAi_ActorDialog(characterFromID("Diego Cordoba"), pchar, "", 1.0, 1.0); break; case "gototurks": LAi_SetActorType(characterFromID("Diego Cordoba")); LAi_ActorRunToLocation(characterFromID("Diego Cordoba"), "reload", "reload3", "none", "", "", "diegoship", 0.0); break; case "diegoship": locations[FindLocation("Cuba_shore_02")].reload.l2.disable = 0; locations[FindLocation("Cuba_shore_02")].reload.l1.disable = 0; AddQuestRecord("Turkshelp", 2); PChar.quest.Turkshelp = "news"; Pchar.quest.Turkshelp.win_condition.l1 = "location"; Pchar.quest.Turkshelp.win_condition.l1.location = "Turks_Tavern"; PChar.quest.Turkshelp.win_condition = "givenews"; LAi_QuestDelay("Turks_timer2", 0.0); break; case "givenews": Characters[GetCharacterIndex("Pieter Boelen")].dialog.currentnode = "begin_8"; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Pieter Boelen")); LAi_ActorWaitDialog(CharacterFromID("Pieter Boelen"), Pchar); LAi_ActorDialog(pchar, characterFromID("Pieter Boelen"), "", 10.0, 1.0); Pchar.quest.Turks_timer2.over = "yes"; break; case "guetteur": LAi_SetPlayerType (Pchar); ChangeCharacterAddressGroup(CharacterFromID("lookout"), "Turks_Tavern", "goto", "goto5"); Characters[GetCharacterIndex("lookout")].dialog.currentnode = "First time"; LAi_SetActorType(characterFromID("lookout")); LAi_ActorDialog(characterFromID("lookout"), pchar, "", 1.0, 1.0); break; case "turtleplage": LAi_SetActorType(characterFromID("Pieter Boelen")); Characters[GetCharacterIndex("Pieter Boelen")].dialog.currentnode = "begin_10"; LAi_ActorDialog(characterFromID("Pieter Boelen"), pchar, "", 1.0, 1.0); AddQuestRecord("Turkshelp", 3); locations[FindLocation("Turks_port")].reload.l2.disable = 1; //JRH: new Turks, locked to sea now instead break; case "depart": LAi_SetActorType(characterFromID("Pieter Boelen")); LAi_ActorRunToLocation(characterFromID("Pieter Boelen"), "reload", "reload1", "none", "", "", "", 0.0); LAi_ActorRunToLocation(characterFromID("lookout"), "reload", "reload1", "none", "", "", "", 0.0); LAi_QuestDelay("Turks_timer3", 0.0); setCharacterShipLocation(characterFromID("Captain"), "Turks_Lighthouse"); PChar.quest.Turkshelp = "marche"; Pchar.quest.Turkshelp.win_condition.l1 = "location"; Pchar.quest.Turkshelp.win_condition.l1.location = "Turks_Lighthouse"; PChar.quest.Turkshelp.win_condition = "fightturtle"; locations[FindLocation("Turks_port")].reload.l5.disable = 1; //JRH: new Turks shipyard locations[FindLocation("Turks_port")].reload.l3.disable = 1; //JRH: new Turks townhall locations[FindLocation("Turks_port")].reload.l10.disable = 1; //JRH: new Turks store locations[FindLocation("Turks_port")].reload.l13.disable = 1; //JRH: new Turks blacksmith locations[FindLocation("Turks_port")].reload.l14.disable = 1; //JRH: new Turks library locations[FindLocation("Turks_port")].reload.l15.disable = 1; //JRH: new Turks tailor break; case "fightturtle": Pchar.quest.Turks_timer3.over = "yes"; locations[FindLocation("Turks_Lighthouse")].reload.l3.disable = 1; locations[FindLocation("Turks_Lighthouse")].reload.l1.disable = 1; locations[FindLocation("Turks_Lighthouse")].reload.l2.disable = 1; locations[FindLocation("Turks_Lighthouse")].reload.l5.disable = 1; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "reload", "reload3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_SOLDIERS"); LAi_group_FightGroups("SHORE_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SHORE_SOLDIERS", "stoplanding"); break; case "stoplanding": locations[FindLocation("Turks_Lighthouse")].reload.l1.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l2.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l5.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l3.disable = 0; if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 2500); } AddQuestRecord("Turkshelp", 4); PChar.quest.Turkshelp = "ville"; Pchar.quest.Turkshelp.win_condition.l1 = "location"; Pchar.quest.Turkshelp.win_condition.l1.location = "Turks_port"; //JRH: new Turks PChar.quest.Turkshelp.win_condition = "horsville"; break; case "horsville": ChangeCharacterAddressGroup(CharacterFromID("Pieter Boelen"), "Turks_port", "quest", "quest2"); //JRH: new Turks Characters[GetCharacterIndex("Pieter Boelen")].dialog.currentnode = "begin_12"; LAi_SetActorType(characterFromID("Pieter Boelen")); LAi_ActorDialog(characterFromID("Pieter Boelen"), pchar, "", 1.0, 1.0); break; case "gotoport": AddQuestRecord("Turkshelp", 5); setCharacterShipLocation(characterFromID("Captain"), "none"); LAi_ActorFollowEverywhere(characterFromID("Pieter Boelen"), "", 60.0); locations[FindLocation("Turks_port")].reload.l5.disable = 0; //JRH: new Turks shipyard locations[FindLocation("Turks_port")].reload.l3.disable = 0; //JRH: new Turks townhall locations[FindLocation("Turks_port")].reload.l10.disable = 0; //JRH: new Turks store locations[FindLocation("Turks_port")].reload.l13.disable = 0; //JRH: new Turks blacksmith locations[FindLocation("Turks_port")].reload.l14.disable = 0; //JRH: new Turks library locations[FindLocation("Turks_port")].reload.l15.disable = 0; //JRH: new Turks tailor locations[FindLocation("Turks_port")].reload.l2.disable = false; //JRH: new Turks, unlocked to sea now instead PChar.quest.Turkshelp = "Tortuga"; Pchar.quest.Turkshelp.win_condition.l1 = "location"; Pchar.quest.Turkshelp.win_condition.l1.location = "Tortuga_port"; PChar.quest.Turkshelp.win_condition = "finalstory"; LAi_QuestDelay("Turks_timer4", 0.0); break; case "finalstory": ChangeCharacterAddressGroup(CharacterFromID("Pieter Boelen"), "Tortuga_port", "reload", "reload1_back"); LAi_SetActorType(characterFromID("Pieter Boelen")); Characters[GetCharacterIndex("Pieter Boelen")].dialog.currentnode = "begin_15"; LAi_ActorDialog(characterFromID("Pieter Boelen"), pchar, "", 1.0, 1.0); Pchar.quest.Turks_timer4.over = "yes"; break; case "aurevoir": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 15000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 15000); } bSuppressResurrection = false; AddMoneyToCharacter(pchar, 40000); AddQuestRecord("Turkshelp", 6); CloseQuestHeader("Turkshelp"); LAi_SetActorType(characterFromID("Pieter Boelen")); LAi_ActorRunToLocation(characterFromID("Pieter Boelen"), "reload", "reload3", "none", "", "", "Pieter_at_Douwesen", 30.0); if (GetRMRelation(PChar, PIRATE) < REL_AFTERATTACK) SetRMRelation(PChar, PIRATE, REL_AFTERATTACK); // GR: You helped a pirate settlement break; case "Turks_fin_timer": Characters[GetCharacterIndex("Pieter Boelen")].Location = "none"; Characters[GetCharacterIndex("Diego Cordoba")].Location = "none"; PChar.quest.Turkshelp = "end"; PChar.quest.Turkshelp.over = "yes"; AddQuestRecord("Turkshelp", 8); CloseQuestHeader("Turkshelp"); // PB: Open up all locations, just in case --> locations[FindLocation("Hispaniola_shore_01")].reload.l2.disable = 0; locations[FindLocation("Hispaniola_shore_01")].reload.l3.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l1.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l2.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l5.disable = 0; locations[FindLocation("Turks_Lighthouse")].reload.l3.disable = 0; locations[FindLocation("Turks_port")].reload.l5.disable = 0; //JRH: new Turks shipyard locations[FindLocation("Turks_port")].reload.l3.disable = 0; //JRH: new Turks townhall locations[FindLocation("Turks_port")].reload.l10.disable = 0; //JRH: new Turks store locations[FindLocation("Turks_port")].reload.l13.disable = 0; //JRH: new Turks blacksmith locations[FindLocation("Turks_port")].reload.l14.disable = 0; //JRH: new Turks library locations[FindLocation("Turks_port")].reload.l15.disable = 0; //JRH: new Turks tailor locations[FindLocation("Turks_port")].reload.l2.disable = false; //JRH: new Turks, unlocked to sea now instead // PB: Open up all locations, just in case --> break; case "Turks_timer1": PChar.quest.Turks_timer1.win_condition.l1 = "Timer"; PChar.quest.Turks_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 0, 15); PChar.quest.Turks_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 0, 15); PChar.quest.Turks_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 0, 15); PChar.quest.Turks_timer1.win_condition = "Turks_fin_timer"; break; case "Turks_timer2": PChar.quest.Turks_timer2.win_condition.l1 = "Timer"; PChar.quest.Turks_timer2.win_condition.l1.date.day = GetAddingDataDay(0, 0, 15); PChar.quest.Turks_timer2.win_condition.l1.date.month = GetAddingDataMonth(0, 0, 15); PChar.quest.Turks_timer2.win_condition.l1.date.year = GetAddingDataYear(0, 0, 15); PChar.quest.Turks_timer2.win_condition = "Turks_fin_timer"; break; case "Turks_timer3": PChar.quest.Turks_timer3.win_condition.l1 = "Timer"; PChar.quest.Turks_timer3.win_condition.l1.date.day = GetAddingDataDay(0, 0, 1); PChar.quest.Turks_timer3.win_condition.l1.date.month = GetAddingDataMonth(0, 0, 1); PChar.quest.Turks_timer3.win_condition.l1.date.year = GetAddingDataYear(0, 0, 1); PChar.quest.Turks_timer3.win_condition = "Turks_fin_timer"; break; case "Turks_timer4": PChar.quest.Turks_timer4.win_condition.l1 = "Timer"; PChar.quest.Turks_timer4.win_condition.l1.date.day = GetAddingDataDay(0, 0, 7); PChar.quest.Turks_timer4.win_condition.l1.date.month = GetAddingDataMonth(0, 0, 7); PChar.quest.Turks_timer4.win_condition.l1.date.year = GetAddingDataYear(0, 0, 7); PChar.quest.Turks_timer4.win_condition = "Turks_fin_timer"; break; case "Pieter_at_Douwesen": LAi_SetImmortal(CharacterFromID("Pieter Boelen"), 0); ChangeCharacterAddressGroup(CharacterFromID("Pieter Boelen"), "Douwesen_Tavern", "goto", "goto2"); LAi_SetCitizenType(characterFromID("Pieter Boelen")); Characters[GetCharacterIndex("Pieter Boelen")].dialog.filename = "Pieter at Douwesen_dialog.c"; break; /////////////////////////////////////////////////////////////// // Missing Man by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// case "Missing_start": SetEnterLocationQuest("PoPrince_town", "Missing_start_check", 0); break; case "Missing_start_check": if(makeint(PChar.rank) >= 15) { ChangeCharacterAddressGroup(CharacterFromID("Angelique Moulin"), "PoPrince_town", "goto", "goto17"); } break; case "Missing_search_refused": PChar.quest.Missingman = "refused"; DeleteEnterLocationQuest("PoPrince_town", "Missing_start_check"); LAi_SetActorType(characterFromID("Angelique Moulin")); LAi_ActorGoToLocation(characterFromID("Angelique Moulin"), "reload", "reload19", "none", "", "", "", 0.0); SetQuestHeader("Moulin"); AddQuestRecord("Moulin", 9); CloseQuestHeader("Moulin"); break; case "Missing_start_search": LAi_SetCitizenType(CharacterFromID("Angelique Moulin")); PChar.quest.Missingman = "search"; DeleteEnterLocationQuest("PoPrince_town", "Missing_start_check"); bSuppressResurrection = true; SetQuestHeader("Moulin"); AddQuestRecord("Moulin", 1); ChangeCharacterAddressGroup(CharacterFromID("Robert Durand"), "Buccaneers_Camp", "goto", "goto16"); ChangeCharacterAddressGroup(CharacterFromID("Buccaneer_01"), "Buccaneers_Camp", "goto", "goto42"); ChangeCharacterAddressGroup(CharacterFromID("Buccaneer_02"), "Buccaneers_Camp", "goto", "goto12"); ChangeCharacterAddressGroup(CharacterFromID("Buccaneer_03"), "Buccaneers_Camp", "goto", "goto15"); Characters[GetCharacterIndex("Robert Durand")].dialog.currentnode = "First time"; break; case "moulinplage": PChar.quest.Missingman = "voirmoulin"; AddQuestRecord("Moulin", 2); LAi_SetPlayerType (Pchar); LAi_SetActorType(characterFromID("Robert Durand")); LAi_ActorGoToLocation(characterFromID("Robert Durand"), "reload", "reload6", "none", "", "", "", 0.0); setCharacterShipLocation(characterFromID("Pieter Boelen"), "Hispaniola_shore_02"); ChangeCharacterAddressGroup(CharacterFromID("Francois Moulin"), "Hispaniola_shore_02", "goto", "locator12"); break; case "directionlefort": PChar.quest.Missingman = "voirchamfort"; AddQuestRecord("Moulin", 3); LAi_SetOfficerType(characterFromID("Robert Durand")); ChangeCharacterAddress(characterFromID("Robert Durand"), "none", ""); ChangeCharacterAddressGroup(CharacterFromID("Antoine Chamfort"), "PoPrince_fakefort3", "reload", "reloadc4"); break; case "antoinefort": locations[FindLocation("PoPrince_fakefort3")].reload.l1.disable = 1; locations[FindLocation("PoPrince_fakefort3")].reload.l2.disable = 1; locations[FindLocation("PoPrince_fakefort3")].reload.l3.disable = 1; LAi_SetActorType(pchar); LAi_ActorGoToLocation(PChar, "reload", "reload2", "none", "", "", "", 50); LAi_QuestDelay("coupbas", 1.0); break; case "coupbas": LAi_SetPlayerType (Pchar); LAi_SetActorType(characterFromID("Antoine Chamfort")); LAi_ActorAttack(CharacterFromID("Antoine Chamfort"), PChar, ""); pchar.quest.killing_chamfort.win_condition.l1 = "NPC_Death"; pchar.quest.killing_chamfort.win_condition.l1.character = "Antoine Chamfort"; pchar.quest.killing_chamfort.win_condition = "killing_chamfort"; break; case "killing_chamfort": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 2500); } locations[FindLocation("PoPrince_fakefort3")].reload.l1.disable = 0; locations[FindLocation("PoPrince_fakefort3")].reload.l2.disable = 0; locations[FindLocation("PoPrince_fakefort3")].reload.l3.disable = 0; LAi_group_SetRelation("FRANCE_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY); LAi_group_SetAlarm("FRANCE_SOLDIERS", LAI_GROUP_PLAYER, 0.0); AddQuestRecord("Moulin", 4); setCharacterShipLocation(characterFromID("Pieter Boelen"), "none"); Characters[GetCharacterIndex("Francois Moulin")].dialog.currentnode = "begin_9"; ChangeCharacterAddressGroup(CharacterFromID("Francois Moulin"), "Buccaneers_Camp", "goto", "goto37"); ChangeCharacterAddress(characterFromID("Antoine Chamfort"), "none", ""); break; case "retourprince": Preprocessor_AddQuestData("AntoineChamfort", GetMySimpleName(CharacterFromID("Antoine Chamfort"))); AddQuestRecord("Moulin", 5); Preprocessor_Remove("AntoineChamfort"); LAi_SetActorType(characterFromID("Francois Moulin")); LAi_ActorFollowEverywhere(characterFromID("Francois Moulin"), "", 60.0); Characters[GetCharacterIndex("Angelique Moulin")].dialog.currentnode = "begin_6"; break; case "recompense": Characters[GetCharacterIndex("Francois Moulin")].dialog.currentnode = "begin_12"; LAi_SetActorType(characterFromID("Francois Moulin")); LAi_ActorDialog(characterFromID("Francois Moulin"), pchar, "", 1.0, 1.0); break; case "justebijou": LAi_SetOfficerType(characterFromID("Buccaneer_01")); ChangeCharacterAddress(characterFromID("Buccaneer_01"), "none", ""); LAi_SetOfficerType(characterFromID("Buccaneer_02")); ChangeCharacterAddress(characterFromID("Buccaneer_02"), "none", ""); LAi_SetOfficerType(characterFromID("Buccaneer_03")); ChangeCharacterAddress(characterFromID("Buccaneer_03"), "none", ""); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 12500); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 12500); } bSuppressResurrection = false; AddQuestRecord("Moulin", 6); CloseQuestHeader("Moulin"); GiveItem2Character(pchar, "jewelry2"); LAi_SetActorType(characterFromID("Francois Moulin")); LAi_ActorGoToLocation(characterFromID("Francois Moulin"), "reload", "reload19", "none", "", "", "", 0.0); LAi_SetActorType(characterFromID("Angelique Moulin")); LAi_ActorGoToLocation(characterFromID("Angelique Moulin"), "reload", "reload19", "none", "", "", "", 0.0); break; case "lesdeuxchoses": LAi_SetOfficerType(characterFromID("Buccaneer_01")); ChangeCharacterAddress(characterFromID("Buccaneer_01"), "none", ""); LAi_SetOfficerType(characterFromID("Buccaneer_02")); ChangeCharacterAddress(characterFromID("Buccaneer_02"), "none", ""); LAi_SetOfficerType(characterFromID("Buccaneer_03")); ChangeCharacterAddress(characterFromID("Buccaneer_03"), "none", ""); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 12500); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 12500); } bSuppressResurrection = false; GiveItem2Character(pchar, "jewelry2"); if (GetCurrentPeriod() == PERIOD_EARLY_EXPLORERS) { GiveItem2Character(pchar, "old_journal2"); AddQuestRecord("Moulin", 10); } else { AddQuestRecord("Moulin", 7); GiveItem2Character(pchar, "old_journal"); } LAi_SetActorType(characterFromID("Francois Moulin")); LAi_ActorGoToLocation(characterFromID("Francois Moulin"), "reload", "reload19", "none", "", "", "", 0.0); LAi_SetActorType(characterFromID("Angelique Moulin")); LAi_ActorGoToLocation(characterFromID("Angelique Moulin"), "reload", "reload19", "none", "", "", "", 0.0); if (GetCurrentPeriod() == PERIOD_EARLY_EXPLORERS) { pchar.quest.epeeperdue.win_condition.l1 = "locator"; pchar.quest.epeeperdue.win_condition.l1.location = "Cuba_Jungle_03"; pchar.quest.epeeperdue.win_condition.l1.locator_group = "goto"; pchar.quest.epeeperdue.win_condition.l1.locator = "citizen010"; pchar.quest.epeeperdue.win_condition = "cachette"; } else { pchar.quest.epeeperdue.win_condition.l1 = "locator"; pchar.quest.epeeperdue.win_condition.l1.location = "Antigua_Jungle_01"; pchar.quest.epeeperdue.win_condition.l1.locator_group = "goto"; pchar.quest.epeeperdue.win_condition.l1.locator = "citizen010"; pchar.quest.epeeperdue.win_condition = "cachette"; } break; case "cachette": LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Francis_sword"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "jelaifini": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 15000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 15000); } if (GetCurrentPeriod() == PERIOD_EARLY_EXPLORERS) { AddQuestRecord("Moulin", 11); GiveItem2Character(pchar, "blangel"); // Grey Roger: Angel sword instead because Drake is using his own sword } else { AddQuestRecord("Moulin", 8); GiveItem2Character(pchar, "bladeFD"); // KevAtl update for new SLiB blades 09-07-2007 } CloseQuestHeader("Moulin"); break; /////////////////////////////////////////////////////////////// // Santiago by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// case "Santiago_start": SetEnterLocationQuest("Guadeloupe_Port", "Santiago_start_check", 0); break; case "Santiago_start_check": if (makeint(pchar.rank) >= 14 && FindFellowTravellers(PChar, CharacterFromId("Bartolomeu O Portugues")) == FELLOWTRAVEL_OFFICER && PChar.Quest.Bartolomeu == "1") { LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorRunToLocator(characterFromID("Bartolomeu O Portugues"), "reload", "reload6_back", "Barto_store", 20.0); LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Bart_court"; LAi_ActorSelfDialog(Pchar, "player_back"); } break; case "Barto_store": DeleteEnterLocationQuest("Guadeloupe_Port", "Santiago_start_check"); ChangeCharacterAddress(characterFromID("Bartolomeu O Portugues"), "none", ""); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); PChar.quest.santiago = "depart"; Pchar.quest.Santiago.win_condition.l1 = "location"; Pchar.quest.Santiago.win_condition.l1.location = "Pointe_a_pitre_store"; PChar.quest.Santiago.win_condition = "Santiago_start_check_1"; break; case "Santiago_start_check_1": ChangeCharacterAddressGroup(CharacterFromID("Francisco Cruz"), "Pointe_a_pitre_store", "goto", "goto5"); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.filename = "Bartolomeu o Portugues_dialog.c"; Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_44"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 0.0, 1.0); break; case "Santiago_search_refused": PChar.quest.santiago = "refused"; LAi_SetActorType(characterFromID("Francisco Cruz")); LAi_ActorGoToLocation(characterFromID("Francisco Cruz"), "reload", "reload1", "none", "", "", "", 0.0); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.filename = "Enc_Officer_dialog.c"; Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.CurrentNode = "hired"; SetQuestHeader("Santiago"); AddQuestRecord("Santiago", 11); CloseQuestHeader("Santiago"); break; case "Santiago_start_search": PChar.quest.santiago = "search"; bSuppressResurrection = true; locations[FindLocation("Guadeloupe_Port")].reload.l11.disable = 1; locations[FindLocation("Guadeloupe_Jungle_03")].reload.l3.disable = 1; locations[FindLocation("Guadeloupe_Jungle_03")].reload.l5.disable = 1; locations[FindLocation("PaP_Guardhouse")].reload.l2.disable = 1; locations[FindLocation("Guadeloupe_Port")].reload.l1.disable = 1; pchar.location.from_sea = "Guadeloupe_Port"; SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); break; case "Sailorbye": LAi_SetActorType(characterFromID("Francisco Cruz")); LAi_ActorGoToLocation(characterFromID("Francisco Cruz"), "reload", "reload1", "none", "", "", "", 0.0); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_51"; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 10.0, 1.0); break; case "directbrothel": SetQuestHeader("Santiago"); AddQuestRecord("Santiago", 1); LAi_SetPlayerType(pchar); LAi_SetOfficerType(characterFromID("Bartolomeu o Portugues")); LAi_SetImmortal(characterFromID("Bartolomeu O Portugues"), true); ChangeCharacterAddressGroup(CharacterFromID("Jean Dusac"), "Guadeloupe_Port", "officers", "houseS2_1"); break; case "directstonehouse": AddQuestRecord("Santiago", 2); PChar.quest.santiago = "madame"; ChangeCharacterAddressGroup(CharacterFromID("Cecile Bienbonne"), "StoneHouse", "reload", "reload1"); Locations[FindLocation("StoneHouse")].vcskip = true; break; case "directjail": AddQuestRecord("Santiago", 3); PChar.quest.santiago = "jail"; Pchar.quest.Santiago.win_condition.l1 = "location"; Pchar.quest.Santiago.win_condition.l1.location = "Guadeloupe_Port"; PChar.quest.Santiago.win_condition = "anyinfo"; break; case "anyinfo": PChar.quest.santiago = "jail_2"; LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_52"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 0.0, 1.0); ChangeCharacterAddressGroup(CharacterFromID("Etienne Dupuis"), "PaP_Guardhouse", "reload", "reload1"); break; case "txikimoi": ChangeCharacterAddressGroup(CharacterFromID("Etienne Dupuis"), "PaP_Prison", "goto", "goto14"); ChangeCharacterAddressGroup(CharacterFromID("Txiki Pijuan"), "PaP_Prison", "goto", "goto9"); break; case "plusinfo": ChangeCharacterAddressGroup(CharacterFromID("Bartolomeu o Portugues"), "Guadeloupe_Port", "goto", "goto8"); SetEnterLocationQuest("Guadeloupe_Port", "plusinfo_2", 0); break; case "plusinfo_2": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorFollow(characterFromID("Bartolomeu O Portugues"), PChar, "plusinfo_3", 1.5); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_53"; break; case "plusinfo_3": LAi_ActorWaitDialog(PChar, characterFromID("Bartolomeu o Portugues")); LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 0.0, 1.0); DeleteEnterLocationQuest("Guadeloupe_Port", "plusinfo_2"); break; case "txikilibre": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_56"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 0.0, 1.0); break; case "txikilibre_2": ChangeCharacterAddressGroup(CharacterFromID("Txiki Pijuan"), "PAP_Arsenal", "reload", "reload2"); Characters[GetCharacterIndex("Txiki Pijuan")].dialog.currentnode = "begin_14"; break; case "infobarto": AddQuestRecord("Santiago", 7); PChar.quest.santiago = "payertavernier"; LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Txiki Pijuan")); LAi_ActorRunToLocation(characterFromID("Txiki Pijuan"), "reload", "reload1", "none", "", "", "", 0.0); break; case "directavernier": PChar.quest.santiago = "payerhum"; SetCurrentTime(23, 0); DoReloadCharacterToLocation("Guadeloupe_Port", "reload", "reload4_back"); characters[GetCharacterIndex("Cecile Bienbonne")].location = "none"; characters[GetCharacterIndex("Jean Dusac")].location = "none"; characters[GetCharacterIndex("Etienne Dupuis")].location = "none"; LAi_QuestDelay("justeinfo", 0.5); break; case "justeinfo": Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_57"; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 0.0, 1.0); break; case "newverif": LAi_type_actor_Reset(characterFromID("Txiki Pijuan")); LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto15", "", 7.0); LAi_QuestDelay("jelesvois", 7.0); break; case "jelesvois": LAi_SetActorType(pchar); LAi_ActorTurnToCharacter(pchar, characterFromID("Guadeloupe_guard_2")); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat1", "goto", "goto19"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "soulard1"; LAi_SetActorType(characterFromID("soulard1")); LAi_ActorRunToLocation(characterFromID("soulard1"), "reload", "reload4_back", "none", "", "", "", 13.0); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat2", "goto", "goto19"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "soulard2"; LAi_SetActorType(characterFromID("soulard2")); LAi_ActorRunToLocation(characterFromID("soulard2"), "reload", "reload4_back", "none", "", "", "", 13.0); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat3", "goto", "goto19"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "soulard3"; LAi_SetActorType(characterFromID("soulard3")); LAi_ActorRunToLocation(characterFromID("soulard3"), "reload", "reload4_back", "none", "", "", "", 13.0); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat4", "goto", "goto19"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "soulard4"; LAi_SetActorType(characterFromID("soulard4")); LAi_ActorRunToLocation(characterFromID("soulard4"), "reload", "reload4_back", "none", "", "", "", 13.0); LAi_QuestDelay("rejointpijuan", 14.0); break; case "rejointpijuan": locations[FindLocation("Guadeloupe_Port")].reload.l6.disable = 1; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_58"; LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 0.0, 1.0); break; case "pijuanplantation": AddQuestRecord("Santiago", 8); LAi_SetCivilianGuardianType(characterFromID("Txiki Pijuan")); setCharacterShipLocation(characterFromID("Txiki Pijuan"), "Guadeloupe_shore_01"); ChangeCharacterAddressGroup(CharacterFromID("Txiki Pijuan"), "Guadeloupe_Jungle_03", "goto", "goto8"); GiveItem2Character(characterFromID("Txiki Pijuan"),"bladeC12"); EquipCharacterByItem(characterFromID("Txiki Pijuan"),"bladeC12"); GiveItem2Character(CharacterFromId("Txiki Pijuan"),"pistol3"); EquipCharacterByItem(CharacterFromId("Txiki Pijuan"), "pistol3"); //JRH ammo mod --> if (ENABLE_AMMOMOD) { // LDH change TakenItems(CharacterFromId("Txiki Pijuan"), "gunpowder", 6); TakenItems(CharacterFromId("Txiki Pijuan"), "pistolgrapes", 6); } //JRH ammo mod <-- Characters[GetCharacterIndex("Txiki Pijuan")].dialog.currentnode = "begin_17"; PChar.quest.santiago = "rencgarda"; Pchar.quest.Santiago.win_condition.l1 = "location"; Pchar.quest.Santiago.win_condition.l1.location = "Guadeloupe_shore_01"; PChar.quest.Santiago.win_condition = "ansegardes"; break; case "ansegardes": locations[FindLocation("Guadeloupe_shore_01")].reload.l1.disable = 1; locations[FindLocation("Guadeloupe_shore_01")].reload.l3.disable = 1; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat1", "goto", "locator10"); sld.dialog.filename = "garda_dialog.c"; sld.id = "garda1"; LAi_SetGuardianType(characterFromID("garda1")); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat2", "goto", "citizen07"); sld.dialog.filename = "garda_dialog.c"; sld.id = "garda2"; LAi_SetGuardianType(characterFromID("garda2")); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "SHORE_GARDAS"); break; case "directbarco": LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_59"; LAi_ActorDialog(characterFromID("Bartolomeu o Portugues"), pchar, "", 2.0, 1.0); break; case "directbarco1": DoQuestReloadToLocation("Santiago_ship", "reload", "locator2", "directbarco2"); break; case "directbarco2": LAi_SetActorType(pchar); LAi_ActorGoToLocator(pchar, "goto", "goto9", "directbarco3", 14.0); break; case "directbarco3": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat3", "goto", "goto4"); sld.dialog.filename = "garda_dialog.c"; sld.id = "garda3"; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("garda3")); Characters[GetCharacterIndex("garda3")].dialog.currentnode = "begin_3"; LAi_ActorWaitDialog(CharacterFromID("garda3"), Pchar); LAi_ActorDialog(pchar, characterFromID("garda3"), "", 0.0, 1.0); break; case "directbarco4": LAi_SetActorType(characterFromID("garda3")); LAi_ActorAttack(CharacterFromID("garda3"), PChar, ""); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat4", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat5", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat6", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat7", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat8", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat9", "reload", "locator2"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "BARCO_GARDAS"); LAi_group_FightGroups("BARCO_GARDAS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("BARCO_GARDAS", "directbarco5"); break; case "directbarco5": LAi_KillCharacter(characterFromID("garda3")); LAi_QuestDelay("directbarco6", 1.0); break; case "directbarco6": ChangeCharacterAddressGroup(CharacterFromID("Pedro Rivera"), "Santiago_ship", "reload", "locator2"); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Pedro Rivera")); Characters[GetCharacterIndex("Pedro Rivera")].Dialog.CurrentNode = "begin_13"; LAi_ActorWaitDialog(CharacterFromID("Pedro Rivera"), Pchar); LAi_ActorDialog(pchar, characterFromID("Pedro Rivera"), "", 0.0, 1.0); break; case "directbarco7": LAi_SetImmortal(characterFromID("Pedro Rivera"), true); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_62"; LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 0.0, 1.0); break; case "directbarco8": LAi_SetActorType(characterFromID("Pedro Rivera")); Characters[GetCharacterIndex("Pedro Rivera")].dialog.currentnode = "begin_17"; LAi_ActorWaitDialog(CharacterFromID("Pedro Rivera"), Pchar); LAi_ActorDialog(pchar, characterFromID("Pedro Rivera"), "", 0.0, 1.0); break; case "directbarco9": LAi_SetActorType(characterFromID("Pedro Rivera")); LAi_ActorAttack(CharacterFromID("Pedro Rivera"), CharacterFromID("Bartolomeu O Portugues"), ""); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); LAi_ActorAttack(CharacterFromID("Bartolomeu O Portugues"), CharacterFromID("Pedro Rivera"), ""); LAi_SetPlayerType(pchar); LAi_QuestDelay("directbarco10", 15.0); break; case "directbarco10": pchar.location.from_sea = "Guadeloupe_shore_01"; SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); LAi_KillCharacter(characterFromID("Pedro Rivera")); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Bartolomeu O Portugues")); Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.currentnode = "begin_63"; LAi_ActorWaitDialog(CharacterFromID("Bartolomeu O Portugues"), Pchar); LAi_ActorDialog(pchar, characterFromID("Bartolomeu O Portugues"), "", 0.0, 1.0); break; case "directbarco11": DoQuestReloadToLocation("Guadeloupe_shore_01", "reload", "reload_3", "Pijuanofficer"); LAi_SetImmortal(characterFromID("Bartolomeu O Portugues"), false); break; case "Pijuanofficer": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 25000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 25000); } bSuppressResurrection = false; locations[FindLocation("Guadeloupe_Port")].reload.l6.disable = 0; locations[FindLocation("Guadeloupe_shore_01")].reload.l1.disable = 0; locations[FindLocation("Guadeloupe_shore_01")].reload.l3.disable = 0; locations[FindLocation("Guadeloupe_Port")].reload.l11.disable = 0; locations[FindLocation("PaP_Guardhouse")].reload.l2.disable = 0; locations[FindLocation("Guadeloupe_Port")].reload.l1.disable = 0; ChangeCharacterAddressGroup(CharacterFromID("Txiki Pijuan"), "Guadeloupe_shore_01", "goto", "locator11"); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Txiki Pijuan")); Characters[GetCharacterIndex("Txiki Pijuan")].dialog.currentnode = "begin_20"; LAi_ActorWaitDialog(CharacterFromID("Txiki Pijuan"), Pchar); LAi_ActorDialog(pchar, characterFromID("Txiki Pijuan"), "", 0.0, 1.0); SetCompanionIndex(pchar, -1, getcharacterIndex("Txiki Pijuan")); SetCharacterRemovable(characterFromID("Txiki Pijuan"), true); LAi_SetOfficerType(characterFromID("Txiki Pijuan")); LAi_SetImmortal(characterFromID("Txiki Pijuan"), false); // PB Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.filename = "Enc_Officer_dialog.c"; Characters[GetCharacterIndex("Bartolomeu o Portugues")].dialog.CurrentNode = "hired"; AddQuestRecord("Santiago", 10); CloseQuestHeader("Santiago"); break; /////////////////////////////////////////////////////////////// // First Contact by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// case "Contact_start": SetEnterLocationQuest("Grand_Cayman_townhall", "Contact_start_check", 0); break; case "Contact_start_check": if(makeint(PChar.rank) >= 6) { PChar.quest.Firstcontact = "debut"; } break; case "Contact_start_search": PChar.quest.Firstcontact = "search"; DeleteEnterLocationQuest("Grand_Cayman_townhall", "Contact_start_check"); bSuppressResurrection = true; SetQuestHeader("Contact"); AddQuestRecord("Contact", 1); break; case "Contact_arendt": PChar.quest.Firstcontact = "search2"; AddQuestRecord("Contact", 9); break; case "searchdebris": PChar.quest.Firstcontact = "chest"; AddQuestRecord("Contact", 5); Pchar.quest.find_dead.win_condition.l1 = "location"; Pchar.quest.find_dead.win_condition.l1.location = "SaintMartin_shore_02"; PChar.quest.find_dead.win_condition = "crewmemberdead"; break; case "crewmemberdead": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m2, "goto", "citizen07"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld.dialog.filename = "Octave Fabre_dialog.c"; sld.dialog.currentnode = "Smallchest"; LAi_ActorWaitDialog(sld, pchar); //CTM LAi_ActorDialog(pchar, sld, "", 4.0, 1.0); //CTM break; case "jela": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 1500); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 1500); } PChar.quest.Firstcontact = "oldadmiral"; GiveItem2Character(pchar, "small_chest"); ChangeCharacterAddressGroup(CharacterFromID("Octave Fabre"), "PaP_Academy", "sit", "sit1"); ChangeCharacterAddress(characterFromID("Reynoud Verheugen"), "none", ""); AddQuestRecord("Contact", 6); break; case "pap_storm": PChar.quest.Firstcontact = "warning"; Pchar.quest.davycrew.win_condition.l1 = "location"; Pchar.quest.davycrew.win_condition.l1.location = "Guadeloupe_Port"; PChar.quest.davycrew.win_condition = "pap_storm1"; DisableFastTravel(true); DisableMenuLaunch(true); break; case "pap_storm1": LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "pap_storm"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "davywarning": ChangeCharacterAddressGroup(CharacterFromID("Davycrew_01"), "Guadeloupe_Port", "goto", "goto24"); ChangeCharacterAddressGroup(CharacterFromID("Davycrew_02"), "Guadeloupe_Port", "goto", "goto3"); LAi_SetActorType(CharacterFromID("Davycrew_02")); LAi_ActorFollow(CharacterFromID("Davycrew_02"), pchar, "", 10); LAi_SetActorType(characterfromID("davycrew_01")); LAi_ActorDialog(characterfromID("davycrew_01"), PChar, "", 0.5, 10); break; case "Contact_antigua": DisableFastTravel(false); DisableMenuLaunch(false); ChangeCharacterAddressGroup(CharacterFromID("Davycrew_01"), "", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Davycrew_02"), "", "", ""); Characters[GetCharacterIndex("antigua_portadmiral")].dialog.CurrentNode = "contact_return1"; AddQuestRecord("Contact", 10); break; case "Contact_NoLuck": Characters[GetCharacterIndex("antigua_portadmiral")].dialog.CurrentNode = "First time"; PChar.quest.Firstcontact = "prepare_davyencounter"; AddQuestRecord("Contact", 11); Group_CreateGroup("FlyingDutchman"); Group_AddCharacter("FlyingDutchman", "Davy Jones"); Group_SetGroupCommander("FlyingDutchman", "Davy Jones"); Group_SetPursuitGroup("FlyingDutchman", PLAYER_GROUP); Group_SetTaskAttack("FlyingDutchman", PLAYER_GROUP, true); Group_SetAddress("FlyingDutchman", "Cayman", "Quest_ships", "Quest_ship_12"); Group_LockTask("FlyingDutchman"); UpdateRelations(); characters[GetCharacterIndex("Davy Jones")].nosurrender = 2; Characters[GetCharacterIndex("Davy Jones")].recognized = true; Character_SetAbordageEnable(characterFromID("Davy Jones"), false); // KK --> PChar.quest.PrepareDavyEncounter.win_condition.l1 = "MapEnter"; PChar.quest.PrepareDavyEncounter.win_condition = "PrepareDavyEncounter"; // <-- KK break; // KK --> case "PrepareDavyEncounter": SetNextWeather("Day Storm"); PChar.quest.StartDavyEncounter.win_condition.l1 = "SeaEnter"; PChar.quest.StartDavyEncounter.win_condition = "StartDavyEncounter"; break; case "StartDavyEncounter": PChar.quest.voirdavy.win_condition.l1 = "location"; PChar.quest.voirdavy.win_condition.l1.location = GetCharacterShipQDeck(PChar); PChar.quest.voirdavy.win_condition = "voirdavy"; bQuestDisableAllCommands = true; Sea_DeckStartNow(GetMainCharacterIndex(), GetCharacterShipQDeck(PChar)); break; // <-- KK case "voirdavy": //ChangeCharacterAddressGroup(CharacterFromID("Davycrew_01"), PChar.location, "rld", "loc0"); SetCharacterToNearLocatorFromMe("Davy Jones", 3); //SetCharacterToNearLocatorFromMe("Davycrew_01", 10); LAi_type_actor_Reset(characterFromID("Davycrew_02")); //ChangeCharacterAddressGroup(CharacterFromID("Davy Jones"), PChar.location, "rld", "loc2"); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Davy Jones")); LAi_ActorWaitDialog(CharacterFromID("Davy Jones"), Pchar); LAi_ActorDialog(pchar, characterFromID("Davy Jones"), "", 10.0, 1.0); break; case "davy_leave": ChangeCharacterAddressGroup(CharacterFromID("Davycrew_01"), "", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Davy Jones"), "", "", ""); LAi_QuestDelay("meetdaughter", 1.0); break; case "meetdaughter": PChar.quest.Firstcontact = "daughter"; ChangeCharacterAddress(characterFromID("Octave Fabre"), "none", ""); SetCharacterToNearLocatorFromMe("Elizabeth Shaw", 3); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Elizabeth Shaw")); LAi_ActorWaitDialog(CharacterFromID("Elizabeth Shaw"), Pchar); LAi_ActorDialog(pchar, characterFromID("Elizabeth Shaw"), "", 10.0, 1.0); break; case "sailtocayman": bQuestDisableAllCommands = false; // PB PChar.quest.Firstcontact = "gotocayman"; AddQuestRecord("Contact", 7); ChangeCharacterAddressGroup(CharacterFromID("Edmund Christobel Shaw"), "Grand_Cayman_townhall", "goto", "goto6"); LAi_SetCivilianGuardianType(characterFromID("Edmund Christobel Shaw")); Characters[GetCharacterIndex("Edmund Christobel Shaw")].dialog.CurrentNode = "gov_6"; LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Elizabeth Shaw")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Shaw"), "", 60.0); SetCharacterRelationBoth(GetCharacterIndex("Davy Jones"),GetMainCharacterIndex(),RELATION_ENEMY); SetCharacterRelationBoth(GetCharacterIndex("Grand Cayman Commander"),GetCharacterIndex("Davy Jones"),RELATION_FRIEND); SetCharacterRelationBoth(GetCharacterIndex("Grand Cayman Commander"),GetMainCharacterIndex(),RELATION_FRIEND); break; case "goportcayman": LAi_SetPlayerType(pchar); LAi_type_actor_Reset(characterFromID("Elizabeth Shaw")); DisableFastTravel(true); DisableMenuLaunch(true); Pchar.quest.find_davy.win_condition.l1 = "locator"; Pchar.quest.find_davy.win_condition.l1.location = "Grand_Cayman_townhall"; pchar.quest.find_davy.win_condition.l1.locator_group = "reload"; pchar.quest.find_davy.win_condition.l1.locator = "reload1"; PChar.quest.find_davy.win_condition = "gotoseedavy"; break; case "gotoseedavy": SetNextWeather("Black Pearl Fight"); DoQuestReloadToLocation("Quest_Grand_Cayman_town", "reload", "reload15", "_"); locations[FindLocation("Quest_Grand_Cayman_town")].reload.l1.disable = 1; break; case "davy_townfight1": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m6, "goto", "goto28"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto29"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto14"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto1"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto2"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "officers", "reload13_3"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetImmortal(sld,true); // ------------------- sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy1", "goto", "goto1"); sld.name = "Angler"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy2", "goto", "goto3"); sld.name = "Ogilvey"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy3", "goto", "goto4"); sld.name = "Maccus"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy4", "goto", "goto5"); sld.name = "Clanker"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy5", "goto", "goto6"); sld.name = "Hadras"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy1", "goto", "goto7"); sld.name = "Urchin"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy2", "goto", "goto8"); sld.name = "Wheelback"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy3", "goto", "goto9"); sld.name = "Wyvern"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy4", "goto", "goto10"); sld.name = "Quittance"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy5", "goto", "goto30"); sld.name = "Penrod"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); LAi_group_FightGroups("DAVY_CREW", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("DAVY_CREW", "davy_townfight2"); break; case "davy_townfight2": //ChangeCharacterAddressGroup(characterFromID("Davy Jones"), "Quest_Cayman_Port", "officers", "sea_3"); ChangeCharacterAddressGroup(characterFromID("Davy Jones"), "Quest_Cayman_Port", "goto", "goto8"); LAi_SetCivilianGuardianType(characterFromID("Davy Jones")); ChangeCharacterAddressGroup(CharacterFromID("Davycrew_01"), "Quest_Cayman_Port", "goto", "soldier_01"); ChangeCharacterAddressGroup(CharacterFromID("Davycrew_02"), "Quest_Cayman_Port", "goto", "goto3"); Characters[GetCharacterIndex("Davy Jones")].dialog.CurrentNode = "begin_14"; locations[FindLocation("Quest_Grand_Cayman_town")].reload.l1.disable = 0; setCharacterShipLocation(characterFromID("Davy Jones"), "Quest_Cayman_Port"); Pchar.quest.davymeet.win_condition.l1 = "location"; Pchar.quest.davymeet.win_condition.l1.location = "Quest_Cayman_Port"; PChar.quest.davymeet.win_condition = "davyonshore"; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy1", "reload", "reload9"); sld.name = "Angler"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy2", "officers", "reload9_1"); sld.name = "Ogilvey"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy3", "officers", "reload9_2"); sld.name = "Maccus"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy4", "officers", "reload9_3"); sld.name = "Clanker"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy5", "goto", "goto1"); sld.name = "Hadras"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy1", "goto", "goto2"); sld.name = "Urchin"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy2", "goto", "goto3"); sld.name = "Wheelback"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy3", "reload", "reload8"); sld.name = "Wyvern"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy4", "officers", "reload8_1"); sld.name = "Quittance"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "davy5", "officers", "reload8_2"); sld.name = "Penrod"; sld.lastname = ""; LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "DAVY_CREW"); LAi_group_FightGroups("DAVY_CREW", LAI_GROUP_PLAYER, true); break; case "davyonshore": PChar.quest.Firstcontact = "davytalks"; Characters[GetCharacterIndex("Davycrew_01")].dialog.CurrentNode = "begin_5"; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat3", "goto", "locator28"); LAi_SetHP(sld, 80.0, 80.0); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m6, "goto", "goto1"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "officers", "sea_1"); // PB LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_SetActorType(characterfromID("davycrew_01")); LAi_ActorDialog(characterfromID("davycrew_01"), PChar, "", 0.5, 10); break; case "davyonshore2": LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto5", "davyonshore3", 10.0); break; case "davyonshore3": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Davy Jones")); LAi_ActorWaitDialog(CharacterFromID("Davy Jones"), Pchar); LAi_ActorDialog(pchar, characterFromID("Davy Jones"), "", 10.0, 1.0); break; case "pushdavy": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Davy Jones")); LAi_ActorAnimation(pchar, "attack_2", "davywater", 0.0); PlaySound("OBJECTS\duel\punch1.wav"); break; case "davywater": //ChangeCharacterAddressGroup(characterFromID("Davy Jones"), "Quest_Cayman_Port", "reload", "sea"); ChangeCharacterAddressGroup(characterFromID("Davy Jones"), "Quest_Cayman_Port", "goto", "goto7"); LAi_SetActorType(characterFromID("Davy Jones")); LAi_ActorAnimation(characterFromID("Davy Jones"), "Ground_StandUp", "davyinwater", 3.0); break; case "davyinwater": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Davy Jones")); Characters[GetCharacterIndex("Davy Jones")].dialog.currentnode = "begin_16"; LAi_ActorWaitDialog(CharacterFromID("Davy Jones"), Pchar); LAi_ActorDialog(PChar, characterFromID("Davy Jones"), "", 0.0, 1.0); break; case "davyshootsme": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Davy Jones")); LAi_ActorAttack(characterFromID("Davy Jones"), pchar, ""); LAi_QuestDelay("davyhurtme", 2.7); break; case "davyhurtme": bSuppressResurrection = true; LAi_SetStayType(CharacterFromID("Davy Jones")); Lai_KillCharacter(pchar); LAi_QuestDelay("preroomcayman", 3.0); LAi_QuestDelay("goroomcayman", 6.0); break; case "preroomcayman": ChangeCharacterAddress(characterFromID("Davy Jones"), "none", ""); break; case "goroomcayman": DoQuestReloadToLocation("Grand_Cayman_Tavern_upstairs", "goto", "goto4", "_"); locations[FindLocation("Grand_Cayman_Tavern_upstairs")].reload.l1.disable = 1; LAi_SetPlayerType(pchar); LAi_SetCurHP(pchar, LAi_GetCharacterMaxHP(pchar)); // PB: To heal character ChangeCharacterAddressGroup(CharacterFromID("Elizabeth Shaw"), "Grand_Cayman_Tavern_upstairs", "goto", "goto7"); Characters[GetCharacterIndex("Elizabeth Shaw")].dialog.CurrentNode = "begin_4"; LAi_SetActorType(characterfromID("Elizabeth Shaw")); LAi_ActorDialog(characterfromID("Elizabeth Shaw"), PChar, "", 0.5, 10); bSuppressResurrection = false; break; case "goresidencecayman": DisableFastTravel(false); DisableMenuLaunch(false); SetNextWeather("Blue Sky"); locations[FindLocation("Grand_Cayman_Tavern_upstairs")].reload.l1.disable = 0; LAi_SetActorType(characterFromID("Elizabeth Shaw")); LAi_ActorGoToLocation(characterFromID("Elizabeth Shaw"), "reload", "reload1", "none", "", "", "", 0.0); Characters[GetCharacterIndex("Edmund Christobel Shaw")].dialog.CurrentNode = "gov_8"; ChangeCharacterAddressGroup(CharacterFromID("Edmund Christobel Shaw"), "Grand_Cayman_townhall", "sit", "sit2"); LAi_SetHuberType(characterfromID("Edmund Christobel Shaw")); Group_SetAddressNone("FlyingDutchman"); break; case "beaufinal": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 25000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 25000); } bSuppressResurrection = false; AddMoneyToCharacter(pchar, 40000); AddQuestRecord("Contact", 8); CloseQuestHeader("Contact"); break; /////////////////////////////////////////////////////////////// // Jackpot by Bartolomeu o Portugues /////////////////////////////////////////////////////////////// case "Jackpot_start": SetEnterLocationQuest("Tortuga_tavern", "Jackpot_start_check", 0); break; case "Jackpot_start_check": if(makeint(PChar.rank) >= 12) { PChar.quest.Jackpot = "debuter"; } break; case "Jackpot_start_search": PChar.quest.Jackpot = "search"; DeleteEnterLocationQuest("Tortuga_tavern", "Jackpot_start_check"); SetQuestHeader("Jackpot"); AddQuestRecord("Jackpot", 1); // locations[FindLocation("Tortuga_town_01")].reload.l6.disable = 0; locations[FindLocation("Tortuga_port")].reload.l18.disable = 0; //JRH: moved Will Turner's house // PB --> Characters[GetCharacterIndex("Elizabeth Swann")].model = "lizswann"; //GR: use new pirate Elizabeth Swann model Characters[GetCharacterIndex("Elizabeth Swann")].model.ani = "woman_sit"; GiveItem2Character(GetCharacterIndex("Elizabeth Swann"), "blade6"); GiveItem2Character(GetCharacterIndex("Elizabeth Swann"), "pistol7"); Characters[GetCharacterIndex("Elizabeth Swann")].equip.blade = "blade6"; Characters[GetCharacterIndex("Elizabeth Swann")].equip.gun = "pistol7"; Characters[GetCharacterIndex("Elizabeth Swann")].nation = PIRATE; // PB <-- ChangeCharacterAddressGroup(CharacterFromID("Will Turner"), "Will_Turner_house_inside", "goto", "goto2"); ChangeCharacterAddressGroup(CharacterFromID("Elizabeth Swann"), "Will_Turner_house_inside", "goto", "goto1"); Pchar.quest.meetturner.win_condition.l1 = "location"; Pchar.quest.meetturner.win_condition.l1.location = "Will_Turner_house_inside"; PChar.quest.meetturner.win_condition = "MeetTurner"; locations[FindLocation("Will_Turner_house_inside")].vcskip = true; break; case "MeetTurner": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorWaitDialog(CharacterFromID("Will Turner"), Pchar); LAi_ActorDialog(pchar, characterFromID("Will Turner"), "", 10.0, 1.0); break; case "talktoswann": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorWaitDialog(CharacterFromID("Elizabeth Swann"), Pchar); LAi_ActorDialog(pchar, characterFromID("Elizabeth Swann"), "", 10.0, 1.0); break; case "leavetortuga": PChar.quest.Jackpot = "gobattlerocks"; bSuppressResurrection = true; AddQuestRecord("Jackpot", 2); LAi_SetPlayerType(pchar); LAi_SetCitizenType(characterFromID("Will Turner")); LAi_SetCitizenType(characterFromID("Elizabeth Swann")); SetCompanionIndex(Pchar, -1, GetCharacterIndex("Will Turner")); SetCharacterRemovable(characterFromID("Will Turner"), false); Island_SetReloadEnableLocal("Battle_Rocks", "reload_2", true); Islands[FindIsland("Battle_Rocks")].reload.l1.goto_enable = true; // PB locations[FindLocation("Battle_Rocks_Jungle_01")].vcskip = true; locations[FindLocation("Battle_Rocks_Jungle_02")].vcskip = true; locations[FindLocation("Spanish_Camp")].vcskip = true; locations[FindLocation("Battle_Rocks_Jungle_03")].vcskip = true; locations[FindLocation("Battle_Rocks_Jungle_04")].vcskip = true; locations[FindLocation("Battle_Rocks_Jungle_05")].vcskip = true; pchar.quest.todevilcreek.win_condition.l1 = "location"; pchar.quest.todevilcreek.win_condition.l1.location = "Devil_Creek"; pchar.quest.todevilcreek.win_condition = "to_Devil_Creek"; break; case "jackpotrefused": PChar.quest.Jackpot = "fin"; AddQuestRecord("Jackpot", 3); CloseQuestHeader("Jackpot"); LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorGoToLocation(characterFromID("Will Turner"), "reload", "reload1", "none", "", "", "", 0.0); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorGoToLocation(characterFromID("Elizabeth Swann"), "reload", "reload1", "none", "", "", "", 0.0); break; case "to_Devil_Creek": LAi_SetCivilianGuardianType(characterFromID("Will Turner")); LAi_SetCivilianGuardianType(characterFromID("Elizabeth Swann")); ChangeCharacterAddressGroup(CharacterFromID("Will Turner"), "Devil_Creek", "goto", "locator10"); ChangeCharacterAddressGroup(CharacterFromID("Elizabeth Swann"), "Devil_Creek", "goto", "citizen07"); Characters[GetCharacterIndex("Will Turner")].dialog.CurrentNode = "begin_11"; LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorWaitDialog(CharacterFromID("Will Turner"), Pchar); LAi_ActorDialog(pchar, characterFromID("Will Turner"), "", 10.0, 1.0); break; case "meetindians": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Will Turner")); LAi_SetImmortal(CharacterFromID("Will Turner"), 1); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_SetImmortal(CharacterFromID("Elizabeth Swann"), 1); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); pchar.quest.meet_indians.win_condition.l1 = "location"; pchar.quest.meet_indians.win_condition.l1.location = "Battle_Rocks_Jungle_04"; pchar.quest.meet_indians.win_condition = "fightindians"; break; case "fightindians": locations[FindLocation("Battle_Rocks_Jungle_04")].reload.l3.disable = 1; locations[FindLocation("Battle_Rocks_Jungle_04")].reload.l4.disable = 1; LAi_SetOfficerType(characterFromID("Will Turner")); LAi_SetOfficerType(characterFromID("Elizabeth Swann")); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); sld = LAi_CreateFantomCharacterExOtAt(false, OFFIC_TYPE_GUARD,"isIndian","","", 10, true, 1.0, "Native", "goto", "goto2"); LAi_group_MoveCharacter(sld, "JUNGLE_INDIANS"); LAi_group_FightGroups("JUNGLE_INDIANS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("JUNGLE_INDIANS", "leaveindians"); break; case "leaveindians": locations[FindLocation("Battle_Rocks_Jungle_04")].reload.l4.disable = 0; locations[FindLocation("Battle_Rocks_Jungle_04")].reload.l3.disable = 0; LAi_SetActorType(characterFromID("Elizabeth Swann")); Characters[GetCharacterIndex("Elizabeth Swann")].dialog.currentnode = "begin_4"; LAi_ActorDialog(characterFromID("Elizabeth Swann"), pchar, "", 50.0, 10.0); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); AddQuestRecord("Jackpot", 4); break; case "meetprisoner": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); LAi_SetImmortal(characterFromID("Konrad Kulczycki"), true); ChangeCharacterAddress(CharacterFromID("Konrad Kulczycki"), "Battle_Rocks_Jungle_02", "goto8"); LAi_SetPoorType(characterfromID("Konrad Kulczycki")); locations[FindLocation("Battle_Rocks_Jungle_02")].reload.l4.disable = 1; break; case "opinionturner": LAi_SetActorType(characterFromID("Will Turner")); Characters[GetCharacterIndex("Will Turner")].dialog.currentnode = "begin_12"; LAi_ActorDialog(characterFromID("Will Turner"), pchar, "", 2.0, 1.0); break; case "gospanishcamp": LAi_SetActorType(characterFromID("Konrad Kulczycki")); Characters[GetCharacterIndex("Konrad Kulczycki")].dialog.currentnode = "begin_7"; LAi_ActorDialog(characterFromID("Konrad Kulczycki"), pchar, "", 2.0, 1.0); break; case "gospanishcamp2": locations[FindLocation("Battle_Rocks_Jungle_02")].reload.l4.disable = 0; AddQuestRecord("Jackpot", 5); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(characterFromID("Konrad Kulczycki")); LAi_ActorRunToLocation(characterFromID("Konrad Kulczycki"), "reload", "reload1", "none", "", "", "", 0.0); pchar.quest.meet_spaniards.win_condition.l1 = "location"; pchar.quest.meet_spaniards.win_condition.l1.location = "spanish_camp"; pchar.quest.meet_spaniards.win_condition = "fightspaniards"; break; case "fightspaniards": locations[FindLocation("spanish_camp")].reload.l4.disable = 1; locations[FindLocation("spanish_camp")].reload.l5.disable = 1; locations[FindLocation("spanish_camp")].reload.l6.disable = 1; ChangeCharacterAddressGroup(characterFromID("Konrad Kulczycki"), "spanish_camp", "officers", "reload2_1"); ChangeCharacterAddressGroup(characterFromID("Will Turner"), "spanish_camp", "officers", "reload2_2"); ChangeCharacterAddressGroup(characterFromID("Elizabeth Swann"), "spanish_camp", "officers", "reload2_3"); GiveItem2Character(characterFromID("Konrad Kulczycki"),"blade7"); EquipCharacterByItem(characterFromID("Konrad Kulczycki"),"blade7"); GiveItem2Character(CharacterFromId("Konrad Kulczycki"),"pistol3"); EquipCharacterByItem(CharacterFromId("Konrad Kulczycki"), "pistol3"); //JRH ammo mod --> if (ENABLE_AMMOMOD) { // LDH change TakenItems(CharacterFromId("Konrad Kulczycki"), "gunpowder", 6); TakenItems(CharacterFromId("Konrad Kulczycki"), "pistolgrapes", 6); } //JRH ammo mod <-- LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Spaniardsattack"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "fightspaniards2": LAi_SetPlayerType(pchar); LAi_SetOfficerType(characterFromID("Will Turner")); LAi_SetOfficerType(characterFromID("Elizabeth Swann")); LAi_SetOfficerType(characterFromID("Konrad Kulczycki")); LAi_QuestDelay("fightspaniards3", 1.5); PlayStereoSound("OBJECTS\SHIPCHARGE\hurrah.wav"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "goto", "goto5"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CAMP_SOLDIERS"); LAi_group_FightGroups("CAMP_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("CAMP_SOLDIERS", "gomine"); break; case "fightspaniards3": CreateParticleSystemX("blast_inv", -26.95, 0.00, 11.17, -1.57, 0.0, 0.0,0); CreateParticleSystemX("cancloud", -26.95, 0.00, 11.17, -1.57, 0.0, 0.0,20); CreateParticleSystemX("cancloud", -21.95, 0.00, 11.17, -1.57, 0.0, 0.0,20); CreateParticleSystemX("cancloud", -26.95, 0.00, 16.17, -1.57, 0.0, 0.0,20); CreateParticleSystemX("cancloud", -26.95, 0.00, 6.17, -1.57, 0.0, 0.0,20); PlayStereoSound("OBJECTS\SHIPCHARGE\cannon_fire1.wav"); PlaySound("OBJECTS\shipcharge\hit_torock.wav"); break; case "gomine": LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(characterFromID("Konrad Kulczycki")); Characters[GetCharacterIndex("Konrad Kulczycki")].dialog.currentnode = "begin_9"; LAi_ActorDialog(characterFromID("Konrad Kulczycki"), pchar, "", 50.0, 10.0); break; case "gomine2": locations[FindLocation("spanish_camp")].reload.l5.disable = 0; locations[FindLocation("spanish_camp")].reload.l6.disable = 0; LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Konrad Kulczycki")); LAi_ActorRunToLocation(characterFromID("Konrad Kulczycki"), "reload", "reload3", "none", "", "", "", 0.0); pchar.quest.meet_friends.win_condition.l1 = "location"; pchar.quest.meet_friends.win_condition.l1.location = "Battle_Rocks_Jungle_01"; pchar.quest.meet_friends.win_condition = "minefight"; break; case "minefight": ChangeCharacterAddressGroup(characterFromID("Konrad Kulczycki"), "Battle_Rocks_Jungle_01", "goto", "goto10"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "officers", "reload1_2"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_SOLDATOS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "officers", "reload1_3"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_SOLDATOS"); sld.dialog.filename = "Konrad Kulczycki_dialog.c"; sld.dialog.currentnode = "begin_11"; sld.id = "futurmort"; LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "goto7", "minefightbis", 20.0); break; case "minefightbis": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("futurmort")); LAi_ActorWaitDialog(CharacterFromID("futurmort"), Pchar); LAi_ActorDialog(pchar, characterFromID("futurmort"), "", 10.0, 10.0); break; case "minefight2": LAi_SetPlayerType(pchar); LAi_SetOfficerType(characterFromID("Will Turner")); LAi_SetOfficerType(characterFromID("Elizabeth Swann")); LAi_SetOfficerType(characterFromID("Konrad Kulczycki")); LAi_group_MoveCharacter(characterFromID("futurmort"), "MINE_SOLDATOS"); LAi_group_FightGroups("MINE_SOLDATOS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("MINE_SOLDATOS", "entrermine"); break; case "entrermine": pchar.quest.meet_friend.win_condition.l1 = "location"; pchar.quest.meet_friend.win_condition.l1.location = "Battle_Rocks_Mine"; pchar.quest.meet_friend.win_condition = "talktofriends"; LAi_SetActorType(characterFromID("Konrad Kulczycki")); LAi_ActorFollowEverywhere(characterFromID("Konrad Kulczycki"), "", 60.0); break; case "talktofriends": sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "Brodyag1", "goto", "goto1"); LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_FRIENDS"); sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "man4", "goto", "goto10"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "mineami"; sld.dialog.filename = "Konrad Kulczycki_dialog.c"; sld.dialog.currentnode = "begin_12"; LAi_SetCivilianGuardianType(characterFromID("mineami")); break; case "allerport": LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Konrad Kulczycki")); Characters[GetCharacterIndex("Konrad Kulczycki")].dialog.currentnode = "begin_16"; LAi_ActorWaitDialog(CharacterFromID("Konrad Kulczycki"), Pchar); LAi_ActorDialog(pchar, characterFromID("Konrad Kulczycki"), "", 10.0, 10.0); break; case "allerport2": AddQuestRecord("Jackpot", 6); setCharacterShipLocation(characterFromID("Silver"), "Battle_Rocks_port"); locations[FindLocation("spanish_camp")].reload.l4.disable = 0; locations[FindLocation("Battle_Rocks_port")].reload.l3.disable = 1; LAi_SetPlayerType(pchar); DoReloadCharacterToLocation("Battle_Rocks_port", "goto", "locator10"); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(characterFromID("Konrad Kulczycki")); LAi_ActorFollowEverywhere(characterFromID("Konrad Kulczycki"), "", 60.0); ChangeCharacterAddressGroup(characterFromID("Elizabeth Swann"), "Battle_Rocks_port", "goto", "citizen04"); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Elizabeth Swann")); Characters[GetCharacterIndex("Elizabeth Swann")].dialog.currentnode = "begin_5"; LAi_ActorWaitDialog(CharacterFromID("Elizabeth Swann"), Pchar); LAi_ActorDialog(pchar, characterFromID("Elizabeth Swann"), "", 10.0, 10.0); break; case "seesoldier": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "citizen01"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "PRAIA_SOLDATOS"); sld.id = "fuyard"; LAi_ActorTurnToCharacter(pchar, characterFromID("fuyard")); LAi_SetActorType(characterFromID("fuyard")); LAi_ActorRunToLocation(characterFromID("fuyard"), "reload", "reload2", "none", "", "", "", 0.0); LAi_QuestDelay("attraperfuyard", 2.5); break; case "attraperfuyard": LAi_SetActorType(pchar); LAi_ActorGoToLocator(PChar, "goto", "citizen07", "fuyardparti", 20.0); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); break; case "fuyardparti": LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Will Turner")); Characters[GetCharacterIndex("Will Turner")].dialog.currentnode = "begin_13"; LAi_ActorDialog(characterFromID("Will Turner"), pchar, "", 20.0, 10.0); break; case "gosilvertrain": locations[FindLocation("Battle_Rocks_port")].reload.l3.disable = 0; LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); pchar.quest.meet_friend.win_condition.l1 = "location"; pchar.quest.meet_friend.win_condition.l1.location = "Battle_Rocks_Jungle_03"; pchar.quest.meet_friend.win_condition = "joinsilvertrain"; break; case "joinsilvertrain": locations[FindLocation("Battle_Rocks_Jungle_03")].reload.l4.disable = 1; locations[FindLocation("Battle_Rocks_Jungle_03")].reload.l5.disable = 1; ChangeCharacterAddressGroup(characterFromID("Konrad Kulczycki"), "Battle_Rocks_Jungle_03", "officers", "reload1_3"); ChangeCharacterAddressGroup(characterFromID("Will Turner"), "Battle_Rocks_Jungle_03", "officers", "reload1_1"); ChangeCharacterAddressGroup(characterFromID("Elizabeth Swann"), "Battle_Rocks_Jungle_03", "officers", "reload1_2"); sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "Chelovek", "goto", "goto7"); LAi_SetHP(sld, 100.0, 100.0); LAi_SetPoorType(sld); LAi_group_MoveCharacter(sld, "CONVOY_FRIENDS"); sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "Fatman", "goto", "goto8"); LAi_SetHP(sld, 80.0, 80.0); LAi_SetPoorType(sld); LAi_group_MoveCharacter(sld, "CONVOY_FRIENDS"); sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "Brodyag1", "goto", "goto4"); LAi_SetHP(sld, 80.0, 80.0); LAi_SetPoorType(sld); LAi_group_MoveCharacter(sld, "CONVOY_FRIENDS"); sld = LAi_CreateFantomCharacter(false, 0, false, false, 0.25, "man1", "goto", "goto3"); LAi_SetHP(sld, 80.0, 80.0); sld.id = "convoyami"; sld.dialog.filename = "Konrad Kulczycki_dialog.c"; sld.dialog.currentnode = "begin_17"; sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto2"); // PB LAi_SetHP(sld, 80.0, 80.0); sld.id = "fuyard"; LAi_ActorTurnToCharacter(pchar, characterFromID("fuyard")); LAi_SetActorType(characterFromID("fuyard")); LAi_ActorRunToLocation(characterFromID("fuyard"), "goto", "goto5", "none", "", "", "joinsilvertrain2", 0.0); LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Spanishrunaway"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "joinsilvertrain2": LAi_SetOfficerType(characterFromID("Will Turner")); LAi_SetOfficerType(characterFromID("Elizabeth Swann")); LAi_SetOfficerType(characterFromID("Konrad Kulczycki")); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m3, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m4, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m5, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m6, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m1, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[SPAIN].fantomModel.m2, "goto", "goto6"); // PB LAi_SetHP(sld, 100.0, 100.0); LAi_group_MoveCharacter(sld, "CONVOY_SOLDIERS"); LAi_group_FightGroups("CONVOY_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("CONVOY_SOLDIERS", "joinsilvertrain3"); break; case "joinsilvertrain3": LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(characterFromID("Konrad Kulczycki")); LAi_ActorFollowEverywhere(characterFromID("Konrad Kulczycki"), "", 60.0); LAi_SetCivilianGuardianType(characterFromID("convoyami")); break; case "leavebattle": locations[FindLocation("Battle_Rocks_Jungle_03")].reload.l4.disable = 0; locations[FindLocation("Battle_Rocks_Jungle_03")].reload.l5.disable = 0; LAi_SetActorType(characterFromID("Will Turner")); Characters[GetCharacterIndex("Will Turner")].dialog.currentnode = "begin_15"; LAi_ActorDialog(characterFromID("Will Turner"), pchar, "", 20.0, 10.0); break; case "leavedevilcreek": LAi_SetCivilianGuardianType(characterFromID("Elizabeth Swann")); DoReloadCharacterToLocation("Devil_Creek", "goto", "locator10"); ChangeCharacterAddressGroup(characterFromID("Elizabeth Swann"), "Devil_Creek", "goto", "citizen02"); LAi_SetActorType(characterFromID("Will Turner")); LAi_ActorFollowEverywhere(characterFromID("Will Turner"), "", 60.0); LAi_SetActorType(pchar); LAi_SetActorType(characterFromID("Elizabeth Swann")); Characters[GetCharacterIndex("Elizabeth Swann")].dialog.currentnode = "begin_6"; LAi_ActorWaitDialog(CharacterFromID("Elizabeth Swann"), Pchar); LAi_ActorDialog(pchar, characterFromID("Elizabeth Swann"), "", 10.0, 10.0); break; case "leavedevilcreek2": AddQuestRecord("Jackpot", 7); pchar.quest.sail_tortuga.win_condition.l1 = "location"; pchar.quest.sail_tortuga.win_condition.l1.location = "Tortuga_port"; pchar.quest.sail_tortuga.win_condition = "meetshopkeeper"; LAi_SetPlayerType(pchar); LAi_SetActorType(characterFromID("Elizabeth Swann")); LAi_ActorFollowEverywhere(characterFromID("Elizabeth Swann"), "", 60.0); setCharacterShipLocation(characterFromID("Silver"), "none"); break; case "meetshopkeeper": LAi_SetActorType(characterFromID("Will Turner")); Characters[GetCharacterIndex("Will Turner")].dialog.currentnode = "begin_16"; LAi_ActorDialog(characterFromID("Will Turner"), pchar, "", 20.0, 10.0); break; case "leaveturner": LAi_SetActorType(characterFromID("Konrad Kulczycki")); Characters[GetCharacterIndex("Konrad Kulczycki")].dialog.currentnode = "begin_18"; LAi_ActorDialog(characterFromID("Konrad Kulczycki"), pchar, "", 20.0, 10.0); break; case "leaveKonradKulczycki": LAi_SetActorType(characterFromID("Elizabeth Swann")); Characters[GetCharacterIndex("Elizabeth Swann")].dialog.currentnode = "begin_7"; LAi_ActorDialog(characterFromID("Elizabeth Swann"), pchar, "", 20.0, 10.0); break; case "leaveswann": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 25000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 25000); } bSuppressResurrection = false; AddMoneyToCharacter(pchar, 60000); AddQuestRecord("Jackpot", 8); CloseQuestHeader("Jackpot"); LAi_ActorRunToLocation(characterFromID("Konrad Kulczycki"), "reload", "reload5_back", "none", "", "", "", 0.0); LAi_ActorRunToLocation(characterFromID("Elizabeth Swann"), "reload", "gate", "none", "", "", "", 0.0); LAi_ActorRunToLocation(characterFromID("Will Turner"), "reload", "gate", "none", "", "", "", 0.0); RemoveCharacterCompanion(Pchar, characterFromID("Will Turner")); setCharacterShipLocation(characterFromID("Will Turner"), "none"); break; /////////////////////////////////////////////////////////////// // Church Help and Strange Things in the Archipelago Edited by CTM /////////////////////////////////////////////////////////////// // PB: Deprecated Code --> /* case "Church_help": SetEnterLocationQuest("redmond_church", "church_start_check", 0); break; case "church_start_check": if(makeint(PChar.rank) >= 1) { characters[GetCharacterIndex("Father Bernard")].quest.church_help = ""; } break;*/ // PB: Deprecated Code <-- case "Yedam_kinne_attack": AddQuestRecord("church_help", 11); LAi_group_MoveCharacter(characterFromID("Yedam Kinne"), "YedamKine"); LAi_SetActorType(characterFromID("Yedam Kinne")); LAi_ActorAttack(characterFromID("Yedam Kinne"), pchar, ""); characters[GetCharacterIndex("Father bernard")].quest.church_help = "bad_dautch"; break; case "exit_from_douwesen_townhall_complete": LAi_SetActorType(CharacterFromID("Lisebet Schefold")); LAi_ActorDialog(CharacterFromID("Lisebet Schefold"), pchar, "", 2.0, 1.0); break; case "to_muelle_for_letter": bQuestDisableAllCommands = true; // KK pchar.location.from_sea = "Muelle_shore"; SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK 05-04-02 WM/IT set fleet. DisableFastTravel(true); DisableMenuLaunch(true); DoQuestCheckDelay("to_muelle_for_letter_2", 3.0); break; // --> Swindler 050927 // Here's a syntax error: // case "to_muelle_for_letter_2": 04.06.2003 14:43 case "to_muelle_for_letter_2": // Swindler <-- DoReloadFromSeaToLocation("Muelle_shore", "reload", "reload2"); Locations[FindLocation("Muelle_shore")].reload.l2.disable = 1; pchar.quest.mystery_men_meeting_us.win_condition.l1 = "location"; pchar.quest.mystery_men_meeting_us.win_condition.l1.location = "Muelle_shore"; pchar.quest.mystery_men_meeting_us.win_condition = "mystery_men_meeting_us"; break; case "mystery_men_meeting_us": DisableFastTravel(false); DisableMenuLaunch(false); bQuestDisableAllCommands = false; // KK LAi_SetHP(characterFromID("Mystery_Man_01"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_02"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_03"), 80.0, 80.0); ChangeCharacterAddress(characterFromID("Mystery_Man_01"), "Muelle_shore", "goto12"); ChangeCharacterAddressGroup(characterFromID("Mystery_Man_02"), "Muelle_shore", "reload", "reload3"); ChangeCharacterAddressGroup(characterFromID("Mystery_Man_03"), "Muelle_shore", "reload", "reload3"); LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("Mystery_Man_01")); LAi_SetActorType(characterFromID("Mystery_Man_02")); LAi_SetActorType(characterFromID("Mystery_Man_03")); LAi_ActorDialog(characterFromID("Mystery_Man_01"), pchar, "player_back", 3.0, 1.0); LAi_ActorFollow(characterFromID("Mystery_Man_02"), pchar, "", 3.0); LAi_ActorFollow(characterFromID("Mystery_Man_03"), pchar, "", 3.0); AddQuestRecord("animists", 9); break; case "fight_with_mystery_mens_in_muelle_shore": LAi_group_MoveCharacter(characterFromID("Mystery_Man_01"), "ANIMISTS_IN_SHORE"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_02"), "ANIMISTS_IN_SHORE"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_03"), "ANIMISTS_IN_SHORE"); LAi_group_FightGroups("ANIMISTS_IN_SHORE", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("ANIMISTS_IN_SHORE", "kill_all_animists_in_muelle_shore"); break; case "kill_all_animists_in_muelle_shore": Locations[FindLocation("Muelle_shore")].reload.l2.disable = 0; GiveItem2Character(pchar, "animists_amulet"); AddQuestRecord("animists", 10); break; case "i_give_first_letter_to_animists": pchar.quest.animists = "letter_to_domingues_opened"; AddMoneyToCharacter(pchar, 1000); OfficersReaction("bad"); Locations[FindLocation("Muelle_shore")].reload.l2.disable = 0; characters[GetCharacterIndex("Mystery_Man_01")].location = "none"; characters[GetCharacterIndex("Mystery_Man_02")].location = "none"; characters[GetCharacterIndex("Mystery_Man_03")].location = "none"; AddQuestRecord("animists", 11); break; case "prepare_for_barkue": AddQuestRecord("animists", 14); pchar.quest.to_greenford_for_montanez.win_condition.l1 = "location"; pchar.quest.to_greenford_for_montanez.win_condition.l1.location = "Oxbay"; pchar.quest.to_greenford_for_montanez.win_condition = "to_greenford_for_montanez_complete"; // LAi_SetHP(characterFromID("Mystery_man_01"), 80.0, 80.0); // LAi_SetHP(characterFromID("Mystery_man_02"), 80.0, 80.0); //SetCharacterRelation(GetCharacterIndex("Mergildo Hurtado"),GetMainCharacterIndex(), RELATION_FRIEND); //SetCharacterRelation(GetCharacterIndex("Mystery_Man_01"),GetMainCharacterIndex(), RELATION_ENEMY); Group_CreateGroup("Mergildo Hurtado"); Group_AddCharacter("Mergildo Hurtado", "Mergildo Hurtado"); Group_SetGroupCommander("Mergildo Hurtado", "Mergildo Hurtado"); Group_SetPursuitGroup("Mergildo Hurtado", PLAYER_GROUP); // boal --> //Group_SetAddress("Mergildo Hurtado", "Oxbay", "", ""); LAi_SetHP(characterFromID("Mergildo Hurtado"), 80.0, 80.0); Group_SetAddress("Mergildo Hurtado", "Oxbay", "Quest_ships", "Quest_ship_12"); // boal <-- Group_CreateGroup("animists"); Group_AddCharacter("animists", "Mystery_Man_04"); Group_AddCharacter("animists", "Mystery_Man_05"); // Characters[GetCharacterIndex("Dark Mystery_Man_04")].recognized = true; // PB: Ensure they're hostile! // Characters[GetCharacterIndex("Dark Mystery_Man_05")].recognized = true; // PB: Ensure they're hostile! Characters[GetCharacterIndex("Mystery_Man_04")].recognized = true; // GR: Who is "Dark Mystery_Man_04"? Characters[GetCharacterIndex("Mystery_Man_05")].recognized = true; // GR: Who is "Dark Mystery_Man_05"? // boal --> LAi_SetHP(characterFromID("Mystery_man_04"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_man_05"), 80.0, 80.0); SetCharacterRelation(GetCharacterIndex("Mergildo Hurtado"),GetMainCharacterIndex(), RELATION_FRIEND); SetCharacterRelation(GetCharacterIndex("Mystery_Man_04"),GetMainCharacterIndex(), RELATION_ENEMY); // boal <-- Group_SetGroupCommander("animists", "Mystery_man_04"); Group_SetPursuitGroup("animists", PLAYER_GROUP); // boal --> //Group_SetAddress("animists", "Oxbay", "", ""); Group_SetAddress("animists", "Oxbay", "Quest_ships", "Quest_ship_12"); // boal <-- Group_LockTask("animists"); Group_LockTask("Mergildo Hurtado"); Group_SetTaskAttack("animists", "Mergildo Hurtado", true); Group_SetTaskRunAway("Mergildo Hurtado"); UpdateRelations(); break; case "to_greenford_for_montanez_complete": bQuestDisableMapEnter = true; Island_SetReloadEnableGlobal("Oxbay", false);// TIH typo fix Oct31'06 // boal --> LAi_SetHP(characterFromID("Mystery_man_04"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_man_05"), 80.0, 80.0); // boal <-- pchar.quest.saints_barkue_drown.win_condition.l1 = "NPC_Death"; pchar.quest.saints_barkue_drown.win_condition.l1.character = "Mergildo Hurtado"; pchar.quest.saints_barkue_drown.win_condition = "saints_barkue_drown_complete"; pchar.quest.animists_drown.win_condition.l1 = "NPC_Death"; pchar.quest.animists_drown.win_condition.l1.character = "Mystery_Man_04"; pchar.quest.animists_drown.win_condition.l2 = "NPC_Death"; pchar.quest.animists_drown.win_condition.l2.character = "Mystery_Man_05"; // KK --> pchar.quest.animists_drown.win_condition.l3 = "SeaEnter"; //pchar.quest.animists_drown.win_condition.l3 = "location"; // different condition added PW //pchar.quest.animists_drown.win_condition.l3.location = "Oxbay"; // different condition added PW // <-- KK pchar.quest.animists_drown.win_condition = "animists_drown_complete"; break; case "saints_barkue_drown_complete": pchar.quest.animists_drown.over = "yes"; Group_LockTask("animists"); Group_SetTaskRunAway("animists"); bQuestDisableMapEnter = false; Island_SetReloadEnableGlobal("Oxbay", true); pchar.quest.animists = "barkue_drown"; AddQuestRecord("animists", 15); break; case "animists_drown_complete": bQuestDisableAllCommands = true; // KK DoQuestCheckDelay("animists_drown_complete_2", 5.0); AddQuestRecord("animists", 16); break; case "animists_drown_complete_2": bQuestDisableMapEnter = false; Island_SetReloadEnableGlobal("Oxbay", true); if (GetNationRelation2MainCharacter(GetTownNation("Greenford")) == RELATION_ENEMY) // PB: was hardcoded for ENGLAND { pchar.location.from_sea = "Oxbay_lighthouse"; } else { pchar.location.from_sea = "Greenford_port"; } SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK 05-04-02 WM/IT set fleet. PlaceFleetNearShore(pchar.location.from_sea); // KK DisableFastTravel(true); DisableMenuLaunch(true); bQuestDisableAllCommands = false; Group_SetAddress("Mergildo Hurtado", "none", "", ""); DoQuestReloadToLocation("Greenford_tavern", "candles", "sit3", "speak_with_Mergilo"); ChangeCharacterAddressGroup(characterFromID("Mergildo Hurtado"), "Greenford_tavern", "sit", "sit4"); break; case "speak_with_Mergilo": DisableFastTravel(false); DisableMenuLaunch(false); LAi_SetActorType(pchar); LAi_ActorSetSitMode(pchar); LAi_SetSitType(characterFromID("Mergildo Hurtado")); LAi_ActorDialogNow(pchar, characterFromID("Mergildo Hurtado"), "", 1.0); break; case "to_barkue_complete": // boal --> //AddQuestRecord("animists", 18); // boal <-- DoQuestReloadToLocation(pchar.location.from_sea, "reload", "reload1", "_"); LAi_SetPlayerType(pchar); characters[GetCharacterIndex("Mergildo Hurtado")].location = "Greenford_tavern"; ChangeCharacterAddress(characterFromID("Mergildo Hurtado"), "none", ""); break; case "oops_ANIMISTS_want_letter_again": DisableFastTravel(true); pchar.quest.animists_again_meeting_us.win_condition.l1 = "location"; pchar.quest.animists_again_meeting_us.win_condition.l1.location = "Muelle_town_01"; // CTM pchar.quest.animists_again_meeting_us.win_condition = "animists_again_meeting_us_complete"; break; case "animists_again_meeting_us_complete": // CTM --> LAi_SetStayType(pchar); LAi_SetHP(characterFromID("Mystery_Man_06"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_07"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_08"), 80.0, 80.0); //PlaceCharacter(characterFromID("Mystery_Man_06"), "goto"); //PlaceCharacter(characterFromID("Mystery_Man_07"), "goto"); //PlaceCharacter(characterFromID("Mystery_Man_08"), "goto"); changeCharacterAddressGroup(characterFromID("Mystery_Man_06"), "Muelle_town_01", "goto", "goto74"); changeCharacterAddressGroup(characterFromID("Mystery_Man_07"), "Muelle_town_01", "goto", "goto76"); changeCharacterAddressGroup(characterFromID("Mystery_Man_08"), "Muelle_town_01", "goto", "goto73"); Locations[FindLocation("Muelle_town_01")].vcskip = true; //Locations[FindLocation("Muelle_town_04")].vcskip = true; // CTM <-- LAi_SetActorType(CharacterFromID("Mystery_Man_06")); LAi_SetActorType(CharacterFromID("Mystery_Man_07")); LAi_SetActorType(CharacterFromID("Mystery_Man_08")); LAi_ActorDialog(characterFromID("Mystery_Man_06"), pchar, "player_back", 2.0, 1.0); LAi_ActorFollow(characterFromID("Mystery_Man_07"), pchar, "", 3.0); LAi_ActorFollow(characterFromID("Mystery_Man_08"), pchar, "", 3.0); break; case "second_fight_with_animists": LAi_QuestDelay("second_fight_with_animists_begin", 0.0); // KK break; case "second_fight_with_animists_begin": LAi_group_MoveCharacter(characterFromID("Mystery_Man_06"), "ANIMISTS_IN_MUELLE"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_07"), "ANIMISTS_IN_MUELLE"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_08"), "ANIMISTS_IN_MUELLE"); LAi_group_MoveCharacter(characterFromID("second_spaniard_priest"), "PRIESTS"); LAi_group_FightGroups("ANIMISTS_IN_MUELLE", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("ANIMISTS_IN_MUELLE", "kill_all_animists_in_muelle_town"); break; case "kill_all_animists_in_muelle_town": LAi_QuestDelay("kill_all_animists_in_muelle_town_complete", 2.0); break; case "kill_all_animists_in_muelle_town_complete": AddQuestRecord("animists", 21); DeleteAttribute(Locations[FindLocation("Muelle_town_01")], "vcskip"); // CTM changeCharacterAddress(characterfromID("padre Domingues"), "none", ""); changeCharacterAddress(characterfromID("second_spaniard_priest"), "Muelle_church", "goto11"); DoQuestReloadToLocation("Muelle_church", "goto", "goto7", "to_the_muelle_church_with_letter"); // <-- Cat break; case "to_the_muelle_church_with_letter": LAi_SetActorType(pchar); pchar.dialog.currentnode = "letter_to_father_bernard"; LAi_ActorSelfDialog(pchar, "player_back"); LAi_QuestDelay("to_the_muelle_church_with_letter2", 4.0); break; case "to_the_muelle_church_with_letter2": DisableFastTravel(false); characters[GetCharacterIndex("second_spaniard_priest")].dialog.currentnode = "First time"; LAi_SetActorType(characterFromID("second_spaniard_priest")); LAi_ActorWaitDialog(Pchar, characterFromID("second_spaniard_priest")); LAi_ActorDialog(characterFromID("second_spaniard_priest"), Pchar, "player_back", 2.0, 1.0); break; // <-- Cat case "father_Gareth_stopping_us": Locations[FindLocation("Muelle_church")].reload.l1.go = "Muelle_town_01"; //CTM Locations[FindLocation("Muelle_church")].reload.l1.emerge = "reload4"; pchar.quest.animists = "before_knight"; TakeItemFromCharacter(pchar, "letter_to_bernard"); GiveItem2Character(characterFromID("father Gareth"), "blade5"); EquipCharacterByItem(characterFromID("father Gareth"), "blade5"); LAi_SetImmortal(characterFromID("father Gareth"), false); LAi_SetImmortal(characterFromID("father Bernard"), true); LAi_SetActorType(characterFromID("father Gareth")); if (characters[GetCharacterIndex("father Gareth")].location == "Redmond_church") { LAi_ActorDialog(characterFromID("father Gareth"), pchar, "", 2.0, 1.0); } else { ChangeCharacterAddressGroup(characterfromid("Father Gareth"), "Redmond_church", "reload", "reload1"); LAi_ActorDialog(characterFromID("father Gareth"), pchar, "", 2.0, 1.0); } break; case "fight_with_animists_in_church": Preprocessor_AddQuestData("FatherGareth", GetMySimpleName(CharacterFromID("Father Gareth"))); AddQuestRecord("animists", 22); Preprocessor_Remove("FatherGareth"); LAi_LocationFightDisable(&locations[FindLocation("redmond_church")], false); LAi_SetHP(characterFromID("Mystery_Man_09"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_10"), 80.0, 80.0); LAi_SetHP(characterFromID("Mystery_Man_11"), 80.0, 80.0); ChangeCharacterAddressGroup(characterFromID("Mystery_Man_09"), "Redmond_Church", "reload", "reload1"); ChangeCharacterAddressGroup(characterFromID("Mystery_Man_10"), "Redmond_Church", "reload", "reload1"); ChangeCharacterAddressGroup(characterFromID("Mystery_Man_11"), "Redmond_Church", "reload", "reload1"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_09"), "ANIMISTS_IN_CHURCH"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_10"), "ANIMISTS_IN_CHURCH"); LAi_group_MoveCharacter(characterFromID("Mystery_Man_11"), "ANIMISTS_IN_CHURCH"); LAi_group_MoveCharacter(characterFromID("father Gareth"), "ANIMISTS_IN_CHURCH"); LAi_group_FightGroups("ANIMISTS_IN_CHURCH", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("ANIMISTS_IN_CHURCH", "kill_all_ANIMISTS_in_church_complete"); break; case "kill_all_ANIMISTS_in_church_complete": ChangeCharacterAddress(characterFromID("Mystery_Man_09"), "none", ""); ChangeCharacterAddress(characterFromID("Mystery_Man_10"), "none", ""); ChangeCharacterAddress(characterFromID("Mystery_Man_11"), "none", ""); ChangeCharacterAddress(characterFromID("father Gareth"), "none", ""); LAi_LocationFightDisable(&locations[FindLocation("redmond_church")], true); pchar.quest.ANIMISTS = "kill_all_ANIMISTS_in_church"; LAi_SetActorType(characterFromID("father Bernard")); LAi_ActorDialog(characterFromID("father Bernard"), pchar, "", 2.0, 1.0); LAi_ActorWaitDialog(Pchar, characterFromID("father Bernard")); characters[GetCharacterIndex("father Bernard")].dialog.currentnode = "kill_all_ANIMISTS_in_churcha"; break; case "meeting_with_Jaoquin_De_Masse": ChangeCharacterAddressGroup(characterFromID("Jaoquin de masse"), "Redmond_church", "reload", "reload1"); LAi_SetActorType(characterFromID("Jaoquin de masse")); LAi_ActorDialog(characterFromID("Jaoquin de masse"), pchar, "", 2.0, 1.0); break; case "masse_becomes_officer": AddQuestRecord("ANIMISTS", 24); AddPassenger(pchar, characterFromID("Jaoquin de masse"), 0); Characters[getCharacterIndex("Jaoquin de masse")].location = "none"; Characters[GetCharacterIndex("Jaoquin de masse")].Filename = "Enc officer_dialog.c"; // PB Characters[GetCharacterIndex("Jaoquin de masse")].CurrentNode = "hired"; // PB LAi_SetStayType(characterFromID("father Bernard")); break; case "speak_with_jordano": AddQuestRecord("ANIMISTS", 25); Locations[FindLocation("Muelle_town_01")].vcskip = true; // NK ChangeCharacterAddress(characterFromID("Jordano"), "Muelle_town_01", "goto18"); LAi_SetActorType(characterFromID("Jordano")); LAi_ActorDialog(characterFromID("Jordano"), pchar, "", 5.0, 1.0); break; case "speak_with_jordano2": // --> edited by Cat for Animists Quest fix DoQuestCheckDelay("speak_with_jordano3", 25.0); break; case "speak_with_jordano3": ChangeCharacterAddress(characterFromID("Jordano"), "none", ""); break; // <-- edited by Cat for Animists Quest fix case "Story_freedom_letter": ChangeCharacterAddress(characterFromID("Teacher"), "", ""); pchar.quest.with_teacher_to_muelle.win_condition.l1 = "location"; pchar.quest.with_teacher_to_muelle.win_condition.l1.location = "IslaMuelle"; pchar.quest.with_teacher_to_muelle.win_condition = "with_teacher_to_muelle"; break; // <--Cat case "wait_in_church_for_letters": pchar.quest.ANIMISTS = "to_prison_for_teacher_2"; LAi_Fade("", ""); LAi_SetActorType(characterFromID("father Bernard")); LAi_ActorDialog(characterFromID("father Bernard"), pchar, "bernard_back_to_stay_type", 2.0, 1.0); break; case "bernard_back_to_stay_type": LAi_SetStayType(characterFromID("father Bernard")); break; case "mystery_man_to_prison": //RestoreCharacter(characterFromID("Teacher")); // KK LAi_SetStayType(characterFromID("Teacher")); LAi_SetHP(characterFromID("Teacher"), 80.0, 80.0); ChangeCharacterAddress(characterFromID("Teacher"), "Greenford_prison", "goto9"); break; case "teacher_died": Island_SetReloadEnableLocal("IslaMuelle", "reload_2", true); LAi_KillCharacter(characterFromID("Teacher")); //ChangeCharacterAddressGroup(characterFromID("Teacher"), "none", "", ""); //characterFromID("Teacher").location = "none"; //CTM //Locations[FindLocation("muelle_ANIMISTS")].locators_radius.goto.goto37 = 2.2; //CTM pchar.quest.final_battle_with_dark_teacher.win_condition.l1 = "locator"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.location = "Muelle_ANIMISTS"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.locator_group = "goto"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.locator = "goto37"; pchar.quest.final_battle_with_dark_teacher.win_condition = "final_battle_with_dark_teacher"; LAi_group_FightGroups("ANIMISTS_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_QuestDelay("Story_Domingues_to_cave", 0.0); //CTM break; case "exit_from_prison_with_teacher": cidx = GetTownNation("Greenford"); LeaveService(PChar, cidx, false); // RM homegroup = GetSoldiersGroup(cidx); LAi_group_FightGroups(homegroup, LAI_GROUP_PLAYER, true); break; case "prison_commander_captured": pchar.quest.ANIMISTS = "force_freedom"; LAi_SetStayType(characterFromID("Teacher")); LAi_SetHP(characterFromID("Teacher"), 80.0, 80.0); ChangeCharacterAddress(characterFromID("Teacher"), "Greenford_prison", "goto9"); break; case "with_teacher_to_muelle": // PW --> if warden killed: sour relations with England // Grey Roger: If Early Explorers, it's not England if (CheckQuestAttribute("ANIMISTS", "with_teacher_to_muelle") && LAi_IsDead(characterFromID("Greenford Prison Commendant"))) { cidx = GetTownNation("Greenford"); LeaveService(PChar, cidx, false); // RM homegroup = GetSoldiersGroup(cidx); } // --> PW relations change if warden dead //PW --> check if Teacher killed in prison after Viper patch if yes skip onboard and tavern scenes if (CheckQuestAttribute("ANIMISTS", "with_teacher_to_muelle") && LAi_IsDead(characterFromID("Teacher"))) { pchar.quest.destroy_ANIMISTS.win_condition.l1 = "location"; pchar.quest.destroy_ANIMISTS.win_condition.l1.location = "IslaMuelle"; pchar.quest.destroy_ANIMISTS.win_condition = "to_ANIMISTS"; } else { //<-- PW Teacher killed skip ends ChangeCharacterAddress(characterFromID("Teacher"), "denielle_deck", "goto1"); DoQuestCheckDelay("with_teacher_to_muelle_2", 1.0); DisableFastTravel(true); DisableMenuLaunch(true); } break; case "with_teacher_to_muelle_2": DoQuestReloadToLocation("denielle_deck", "reload", "locator2", "with_teacher_to_muelle_21"); break; case "with_teacher_to_muelle_21": DisableFastTravel(false); DisableMenuLaunch(false); RemoveOfficersIndex(pchar, GetCharacterIndex("Teacher")); ChangeCharacterAddress(characterFromID("Teacher"), "denielle_deck", "goto6"); LAi_SetActorType(characterFromID("Teacher")); LAi_ActorDialog(characterFromID("Teacher"), pchar, "with_teacher_to_muelle_3", 2.0, 1.0); break; case "with_teacher_to_muelle_3": pchar.quest.ANIMISTS = "with_teacher_in_tavern"; ChangeCharacterAddress(characterFromID("Teacher"), "Muelle_tavern_upstairs", "goto4"); DoQuestReloadToLocation("Muelle_tavern_upstairs", "goto", "goto3", "with_teacher_to_muelle_4"); if (GetNationRelation2MainCharacter(SPAIN) != RELATION_ENEMY) { pchar.location.from_sea = "Muelle_port"; } else { pchar.location.from_sea = "Muelle_shore"; } SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK 05-04-02 WM/IT set fleet. PlaceFleetNearShore(pchar.location.from_sea); break; case "with_teacher_to_muelle_4": LAi_ActorDialog(characterFromID("Teacher"), pchar, "with_teacher_to_muelle_5", 2.0, 1.0); break; case "with_teacher_to_muelle_5": LAi_LocationFightDisable("Muelle_tavern_upstairs", false); LAi_ActorAttack(characterFromID("Teacher"), pchar, ""); Lai_SetPlayerType(pchar); pchar.quest.destroy_ANIMISTS.win_condition.l1 = "NPC_Death"; pchar.quest.destroy_ANIMISTS.win_condition.l1.character = "Teacher"; pchar.quest.destroy_ANIMISTS.win_condition = "to_ANIMISTS"; LAi_group_FightGroups(LAI_GROUP_PLAYER, "ANIMISTS_SOLDIERS", true); Locations[FindLocation("muelle_ANIMISTS")].locators_radius.goto.goto37 = 2.2; break; case "to_ANIMISTS": Island_SetReloadEnableLocal("IslaMuelle", "reload_2", true); pchar.quest.final_battle_with_dark_teacher.win_condition.l1 = "locator"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.location = "muelle_ANIMISTS"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.locator_group = "goto"; pchar.quest.final_battle_with_dark_teacher.win_condition.l1.locator = "goto37"; pchar.quest.final_battle_with_dark_teacher.win_condition = "final_battle_with_dark_teacher"; LAi_group_FightGroups("ANIMISTS_SOLDIERS", LAI_GROUP_PLAYER, true); LAi_QuestDelay("Story_Domingues_to_cave", 0.0); //CTM break; case "final_battle_with_dark_teacher": LAi_SetStayType(pchar); LAi_SetActorType(characterFromID("Dark teacher")); LAi_ActorDialogNow(characterFromID("Dark teacher"), pchar, "player_back", 1.0); pchar.quest.destroy_ANIMISTS_complete.win_condition.l1 = "NPC_Death"; pchar.quest.destroy_ANIMISTS_complete.win_condition.l1.character = "Dark Teacher"; pchar.quest.destroy_ANIMISTS_complete.win_condition = "destroy_ANIMISTS_complete"; break; case "dark_teacher_WANT_kill_YOU": LAi_SetWarriorType(characterFromID("Dark teacher")); LAi_group_MoveCharacter(characterFromID("Dark teacher"), "LURKING_BOSS"); LAi_group_FightGroups(LAI_GROUP_PLAYER, "LURKING_BOSS", true); //LAi_ActorAttack(characterFromID("Dark teacher"), pchar, ""); break; case "destroy_ANIMISTS_complete": pchar.quest.ANIMISTS = "completed"; if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 50000); AddPartyExpChar(pchar, "Sneak", 5000); } else { AddPartyExp(pchar, 50000); } ChangeCharacterReputation(pchar, 10); //pchar.reputation = makeint(pchar.reputation) +10; GiveItem2Character(pchar, "blade20+2"); LAi_QuestDelay("destroy_ANIMISTS_complete_2", 6.0); break; case "destroy_ANIMISTS_complete_2": // pchar.quest.ANIMISTS = "domingues_dialog"; LAi_SetActorType(pchar); pchar.dialog.currentnode = "Animists_killed"; LAi_ActorSelfDialog(pchar, "player_back"); pchar.quest.fight_with_mefisto.win_condition.l1 = "location"; pchar.quest.fight_with_mefisto.win_condition.l1.location = "IslaMuelle"; pchar.quest.fight_with_mefisto.win_condition = "fight_with_mefisto"; AddQuestRecord("ANIMISTS", 36); break; case "fight_with_mefisto": bQuestDisableMapEnter = true; Island_SetReloadEnableGlobal("IslaMuelle", false); Group_CreateGroup("Mefisto"); Group_AddCharacter("Mefisto", "Dark Captain"); Group_SetGroupCommander("Mefisto", "Dark Captain"); Group_SetPursuitGroup("Mefisto", PLAYER_GROUP); Group_SetTaskAttack("Mefisto", PLAYER_GROUP, true); Group_SetAddress("Mefisto", Characters[GetMainCharacterIndex()].location, "", ""); Group_LockTask("Mefisto"); Characters[GetCharacterIndex("Dark Captain")].recognized = true; // PB: Ensure they're hostile! pchar.quest.destroy_mefisto_complete.win_condition.l1 = "NPC_Death"; pchar.quest.destroy_mefisto_complete.win_condition.l1.character = "Dark Captain"; pchar.quest.destroy_mefisto_complete.win_condition = "destroy_mefisto_complete"; AddQuestRecord("ANIMISTS", 37); break; case "destroy_mefisto_complete": if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 15000); AddPartyExpChar(pchar, "Sailing", 5000); AddPartyExpChar(pchar, "Sneak", 500); } else { AddPartyExp(pchar, 15000); } ChangeCharacterReputation(pchar, 10); bQuestDisableMapEnter = false Island_SetReloadEnableGlobal("IslaMuelle", true); AddQuestRecord("ANIMISTS", 42); // CloseQuestHeader("ANIMISTS"); // CTM --> pchar.quest.return_priest_complete.win_condition.l1 = "location"; pchar.quest.return_priest_complete.win_condition.l1.location = "Muelle_Port"; pchar.quest.return_priest_complete.win_condition = "return_priest_complete"; pchar.quest.return_priest_complete1.win_condition.l1 = "location"; pchar.quest.return_priest_complete1.win_condition.l1.location = "Muelle_Shore"; pchar.quest.return_priest_complete1.win_condition = "return_priest_complete1"; // CTM <-- break; case "womens_leave_town": ChangeCharacterReputation(pchar, 4); LAi_SetActorType(characterFromID("Rian Dekkers")); LAi_SetActorType(characterFromID("Janneke Blinkerhof")); LAi_SetActorType(characterFromID("Lisebet Schefold")); // LAi_ActorGoToLocation(characterFromID("Rian Dekkers"), "reload", "reload1", "none", "", "", "", 15.0); // LAi_ActorGoToLocation(characterFromID("Janneke Blinkerhof"), "reload", "reload1", "none", "", "", "", 15.0); // LAi_ActorGoToLocation(characterFromID("Lisebet Schefold"), "reload", "reload1", "none", "", "", "", 15.0); LAi_ActorGoToLocation(characterFromID("Rian Dekkers"), "reload", "reload9", "none", "", "", "", 60.0); // GR: The women have just been told their children are in port, LAi_ActorGoToLocation(characterFromID("Janneke Blinkerhof"), "reload", "reload9", "none", "", "", "", 60.0); // GR: so make them go to the port, and give them time to get there. LAi_ActorGoToLocation(characterFromID("Lisebet Schefold"), "reload", "reload9", "none", "", "", "", 60.0); break; // --> CatalinaThePirate Fix for Animist Quest case "Story_Gareth_deception": LAi_SetActorType(characterFromID("father Gareth")); LAi_ActorDialog(characterFromID("father Gareth"), pchar, "", 2.0, 1.0); LAi_ActorWaitDialog(Pchar, characterFromID("father Gareth")); characters[GetCharacterIndex("father Gareth")].dialog.currentnode = "letter_to_domingues"; break; case "Story_Gareth_deception2": LAi_SetActorType(characterFromID("Father Bernard")); LAi_ActorDialog(characterFromID("Father Bernard"), pchar, "", 2.0, 1.0); LAi_ActorWaitDialog(Pchar, characterFromID("Father Bernard")); characters[GetCharacterIndex("Father Bernard")].dialog.currentnode = "ANIMISTS_letters_5"; break; case "Story_Domingues_to_cave": ChangeCharacterAddress(characterFromID("padre Domingues"), "Muelle_ANIMISTS", "goto21"); Locations[FindLocation("muelle_ANIMISTS")].locators_radius.goto.goto21 = 5.0; pchar.quest.domingues_in_cell.win_condition.l1 = "locator"; pchar.quest.domingues_in_cell.win_condition.l1.location = "Muelle_ANIMISTS"; pchar.quest.domingues_in_cell.win_condition.l1.locator_group = "goto"; pchar.quest.domingues_in_cell.win_condition.l1.locator = "goto21"; pchar.quest.domingues_in_cell.win_condition = "domingues_in_cell"; break; case "domingues_in_cell": LAi_SetActorType(characterFromID("padre Domingues")); LAi_ActorDialog(characterFromID("padre Domingues"), pchar, "", 2.0, 1.0); LAi_ActorWaitDialog(characterFromID("padre Domingues"), PChar); //CTM characters[GetCharacterIndex("padre Domingues")].dialog.currentnode = "Domingues_in_cave"; break; case "Domingues_warning": pchar.quest.Domingues_warning2.win_condition.l1 = "NPC_Death"; pchar.quest.Domingues_warning2.win_condition.l1.character = "Dark Teacher"; pchar.quest.Domingues_warning2.win_condition = "Domingues_warning2"; break; case "Domingues_warning2": Locations[FindLocation("muelle_ANIMISTS")].locators_radius.goto.goto21 = 5.0; pchar.quest.Domingues_warning3.win_condition.l1 = "locator"; pchar.quest.Domingues_warning3.win_condition.l1.location = "Muelle_ANIMISTS"; pchar.quest.Domingues_warning3.win_condition.l1.locator_group = "goto"; pchar.quest.Domingues_warning3.win_condition.l1.locator = "goto21"; pchar.quest.Domingues_warning3.win_condition = "Domingues_warning3"; break; case "Domingues_warning3": LAi_SetActorType(characterFromID("padre Domingues")); LAi_ActorDialog(characterFromID("padre Domingues"), pchar, "", 2.0, 1.0); LAi_ActorWaitDialog(characterFromID("padre Domingues"), PChar); //CTM characters[GetCharacterIndex("padre Domingues")].dialog.currentnode = "Domingues_in_cave2"; break; case "Story_Domingues_released": LAi_QuestDelay("Story_Domingues_released2", 20.0); break; case "Story_Domingues_released2": changeCharacterAddress(characterfromID("second_spaniard_priest"), "none", ""); // KK changeCharacterAddress(characterfromID("padre Domingues"), "none", ""); break; // NK <-- // CTM --> case "return_priest_complete": LAi_QuestDelay("return_priest_complete2", 1.0); pchar.quest.return_priest_complete1.over = "yes"; break; case "return_priest_complete1": LAi_QuestDelay("return_priest_complete2", 1.0); pchar.quest.return_priest_complete.over = "yes"; break; case "return_priest_complete2": DoReloadCharacterToLocation("Muelle_Church", "reload", "reload1"); changeCharacterAddressGroup(characterfromID("padre Domingues"), "Muelle_Church", "goto", "goto1"); // GR: if you didn't return to Animist cave cell to release Domingues, he appears changeCharacterAddress(characterfromID("second_spaniard_priest"), "none", ""); // here anyway but Padre Robano is not removed. Do it now instead. LAi_SetActorType(characterFromID("padre Domingues")); LAi_ActorDialog(characterFromID("padre Domingues"), pchar, "", 0.0, 0.0); characters[GetCharacterIndex("padre Domingues")].dialog.currentnode = "Thank_You"; pchar.quest.return_priest_complete.over = "yes"; Locations[FindLocation("Muelle_church")].reload.l1.go = "Muelle_town_04"; //GR: put church exit back to normal Locations[FindLocation("Muelle_church")].reload.l1.emerge = "reload4"; break; case "return_priest_complete3": AddQuestRecord("ANIMISTS", 41); pchar.quest.return_priest_complete4.win_condition.l1 = "ExitFromLocation"; pchar.quest.return_priest_complete4.win_condition.l1.location = "Muelle_Church"; pchar.quest.return_priest_complete4.win_condition = "return_priest_complete4"; break; case "return_priest_complete4": changeCharacterAddress(characterfromID("padre Domingues"), "Muelle_church", "goto11"); LAi_SetStayType(characterFromID("padre Domingues")); Characters[GetCharacterIndex("padre Domingues")].dialog.CurrentNode = "First time"; break; // CTM <-- /////////////////////////////////////////////////////////////// // FIND THE MISSING SON OF THE SPANISH ADMIRAL (Lucas Da Saldanha quest) /////////////////////////////////////////////////////////////// case "Luc_start": SetEnterLocationQuest("Muelle_residence", "Luc_start_check", 0); break; case "Luc_start_check": if(makeint(PChar.rank) >= 4) { ChangeCharacterAddressGroup(CharacterFromID("Joaquin Da Saldanha"), "Muelle_Residence", "goto", "goto6"); } break; case "Lucas_search_refused": PChar.quest.Lucas = "refused"; DeleteEnterLocationQuest("Muelle_residence", "Luc_start_check"); break; case "Lucas_search_start": PChar.quest.Lucas = "search"; DeleteEnterLocationQuest("Muelle_residence", "Luc_start_check"); //JOURNAL SetQuestHeader("Lucas"); AddQuestRecord("Lucas", 1); break; case "Lucas_search1": PChar.quest.Lucas = "search1"; ChangeCharacterAddressGroup(CharacterFromID("Arabella Silehard"), "Redmond_jungle_01", "goto", "goto9"); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 1"), "Redmond_jungle_01", "goto", "goto10"); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 2"), "Redmond_jungle_01", "goto", "goto11"); LAi_group_MoveCharacter(CharacterFromID("Arabella Silehard"), "ARABELLA"); LAi_group_MoveCharacter(CharacterFromID("Arabella's guard 1"), "ARABELLA"); LAi_group_MoveCharacter(CharacterFromID("Arabella's guard 2"), "ARABELLA"); LAi_SetImmortal(CharacterFromID("Arabella Silehard"), true); LAi_SetImmortal(CharacterFromID("Arabella's guard 1"), true); LAi_SetImmortal(CharacterFromID("Arabella's guard 2"), true); LAi_group_SetRelation("ARABELLA", "ARABELLA", LAI_GROUP_FRIEND); LAi_group_SetAlarmReaction("ARABELLA", LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL, LAI_GROUP_NEUTRAL); //JOURNAL AddQuestRecord("Lucas", 2); break; case "Lucas_search2": PChar.quest.Lucas = "search2"; //JOURNAL AddQuestRecord("Lucas", 3); pchar.quest.Lucas_ArabellaLeave.win_condition.l1 = "ExitFromLocation"; pchar.quest.Lucas_ArabellaLeave.win_condition.l1.location = pchar.location; pchar.quest.Lucas_ArabellaLeave.win_condition = "Lucas_ArabellaLeave"; break; case "Lucas_ArabellaLeave": ChangeCharacterAddressGroup(CharacterFromID("Arabella Silehard"), "None", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 1"), "None", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 2"), "None", "", ""); break; case "Lucas_ransom_refused": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_ransom_refused"); bDisableFastReload = 1; LAi_SetActorType(CharacterFromID("Joaquin Da Saldanha")); LAi_CharacterDisableDialog(CharacterFromID("Joaquin Da Saldanha")); LAi_ActorGoToLocation(CharacterFromID("Joaquin Da Saldanha"), "reload", "reload1", "none", "", "", "Lucas_ransom_refused1", 3.0); //JOURNAL AddQuestRecord("Lucas", 4); CloseQuestHeader("Lucas"); break; case "Lucas_ransom_refused1": EndQuestMovie();TrackQuestMovie("end","Lucas_ransom_refused1"); bDisableFastReload = 0; break; case "Lucas_ransom_start": PChar.quest.Lucas = "ransom"; AddMoneyToCharacter(PChar, 20000); ChangeCharacterAddressGroup(CharacterFromID("Billy Brock"), "Falaise_de_fleur_tavern", "goto", "goto3"); ChangeCharacterAddressGroup(CharacterFromID("Snorri Baldursson"), "Falaise_de_fleur_tavern", "goto", "goto2"); ChangeCharacterAddressGroup(CharacterFromID("Francis Snake"), "Ransom_house_f2", "goto", "goto1"); ChangeCharacterAddressGroup(CharacterFromID("Lucas Da Saldanha"), "Ransom_house_f2", "goto", "goto4"); Locations[FindLocation("Falaise_De_Fleur_location_03")].reload.l12.close_for_night = 0; Locations[FindLocation("Falaise_De_Fleur_location_03")].reload.l12.label = "Kidnappers' Hideout"; Locations[FindLocation("Falaise_de_fleur_tavern")].vcskip = true; // NK PChar.quest.Lucas_ransom_deadline.win_condition.l1 = "Timer"; PChar.quest.Lucas_ransom_deadline.win_condition.l1.date.day = GetAddingDataDay(0, 1, 0); PChar.quest.Lucas_ransom_deadline.win_condition.l1.date.month = GetAddingDataMonth(0, 1, 0); PChar.quest.Lucas_ransom_deadline.win_condition.l1.date.year = GetAddingDataYear(0, 1, 0); PChar.quest.Lucas_ransom_deadline.win_condition = "Lucas_ransom_deadline"; PChar.quest.Lucas_ransom_delivery.win_condition.l1 = "location"; PChar.quest.Lucas_ransom_delivery.win_condition.l1.character = PChar.id; PChar.quest.Lucas_ransom_delivery.win_condition.l1.location = "Falaise_de_fleur_tavern"; PChar.quest.Lucas_ransom_delivery.win_condition = "Lucas_ransom_delivery"; //JOURNAL AddQuestRecord("Lucas", 5); break; case "Lucas_ransom_deadline": DisableFastTravel(false); DisableMenuLaunch(false); // unneeded if(GetRMRelation(PChar, SPAIN) > REL_AFTERATTACK) SetRMRelation(PChar, SPAIN, REL_AFTERATTACK); // RM - SetNationRelation2MainCharacter(SPAIN, RELATION_ENEMY); LeaveService(PChar, SPAIN, false); // RM ChangeCharacterAddressGroup(CharacterFromID("Joaquin Da Saldanha"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Arabella Silehard"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 1"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Arabella's guard 2"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Billy Brock"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Snorri Baldursson"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Francis Snake"), "none", "", ""); ChangeCharacterAddressGroup(CharacterFromID("Lucas Da Saldanha"), "none", "", ""); //JOURNAL AddQuestRecord("Lucas", 14); CloseQuestHeader("Lucas"); break; case "Lucas_ransom_delivery": if(CheckQuestAttribute("gambling_with_girl", "to_FDF")) // GR: Check if "Girl Won in Card Game" is ready to enter tavern { PChar.quest.Lucas = "sign"; // GR: Billy Brock is in "Guardian" mode so you can talk to him. This attribute means he'll talk about ransom break; } StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_ransom_delivery"); bDisableFastReload = 1; LAi_SetActorType(CharacterFromID("Billy Brock")); LAi_SetActorType(CharacterFromID("Snorri Baldursson")); LAi_ActorTurnToCharacter(CharacterFromID("Billy Brock"), CharacterFromID("Snorri Baldursson")); LAi_ActorTurnToCharacter(CharacterFromID("Snorri Baldursson"), CharacterFromID("Billy Brock")); LAi_SetActorType(PChar); pchar.dialog.currentnode = "Lucas"; // CTM LAi_ActorSelfDialog(PChar, ""); break; case "Lucas_ransom_delivery1": //dialog exit from self LAi_ActorGoToLocator(PChar, "goto", "goto6", "Lucas_ransom_delivery2", 3.0); break; case "Lucas_ransom_delivery2": Pchar.dialog.CurrentNode = "Eavesdrop1"; LAi_ActorTurnToCharacter(PChar, CharacterFromID("Billy Brock")); LAi_ActorSelfDialog(PChar, ""); break; case "Lucas_sign1": //dialog exit from Self PChar.quest.Lucas = "sign"; LAi_SetPlayerType(PChar); LAi_ActorDialog(CharacterFromID("Billy Brock"), PChar, "", 4.0, -1); break; case "Lucas_sign2": //dialog exit from Brock LAi_SetActorType(CharacterFromID("Billy Brock")); LAi_ActorGoToLocation(CharacterFromID("Billy Brock"), "reload", "reload1", "Falaise_de_fleur_location_03", "goto", "sitizen04", "Lucas_sign3", 5.0); break; case "Lucas_sign3": EndQuestMovie();TrackQuestMovie("end","Lucas_sign3"); PChar.quest.Lucas_sign4.win_condition.l1 = "location"; PChar.quest.Lucas_sign4.win_condition.l1.character = PChar.id; PChar.quest.Lucas_sign4.win_condition.l1.location = "Falaise_de_fleur_location_03"; PChar.quest.Lucas_sign4.win_condition = "Lucas_sign4"; break; case "Lucas_sign4": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_sign4"); LAi_ActorGoToLocation(CharacterFromID("Billy Brock"), "reload", "home7", "Ransom_house_f1", "goto", "goto3", "Lucas_sign5", 10.0); break; case "Lucas_sign5": EndQuestMovie();TrackQuestMovie("end","Lucas_sign5"); bDisableFastReload = 0; PChar.quest.Lucas_sign6.win_condition.l1 = "location"; PChar.quest.Lucas_sign6.win_condition.l1.character = PChar.id; PChar.quest.Lucas_sign6.win_condition.l1.location = "Ransom_house_f1"; PChar.quest.Lucas_sign6.win_condition = "Lucas_sign6"; Locations[FindLocation("Ransom_house_f1")].vcskip = true; // NK break; case "Lucas_sign6": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_sign6"); bDisableFastReload = 1; LAi_LocationFightDisable(&Locations[FindLocation("Ransom_house_f1")], 1); PChar.quest.Lucas = "sign1"; LAi_ActorDialog(CharacterFromID("Billy Brock"), PChar, "", 4.0, -1); break; case "Lucas_sign7": //dialog exit from Brock PChar.quest.Lucas = "sign2"; LAi_ActorGoToLocation(CharacterFromID("Billy Brock"), "reload", "reload2", "none", "", "", "Lucas_sign8", 10.0); break; case "Lucas_sign8": LAi_QuestDelay("Lucas_sign9", 3.0); break; case "Lucas_sign9": DeleteAttribute(&Locations[FindLocation("Falaise_de_fleur_tavern")],"vcskip"); // NK ChangeCharacterAddressGroup(CharacterFromID("Francis Snake"), "Ransom_house_f1", "reload", "reload2"); LAi_SetActorType(CharacterFromID("Francis Snake")); LAi_ActorGoToLocator(CharacterFromID("Francis Snake"), "goto", "goto2", "Lucas_sign9_1", 10.0); LAi_QuestDelay("Lucas_sign10", 2.5); break; case "Lucas_sign9_1": LAi_ActorTurnToCharacter(CharacterFromID("Francis Snake"), PChar); break; case "Lucas_sign10": ChangeCharacterAddressGroup(CharacterFromID("Lucas Da Saldanha"), "Ransom_house_f1", "reload", "reload2"); LAi_SetActorType(CharacterFromID("Lucas Da Saldanha")); LAi_ActorGoToLocator(CharacterFromID("Lucas Da Saldanha"), "goto", "goto1", "Lucas_sign10_1", 10.0); LAi_QuestDelay("Lucas_sign11", 2.5); break; case "Lucas_sign10_1": LAi_ActorTurnToCharacter(CharacterFromID("Lucas Da Saldanha"), PChar); break; case "Lucas_sign11": ChangeCharacterAddressGroup(CharacterFromID("Billy Brock"), "Ransom_house_f1", "reload", "reload2"); LAi_ActorGoToLocator(CharacterFromID("Billy Brock"), "goto", "goto3", "Lucas_sign12", 10.0); break; case "Lucas_sign12": EndQuestMovie();TrackQuestMovie("end","Lucas_sign12"); LAi_ActorDialog(CharacterFromID("Billy Brock"), PChar, "", 3.0, -1); DeleteAttribute(&Locations[FindLocation("Ransom_house_f1")],"vcskip"); // NK break; case "Lucas_kill": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_kill"); LAi_LocationFightDisable(&Locations[FindLocation("Ransom_house_f1")], 0); LAi_KillCharacter(CharacterFromID("Lucas Da Saldanha")); LAi_SetWarriorType(CharacterFromID("Billy Brock")); LAi_SetWarriorType(CharacterFromID("Francis Snake")); LAi_group_MoveCharacter(CharacterFromID("Billy Brock"), "kidnappers"); LAi_group_MoveCharacter(CharacterFromID("Francis Snake"), "kidnappers"); LAi_group_FightGroups("kidnappers", LAI_GROUP_PLAYER, 1); LAi_group_SetCheck("kidnappers", "Lucas_killed"); break; case "Lucas_killed": EndQuestMovie();TrackQuestMovie("end","Lucas_killed"); DisableFastTravel(true); DisableMenuLaunch(true); DoQuestCheckDelay("Lucas_ransom_deadline", 3.0); break; case "Lucas_sign13": //dialog exit from Brock StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_sign13"); AddMoneyToCharacter(PChar, -20000); LAi_type_actor_Reset(CharacterFromID("Billy Brock")); LAi_type_actor_Reset(CharacterFromID("Francis Snake")); LAi_ActorGoToLocation(CharacterFromID("Billy Brock"), "reload", "reload1", "none", "", "", "", 3.0); LAi_ActorGoToLocation(CharacterFromID("Francis Snake"), "reload", "reload1", "none", "", "", "Lucas_talk1", 4.0); break; case "Lucas_talk1": Characters[GetCharacterIndex("Lucas Da Saldanha")].dialog.CurrentNode = "free"; LAi_type_actor_Reset(CharacterFromID("Lucas Da Saldanha")); LAi_ActorDialog(CharacterFromID("Lucas Da Saldanha"), PChar, "", 3.0, -1); break; case "Lucas_talk1_1": //dialog exit from Lucas EndQuestMovie();TrackQuestMovie("end","Lucas_talk1_1"); PChar.quest.Lucas = "return"; GiveItem2Character(CharacterFromId("Lucas Da Saldanha"), "bladeC6"); GiveItem2Character(CharacterFromId("Lucas Da Saldanha"),"pistol3"); EquipCharacterByItem(CharacterFromId("Lucas Da Saldanha"), "bladeC6"); EquipCharacterByItem(CharacterFromId("Lucas Da Saldanha"), "pistol3"); //JRH ammo mod --> if (ENABLE_AMMOMOD) { // LDH change TakenItems(CharacterFromId("Lucas Da Saldanha"), "gunpowder", 6); TakenItems(CharacterFromId("Lucas Da Saldanha"), "pistolgrapes", 6); } //JRH ammo mod <-- LAi_SetImmortal(CharacterFromID("Lucas Da Saldanha"), 1); LAi_ActorFollowEverywhere(CharacterFromID("Lucas Da Saldanha"), "", 0.0); PChar.quest.Lucas_talk2.win_condition.l1 = "location"; PChar.quest.Lucas_talk2.win_condition.l1.character = PChar.id; PChar.quest.Lucas_talk2.win_condition.l1.location = "Falaise_de_fleur_location_03"; PChar.quest.Lucas_talk2.win_condition = "Lucas_talk2"; //JOURNAL AddQuestRecord("Lucas", 7); break; case "Lucas_talk2": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_talk2"); LAi_LocationFightDisable(&Locations[FindLocation("Ransom_house_f1")], 0); Characters[GetCharacterIndex("Lucas Da Saldanha")].dialog.CurrentNode = "free1"; LAi_ActorDialog(CharacterFromID("Lucas Da Saldanha"), PChar, "", 2.0, -1); break; case "Lucas_talk2_1": EndQuestMovie();TrackQuestMovie("end","Lucas_talk2_1"); bDisableFastReload = 0; LAi_ActorFollowEverywhere(CharacterFromID("Lucas Da Saldanha"), "", 0.0); PChar.quest.Lucas_return.win_condition.l1 = "location"; PChar.quest.Lucas_return.win_condition.l1.character = PChar.id; PChar.quest.Lucas_return.win_condition.l1.location = "Muelle_Residence"; PChar.quest.Lucas_return.win_condition = "Lucas_return"; PChar.quest.Lucas_ransom_deadline.over = "yes"; break; case "Lucas_return": StartQuestMovie(true, false, false);TrackQuestMovie("start","Lucas_return"); LAi_Type_Actor_Reset(CharacterFromID("Lucas Da Saldanha")); LAi_SetActorType(characterFromID("Joaquin Da Saldanha")); LAi_SetActorType(PChar); LAi_ActorGoToLocator(PChar, "goto", "goto7", "Lucas_return1", 1.0); LAi_ActorGoToLocator(CharacterFromID("Lucas Da Saldanha"), "goto", "goto9", "Lucas_return_1", 2.0); LAi_SetImmortal(CharacterFromID("Lucas Da Saldanha"), 0); break; case "Lucas_return_1": LAi_ActorTurnToCharacter(CharacterFromID("Joaquin Da Saldanha"), CharacterFromID("Lucas Da Saldanha")); LAi_ActorTurnToCharacter(CharacterFromID("Lucas Da Saldanha"), CharacterFromID("Joaquin Da Saldanha")); LAi_QuestDelay("Lucas_return1", 1.0); break; case "Lucas_return1": LAi_ActorTurnToCharacter(PChar, CharacterFromID("Joaquin Da Saldanha")); LAi_QuestDelay("Lucas_return1_1", 1.0); break; case "Lucas_return1_1": //dialog exit from self LAi_SetPlayerType(PChar); LAi_ActorDialog(CharacterFromID("Joaquin Da Saldanha"), PChar, "", 2.0, -1); break; case "Lucas_end": //dialog exit from Joaquin if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 20000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 20000); } ChangeCharacterReputation(pchar, 20); if(GetRMRelation(PChar, SPAIN) < REL_AMNESTY) SetRMRelation(PChar, SPAIN, REL_AMNESTY); // RM AddMoneyToCharacter(PChar, +10000); LAi_CharacterDisableDialog(CharacterFromID("Joaquin Da Saldanha")); LAi_Type_Actor_Reset(CharacterFromID("Joaquin Da Saldanha")); LAi_ActorGoToLocation(CharacterFromID("Joaquin Da Saldanha"), "reload", "reload1", "none", "", "", "", 3.0); Characters[GetCharacterIndex("Lucas Da Saldanha")].dialog.CurrentNode = "join"; LAi_ActorDialog(CharacterFromID("Lucas Da Saldanha"), PChar, "", 2.0, -1); //JOURNAL AddQuestRecord("Lucas", 9); CloseQuestHeader("Lucas"); break; case "Lucas_join": //dialog exit from Lucas EndQuestMovie();TrackQuestMovie("end","Lucas_join"); LAi_Type_Actor_Reset(CharacterFromID("Lucas Da Saldanha")); SetOfficersIndex(PChar, 3, GetCharacterIndex("Lucas Da Saldanha")); // NK was -1 break; case "Lucas_no_join": //dialog exit from Lucas LAi_ActorGoToLocator(CharacterFromID("Lucas Da Saldanha"), "goto", "goto4", "Lucas_no_join1", 3.0); break; case "Lucas_no_join1": EndQuestMovie();TrackQuestMovie("end","Lucas_no_join1"); ChangeCharacterAddressGroup(CharacterFromID("Lucas Da Saldanha"), "Muelle_Residence", "goto", "goto4"); Characters[GetCharacterIndex("Lucas Da Saldanha")].dialog.CurrentNode = "join_loop"; LAi_SetStayType(CharacterFromID("Lucas Da Saldanha")); break; /////////////////////////////////////////////////////////////// // SMUGGLING FOR THOMAS O'REILY /////////////////////////////////////////////////////////////// case "thomas_contraband_exit": LAi_SetHP(characterFromID("Bart Cooke"), 80.0, 80.0); LAi_SetHP(characterFromID("Wally Cutty"), 80.0, 80.0); LAi_SetHP(characterFromID("Bill Jellybones"), 80.0, 80.0); LAi_SetCheckMinHP(characterFromID("Bart Cooke"), LAi_GetCharacterHP(characterFromID("Bart Cooke"))-1.0, false, "stephan_bonser_attack"); // KK LAi_SetCheckMinHP(characterFromID("Wally Cutty"), LAi_GetCharacterHP(characterFromID("Wally Cutty"))-1.0, false, "stephan_bonser_attack"); // KK LAi_SetCheckMinHP(characterFromID("Bill Jellybones"), LAi_GetCharacterHP(characterFromID("Bill Jellybones"))-1.0, false, "stephan_bonser_attack"); // KK ChangeCharacterAddress(characterFromID("Bart Cooke"), "Redmond_Shore_02", "goto4"); ChangeCharacterAddress(characterFromID("Wally Cutty"), "Redmond_Shore_02", "goto6"); ChangeCharacterAddress(characterFromID("Bill Jellybones"), "Redmond_Shore_02", "goto5"); SetQuestHeader("Thomas_OReily_contraband"); AddQuestRecord("Thomas_OReily_contraband", 1); LAi_QuestDelay("learn about smugglers", 0.0); break; case "thomas_contraband_12_exit": AddQuestRecord("Thomas_OReily_contraband", 3); AddCharacterGoods(characterFromID("Pirate Captain 04"),GOOD_EBONY,100); pchar.quest.thomas_contraband_12_exit_2.win_condition.l1 = "location"; pchar.quest.thomas_contraband_12_exit_2.win_condition.l1.location = "Redmond"; pchar.quest.thomas_contraband_12_exit_2.win_condition = "thomas_contraband_12_exit_2"; break; case "thomas_contraband_12_exit_2": bQuestDisableMapEnter = true; Island_SetReloadEnableGlobal("Redmond", false); Group_CreateGroup("Smugglers_squadron2"); Group_AddCharacter("Smugglers_squadron2", "Pirate Captain 04"); Group_SetGroupCommander("Smugglers_squadron2", "Pirate Captain 04"); Group_SetPursuitGroup("Smugglers_squadron2", PLAYER_GROUP); Group_SetTaskAttack("Smugglers_squadron2", PLAYER_GROUP, true); Group_SetAddress("Smugglers_squadron2", Characters[GetMainCharacterIndex()].location, "", ""); SetCharacterRelation(GetCharacterIndex("Pirate Captain 04"),GetMainCharacterIndex(),RELATION_ENEMY); UpdateRelations(); pchar.quest.boarding_smuggler_ship.win_condition.l1 = "Character_Capture"; pchar.quest.boarding_smuggler_ship.win_condition.l1.character = "Pirate Captain 04"; pchar.quest.boarding_smuggler_ship.win_condition = "boarding_smuggler_ship"; pchar.quest.sink_smuggler_ship.win_condition.l1 = "NPC_Death"; pchar.quest.sink_smuggler_ship.win_condition.l1.character = "Pirate Captain 04"; // KK --> pchar.quest.sink_smuggler_ship.win_condition.l2 = "location"; pchar.quest.sink_smuggler_ship.win_condition.l2.location = PChar.location; // <-- KK pchar.quest.sink_smuggler_ship.win_condition = "sink_smuggler_ship"; break; case "boarding_smuggler_ship": bQuestDisableMapEnter = false; Island_SetReloadEnableGlobal("Redmond", true); characters[GetCharacterIndex("Thomas O'Reily")].quest.contraband = "boarding"; break; case "sink_smuggler_ship": bQuestDisableMapEnter = false; Island_SetReloadEnableGlobal("Redmond", true); ChangeSmugglerLiking(pchar, -20); //Add liking break; case "stephan_bonser_attack": LAi_RemoveCheckMinHP(characterFromID("Bart Cooke")); LAi_RemoveCheckMinHP(characterFromID("Wally Cutty")); LAi_RemoveCheckMinHP(characterFromID("Bill Jellybones")); LAi_SetActorType(characterFromID("Bart Cooke")); LAi_SetActorType(characterFromID("Wally Cutty")); LAi_SetActorType(characterFromID("Bill Jellybones")); AddQuestRecord("Thomas_OReily_contraband", 2); ChangeSmugglerLiking(pchar, -20); //Add liking LAi_ActorAttack(characterFromID("Bart Cooke"), pchar, ""); LAi_ActorAttack(characterFromID("Wally Cutty"), pchar, ""); LAi_ActorAttack(characterFromID("Bill Jellybones"), pchar, ""); pchar.quest.exit_from_redmond_shore_02.win_condition.l1 = "location"; pchar.quest.exit_from_redmond_shore_02.win_condition.l1.location = "Redmond"; pchar.quest.exit_from_redmond_shore_02.win_condition = "quest_exit_from_redmond_shore_02_complete"; characters[GetCharacterIndex("Thomas O'Reily")].quest.contraband = "after_fight"; break; case "sided with smugglers instead of Thomas": LAi_RemoveCheckMinHP(characterFromID("Bart Cooke")); LAi_RemoveCheckMinHP(characterFromID("Wally Cutty")); LAi_RemoveCheckMinHP(characterFromID("Bill Jellybones")); ChangeSmugglerLiking(pchar, 10); characters[GetCharacterIndex("Thomas O'Reily")].quest.contraband = "done"; AddQuestRecord("Thomas_OReily_contraband", 7); CloseQuestHeader("Thomas_OReily_contraband"); pchar.quest.exit_from_redmond_shore_02.win_condition.l1 = "location"; pchar.quest.exit_from_redmond_shore_02.win_condition.l1.location = "Redmond"; pchar.quest.exit_from_redmond_shore_02.win_condition = "remove smugglers from beach Thomas"; break; case "remove smugglers from beach Thomas": ChangeCharacterAddress(characterFromID("Bart Cooke"), "none", ""); ChangeCharacterAddress(characterFromID("Wally Cutty"), "none", ""); ChangeCharacterAddress(characterFromID("Bill Jellybones"), "none", ""); break; case "quest_exit_from_redmond_shore_02_complete": Group_CreateGroup("Smugglers_squadron"); Group_AddCharacter("Smugglers_squadron", "Pirate Captain 01"); Group_AddCharacter("Smugglers_squadron", "Pirate Captain 02"); Group_AddCharacter("Smugglers_squadron", "Pirate Captain 03"); Group_SetGroupCommander("Smugglers_squadron", "Pirate Captain 01"); Group_SetPursuitGroup("Smugglers_squadron", PLAYER_GROUP); Group_SetTaskAttack("Smugglers_squadron", PLAYER_GROUP, true); Group_SetAddress("Smugglers_squadron", Characters[GetMainCharacterIndex()].location, "", ""); SetCharacterRelation(GetCharacterIndex("Pirate Captain 01"),GetMainCharacterIndex(),RELATION_ENEMY); UpdateRelations(); break; case "prepare_thierry_bosquet_fight": LAi_SetActorType(characterFromID("thierry bosquet")); LAi_SetActorType(characterFromID("France_bukaner_01")); ChangeCharacterAddress(characterFromID("thierry bosquet"), "Falaise_de_Fleur_jungle", "locator5"); ChangeCharacterAddress(characterFromID("France_bukaner_01"), "Falaise_de_Fleur_jungle", "locator6"); LAi_ActorDialog(characterFromID("thierry bosquet"), pchar, "", 3.0, 1.0); LAi_ActorFollow(characterFromID("France_bukaner_01"), pchar, "", 5.0); LAi_SetCheckMinHP(characterFromID("thierry bosquet"), LAi_GetCharacterHP(characterFromID("thierry bosquet"))-1.0, false, "thierry_bosquet_fight"); // KK LAi_SetCheckMinHP(characterFromID("France_bukaner_01"), LAi_GetCharacterHP(characterFromID("France_bukaner_01"))-1.0, false, "thierry_bosquet_fight"); // KK break; case "thierry_bosquet_fight": LAi_RemoveCheckMinHP(characterFromID("thierry bosquet")); LAi_RemoveCheckMinHP(characterFromID("France_bukaner_01")); LAi_group_MoveCharacter(characterFromID("thierry bosquet"), "FRANCE_BUKANERS"); LAi_group_MoveCharacter(characterFromID("France_bukaner_01"), "FRANCE_BUKANERS"); LAi_group_FightGroups("FRANCE_BUKANERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("FRANCE_BUKANERS", "thierry_bosquet_fight_completed"); break; case "thierry_bosquet_fight_completed": GiveItem2Character(pchar, "blade7"); break; /////////////////////////////////////////////////////////////// ///// PATRIC AND THE IDOLS /////////////////////////////////////////////////////////////// case "lucient_bescanceny_fight": LAi_setActorType(characterFromID("lucien bescanceny")); LAi_ActorAttack(characterfromID("lucien bescanceny"), pchar, ""); Characters[GetCharacterIndex("Patric Cardone")].quest.teodoro = "5";// NK thanks to Taghmon AddQuestRecord("Patric", 5); // NK break; case "andre_juliao_fight_1": LAi_Fade("andre_find_locator", "andre_juliao_fight_2"); break; case "andre_find_locator": PlaceCharacter(characterFromID("andre juliao"), "goto"); LAi_SetWarriorType(characterFromID("andre juliao")); break; case "andre_juliao_fight_2": LAi_LocationFightDisable(&Locations[FindLocation("Falaise_de_fleur_tavern")], false); LAi_group_MoveCharacter(characterFromID("andre juliao"), "FALAISE_SMUGGLER"); LAi_group_FightGroups("FALAISE_SMUGGLER", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("FALAISE_SMUGGLER", "andre_juliao_fight_3"); break; case "andre_juliao_fight_3": LAi_SetActorType(pchar); LAi_LocationFightDisable(&Locations[FindLocation("Falaise_de_fleur_tavern")], true); LAi_SetPlayerType(pchar); break; /////////////////////////////////////////////////////////////// ///// ARTOIS VOYSEY AND NIGEL BLYTHE /////////////////////////////////////////////////////////////// //Artois Voysey // KK --> case "Install_Voysey_And_Blythe": ChangeCharacterAddressGroup(CharacterFromID("Nigel Blythe"), "QC_town", "goto", "character4"); ChangeCharacterAddressGroup(CharacterFromID("Artois Voysey"), "QC_town", "goto", "goto5"); PChar.quest.Install_Voysey_And_Blythe = "1"; // Artois Voysey and Nigel Blythe quest PChar.quest.Story_Artois_Nigel.win_condition.l1 = "location"; PChar.quest.Story_Artois_Nigel.win_condition.l1.character = PChar.id; PChar.quest.Story_Artois_Nigel.win_condition.l1.location = "QC_town"; PChar.quest.Story_Artois_Nigel.win_condition = "Story_Artois"; Locations[FindLocation("QC_town")].vcskip = true; break; // <-- KK case "Story_Artois": if (CheckQuestAttribute("main_line", "ines_info_denied")) { LAi_QuestDelay("Story_Artois", 4.0); } else { PChar.quest.Install_Voysey_And_Blythe.over = "yes"; // KK DeleteAttribute(&Locations[FindLocation("QC_Town")],"vcskip"); // NK LAi_SetHP(characterFromID("Artois Voysey"), 50.0, 50.0); LAi_SetHP(characterFromID("Nigel Blythe"), 50.0, 50.0); LAi_SetActorType(CharacterFromID("Artois Voysey")); LAi_SetActorType(CharacterFromID("Nigel Blythe")); LAi_group_MoveCharacter(CharacterFromID("Artois Voysey"), "Artois"); LAi_group_MoveCharacter(CharacterFromID("Nigel Blythe"), "Nigel"); LAi_SetImmortal(CharacterFromID("Nigel Blythe"), true); LAi_ActorAttack(characterFromID("Nigel Blythe"), characterFromID("Artois Voysey"), ""); LAi_ActorAttack(characterFromID("Artois Voysey"), characterFromID("Nigel Blythe"), ""); LAi_SetCheckMinHP(characterFromID("Artois Voysey"), 0.4*LAi_GetCharacterHP(characterFromID("Artois Voysey")), true, "Story_Artois_2"); // KK StartQuestMovie(true, false, true);TrackQuestMovie("start","Story_Artois"); LAi_SetActorType(pchar); LAi_ActorFollow(pchar, characterFromID("Nigel Blythe"), "Story_Artois_2", -1); } break; case "Story_Artois_2": LAi_RemoveCheckMinHP(CharacterFromID("Artois Voysey")); // CTM //added here ARF to hunt the "unkillable artois" LAi_SetStayType(pchar); LAi_type_actor_Reset(characterFromID("Artois Voysey")); LAi_type_actor_Reset(characterFromID("Nigel Blythe")); LAi_ActorDialog(characterFromID("Nigel Blythe"), pchar, "", -1, -1); break; case "saving_artois": // KK --> PChar.quest.BlazeKilledFightingWithNigel.win_condition.l1 = "NPC_Death"; PChar.quest.BlazeKilledFightingWithNigel.win_condition.l1.character = PChar.id; PChar.quest.BlazeKilledFightingWithNigel.win_condition = "BlazeKilledFightingWithNigel"; // <-- KK EndQuestMovie();TrackQuestMovie("end","saving_artois"); LAi_SetImmortal(characterFromID("Nigel Blythe"), false); LAi_SetPlayerType (Pchar); LAi_group_MoveCharacter(CharacterFromID("Nigel Blythe"), "nigel_2"); //LAi_group_MoveCharacter(CharacterFromID("Artois Voysey"), "Artois"); LAi_group_FightGroups("nigel_2", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("nigel_2", "Artois_saved"); break; // KK --> case "BlazeKilledFightingWithNigel": bSuppressResurrection = true; LAi_SetActorType(CharacterFromID("Nigel Blythe")); SendMessage(&locCamera, "li", MSG_CAMERA_SETTARGET, CharacterFromID("Nigel Blythe")); locCameraFollow(); SendMessage(&Characters[GetCharacterIndex("Nigel Blythe")],"lsl", MSG_CHARACTER_EX_MSG , "SetFightMode", true); LAi_SetImmortal(characterFromID("Artois Voysey"), false); LAi_SetImmortal(characterFromID("Nigel Blythe"), false); LAi_ActorAnimation(CharacterFromID("Artois Voysey"), "afraid","", 10); LAi_ActorAttack(CharacterFromID("Nigel Blythe"), CharacterFromID("Artois Voysey"), "Artois_kill_after_Blaze"); break; case "Artois_kill_after_Blaze": LAi_ActorGoToLocation(CharacterFromID("Nigel Blythe"), "reload", "reload1", "none", "", "", "AfterKillingBlazeAndArtois", 100); break; case "AfterKillingBlazeAndArtois": EndQuestMovie();TrackQuestMovie("end","AfterKillingBlazeAndArtois"); bSuppressResurrection = false; PostEvent("LAi_event_GameOver", 0, "s", "land"); break; // <-- KK case "Artois_saved": EndQuestMovie();TrackQuestMovie("end","Artois_saved"); PChar.quest.BlazeKilledFightingWithNigel.over = "yes"; // KK SetQuestHeader("Artois"); AddQuestRecord("artois", 1); LAi_SetActorType(pchar); LAi_SetActorType(CharacterFromID("Artois Voysey")); LAi_ActorWaitDialog(CharacterFromID("Artois Voysey"), PChar); LAi_ActorDialog(PChar, CharacterFromID("Artois Voysey"), "", 2.0, 1.0); // added by MAXIMUS --> // KK --> //characters[GetCharacterIndex("Artois Voysey")].quest.officerprice = makeint((sti(Pchar.rank) * 2 + 10)*100) - 330 + rand(40)*15 + rand(10); LAi_NPC_Equip(characterFromID("Artois Voysey"), sti(Pchar.rank), true, 0.5); // added by MAXIMUS <-- // <-- KK break; case "Voysey_listed": LAi_SetImmortal(characterFromID("Artois Voysey"), false); Pchar.quest.Artois_Voysey.win_condition.l1 = "location"; Pchar.quest.Artois_Voysey.win_condition.l1.character = "Artois Voysey"; Pchar.quest.Artois_Voysey.win_condition.l1.location = "Conceicao_port"; PChar.quest.Artois_Voysey.win_condition = "Artois_missed"; //NK --> fix for Artois quest repeating pchar.quest.Voysey_lost = "0"; //NK <-- LAi_SetPlayerType(Pchar); SetOfficersIndex(Pchar, 3, GetCharacterIndex("Artois Voysey")); // NK was -1 LAi_SetOfficerType(characterFromID("Artois Voysey")); characters[GetCharacterIndex("Artois Voysey")].Dialog.Filename = "Enc_Officer_dialog.c"; // KK characters[GetCharacterIndex("Artois Voysey")].Dialog.CurrentNode = "Hired"; // KK break; case "Voysey_listed_2": LAi_SetImmortal(characterFromID("Artois Voysey"), false); LAi_SetPlayerType(Pchar); SetOfficersIndex(Pchar, -1, GetCharacterIndex("Artois Voysey")); characters[GetCharacterIndex("Artois Voysey")].Dialog.Filename = "Enc_Officer_dialog.c"; // KK characters[GetCharacterIndex("Artois Voysey")].Dialog.CurrentNode = "Hired"; // KK break; case "Artois_missed": //NK --> if(!CheckAttribute(PChar,"quest.Voysey_lost") || PChar.quest.Voysey_lost != "0") break; //NK <-- if(FindFellowTravellers(PChar, CharacterFromId("Artois Voysey")) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, CharacterFromId("Artois Voysey")) == FELLOWTRAVEL_PASSENGER) { LAi_LocationMonstersGen(&locations[FindLocation("Conceicao_town_exit")], false); pchar.quest.Voysey_lost = "1"; RemovePassenger(pchar, characterFromID("Artois Voysey")); LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Artois_lost"; LAi_ActorSelfDialog(Pchar, "player_back"); AddQuestRecord("artois", 4); // KK characters[GetCharacterIndex("Artois Voysey")].location = "Redmond_store"; ChangeCharacterAddress(characterFromID("Artois Voysey"), "none", ""); } break; case "artois_before_room_on_second_floor": AddQuestRecord("artois", 5); Locations[FindLocation("Conceicao_tavern")].reload.l2.disable = false; Pchar.quest.Blaze_arrest.win_condition.l1 = "location"; Pchar.quest.Blaze_arrest.win_condition.l1.location = "Conceicao_tavern_upstairs"; PChar.quest.Blaze_arrest.win_condition = "Blaze_arrest"; pchar.quest.Voysey_lost = "2"; break; case "Blaze_arrest": AddQuestRecord("artois", 6); Locations[FindLocation("Conceicao_tavern")].reload.l2.disable = true; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "brodyaga", "goto", "goto4"); sld.dialog.filename = "anacleto_dialog.c"; sld.dialog.currentnode = "ask_about_artois"; LAi_SetActorType(sld); LAi_ActorSetLayMode(sld); LAi_ActorWaitDialog(sld, pchar); LAi_SetActorType(pchar); LAi_ActorDialog(pchar, sld, "", 4.0, 1.0); break; case "Blaze_cop_dialog": Locations[FindLocation("Conceicao_tavern_upstairs")].reload.l1.disable = true; LAi_SetPlayerType(pchar); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[GetCurrentLocationNation()].fantomModel.m1, "reload", "reload1"); // PB sld.Dialog.Filename = "Cops_dialog.c"; sld.dialog.currentnode = "First time"; sld.id = "solja"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[GetCurrentLocationNation()].fantomModel.m1, "reload", "reload1"); // PB LAi_SetActorType(sld); LAi_ActorFollow (sld, pchar, "", 10); sld.id = "solja1"; LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS"); LAi_SetActorType(characterfromID("solja")); LAi_ActorDialog(characterfromID("solja"), PChar, "", 10, 10); LAi_SetPlayerType(Pchar); break; case "artois_fight_in_tavern_upstairs": LAi_SetWarriorType(characterfromID("solja")); LAi_SetWarriorType(characterfromID("solja1")); LAi_group_MoveCharacter(characterFromID("solja"), "CONCEICAO_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("solja1"), "CONCEICAO_SOLDIERS"); LAi_group_SetCheck("CONCEICAO_SOLDIERS", "Open_Locators"); LAi_group_FightGroups("CONCEICAO_SOLDIERS", LAI_GROUP_PLAYER, true); // unneeded if(GetRMRelation(PChar, PORTUGAL) > REL_AFTERATTACK) SetRMRelation(PChar, PORTUGAL, REL_AFTERATTACK); // RM - SetNationRelation2MainCharacter(PORTUGAL, RELATION_ENEMY); LeaveService(PChar, PORTUGAL, false); // RM AddQuestRecord("artois", 7); break; case "Open_Locators": Locations[FindLocation("Conceicao_tavern_upstairs")].reload.l1.disable = false; Pchar.quest.fight.win_condition.l1 = "location"; Pchar.quest.fight.win_condition.l1.location = "Conceicao_town"; PChar.quest.fight.win_condition = "Blaze_fight_the_world"; Pchar.quest.artois_captured.win_condition.l1 = "location"; Pchar.quest.artois_captured.win_condition.l1.location = "Conceicao_town_exit"; PChar.quest.artois_captured.win_condition = "artois_captured"; break; case "Blaze_fight_the_world": pchar.quest.escape_from_conceicao.win_condition.l1 = "location"; pchar.quest.escape_from_conceicao.win_condition.l1.location = "conceicao"; pchar.quest.escape_from_conceicao.win_condition = "escape_from_conceicao"; Locations[FindLocation("Conceicao_town")].reload.l3.disable = true; if (CalcCharacterSkill(pchar, SKILL_SNEAK) < 3) { /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m1, "goto", "goto3"); // PB LAi_SetActorType(sld); LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m2, "goto", "goto5"); // PB LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m3, "goto", "goto5"); // PB LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m4, "goto", "goto3"); // PB LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS"); LAi_group_FightGroups("CONCEICAO_SOLDIERS", LAI_GROUP_PLAYER, true); } break; case "escape_from_conceicao": Locations[FindLocation("Conceicao_town")].reload.l3.disable = false; PChar.quest.possible_for_resque_artois.win_condition.l1 = "Timer"; PChar.quest.possible_for_resque_artois.win_condition.l1.date.day = GetAddingDataDay(0,0,4); PChar.quest.possible_for_resque_artois.win_condition.l1.date.month = GetAddingDataMonth(0,0,4); PChar.quest.possible_for_resque_artois.win_condition.l1.date.year = GetAddingDataYear(0,0,4); PChar.quest.possible_for_resque_artois.win_condition = "possible_for_resque_artois"; break; case "possible_for_resque_artois": pchar.quest.artois_captured.over = "yes"; ChangeCharacterAddress(CharacterFromID("Artois Voysey"), "none", ""); ChangeCharacterAddress(CharacterFromID("Pirates_1"), "none", ""); ChangeCharacterAddress(CharacterFromID("Pirates_2"), "none", ""); ChangeCharacterAddress(CharacterFromID("Pirates_3"), "none", ""); CloseQuestHeader("Artois"); break; case "artois_captured": LAi_SetImmortal(characterFromID("Artois Voysey"), true); ChangeCharacterAddress(CharacterFromID("Artois Voysey"), "Conceicao_town_exit", "goto14"); characters[GetCharacterIndex("Artois Voysey")].Dialog.Filename = "Artois Voysey_dialog.c"; // KK characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "Captured"; LAi_SetActorType(characterfromID("Artois Voysey")); LAi_ActorSetLayMode(characterfromID("Artois Voysey")); characters[GetCharacterIndex("Pirates_1")].dialog.filename = "anacleto_dialog.c"; characters[GetCharacterIndex("Pirates_1")].dialog.currentnode = "artois_lay"; characters[GetCharacterIndex("Pirates_2")].dialog.filename = "anacleto_dialog.c"; characters[GetCharacterIndex("Pirates_2")].dialog.currentnode = "artois_lay"; characters[GetCharacterIndex("Pirates_3")].dialog.filename = "anacleto_dialog.c"; characters[GetCharacterIndex("Pirates_3")].dialog.currentnode = "artois_lay"; ChangeCharacterAddress(CharacterFromID("Pirates_1"), "Conceicao_town_exit", "goto8"); ChangeCharacterAddress(CharacterFromID("Pirates_2"), "Conceicao_town_exit", "goto9"); ChangeCharacterAddress(CharacterFromID("Pirates_3"), "Conceicao_town_exit", "goto10"); LAi_SetActorType(CharacterFromID("Pirates_1")); LAi_SetActorType(CharacterFromID("Pirates_2")); LAi_SetActorType(CharacterFromID("Pirates_3")); LAi_ActorFollow(CharacterFromID("Pirates_1"), CharacterFromID("Artois Voysey"), "reset_pirates", 7.0); LAi_ActorFollow(CharacterFromID("Pirates_2"), CharacterFromID("Artois Voysey"), "reset_pirates", 7.0); LAi_ActorFollow(CharacterFromID("Pirates_3"), CharacterFromID("Artois Voysey"), "reset_pirates", 7.0); //LAi_QuestDelay("go_to_artois", 20.0); DeleteAttribute(pchar, "quest.voysey_lost"); LAi_SetHP(CharacterFromID("Pirates_1"), 80.0, 80.0); LAi_SetHP(CharacterFromID("Pirates_2"), 80.0, 80.0); LAi_SetHP(CharacterFromID("Pirates_3"), 80.0, 80.0); LAi_SetCheckMinHP(CharacterFromID("Pirates_1"), LAi_GetCharacterHP(characterFromID("Pirates_1"))-1.0, false, "fight_for_artois_with_child_of_giens"); // KK LAi_SetCheckMinHP(CharacterFromID("Pirates_2"), LAi_GetCharacterHP(characterFromID("Pirates_2"))-1.0, false, "fight_for_artois_with_child_of_giens"); // KK LAi_SetCheckMinHP(CharacterFromID("Pirates_3"), LAi_GetCharacterHP(characterFromID("Pirates_3"))-1.0, false, "fight_for_artois_with_child_of_giens"); // KK Locations[FindLocation("Conceicao_town_exit")].vcskip = true; // PB break; case "reset_pirates": LAi_SetStayType(CharacterFromID("Pirates_1")); LAi_SetStayType(CharacterFromID("Pirates_2")); LAi_SetStayType(CharacterFromID("Pirates_3")); AddQuestRecord("artois", 10); break; case "fight_for_artois_with_child_of_giens": LAi_RemoveCheckMinHP(CharacterFromID("Pirates_1")); LAi_RemoveCheckMinHP(CharacterFromID("Pirates_2")); LAi_RemoveCheckMinHP(CharacterFromID("Pirates_3")); LAi_SetPlayerType(pchar); LAi_group_MoveCharacter(characterFromID("Pirates_1"), "CHILD_OF_GIEN"); LAi_group_MoveCharacter(characterFromID("Pirates_2"), "CHILD_OF_GIEN"); LAi_group_MoveCharacter(characterFromID("Pirates_3"), "CHILD_OF_GIEN"); LAi_group_FightGroups("CHILD_OF_GIEN", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("CHILD_OF_GIEN", "Artois_resque_in_jungles"); pchar.quest.possible_for_resque_artois.over = "yes"; DeleteAttribute(&Locations[FindLocation("Conceicao_town_exit")],"vcskip"); // PB break; case "portugal_becomes_neutral": if(GetRMRelation(PChar, PORTUGAL) < REL_AMNESTY) SetRMRelation(PChar, PORTUGAL, REL_AMNESTY); // RM - SetNationRelation2MainCharacter(PORTUGAL, RELATION_NEUTRAL); LAi_group_SetRelation("CONCEICAO_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_NEUTRAL); break; case "Artois_resque_in_jungles": pchar.quest.artois_line = "resqued"; LAi_fade("Artois_resque_in_jungles_2", "Artois_resque_in_jungles_3"); break; case "Artois_resque_in_jungles_2": LAi_ActorSetStayMode(characterFromID("Artois Voysey")); LAi_ActorWaitDialog(characterFromID("Artois Voysey"), pchar); break; case "Artois_resque_in_jungles_3": LAi_SetActorType(pchar); LAi_ActorDialog(pchar, characterFromID("Artois Voysey"), "player_back", 5.0, 1.0); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 5000); } else { AddPartyExp(pchar, 5000); } break; case "pause": AddQuestRecord("artois", 8); Locations[FindLocation("Conceicao_townhall")].reload.l1.disable = 1; if(GetDayTime() == DAY_TIME_NIGHT) { WaitDate("", 0, 0, 1, 0, 0); SetCurrentTime(10, 0); } DoQuestReloadToLocation ("Conceicao_townhall", "goto", "goto7", "pause2"); break; case "pause2": Locations[FindLocation("Conceicao_tavern_upstairs")].reload.l1.disable = false; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m5, "goto", "goto8"); // PB LAi_SetActorType(sld); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[PORTUGAL].fantomModel.m1, "goto", "goto1"); // PB LAi_SetActorType(sld); sld.id = "guard"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "man6", "goto", "goto2"); LAi_SetActorType(sld); sld.id = "witness"; sld.Dialog.Filename = "witness-dialog.c"; LAi_SetActorType(CharacterFromID("Jacinto Arcibaldo Barreto")); LAi_ActorSetSitMode(CharacterFromID("Jacinto Arcibaldo Barreto")); characters[GetCharacterIndex("Jacinto Arcibaldo Barreto")].dialog.currentnode = "j_day"; LAi_ActorDialog(characterfromID("Jacinto Arcibaldo Barreto"), PChar, "", 2.0, 1.0); break; case "ex_dialog": LAi_ActorDialog(characterfromID("witness"), PChar, "", 1.0, 1.0); LAi_ActorGoToLocator(CharacterFromID("guard"), "goto", "goto9", "ex_dialog2_3", 3.0); break; case "ex_dialog2_3": //LAi_SetActorType(characterfromID("Jacinto Arcibaldo Barreto")); LAi_ActorWaitDialog(characterfromID("Jacinto Arcibaldo Barreto"), characterfromID("guard")); LAi_ActorDialog(characterfromID("guard"), characterfromID("Jacinto Arcibaldo Barreto"), "ex_dialog2_4", 1.0, 2.0); break; case "ex_dialog2_4": LAi_ActorGoToLocator(CharacterFromID("guard"), "goto", "goto1", "ex_dialog2_5", 3.0); break; case "ex_dialog2_5": LAi_ActorDialog(characterfromID("Jacinto Arcibaldo Barreto"), PChar, "acrcibaldo_back_to_hub_type", 1.0, 1.0); Pchar.quest.artois_captured.win_condition.l1 = "location"; Pchar.quest.artois_captured.win_condition.l1.location = "Conceicao_town_exit"; PChar.quest.artois_captured.win_condition = "artois_captured"; PChar.quest.possible_for_resque_artois.win_condition.l1 = "Timer"; PChar.quest.possible_for_resque_artois.win_condition.l1.date.day = GetAddingDataDay(0,0,4); PChar.quest.possible_for_resque_artois.win_condition.l1.date.month = GetAddingDataMonth(0,0,4); PChar.quest.possible_for_resque_artois.win_condition.l1.date.year = GetAddingDataYear(0,0,4); PChar.quest.possible_for_resque_artois.win_condition = "possible_for_resque_artois"; AddQuestRecord("artois", 9); break; case "acrcibaldo_back_to_hub_type": Locations[FindLocation("Conceicao_townhall")].reload.l1.disable = 0; LAi_SetHuberType(characterfromID("Jacinto Arcibaldo Barreto")); break; case "prepare_shoot_in_artois": LAi_SetImmortal(characterFromID("Artois Voysey"), false); LAi_SetPlayerType(Pchar); SetOfficersIndex(Pchar, 3, GetCharacterIndex("Artois Voysey")); // NK was -1 Officersreaction("good"); pchar.quest.shoot_in_artois.win_condition.l1 = "location"; pchar.quest.shoot_in_artois.win_condition.l1.location = "QC_port"; pchar.quest.shoot_in_artois.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois1.win_condition.l1 = "location"; pchar.quest.shoot_in_artois1.win_condition.l1.location = "Redmond_port"; pchar.quest.shoot_in_artois1.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois2.win_condition.l1 = "location"; pchar.quest.shoot_in_artois2.win_condition.l1.location = "Greenford_port"; pchar.quest.shoot_in_artois2.win_condition = "shoot_in_artois"; if (pchar.location != "Oxbay_port" && !CheckAttribute(PChar, "Quest.Story_OxbayCaptured")) { pchar.quest.shoot_in_artois3.win_condition.l1 = "location"; pchar.quest.shoot_in_artois3.win_condition.l1.location = "Oxbay_port"; pchar.quest.shoot_in_artois3.win_condition = "shoot_in_artois"; } pchar.quest.shoot_in_artois4.win_condition.l1 = "location"; pchar.quest.shoot_in_artois4.win_condition.l1.location = "Douwesen_port"; pchar.quest.shoot_in_artois4.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois5.win_condition.l1 = "location"; pchar.quest.shoot_in_artois5.win_condition.l1.location = "Muelle_port"; pchar.quest.shoot_in_artois5.win_condition = "shoot_in_artois"; characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "officer_Artois"; // PB break; case "shoot_in_artois": if (!checkquestattribute("generate_convoy_quest_progress", "begin") && !checkquestattribute("generate_convoy_quest_progress", "completed")) { // KK --> for (cidx = 1; cidx < 4; cidx++) { iPassenger = GetOfficersIndex(Pchar, "" + cidx); if (iPassenger > 0 && Characters[iPassenger].id == "Artois Voysey") pchar.quest.shoot_in_artois_complete = "complete"; } // <-- KK if (CheckQuestAttribute("shoot_in_artois_complete", "complete")) { pchar.quest.shoot_in_artois.over = "yes"; pchar.quest.shoot_in_artois1.over = "yes"; pchar.quest.shoot_in_artois2.over = "yes"; pchar.quest.shoot_in_artois3.over = "yes"; pchar.quest.shoot_in_artois4.over = "yes"; pchar.quest.shoot_in_artois5.over = "yes"; GetCharacterPos(pchar, &locx, &locy, &locz); homelocator = LAi_FindFarLocator("goto", locx, locy, locz); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1", "goto", homelocator); sld.id = "gunman"; LAi_QuestDelay("shooting_in_artois_begin", 2.0); pchar.quest.location = pchar.location; pchar.quest.locator = pchar.location.locator; } else { pchar.quest.shoot_in_artois.win_condition.l1 = "location"; pchar.quest.shoot_in_artois.win_condition.l1.location = "QC_port"; pchar.quest.shoot_in_artois.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois1.win_condition.l1 = "location"; pchar.quest.shoot_in_artois1.win_condition.l1.location = "Redmond_port"; pchar.quest.shoot_in_artois1.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois2.win_condition.l1 = "location"; pchar.quest.shoot_in_artois2.win_condition.l1.location = "Greenford_port"; pchar.quest.shoot_in_artois2.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois3.win_condition.l1 = "location"; pchar.quest.shoot_in_artois3.win_condition.l1.location = "Oxbay_port"; pchar.quest.shoot_in_artois3.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois4.win_condition.l1 = "location"; pchar.quest.shoot_in_artois4.win_condition.l1.location = "Douwesen_port"; pchar.quest.shoot_in_artois4.win_condition = "shoot_in_artois"; pchar.quest.shoot_in_artois5.win_condition.l1 = "location"; pchar.quest.shoot_in_artois5.win_condition.l1.location = "Muelle_port"; pchar.quest.shoot_in_artois5.win_condition = "shoot_in_artois"; } } else { LAi_QuestDelay("shoot_in_artois", 3.0); } break; case "shooting_in_artois_begin": GetCharacterPos(PChar, &locx, &locy, &locz); homelocator = LAi_FindFarLocator("goto", locx, locy, locz); homelocation = pchar.location; CreateParticleSystemOnLocator(homelocation, homelocator, "gunfire"); LAi_SetActorType(characterFromID("Artois Voysey")); LAi_ActorAnimation(characterFromID("Artois Voysey"), "death_1", "almost_killed_artois", 4.0); Play3DSound("pistol_shot", locx, locy, locz); // LDH 23Mar09 break; case "almost_killed_artois": GetCharacterPos(PChar, &locx, &locy, &locz); homelocator = LAi_FindFarLocator("reload", locx, locy, locz); LAi_SetActorType(characterFromID("gunman")); LAi_ActorRunToLocation(characterFromID("gunman"), "reload", homelocator, "none", "", "", "", 10.0); LAi_ActorAnimation(characterFromID("Artois Voysey"), "lay_2", "", 4.0); LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "artois_shooted"; LAi_ActorSelfDialog(Pchar, "player_back"); AddQuestRecord("artois", 14); break; case "to_tavern_with_almost_dead_artois": RemoveOfficersIndex(pchar, GetCharacterIndex("Artois Voysey")); RemovePassenger(pchar, characterFromID("Artois Voysey")); ChangeCharacterAddress(characterFromID("Artois Voysey"), "none", ""); DoQuestReloadToLocation("Muelle_tavern_upstairs", "goto", "goto2", "talk_with_doctor"); break; case "talk_with_doctor": GetCharacterPos(PChar, &locx, &locy, &locz); homelocator = LAi_FindNearestFreeLocator("goto", locx, locy, locz); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "fatman2", "goto", homelocator); sld.id = "doctor"; sld.dialog.filename = "anacleto_dialog.c"; sld.dialog.currentnode = "doctor"; LAi_SetActorType(sld); LAi_ActorDialog(sld, pchar, "", 2.0, 1.0); LAi_SetStayType(pchar); break; case "exit_doctor_bad": AddQuestRecord("artois", 15); CloseQuestHeader("artois"); homelocation = pchar.quest.location; homelocator = pchar.quest.locator; DoQuestReloadToLocation(homelocation, "reload", homelocator, "player_back"); Officersreaction("bad"); ChangeCharacterReputation(pchar, -2); break; case "exit_doctor_good": environment.date.day = GetAddingDataDay(0,0,14); environment.date.month = GetAddingDataMonth(0,0,14); environment.date.year = GetAddingDataYear(0,0,14); AddQuestRecord("artois", 16); homelocation = pchar.quest.location; homelocator = pchar.quest.locator; DoQuestReloadToLocation(homelocation, "reload", homelocator, "final_talk_with_artois"); Officersreaction("good"); ChangeCharacterReputation(pchar, 2); break; case "final_talk_with_artois": LAi_SetPlayerType(pchar); PlaceCharacter(characterFromID("Artois Voysey"), "goto"); LAi_SetActorType(characterFromID("Artois Voysey")); LAi_type_actor_Reset(characterFromID("Artois Voysey")); Characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "Artois Voysey_dialog.c"; // PB Characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "final_talk"; LAi_ActorDialog(characterFromID("Artois Voysey"), pchar, "Voysey_listed_2", 3.0, 1.0); pchar.quest.treasure_found.win_condition.l1 = "locator"; pchar.quest.treasure_found.win_condition.l1.location = "Douwesen_Shore_ship"; pchar.quest.treasure_found.win_condition.l1.locator_group = "randitem"; pchar.quest.treasure_found.win_condition.l1.locator = "randitem1"; pchar.quest.treasure_found.win_condition = "treasure_found"; AddQuestRecord("artois", 17); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 5000); } else { AddPartyExp(pchar, 5000); } //AddPassenger(Pchar, characterFromID("Artois Voysey"), 0); break; case "treasure_found": AddMoneyToCharacter(PChar, 50000); Log_SetStringToLog(QUEST_MESSAGE4); AddQuestRecord("artois", 18); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 15000); } else { AddPartyExp(pchar, 15000); } if (CheckQuestAttribute("artois_line", "completed")) { PChar.quest.Wait_For_donate.win_condition.l1 = "Timer"; PChar.quest.Wait_For_donate.win_condition.l1.date.day = GetAddingDataDay(0,1,0); PChar.quest.Wait_For_donate.win_condition.l1.date.month = GetAddingDataMonth(0,1,0); PChar.quest.Wait_For_donate.win_condition.l1.date.year = GetAddingDataYear(0,1,0); PChar.quest.Wait_For_donate.win_condition = "Wait_For_donate"; pchar.quest.artois_line = "found_gold"; } else { CloseQuestHeader("artois"); } break; case "Wait_For_donate": OfficersReaction("bad"); ChangeCharacterReputation(pchar, -2); pchar.quest.artois_line = "final_state"; AddQuestRecord("artois", 20); CloseQuestHeader("artois"); break; case "artois_donate_done": pchar.quest.Wait_For_donate.over = "yes"; OfficersReaction("good"); ChangeCharacterReputation(pchar, 4); AddMoneyToCharacter(PChar, -4000); AddQuestRecord("artois", 19); CloseQuestHeader("artois"); DeleteQuestAttribute("artois_line"); // NK if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 7000); } else { AddPartyExp(pchar, 7000); } break; //Nigel Blythe case "voysey_No_Fight": LAi_ActorAttack(CharacterFromID("Pirates_1"), CharacterFromID("Artois Voysey"), ""); break; case "voysey_Fight": LAi_ActorAttack(CharacterFromID("Pirates_1"), PChar, ""); LAi_ActorAttack(CharacterFromID("Pirates_2"), PChar, ""); LAi_ActorAttack(CharacterFromID("Pirates_3"), PChar, ""); Pchar.quest.Story_KillNygelBlythe4.win_condition.l1 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l1.character = "Pirates_1"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l2 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l2.character = "Pirates_2"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l3 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l3.character = "Pirates_3"; PChar.quest.Story_KillNygelBlythe4.win_condition = "Voysey_death"; break; case "voysey_found_treasure": pchar.quest.treasure_found.win_condition.l1 = "locator"; pchar.quest.treasure_found.win_condition.l1.location = "Douwesen_Shore_ship"; pchar.quest.treasure_found.win_condition.l1.locator_group = "randitem"; pchar.quest.treasure_found.win_condition.l1.locator = "randitem1"; pchar.quest.treasure_found.win_condition = "treasure_found"; break; case "Leave_Voysey": LAi_SetPlayerType(PChar); LAi_SetCitizenType(CharacterFromID("Artois Voysey")); break; case "Leave_Nigel": AddQuestRecord("nigel", 3); //CloseQuestHeader("nigel"); LAi_SetPlayerType(PChar); LAi_SetCitizenType(CharacterFromID("Nigel Blythe")); break; case "change_Maxwell_adress": AddQuestrecord("nigel", 24); characters[GetCharacterIndex("Friedrich Maxwell")].Dialog.Filename = "Maxwell_dialog.c"; Pchar.quest.Nigel_Blythe6.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe6.win_condition.l1.location = "QC_tavern"; Pchar.quest.Nigel_Blythe6.win_condition = "Maxwell_talk"; break; case "voysey_final_nofight": LAi_ActorAttack(CharacterFromID("Pirates_1"), CharacterFromID("Artois Voysey"), ""); break; case "voysey_final_fight": LAi_ActorAttack(CharacterFromID("Pirates_1"), PChar, ""); LAi_ActorAttack(CharacterFromID("Pirates_2"), PChar, ""); LAi_ActorAttack(CharacterFromID("Pirates_3"), PChar, ""); Pchar.quest.Story_KillNygelBlythe4.win_condition.l1 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l1.character = "Pirates_1"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l2 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l2.character = "Pirates_2"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l3 = "NPC_Death"; Pchar.quest.Story_KillNygelBlythe4.win_condition.l3.character = "Pirates_3"; PChar.quest.Story_KillNygelBlythe4.win_condition = "Voysey_death"; break; case "change_clauss_adress": AddMoneyToCharacter(Pchar, -5000); SetCharacterToNearLocatorFromMe("Florens Clauss", 3); ChangeCharacterAddressGroup(CharacterFromID("Friedrich Maxwell"), "", "sit", "sit12"); break; case "Artois_kill": SetQuestHeader("nigel"); AddQuestRecord("nigel", 1); LAi_SetPlayerType(PChar); LAi_SetActorType(CharacterFromID("Nigel Blythe")); LAi_ActorDialog(CharacterFromID("Nigel Blythe"), PChar, "", 2.0, 1.0); EndQuestMovie();TrackQuestMovie("end","Artois_kill"); break; case "Artois_Blythe": SendMessage(&Characters[GetCharacterIndex("Nigel Blythe")],"lsl", MSG_CHARACTER_EX_MSG , "SetFightMode", true); LAi_SetActorType(PChar); LAi_ActorWaitDialog(CharacterFromID("Nigel Blythe"), PChar); LAi_ActorDialog(PChar, CharacterFromID("Nigel Blythe"), "", 10, 10); break; case "killing_artois": //LAi_RemoveCheckMinHP(CharacterFromID("Artois Voysey")); // CTM // ARF moved to case "Story_Artois_2" LAi_SetImmortal(characterFromID("Artois Voysey"), false); LAi_SetImmortal(characterFromID("Nigel Blythe"), false); LAi_SetActorType(pchar); LAi_ActorTurnToCharacter(pchar, characterFromID("Nigel Blythe")); LAi_ActorAnimation(CharacterFromID("Artois Voysey"), "afraid","", 10); LAi_ActorAttack(CharacterFromID("Nigel Blythe"), CharacterFromID("Artois Voysey"), "Artois_kill"); break; case "Nigel_Adventure": if (!LAi_IsDead(characterFromID("Nigel Blythe"))) // Levis: 16-10-13 Oxbay capture removed as requirement { if(FindFellowTravellers(PChar, CharacterFromID("Nigel Blythe")) == FELLOWTRAVEL_PASSENGER || FindFellowTravellers(PChar, CharacterFromID("Nigel Blythe")) == FELLOWTRAVEL_OFFICER) { AddQuestRecord("nigel", 4); Pchar.quest.Nigel_Blythe1.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe1.win_condition.l1.location = "Redmond_tavern"; //Petros ... was Oxbay_Tavern Pchar.quest.Nigel_Blythe1.win_condition = "Blythe_Setup"; pchar.quest.Nigel_lost = "1"; LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "nigel_lost"; LAi_ActorSelfDialog(Pchar, "player_back"); RemoveOfficersIndex(pchar, GetCharacterIndex("Nigel Blythe")); RemovePassenger(pchar, characterFromID("Nigel Blythe")); LAi_SetActorType(CharacterFromID("Nigel Blythe")); LAi_SetSitType(CharacterFromID("Nigel Blythe")); ChangeCharacterAddressGroup(CharacterFromID("Nigel Blythe"), "Redmond_tavern", "sit", "sit8"); // Petros ... was Oxbay_Tavern } } break; case "Nigel_Adventure_Conc": if (!CharacterIsDead(&characters[GetCharacterIndex("Nigel Blythe")])) { if(FindFellowTravellers(PChar, CharacterFromId("Nigel Blythe")) == FELLOWTRAVEL_PASSENGER || FindFellowTravellers(PChar, CharacterFromId("Nigel Blythe")) == FELLOWTRAVEL_OFFICER) { AddQuestRecord("nigel", 10); Pchar.quest.Nigel_Blythe5.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe5.win_condition.l1.location = "Conceicao_Tavern"; Pchar.quest.Nigel_Blythe5.win_condition = "Blythe_Setup_Conc"; pchar.quest.Nigel_lost = "1"; LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "nigel_lost"; LAi_ActorSelfDialog(Pchar, "player_back"); RemoveOfficersIndex(pchar, GetCharacterIndex("Nigel Blythe")); RemovePassenger(pchar, characterFromID("Nigel Blythe")); LAi_SetSitType(CharacterFromID("Nigel Blythe")); ChangeCharacterAddressGroup(CharacterFromID("Nigel Blythe"), "Conceicao_tavern", "sit", "sit4"); //skull } } break; case "Blythe_Setup": characters[GetCharacterIndex("Nigel Blythe")].dialog.currentnode = "Setup1"; pchar.quest.Nigel_lost = "0"; LAi_QuestDelay("learn about smugglers", 0.0); break; case "Blythe_Setup_Conc": characters[GetCharacterIndex("Nigel Blythe")].dialog.currentnode = "Setup2"; pchar.quest.Nigel_lost = "0"; break; case "Blythe_Battle": if (characters[GetCharacterIndex("Nigel Blythe")].ship.type != SHIP_NOTUSED_TYPE_NAME && (FindFellowTravellers(PChar, CharacterFromId("Nigel Blythe")) == FELLOWTRAVEL_COMPANION)) // PS { RemoveCharacterCompanion(Pchar, characterFromID("Nigel Blythe")); SetCharacterRemovable(characterFromID("Nigel Blythe"), true); // NK AddQuestrecord("nigel", 16); bQuestDisableMapEnter = true; Island_SetReloadEnableGlobal(PChar.location, false); PChar.quest.blythebattlelockedisland = PChar.location;// TIH store what island was locked Oct31'06 Log_SetStringToLog(QUEST_MESSAGE5); SetCharacterRelationBoth(GetCharacterIndex("Nigel Blythe"),GetMainCharacterIndex(),RELATION_FRIEND); SetCharacterRelationBoth(GetCharacterIndex("Nigel Blythe"),GetCharacterIndex("Pirates_7"),RELATION_ENEMY); Group_CreateGroup("Nigel Blythe"); Group_AddCharacter("Nigel Blythe", "Nigel Blythe"); Group_SetGroupCommander("Nigel Blythe", "Nigel Blythe"); Group_SetTaskAttack("Nigel Blythe", "Smugglers_corvette", true); Group_SetPursuitGroup("Nigel Blythe", PLAYER_GROUP); Group_SetAddress("Nigel Blythe", "Douwesen", "quest_ships", "quest_ship_2"); Group_LockTask("Nigel Blythe"); Group_CreateGroup("Smugglers_corvette"); Group_AddCharacter("Smugglers_corvette", "Pirates_7"); Group_SetGroupCommander("Smugglers_corvette", "Pirates_7"); Group_SetTaskAttack("Smugglers_corvette", "Nigel Blythe", true); Group_LockTask("Smugglers_corvette"); Group_SetPursuitGroup("Smugglers_corvette", PLAYER_GROUP); Group_SetAddress("Smugglers_corvette", "Douwesen", "quest_ships", "quest_ship_1"); Pchar.quest.Battle.win_condition.l1 = "NPC_Death"; Pchar.quest.Battle.win_condition.l1.character = "Pirates_7"; PChar.quest.Battle.win_condition = "Finish_battle"; Pchar.quest.Battle1.win_condition.l1 = "NPC_Death"; Pchar.quest.Battle1.win_condition.l1.character = "Nigel Blythe"; PChar.quest.Battle1.win_condition = "Finish_battle"; } else { Pchar.quest.Nigel_Blythe_third_encounter_recharge.win_condition.l1 = "ExitFromLocation"; Pchar.quest.Nigel_Blythe_third_encounter_recharge.win_condition.l1.location = "Douwesen"; Pchar.quest.Nigel_Blythe_third_encounter_recharge.win_condition = "Nigel_Blythe_third_encounter_recharge"; } break; case "Nigel_Blythe_third_encounter_recharge": Pchar.quest.Nigel_Blythe6.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe6.win_condition.l1.location = "Douwesen"; Pchar.quest.Nigel_Blythe6.win_condition = "Blythe_Battle"; break; case "Finish_battle": bQuestDisableMapEnter = false; // TIH --> have it open up the island it locked before or open where the player currently is Oct31'06 if (CheckAttribute(PChar, "quest.blythebattlelockedisland")) { Island_SetReloadEnableGlobal(PChar.quest.blythebattlelockedisland, true); DeleteAttribute(PChar,"quest.blythebattlelockedisland"); } else { Island_SetReloadEnableGlobal(PChar.location, true); } //Island_SetReloadEnableGlobal(PChar.location, true); // TIH <-- if (!LAi_IsDead(characterFromID("Nigel Blythe"))) { //SetCompanionIndex(Pchar, -1, GetCharacterIndex("Nigel Blythe")); Pchar.quest.Battle2.win_condition.l1 = "location"; Pchar.quest.Battle2.win_condition.l1.location = "Douwesen_port"; Pchar.quest.Battle2.win_condition = "Smugglers_vs_Blythe"; AddQuestrecord("nigel", 18); } else { bQuestDisableMapEnter = false; AddQuestrecord("nigel", 17); } pchar.quest.Battle.over = "yes"; pchar.quest.Battle1.over = "yes"; break; case "Smugglers_vs_Blythe": pchar.quest.Battle1.over = "yes"; //RemoveCharacterCompanion(Pchar, characterFromID("Nigel Blythe")); ChangeCharacterAddress(CharacterFromID("Nigel Blythe"), "Douwesen_port", "goto1"); LAi_SetActorType(characterFromID("nigel blythe")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1", "goto", "goto2"); LAi_SetActorType(sld); sld.id = "offended_sm1"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1_1", "goto", "goto1"); LAi_SetActorType(sld); sld.id = "offended_sm"; sld.Dialog.Filename = "Smugglers_vs_Blythe.c"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1_2", "goto", "goto3"); LAi_SetActorType(sld); sld.id = "offended_sm2"; LAi_ActorDialog(CharacterFromID("offended_sm"), PChar, "", 10.0, 1.0); LAi_ActorFollow(CharacterFromID("offended_sm1"), pchar, "", 5.0); LAi_ActorFollow(CharacterFromID("offended_sm2"), pchar, "", 5.0); break; case "nigel_answer_to_smuggler": LAi_SetActorType(characterFromID("Nigel Blythe")); characters[GetCharacterIndex("Nigel Blythe")].dialog.currentnode = "smugglers"; LAi_ActorDialog(characterFromID("Nigel Blythe"), pchar, "", 1.0, 1.0); break; case "nigel_smugglers_fight_prepare": characters[GetCharacterIndex("offended_sm")].dialog.currentnode = "nigel_fight"; LAi_ActorDialog(characterFromID("offended_sm"), pchar, "", 1.0, 1.0); break; case "nigel_fight_with_smugglers": OfficersReaction("bad"); RemoveCharacterCompanion(Pchar, characterFromID("Nigel Blythe")); SetCharacterRemovable(characterFromID("Nigel Blythe"), true); // NK RemoveOfficersIndex(pchar, GetCharacterIndex("Nigel Blythe")); LAi_ActorAttack(characterFromID("offended_sm"), characterFromID("nigel blythe"), ""); LAi_ActorAttack(characterFromID("offended_sm1"), characterFromID("nigel blythe"), ""); LAi_ActorAttack(characterFromID("offended_sm2"), characterFromID("nigel blythe"), ""); LAi_ActorAttack(characterFromID("nigel blythe"), characterFromID("offended_sm"), ""); LAi_group_MoveCharacter(characterFromID("offended_sm"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("offended_sm1"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("offended_sm2"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("Nigel Blythe"), "NIGEL"); LAi_QuestDelay("nigel_killed", 1.0); break; case "nigel_kiled": LAi_KillCharacter(characterFromID("nigel blythe")); AddQuestrecord("nigel", 20); CloseQuestHeader("nigel"); break; case "we_and_nigel_fight_with_smugglers": ChangeSmugglerLiking(pchar,-10); LAi_group_MoveCharacter(characterFromID("offended_sm"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("offended_sm1"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("offended_sm2"), "SMUGGLERS_IN_CONCEICAO_PORT"); LAi_group_MoveCharacter(characterFromID("Nigel Blythe"), LAI_GROUP_PLAYER); LAi_group_FightGroups("SMUGGLERS_IN_CONCEICAO_PORT", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("SMUGGLERS_IN_CONCEICAO_PORT", "nigel_after_fight_with_smugglers_in_conceicao_port"); break; case "nigel_after_fight_with_smugglers_in_conceicao_port": if (!LAi_IsDead(characterFromID("Nigel Blythe"))) { LAi_SetActorType(characterFromID("Nigel Blythe")); characters[GetCharacterIndex("Nigel Blythe")].dialog.currentnode = "smugglers_thanks"; LAi_ActorDialog(characterFromID("Nigel Blythe"), pchar, "", 1.0, 1.0); ChangeSmugglerLiking(pchar, -20); //Smugglers like you less cause you killed some } else { AddQuestrecord("nigel", 20); CloseQuestHeader("nigel"); } AddQuestrecord("nigel", 19); break; case "we_and_nigel_smugglers_fight_prepare": characters[GetCharacterIndex("offended_sm")].dialog.currentnode = "we_and_nigel_fight"; LAi_ActorDialog(characterFromID("offended_sm"), pchar, "", 1.0, 1.0); break; case "Blythe_gone_ship": if ((GetCharacterShipClass(CharacterFromID("Nigel Blythe")) < 7) && (GetCharacterShipClass(CharacterFromID("Nigel Blythe")) != -1)) // CTM { AddQuestrecord("nigel", 21); RemoveCharacterCompanion(Pchar, &Characters[GetCharacterIndex("Nigel Blythe")]); RemoveOfficersIndex(pchar, GetCharacterIndex("Nigel Blythe")); //characters[GetCharacterIndex("Claudio Murena")].Dialog.Filename = "Murena_dialog.c"; //ChangeCharacterAddressGroup(CharacterFromID("Claudio Murena"), "Muelle_tavern", "sit", "sit13"); //LAi_SetSitType(CharacterFromID("Claudio Murena")); characters[GetCharacterIndex("Ermegildo Caminero")].Dialog.Filename = "Caminero_dialog.c"; pchar.quest.nigel_away_for_ship = "begin"; Log_SetStringToLog(QUEST_MESSAGE6); Pchar.quest.Nigel_Blythe1.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe1.win_condition.l1.location = "Muelle_port"; Pchar.quest.Nigel_Blythe1.win_condition = "Muelle_Blythe"; } else { Pchar.quest.Nigel_Blythe_fourth_encounter_recharge.win_condition.l1 = "ExitFromLocation"; Pchar.quest.Nigel_Blythe_fourth_encounter_recharge.win_condition.l1.location = "IslaMuelle"; Pchar.quest.Nigel_Blythe_fourth_encounter_recharge.win_condition = "nigel_fourth_encounter"; } break; case "Muelle_Blythe": if ((GetOfficersIndex(Pchar, 1) == -1) && (GetOfficersIndex(Pchar, 2) == -1) && (GetOfficersIndex(Pchar, 3) == -1)) { /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair2", "goto", "goto10"); LAi_SetActorType(sld); sld.id = "offended_sm3"; sld.id = "to_say"; sld.Dialog.Filename = "to_say.c"; LAi_ActorDialog(characterfromID("to_say"), pchar, "", 10.0, 10.0); } if (GetOfficersIndex(Pchar, 1) != -1) { sld = &Characters[GetOfficersIndex(Pchar, 1)]; Pchar.Temp.Officer.dialog = sld.Dialog.Filename; Pchar.Temp.Officer.dialognode = characters[GetOfficersIndex(Pchar, 1)].dialog.currentnode; sld.Dialog.Filename = "to_say.c"; characters[GetOfficersIndex(Pchar, 1)].dialog.currentnode = "First time"; LAi_ActorDialog(&Characters[GetOfficersIndex(Pchar, 1)], pchar, "", 10.0, 10.0); LAi_QuestDelay("Muelle_Blythe2", 10.0); } else { if (GetOfficersIndex(Pchar, 2) != -1) { sld = &Characters[GetOfficersIndex(Pchar, 2)]; Pchar.Temp.Officer.dialog = sld.Dialog.Filename; Pchar.Temp.Officer.dialognode = characters[GetOfficersIndex(Pchar, 2)].dialog.currentnode; sld.Dialog.Filename = "to_say.c"; characters[GetOfficersIndex(Pchar, 2)].dialog.currentnode = "First time"; LAi_ActorDialog(&Characters[GetOfficersIndex(Pchar, 2)], pchar, "", 10.0, 10.0); LAi_QuestDelay("Muelle_Blythe3", 4.0); } else { if (GetOfficersIndex(Pchar, 3) != -1) { sld = &Characters[GetOfficersIndex(Pchar, 3)]; Pchar.Temp.Officer.dialog = sld.Dialog.Filename; Pchar.Temp.Officer.dialognode = characters[GetOfficersIndex(Pchar, 3)].dialog.currentnode; sld.Dialog.Filename = "to_say.c"; characters[GetOfficersIndex(Pchar, 3)].dialog.currentnode = "First time"; LAi_ActorDialog(&Characters[GetOfficersIndex(Pchar, 3)], pchar, "", 10.0, 10.0); LAi_QuestDelay("Muelle_Blythe4", 4.0); } } } AddQuestrecord("nigel", 22); break; case "Muelle_Blythe2": sld = &Characters[GetOfficersIndex(Pchar, 1)]; sld.Dialog.Filename = Pchar.Temp.Officer.dialog; characters[GetOfficersIndex(Pchar, 1)].dialog.currentnode = Pchar.Temp.Officer.dialognode; break; case "Muelle_Blythe3": sld = &Characters[GetOfficersIndex(Pchar, 1)]; sld.Dialog.Filename = Pchar.Temp.Officer.dialog; characters[GetOfficersIndex(Pchar, 1)].dialog.currentnode = Pchar.Temp.Officer.dialognode; break; case "Muelle_Blythe4": sld = &Characters[GetOfficersIndex(Pchar, 1)]; sld.Dialog.Filename = Pchar.Temp.Officer.dialog; characters[GetOfficersIndex(Pchar, 1)].dialog.currentnode = Pchar.Temp.Officer.dialognode; break; case "Maxwell_talk": PlaceCharacter(characterFromID("Friedrich Maxwell"), "goto"); LAi_SetActorType(CharacterFromID("Friedrich Maxwell")); LAi_ActorDialog(CharacterFromID("Friedrich Maxwell"), pchar, "", 3.0, 1.0); break; case "Maxwell_talk2": //characters[GetCharacterIndex("Lambrecht Fobes")].dialog.currentnode = "continue"; LAi_ActorDialog (characterfromID("Friedrich Maxwell"), PChar, "", 1.0, 1.0); break; case "Pirates_vs_Blaze": StartQuestMovie(true, true, false);TrackQuestMovie("start","Pirates_vs_Blaze"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1", "goto", "goto23"); sld.id = "offended_pirate1"; // NK -sld.skill.Fencing = "1"; LAi_SetActorType(CharacterFromID("offended_pirate1")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1_1", "goto", "character3"); sld.id = "offended_pirate2"; // NK - sld.skill.Fencing = "1"; sld.Dialog.Filename = "Pirates_vs_Blaze.c"; LAi_SetActorType(CharacterFromID("offended_pirate2")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "bocman4", "goto", "goto19"); sld.id = "offended_pirate3"; // NK -sld.skill.Fencing = "1"; LAi_SetActorType(CharacterFromID("offended_pirate3")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "bocman", "goto", "goto33"); sld.id = "offended_pirate5"; // NK - sld.skill.Fencing = "1"; LAi_SetActorType(CharacterFromID("offended_pirate5")); LAi_ActorDialog(characterfromID("offended_pirate2"), PChar, "", 10.0, 1.0); break; case "Voysey_death": characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "continue3"; break; case "Nigel_listed": AddQuestRecord("nigel", 2); Pchar.quest.Nigel_Blythe.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe.win_condition.l1.location = "REDMOND_PORT"; // Petros ... was Oxbay_Port PChar.quest.Nigel_Blythe.win_condition = "Nigel_Adventure"; AddMoneyToCharacter(PChar, -3000); LAi_SetPlayerType(pchar); SetOfficersIndex(Pchar, 3, GetCharacterIndex("Nigel Blythe")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Nigel Blythe")); break; case "Nigel_listed2": AddQuestRecord("nigel", 2); Pchar.quest.Nigel_Blythe.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe.win_condition.l1.location = "REDMOND_PORT"; // Petros ... was Oxbay_Port PChar.quest.Nigel_Blythe.win_condition = "Nigel_Adventure"; AddMoneyToCharacter(PChar, -300); LAi_SetPlayerType(pchar); SetOfficersIndex(Pchar, 3, GetCharacterIndex("Nigel Blythe")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Nigel Blythe")); break; case "nigel_second_encounter": Pchar.quest.Nigel_Blythe2.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe2.win_condition.l1.location = "Conceicao_port"; Pchar.quest.Nigel_Blythe2.win_condition = "Nigel_Adventure_Conc"; break; case "nigel_third_encounter": Pchar.quest.Nigel_Blythe6.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe6.win_condition.l1.location = "Douwesen"; Pchar.quest.Nigel_Blythe6.win_condition = "Blythe_Battle"; break; case "nigel_fourth_encounter": Pchar.quest.Nigel_Blythe3.win_condition.l1 = "location"; Pchar.quest.Nigel_Blythe3.win_condition.l1.location = "IslaMuelle"; Pchar.quest.Nigel_Blythe3.win_condition = "Blythe_gone_ship"; break; case "Nigel_dissmissed": AddQuestRecord("nigel", 5); CloseQuestheader("nigel"); ChangeCharacterReputation(pchar, -1); //RemovePassenger(pchar, characterFromID("Nigel Blythe")); LAi_fade("Nigel_dissmissed_2", ""); break; case "Nigel_dissmissed_2": homelocation = characters[GetCharacterIndex("Nigel Blythe")].homelocation; homegroup = characters[GetCharacterIndex("Nigel Blythe")].homelocation.group; homelocator = characters[GetCharacterIndex("Nigel Blythe")].homelocation.locator; ChangeCharacterAddressGroup(characterFromID("Nigel Blythe"), homelocation, homegroup, homelocator); characters[GetCharacterIndex("Nigel Blythe")].dialog.currentnode = "Fired"; break; case "Nigel_cargo_off": AddQuestRecord("nigel", 6); characters[GetCharacterIndex("Nigel Blythe")].loyality = makeint(characters[GetCharacterIndex("Nigel Blythe")].loyality) - 1; ChangeCharacterReputation(pchar, -2); AddPassenger(Pchar, characterFromID("Nigel Blythe"), 0); characters[GetCharacterIndex("nigel blythe")].Dialog.CurrentNode = "officer_Nig"; break; case "con_parri_off": characters[GetCharacterIndex("Nigel Blythe")].loyality = makeint(characters[GetCharacterIndex("Nigel Blythe")].loyality) - 1; ChangeCharacterReputation(pchar, -2); //SetOfficersIndex(Pchar, -1, GetCharacterIndex("Nigel Blythe")); AddPassenger(Pchar, characterFromID("Nigel Blythe"), 0); characters[GetCharacterIndex("nigel blythe")].Dialog.CurrentNode = "officer_Nig"; break; case "con_parri_prepare": AddPassenger(Pchar, characterFromID("Nigel Blythe"), 0); characters[GetCharacterIndex("nigel blythe")].Dialog.CurrentNode = "officer_Nig"; characters[GetCharacterIndex("Ethilrede Claar")].name = "Shuggy"; characters[GetCharacterIndex("Ethilrede Claar")].lastname = "Garry"; pchar.quest.exit_to_conceicao_sea.win_condition.l1 = "location"; pchar.quest.exit_to_conceicao_sea.win_condition.l1.location = "Conceicao"; pchar.quest.exit_to_conceicao_sea.win_condition = "exit_to_conceicao_sea"; pchar.quest.nigel_con_parri_checker = "begin"; pchar.quest.con_parri.win_condition.l1 = "NPC_Death"; pchar.quest.con_parri.win_condition.l1.character = "Ethilrede Claar"; pchar.quest.con_parri.win_condition = "con_parri"; PChar.quest.con_parri_expired.win_condition.l1 = "Timer"; PChar.quest.con_parri_expired.win_condition.l1.date.day = GetAddingDataDay(0,30,0); PChar.quest.con_parri_expired.win_condition.l1.date.month = GetAddingDataMonth(0,30,0); PChar.quest.con_parri_expired.win_condition.l1.date.year = GetAddingDataYear(0,30,0); PChar.quest.con_parri_expired.win_condition = "con_parri_expired"; break; case "exit_to_conceicao_sea": Group_CreateGroup("Ethilrede Claar"); Group_AddCharacter("Ethilrede Claar", "Ethilrede Claar"); Group_SetGroupCommander("Ethilrede Claar", "Ethilrede Claar"); Group_SetTaskAttack("Ethilrede Claar", PLAYER_GROUP, true); //Group_SetPursuitGroup("Nigel Blythe", "PLAYER_GROUP"); Group_SetAddress("Ethilrede Claar", "Conceicao", "quest_ships", "quest_ship_2"); Group_LockTask("Ethilrede Claar"); break; case "con_parri_expired": PChar.quest.nigel_con_parri_checker = "failed"; ChangeCharacterReputation(pchar, -2); AddQuestrecord("nigel", 13); break; case "con_parri": if (CheckQuestAttribute("nigel_con_parri_checker", "failed")) { pchar.quest.nigel_con_parri_checker = "win"; } else { pchar.quest.nigel_con_parri_checker = "win_win"; } AddQuestrecord("nigel", 14); break; case "nigel_first_cargo_on": PChar.quest.nigel_first_cargo_on_expired.win_condition.l1 = "Timer"; PChar.quest.nigel_first_cargo_on_expired.win_condition.l1.date.day = GetAddingDataDay(0,1,0); PChar.quest.nigel_first_cargo_on_expired.win_condition.l1.date.month = GetAddingDataMonth(0,1,0); PChar.quest.nigel_first_cargo_on_expired.win_condition.l1.date.year = GetAddingDataYear(0,1,0); PChar.quest.nigel_first_cargo_on_expired.win_condition = "nigel_first_cargo_on_expired"; pchar.quest.nigel_first_cargo_checker = "begin"; AddPassenger(Pchar, characterFromID("Nigel Blythe"), 0); characters[GetCharacterIndex("nigel blythe")].Dialog.CurrentNode = "officer_Nig"; AddQuestRecord("nigel", 7); break; case "nigel_first_cargo_on_expired": ChangeCharacterReputation(pchar, -2); pchar.quest.nigel_first_cargo_checker = "failed"; AddQuestRecord("nigel", 8); LAi_QuestDelay("nigel_second_encounter", 1.0); break; case "clauss_to_tavern": AddQuestrecord("nigel", 26); pchar.quest.clauss_to_tavern_complete.win_condition.l1 = "location"; pchar.quest.clauss_to_tavern_complete.win_condition.l1.location = "QC_tavern"; pchar.quest.clauss_to_tavern_complete.win_condition = "clauss_to_tavern_complete"; break; case "clauss_to_tavern_complete": PlaceCharacter(characterFromID("Florens Clauss"), "goto"); LAi_SetStayType(characterFromID("Florens Clauss")); break; case "prepare_for_final_fight_with_nigel": AddQuestrecord("nigel", 27); pchar.quest.nigel_treasure_found.win_condition.l1 = "location"; pchar.quest.nigel_treasure_found.win_condition.l1.location = "Douwesen_Shore_ship"; pchar.quest.nigel_treasure_found.win_condition = "nigel_treasure_found"; AddPassenger(Pchar, characterFromID("Florens Clauss"), 0); LAi_LocationMonstersGen(&locations[FindLocation("Douwesen_Shore_ship")], false); break; case "nigel_treasure_found": LAi_SetImmortal(characterFromID("nigel Blythe"), false); // PB: Make sure you can kill him ChangeCharacterAddressGroup(characterFromID("nigel Blythe"), "Douwesen_Shore_ship", "monsters", "monster1"); LAi_group_MoveCharacter(characterFromID("nigel Blythe"), "NIGEL"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair1", "monsters", "monster2"); LAi_group_MoveCharacter(sld, "NIGEL"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair2", "monsters", "monster3"); LAi_group_MoveCharacter(sld, "NIGEL"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "corsair3", "monsters", "monster4"); LAi_group_MoveCharacter(sld, "NIGEL"); LAi_group_FightGroups("NIGEL", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("NIGEL", "nigel_treasure_found_complete"); break; case "nigel_treasure_found_complete": AddMoneyToCharacter(PChar, 50000); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 25000); } else { AddPartyExp(pchar, 25000); } AddQuestrecord("nigel", 28); CloseQuestHeader("nigel"); break; /////////////////////////////////////////////////////////////// // CLAIRE LARROUSE /////////////////////////////////////////////////////////////// case "to_oxbay_mines_with_larrouse_complete": // --> Swindler 050927: don't generate vags then, would break the quest locations[FindLocation("Oxbay_canyon")].vcskip = true; // Swindler <-- characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "in_canyon"; pchar.quest.to_canvoy_with_larouse.win_condition.l1 = "location"; pchar.quest.to_canvoy_with_larouse.win_condition.l1.location = "Oxbay_canyon"; pchar.quest.to_canvoy_with_larouse.win_condition = "to_oxbay_mines_with_larrouse_3_complete"; DisableFastTravel(true); DisableMenuLaunch(true); DoQuestCheckDelay("to_oxbay_mines_with_larrouse_complete_2", 2.0); break; case "to_oxbay_mines_with_larrouse_complete_2": if(GetOfficersIndex(Pchar, 1) == -1) { Pchar.Temp.Officer.idx1 = GetCharacterIndex("Blaze_Crewmember_01"); SetOfficersIndex(pchar, 1, GetCharacterIndex("Blaze_Crewmember_01")); } else { Pchar.Temp.Officer.idx1 = getOfficersIndex(Pchar, 1); } if(GetOfficersIndex(Pchar, 2) == -1) { Pchar.Temp.Officer.idx2 = GetCharacterIndex("Blaze_Crewmember_02"); SetOfficersIndex(pchar, 2, GetCharacterIndex("Blaze_Crewmember_02")); } else { Pchar.Temp.Officer.idx2 = getOfficersIndex(Pchar, 2); } if(GetOfficersIndex(Pchar, 3) == -1) { Pchar.Temp.Officer.idx3 = GetCharacterIndex("Blaze_Crewmember_03"); SetOfficersIndex(pchar, 3, GetCharacterIndex("Blaze_Crewmember_03")); } else { Pchar.Temp.Officer.idx3 = getOfficersIndex(Pchar, 3); } DoReloadFromSeaToLocation("Oxbay_canyon", "reload", "reload6"); break; case "to_oxbay_mines_with_larrouse_3_complete": DisableFastTravel(false); DisableMenuLaunch(false); pchar.quest.remove_faked_officers.win_condition.l1 = "location"; pchar.quest.remove_faked_officers.win_condition.l1.location = "Oxbay_shore_02"; pchar.quest.remove_faked_officers.win_condition = "remove_faked_officers"; // PB --> for (cidx = 1; cidx < 4; cidx++) { iPassenger = GetOfficersIndex(Pchar, "" + cidx); if (iPassenger > 0) LAi_SetOfficerType(&characters[getOfficersIndex(Pchar, cidx)]); } // PB <-- locations[FindLocation("Oxbay_canyon")].reload.l1.disable = 1; locations[FindLocation("Oxbay_canyon")].reload.l2.disable = 1; locations[FindLocation("Oxbay_canyon")].reload.l3.disable = 1; locations[FindLocation("Oxbay_canyon")].reload.l4.disable = 1; RestoreCharacter(characterFromID("Larrouse_pirate_01")); // KK // TALISMAN was quest_pirate_01 LAi_SetHP(characterFromID("Larrouse_pirate_01"), 80.0, 80.0); // TALISMAN was quest_pirate_01 LAi_SetHP(characterFromID("Larrouse_smuggler_01"), 80.0, 80.0); // TALISMAN was quest_smuggler_01 ChangeCharacterAddress(characterFromID("Larrouse_pirate_01"), "Oxbay_canyon", "goto24"); // TALISMAN was quest_pirate_01 ChangeCharacterAddress(characterFromID("Larrouse_smuggler_01"), "Oxbay_canyon", "goto28"); // TALISMAN was quest_smuggler_01 ChangeCharacterAddress(characterFromID("Claire Larrouse"), "Oxbay_canyon", "goto26"); // KK --> characters[GetCharacterIndex("Larrouse_pirate_01")].dialog.filename = "quest_pirate_01_dialog.c"; // TALISMAN was quest_pirate_01 characters[GetCharacterIndex("Larrouse_pirate_01")].dialog.currentnode = "mines"; // TALISMAN was quest_pirate_01 characters[GetCharacterIndex("Larrouse_smuggler_01")].dialog.filename = "quest_pirate_01_dialog.c"; // TALISMAN was quest_smuggler_01 characters[GetCharacterIndex("Larrouse_smuggler_01")].dialog.currentnode = "mines"; // TALISMAN was quest_smuggler_01 characters[GetCharacterIndex("Blaze_Crewmember_01")].dialog.filename = "quest_pirate_01_dialog.c"; characters[GetCharacterIndex("Blaze_Crewmember_01")].dialog.currentnode = "mines"; characters[GetCharacterIndex("Blaze_Crewmember_02")].dialog.filename = "quest_pirate_01_dialog.c"; characters[GetCharacterIndex("Blaze_Crewmember_02")].dialog.currentnode = "mines"; characters[GetCharacterIndex("Blaze_Crewmember_03")].dialog.filename = "quest_pirate_01_dialog.c"; characters[GetCharacterIndex("Blaze_Crewmember_03")].dialog.currentnode = "mines"; // <-- KK Locations[FindLocation("Oxbay_canyon")].reload.l4.disable = true; LAi_SetOfficerType(characterFromID("Larrouse_pirate_01")); // TALISMAN was quest_pirate_01 LAi_SetOfficerType(characterFromID("Larrouse_smuggler_01")); // TALISMAN was quest_smuggler_01 LAi_SetImmortal(characterfromID("Claire Larrouse"), true); LAi_SetActorType(characterfromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "", 3.0, 1.0); break; case "remove_faked_officers": // --> Swindler 050927: reset vags in canyon after quest is complete DeleteAttribute(&Locations[FindLocation("Oxbay_canyon")],"vcskip"); // Swindler <-- iPassenger = makeint(Pchar.Temp.Officer.idx1); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } iPassenger = makeint(Pchar.Temp.Officer.idx2); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } iPassenger = makeint(Pchar.Temp.Officer.idx3); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } // KK --> characters[GetCharacterIndex("Blaze_Crewmember_01")].dialog.currentnode = "first time"; characters[GetCharacterIndex("Blaze_Crewmember_02")].dialog.currentnode = "first time"; characters[GetCharacterIndex("Blaze_Crewmember_03")].dialog.currentnode = "first time"; characters[GetCharacterIndex("Larrouse_smuggler_01")].dialog.filename = "quest_smuggler_01_dialog.c"; // TALISMAN was quest_smuggler_01 characters[GetCharacterIndex("Larrouse_smuggler_01")].dialog.currentnode = "First time"; // TALISMAN was quest_smuggler_01 characters[GetCharacterIndex("Larrouse_pirate_01")].dialog.filename = "quest_pirate_01_dialog.c"; // TALISMAN was quest_pirate_01 characters[GetCharacterIndex("Larrouse_pirate_01")].dialog.currentnode = "First time"; // TALISMAN was quest_pirate_01 // <-- KK ChangeCharacterAddress(characterFromID("Larrouse_pirate_01"), "none", ""); // TALISMAN was quest_pirate_01 ChangeCharacterAddress(characterFromID("Larrouse_smuggler_01"), "none", ""); // TALISMAN was quest_smuggler_01 break; case "to_the_gold_for_fight": LAi_NoRebirthEnable(characterFromID("mine_soldier_05")); LAi_NoRebirthEnable(characterFromID("mine_soldier_06")); // 1 enemy soldier LAi_SetOfficerType(characterFromID("Claire Larrouse")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m1, "goto", "goto9"); // PB // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m2, "goto", "goto9"); // PB // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto9"); // PB // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m4, "goto", "goto9"); // PB // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "MINE_KEEPERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "MINE_KEEPERS"); LAi_group_FightGroups("MINE_KEEPERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("MINE_KEEPERS", "abording_mines_with_larrouse_complete"); break; case "abording_mines_with_larrouse_complete": LAi_SetActorType(pchar); LAi_SetActorType(characterfromID("Claire Larrouse")); characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "abording_mine"; LAi_ActorFollow(pchar, characterfromID("Claire Larrouse"), "", 1.0); LAi_ActorFollow(characterfromID("Claire Larrouse"), pchar, "abording_mines_with_larrouse_complete_2", 1.0); break; case "abording_mines_with_larrouse_complete_2": LAi_SetPlayerType(pchar); LAi_ActorDialog(characterfromID("Claire Larrouse"), pchar, "", 3.0, 1.0); break; case "abording_bad_fight_exit": LAi_SetImmortal(characterfromID("Claire Larrouse"), false); LAi_group_MoveCharacter(characterfromID("Claire Larrouse"), "LARROUSE"); LAi_group_MoveCharacter(characterfromID("Larrouse_pirate_01"), "LARROUSE"); // TALISMAN was quest_pirate_01 LAi_group_MoveCharacter(characterfromID("Larrouse_smuggler_01"), "LARROUSE"); // TALISMAN was quest_smuggler_01 SetCharacterRelation(GetCharacterIndex("Clair Larrouse"),GetMainCharacterIndex(),RELATION_ENEMY); Group_CreateGroup("Clair Larrouse"); Group_AddCharacter("Clair Larrouse", "Clair Larrouse"); Group_SetGroupCommander("Clair Larrouse", "Clair Larrouse"); Group_SetPursuitGroup("Clair Larrouse", PLAYER_GROUP); Group_SetTaskAttack("Clair Larrouse", PLAYER_GROUP, true); Group_LockTask("Clair Larrouse"); if (pchar.location == "Oxbay_shore_02") { iPassenger = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine)*10000; AddMoneyToCharacter(characterFromID("Claire Larrouse"), iPassenger); pchar.quest.run_from_clair_in_sea.win_condition.l1 = "MapEnter"; pchar.quest.run_from_clair_in_sea.win_condition = "Clair_quest_ended"; Group_SetAddress("Clair Larrouse", "Oxbay", "", ""); } else { pchar.quest.run_from_clair_in_sea.win_condition.l1 = "MapEnter"; pchar.quest.run_from_clair_in_sea.win_condition = "Clair_quest_ended1"; Group_SetAddress("Clair Larrouse", "Oxbay", "", ""); } LAi_group_FightGroups("LARROUSE", LAI_GROUP_PLAYER, true); LAi_SetHP(characterFromID("Claire Larrouse"), 80.0, 80.0); RemoveCharacterCompanion(Pchar, &Characters[GetCharacterIndex("Claire Larrouse")]); SetCharacterRemovable(characterFromID("Claire Larrouse"), true); // NK UpdateRelations(); pchar.quest.killing_clair_in_sea.win_condition.l1 = "NPC_Death"; pchar.quest.killing_clair_in_sea.win_condition.l1.character = "Clair Larrouse"; pchar.quest.killing_clair_in_sea.win_condition = "killing_clair_in_sea_complete"; Locations[FindLocation("Oxbay_canyon")].reload.l4.disable = false; LAi_group_SetCheck("LARROUSE", "fight_with_larrouse_complete"); break; case "fight_with_larrouse_complete": pchar.quest.exit_from_oxbay_to_sea.win_condition.l1 = "location"; pchar.quest.exit_from_oxbay_to_sea.win_condition.l1.location = "Oxbay"; pchar.quest.exit_from_oxbay_to_sea.win_condition = "exit_from_oxbay_to_sea_complete"; if (pchar.location == "Oxbay_shore_02") { //iPassenger = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine)*10000/2; //AddMoneyToCharacter(pchar, iPassenger); OfficersReaction("bad"); AddQuestRecord("larrouse", 12); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 5000); AddPartyExpChar(pchar, "Sneak", 50); } else { AddPartyExp(pchar, 5000); } } else { AddQuestRecord("larrouse", 5); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 2500); AddPartyExpChar(pchar, "Sneak", 25); } else { AddPartyExp(pchar, 2500); } } break; case "exit_from_oxbay_to_sea_complete": iPassenger = makeint(Pchar.Temp.Officer.idx1); if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } iPassenger = makeint(Pchar.Temp.Officer.idx2); if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } iPassenger = makeint(Pchar.Temp.Officer.idx3); if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } //bQuestDisableMapEnter = true; Island_SetReloadEnableGlobal("Oxbay", false);// TIH typo fix Oct31'06 break; case "killing_clair_in_sea_complete": AddQuestRecord("larrouse", 6); pchar.quest.run_from_clair_in_sea.over = "yes"; if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Sneak", 5000); } else { AddPartyExp(pchar, 5000); } Island_SetReloadEnableGlobal("Oxbay", true); // PB: was 'false'??? locations[FindLocation("Oxbay_canyon")].reload.l1.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l2.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l3.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l4.disable = 0; CloseQuestHeader("larrouse"); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "ENGLAND_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "ENGLAND_SOLDIERS"); LAi_NoRebirthDisable(characterFromID("mine_soldier_05")); LAi_NoRebirthDisable(characterFromID("mine_soldier_06")); break; case "Clair_quest_ended": AddQuestRecord("larrouse", 15); pchar.quest.killing_clair_in_sea.over = "yes"; group_DeleteGroup("Clair Larrouse"); ChangeCharacterAddressGroup(CharacterFromID("Clair Larrouse"), "None", "", ""); Island_SetReloadEnableGlobal("Oxbay", true); // PB: was 'false'??? locations[FindLocation("Oxbay_canyon")].reload.l1.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l2.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l3.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l4.disable = 0; CloseQuestHeader("larrouse"); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "ENGLAND_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "ENGLAND_SOLDIERS"); LAi_NoRebirthDisable(characterFromID("mine_soldier_05")); LAi_NoRebirthDisable(characterFromID("mine_soldier_06")); break; case "Clair_quest_ended1": AddQuestRecord("larrouse", 16); pchar.quest.killing_clair_in_sea.over = "yes"; group_DeleteGroup("Clair Larrouse"); ChangeCharacterAddressGroup(CharacterFromID("Clair Larrouse"), "None", "", ""); Island_SetReloadEnableGlobal("Oxbay", true); // PB: was 'false'??? locations[FindLocation("Oxbay_canyon")].reload.l1.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l2.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l3.disable = 0; locations[FindLocation("Oxbay_canyon")].reload.l4.disable = 0; CloseQuestHeader("larrouse"); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "ENGLAND_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "ENGLAND_SOLDIERS"); LAi_NoRebirthDisable(characterFromID("mine_soldier_05")); LAi_NoRebirthDisable(characterFromID("mine_soldier_06")); LAi_QuestDelay("Clair_quest_ended2", 1.0); break; case "larrouse_becomes_officer": LAi_ActorFollowEverywhere(characterFromID("Claire Larrouse"), "", 60.0); AddQuestRecord("larrouse", 7); break; case "to_gold_konvoy_complete": Locations[FindLocation("Oxbay_canyon")].reload.l4.disable = false; LAi_LocationMonstersGen(&locations[FindLocation("Oxbay_jungle_02")], false); LAi_SetOfficerType(characterFromID("Claire Larrouse")); LAi_SetOfficerType(characterFromID("Larrouse_pirate_01")); // TALISMAN was quest_pirate_01 LAi_SetOfficerType(characterFromID("Larrouse_smuggler_01")); // TALISMAN was quest_smuggler_01 AddQuestRecord("larrouse", 8); locations[FindLocation("Oxbay_jungle_02")].reload.l1.disable = 1; locations[FindLocation("Oxbay_jungle_02")].reload.l2.disable = 1; locations[FindLocation("Oxbay_jungle_02")].reload.l3.disable = 1; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m1, "goto", "citizen03"); // PB sld.id = "soldier1"; LAi_SetActorType(sld); // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_SetCheckMinHP(sld, LAi_GetCharacterHP(sld)-1.0, false, "fight_in_jungles"); // NK pchar.quest.kill_konvoyer_01.win_condition.l1 = "NPC_Death"; pchar.quest.kill_konvoyer_01.win_condition.l1.character = "soldier1"; pchar.quest.kill_konvoyer_01.win_condition = "kill_konvoyer_01"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m2, "goto", "citizen08"); // PB sld.id = "soldier2"; LAi_SetActorType(sld); // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_SetCheckMinHP(sld, LAi_GetCharacterHP(sld)-1.0, false, "fight_in_jungles"); // NK pchar.quest.kill_konvoyer_02.win_condition.l1 = "NPC_Death"; pchar.quest.kill_konvoyer_02.win_condition.l1.character = "soldier2"; pchar.quest.kill_konvoyer_02.win_condition = "kill_konvoyer_02"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "citizen07"); // PB sld.id = "soldier3"; LAi_SetActorType(sld); // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_SetCheckMinHP(sld, LAi_GetCharacterHP(sld)-1.0, false, "fight_in_jungles"); // NK pchar.quest.kill_konvoyer_03.win_condition.l1 = "NPC_Death"; pchar.quest.kill_konvoyer_03.win_condition.l1.character = "soldier3"; pchar.quest.kill_konvoyer_03.win_condition = "kill_konvoyer_03"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m4, "goto", "citizen04"); // PB sld.id = "soldier4"; LAi_SetActorType(sld); // NK - LAi_SetHP(sld, 80.0, 80.0); LAi_SetCheckMinHP(sld, LAi_GetCharacterHP(sld)-1.0, false, "fight_in_jungles"); // NK pchar.quest.kill_konvoyer_04.win_condition.l1 = "NPC_Death"; pchar.quest.kill_konvoyer_04.win_condition.l1.character = "soldier4"; pchar.quest.kill_konvoyer_04.win_condition = "kill_konvoyer_04"; characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "kill_konvoy"; LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "", 2.0, 1.0); break; case "fight_in_jungles": LAi_RemoveCheckMinHP(characterFromID("soldier1")); LAi_RemoveCheckMinHP(characterFromID("soldier2")); LAi_RemoveCheckMinHP(characterFromID("soldier3")); LAi_RemoveCheckMinHP(characterFromID("soldier4")); LAi_group_MoveCharacter(characterfromID("soldier1"), "KONVOYERS"); LAi_group_MoveCharacter(characterfromID("soldier2"), "KONVOYERS"); LAi_group_MoveCharacter(characterfromID("soldier3"), "KONVOYERS"); LAi_group_MoveCharacter(characterfromID("soldier4"), "KONVOYERS"); LAi_group_FightGroups("KONVOYERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("KONVOYERS", "wait_for_kill"); break; case "konvoy_go_away": LAi_SetOfficerType(characterFromID("Claire Larrouse")); LAi_QuestDelay("konvoy_go_away_2", 8.5); break; case "konvoy_go_away_2": pchar.quest.konvoyers = 0; LAi_ActorGoToLocator(characterFromID("soldier1"), "reload", "reload2", "konvoyer_01_exit", 30.0); LAi_ActorGoToLocator(characterFromID("soldier2"), "reload", "reload2", "konvoyer_02_exit", 30.0); LAi_ActorGoToLocator(characterFromID("soldier3"), "reload", "reload2", "konvoyer_03_exit", 30.0); LAi_ActorGoToLocator(characterFromID("soldier4"), "reload", "reload2", "konvoyer_04_exit", 30.0); break; case "konvoyer_01_exit": pchar.quest.kill_konvoyer_01.over = "yes"; ChangeCharacterAddress(characterFromID("soldier1"), "none", ""); pchar.quest.konvoyers = makeint(pchar.quest.konvoyers) + 1; if (makeint(pchar.quest.konvoyers) == 4) { characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "konvoy_away"; LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Claire Larrouse")); LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "player_back", 2.0, 1.0); } break; case "konvoyer_02_exit": pchar.quest.kill_konvoyer_02.over = "yes"; ChangeCharacterAddress(characterFromID("soldier2"), "none", ""); pchar.quest.konvoyers = makeint(pchar.quest.konvoyers) + 1; if (makeint(pchar.quest.konvoyers) == 4) { characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "konvoy_away"; LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Claire Larrouse")); LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "player_back", 2.0, 1.0); } break; case "konvoyer_03_exit": pchar.quest.kill_konvoyer_03.over = "yes"; ChangeCharacterAddress(characterFromID("soldier3"), "none", ""); pchar.quest.konvoyers = makeint(pchar.quest.konvoyers) + 1; if (makeint(pchar.quest.konvoyers) == 4) { characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "konvoy_away"; LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Claire Larrouse")); LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "player_back", 2.0, 1.0); } break; case "konvoyer_04_exit": pchar.quest.kill_konvoyer_04.over = "yes"; ChangeCharacterAddress(characterFromID("soldier4"), "none", ""); pchar.quest.konvoyers = makeint(pchar.quest.konvoyers) + 1; if (makeint(pchar.quest.konvoyers) == 4) { characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "konvoy_away"; LAi_SetActorType(pchar); LAi_ActorWaitDialog(pchar, characterFromID("Claire Larrouse")); LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "player_back", 2.0, 1.0); } break; case "Clair_away": AddQuestRecord("larrouse", 9); CloseQuestHeader("larrouse"); LAi_ActorRunToLocation(characterFromID("Claire Larrouse"), "reload", "reload1", "Muelle_tavern", "sit", "sit6", "clair_to_muelle", 20.0); pchar.quest.clair_away.win_condition.l1 = "location"; pchar.quest.clair_away.win_condition.l1.location = "Oxbay"; pchar.quest.clair_away.win_condition = "clair_to_muelle"; locations[FindLocation("Oxbay_jungle_02")].reload.l1.disable = 0; locations[FindLocation("Oxbay_jungle_02")].reload.l2.disable = 0; locations[FindLocation("Oxbay_jungle_02")].reload.l3.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l1.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l2.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l3.disable = 0; LAi_LocationMonstersGen(&locations[FindLocation("Oxbay_jungle_02")], true); //pchar.reputation = makeint(pchar.reputation) - 5; ChangeCharacterReputation(pchar, -10); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "ENGLAND_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "ENGLAND_SOLDIERS"); LAi_NoRebirthDisable(characterFromID("mine_soldier_05")); LAi_NoRebirthDisable(characterFromID("mine_soldier_06")); LAi_SetImmortal(characterfromID("Claire Larrouse"), false); break; case "kill_konvoyer_01": characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine) + 1; break; case "kill_konvoyer_02": characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine) + 1; break; case "kill_konvoyer_03": characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine) + 1; break; case "kill_konvoyer_04": characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine = makeint(characters[GetCharacterIndex("Claire Larrouse")].quest.goldmine) + 1; break; case "wait_for_kill": pchar.quest.kill_konvoyer_01.over = "yes"; pchar.quest.kill_konvoyer_02.over = "yes"; pchar.quest.kill_konvoyer_03.over = "yes"; pchar.quest.kill_konvoyer_04.over = "yes"; locations[FindLocation("Oxbay_jungle_02")].reload.l1.disable = 1; locations[FindLocation("Oxbay_jungle_02")].reload.l2.disable = 1; locations[FindLocation("Oxbay_jungle_02")].reload.l3.disable = 1; locations[FindLocation("Oxbay_jungle_03")].reload.l1.disable = 1; locations[FindLocation("Oxbay_jungle_03")].reload.l2.disable = 1; locations[FindLocation("Oxbay_jungle_03")].reload.l3.disable = 1; PlaceFleetNearShore("Oxbay_shore_02"); characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "konvoy_killed"; LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_SetStayType(pchar); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "larrouse_follow_us_again", 4.0, 1.0); AddQuestRecord("larrouse", 10); break; case "escape_to_shore": locations[FindLocation("Oxbay_jungle_02")].reload.l1.disable = 0; locations[FindLocation("Oxbay_jungle_02")].reload.l2.disable = 0; locations[FindLocation("Oxbay_jungle_02")].reload.l3.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l1.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l2.disable = 0; locations[FindLocation("Oxbay_jungle_03")].reload.l3.disable = 0; locations[FindLocation("Oxbay_shore_02")].reload.l1.disable = 1; locations[FindLocation("Oxbay_shore_02")].reload.l2.disable = 1; locations[FindLocation("Oxbay_shore_02")].reload.l3.disable = 1; locations[FindLocation("Oxbay_shore_02")].reload.l4.disable = 1; characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "escape_to_shore"; LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "", 2.0, 1.0); break; case "larrouse_follow_us_again": LAi_SetPlayerType(pchar); LAi_ActorFollowEverywhere(characterFromID("Claire Larrouse"), "", 60.0); break; case "fighting_in_shore": LAi_SetOfficerType(characterFromID("Claire Larrouse")); LAi_QuestDelay("fighting_in_shore_2", 5.0); break; case "fighting_in_shore_2": /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m1, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m2, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m4, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m5, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m6, "reload", "reload2_back"); // PB LAi_group_MoveCharacter(sld, "MINE_KEEPERS"); LAi_group_FightGroups("MINE_KEEPERS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("MINE_KEEPERS", "fight_in_shore_completed"); break; case "fight_in_shore_completed": DeleteAttribute(&Locations[FindLocation("Oxbay_jungle_02")],"vcskip"); // PB LAi_QuestDelay("fight_in_shore_completed_almost", 4.0); break; case "fight_in_shore_completed_almost": locations[FindLocation("Oxbay_shore_02")].reload.l1.disable = 0; locations[FindLocation("Oxbay_shore_02")].reload.l2.disable = 0; locations[FindLocation("Oxbay_shore_02")].reload.l3.disable = 0; locations[FindLocation("Oxbay_shore_02")].reload.l4.disable = 0; // DoQuestReloadToLocation("Oxbay_shore_02", "reload", "reload2_back", "fight_in_shore_2_completed"); LAi_QuestDelay("fight_in_shore_2_completed", 5.0); break; case "fight_in_shore_2_completed": LAi_SetStayType(pchar); AddQuestRecord("larrouse", 11); characters[GetCharacterIndex("Claire Larrouse")].dialog.currentnode = "fight_in_shore_completed"; LAi_SetActorType(characterFromID("Claire Larrouse")); LAi_ActorDialog(characterFromID("Claire Larrouse"), pchar, "player_back", 4.0, 1.0); LAi_SetImmortal(characterfromID("Claire Larrouse"), false); break; case "clair_to_muelle": LAi_SetSitType(characterFromID("Claire Larrouse")); characters[getCharacterIndex("Claire Larrouse")].location = "Muelle_tavern"; characters[getCharacterIndex("Claire Larrouse")].location.group = "sit"; characters[getCharacterIndex("Claire Larrouse")].location.locator = "sit6"; characters[getCharacterIndex("Claire Larrouse")].dialog.currentnode = "for_hire"; break; case "from_shore_to_ship": iPassenger = makeint(Pchar.Temp.Officer.idx1); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } iPassenger = makeint(Pchar.Temp.Officer.idx2); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } iPassenger = makeint(Pchar.Temp.Officer.idx3); if(FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_OFFICER || FindFellowTravellers(PChar, &characters[iPassenger]) == FELLOWTRAVEL_PASSENGER) { if (characters[iPassenger].id == "Blaze_Crewmember_01" || characters[iPassenger].id == "Blaze_Crewmember_02" || characters[iPassenger].id == "Blaze_Crewmember_03") { RemovePassenger(pchar, &characters[iPassenger]); } } CloseQuestHeader("larrouse"); if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 20000); AddPartyExpChar(pchar, "Sneak", 200); } else { AddPartyExp(pchar, 20000); } LAi_SetOfficerType(characterFromID("Claire Larrouse")); characters[GetCharacterIndex("Claire Larrouse")].location = "none"; //pchar.reputation = makeint(pchar.reputation) + 1; ChangeCharacterReputation(pchar, -5); LAi_group_MoveCharacter(characterFromID("mine_soldier_05"), "ENGLAND_SOLDIERS"); LAi_group_MoveCharacter(characterFromID("mine_soldier_06"), "ENGLAND_SOLDIERS"); LAi_NoRebirthDisable(characterFromID("mine_soldier_05")); LAi_NoRebirthDisable(characterFromID("mine_soldier_06")); break; ///////////////////////////////////////////////////////////////////////// // EDGAR ATTWOOD QUEST ///////////////////////////////////////////////////////////////////////// case "Set_Edgar_Free": AddMoneyToCharacter(Pchar,-5000); ChangeCharacterAddressGroup(CharacterFromID("Jack Greenfield"), "", "sit", "sit12"); ChangeCharacterAddressGroup(CharacterFromID("Martin Warner"), "", "sit", "sit13"); PChar.quest.Story_Artois.win_condition.l1 = "location"; PChar.quest.Story_Artois.win_condition.l1.location = "Redmond_town_04"; PChar.quest.Story_Artois.win_condition = "Let_my_edgar_go"; break; case "Small_Pause_Before_Convoy": WaitDate("", 0, 0, 0, 0, 3); LAi_ActorSetStayMode(CharacterFromID("Jack Greenfield")); ChangeCharacterAddressGroup(CharacterFromID("Jack Greenfield"), "", "sit", "sit10"); // NK --> pchar.quest.Attwood1.leave = 1; AddMoneyToCharacter(PChar, -2000); LAi_QuestDelay("stand_up", 1.0); LAi_QuestDelay("convoy", 2.0); // NK <-- break; case "Attwood_Adventure": //NK reenable Attwood quests --> if(FindFellowTravellers(PChar, CharacterFromId("Edgar Attwood")) == FELLOWTRAVEL_OFFICER) { Locations[FindLocation("Greenford_tavern")].vcskip = true; // NK LAi_SetActorType(Pchar); Pchar.Temp.self.dialog = Pchar.dialog.currentnode; Pchar.dialog.currentnode = "Attwood_lost"; LAi_ActorSelfDialog(Pchar, "player_back"); RemovePassenger(pchar, &characters[GetCharacterIndex("Edgar Attwood")]); ChangeCharacterAddressGroup(CharacterFromID("Edgar Attwood"), "Greenford_tavern", "goto", "goto5"); Pchar.quest.Attwood_fight.win_condition.l1 = "location"; Pchar.quest.Attwood_fight.win_condition.l1.character = "Blaze"; Pchar.quest.Attwood_fight.win_condition.l1.location = "Greenford_tavern"; PChar.quest.Attwood_fight.win_condition = "Attwood_fight"; } break; case "Attwood_fight": DeleteAttribute(&Locations[FindLocation("Greenford_tavern")],"vcskip"); // NK /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "bocman", "goto", "goto17"); sld.id = "guy_in_tavern"; // NK -sld.skill.Fencing = "1"; LAi_SetActorType(CharacterFromID("guy_in_tavern")); /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "bocman3", "goto", "goto6"); sld.id = "guy_in_tavern1"; // NK - sld.skill.Fencing = "1"; LAi_SetActorType(CharacterFromID("guy_in_tavern1")); LAi_SetActorType(CharacterFromID("Edgar Attwood")); LAi_SetActorType(Pchar); LAi_ActorWaitDialog(CharacterFromID("Edgar Attwood"), Pchar); characters[GetCharacterIndex("Edgar Attwood")].dialog.currentnode = "Setup1"; LAi_ActorDialog(pchar, CharacterFromID("Edgar Attwood"), "", 10, 10); break; case "Attwood_fight1": LAi_QuestDelay("Attwood_fight2", 0.01); characters[GetCharacterIndex("Edgar Attwood")].dialog.currentnode = "First time"; // NK break; case "Attwood_fight2": LAi_LocationFightDisable(&Locations[FindLocation(pchar.location)], false); // NK SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); LAi_SetPlayerType(PChar); LAi_group_Register("bandits"); LAi_group_MoveCharacter(CharacterFromID("guy_in_tavern"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("guy_in_tavern1"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("Edgar Attwood"), LAI_GROUP_PLAYER); LAi_group_FightGroups("bandits", LAI_GROUP_PLAYER, true); // NK --> LAi_group_SetCheck("bandits", "Attwood_fight3"); break; case "Attwood_fight3": LAi_LocationFightDisable(&Locations[FindLocation(pchar.location)], true); break; // NK <-- case "Smugglers_fight1": LAi_QuestDelay("Smugglers_fight2", 0.01); break; case "Smugglers_fight2": SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); LAi_SetPlayerType(PChar); LAi_group_Register("bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm1"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm2"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm3"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("Edgar Attwood"), LAI_GROUP_PLAYER); LAi_group_FightGroups("bandits", LAI_GROUP_PLAYER, true); break; case "Smugglers_fight3": LAi_QuestDelay("Smugglers_fight4", 0.01); break; case "Smugglers_fight4": SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); LAi_SetPlayerType(PChar); LAi_group_Register("bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm1"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm2"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_sm3"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("Edgar Attwood"), "Good_boys"); LAi_group_FightGroups("bandits", "Good_boys", true); ChangeSmugglerLiking(pchar, -20); //Smugglers like you less cause you killed some break; case "Pirates_fight1": LAi_QuestDelay("Pirates_fight2", 0.01); break; case "Pirates_fight2": LAi_SetPlayerType(PChar); LAi_group_Register("bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_pirate1"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_pirate2"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_pirate3"), "bandits"); LAi_group_MoveCharacter(CharacterFromID("offended_pirate5"), "bandits"); LAi_group_FightGroups("bandits", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("bandits", "Come_to_papa"); break; case "Attwood_win": EndQuestMovie();TrackQuestMovie("end","Attwood_win"); break; case "Attwood_listed": SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); break; case "redmond_Attwood": if (!CharacterIsDead(&characters[GetCharacterIndex("Edgar Attwood")])) { if(FindFellowTravellers(PChar, CharacterFromId("Edgar Attwood")) == FELLOWTRAVEL_OFFICER) { RemovePassenger(pchar, &characters[GetCharacterIndex("Edgar Attwood")]); // NK --> characters[GetCharacterIndex("Edgar Attwood")].blade = ""; characters[GetCharacterIndex("Edgar Attwood")].location = "Redmond_store"; ChangeCharacterAddress(characterFromID("Edgar Attwood"), "none", ""); ChangeCharacterAddressGroup(CharacterFromID("Jack Greenfield"), "Redmond_tavern", "sit", "sit12"); ChangeCharacterAddressGroup(CharacterFromID("Martin Warner"), "Redmond_tavern", "sit", "sit13"); // NK <-- LAi_CharacterDisableDialog(CharacterFromID("Martin Warner")); characters[GetCharacterIndex("Redmond prison commendant")].dialog.currentnode = "continue2"; // NK --> ChangeCharacterAddressGroup(CharacterFromID("Roger Hayes"), "Redmond_tavern", "sit", "sit5"); LAi_LocationFightDisable(&Locations[FindLocation("redmond_prison")], true); ChangeCharacterAddress(characterFromID("Redmond prison commendant"), "Redmond_prison", "sit1"); characters[GetCharacterIndex("Redmond prison commendant")].location = "Redmond_prison"; characters[GetCharacterIndex("Redmond prison commendant")].location.group = "sit"; characters[GetCharacterIndex("Redmond prison commendant")].location.locator = "sit1"; LAi_SetActorType(CharacterFromID("Redmond prison commendant")); LAi_SetSitType(CharacterFromID("Redmond prison commendant")); // NK <-- // NK --> /*NK*/ sld = LAi_CreateFantomCharacter(true, 0, true, true, 0.25, "corsair2", "goto", "goto_43"); LAi_SetActorType(sld); sld.id = "to_say1"; sld.Dialog.Filename = "to_say1.c"; LAi_ActorDialog(characterfromID("to_say1"), pchar, "", 10, 40); // NK <-- } } break; case "Let_my_edgar_go": SetCharacterToNearLocatorFromMe("Edgar Attwood", 10); SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); break; // NK --> case "Att_resit": LAi_Fade("Att_resit1", "Att_resit2"); break; case "Att_resit1": ChangeCharacterAddressGroup(Pchar, "Redmond_tavern", "candles", "sit2"); LAi_SetActorType(Pchar); LAi_ActorSetSitMode(Pchar); break; case "Att_resit2": LAi_ActorWaitDialog(CharacterFromID("Martin Warner"), Pchar); LAi_ActorDialog(Pchar, CharacterFromID("Martin Warner"), "", 0.001, 0.001); break; // NK <-- case "soldier_in_tavern0": LAi_QuestDelay("soldier_in_tavern", 0.01); break; case "soldier_in_tavern": LAi_ActorDialog(Pchar, CharacterFromID("Jack Greenfield"), "", 10, 4); LAi_Fade("soldier_in_tavern0.51", "soldier_in_tavern0.52"); break; case "soldier_in_tavern0.51": ChangeCharacterAddressGroup(Pchar, "Redmond_tavern", "candles", "sit2"); // NK LAi_SetActorType(Pchar); LAi_SetActorType(CharacterFromID("Jack Greenfield")); LAi_ActorSetSitMode(CharacterFromID("Jack Greenfield")); LAi_SetActorType(CharacterFromID("Martin Warner")); LAi_ActorSetSitMode(CharacterFromID("Martin Warner")); LAi_ActorSetSitMode(Pchar); // NK break; case "soldier_in_tavern0.52": //LAi_ActorSetSitMode(Pchar); // NK LAi_ActorWaitDialog(CharacterFromID("Jack Greenfield"), Pchar); LAi_ActorDialog(Pchar, CharacterFromID("Jack Greenfield"), "", 10, 4); break; case "soldier_in_tavern1": LAi_QuestDelay("soldier_in_tavern2", 2); break; case "soldier_in_tavern2": LAi_ActorWaitDialog(CharacterFromID("Martin Warner"), Pchar); LAi_ActorDialog(Pchar, CharacterFromID("Martin Warner"), "", 10, 4); break; case "soldier_in_tavern3": LAi_ActorWaitDialog(CharacterFromID("Jack Greenfield"), Pchar); LAi_ActorDialog(Pchar, CharacterFromID("Jack Greenfield"), "", 10, 4); break; case "soldier_in_tavern4": LAi_ActorWaitDialog(CharacterFromID("Martin Warner"), Pchar); LAi_ActorDialog(Pchar, CharacterFromID("Martin Warner"), "", 10, 4); break; case "convoy": LAi_Fade("fight_with_convoy", "convoy_fight1"); break; case "fight_with_convoy": ChangeCharacterAddressGroup(CharacterFromID("Jack Greenfield"), "none", "sit", "sit10"); ChangeCharacterAddressGroup(CharacterFromID("Martin Warner"), "none", "sit", "sit5"); DoQuestReloadToLocation("redmond_port", "goto", "goto_2", "_"); break; case "convoy_fight1": // NK --> /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m2, "goto", "goto_54"); // PB LAi_SetActorType(sld); sld.id = "sold1"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m3, "goto", "goto_51"); // PB LAi_SetActorType(sld); sld.id = "sold2"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m4, "goto", "goto_50"); // PB LAi_SetActorType(sld); sld.id = "sold3"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m5, "goto", "goto_53"); // PB LAi_SetActorType(sld); sld.id = "sold4"; /*NK*/ sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[ENGLAND].fantomModel.m6, "goto", "goto_52"); // PB LAi_SetActorType(sld); sld.id = "sold5"; LAi_SetActorType(CharacterFromID("Edgar Attwood")); LAi_SetActorType(CharacterFromID("zek")); LAi_SetActorType(CharacterFromID("zek2")); ChangeCharacterAddressGroup(CharacterFromID("Edgar Attwood"), "Redmond_port", "goto", "goto_53"); ChangeCharacterAddressGroup(CharacterFromID("zek2"), "Redmond_port", "goto", "goto_51"); ChangeCharacterAddressGroup(CharacterFromID("zek"), "Redmond_port", "goto", "goto_50"); // NK <-- LAi_ActorGoToLocator(CharacterFromID ("Edgar Attwood"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("zek2"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("zek"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("sold5"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("sold4"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("sold3"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("sold2"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_ActorGoToLocator(CharacterFromID ("sold1"), "goto", "goto_34", "Edgar_is_on_board", -1); LAi_group_MoveCharacter(CharacterFromID ("sold5"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold4"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold3"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold2"), "convoy"); LAi_SetActorType(Pchar); LAi_QuestDelay("make_player", 1); break; case "make_player": LAi_SetPlayerType(Pchar); LAi_SetCheckMinHP(CharacterFromID ("sold1"), 0.875*LAi_GetCharacterHP(characterFromID("sold1")), false, "convoy_is_angry"); // KK LAi_SetCheckMinHP(CharacterFromID ("sold2"), 0.875*LAi_GetCharacterHP(characterFromID("sold2")), false, "convoy_is_angry"); // KK LAi_SetCheckMinHP(CharacterFromID ("sold3"), 0.875*LAi_GetCharacterHP(characterFromID("sold3")), false, "convoy_is_angry"); // KK LAi_SetCheckMinHP(CharacterFromID ("sold4"), 0.875*LAi_GetCharacterHP(characterFromID("sold4")), false, "convoy_is_angry"); // KK LAi_SetCheckMinHP(CharacterFromID ("sold5"), 0.875*LAi_GetCharacterHP(characterFromID("sold5")), false, "convoy_is_angry"); // KK break; case "Edgar_is_on_board": WaitDate("", 0, 0, 0, 0, 1); pchar.location.from_sea = "Redmond_port"; SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "pchar"); // NK 05-04-02 WM/IT set fleet. PlaceFleetNearShore(pchar.location.from_sea); // KK Group_CreateGroup("Jack Greenfield"); Group_AddCharacter("Jack Greenfield", "Jack Greenfield"); characters[GetCharacterIndex("Jack Greenfield")].nosurrender = 2; // 05-07-06 no surrender at sea. Makes life easier. // KK Group_SetGroupCommander("Jack Greenfield", "Jack Greenfield"); Group_SetTaskMove("Jack Greenfield", 10000, 10000); Group_SetPursuitGroup("Jack Greenfield", PLAYER_GROUP); Group_SetAddress("Jack Greenfield", "redmond", "", ""); TeleportCharacterFromCurLocationToLocation("sea_1_back", "", ""); Pchar.quest.Battle.win_condition.l1 = "NPC_Death"; Pchar.quest.Battle.win_condition.l1.character = "Jack Greenfield"; PChar.quest.Battle.win_condition = "list_Attwood"; break; case "list_Attwood": // if (characters[GetCharacterIndex("Jack Greenfield")].Killer.status == KILL_BY_ABORDAGE) //TALISMAN - remove to enable Edgar Attwood to be rescued from Prison Ship // { //TALISMAN - remove to enable Edgar Attwood to be rescued from Prison Ship // NK --> Log_SetStringToLog(TranslateString("","You rescued Edgar Attwood!")); SetCharacterShipLocation(CharacterFromID("Jack Greenfield"), "none" ); // NK <-- SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); // } //TALISMAN - remove to enable Edgar Attwood to be rescued from Prison Ship break; case "convoy_is_angry": LAi_group_MoveCharacter(CharacterFromID ("sold5"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold4"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold3"), "convoy"); LAi_group_MoveCharacter(CharacterFromID ("sold2"), "convoy"); LAi_type_actor_Reset(CharacterFromID ("sold2")); LAi_type_actor_Reset(CharacterFromID ("sold1")); LAi_type_actor_Reset(CharacterFromID ("sold3")); LAi_type_actor_Reset(CharacterFromID ("sold4")); LAi_type_actor_Reset(CharacterFromID ("sold5")); LAi_type_actor_Reset(CharacterFromID ("Edgar Attwood")); LAi_type_actor_Reset(CharacterFromID ("zek")); LAi_type_actor_Reset(CharacterFromID ("zek2")); LAi_group_FightGroups("convoy", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("convoy", "list_Attwood2"); break; case "list_Attwood2": // NK --> SetCharacterShipLocation(CharacterFromID("Jack Greenfield"), "none" ); Log_SetStringToLog(TranslateString("","You rescued Edgar Attwood!")); // NK <-- SetOfficersIndex(Pchar, 3, GetCharacterIndex("Edgar Attwood")); // NK was -1 LAi_SetOfficerType(CharacterFromID("Edgar Attwood")); break; //NK <-- /////////////////////////////////////////////////////////////// ///// SINKING THE VOGELSTRUIJS /////////////////////////////////////////////////////////////// case "birdwatch": AddMoneyToCharacter(PChar, 2500); SetQuestHeader("Vogelstruijs"); AddQuestRecord("Vogelstruijs", 1); pchar.quest.birdwatch2.win_condition.l1 = "location"; pchar.quest.birdwatch2.win_condition.l1 = "location"; pchar.quest.birdwatch2.win_condition.l1.location = "Douwesen_port"; pchar.quest.birdwatch2.win_condition = "birdwatch2"; Characters[GetCharacterIndex("Contre-Amirale")].birdwatch2 = true; // PB: Avoid this quest being given again break; case "birdwatch2": ChangeCharacterAddressGroup(characterFromID("Docker"), "Douwesen_port", "goto", "goto15"); LAi_SetActorType(characterFromID("Docker")); Characters[GetCharacterIndex("Docker")].dialog.currentnode = "question"; LAi_ActorDialog(characterFromID("Docker"),PChar,"",5.0,5.0); break; case "birdsearch": AddQuestRecord("Vogelstruijs", 2); Locations[FindLocation("Dutch_Smuggler_Home")].vcskip = true; Locations[FindLocation("Douwesen_town")].reload.l12.disable = false; pchar.quest.birdsearch1.win_condition.l1 = "location"; pchar.quest.birdsearch1.win_condition.l1 = "location"; pchar.quest.birdsearch1.win_condition.l1.location = "Dutch_Smuggler_Home"; pchar.quest.birdsearch1.win_condition = "birdsearch1"; break; case "birdsearch1": Pchar.Temp.self.dialog = Pchar.dialog.currentnode; LAi_SetActorType(pchar); Pchar.dialog.filename = "LaCroix_dialog.c"; Pchar.dialog.currentnode = "logbook"; LAi_ActorSelfDialog(Pchar, "player_back"); // LAi_QuestDelay("learn about smugglers", 0.0); //Levis, GR: Disabled this here break; case "birdsearch2": LAi_SetActorType(pchar); LAi_ActorGoToLocator(pchar, "goto", "goto2", "birdsearch3", 2.0); break; case "birdsearch3": AddQuestRecord("Vogelstruijs", 3); GiveItem2Character(Pchar, "SpanishLetter"); LAi_SetActorType(pchar); Pchar.dialog.filename = "LaCroix_dialog.c"; Pchar.dialog.currentnode = "logbook2"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "birdsearch4": LAi_SetPlayerType(pchar); ChangeCharacterAddressGroup(characterFromID("Skipper Wife"), "Dutch_Smuggler_Home", "reload", "reload2"); LAi_SetActorType(characterFromID("Skipper Wife")); LAi_ActorGoToLocator(CharacterFromID("Skipper Wife"), "goto", "goto3", "busted", 10.0); break; case "busted": LAi_SetActorType(characterFromID("Skipper Wife")); Characters[GetCharacterIndex("Skipper Wife")].dialog.currentnode = "what_are_you_doing"; LAi_ActorDialog(characterFromID("Skipper Wife"), pchar, "", 10.0, 10.0); break; case "callguards": sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[GetCurrentLocationNation()].fantomModel.m4, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_SetGuardianType(sld); LAi_group_MoveCharacter(sld, "HOLLAND_GUARDS"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, Nations[GetCurrentLocationNation()].fantomModel.m5, "reload", "reload1"); // PB LAi_SetHP(sld, 80.0, 80.0); LAi_SetGuardianType(sld); LAi_group_MoveCharacter(sld, "HOLLAND_GUARDS"); LAi_group_SetRelation("HOLLAND_GUARDS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY); LAi_group_FightGroups("HOLLAND_GUARDS", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("HOLLAND_GUARDS", "toadmiral"); LAi_SetActorType(characterFromID("Skipper Wife")); LAi_ActorRunToLocator(CharacterFromID("Skipper Wife"), "reload", "reload2", "", 10.0); ChangeCharacterAddressGroup(characterFromID("Skipper Wife"), "none", "", ""); SetRMRelation(PChar, HOLLAND, REL_WAR); AddQuestRecord("Vogelstruijs", 4); break; case "lovertrouble": ChangeCharacterAddressGroup(characterFromID("Cheater"), "Dutch_Smuggler_Home", "reload", "reload2"); LAi_SetActorType(characterFromID("Cheater")); LAi_ActorGoToLocator(CharacterFromID("Cheater"), "goto", "goto3", "lovertrouble2", 2.0); break; case "lovertrouble2": LAi_SetActorType(characterFromID("Cheater")); Characters[GetCharacterIndex("Cheater")].dialog.currentnode = "lover"; LAi_ActorDialog(characterFromID("Cheater"), pchar, "", 10.0, 1.0); break; case "killerattack": LAi_SetActorType(characterFromID("Skipper Wife")); LAi_ActorRunToLocator(CharacterFromID("Skipper Wife"), "reload", "reload2", "", 2.0); ChangeCharacterAddressGroup(characterFromID("Skipper Wife"), "none", "", ""); LAi_ActorAttack(CharacterFromID("Cheater"), Pchar, ""); pchar.quest.toadmiral.win_condition.l1 = "NPC_Death"; pchar.quest.toadmiral.win_condition.l1.character = "Cheater"; pchar.quest.toadmiral.win_condition = "toadmiral"; AddQuestRecord("Vogelstruijs", 5); break; case "killher": ChangeCharacterReputation(pchar, -10); LAi_ActorAttack(CharacterFromID("Skipper Wife"), Pchar, ""); pchar.quest.toadmiral.win_condition.l1 = "NPC_Death"; pchar.quest.toadmiral.win_condition.l1.character = "Skipper Wife"; pchar.quest.toadmiral.win_condition = "toadmiral"; AddQuestRecord("Vogelstruijs", 6); break; case "gold": ChangeCharacterReputation(pchar, -5); AddMoneyToCharacter(PChar, 500); GiveItem2Character(Pchar, "jewelry1"); GiveItem2Character(Pchar, "jewelry10"); GiveItem2Character(Pchar, "jewelry14"); pchar.quest.toadmiral.win_condition.l1 = "location"; pchar.quest.toadmiral.win_condition.l1 = "location"; pchar.quest.toadmiral.win_condition.l1.location = "Douwesen_town"; pchar.quest.toadmiral.win_condition = "toadmiral"; AddQuestRecord("Vogelstruijs", 7); break; case "toadmiral": AddQuestRecord("Vogelstruijs", 8); Characters[GetCharacterIndex("Contre-Amirale")].dialog.CurrentNode = "letter"; break; case "birdhunt": ChangeCharacterAddressGroup(CharacterFromID("Crewmember_Havana"), "PoPrince_town", "reload", "reload13"); Characters[GetCharacterIndex("Crewmember_Havana")].dialog.CurrentNode = "what_shall_we_do"; pchar.quest.birdhunt_start.win_condition.l1 = "location"; pchar.quest.birdhunt_start.win_condition.l1.location = "PoPrince_town"; pchar.quest.birdhunt_start.win_condition = "birdhunt_start"; break; case "birdhunt_start": LAi_SetActorType(CharacterFromID("Crewmember_Havana")); LAi_ActorFollow(CharacterFromID("Crewmember_Havana"), PChar, "birdhunt2", -1); break; case "birdhunt2": LAi_ActorDialog(characterFromID("Crewmember_Havana"), PChar, "", -1, 0.0); break; case "birdhunt3": bQuestDisableMapEnter = true; // UpdateRelations(); // PB: Doesn't do anything Group_CreateGroup("Skipper1"); Group_AddCharacter("Skipper1", "Skipper1"); Group_SetGroupCommander("Skipper1", "Skipper1"); Group_SetTaskNone("Skipper1"); Group_LockTask("Skipper1"); Group_SetAddress("Skipper1", "Hispaniola", "Quest_ships", "quest_ship_6"); Sea_LoginGroupNow("Skipper1"); characters[GetCharacterIndex("Skipper")].nosurrender = 2; // SetCharacterRelationBoth(GetCharacterIndex("Skipper1"),GetMainCharacterIndex(),RELATION_ENEMY); // PB: Doesn't do anything // if(GetRMRelation(PChar, HOLLAND) > REL_WAR) SetRMRelation(PChar, HOLLAND, REL_WAR); Character_SetAbordageEnable(characterFromID("Skipper1"), false); Pchar.quest.birdboarding.win_condition.l1 = "Ship_HP"; Pchar.quest.birdboarding.win_condition.l1.character = "Skipper1"; Pchar.quest.birdboarding.win_condition.l1.quantity = 3500; Pchar.quest.birdboarding.win_condition.l1.operation = "<"; Pchar.quest.birdboarding.win_condition = "birdboarding"; PChar.QuestsCheck = true; // PB: Enable checking quest status every minute at sea break; case "birdboarding": ChangeCharacterAddressGroup(CharacterFromID("Crewmember_Havana"), "VogelStruijs", "rld", "aloc3"); ChangeCharacterAddressGroup(CharacterFromID("Skipper"), "VogelStruijs", "rld", "loc1"); DoQuestReloadToLocation("VogelStruijs", "rld", "aloc2","birdboarding1-2"); bQuestDisableMapEnter = false; //CTM DeleteAttribute(PChar, "QuestsCheck"); // PB: Stop the check again for performance reasons break; case "birdboarding1-2": Characters[GetCharacterIndex("Crewmember_Havana")].dialog.CurrentNode = "blow_up"; LAi_SetActorType(characterFromID("Crewmember_Havana")); LAi_ActorDialog(characterFromID("Crewmember_Havana"), pchar, "", 3.0, 1.0); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Sailor", "rld", "aloc12"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Sailor1", "rld", "aloc14"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "will_2", "rld", "aloc9"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Sailor2", "rld", "aloc4"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "sailor5", "rld", "aloc5"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "Sailor16", "rld", "aloc8"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "rabWhite", "rld", "loc12"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat6", "rld", "loc14"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "pirat9", "rld", "loc9"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "man6", "rld", "loc4"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "man1_2", "rld", "loc5"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); sld = LAi_CreateFantomCharacter(false, 0, true, true, 0.25, "fatman", "rld", "loc8"); LAi_SetHP(sld, 180.0, 180.0); LAi_group_MoveCharacter(sld, "CREW_VOGEL"); LAi_group_FightGroups("CREW_VOGEL", LAI_GROUP_PLAYER, true); LAi_group_SetCheck("CREW_VOGEL", "birdboarding3"); break; case "birdboarding3": LAi_SetActorType(characterFromID("Skipper")); Characters[GetCharacterIndex("Skipper")].dialog.CurrentNode = "how"; LAi_ActorDialog(characterFromID("Skipper"), pchar, "", 10.0, 10.0); break; case "birdboarding4": LAi_ActorAttack(CharacterFromID("Skipper"), Pchar, ""); pchar.quest.toadmiral.win_condition.l1 = "NPC_Death"; pchar.quest.toadmiral.win_condition.l1.character = "Skipper"; pchar.quest.toadmiral.win_condition = "birdhold"; break; case "birdhold": ChangeSmugglerLiking(pchar, -20); DoQuestReloadToLocation("VogelStruijs_Hold", "reload", "reload1","birdblow"); break; case "birdblow": LAi_SetActorType(pchar); Pchar.dialog.filename = "LaCroix_dialog.c"; Pchar.dialog.currentnode = "blow_it"; LAi_ActorSelfDialog(Pchar, "player_back"); pchar.quest.birdblow2.win_condition.l1 = "locator"; pchar.quest.birdblow2.win_condition.l1.location = "VogelStruijs_Hold"; pchar.quest.birdblow2.win_condition.l1.locator_group = "box"; pchar.quest.birdblow2.win_condition.l1.locator = "gunpowder_1"; pchar.quest.birdblow2.win_condition = "birdblow2" break; case "birdblow2": PlayStereoSound("NATURE\fireplace1.wav"); CreateParticleSystemX("fireball", -1.68, 12.04, -8.04, -1.57, 0.0, 0.0,0); CreateParticleSystemX("cancloud", -1.68, 12.04, -8.04, -1.57, 0.0, 0.0,0); LAi_SetActorType(pchar); Pchar.dialog.filename = "LaCroix_dialog.c"; Pchar.dialog.currentnode = "run"; LAi_ActorSelfDialog(Pchar, "player_back"); break; case "birdfly": QuestToSeaLogin_PrepareLoc("Hispaniola", "reload", "reload_2", true); QuestToSeaLogin_Launch(); DoQuestCheckDelay("birdfly2", 5.0); break; case "birdfly2": SeaAI_SailToCharacter(GetCharacterIndex("Skipper1")); Ship_Detonate(characterFromID("Skipper1"), true, true); RestoreOfficers(pchar.id); DoQuestCheckDelay("birdsinks", 12.0); break; case "birdsinks": characters[GetCharacterindex("Skipper1")].ship.hp = 0; AddQuestRecord("Vogelstruijs", 9); Characters[GetCharacterIndex("Contre-Amirale")].dialog.currentnode = "weldone1"; break; case "free_to_go": AddMoneyToCharacter(PChar, 2500); AddQuestRecord("Vogelstruijs", 10); CloseQuestHeader("Vogelstruijs"); Characters[GetCharacterIndex("Contre-Amirale")].dialog.currentnode = "nothing"; Pchar.quest.Remove_Amirale.win_condition.l1 = "ExitFromLocation"; Pchar.quest.Remove_Amirale.win_condition.l1.location = pchar.location; Pchar.quest.Remove_Amirale.win_condition = "Remove_Amirale"; break; case "Remove_Amirale": ChangeCharacterAddress(characterFromID("Contre-Amirale"), "none", ""); break; /////////////////////////////////////////////////////////////// ///// Job at Martinique Shipyard /////////////////////////////////////////////////////////////// case "martinique_shipyard_work": PlayStereoSound("AMBIENT\SHIPYARD\saw.wav"); waitdate("", 0, 0, 3, 0, 0); SetCurrentTime(10.00, 0); LAi_Fade("", ""); logit("Three days later..."); if(AUTO_SKILL_SYSTEM) AddPartyExpChar(pchar, "Repair", 500); else AddPartyExp(pchar, 500); Characters[GetCharacterIndex("Jean Filaut")].dialog.currentnode = "job_done"; break; case "danielle_end_exit": //PW new case to allow Sabine to exit from store after female pchar allows her on ship LAi_SetActorType(CharacterFromID("Sabine Matton")); // PW Sabine to leave LAi_ActorRunToLocation(CharacterFromID("Sabine Matton"), "Reload", "Reload1", "None", "", "", "", 120); // PW Sabine leaves break; PChar.questnotfound = true; // PB: Testing } }