This is the coding for the artois quest shiped with my pirates of the carribian
this is from quests_reaction.c
the proplem is that the quest stops after you have got into the fight with the portugesse and have resqued him and he has sorted out relations
i beleive that the timer for the quest end is still ticking but how do i stop it
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> case "Story_Artois":
if (CheckQuestAttribute("main_line", "ines_info_denied"))
{
LAi_QuestDelay("Story_Artois", 4.0);
}
else
{
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_SetImmortal(CharacterFromID("Artois Voysey"), False);
LAi_ActorAttack(characterFromID("Nigel Blythe"), characterFromID("Artois Voysey"), "");
LAi_ActorAttack(characterFromID("Artois Voysey"), characterFromID("Nigel Blythe"), "");
LAi_SetCheckMinHP(characterFromID("Artois Voysey"), 20.0, true, "Story_Artois_2");
LAi_SetActorType(pchar);
LAi_ActorFollow(pchar, characterFromID("Nigel Blythe"), "", 25.0);
}
StartQuestMovie(true, false, false);
break;
case "Story_Artois_2":
LAi_SetStayType(pchar);
LAi_type_actor_Reset(characterFromID("Artois Voysey"));
LAi_type_actor_Reset(characterFromID("Nigel Blythe"));
LAi_ActorDialog(characterFromID("Nigel Blythe"), pchar, "", 2.0, 1.0);
break;
case "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");
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
break;
case "Artois_saved":
EndQuestMovie();
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);
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";
LAi_SetPlayerType(Pchar);
SetOfficersIndex(Pchar, -1, GetCharacterIndex("Artois Voysey"));
LAi_SetOfficerType(characterFromID("Artois Voysey"));
break;
case "Voysey_listed_2":
LAi_SetImmortal(characterFromID("Artois Voysey"), false);
LAi_SetPlayerType(Pchar);
SetOfficersIndex(Pchar, -1, GetCharacterIndex("Artois Voysey"));
break;
case "Artois_missed":
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");
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;
sld = LAi_CreateFantomCharacter("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);
sld = LAi_CreateFantomCharacter("soldier_por", "reload", "reload1");
sld.Dialog.Filename = "Cops_dialog.c";
sld.dialog.currentnode = "First time";
sld.id = "solja";
sld.greeting = "Gr_Solja";
sld = LAi_CreateFantomCharacter("soldier_por", "reload", "reload1");
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);
SetNationRelation2MainCharacter(PORTUGAL, RELATION_ENEMY);
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 (GetCharacterSkill(pchar, SKILL_SNEAK) < 3)
{
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto3");
LAi_SetActorType(sld);
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto5");
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto5");
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto3");
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.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"), 79.0, false, "fight_for_artois_with_child_of_giens");
LAi_SetCheckMinHP(CharacterFromID("Pirates_2"), 79.0, false, "fight_for_artois_with_child_of_giens");
LAi_SetCheckMinHP(CharacterFromID("Pirates_3"), 79.0, false, "fight_for_artois_with_child_of_giens");
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";
break;
case "portugal_becomes_neutral":
SetNationRelation2MainCharacter(PORTUGAL, RELATION_NEUTRAL);
LAi_group_SetRelation("CONCEICAO_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_NEITRAL);
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"), "pchar_back_to_player", 5.0, 1.0);
AddPartyExp(pchar, 5000);
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
break;
case "pause":
AddQuestRecord("artois", "8");
Locations[FindLocation("Conceicao_townhall")].reload.l1.disable = 1;
DoQuestReloadToLocation ("Conceicao_townhall", "goto", "goto7", "pause2");
break;
case "pause2":
Locations[FindLocation("Conceicao_tavern_upstairs")].reload.l1.disable = false;
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto8");
LAi_SetActorType(sld);
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto1");
LAi_SetActorType(sld);
sld.id = "guard";
sld = LAi_CreateFantomCharacter("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, -1, GetCharacterIndex("Artois Voysey"));
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";
break;
case "shoot_in_artois":
if (CheckQuestAttribute("generate_convoy_quest_progress", ""))
{
for (int l=1; l<4; l++)
{
if (GetOfficersIndex(Pchar, l) > 0)
{
if (characters[GetOfficersIndex(Pchar, l)].id == "Artois Voysey")
{
pchar.quest.shoot_in_artois_complete = "complete";
}
}
}
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(GetMainCharacter(), &locx, &locy, &locz);
homelocator = LAi_FindFarLocator("goto", locx, locy, locz);
sld = LAi_CreateFantomCharacter("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":
LAi_SetImmortal(characterFromID("Artois Voysey"), false);
GetCharacterPos(GetMainCharacter(), &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("objects\duel\pistol_shot1.wav", locx, locy, locz);
break;
case "almost_killed_artois":
GetCharacterPos(GetMainCharacter(), &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(GetMainCharacter(), &locx, &locy, &locz);
homelocator = LAi_FindNearestFreeLocator("goto", locx, locy, locz);
sld = LAi_CreateFantomCharacter("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, "pchar_back_to_player");
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);
homelocation = pchar.location;
PlaceCharacter(characterFromID("Artois Voysey"), "goto", homelocation);
LAi_SetActorType(characterFromID("Artois Voysey"));
LAi_type_actor_Reset(characterFromID("Artois Voysey"));
Characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "final_talk";
LAi_ActorDialog(characterFromID("Artois Voysey"), pchar, "Voysey_listed_2", 3.0, 1.0);
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
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");
AddPartyExp(pchar, 5000);
//AddPassenger(Pchar, characterFromID("Artois Voysey"), 0);
break;
case "treasure_found":
AddMoneyToCharacter(PChar, 50000);
Log_SetStringToLog(GlobalStringConvert("QUEST_MESSAGE4"));
AddQuestRecord("artois", "18");
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");
AddPArtyExp(pchar, 7000);
break;<!--c2--></div><!--ec2-->
this is from quests_reaction.c
the proplem is that the quest stops after you have got into the fight with the portugesse and have resqued him and he has sorted out relations
i beleive that the timer for the quest end is still ticking but how do i stop it
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> case "Story_Artois":
if (CheckQuestAttribute("main_line", "ines_info_denied"))
{
LAi_QuestDelay("Story_Artois", 4.0);
}
else
{
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_SetImmortal(CharacterFromID("Artois Voysey"), False);
LAi_ActorAttack(characterFromID("Nigel Blythe"), characterFromID("Artois Voysey"), "");
LAi_ActorAttack(characterFromID("Artois Voysey"), characterFromID("Nigel Blythe"), "");
LAi_SetCheckMinHP(characterFromID("Artois Voysey"), 20.0, true, "Story_Artois_2");
LAi_SetActorType(pchar);
LAi_ActorFollow(pchar, characterFromID("Nigel Blythe"), "", 25.0);
}
StartQuestMovie(true, false, false);
break;
case "Story_Artois_2":
LAi_SetStayType(pchar);
LAi_type_actor_Reset(characterFromID("Artois Voysey"));
LAi_type_actor_Reset(characterFromID("Nigel Blythe"));
LAi_ActorDialog(characterFromID("Nigel Blythe"), pchar, "", 2.0, 1.0);
break;
case "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");
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
break;
case "Artois_saved":
EndQuestMovie();
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);
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";
LAi_SetPlayerType(Pchar);
SetOfficersIndex(Pchar, -1, GetCharacterIndex("Artois Voysey"));
LAi_SetOfficerType(characterFromID("Artois Voysey"));
break;
case "Voysey_listed_2":
LAi_SetImmortal(characterFromID("Artois Voysey"), false);
LAi_SetPlayerType(Pchar);
SetOfficersIndex(Pchar, -1, GetCharacterIndex("Artois Voysey"));
break;
case "Artois_missed":
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");
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;
sld = LAi_CreateFantomCharacter("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);
sld = LAi_CreateFantomCharacter("soldier_por", "reload", "reload1");
sld.Dialog.Filename = "Cops_dialog.c";
sld.dialog.currentnode = "First time";
sld.id = "solja";
sld.greeting = "Gr_Solja";
sld = LAi_CreateFantomCharacter("soldier_por", "reload", "reload1");
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);
SetNationRelation2MainCharacter(PORTUGAL, RELATION_ENEMY);
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 (GetCharacterSkill(pchar, SKILL_SNEAK) < 3)
{
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto3");
LAi_SetActorType(sld);
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto5");
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto5");
LAi_group_MoveCharacter(sld, "CONCEICAO_SOLDIERS");
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto3");
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.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"), 79.0, false, "fight_for_artois_with_child_of_giens");
LAi_SetCheckMinHP(CharacterFromID("Pirates_2"), 79.0, false, "fight_for_artois_with_child_of_giens");
LAi_SetCheckMinHP(CharacterFromID("Pirates_3"), 79.0, false, "fight_for_artois_with_child_of_giens");
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";
break;
case "portugal_becomes_neutral":
SetNationRelation2MainCharacter(PORTUGAL, RELATION_NEUTRAL);
LAi_group_SetRelation("CONCEICAO_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_NEITRAL);
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"), "pchar_back_to_player", 5.0, 1.0);
AddPartyExp(pchar, 5000);
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
break;
case "pause":
AddQuestRecord("artois", "8");
Locations[FindLocation("Conceicao_townhall")].reload.l1.disable = 1;
DoQuestReloadToLocation ("Conceicao_townhall", "goto", "goto7", "pause2");
break;
case "pause2":
Locations[FindLocation("Conceicao_tavern_upstairs")].reload.l1.disable = false;
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto8");
LAi_SetActorType(sld);
sld = LAi_CreateFantomCharacter("soldier_por", "goto", "goto1");
LAi_SetActorType(sld);
sld.id = "guard";
sld = LAi_CreateFantomCharacter("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, -1, GetCharacterIndex("Artois Voysey"));
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";
break;
case "shoot_in_artois":
if (CheckQuestAttribute("generate_convoy_quest_progress", ""))
{
for (int l=1; l<4; l++)
{
if (GetOfficersIndex(Pchar, l) > 0)
{
if (characters[GetOfficersIndex(Pchar, l)].id == "Artois Voysey")
{
pchar.quest.shoot_in_artois_complete = "complete";
}
}
}
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(GetMainCharacter(), &locx, &locy, &locz);
homelocator = LAi_FindFarLocator("goto", locx, locy, locz);
sld = LAi_CreateFantomCharacter("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":
LAi_SetImmortal(characterFromID("Artois Voysey"), false);
GetCharacterPos(GetMainCharacter(), &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("objects\duel\pistol_shot1.wav", locx, locy, locz);
break;
case "almost_killed_artois":
GetCharacterPos(GetMainCharacter(), &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(GetMainCharacter(), &locx, &locy, &locz);
homelocator = LAi_FindNearestFreeLocator("goto", locx, locy, locz);
sld = LAi_CreateFantomCharacter("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, "pchar_back_to_player");
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);
homelocation = pchar.location;
PlaceCharacter(characterFromID("Artois Voysey"), "goto", homelocation);
LAi_SetActorType(characterFromID("Artois Voysey"));
LAi_type_actor_Reset(characterFromID("Artois Voysey"));
Characters[GetCharacterIndex("Artois Voysey")].dialog.currentnode = "final_talk";
LAi_ActorDialog(characterFromID("Artois Voysey"), pchar, "Voysey_listed_2", 3.0, 1.0);
LAi_SetImmortal(characterFromID("Artois Voysey"), true);
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");
AddPartyExp(pchar, 5000);
//AddPassenger(Pchar, characterFromID("Artois Voysey"), 0);
break;
case "treasure_found":
AddMoneyToCharacter(PChar, 50000);
Log_SetStringToLog(GlobalStringConvert("QUEST_MESSAGE4"));
AddQuestRecord("artois", "18");
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");
AddPArtyExp(pchar, 7000);
break;<!--c2--></div><!--ec2-->