示例#1
0
文件: salary.c 项目: ekuznets/PKM2
void SkipSailorPayment()
{
	ref mchref = GetMainCharacter();
	int morale = 45;
	if( CheckAttribute(mchref,"Ship.Crew.Morale") ) morale = sti(mchref.Ship.Crew.Morale);
	morale -= nMoraleDecreaseQ;
	if(morale<0)	morale = 0;

	mchref.CrewPayment = nPaymentQ;

	int cn;
	for(int i=0; i<4; i++)
	{
		cn = GetCompanionIndex(mchref,i);
		if(cn>=0)
		{
			Characters[cn].Ship.Crew.Morale = morale;
		}
	}

	if(morale<MORALE_NORMAL)
	{
		if(morale<=I_MIN_MORALE) {
			PostEvent("ievent_GameOver",1,"s","mutiny");
		}
	}
}
示例#2
0
void GameScene::OnRaceFinish()
{
	// Check if all players are finished.
	// If not all players have finished, then we're just entering postgame.

	bool done = true;

	for (int i = 0; i < session->GetNbPlayers(); i++) {
		auto player = session->GetPlayer(i);
		if (!player) continue;  // Player slot may have been vacated.

		auto mchar = player->GetMainCharacter();
		assert(mchar);

		if (!mchar->HasFinish()) {
			done = false;
			break;
		}
	}

	if (done) {
		HR_LOG(info) << "Ending completed session.";
		session->AdvancePhase(ClientSession::Phase::DONE);
		director.GetSessionChangedSignal()(nullptr);
	}
	else {
		session->AdvancePhase(ClientSession::Phase::POSTGAME);
	}
}
示例#3
0
文件: salary.c 项目: ekuznets/PKM2
void CalculateInfoData()
{
	int i,cn,crewQ;
	ref mchref,chref;

	crewQ = 0;
	mchref = GetMainCharacter();
	for(i=0; i<4; i++)
	{
		cn = GetCompanionIndex(mchref,i);
		if( cn>=0 && GetRemovable(&Characters[cn]) )
		{
			chref = GetCharacter(cn);
			crewQ += GetCrewQuantity(chref);
		}
	}

	int nLeaderShip = GetSummonSkillFromName(mchref,SKILL_LEADERSHIP);
	nPaymentQ = 5 + crewQ*(16-nLeaderShip);
	if( CheckAttribute(mchref,"CrewPayment") ) {
		nPaymentQ += makeint( stf(mchref.CrewPayment)*(11.0-SKILL_LEADERSHIP)/10.0 );
	}

	nMoraleDecreaseQ = 30-nLeaderShip;
	if( CheckCharacterPerk(mchref,"IronWill") ) nMoraleDecreaseQ /= 2;

	CreateString(true,"payment",""+nPaymentQ,FONT_NORMAL,COLOR_NORMAL,320,258,SCRIPT_ALIGN_CENTER,1.0);

	if( sti(mchref.Money) < nPaymentQ )
	{
		SetSelectable("B_OK",false);
		SetCurrentNode("B_CANCEL");
	}
}
示例#4
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			
			dialog.snd = "Voice\ENAT\ENAT001";
			Dialog.Text = DLG_TEXT[0];
			Link.l1 = DLG_TEXT[1];
			Link.l1.go = "Second Time";
		break;

		case "Second time":
			dialog.snd = "Voice\ENAT\ENAT002";
			dialog.text = DLG_TEXT[2];
			link.l1 = DLG_TEXT[3];
			link.l1.go = "third time";
		break;

		case "third time":
			dialog.snd = "Voice\ENAT\ENAT003";
			dialog.text = DLG_TEXT[4] + address_form.eng + DLG_TEXT[5];
			link.l1 = DLG_TEXT[6];
			link.l1.go = "exit";
		break;

		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("Story_DanielleOffersToBecomeFortCommander");
			DialogExit();
		break;
	}
}
示例#5
0
//Скорректировать параметры созданного монстра
void LEnc_MonstersLoginCorrectParams(ref location, aref chr, string group, string locator)
{
	bool isSet = false;
	ref mchr = GetMainCharacter();
	int mchr_rank = sti(mchr.rank);
	switch(LEnc_MonstersLoginObject.current)
	{
	case "bandit":
		isSet = true;
		LAi_NPC_Equip(chr, mchr_rank - 3, true, true);
		break;
	case "skeleton":
		isSet = true;
		chr.sex = "skeleton";
		LAi_NPC_Equip(chr, mchr_rank - 2, true, false);
		break;
	case "monkey":
		isSet = true;
		chr.sex = "monkey";
		LAi_type_monkey_Init(chr);
		RemoveCharacterEquip(chr, BLADE_ITEM_TYPE);
		LAi_NPC_Equip(chr, mchr_rank + 3, true, false);
		break;
	case "mummy":
		isSet = true;
		chr.sex = "skeleton";
		LAi_NPC_Equip(chr, mchr_rank, true, false);
		break;
	case "vagabond":
		isSet = true;
		LAi_CharacterReincarnation(chr, false, true);
		LAi_group_MoveCharacter(chr, LAI_DEFAULT_GROUP);
		LAi_type_citizen_Init(chr);
		chr.sex = LEnc_MonstersLoginObject.current.sex;
		chr.dialog.CurrentNode = "First time";
		chr.dialog.TempNode = chr.Dialog.CurrentNode;
		chr.dialog.filename = "Enc_Walker.c";
		RemoveCharacterEquip(chr, BLADE_ITEM_TYPE);
		SetRandomNameToCharacter(chr);
		break;
	}
	if(LEnc_MonstersLoginObject.type == "inca_temple")
	{
		float maxhp = LAi_GetCharacterMaxHP(chr);
		maxhp = maxhp*0.5;
		LAi_SetHP(chr, maxhp, maxhp);
	}
}
示例#6
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "Sit_Look_Around";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "Sit_Look_Around";
			Dialog.cam = "1";
			Dialog.snd = "voice\SNBA\SNBA001";

			Dialog.Text = DLG_TEXT[0];
			Link.l1 = DLG_TEXT[1];
			Link.l1.go = "Exit_fight";

		break;

		case "Exit_fight":

			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;

			AddDialogExitQuest("Lucas_sign_fight2_1");


		break;

	}
}
示例#7
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);

	string iDay, iMonth;
	iDay = environment.date.day;
	iMonth = environment.date.month;
	string lastspeak_date = iday + " " + iMonth;

	int iTest, iTime, iAddTime;

	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Diag.TempNode = "First time";

			if(NPChar.quest.meeting == "0")
			{
				dialog.snd = "Voice\CHWI\CHWI001";
				d.Text = DLG_TEXT[0] + address_form.eng + DLG_TEXT[1];
				Link.l1 = DLG_TEXT[2] + Pchar.name + " " + Pchar.lastname + DLG_TEXT[3];
				Link.l1.go = "meeting";
				NPChar.quest.meeting = "1";
				Dialog.snd = "dialogs\speech\chrar001";
			}
			else
			{
示例#8
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":

			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			dialog.snd = "Voice\BEGU\BEGU001";
			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "Exit";

		break;

		case "Exit":

			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;

		break;
	}
}
示例#9
0
void ProcessDialogEvent()
{
	ref NPChar;
	
	DeleteAttribute(&Dialog,"Links");
	aref Link, NextDiag;
	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);
	int iTest;

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";

			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "exit";
			AddDialogExitQuest("dark_teacher_WANT_kill_YOU");
		break;


		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;
	}
}
示例#10
0
void Minimap::Advance(Util::OS::timestamp_t)
{
    auto track = GetTrack();
    if (!track) return;

    auto &trackOffset = track->GetOffset();

    //TODO: Update all players, not just the current player.
    auto player = GetPlayer();
    if (!player) return;
    auto mchar = player->GetMainCharacter();
    if (!mchar) return;

    auto scale = mapScale * rescale;

    Vec2 pos{
        static_cast<double>(mchar->mPosition.mX),
        static_cast<double>(mchar->mPosition.mY)
    };
    playerIcon->SetColor(player->GetProfile()->GetPrimaryColor());
    playerIcon->SetPos(
        (pos.x - trackOffset.x) * scale.x,
        GetSize().y - ((pos.y - trackOffset.y) * scale.y));
}
示例#11
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);

	switch(Dialog.CurrentNode)
	{
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			dialog.snd = "Voice\ANAC\ANAC001";
			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "node_2";
		break;
		
		case "node_2":
			dialog.snd = "Voice\ANAC\ANAC002";
			dialog.text = DLG_TEXT[2];
			link.l1 = DLG_TEXT[3];
			link.l1.go = "exit";
		break;
		
		case "ask_about_artois":
			dialog.snd = "Voice\ANAC\ANAC003";
			dialog.text = DLG_TEXT[4];
			link.l1 = DLG_TEXT[5];
			link.l1.go = "exit";
			AddDialogExitQuest("Blaze_cop_dialog");
		break;
		
		case "artois_lay":
			dialog.snd = "Voice\ANAC\ANAC004";
			dialog.text = DLG_TEXT[6];
			link.l1 = DLG_TEXT[7];
			link.l1.go = "artois_lay_2";
		break;
		
		case "artois_lay_2":
			dialog.snd = "Voice\ANAC\ANAC005";
			dialog.text = DLG_TEXT[8];
			link.l1 = DLG_TEXT[9];
			link.l1.go = "exit";
			AddDialogExitQuest("fight_for_artois_with_child_of_giens");
		break;
		
		case "doctor":
			dialog.snd = "Voice\ANAC\ANAC006";
			dialog.text = DLG_TEXT[10];
			link.l1 = DLG_TEXT[11];
			link.l1.go = "doctor_2";
		break;
		
		case "doctor_2":
			dialog.snd = "Voice\ANAC\ANAC007";
			dialog.text = DLG_TEXT[12];
			if (makeint(pchar.money)>=2000)
			{
				link.l1 = DLG_TEXT[13];
				link.l1.go = "doctor_3";
			}
			link.l2 = DLG_TEXT[14];
			link.l2.go = "exit_doctor_bad";
		break;
		
		case "doctor_3":
			dialog.snd = "Voice\ANAC\ANAC008";
			dialog.text = DLG_TEXT[15];
			link.l1 = DLG_TEXT[16];
			link.l1.go = "exit_doctor_good";
			link.l2 = DLG_TEXT[17];
			link.l2.go = "exit_doctor_bad";
		break;
		
		case "exit_doctor_good":
			Diag.CurrentNode = Diag.TempNode;
			DialogExit();
			AddDialogExitQuest("exit_doctor_good");
		break;
		
		case "remove":
			if (npchar.alignment == "good")
			{
				dialog.snd = "Voice\ANAC\ANAC009";
				dialog.text = DLG_TEXT[18];
				link.l1 = DLG_TEXT[19];
			}
			else
			{
				dialog.snd = "Voice\ANAC\ANAC010";
				dialog.text = DLG_TEXT[20];
				link.l1 = DLG_TEXT[21];
			}
			link.l1.go = "exit";
			pchar.removed_officer = GetCharacterIndex(npchar.id);
			AddDialogExitQuest("removed_officer_runaway");
			npchar.location = npchar.homelocation;
			npchar.location.group = npchar.homelocation.group;
			npchar.location.locator = npchar.homelocation.locator;
		break;
		
		case "hired_again":
			dialog.snd = "Voice\ANAC\ANAC011";
			dialog.text = DLG_TEXT[22];
			link.l1 = DLG_TEXT[23];
			link.l1.go = "hired_again_2";
		break;
		
		case "hired_again_2":
			dialog.snd = "Voice\ANAC\ANAC012";
			dialog.text = DLG_TEXT[24];
			link.l1 = DLG_TEXT[25];
			link.l1.go = "exit";
			AddPassenger(Pchar, npchar, 0);
			npchar.loyality = 1;
			npchar.dialog.filename = npchar.selfdialog.filename;
			npchar.dialog.currentnode = npchar.selfdialog.currentnode;
		break;
		
		case "exit_doctor_bad":
			Diag.CurrentNode = Diag.TempNode;
			DialogExit();
			AddDialogExitQuest("exit_doctor_bad");
		break;

		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			DialogExit();
		break;
		
		case "prepare_convoy_quest":
			dialog.text = DLG_TEXT[26];
			link.l1 = DLG_TEXT[27];
			link.l1.go = "prepare_convoy_quest_2";
		break;
		
		case "prepare_convoy_quest_2":
			dialog.text = DLG_TEXT[28];
			link.l1 = DLG_TEXT[29];
			link.l1.go = "prepare_convoy_quest_3";
		break;
		
		case "prepare_convoy_quest_3":
			/*Diag.CurrentNode = Diag.TempNode;
			DialogExit();
			AddDialogExitQuest("prepare_gen_convoy_quest");
		break;
		
		case "prepare_convoy_quest_4":*/
			GenerateConvoyQuest();
			dialog.text = DLG_TEXT[30] + pchar.quest.destination + DLG_TEXT[31] + pchar.quest.convoymoney + DLG_TEXT[32];
			link.l1 = DLG_TEXT[33];
			link.l1.go = "convoy_agreeded";
			link.l2 = DLG_TEXT[34];
			link.l2.go = "convoy_refused";
		break;
		
		case "convoy_refused":
			Diag.CurrentNode = Diag.TempNode;
			DialogExit();
			AddDialogExitQuest("convoy_refused");
		break;
		
		case "convoy_agreeded":
			Diag.CurrentNode = Diag.TempNode;
			DialogExit();
			AddDialogExitQuest("convoy_agreeded");
		break;
		
		case "complete_convoy_quest":
			dialog.text = DLG_TEXT[35];
			Link.l1 = DLG_TEXT[36];
			link.l1.go = "exit";
			AddDialogExitQuest("convoy_refused");
		break;
	}
} 
示例#12
0
void ProcessDialogEvent()
{
	ref NPChar;

	DeleteAttribute(&Dialog,"Links");

	aref Link, NextDiag;
	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);
	int iTest;
	itest = 0;

	ref PChar;
	PChar = GetMainCharacter();

	switch(Dialog.CurrentNode)
	{

		// -----------------------------------ƒиалог первый - перва¤ встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";

			if (Characters[GetCharacterIndex("Milon Blacque")].quest.first_talk == "1")
			{
				Dialog.Text = DLG_TEXT[0] + Address_Form.Fra + DLG_TEXT[1] + Characters[GetCharacterIndex(DLG_TEXT[2])].name + DLG_TEXT[3];
				Link.l1 = DLG_TEXT[4];
				Link.l1.go = "exit";
				Link.l2 = DLG_TEXT[5];
				Link.l2.go = "MilonTalk_1";
			}
			else
			{
				Dialog.Text = DLG_TEXT[6] + Address_Form.Fra + DLG_TEXT[7];
				Link.l1 = DLG_TEXT[8] + PChar.ship.name + DLG_TEXT[9];
				Link.l1.go = "node_2";
				NextDiag.TempNode = "Second Time";
			}
		break;

		case "node_2":
			Dialog.Text = DLG_TEXT[10];
			Link.l1 = DLG_TEXT[11];
			Link.l1.go = "node_3";
		break;

		case "node_3":
			Dialog.Text = DLG_TEXT[12];
			Link.l1 = DLG_TEXT[13];
			Link.l1.go = "node_4";
		break;

		case "node_4":
			Dialog.Text = DLG_TEXT[14] + Address_Form.Fra + DLG_TEXT[15] + NPChar.name + " " + NPChar.lastname + DLG_TEXT[16];
			Link.l1 = DLG_TEXT[17] + PChar.name + " " + PChar.lastname + DLG_TEXT[18] + PChar.ship.name + DLG_TEXT[19];
			Link.l1.go = "node_5";
		break;

		case "node_5":
			Dialog.Text = DLG_TEXT[20] + Address_Form.fra + DLG_TEXT[21];
			Link.l1 = DLG_TEXT[22];
			Link.l1.go = "node_6";
		break;

		case "node_6":
			Dialog.Text = DLG_TEXT[23];
			Link.l1 = DLG_TEXT[24];
			Link.l1.go = "node_7";
			if (makeint(PChar.money) > 1)
			{
				Link.l2 = DLG_TEXT[25];
				Link.l2.go = "node_9";
			}
		break;

		case "node_7":
			Dialog.Text = DLG_TEXT[26] + Address_Form.Fra + DLG_TEXT[27];
			Link.l1 = DLG_TEXT[28];
			Link.l1.go = "Exit";
			if (makeint(PChar.money) > 1)
			{
				Link.l2 = DLG_TEXT[29];
				Link.l2.go = "node_9";
			}
		break;

		case "node_9":
			AddMoneyToCharacter(pchar, -1);
			Dialog.Text = DLG_TEXT[30] + Address_Form.Fra + DLG_TEXT[31];
			Link.l1 = DLG_TEXT[32];
			if (Characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers == "0")
			{
				Link.l1.go = "node_10";
			}
			else 
			{
				if (Characters[GetCharacterIndex("Thierry Bosquet")].quest.gambling == "0")
				{
					Link.l1.go = "node_12";
				}

				else
				{
					Link.l1.go = "rumours";
				}
			}
		break;

		case "node_10":
			Dialog.Text = DLG_TEXT[33] + Characters[GetCharacterIndex(DLG_TEXT[34])].name + " " + Characters[GetCharacterIndex(DLG_TEXT[35])].lastname + DLG_TEXT[36];
			Characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers = "1";
			Link.l1 = DLG_TEXT[37];
			Link.l1.go = "node_11";
			Link.l2 = DLG_TEXT[38];
			Link.l2.go = "port watcher";
		break;

		case "node_11":
			Dialog.Text = DLG_TEXT[39];
			Link.l1 = DLG_TEXT[40];
			Link.l1.go = "node_12";
			Link.l2 = DLG_TEXT[41] + NPChar.name + DLG_TEXT[42];
			Link.l2.go = "exit";
		break;

		case "node_12":
			Dialog.Text = DLG_TEXT[43];
			Link.l1 = DLG_TEXT[44];
			Link.l1.go = "exit";
			Link.l2 = DLG_TEXT[45];
			Link.l2.go = "node_13";
		break;

		case "node_13":
			Dialog.Text = DLG_TEXT[46];
			Link.l1 = DLG_TEXT[47];
			Link.l1.go = "exit";
			Link.l2 = DLG_TEXT[48];
			Link.l2.go = "Rumours";
		break;

		case "port watcher":
			Dialog.Text = DLG_TEXT[49];
			Link.l1 = DLG_TEXT[50];
			Link.l1.go = "exit";
			Link.l2 = DLG_TEXT[51];
			Link.l2.go = "node_12";
		break;

		// -----------------------------------ƒиалог если игрок поговорил с Milon Blacque
		case "MilonTalk_1":
			Dialog.Text = DLG_TEXT[52] + Address_Form.Fra + DLG_TEXT[53] + Characters[GetCharacterIndex(DLG_TEXT[54])].name + DLG_TEXT[55];
			Link.l1 = DLG_TEXT[56];
			Link.l1.go = "MilonTalk_11";
		break;

		case "MilonTalk_11":
			Dialog.Text = DLG_TEXT[57];
			Link.l1 = DLG_TEXT[58];
			Link.l1.go = "exit";
			Link.l2 = DLG_TEXT[59];
			Link.l2.go = "MilonTalk_2";
		break;

		case "MilonTalk_2":
			Dialog.Text = DLG_TEXT[60];
			Link.l1 = DLG_TEXT[61];
			Link.l1.go = "MilonTalk_3";
		break;

		case "MilonTalk_3":
			Characters[GetCharacterIndex("Milon Blacque")].quest.first_talk = "done";
			Dialog.Text = DLG_TEXT[62] + Characters[GetCharacterIndex(DLG_TEXT[63])].name + DLG_TEXT[64];
			Link.l1 = DLG_TEXT[65];
			Link.l1.go = "Exit";
			Link.l2 = DLG_TEXT[66];
			Link.l2.go = "node_6";
		break;

		// -----------------------------------ƒиалог при последующих встречах
		case "Second Time":
			if (Characters[GetCharacterIndex("Milon Blacque")].quest.first_talk == "1")
			{
				Dialog.Text = DLG_TEXT[67] + Address_Form.Fra + DLG_TEXT[68] + Characters[GetCharacterIndex(DLG_TEXT[69])].name + DLG_TEXT[70];
				Link.l1 = DLG_TEXT[71];
				Link.l1.go = "exit";
				Link.l2 = DLG_TEXT[72];
				Link.l2.go = "MilonTalk_1";
			}
			else
			{
				Dialog.Text = DLG_TEXT[73] + Address_Form.Fra + DLG_TEXT[74];
				Link.l1 = DLG_TEXT[75];
				if (Characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers == "0")
				{
					Link.l1.go = "node_10";
				}
				else 
				{
					if (Characters[GetCharacterIndex("Thierry Bosquet")].quest.gambling == "0")
					{
						Link.l1.go = "node_12";
					}

					else
					{
						Link.l1.go = "rumours";
					}
				}
				iTest = iTest + 1;
				if ((Characters[GetCharacterIndex("rachel Blacque")].quest.badguy == "1")&&(iTest < QUEST_COUNTER))
				{
					Link.l2 = DLG_TEXT[76] + characters[getCharacterIndex(DLG_TEXT[77])].name + DLG_TEXT[78];
					Link.l2.go = "Rachel";
					iTest = iTest + 1;
				}
				if ((characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers == "teodoro")&&(iTest < QUEST_COUNTER))
				{
					dialog.text = DLG_TEXT[79] + address_form.fra + DLG_TEXT[80];
					link.l3 = pcharrepphrase(DLG_TEXT[81], DLG_TEXT[82]);
					link.l3.go = "smugglers";
					iTest = iTest + 1;
				}
				Link.l99 = DLG_TEXT[83];
				Link.l99.go = "exit";
			}
		break;

		case "smugglers":
			dialog.text = DLG_TEXT[84] + address_form.fra + DLG_TEXT[85];
			link.l1 = pcharrepphrase(DLG_TEXT[86], DLG_TEXT[87]);
			link.l1.go = "smugglers_1";
		break;

		case "smugglers_1":
			dialog.text = DLG_TEXT[88];
			link.l1 = pcharrepphrase(DLG_TEXT[89], DLG_TEXT[90]);
			link.l1.go = "smugglers_2";
		break;

		case "smugglers_2":
			dialog.text = DLG_TEXT[91];
			link.l1 = pcharrepphrase(DLG_TEXT[92], DLG_TEXT[93]);
			link.l1.go = "smugglers_3";
		break;

		case "smugglers_3":
			dialog.text = DLG_TEXT[94];
			link.l1 = pcharrepphrase(DLG_TEXT[95], DLG_TEXT[96]);
			link.l1.go = "exit";
			///////////////////////////////////////////////
			//активизируем ветку, когда на игрока нападают!
			characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers = "orable";
			///////////////////////////////////////////////
			link.l2 = pcharrepphrase(DLG_TEXT[97], DLG_TEXT[98]);
			link.l2.go = pcharrepphrase("smugglers_good", "smugglers_bad");
		break;

		case "smugglers_good":
			dialog.text = DLG_TEXT[99] + address_form.fra + DLG_TEXT[100];
			if (makeint(pchar.money)>=500)
			{
				link.l1 = DLG_TEXT[101];
				link.l1.go = "smugglers_good_1";
			}
			link.l2 = DLG_TEXT[102];
			link.l2.go = "smugglers_good_denied";
		break;

		case "smugglers_good_denied":
			dialog.text = DLG_TEXT[103] + address_form.fra + DLG_TEXT[104];
			link.l1 = DLG_TEXT[105];
			characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers = "orable";
		break;

		case "smugglers_good_1":
			dialog.text = DLG_TEXT[106] + characters[GetCharacterIndex(DLG_TEXT[107])].name + " " + characters[GetCharacterIndex(DLG_TEXT[108])].lastname + DLG_TEXT[109];
			link.l1 = DLG_TEXT[110];
			link.l1.go = "exit";
			AddMoneyToCharacter(pchar, -500);
			characters[GetCharacterIndex("Turpin Cabanel")].quest.smugglers = "orable_truth";
		break;

		case "smugglers_bad":
			dialog.text = DLG_TEXT[111];
			link.l1 = DLG_TEXT[112];
			link.l1.go = "smugglers_bad_1";
		break;

		case "smugglers_bad_1":
			dialog.text = DLG_TEXT[113];
			link.l1 = DLG_TEXT[114];
			link.l1.go = "smugglers_bad_2";
		break;

		case "smugglers_bad_2":
			dialog.text = DLG_TEXT[115];
			link.l1 = DLG_TEXT[116];
			link.l1.go = "smugglers_good_1";
		break;

		case "Rumours":
			Dialog.Text = SelectRumour();
			Link.l1 = DLG_TEXT[117];
			Link.l1.go = "exit";
		break;

		case "Rachel":
			Dialog.Text = DLG_TEXT[118] + Address_Form.Fra + DLG_TEXT[119];
			Link.l1 = DLG_TEXT[120];
			Link.l1.go = "Rachel_good";
			Link.l2 = DLG_TEXT[121];
			Link.l2.go = "Rachel_bad";
		break;

		case "Rachel_good":
			Dialog.Text = DLG_TEXT[122];
			Link.l1 = DLG_TEXT[123];
			Link.l1.go = "exit";
			Characters[GetCharacterIndex("Rachel Blacque")].quest.badguy = "done";
		break;

		case "Rachel_bad":
			Dialog.Text = DLG_TEXT[124] + Address_Form.Fra + DLG_TEXT[125];
			Link.l1 = DLG_TEXT[126];
			Link.l1.go  = "Rachel_good";
			Link.l2 = DLG_TEXT[127];
			Link.l2.go = "Rachel_bad_2";
		break;

		case "Rachel_bad_2":
			Dialog.Text = DLG_TEXT[128];
			Link.l1 = DLG_TEXT[129] + Characters[GetCharacterIndex(DLG_TEXT[130])].name + DLG_TEXT[131];
			Link.l1.go = "Rachel_bad_3";
		break;

		case "Rachel_bad_3":
			Dialog.Text = DLG_TEXT[132] + Address_Form.Fra + DLG_TEXT[133];
			Link.l1 = DLG_TEXT[134];
			Link.l1.go = "exit";
			Characters[GetCharacterIndex("Rachel Blacque")].quest.badguy = "money";
			NextDiag.TempNode = "MilonTalk";
			characters[GetCharacterIndex("Rachel Blacque")].location = "none";
			npchar.location = "none";
			Rumour[3].state = "active";
		break;

		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;

	}
}
示例#13
0
文件: salary.c 项目: ekuznets/PKM2
void ExecuteSailorPayment()
{
	AddMoneyToCharacter(GetMainCharacter(),-nPaymentQ);
	DeleteAttribute(GetMainCharacter(),"CrewPayment");
}
示例#14
0
void ProcessDialogEvent()
{
	ref NPChar;
	
	DeleteAttribute(&Dialog,"Links");
	aref Link, NextDiag;
	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);
	int iTest;

	string iDay, iMonth;
	iDay = environment.date.day;
	iMonth = environment.date.month;
	string lastspeak_date = iday + " " + iMonth;

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			dialog.snd = "Voice\ARMA\ARMA001";
			dialog.text = DLG_TEXT[0];
			link.l1 = pcharrepphrase(DLG_TEXT[1], DLG_TEXT[2]);
			link.l1.go = "exit";
			
			if ((characters[GetCharacterIndex("Sabine Matton")].quest.hire != "ransom") && (characters[GetCharacterIndex("Sabine Matton")].quest.hire != "enemy_forever") && (pchar.location == "Falaise_de_Fleur_store"))
			{
				dialog.snd1 = "Voice\ARMA\ARMA002";
				dialog.snd2 = "Voice\ARMA\ARMA003";
				dialog.snd3 = "Voice\ARMA\ARMA004";
				Dialog.Text = randphrase(DLG_TEXT[3] + Address_form.Fra + DLG_TEXT[4], DLG_TEXT[5] + Address_Form.Fra + DLG_TEXT[6], DLG_TEXT[7], &dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				Link.l1 = DLG_TEXT[8];
				Link.l1.go = "market"; 
				link.l2 = DLG_TEXT[9];
				link.l2.go = "exit";
				if (characters[GetCharacterIndex("Sabine Matton")].quest.hire != "was_captured_done")
				{
					link.l3 = DLG_TEXT[10];
					link.l3.go = "quests";
				}
			}
			if ((characters[GetCharacterIndex("Sabine Matton")].quest.hire == "ransom_1")&&(pchar.location == "Falaise_De_Fleur_shore")) // разговор на пляже
			{
				dialog.snd = "Voice\ARMA\ARMA005";
				dialog.text = DLG_TEXT[11] + Characters[GetCharacterIndex(DLG_TEXT[12])].name + DLG_TEXT[13];
				link.l1 = pcharrepphrase(DLG_TEXT[14], DLG_TEXT[15]);
				link.l1.go = "ransom_money";
				link.l2 = pcharrepphrase(DLG_TEXT[16], DLG_TEXT[17]);
				link.l2.go = "ransom_bad";
			}
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "enemy_forever_1")
			{
				dialog.snd = "Voice\ARMA\ARMA006";
				dialog.text = DLG_TEXT[18];
				link.l1 = pcharrepphrase(DLG_TEXT[19], DLG_TEXT[20]);
				link.l1.go = "exit";
			}
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "danielle_on_ship_1")
			{
				dialog.snd = "Voice\ARMA\ARMA007";
				dialog.text = DLG_TEXT[21];
				link.l3 = pcharrepphrase(DLG_TEXT[22], DLG_TEXT[23]);
				link.l3.go = "exit";
				link.l4 = pcharrepphrase(DLG_TEXT[24], DLG_TEXT[25]);
				link.l4.go = "danielle_daughter_1";
			}
			NextDiag.TempNode = "First time";
		break;

		case "quests":
			iTest = 0;
			dialog.snd = "Voice\ARMA\ARMA008";
			Dialog.text = DLG_TEXT[26];
			//////////////////////////////
			// Выдача квестов
			//////////////////////////////
			if (npchar.quest_begin == "100")
			{
				Link.l1 = DLG_TEXT[27];
				if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "blaze_begin_1" && makeint(pchar.reputation) > 40)
				{
					link.l1.go = "daughter";
				}
				if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire == "10000")
				{
					link.l1.go = "baldewyn";
				}
				if (npchar.quest.to_redmond_1 == "0" && !(GetNationRelation2MainCharacter(FRANCE) == RELATION_ENEMY))
				{
					link.l1.go = "node_1";
				}
				
			}
			if (CheckAttribute(pchar, "quest.iQuantityGoods"))
			{
				int iQuantityShipGoods = pchar.quest.iQuantityGoods;
				int iQuestTradeGoods = pchar.quest.iTradeGoods;
			}
			if (CheckQuestAttribute("generate_trade_quest_progress", "begin") || CheckQuestAttribute("generate_trade_quest_progress",  "failed"))
			{
				if (CheckQuestAttribute("iTradeNation", npchar.nation) &&  GetSquadronGoods(pchar, iQuestTradeGoods) >= iQuantityShipGoods)
				{
					dialog.snd = "Voice\ARMA\ARMA009";
					dialog.text = DLG_TEXT[28];
					link.l1 = DLG_TEXT[29];
					link.l1.go = "generate_quest_2";
				}
			}
			else
			{
				if (!CheckQuestAttribute("generate_trade_quest_progress", "begin"))
				{
					link.l2 = DLG_TEXT[30];
					link.l2.go = "generate_quest";
				}
			}
			
			//////////////////////////////
			// ПРИЕМ КВЕСТОВ
			//////////////////////////////
			//////////////////////////////
			// Квест балдуина Кофье
			//////////////////////////////
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "not_money" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[31], DLG_TEXT[32]);
				link.l2.go = "baldewyn_done";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "not_money_2" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[33], DLG_TEXT[34] + characters[GetCharacterIndex(DLG_TEXT[35])].name + DLG_TEXT[36]);
				link.l2.go = "baldewyn_done";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "not_money_3" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[37], DLG_TEXT[38]);
				link.l2.go = "money_1";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "money_1" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[39], DLG_TEXT[40]);
				link.l2.go = "baldewyn_work_done";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "money_4" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[41] + Characters[GetCharacterIndex(DLG_TEXT[42])].name + " " + Characters[GetCharacterIndex(DLG_TEXT[43])].lastname + DLG_TEXT[44], DLG_TEXT[45] + characters[GetCharacterIndex(DLG_TEXT[46])].name + DLG_TEXT[47]);
				link.l2.go = "baldewyn_work_done_one";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire ==  "money_2" && iTest < QUEST_COUNTER)
			{
				link.l2 = pcharrepphrase(DLG_TEXT[48], DLG_TEXT[49] + characters[GetCharacterIndex(DLG_TEXT[50])] + DLG_TEXT[51]);
				link.l2.go = "baldewyn_guard";
				iTest = iTest + 1;
			}
			//////////////////////////////
			// Конец квеста балдуина Кофье
			//////////////////////////////
			if (npchar.quest.to_redmond_1 ==  "cargo_done_1" && iTest < QUEST_COUNTER)
			{
				link.l3 = pcharrepphrase(DLG_TEXT[52], DLG_TEXT[53] + npchar.name + DLG_TEXT[54]);
				link.l3.go = "redmond_done";
				iTest = iTest + 1;
			}
			if (npchar.quest.to_redmond_1 ==  "cargo_not_done_1" && iTest < QUEST_COUNTER)
			{
				Link.l3 = pcharrepphrase(DLG_TEXT[55], DLG_TEXT[56]);
				link.l3.go = "redmond_quest";
				iTest = iTest + 1;
			}
			if (Characters[GetCharacterIndex("Thomas O'Reily")].quest.first_job == "100" && GetSquadronGoods(PChar,GOOD_SILK)>= 200 && iTest < QUEST_COUNTER)
			{	
				Link.l4 = pcharrepphrase(DLG_TEXT[57] + Characters[GetCharacterIndex(DLG_TEXT[58])].name + Characters[GetCharacterIndex(DLG_TEXT[59])].lastname + DLG_TEXT[60], characters[GetCharacterIndex(DLG_TEXT[61])].name + DLG_TEXT[62]);
				Link.l4.go = "First_job_done";
				iTest = iTest + 1;
			}
			//////////////////////////////
			// Квест про дочку Арно Маттона
			//////////////////////////////
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire ==  "almost_done_1" && iTest < QUEST_COUNTER)
			{
				link.l5 = DLG_TEXT[63];
				link.l5.go = "daughter_done";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "almost_done_ransom_1" && iTest < QUEST_COUNTER)
			{
				link.l5 = DLG_TEXT[64];
				link.l5.go = "daughter_done_1";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "almost_done_ransom_free_1" && iTest < QUEST_COUNTER)
			{
				link.l5 = pcharrepphrase(DLG_TEXT[65], DLG_TEXT[66]);
				link.l5.go = "daughter_done_1";
				iTest = iTest + 1;
			}
			if (characters[GetCharacterIndex("Sabine Matton")].quest.hire == "captured_by_blaze_1" || characters[GetCharacterIndex("Sabine Matton")].quest.hire == "captured_by_blaze_again" && iTest < QUEST_COUNTER)
			{
				Link.l5 = pcharrepphrase(DLG_TEXT[67], DLG_TEXT[68]);
				Link.l5.go = "ransom";
			}
			//////////////////////////////
			// Конец квеста про дочку Арно маттона
			//////////////////////////////
			Link.l99 = DLG_TEXT[69];
			Link.l99.go = "exit";
		break;

		case "danielle_daughter_1":
			dialog.snd = "Voice\ARMA\ARMA010";
			dialog.text = DLG_TEXT[70];
			link.l1 = pcharrepphrase(DLG_TEXT[71], DLG_TEXT[72]);
			link.l1.go = "danielle_daughter_2";
			link.l2 = pcharrepphrase(DLG_TEXT[73], DLG_TEXT[74]);
			link.l2.go = "ransom_1";
		break;

		case "danielle_daughter_2":
			dialog.snd = "Voice\ARMA\ARMA011";
			dialog.text = DLG_TEXT[75];
			link.l1 = pcharrepphrase(DLG_TEXT[76], DLG_TEXT[77]);
			link.l1.go = "danielle_daughter_3";
		break;

		case "danielle_daughter_3":
			dialog.snd = "Voice\ARMA\ARMA012";
			dialog.text = DLG_TEXT[78];
			link.l1 = pcharrepphrase(DLG_TEXT[79], DLG_TEXT[80]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "done";
			RemovePassenger(pchar, &characters[GetCharacterIndex("Sabine Matton")]);
			pchar.experience = makeint(pchar.experience) + 100;
		break;

		case "ransom_bad":
			dialog.snd = "Voice\ARMA\ARMA013";
			dialog.text = DLG_TEXT[81];
			link.l1 = pcharrepphrase(DLG_TEXT[82], DLG_TEXT[83]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "enemy_forever";
			ChangeCharacterReputation(pchar, -2);
			///////////////////////////////////////////////////////////////////////////
			// Арно уходит, а за нами начинается охотиться 1 фрегат и 2 наемных убийцы, плюс Франция становится враждебной.
			///////////////////////////////////////////////////////////////////////////
		break;

		case "ransom_money":
			dialog.snd = "Voice\ARMA\ARMA014";
			dialog.text = DLG_TEXT[84];
			link.l1 = pcharrepphrase(DLG_TEXT[85], DLG_TEXT[86]);
			link.l1.go = "ransom_money_1";
			link.l2 = pcharrepphrase(DLG_TEXT[87], DLG_TEXT[88]);
			link.l2.go = "ransom_bad";
		break;

		case "ransom_money_1":
			dialog.snd = "Voice\ARMA\ARMA015";
			dialog.text = DLG_TEXT[89];
			link.l1 = pcharrepphrase(DLG_TEXT[90], DLG_TEXT[91]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "was_captured_done";
			ChangeCharacterReputation(pchar, -1);
			AddMoneyToCharacter(pchar, 5000);
			RemovePassenger(pchar, Characters[GetCharacterIndex("Sabine Matton")]);
			//fading();
			ChangeCharacterAddress(&characters[GetCharacterIndex("Sabine Matton")], "shore1","citizen06"); //появление девушки.
			npchar.location	= "Falaise_de_Fleur_store";
			npchar.location.locator = "locator4";
			characters[GetCharacterIndex("Sabine Matton")].location = "none";
		break;

		case "ransom":
			dialog.snd = "Voice\ARMA\ARMA016";
			dialog.text = DLG_TEXT[92];
			link.l1 = pcharrepphrase(DLG_TEXT[93], DLG_TEXT[94]);
			link.l1.go = "ransom_1";
		break;

		case "ransom_1":
			dialog.snd = "Voice\ARMA\ARMA017";
			dialog.text = DLG_TEXT[95];
			link.l1 = pcharrepphrase(DLG_TEXT[96], DLG_TEXT[97]);
			link.l1.go = "ransom_stupid";
			link.l2 = pcharrepphrase(DLG_TEXT[98], DLG_TEXT[99]);
			link.l2.go = "ransom_2";
		break;

		case "ransom_2":
			dialog.snd = "Voice\ARMA\ARMA018";
			dialog.text = DLG_TEXT[100];
			link.l1 = pcharrepphrase(DLG_TEXT[101], DLG_TEXT[102]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "ransom";
			npchar.location = "shore1";
			npchar.location.locator = "citizen05";
		break;

		case "ransom_stupid":
			dialog.snd = "Voice\ARMA\ARMA019";
			dialog.text = DLG_TEXT[103];
			link.l1 = DLG_TEXT[104];
			link.l1.go = "exit";
			///////////////////////////////////////////////////////////////////////
			// Появление девушки, перезагрузка локейшена. Франция враждебна. Драка. 
			///////////////////////////////////////////////////////////////////////
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "enemy_forever";
			ChangeCharacterReputation(pchar, -1);
		break;

		case "daughter_done":
			dialog.snd = "Voice\ARMA\ARMA020";
			dialog.text = DLG_TEXT[105];
			link.l1 = pcharrepphrase(DLG_TEXT[106], DLG_TEXT[107]);
			link.l1.go = "trade_guild";
			link.l2 = pcharrepphrase(DLG_TEXT[108], DLG_TEXT[109]);
			link.l2.go = "exit";
			npchar.quest_begin = "0";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "done";
			characters[GetCharacterIndex("Sabine Matton")].quest.love = "1";
		break;

		case "daughter_done_1":
			dialog.snd = "Voice\ARMA\ARMA021";
			dialog.text = DLG_TEXT[110];
			link.l1 = pcharrepphrase(DLG_TEXT[111], DLG_TEXT[112]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "was_captured_done";
			npchar.quest_begin = "0";
			npchar.skill.commerce = makeint(npchar.skill.commerce) + 2;
		break;

		////////////////////////////////////////////////
		// TRADE GUILD QUEST
		////////////////////////////////////////////////
		case "trade_guild":
			link.l1 = DLG_TEXT[113];
			link.l1.go = "exit";
		break;
		////////////////////////////////////////////////
		// END OF TRADE GUILD QUEST
		////////////////////////////////////////////////

		case "daughter":
			dialog.snd = "Voice\ARMA\ARMA022";
			dialog.text = DLG_TEXT[114];
			link.l1 = DLG_TEXT[115];
			link.l1.go = "daughter_1";
		break;

		case "daughter_1":
			dialog.snd = "Voice\ARMA\ARMA023";
			dialog.text = DLG_TEXT[116];
			link.l1 = DLG_TEXT[117];
			link.l1.go = "daughter_2";
		break;

		case "daughter_2":
			dialog.snd = "Voice\ARMA\ARMA024";
			dialog.text = DLG_TEXT[118];
			link.l1 = DLG_TEXT[119];
			link.l1.go = "daughter_3";
		break;

		case "daughter_3":
			dialog.snd = "Voice\ARMA\ARMA025";
			dialog.text = DLG_TEXT[120];
			link.l1 = DLG_TEXT[121];
			link.l1.go = "daughter_4";
		break;

		case "daughter_4":
			dialog.snd = "Voice\ARMA\ARMA026";
			dialog.text = DLG_TEXT[122];
			link.l1 = DLG_TEXT[123];
			link.l1.go = "daughter_5";
		break;

		case "daughter_5":
			dialog.snd = "Voice\ARMA\ARMA027";
			dialog.text = DLG_TEXT[124];
			link.l1 = DLG_TEXT[125];
			link.l1.go = "daughter_6";
		break;

		case "daughter_6":
			dialog.snd = "Voice\ARMA\ARMA028";
			dialog.text = DLG_TEXT[126] + Characters[GetCharacterIndex(DLG_TEXT[127])].name + " " + Characters[GetCharacterIndex(DLG_TEXT[128])].lastname + DLG_TEXT[129];
			link.l1 = DLG_TEXT[130];
			link.l1.go = "daughter_9";
			link.l2 = DLG_TEXT[131];
			link.l2.go = "daughter_7";
			link.l3 = DLG_TEXT[132];
			link.l3.go = "daughter_denied";
		break;

		case "daughter_7":
			dialog.snd = "Voice\ARMA\ARMA029";
			dialog.text = DLG_TEXT[133];
			link.l1 = DLG_TEXT[134];
			link.l1.go = "daughter_8";
			link.l2 = DLG_TEXT[135];
			link.l2.go = "daughter_denied";
		break;

		case "daughter_8":
			dialog.snd = "Voice\ARMA\ARMA030";
			dialog.text = DLG_TEXT[136];
			link.l1 = DLG_TEXT[137];
			link.l1.go = "daughter_9";
			AddMoneyToCharacter(pchar, 1500);
		break;

		case "daughter_9":
			dialog.snd = "Voice\ARMA\ARMA031";
			dialog.text = DLG_TEXT[138] + characters[GetCharacterIndex(DLG_TEXT[139])].name + " " + characters[GetCharacterIndex(DLG_TEXT[140])].lastname + DLG_TEXT[141];
			link.l1 = DLG_TEXT[142];
			link.l1.go = "daughter_10";
		break;

		case "daughter_10":
			dialog.snd = "Voice\ARMA\ARMA032";
			dialog.text = DLG_TEXT[143];
			link.l1 = DLG_TEXT[144] + pchar.ship.name + DLG_TEXT[145];
			link.l1.go = "exit";
			//////////////////////////////////
			//ADD_LETTER
			//////////////////////////////////
			characters[GetCharacterIndex("Sabine Matton")].quest.hire = "blaze_on_ship";
			npchar.quest_begin = "1";
			AddPassenger(pchar, &characters[GetCharacterIndex("Sabine Matton")], 0);
			ChangeCharacterAddress(&characters[GetCharacterIndex("Sabine Matton")], "none", "none");
		break;

		case "daughter_denied":
			dialog.snd = "Voice\ARMA\ARMA033";
			dialog.text = DLG_TEXT[146];
			link.l1 = DLG_TEXT[147];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[148];
			link.l2.go = "First time";
			characters[GetCharacterIndex("Sabine Matton")].quest = "done";
		break;

		case "baldewyn_work_done":
			AddMoneyToCharacter(pchar, -2500));
			dialog.snd = "Voice\ARMA\ARMA034";
			dialog.text = DLG_TEXT[149];
			link.l1 = pcharrepphrase(DLG_TEXT[150], DLG_TEXT[151]);
			link.l1.go = "arnaud_bad_guy";
			link.l2 = pcharrepphrase(DLG_TEXT[152], DLG_TEXT[153]);
			link.l2.go = "exit";
			link.l3 = pcharrepphrase(DLG_TEXT[154], DLG_TEXT[155]);
			link.l3.go = "First time";
			AddMoneyToCharacter(pchar, makeint(npchar.money.quest));
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "almost_done_1";
			npchar.quest_begin = "0";
			npchar.quest.money = "0";
			Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
		break;

		case "baldewyn_work_done_one":
			dialog.snd = "Voice\ARMA\ARMA035";
			dialog.text = DLG_TEXT[156];
			link.l2 = pcharrepphrase(DLG_TEXT[157], DLG_TEXT[158]);
			link.l2.go = "exit";
			link.l3 = pcharrepphrase(DLG_TEXT[159], DLG_TEXT[160]);
			link.l3.go = "First time";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "almost_done_1";
			AddMoneyToCharacter(pchar, -2000);
			Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
		break;

		case "money_1":
			dialog.snd = "Voice\ARMA\ARMA036";
			dialog.text = DLG_TEXT[161];
			link.l1 = DLG_TEXT[162];
			link.l1.go = "money_2";
			link.l2 = DLG_TEXT[163];
			link.l2.go = "arnaud_bad_guy";
		break;

		case "arnaud_bad_guy":
			dialog.snd = "Voice\ARMA\ARMA037";
			dialog.text = DLG_TEXT[164];
			link.l1 = DLG_TEXT[165];
			link.l1.go = "arnaud_bad_guy_1";
			link.l2 = DLG_TEXT[166];
			link.l2.go = "exit";
		break;

		case "arnaud_bad_guy_1":
			dialog.snd = "Voice\ARMA\ARMA038";
			dialog.text = DLG_TEXT[167];
			link.l1 = DLG_TEXT[168];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[169];
			link.l2.go = "First Time";
		break;

		case "money_2":
			dialog.snd = "Voice\ARMA\ARMA039";
			dialog.text = DLG_TEXT[170];
			link.l1 = DLG_TEXT[171];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[172];
			link.l2.go = "First time";
			AddMoneyToCharacter(pchar, makeint(npchar.money.quest));
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "money_3";
			npchar.quest_begin = "0";
			npchar.quest.money = "0";
			Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
		break;

		case "baldewyn_guard":
			dialog.snd = "Voice\ARMA\ARMA040";
			dialog.text = DLG_TEXT[173] + Address_Form.fra + DLG_TEXT[174];
			link.l1 = DLG_TEXT[175];
			link.l1.go = "exit";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "done";
			npchar.quest_begin = "0";
			npchar.quest.money = "0";
			Rumour[4].state = "active";
			characters[GetCharacterIndex("Sabine Matton")].location = "none";
		break;

		case "first_job_done":
			Characters[GetCharacterIndex("Thomas O'Reily")].quest.first_job = "complete";
			dialog.snd = "Voice\ARMA\ARMA041";
			dialog.Text = DLG_TEXT[176];
			Link.l1 = DLG_TEXT[177];
			Link.l1.go = "First_job_done_1";
		break;

		case "First_job_done_1":
			dialog.snd = "Voice\ARMA\ARMA042";
			dialog.Text = DLG_TEXT[178] + address_form.fra + DLG_TEXT[179];
			Link.l1 = DLG_TEXT[180];
			Link.l1.go = "First_job_done_2";
		break;

		case "First_job_done_2":
			RemoveCharacterGoods(PChar,GOOD_SILK, 100);
			RemoveCharacterGoods(PChar,GOOD_RUM, 100);
			RemoveCharacterGoods(PChar,GOOD_PAPRIKA, 100);
			dialog.snd = "Voice\ARMA\ARMA043";
			dialog.Text = DLG_TEXT[181] + address_form.fra + " " + PChar.name + DLG_TEXT[182];
			Link.l1 = DLG_TEXT[183];
			Link.l1.go = "exit";
		break;

		case "redmond_quest":
			dialog.snd = "Voice\ARMA\ARMA044";
			Dialog.text = DLG_TEXT[184];
			link.l1 = DLG_TEXT[185];
			link.l1.go = "redmond_not_done";
			link.l2 = DLG_TEXT[186];
			link.l2.go = "redmond_not_done_1";
		break;

		case "generate_quest":
			if (npchar.quest.trade_date != lastspeak_date)
			{
				npchar.quest.trade_date = lastspeak_date;
				//проверка враждебности нам страны торговца
				if (GetNationRelation2MainCharacter(FRANCE) == RELATION_ENEMY)
				{
					dialog.snd = "Voice\ARMA\ARMA045";
					dialog.text = DLG_TEXT[187];
					link.l1 = DLG_TEXT[188];
					link.l1.go = "exit";
				}
				else
				{
					int iTradeNation = GenerateNationTrade(FRANCE);
					if (iTradeNation < 0)
					{
						dialog.snd = "Voice\ARMA\ARMA046";
						dialog.text = DLG_TEXT[189];
						link.l1 = DLG_TEXT[190];
						link.l1.go = "exit";
					}
					else
					{
						//проверяем импорт/экспорт
						int iTradeGoods = rand(22) + 4;
						//проверяем свободное место (при этом должно вмещаться по меньшей мере 100 единиц выбранного груза
						if (GetSquadronFreeSpace(pchar, iTradeGoods) < 100)
						{
							dialog.snd = "Voice\ARMA\ARMA047";
							dialog.text = DLG_TEXT[191];
							link.l1 = DLG_TEXT[192];
							link.l1.go = "exit";
						}
						else
						{
							int iQuantityGoods = GetSquadronFreeSpace(pchar, iTradeGoods) - 20;
							int iMoney = ((iQuantityGoods *10+99)/100)*100;
							int iDaysExpired = 30;

							pchar.quest.iTradeGoods = iTradeGoods;
							pchar.quest.iQuantityGoods = iQuantityGoods;
							pchar.quest.iMoney = iMoney;
							pchar.quest.iTradeNation = iTradeNation;
							
							string sNation;

							switch (iTradeNation)
							{
								case FRANCE: sNation = FRA_COLONY; break;
								case SPAIN: sNation = SPA_COLONY; break;
								case HOLLAND: sNation = HOL_COLONY; break;
								case PORTUGAL: sNation = POR_COLONY; break;
								case ENGLAND: 
									int iColony = rand(2);
									if (iColony == 2 && CheckAttribute(Pchar, "Quest.Story_OxbayCaptured"))
									{
										iColony = rand(1);
									}
									switch (iColony)
									{
										case 0: sNation = RED_COLONY; pchar.quest.iTradeColony = "Redmond_store"; break;
										case 1: sNation = GREEN_COLONY; pchar.quest.iTradeColony = "Greenford_store"; break;
										case 2: sNation = OX_COLONY; pchar.quest.iTradeColony = "Oxbay_store"; break;
									}
								break;
							}
							dialog.snd = "Voice\ARMA\ARMA048";
							dialog.text = DLG_TEXT[193] + sNation + DLG_TEXT[194] + pchar.quest.iMoney + DLG_TEXT[195];
							link.l1 = DLG_TEXT[196];
							link.l1.go = "exit_trade";
							link.l2  = DLG_TEXT[197];
							link.l2.go = "exit";
						}
					}
				}
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA049";
				dialog.text = DLG_TEXT[198];
				link.l1 = DLG_TEXT[199];
				link.l1.go = "exit";
			}
		break;
		
		case "exit_trade":
			AddDialogExitQuest("trade_quest_open");
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;

		case "generate_quest_2":
			if (CheckQuestAttribute("generate_trade_quest_progress", "failed"))
			{
				dialog.snd = "Voice\ARMA\ARMA050";
				dialog.text = DLG_TEXT[200];
				link.l1 = DLG_TEXT[201];
				link.l1.go = "exit";
				ChangeCharacterReputation(pchar, -1);
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA051";
				dialog.text = DLG_TEXT[202];
				link.l1 = DLG_TEXT[203];
				link.l1.go = "exit";
				ChangeCharacterReputation(pchar, 1);
				AddPartyExp(pchar, (makeint(pchar.quest.iMoney)/2));
				AddMoneyToCharacter(pchar, makeint(pchar.quest.iMoney));
				pchar.quest.generate_trade_quest_progress = "";
				pchar.quest.generate_trade_quest.over = "yes";
				RemoveCharacterGoods(pchar, makeint(pchar.quest.iTradeGoods), makeint(pchar.quest.iQuantityGoods));
			}
			AddDialogExitQuest("close_trade_quest");
		break;

		case "no_quests":
			if (npchar.quest_begin == "0")
			{
				dialog.snd = "Voice\ARMA\ARMA052";
				dialog.text = DLG_TEXT[204];
				link.l1 = DLG_TEXT[205];
				link.l1.go = "exit";
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA053";
				dialog.text = DLG_TEXT[206];
				link.l1 = DLG_TEXT[207];
				link.l1.go = "exit";
			}
		break;

		case "redmond_not_done":
			dialog.snd = "Voice\ARMA\ARMA054";
			dialog.text = DLG_TEXT[208] + Characters[GetCharacterIndex(DLG_TEXT[209])].name + DLG_TEXT[210];
			link.l1 = DLG_TEXT[211];
			link.l1.go = "redmond_not_done_2";
			ChangeCharacterReputation(pchar, -1);
		break;

		case "redmond_not_done_1":
			dialog.snd = "Voice\ARMA\ARMA055";
			dialog.text = DLG_TEXT[212] + characters[GetCharacterIndex(DLG_TEXT[213])].name + DLG_TEXT[214];
			link.l1 = DLG_TEXT[215];
			link.l1.go = "redmond_not_done_2";
		break;

		case "redmond_not_done_2":
			dialog.snd = "Voice\ARMA\ARMA056";
			dialog.text = DLG_TEXT[216];
			link.l1 = DLG_TEXT[217];
			link.l1.go = "redmond_not_done_3";
			if (makeint(pchar.money) >= 1500)
			{
				link.l2 = DLG_TEXT[218];
				link.l2.go = "redmond_not_done_4";
			}
		break;

		case "redmond_not_done_3":
			dialog.snd = "Voice\ARMA\ARMA057";
			dialog.text = DLG_TEXT[219];
			link.l1 = DLG_TEXT[220];
			link.l1.go = "exit";
			ChangeCharacterReputation(pchar, -10);
		break;

		case "redmond_not_done_4":
			dialog.snd = "Voice\ARMA\ARMA058";
			dialog.text = DLG_TEXT[221];
			link.l1 = DLG_TEXT[222] + Address_Form.Fra + DLG_TEXT[223];
			link.l1.go = "exit";
			AddMoneyToCharacter(pchar, -1500);
		break;

		case "node_1":
			if (GetSquadronFreeSpace(pchar, GOOD_CHOCOLATE) >= 100)
			{
				dialog.snd = "Voice\ARMA\ARMA059";
				dialog.text = DLG_TEXT[224];
				link.l1 = DLG_TEXT[225];
				link.l1.go = "war";
				link.l2 = DLG_TEXT[226] + Address_Form.Fra + DLG_TEXT[227];
				link.l2.go = "access";
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA060";
				dialog.text = DLG_TEXT[228];
				link.l1 = DLG_TEXT[229];
				link.l1.go = "exit";
				npchar.money.quest = "0";
			}
		break;

		case "war":
			dialog.snd = "Voice\ARMA\ARMA061";
			dialog.text = DLG_TEXT[230];
			link.l1 = DLG_TEXT[231];
			link.l1.go = "access";
			link.l2 = DLG_TEXT[232];
			link.l2.go = "war_1";
		break;

		case "war_1":
			if (makeint(pchar.skill.commerce) > 5)
			{
				dialog.snd = "Voice\ARMA\ARMA062";
				dialog.text = DLG_TEXT[233];
				link.l1 = DLG_TEXT[234];
				link.l1.go = "access_1";
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA063";
				dialog.text = DLG_TEXT[235];
				link.l1 = DLG_TEXT[236];
				link.l1.go = "access";
				link.l2 = DLG_TEXT[237];
				link.l2.go = "exit";
			}
		break;

		case "access":
			dialog.snd = "Voice\ARMA\ARMA064";
			dialog.text = DLG_TEXT[238] + npchar.name + " " + npchar.lastname + DLG_TEXT[239];
			link.l1 = DLG_TEXT[240] + pchar.name + " " + pchar.lastname + DLG_TEXT[241];
			link.l1.go = "to_redmond_1";
			npchar.money.quest = "600";
		break;

		case "access_1":
			dialog.snd = "Voice\ARMA\ARMA065";
			dialog.text = DLG_TEXT[242] + npchar.name + " " + npchar.lastname + DLG_TEXT[243];
			link.l1 = DLG_TEXT[244] + pchar.name + " " + pchar.lastname + DLG_TEXT[245];
			link.l1.go = "to_redmond_1";
			npchar.money.quest = "800";
		break;

		case "to_redmond_1":
			dialog.snd = "Voice\ARMA\ARMA066";
			dialog.text = DLG_TEXT[246];
			link.l1 = DLG_TEXT[247];
			link.l1.go = "exit";
			npchar.quest.to_redmond_1 = "1";
			npchar.quest_begin = "1";
			AddCharacterGoods(pchar, GOOD_CHOCOLATE, 100);
		break;

		case "market":
			dialog.snd = "Voice\ARMA\ARMA067";
			dialog.Text = DLG_TEXT[248];
			Link.l1 = DLG_TEXT[249];
			Link.l1.go = "trade_1";
			Link.l2 = DLG_TEXT[250];
			Link.l2.go = "items";
			Link.l3 = DLG_TEXT[251];
			Link.l3.go = "exit";
		break;

		case "trade_1":
			NextDiag.CurrentNode = NextDiag.TempNode;
			//NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
			LaunchStore(FALAISE_DE_FLEUR_STORE);
		break;

		case "items":
			if (npchar.quest.item_date != lastspeak_date)
			{
				GiveItemToTrader(npchar);
				npchar.quest.item_date = lastspeak_date;
			}
			
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
			LaunchItemsTrade(NPChar);
		break;

		case "redmond_done":
			dialog.snd = "Voice\ARMA\ARMA068";
			Dialog.text = DLG_TEXT[252];
			link.l1 = DLG_TEXT[253];
			link.l1.go = "redmond_done_1";
		break;

		case "redmond_done_1":
			dialog.snd = "Voice\ARMA\ARMA069";
			Dialog.text = DLG_TEXT[254];
			link.l1 = DLG_TEXT[255];
			link.l1.go = "exit";
			AddMoneyToCharacter(pchar, makeint(npchar.money.quest));
			AddPartyExp(pchar, 700);
			npchar.money.quest = "0";
			npchar.quest_begin = "0";
		break;

		case "baldewyn":
			dialog.snd = "Voice\ARMA\ARMA070";
			dialog.text = DLG_TEXT[256];
			link.l1 = DLG_TEXT[257];
			link.l1.go = "baldewyn_1";
		break;

		case "baldewyn_1":
			dialog.snd = "Voice\ARMA\ARMA071";
			dialog.text = DLG_TEXT[258] + Address_Form.Fra + DLG_TEXT[259];
			link.l1 = DLG_TEXT[260];
			link.l1.go = "baldewyn_2";
		break;

		case "baldewyn_2":
			dialog.snd = "Voice\ARMA\ARMA072";
			dialog.text = DLG_TEXT[261] + Characters[GetCharacterIndex(DLG_TEXT[262])].name + " " + Characters[GetCharacterIndex(DLG_TEXT[263])].lastname + DLG_TEXT[264];
			link.l1 = DLG_TEXT[265];
			link.l1.go = "baldewyn_3";
		break;

		case "baldewyn_3":
			dialog.snd = "Voice\ARMA\ARMA073";
			dialog.text = DLG_TEXT[266] + Address_Form.Fra + DLG_TEXT[267];
			link.l1 = DLG_TEXT[268];
			link.l1.go = "baldewyn_6";
			npchar.quest.money = "500";
			link.l2 = DLG_TEXT[269] + npchar.name + DLG_TEXT[270];
			link.l2.go = "baldewyn_4";
		break;

		case "baldewyn_4":
			if (makeint(pchar.skill.commerce) > 3)
			{
				dialog.snd = "Voice\ARMA\ARMA074";
				dialog.text = DLG_TEXT[271];
				link.l1 = DLG_TEXT[272];
				link.l1.go = "baldewyn_6";
				npchar.quest.money = "750";
			}
			else
			{
				if (pchar.reputation > 50)
				{
					dialog.snd = "Voice\ARMA\ARMA075";
					dialog.text = DLG_TEXT[273];
				}
				else
				{
					dialog.snd = "Voice\ARMA\ARMA076";
					dialog.text = DLG_TEXT[274];
				}
				link.l1 = DLG_TEXT[275];
				link.l1.go = "baldewyn_6";
				npchar.quest.money = "500";
			}
			link.l2 = DLG_TEXT[276];
			link.l2.go = "baldewyn_5";
		break;

		case "baldewyn_5":
			dialog.snd = "Voice\ARMA\ARMA077";
			dialog.text = DLG_TEXT[277];
			link.l1 = DLG_TEXT[278];
			link.l1.go = "exit";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "arno_denied";
			link.l2 = DLG_TEXT[279];
			link.l2.go = "baldewyn_6";
		break;

		case "baldewyn_6":
			dialog.snd = "Voice\ARMA\ARMA078";
			dialog.text = DLG_TEXT[280];
			link.l1 = DLG_TEXT[281];
			link.l1.go = "exit";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "arno";
			npchar.quest_begin = "1";
		break;

		case "baldewyn_done":
			dialog.snd = "Voice\ARMA\ARMA079";
			dialog.text = DLG_TEXT[282];
			link.l1 = DLG_TEXT[283];
			link.l1.go = "baldewyn_done_1";
			link.l2 = DLG_TEXT[284];
			link.l2.go = "baldewyn_done_2";
		break;

		case "baldewyn_done_1":
			dialog.snd = "Voice\ARMA\ARMA080";
			dialog.text = DLG_TEXT[285];
			link.l1 = DLG_TEXT[286];
			link.l1.go = "baldewyn_done_2";
			link.l2 = DLG_TEXT[287];
			link.l2.go = "exit";
		break;

		case "baldewyn_done_2":
			dialog.snd = "Voice\ARMA\ARMA081";
			dialog.text = DLG_TEXT[288];
			link.l1 = DLG_TEXT[289];
			link.l1.go = "baldewyn_bye";
			link.l2 = DLG_TEXT[290];
			link.l2.go = "baldewyn_done_3";
		break;

		case "baldewyn_done_3":
			dialog.snd = "Voice\ARMA\ARMA082";
			dialog.text = DLG_TEXT[291];
			link.l1 = DLG_TEXT[292];
			link.l1.go = "baldewyn_bye_2";
			link.l2 = DLG_TEXT[293];
			link.l2.go = "baldewyn_bye_3";
		break;

		case "baldewyn_bye":
			dialog.snd = "Voice\ARMA\ARMA083";
			dialog.text = DLG_TEXT[294];
			link.l1 = DLG_TEXT[295] + Address_Form.Fra + DLG_TEXT[296];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[297];
			link.l2.go = "First Time";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "done";
			npchar.quest_begin = "0";
			npchar.quest.money = "0";
			Rumour[4].state = "active";
			characters[GetCharacterIndex("Baldewyn Coffier")].location = "none";
			Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
		break;

		case "baldewyn_bye_2":
			dialog.snd = "Voice\ARMA\ARMA084";
			dialog.text = DLG_TEXT[298];
			link.l1 = DLG_TEXT[299];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[300];
			link.l2.go = "First Time";
			characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "done";
			npchar.quest_begin = "0";
			AddMoneyToCharacter(pchar, makeint(npchar.money.quest));
			ChangeCharacterReputation(pchar, -1);
			AddPartyExp(pchar, 700);
			npchar.quest.money = "0";
			Rumour[4].state = "active";
			characters[GetCharacterIndex("Baldewyn Coffier")].location = "none";
			Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
		break;

		case "baldewyn_bye_3":
			if (makeint(pchar.skill.commerce) > 5)
			{
				dialog.snd = "Voice\ARMA\ARMA085";
				dialog.text = DLG_TEXT[301] + makeint(npchar.quest.money) * 2 + DLG_TEXT[302];
				link.l1 = DLG_TEXT[303];
				link.l1.go = "exit";
				link.l2 = DLG_TEXT[304];
				link.l2.go = "First Time";
				characters[GetCharacterIndex("Baldewyn Coffier")].quest.hire = "done";
				npchar.quest_begin = "0";
				AddMoneyToCharacter(pchar, makeint(npchar.money.quest)*2);
				ChangeCharacterReputation(pchar, -1);
				AddPartyExp(pchar, 700);
				npchar.quest.money = "0";
				Rumour[4].state = "active";
				characters[GetCharacterIndex("Baldewyn Coffier")].location = "none";
				Characters[GetCharacterIndex("Sabine Matton")].location = "Falaise_De_Fleur_store";
			}
			else
			{
				dialog.snd = "Voice\ARMA\ARMA086";
				dialog.text = DLG_TEXT[305];
				link.l1 = DLG_TEXT[306] + Address_Form.Fra + DLG_TEXT[307];
				link.l1.go = "exit";
				link.l2 = DLG_TEXT[308];
				link.l2.go = "baldewyn_bye_2";
			}
		break;

		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;
	}
}
示例#15
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\MIBL\MIBL001";

			Dialog.Text = DLG_TEXT[0] + Address_Form.Fra + DLG_TEXT[1];
			Link.l1 = DLG_TEXT[2] + Pchar.ship.name + DLG_TEXT[3];
			Link.l1.go = "node_2";
			NPChar.quest.first_talk = "1";
			NextDiag.TempNode = "Second time";
		break;

		case "node_2":
			Dialog.snd = "voice\MIBL\MIBL002";
			Dialog.Text = DLG_TEXT[4];
			Link.l1 = DLG_TEXT[5];
			Link.l1.go = "node_3";
		break;

		case "node_3":
			Dialog.snd = "voice\MIBL\MIBL003";
			Dialog.Text = DLG_TEXT[6];
			Link.l1 = DLG_TEXT[7];
			Link.l1.go = "Exit";
		break;

		case "Second Time":
			Dialog.snd = "voice\MIBL\MIBL004";
			Dialog.text = DLG_TEXT[8] + Address_Form.Fra + DLG_TEXT[9];
			if (Npchar.quest.son == "letter")
			{
				link.l1 = DLG_TEXT[10];
				link.l1.go = "letter";
			}
			else 
			{
				if (Npchar.quest.son == "rescue")
				{
					link.l1 = pcharrepphrase(DLG_TEXT[11], DLG_TEXT[12]);
					link.l1.go = "rescue";
				}
				else
				{
					link.l1 = DLG_TEXT[13];
					link.l1.go = "exit";
				}
			}
			link.l2 = DLG_TEXT[14];
			link.l2.go = "exit";
		break;

		case "letter":
			Dialog.snd = "voice\MIBL\MIBL005";
			Dialog.text = DLG_TEXT[15];
			link.l1 = DLG_TEXT[16];
			link.l1.go = "exit";
			pchar.experience = makeint(pchar.experience) + 50;
			npchar.quest.son = "letter_return";
		break;

		case "rescue":
			Dialog.snd = "voice\MIBL\MIBL006";
			Dialog.text = DLG_TEXT[17];
			link.l1 = DLG_TEXT[18];
			link.l1.go = "exit";
			ChangeCharacterAddress(characterFromID("Marc Blacque"), "Falaise_de_fleur_location_01", "carpenter2");
			RemovePassenger(pchar, characterFromID("Marc Blacque"));
			ChangeCharacterReputation(pchar, 1);
			AddPartyExp(pchar, 1000);
			npchar.quest.son = "done";
			NextDiag.TempNode = "Third time";
		break;

		case "Third time":
			Dialog.snd = "voice\MIBL\MIBL006";
			Dialog.text = DLG_TEXT[19] + Address_Form.Fra + DLG_TEXT[20];
			link.l1 = DLG_TEXT[21];
			link.l1.go = "exit";
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;
	}
}
示例#16
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d; 
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting, TempInfoCharacterID_1, TempInfoCharacterID_2;
	int DonationSize;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		
		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

	
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";

			if(NPChar.quest.meeting == "0")
			{
				NPC_Meeting = "1"; 
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(TimeGreeting() + DLG_TEXT[0] + address_form.eng + DLG_TEXT[1] + NPChar.name + " " + NPChar.lastname + DLG_TEXT[2], DLG_TEXT[3] + address_form.eng + DLG_TEXT[4] + NPChar.name + " " + NPChar.lastname + DLG_TEXT[5], DLG_TEXT[6] + NPChar.name + " " + NPChar.lastname + DLG_TEXT[7] + address_form.eng + DLG_TEXT[8], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				Link.l1 = LinkRandPhrase(DLG_TEXT[9] + Pchar.name + " " + Pchar.lastname + DLG_TEXT[10] + PChar.Ship.name + DLG_TEXT[11], DLG_TEXT[12] + Pchar.name + " " + Pchar.lastname + DLG_TEXT[13], DLG_TEXT[14] + PChar.name + DLG_TEXT[15]);
				Link.l1.go = "meeting";
			}
			else
			{
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(DLG_TEXT[16] + PChar.name + DLG_TEXT[17], DLG_TEXT[18] + TimeGreeting() + DLG_TEXT[19], DLG_TEXT[20] + address_form.eng + " " + Pchar.name + DLG_TEXT[21], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				if(Rand(1)==0)
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[22], DLG_TEXT[23], DLG_TEXT[24]);
					Link.l1.go = "rumours";
				}
				else
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[25], DLG_TEXT[26], DLG_TEXT[27]);
					Link.l1.go = "town";
				}
				if(Rand(1)==0)	
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[28], DLG_TEXT[29], DLG_TEXT[30]);
					Link.l2.go = "info";
				}
				else
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[31], DLG_TEXT[32], DLG_TEXT[33]);
					Link.l2.go = "colony";
				}

				Link.l3 = DLG_TEXT[34];
				Link.l3.go = "exit";
			}
		break;

		case "Meeting":
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(DLG_TEXT[35], DLG_TEXT[36] + address_form.eng + " " + PChar.name + DLG_TEXT[37], DLG_TEXT[38], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				if(Rand(1)==0)
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[39], DLG_TEXT[40], DLG_TEXT[41]);
					Link.l1.go = "rumours";
				}
				else
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[42], DLG_TEXT[43], DLG_TEXT[44]);
					Link.l1.go = "town";
				}
				if(Rand(1)==0)	
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[45], DLG_TEXT[46], DLG_TEXT[47]);
					Link.l2.go = "info";
				}
				else
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[48], DLG_TEXT[49], DLG_TEXT[50]);
					Link.l2.go = "colony";
				}


				Link.l3 = DLG_TEXT[51];
				Link.l3.go = "exit";
		break;

		case "rumours":
				d.Text = SelectRumour();
				Link.l1 = DLG_TEXT[52];
				Link.l1.go = "new question";
				Link.l2 = DLG_TEXT[53];
				Link.l2.go = "exit";
		break;

		case "new question":
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(DLG_TEXT[54] + address_form.eng + DLG_TEXT[55], DLG_TEXT[56] + address_form.eng + DLG_TEXT[57], DLG_TEXT[58] + address_form.eng + DLG_TEXT[59], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				if(Rand(1)==0)
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[60], DLG_TEXT[61], DLG_TEXT[62]);
					Link.l1.go = "rumours";
				}
				else
				{
					Link.l1 = LinkRandPhrase(DLG_TEXT[63], DLG_TEXT[64], DLG_TEXT[65]);
					Link.l1.go = "town";
				}
				if(Rand(1)==0)	
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[66], DLG_TEXT[67], DLG_TEXT[68]);
					Link.l2.go = "info";
				}
				else
				{
					Link.l2 = LinkRandPhrase(DLG_TEXT[69], DLG_TEXT[70], DLG_TEXT[71]);
					Link.l2.go = "colony";
				}
				Link.l3 = DLG_TEXT[72];
				Link.l3.go = "exit";
		break;

		case "info":
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(DLG_TEXT[73] + address_form.eng + DLG_TEXT[74], DLG_TEXT[75] + address_form.eng + DLG_TEXT[76], DLG_TEXT[77] + address_form.eng + DLG_TEXT[78], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				if(Rand(1)==0)
				{	
					Link.l1 = DLG_TEXT[79];
					Link.l1.go = "governor";
				}
				else
				{
					Link.l1 = DLG_TEXT[80];
					Link.l1.go = "tavernkeeper";
				}
				if(Rand(1)==0)	
				{
					Link.l2 = DLG_TEXT[81];
					Link.l2.go = "shipwright";
				}
				else 
				{
					Link.l2 = DLG_TEXT[82];
					Link.l2.go = "localtrader";
				}
				Link.l3 = DLG_TEXT[83];
				Link.l3.go = "new question";
		break;

		case "governor":
				d.Text = DLG_TEXT[84];
				Link.l1 = DLG_TEXT[85];
				Link.l1.go = "new question";
				Link.l2 = DLG_TEXT[86];
				Link.l2.go = "exit";
		break;

		case "tavernkeeper":
				d.Text = DLG_TEXT[87];
				Link.l1 = DLG_TEXT[88];
				Link.l1.go = "new question";
				Link.l2 = DLG_TEXT[89];
				Link.l2.go = "exit";
		break;

		case "shipwright":
				d.Text = DLG_TEXT[90];
				Link.l1 = DLG_TEXT[91];
				Link.l1.go = "new question";
				Link.l2 = DLG_TEXT[92];
				Link.l2.go = "exit";
		break;

		case "localtrader":
				d.Text = DLG_TEXT[93];
				Link.l1 = DLG_TEXT[94];
				Link.l1.go = "new question";
				Link.l2 = DLG_TEXT[95];
				Link.l2.go = "exit";
		break;

		case "town":
			dialog.snd1 = "";
			dialog.snd2 = "";
			dialog.snd3 = "";
			d.Text = RandPhrase(DLG_TEXT[96], DLG_TEXT[97] + Address_Form.eng + DLG_TEXT[98], DLG_TEXT[99] + Address_Form.eng + DLG_TEXT[100], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
			Link.l1 = DLG_TEXT[101];
			Link.l1.go = "town_tavern";
			Link.l2 = DLG_TEXT[102];
			Link.l2.go = "town_shipyard";
			Link.l3 = DLG_TEXT[103];
			Link.l3.go = "town_store";
		break;

		case "town_tavern":
			d.Text = DLG_TEXT[104];
			Link.l1 = DLG_TEXT[105];
			Link.l1.go = "exit";
			Link.l2 = DLG_TEXT[106];
			Link.l2.go = "town_shipyard";
			Link.l3 = DLG_TEXT[107];
			Link.l3.go = "town_store";
		break;

		case "town_shipyard":
			d.Text = DLG_TEXT[108] + Address_Form.Eng + DLG_TEXT[109] + Address_Form.Eng + DLG_TEXT[110];
			Link.l1 = DLG_TEXT[111];
			Link.l1.go = "town_tavern";
			Link.l2 = DLG_TEXT[112];
			Link.l2.go = "town_store";
			Link.l3 = DLG_TEXT[113];
			Link.l3.go = "exit";
		break;

		case "town_store":
			d.Text = DLG_TEXT[114] + Address_Form.Eng + DLG_TEXT[115];
			Link.l1 = DLG_TEXT[116];
			Link.l1.go = "town_shipyard";
			Link.l2 = DLG_TEXT[117];
			Link.l2.go = "town_tavern";
			Link.l3 = DLG_TEXT[118];
			Link.l3.go = "exit";
		break;

		case "colony":
			dialog.snd1 = "";
			dialog.snd2 = "";
			dialog.snd3 = "";
			d.Text = RandPhrase(DLG_TEXT[119], DLG_TEXT[120], DLG_TEXT[121], &Dialog, dialog.snd1, dialog.snd2, dialog.snd3);
			if(Rand(1)== 0)
			{
				Link.l1 = DLG_TEXT[122];
				Link.l1.go = "Redmond";
			}
			else
			{
				Link.l1 = DLG_TEXT[123];
				Link.l1.go = "island";
			}
			if(Rand(1)== 0)
			{
				Link.l1 = DLG_TEXT[124];
				Link.l1.go = "fort";
			}
	/*		else
			{
				Link.l1 = "С кем торгуют местные торговцы?";
				Link.l1.go = "trade";
			}*/

			Link.l2 = DLG_TEXT[125];
			Link.l2.go = "new question";
		break;

		case "Redmond":
			d.Text = DLG_TEXT[126];
			Link.l1 = DLG_TEXT[127];
			Link.l1.go = "Redmond_1";
			Link.l2 = DLG_TEXT[128];
			Link.l2.go = "new question";
		break;

		case "Redmond_1":
			d.Text = DLG_TEXT[129];
			//Link.l1 = "Дальше...";
			//Link.l1.go = "Redmond_2";
			Link.l2 = DLG_TEXT[130];
			Link.l2.go = "new question";
		break;

		case "island":
			switch(Rand(2))
			{	
				case 0:
					d.Text = DLG_TEXT[131];
					Link.l1 = DLG_TEXT[132];
					Link.l1.go = "colony";
				break;

				case 1:
					d.Text = DLG_TEXT[133];
					Link.l1 = DLG_TEXT[134];
					Link.l1.go = "colony";
				break;

				case 2:
					d.Text = DLG_TEXT[135];
					Link.l1 = DLG_TEXT[136];
					Link.l1.go = "colony";
				break;
			}
			Link.l2 = DLG_TEXT[137];
			Link.l2.go = "new question";
		break;

		case "fort":
			switch(Rand(2))
			{	
				case 0:
					d.Text = DLG_TEXT[138];
					Link.l1 = DLG_TEXT[139];
					Link.l1.go = "colony";
				break;

				case 1:
					d.Text = DLG_TEXT[140];
					Link.l1 = DLG_TEXT[141];
					Link.l1.go = "colony";
				break;

				case 2:
					d.Text = DLG_TEXT[142];
					Link.l1 = DLG_TEXT[143];
					Link.l1.go = "colony";
				break;
			}
			Link.l2 = DLG_TEXT[144];
			Link.l2.go = "new question";
		break;


	}
}
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
			
		case "DieMotherFucker":

			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\SFNT\SFNT001";

			Dialog.Text = DLG_TEXT[0] + Address_form.Eng + DLG_TEXT[1];
			Link.l1 = DLG_TEXT[2];
			Link.l1.go = "DieMotherFucker_2";
		break;	
			
		case "First time":

			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";			
			
			//потасовка в таверне
			if (pchar.quest.main_line == "talk_in_tavern_begin")
			{
				if (pchar.id == "Danielle")
				{
					Dialog.snd = "voice\SFNT\SFNT002";
					Dialog.Text = DLG_TEXT[3] + Address_form.Eng + DLG_TEXT[4];
					Link.l1 = DLG_TEXT[5];
					Link.l1.go = "node_2_danielle";
				}
				else
				{
					Dialog.snd = "voice\SFNT\SFNT003";
					dialog.text = DLG_TEXT[6];
					link.l1 = DLG_TEXT[7];
					link.l1.go = "node_2_kick";
				}
			}
			//арест блейза
			if (pchar.quest.main_line == "fawn_death")
			{
				Dialog.snd = "voice\SFNT\SFNT004";
				dialog.text = DLG_TEXT[8] + address_form.eng + DLG_TEXT[9];
				link.l1 = DLG_TEXT[10];
				link.l1.go = "node_3_blaze";
			}
			if (pchar.quest.main_line == "after_soldier_kick")
			{
				Dialog.snd = "voice\SFNT\SFNT005";
				dialog.text = DLG_TEXT[11];
				link.l1 = DLG_TEXT[12];
				link.l1.go = "exit";
				AddDialogExitQuest("fighting_in_tavern");
			}
		break;

		case "DieMotherFucker_2":
			Dialog.snd = "voice\SFNT\SFNT006";
			Dialog.Text = DLG_TEXT[13] + characters[GetCharacterIndex(DLG_TEXT[14])].lastname + DLG_TEXT[15];
			Link.l1 = DLG_TEXT[16];
			Link.l1.go = "DieMotherFucker_3";
		break;

		case "DieMotherFucker_3":
			Dialog.snd = "voice\SFNT\SFNT007";
			AddDialogExitQuest("Fem_BoatswainFoundsTheClue");
			Dialog.Text = DLG_TEXT[17];
			Link.l1 = DLG_TEXT[18];
			Link.l1.go = "exit";
		break;

		case "node_2_kick":
			Dialog.snd = "voice\SFNT\SFNT008";
			dialog.text = DLG_TEXT[19];
			link.l1 = DLG_TEXT[20];
			link.l1.go = "node_2_kick_2";
		break;

		case "node_2_kick_2":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("kicked_by_soldier_complete");
		break;

		case "node_3_blaze":
			Dialog.snd = "voice\SFNT\SFNT009";
			dialog.text = DLG_TEXT[21];
			link.l1 = DLG_TEXT[22];
			link.l1.go = "exit_arrest";
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;

		case "exit_arrest":
			EndQuestMovie();
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			pchar.gun = "";
			pchar.blade = "";
			AddDialogExitQuest("blaze_to_prison_complete");
		break;
	}
}
示例#18
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting, PeaceGroup;
	int Nation, Sum;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "First time":
			Dialog.defAni = "dialog_stay2";
			Dialog.defCam = "2";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			if(Pchar.quest.RelationAgentMet == "0")
			{
				Dialog.snd = "voice\REDI\REDI001";
				d.Text = DLG_TEXT[0] + address_form.eng + DLG_TEXT[1];
				Link.l1 = DLG_TEXT[2];
				Link.l1.go = "Tutorial";
				NPC_Meeting = "1"; 
			}
			else
			{
				if(NPChar.quest.meeting == "0")
				{
					Dialog.snd = "voice\REDI\REDI002";
					d.Text = DLG_TEXT[3];
					Link.l1 = DLG_TEXT[4] + Pchar.name + DLG_TEXT[5];
					Link.l1.go = "Service";
					Link.l2 = DLG_TEXT[6];
					Link.l2.go = "Exit";					
				}
				else
				{
					Dialog.snd = "voice\REDI\REDI003";
					d.Text = DLG_TEXT[7] + Pchar.name"?" ;
					Link.l1 = DLG_TEXT[8];
					Link.l1.go = "Service";
					Link.l2 = DLG_TEXT[9];
					Link.l2.go = "exit";

				}
			}

		break;

		case "Service":
			Dialog.snd = "voice\REDI\REDI004";
			d.Text = DLG_TEXT[10];
			if(GetNationRelation2MainCharacter(ENGLAND) == RELATION_ENEMY)
			{
				Link.l1 = DLG_TEXT[11];
				Link.l1.go = "England";

			}
			if(GetNationRelation2MainCharacter(SPAIN) == RELATION_ENEMY)
			{
				Link.l2 = DLG_TEXT[12];
				Link.l2.go = "Spain";
			}
			if(GetNationRelation2MainCharacter(PORTUGAL) == RELATION_ENEMY)
			{
				Link.l3 = DLG_TEXT[13];
				Link.l3.go = "Portugal";			
			}
			if(GetNationRelation2MainCharacter(HOLLAND) == RELATION_ENEMY)
			{
				Link.l4 = DLG_TEXT[14];
				Link.l4.go = "Holland";			
			}
			if(GetNationRelation2MainCharacter(FRANCE) == RELATION_ENEMY)
			{
				Link.l5 = DLG_TEXT[15];
				Link.l5.go = "France";			
			}
			Link.l6 = DLG_TEXT[16];
			Link.l6.go = "exit";			
		break;

		case "Tutorial":
			Dialog.snd = "voice\REDI\REDI005";
			d.Text = DLG_TEXT[17];
			Link.l99 = DLG_TEXT[18];
			Link.l99.go = "Tutorial_1";
		break;

		case "Tutorial_1":
			Dialog.snd = "voice\REDI\REDI006";
			d.Text = DLG_TEXT[19];
			Link.l99 = DLG_TEXT[20];
			Link.l99.go = "Tutorial_2";
		break;

		case "Tutorial_2":
			Dialog.snd = "voice\REDI\REDI007";
			d.Text = DLG_TEXT[21];
			Link.l99 = DLG_TEXT[22];
			Link.l99.go = "Tutorial_3";
		break;

		case "Tutorial_3":
			Dialog.snd = "voice\REDI\REDI008";
			d.Text = DLG_TEXT[23];
			Link.l99 = DLG_TEXT[24];
			Link.l99.go = "Tutorial_4";
		break;

		case "Tutorial_4":
			Dialog.snd = "voice\REDI\REDI009";
			d.Text = DLG_TEXT[25];
			Link.l99 = DLG_TEXT[26];
			Link.l99.go = "Service";
		break;

		case "England":
			Pchar.quest.Relations.nation = ENGLAND;
			Pchar.quest.Relations.PeaceGroup = "ENGLAND_SOLDIERS";
			Pchar.quest.Relations.sum = makeint(stf(Pchar.rank)/stf(Pchar.reputation)*20000);	
			Dialog.snd = "voice\REDI\REDI010";
			d.Text = DLG_TEXT[27] + Pchar.quest.Relations.sum + DLG_TEXT[28];
			Link.l1 = DLG_TEXT[29];
			if(makeint(Pchar.money) < makeint(Pchar.quest.Relations.sum))
			{
				Link.l1.go = "No_money";			
			}
			else
			{
				Link.l1.go = "Agreed";			
			}
			Link.l2 = DLG_TEXT[30];
			Link.l2.go = "exit";			
		break;

		case "Spain":
			Pchar.quest.Relations.nation = SPAIN;
			Pchar.quest.Relations.PeaceGroup = "SPAIN_SOLDIERS";
			Pchar.quest.Relations.sum = makeint(stf(Pchar.rank)/stf(Pchar.reputation)*20000);	
			Dialog.snd = "voice\REDI\REDI011";
			d.Text = DLG_TEXT[31] + Pchar.quest.Relations.sum + DLG_TEXT[32];
			Link.l1 = DLG_TEXT[33];
			if(makeint(Pchar.money) < makeint(Pchar.quest.Relations.sum))
			{
				Link.l1.go = "No_money";			
			}
			else
			{
				Link.l1.go = "Agreed";			
			}
			Link.l2 = DLG_TEXT[34];
			Link.l2.go = "exit";			
		break;

		case "France":
			Pchar.quest.Relations.nation = FRANCE;
			Pchar.quest.Relations.PeaceGroup = "FRANCE_SOLDIERS";
			Pchar.quest.Relations.sum = makeint(stf(Pchar.rank)/stf(Pchar.reputation)*20000);	
			Dialog.snd = "voice\REDI\REDI012";
			d.Text = DLG_TEXT[35] + Pchar.quest.Relations.sum + DLG_TEXT[36];
			Link.l1 = DLG_TEXT[37];
			if(makeint(Pchar.money) < makeint(Pchar.quest.Relations.sum))
			{
				Link.l1.go = "No_money";			
			}
			else
			{
				Link.l1.go = "Agreed";			
			}
			Link.l2 = DLG_TEXT[38];
			Link.l2.go = "exit";			
		break;

		case "Portugal":
			Pchar.quest.Relations.nation = PORTUGAL;
			Pchar.quest.Relations.PeaceGroup = "CONCEICAO_SOLDIERS";
			Pchar.quest.Relations.sum = makeint(stf(Pchar.rank)/stf(Pchar.reputation)*20000);	
			Dialog.snd = "voice\REDI\REDI013";
			d.Text = DLG_TEXT[39] + Pchar.quest.Relations.sum + DLG_TEXT[40];
			Link.l1 = DLG_TEXT[41];
			if(makeint(Pchar.money) < makeint(Pchar.quest.Relations.sum))
			{
				Link.l1.go = "No_money";			
			}
			else
			{
				Link.l1.go = "Agreed";			
			}
			Link.l2 = DLG_TEXT[42];
			Link.l2.go = "exit";			
		break;

		case "Holland":
			Pchar.quest.Relations.nation = HOLLAND;
			Pchar.quest.Relations.PeaceGroup = "DOUWESEN_SOLDIERS";
			Pchar.quest.Relations.sum = makeint(stf(Pchar.rank)/stf(Pchar.reputation)*20000);	
			Dialog.snd = "voice\REDI\REDI014";
			d.Text = DLG_TEXT[43] + Pchar.quest.Relations.sum + DLG_TEXT[44];
			Link.l1 = DLG_TEXT[45];
			if(makeint(Pchar.money) < makeint(Pchar.quest.Relations.sum))
			{
				Link.l1.go = "No_money";			
			}
			else
			{
				Link.l1.go = "Agreed";			
			}
			Link.l2 = DLG_TEXT[46];
			Link.l2.go = "exit";			
		break;

		case "No_Money":
			Dialog.snd = "voice\REDI\REDI015";
			d.Text = DLG_TEXT[47];
			Link.l1 = DLG_TEXT[48];
			Link.l1.go = "exit";			
		break;

		case "Agreed":
			Dialog.snd = "voice\REDI\REDI016";
			SetNationRelation2MainCharacter(makeint(Pchar.quest.Relations.nation), RELATION_FRIEND);
			LAi_group_SetRelation(Pchar.quest.Relations.PeaceGroup, LAI_GROUP_PLAYER, LAI_GROUP_FRIEND);
			AddMoneyToCharacter(PChar, -(makeint(Pchar.quest.Relations.sum)));
			DeleteAttribute(Pchar, "quest.Relations");
			d.Text = DLG_TEXT[49];
			Link.l1 = DLG_TEXT[50];
			Link.l1.go = "Exit";
			Link.l2 = DLG_TEXT[51];
			Link.l2.go = "Service";
		break;
				

	}
}
示例#19
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			dialog.snd = "Voice\DASA\DASA001";
			Dialog.Text = DLG_TEXT[0];
			Link.l1 = DLG_TEXT[1];
			Link.l1.go = "node_2";
			
			if (pchar.quest.main_line == "blaze_to_incas_collection_begin_6" || pchar.quest.main_line == "blaze_to_incas_collection_begin")
			{
				dialog.snd = "Voice\DASA\DASA002";
				dialog.text = DLG_TEXT[2];
				link.l1 = DLG_TEXT[3];
				link.l1.go = "exit_to_ship";
				link.l2 = DLG_TEXT[4];
				link.l2.go = "exit";
			}
			//if (pchar.quest.main_line == "kill_pirate_06")
			//trace ("characters[GetCharacterIndex(Pirate Captain 06)].act.hp" + characters[GetCharacterIndex(Pirate Captain 06)].act.hp);
			if (pchar.quest.main_line == "kill_pirate_06")
			{
				dialog.snd = "Voice\DASA\DASA003";
				dialog.text = DLG_TEXT[5];
				link.l1 = DLG_TEXT[6];
				link.l1.go = "wait_two_days";
			}
			if (pchar.quest.main_line == "blaze_to_incas_collection_begin_7")
			{
				dialog.snd = "Voice\DASA\DASA004";
				dialog.text = DLG_TEXT[7];
				link.l1 = DLG_TEXT[8];
				link.l1.go = "statuets_exit";
			}
			
			NPChar.quest.first_talk = "1";
			NextDiag.TempNode = "first time";
		break;

		case "statuets_exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("danielle_sailor_statuets_exit");
		break;

		case "wait_two_days":
			AddDialogExitQuest("find_statuets_complete");
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;

		case "node_2":
			dialog.snd = "Voice\DASA\DASA005";
			Dialog.Text = DLG_TEXT[9];
			Link.l1 = DLG_TEXT[10];
			Link.l1.go = "exit";
			SetQuestHeader("Talk_with_Ralph_Fawn_in_quest_tavern");
			AddQuestRecord("Talk_with_Ralph_Fawn_in_quest_tavern", "1");
			ChangeCharacterAddressGroup(&characters[GetCharacterIndex("Blaze")], "Quest_redmond_tavern", "goto", "goto2");
			ChangeCharacterAddressGroup(&characters[GetCharacterIndex("Ralph Fawn")], "Quest_redmond_tavern", "goto", "goto3");
		break;

		case "exit_to_ship":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("exit_to_ship");
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;
	}
}
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// ----------------------------------- Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";

			if (npchar.quest.meeting == "0")
			{
				dialog.text = DLG_TEXT[0] + npchar.name + " " + npchar.middlename + " " + npchar.lastname + DLG_TEXT[1] + address_form.spa + DLG_TEXT[2];
				Link.l1 = DLG_TEXT[3] + pchar.name + " " + pchar.lastname + DLG_TEXT[4];
				Link.l1.go = "node_1";
				npchar.quest.meeting = "1";
			}
			else
			{
				dialog.text = DLG_TEXT[5];
				link.l1 = DLG_TEXT[6];
				link.l1.go = "quests";
				link.l2 = DLG_TEXT[7];
				link.l2.go = "exit";
			}
			NextDiag.TempNode = "First time";
		break;

		case "node_1":
			dialog.text = DLG_TEXT[8];
			link.l1 = DLG_TEXT[9];
			link.l1.go = "quests";
			link.l2 = DLG_TEXT[10];
			link.l2.go = "node_2";
		break;

		case "node_2":
			dialog.text = DLG_TEXT[11];
			link.l1 = DLG_TEXT[12];
			link.l1.go = "exit";
		break;

		case "quests":
			dialog.text = DLG_TEXT[13] + address_form.spa + DLG_TEXT[14];
			if (CheckQuestAttribute("nigel_con_parri_checker", "win_win") || CheckQuestAttribute("nigel_con_parri_checker", "win"))
			{
				link.l1 = DLG_TEXT[15];
				link.l1.go = "garri";
			}		
			if (!CheckAttribute(pchar, "quest.generate_kill_quest") && GetNationRelation2MainCharacter(PORTUGAL) != RELATION_ENEMY)
			{
				dialog.text = DLG_TEXT[16];
				link.l1 = DLG_TEXT[17];
				link.l1.go = "kill_pirate";
			}			
			if (CheckQuestAttribute("generate_kill_quest", "completed"))
			{
				dialog.text = DLG_TEXT[18];
				link.l1 = DLG_TEXT[19];
				link.l1.go = "kill_pirate_completed";
			}	
			link.l99 = DLG_TEXT[20];
			link.l99.go = "exit";
		break;
		
		case "kill_pirate":
			GeneratePirateQuest("Conceicao");
			dialog.text = DLG_TEXT[21] + characters[GetCharacterIndex(DLG_TEXT[22])].ship.name + DLG_TEXT[23] + pchar.quest.killdestination + DLG_TEXT[24] + pchar.quest.killmoney + DLG_TEXT[25];
			link.l1 = DLG_TEXT[26];
			link.l1.go = "kill_pirate_agree";
			link.l2 = DLG_TEXT[27];
			link.l2.go = "kill_pirate_refused";
		break;
		
		case "kill_pirate_agree":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("kill_pirate_agree");
		break;
		
		case "kill_pirate_refused":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("kill_pirate_refused");
		break;
		
		case "kill_pirate_completed":
			AddPartyExp(pchar, 1500);
			AddMoneyToCharacter(pchar, makeint(pchar.quest.killmoney));
			AddDialogExitQuest("kill_pirate_refused_2");
			ChangeCharacterReputation(pchar, 1);
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			pchar.quest.generate_kill_quest = "wait_timer";
		break;
		
		case "garri":
			dialog.text = DLG_TEXT[28];
			link.l1 = DLG_TEXT[29];
			link.l1.go = "garri_2";
		break;
		
		case "garri_2":
			dialog.text = DLG_TEXT[30];
			link.l1 = DLG_TEXT[31];
			if (CheckQuestAttribute("nigel_con_parri_checker", "win_win"))
			{
				link.l1.go = "garri_3";
			}
			else
			{
				link.l1.go = "exit";
			}
			AddQuestrecord("nigel", "15");
			DeleteAttribute(PChar, "quest.nigel_con_parri_checker");
			PChar.quest.con_parri_expired.over = "yes";
			AddMoneyToCharacter(pchar, 3000);
			ChangeCharacterReputation(pchar, 1);
			AddDialogExitQuest("nigel_third_encounter");
		break;
		
		case "garri_3":
			dialog.text = DLG_TEXT[32];
			link.l1 = DLG_TEXT[33];
			link.l1.go = "garri_4";
		break;
		
		case "garri_4":
			dialog.text = DLG_TEXT[34];
			link.l1 = DLG_TEXT[35];
			link.l1.go = "exit";
			AddMoneyToCharacter(pchar, 6000);
			ChangeCharacterReputation(pchar, 1);
		break;
						
		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;

		case "j_day":
			dialog.text = Pchar.name + " " + Pchar.lastname + DLG_TEXT[36]; 
			link.l1 = DLG_TEXT[37];
			link.l1.go = "continue1";
		break;

		case "continue1":
			LAi_QuestDelay("ex_dialog", 2);
			DialogExit();
			NextDiag.CurrentNode = "j_day2";
		break;

		case "j_day2":
			dialog.text = Pchar.name + " " + Pchar.lastname + DLG_TEXT[38]; 
			link.l1 = DLG_TEXT[39];
			link.l1.go = "exit";
		break;

	}
}
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);
	int iTest;

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\PADO\PADO001";
			
			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "quests";
			link.l2 = DLG_TEXT[2];
			link.l2.go = "donation";
			link.l99 = DLG_TEXT[3];
			link.l99.go = "exit";
			NextDiag.TempNode = "first time";
		break;

		case "quests":
			iTest = 0;
			Dialog.snd = "voice\PADO\PADO002";
			dialog.text = DLG_TEXT[4];
			if (pchar.quest.main_line == "danielle_speak_with_almost_dead_rheims_complete" && iTest < QUEST_COUNTER)
			{
				Link.l1 = DLG_TEXT[5];
				Link.l1.go = "blaze_to_library";
				iTest = iTest + 1;
			}
			if (pchar.quest.main_line == "compramat_done" && iTest < QUEST_COUNTER)
			{
				link.l1 = DLG_TEXT[6];
				link.l1.go = "compramat_done";
				ChangeCharacterReputation(pchar, -1);
			}
			if (pchar.quest.main_line == "compramat_bul_bul" && iTest < QUEST_COUNTER)
			{
				link.l1 = DLG_TEXT[7];
				link.l1.go = "compramat_bul_bul";
			}
			if (CheckQuestAttribute("ANIMISTS", "letter_to_domingues"))
			{
				link.l1 = DLG_TEXT[8];
				link.l1.go = "letter_good";
				TakeItemFromCharacter(pchar, LETTER_TO_DOMINGUES);
			}
			if (CheckQuestAttribute("ANIMISTS", "letter_to_domingues_opened"))
			{
				link.l1 = DLG_TEXT[9];
				link.l1.go = "letter_bad";
			}
			if (CheckQuestAttribute("ANIMISTS", "barkue_drown"))
			{
				link.l1 = DLG_TEXT[10];
				link.l1.go = "barkue_drown";
			}
			if (CheckQuestAttribute("ANIMISTS","to_barkue_complete"))
			{
				link.l1 = DLG_TEXT[11];
				link.l1.go = "to_barkue_complete";
				RemoveCharacterCompanion(pchar, characterFromID("Mergildo Hurtado"));
			}
			link.l99 = DLG_TEXT[12];
			link.l99.go = "exit";
		break;

		case "to_barkue_complete":
			Dialog.snd = "voice\PADO\PADO003";
			dialog.text = DLG_TEXT[13];
			link.l1 = DLG_TEXT[14];
			link.l1.go = "to_barkue_complete_2";
		break;

		case "to_barkue_complete_2":
			Dialog.snd = "voice\PADO\PADO004";
			dialog.text = DLG_TEXT[15];
			link.l1 = DLG_TEXT[16];
			link.l1.go = "to_barkue_complete_3";
		break;

		case "to_barkue_complete_3":
			Dialog.snd = "voice\PADO\PADO005";
			dialog.text = DLG_TEXT[17];
			link.l1 = DLG_TEXT[18];
			link.l1.go = "to_barkue_complete_4";
		break;

		case "to_barkue_complete_4":
			Dialog.snd = "voice\PADO\PADO006";
			dialog.text = DLG_TEXT[19];
			link.l1 = DLG_TEXT[20];
			link.l1.go = "to_bernard_2";
			AddMoneyToCharacter(pchar, 3500);
			AddPartyExp(pchar, 2500);
			AddQuestRecord("ANIMISTS", "19");
		break;

		case "barkue_drown":
			Dialog.snd = "voice\PADO\PADO007";
			dialog.text = DLG_TEXT[21];
			link.l1 = DLG_TEXT[22];
			link.l1.go = "barkue_drown_2";
		break;

		case "barkue_drown_2":
			Dialog.snd = "voice\PADO\PADO008";
			dialog.text = DLG_TEXT[23];
			link.l1 = DLG_TEXT[24];
			link.l1.go = "to_bernard";
			AddMoneyToCharacter(pchar, 2500);
			AddQuestRecord("ANIMISTS", "18");
		break;

		case "to_bernard":
			Dialog.snd = "voice\PADO\PADO009";
			dialog.text = DLG_TEXT[25];
			link.l1 = DLG_TEXT[26];
			link.l1.go = "to_bernard_2";
		break;

		case "to_bernard_2":
			Dialog.snd = "voice\PADO\PADO010";
			dialog.text = DLG_TEXT[27];
			link.l1 = DLG_TEXT[28];
			link.l1.go = "to_bernard_3";
		break;

		case "to_bernard_3":
			Dialog.snd = "voice\PADO\PADO011";
			dialog.text = DLG_TEXT[29];
			link.l1 = DLG_TEXT[30];
			link.l1.go = "exit";
			pchar.quest.ANIMISTS = "letter_to_father_bernard";
			AddDialogExitQuest("oops_ANIMISTS_want_letter_again");
			GiveItem2Character(pchar, LETTER_TO_BERNARD);
			AddQuestRecord("ANIMISTS", "20");
		break;

		case "letter_good":
			Dialog.snd = "voice\PADO\PADO012";
			dialog.text = DLG_TEXT[31];
			link.l1 = DLG_TEXT[32];
			link.l1.go = "letter_good_2";
		break;

		case "letter_bad":
			Dialog.snd = "voice\PADO\PADO013";
			dialog.text = DLG_TEXT[33];
			link.l1 = DLG_TEXT[34];
			link.l1.go = "letter_bad_exit";
			link.l2 = DLG_TEXT[35];
			link.l2.go = "letter_bad_2";
		break;

		case "letter_bad_2":
			Dialog.snd = "voice\PADO\PADO014";
			dialog.text = DLG_TEXT[36];
			link.l1 = DLG_TEXT[37];
			link.l1.go = "letter_bad_3";
		break;

		case "letter_bad_3":
			Dialog.snd = "voice\PADO\PADO015";
			dialog.text = DLG_TEXT[38];
			link.l1 = DLG_TEXT[39];
			link.l1.go = "prepare_for_bark";
			ChangeCharacterReputation(pchar, -5);
			AddMoneyToCharacter(pchar, 1000);
			AddPartyExp(pchar, 1500);
			AddQuestRecord("ANIMISTS", "12");
		break;

		case "letter_bad_exit":
			Dialog.snd = "voice\PADO\PADO016";
			dialog.text = DLG_TEXT[40];
			link.l1 = DLG_TEXT[41];
			link.l1.go = "letter_bad_exit_2";
			link.l2 = DLG_TEXT[42];
			link.l2.go = "letter_bad_2";
		break;

		case "letter_bad_exit_2":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			
			ChangeCharacterReputation(pchar, -15);
			AddQuestRecord("ANIMISTS", "13");
			CloseQuestheader("ANIMISTS");
		break;

		case "letter_good_2":
			Dialog.snd = "voice\PADO\PADO017";
			dialog.text = DLG_TEXT[43];
			link.l1 = DLG_TEXT[44] + GetcharacterFullname(DLG_TEXT[45]) + DLG_TEXT[46];
			link.l1.go = "letter_good_3";
		break;

		case "letter_good_3":
			Dialog.snd = "voice\PADO\PADO018";
			dialog.text = DLG_TEXT[47];
			link.l1 = DLG_TEXT[48];
			link.l1.go = "letter_good_4";
		break;

		case "letter_good_4":
			Dialog.snd = "voice\PADO\PADO019";
			dialog.text = DLG_TEXT[49] + GetcharacterFullname(DLG_TEXT[50]) + DLG_TEXT[51];
			link.l1 = DLG_TEXT[52];
			link.l1.go = "letter_good_5";
		break;

		case "letter_good_5":
			Dialog.snd = "voice\PADO\PADO020";
			dialog.text = DLG_TEXT[53];
			link.l1 = DLG_TEXT[54];
			link.l1.go = "prepare_for_bark";
			AddMoneyToCharacter(pchar, 2000);
			ChangeCharacterReputation(pchar, 1);
			AddPartyExp(pchar, 1700);
		break;

		case "prepare_for_bark":
			Dialog.snd = "voice\PADO\PADO021";
			dialog.text = DLG_TEXT[55];
			link.l1 = DLG_TEXT[56];
			link.l1.go = "prepare_for_bark_2";
		break;

		case "prepare_for_bark_2":
			Dialog.snd = "voice\PADO\PADO022";
			dialog.text = DLG_TEXT[57];
			link.l1 = DLG_TEXT[58];
			link.l1.go = "prepare_for_bark_3";
		break;

		case "prepare_for_bark_3":
			Dialog.snd = "voice\PADO\PADO023";
			dialog.text = DLG_TEXT[59] + GetCharacterFullName(DLG_TEXT[60]) + DLG_TEXT[61];
			link.l1 = DLG_TEXT[62];
			link.l1.go = "exit";
			pchar.quest.ANIMISTS = "to_barkue";
			AddDialogExitQuest("prepare_for_barkue");
		break;

		case "compramat_bul_bul":
			Dialog.snd = "voice\PADO\PADO024";
			dialog.text = DLG_TEXT[63];
			link.l1 = DLG_TEXT[64];
			link.l1.go = "compramat_bul_bul_2";
		break;

		case "compramat_bul_bul_2":
			Dialog.snd = "voice\PADO\PADO025";
			dialog.text = DLG_TEXT[65];
			link.l1 = DLG_TEXT[66];
			link.l1.go = "compramat_bul_bul_3";
		break;

		case "compramat_bul_bul_3":
			Dialog.snd = "voice\PADO\PADO026";
			dialog.text = DLG_TEXT[67];
			link.l1 = DLG_TEXT[68];
			link.l1.go = "compramat_bul_bul_4";
		break;

		case "compramat_bul_bul_4":
			Dialog.snd = "voice\PADO\PADO027";
			dialog.text = DLG_TEXT[69];
			link.l1 = DLG_TEXT[70];
			link.l1.go = "library";
		break;

		case "compramat_done":
			Dialog.snd = "voice\PADO\PADO028";
			dialog.text = DLG_TEXT[71];
			link.l1 = DLG_TEXT[72];
			link.l1.go = "compramat_done_2";
			link.l2 = DLG_TEXT[73];
			link.l2.go = "compramat_not_done";
		break;

		case "compramat_not_done":
			Dialog.snd = "voice\PADO\PADO029";
			dialog.text = DLG_TEXT[74];
			link.l1 = DLG_TEXT[75];
			link.l1.go = "compramat_not_done_2";
		break;

		case "compramat_not_done_2":
			Dialog.snd = "voice\PADO\PADO030";
			dialog.text = DLG_TEXT[76];
			link.l1 = DLG_TEXT[77];
			link.l1.go = "compramat_not_done_3";
		break;

		case "compramat_not_done_3":
			Dialog.snd = "voice\PADO\PADO031";
			dialog.text = DLG_TEXT[78];
			link.l1 = DLG_TEXT[79];
			link.l1.go = "compramat_not_done_4";
		break;

		case "compramat_not_done_4":
			Dialog.snd = "voice\PADO\PADO032";
			dialog.text = DLG_TEXT[80];
			link.l1 = DLG_TEXT[81];
			link.l1.go = "compramat_done_3";
			ChangeCharacterReputation(pchar, -3);
			AddMoneyToCharacter(pchar, 5000);
		break;

		case "compramat_done_2":
			Dialog.snd = "voice\PADO\PADO033";
			dialog.text = DLG_TEXT[82];
			link.l1 = DLG_TEXT[83];
			link.l1.go = "compramat_done_3";
		break;

		case "compramat_done_3":
			Dialog.snd = "voice\PADO\PADO034";
			dialog.text = DLG_TEXT[84];
			link.l1 = DLG_TEXT[85];
			link.l1.go = "library";
		break;

		case "library":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("come_to_library");
		break;

		case "blaze_to_library":
			Dialog.snd = "voice\PADO\PADO035";
			Dialog.Text = DLG_TEXT[86];
			Link.l1 = DLG_TEXT[87];
			Link.l1.go = "blaze_to_library_2";
			Locations[FindLocation("Muelle_church")].reload.l1.go = "Muelle_town_04";
			Locations[FindLocation("Muelle_church")].reload.l1.emerge = "reload4";
		break;

		case "blaze_to_library_2":
			Dialog.snd = "voice\PADO\PADO036";
			dialog.text = DLG_TEXT[88];
			link.l1 = DLG_TEXT[89];
			link.l1.go = "blaze_to_library_3";
		break;

		case "blaze_to_library_3":
			Dialog.snd = "voice\PADO\PADO037";
			dialog.text = DLG_TEXT[90] + characters[GetCharacterIndex(DLG_TEXT[91])].name + " " + characters[GetCharacterIndex(DLG_TEXT[92])].lastname + DLG_TEXT[93];
			link.l1 = DLG_TEXT[94];
			link.l1.go = "blaze_to_library_4";
		break;

		case "blaze_to_library_4":
			Dialog.snd = "voice\PADO\PADO038";
			dialog.text = DLG_TEXT[95];
			link.l1 = DLG_TEXT[96];
			link.l1.go = "blaze_to_library_5";
		break;

		case "blaze_to_library_5":
			Dialog.snd = "voice\PADO\PADO039";
			dialog.text = DLG_TEXT[97];
			link.l1 = DLG_TEXT[98];
			link.l1.go = "blaze_to_library_6";
		break;

		case "blaze_to_library_6":
			Dialog.snd = "voice\PADO\PADO040";
			dialog.text = DLG_TEXT[99];
			link.l1 = DLG_TEXT[100];
			link.l1.go = "exit";
			AddDialogExitQuest("prepare_for_meet_ferro");
		break;
		
		case "donation":
			Dialog.snd = "voice\PADO\PADO041";
			dialog.Text = DLG_TEXT[101];
			Link.l1 = DLG_TEXT[102];
			Link.l1.go = "No donation";
			if(makeint(PChar.money)>=100)
			{	
				Link.l2 = DLG_TEXT[103];
				Link.l2.go = "donation paid_100";
			}
			if(makeint(PChar.money)>=1000)
			{
				Link.l3 = DLG_TEXT[104];
				Link.l3.go = "donation paid_1000";
			}
			if(makeint(PChar.money)>=5000)
			{	
				Link.l4 = DLG_TEXT[105];
				Link.l4.go = "donation paid_5000";
			}
		break;

		case "No donation":
			Dialog.snd = "voice\PADO\PADO042";
			dialog.Text = DLG_TEXT[106];
			Link.l1 = DLG_TEXT[107];
			Link.l1.go = "quests";
			Link.l2 = DLG_TEXT[108];
			Link.l2.go = "exit";
		break;

		case "donation paid_100":
			Dialog.snd = "voice\PADO\PADO043";
			AddMoneyToCharacter(pchar, -100);
			pchar.quest.donate = makeint(pchar.quest.donate) + 100;
			dialog.Text = DLG_TEXT[109];
			Link.l1 = DLG_TEXT[110];
			Link.l1.go = "quests";
			Link.l2 = DLG_TEXT[111];
			Link.l2.go = "exit";
			AddDialogExitQuest("donation");
		break;
		
		case "donation paid_1000":
			Dialog.snd = "voice\PADO\PADO043";
			AddMoneyToCharacter(pchar, -1000);
			pchar.quest.donate = makeint(pchar.quest.donate) + 1000;
			dialog.Text = DLG_TEXT[112];
			Link.l1 = DLG_TEXT[113];
			Link.l1.go = "quests";
			Link.l2 = DLG_TEXT[114];
			Link.l2.go = "exit";
			AddDialogExitQuest("donation");
		break;
		
		case "donation paid_5000":
			Dialog.snd = "voice\PADO\PADO043";
			AddMoneyToCharacter(pchar, -5000);
			pchar.quest.donate = makeint(pchar.quest.donate) + 5000;
			dialog.Text = DLG_TEXT[115];
			Link.l1 = DLG_TEXT[116];
			Link.l1.go = "quests";
			Link.l2 = DLG_TEXT[117];
			Link.l2.go = "exit";
			AddDialogExitQuest("donation");
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;
	}
}
示例#22
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting, Item;	
	int money;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "exit_fight":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "exit_RunFight":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();			
		break;

		case "Node_1":
			if(NPChar.quest.meeting == "1")
			{
				d.Text = DLG_TEXT[0];
				Link.l1 = DLG_TEXT[1];
				Link.l1.go = "exit";
			}
			else
			{
				dialog.snd1 = "";
				dialog.snd2 = "";
				dialog.snd3 = "";
				d.Text = RandPhrase(DLG_TEXT[2], DLG_TEXT[3], DLG_TEXT[4], &dialog, dialog.snd1, dialog.snd2, dialog.snd3);
				Link.l1 = DLG_TEXT[5];
				Link.l1.go = "Search";
				Link.l2 = DLG_TEXT[6];
				Link.l2.go = "Exit";
			}
			
		break;

		case "Search":
			money = getDeadManMoney();
			item = returnRandomDeadItem();
			GiveItem2Character(Pchar, item);
			d.Text = DLG_TEXT[7] + money + DLG_TEXT[8] + item + DLG_TEXT[9];
			Link.l1 = DLG_TEXT[10];
			Link.l1.go = "exit";			
		break;



	}
}
示例#23
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d; 
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting, TempInfoCharacterID_1, TempInfoCharacterID_2;
	int DonationSize;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "fight_exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";

			d.Text = DLG_TEXT[0];
			Link.l1 = DLG_TEXT[1];
			Link.l1.go = "Node_1";
		break;

		case "Node_1":
			d.Text = DLG_TEXT[2];
			Link.l1 = DLG_TEXT[3];
			Link.l1.go = "Node_2";
			Link.l2 = DLG_TEXT[4];
			Link.l2.go = "Node_4";
		break;

		case "Node_2":
			d.Text = DLG_TEXT[5];
			Link.l1 = DLG_TEXT[6];
			Link.l1.go = "Node_3";
			Link.l2 = DLG_TEXT[7];
			Link.l2.go = "Node_4";
		break;

		case "Node_3":
			d.Text = DLG_TEXT[8];
			Link.l1 = DLG_TEXT[9];
			Link.l1.go = "Node_5";			
		break;

		case "Node_4":
			d.Text = DLG_TEXT[10];
			Link.l1 = DLG_TEXT[11];
			Link.l1.go = "Node_5";			
		break;

		case "Node_5":
			d.Text = DLG_TEXT[12];
			Link.l1 = DLG_TEXT[13];
			Link.l1.go = "exit";			
			AddDialogExitQuest("french_patrol_fight_exit");
		break;

	}
}
示例#24
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":

			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\PEBE\PEBE001";

			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1]+ Characters[GetCharacterIndex(DLG_TEXT[2])].name +" "+ Characters[GetCharacterIndex(DLG_TEXT[3])].lastname +DLG_TEXT[4];
			link.l1.go = "1";

		break;

		case "1":
			Dialog.snd = "voice\PEBE\PEBE002";
			dialog.text = DLG_TEXT[5];
			link.l1 = DLG_TEXT[6];
			link.l1.go = "2";

		break;

		case "2":
			Dialog.snd = "voice\PEBE\PEBE003";
			dialog.text = DLG_TEXT[7];
			link.l1 = DLG_TEXT[8];
			link.l1.go = "Exit_kill";
			link.l2 = DLG_TEXT[9];
			link.l2.go = "Exit_spare";

		break;

		case "Exit_kill":

			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;

			ChangeCharacterReputation(pchar, -10);

			AddDialogExitQuest("Hit_kill_Pepin");

		break;

		case "Exit_spare":

			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;

			ChangeCharacterReputation(pchar, -5);

			AddDialogExitQuest("Hit_spare_Pepin");

		break;

	}
}
示例#25
0
void ProcessDialogEvent()
{
	ref NPChar;
	
	DeleteAttribute(&Dialog,"Links");
	aref Link, NextDiag;
	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);
	int iTest;

	ref PChar;
	PChar = GetMainCharacter();


	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			if (npchar.quest.meeting == "0")
			{
				Dialog.snd = "voice\ZAMU\ZAMU001";
				Dialog.Text = TimeGreeting() + DLG_TEXT[0] + Address_form.Spa + DLG_TEXT[1];
			}
			else
			{
				Dialog.snd = "voice\ZAMU\ZAMU002";
				Dialog.Text = TimeGreeting() + DLG_TEXT[2] + pchar.name + DLG_TEXT[3];
			}
			Link.l1 = pcharrepphrase(DLG_TEXT[4], DLG_TEXT[5]);
			if (npchar.quest.meeting == "0")
			{
				Link.l1.go = "node_1"; 
			}
			else
			{
				Link.l1.go = "node_4"; 
			}
			link.l2 = pcharrepphrase(DLG_TEXT[6], DLG_TEXT[7]);
			link.l2.go = "exit";
			NextDiag.TempNode = "First time";
		break;

		case "node_1":
			Dialog.snd = "voice\ZAMU\ZAMU003";
			dialog.text = DLG_TEXT[8];
			link.l1 = pcharrepphrase(DLG_TEXT[9] + pchar.name + DLG_TEXT[10] + pchar.ship.name + DLG_TEXT[11], DLG_TEXT[12] + pchar.name + DLG_TEXT[13] + pchar.ship.name + DLG_TEXT[14]);
			link.l1.go = "node_2";
			link.l2 = pcharrepphrase(DLG_TEXT[15], DLG_TEXT[16]);
			link.l2.go = "exit";
		break;

		case "node_2":
			Dialog.snd = "voice\ZAMU\ZAMU004";
			dialog.text = DLG_TEXT[17];
			link.l1 = pcharrepphrase(DLG_TEXT[18], DLG_TEXT[19]);
			link.l1.go = "node_3";
			npchar.quest.meeting = "1";
		break;

		case "node_3":
			Dialog.snd = "voice\ZAMU\ZAMU005";
			dialog.text = DLG_TEXT[20] + npchar.name + " " + npchar.lastname + DLG_TEXT[21];
			link.l1 = pcharrepphrase(DLG_TEXT[22] + npchar.name + DLG_TEXT[23], DLG_TEXT[24]);
			link.l1.go = "node_4";
			link.l2 = pcharrepphrase(DLG_TEXT[25], DLG_TEXT[26]);
			link.l2.go = "exit";
		break;

		case "node_4":
			Dialog.snd = "voice\ZAMU\ZAMU006";
			dialog.text = DLG_TEXT[27];
			link.l1 = DLG_TEXT[28];
			link.l1.go = "rumours";
			link.l2 = DLG_TEXT[29];
			link.l2.go = "quests";
		break;

		case "rumours":
			if (characters[GetCharacterIndex("Clair Larrouse")].quest.goldmine == "0")
			{
				Dialog.snd = "voice\ZAMU\ZAMU007";
				dialog.text = DLG_TEXT[30] + Characters[GetCharacterIndex(DLG_TEXT[31])].name + " " + Characters[GetCharacterIndex(DLG_TEXT[32])].lastname + DLG_TEXT[33];
				link.l1 = DLG_TEXT[34];
				link.l1.go = "clair_1";
				link.l2 = DLG_TEXT[35];
				link.l2.go = "quests";
				link.l3 = DLG_TEXT[36];
				link.l3.go = "exit";
			}
			else
			{
				dialog.text = SelectRumour();
				link.l1 = pcharrepphrase(DLG_TEXT[37], DLG_TEXT[38]);
				link.l1.go = "exit";
				link.l2 = pcharrepphrase(DLG_TEXT[39], DLG_TEXT[40] + npchar.name + DLG_TEXT[41]);
				link.l2.go = "quests";
			}
		break;

		case "clair_1":
			Dialog.snd = "voice\ZAMU\ZAMU008";
			dialog.text = DLG_TEXT[42];
			link.l1 = pcharrepphrase(DLG_TEXT[43], DLG_TEXT[44]);
			link.l1.go = "clair_2";
		break;

		case "clair_2":
			Dialog.snd = "voice\ZAMU\ZAMU009";
			dialog.text = DLG_TEXT[45];
			link.l1 = pcharrepphrase(DLG_TEXT[46], DLG_TEXT[47]);
			link.l1.go = "quests";
			link.l2 = pcharrepphrase(DLG_TEXT[48], DLG_TEXT[49]);
			link.l2.go = "exit";
			characters[GetCharacterIndex("Clair Larrouse")].quest.goldmine = "1";
		break;

		case "quests":
			iTest = 0;
			Dialog.snd = "voice\ZAMU\ZAMU010";
			Dialog.text = DLG_TEXT[50];
			//////////////////////////////
			// Выдача квестов
			//////////////////////////////
			if (npchar.quest_begin == "0")
			{
				if (characters[GetCharacterIndex("Vigila Mendes")].quest.escort == "0")
				{
					link.l1 = pcharrepphrase(DLG_TEXT[51], DLG_TEXT[52]);
					link.l1.go = "escort_1";
				}
				if ((characters[GetCharacterIndex("Vigila Mendes")].quest.escort == "done")&&(npchar.quest.end_escort == "0"))
				{
					link.l1 = pcharrepphrase(DLG_TEXT[53], DLG_TEXT[54]);
					link.l1.go = "end_escort_1";
					npchar.quest.end_escort = "done";
				}
				if ((npchar.quest.bandits == "0")&&(npchar.quest.end_escort == "done"))
				{
					link.l1 = pcharrepphrase(DLG_TEXT[55], DLG_TEXT[56]);
					link.l1.go = "bandits_1";
				}
				if (npchar.quest.bandits == "1")
				{
					link.l1 = pcharrepphrase(DLG_TEXT[57], DLG_TEXT[58]);
					link.l1.go = "bandits_01";
				}
				if (npchar.quest.bandits == "2")
				{
					link.l1 = DLG_TEXT[59];
					link.l1.go = "exit";
				}
				if (npchar.quest.bandits == "3")
				{
					link.l1 = DLG_TEXT[60];
					link.l1.go = "bandits_over";
				}
			}
			Link.l99 = DLG_TEXT[61];
			Link.l99.go = "exit";
		break;

		case "bandits_over":
			Dialog.snd = "voice\ZAMU\ZAMU011";
			dialog.text = DLG_TEXT[62];
			link.l1 = DLG_TEXT[63];
			link.l1.go = "exit";
			npchar.quest.bandits = "done";
			AddpartyExp(pchar, 1800);
			Officersreaction("good");
			ChangeCharacterReputation(pchar, 2);
			AddMoneyToCharacter(pchar, 800);
			npchar.location = "none";
		break;

		case "bandits_01":
			Dialog.snd = "voice\ZAMU\ZAMU012";
			dialog.text = DLG_TEXT[64];
			link.l1 = pcharrepphrase(DLG_TEXT[65], DLG_TEXT[66]);
			link.l1.go = "bandits_4";
			link.l2 = pcharrepphrase(DLG_TEXT[67], DLG_TEXT[68]);
			link.l2.go = "exit"
		break;

		case "bandits_1":
			Dialog.snd = "voice\ZAMU\ZAMU013";
			dialog.text = DLG_TEXT[69];
			link.l1 = DLG_TEXT[70];
			link.l1.go = "bandits_2";
		break;

		case "bandits_2":
			Dialog.snd = "voice\ZAMU\ZAMU014";
			dialog.text = DLG_TEXT[71];
			link.l1 = pcharrepphrase(DLG_TEXT[72], DLG_TEXT[73]);
			link.l1.go = "bandits_3";
		break;

		case "bandits_3":
			Dialog.snd = "voice\ZAMU\ZAMU015";
			dialog.text = DLG_TEXT[74];
			link.l1 = pcharrepphrase(DLG_TEXT[75], DLG_TEXT[76]);
			link.l1.go = "bandits_4";
			link.l2 = pcharrepphrase(DLG_TEXT[77], DLG_TEXT[78]);
			link.l2.go = "exit";
			npchar.quest.bandits = "1";
		break;

		case "bandits_4":
			Dialog.snd = "voice\ZAMU\ZAMU022";
			dialog.text = DLG_TEXT[79];
			link.l1 = pcharrepphrase(DLG_TEXT[80], DLG_TEXT[81]);
			link.l1.go = "exit";
			npchar.quest.bandits = "begin";
			SetQuestHeader("nurro");
			AddQuestrecord("murro", "1");
			pchar.quest.revenge_for_bandits.win_condition.l1 = "location";
			pchar.quest.revenge_for_bandits.win_condition.l1.location = "Muelle_town_exit";
			pchar.quest.revenge_for_bandits.win_condition = "revenge_for_bandits_complete";
		break;

		case "end_escort_1":
			Dialog.snd = "voice\ZAMU\ZAMU016";
			dialog.text = DLG_TEXT[82] + address_form.spa + DLG_TEXT[83];
			link.l1 = DLG_TEXT[84];
			link.l1.go = "end_escort_2";
		break;

		case "end_escort_2":
			Dialog.snd = "voice\ZAMU\ZAMU017";
			dialog.text = DLG_TEXT[85];
			link.l1 = pcharrepphrase(DLG_TEXT[86], DLG_TEXT[87]);
			link.l1.go = "end_escort_3";
		break;

		case "end_escort_3":
			Dialog.snd = "voice\ZAMU\ZAMU018";
			dialog.text = DLG_TEXT[88];
			link.l1 = DLG_TEXT[89];
			link.l1.go = "exit";
			npchar.quest.end_escort = "done";
			AddDialogExitQuest("zaid_to_muelle_town");
		break;

		case "escort_1":
			Dialog.snd = "voice\ZAMU\ZAMU019";
			dialog.text = DLG_TEXT[90];
			link.l1 = pcharrepphrase(DLG_TEXT[91], DLG_TEXT[92]);
			link.l1.go = "escort_2";
		break;

		case "escort_2":
			Dialog.snd = "voice\ZAMU\ZAMU020";
			dialog.text = DLG_TEXT[93];
			link.l1 = pcharrepphrase(DLG_TEXT[94], DLG_TEXT[95]);
			link.l1.go = "escort_3";
		break;

		case "escort_3":
			Dialog.snd = "voice\ZAMU\ZAMU021";
			dialog.text = DLG_TEXT[96];
			link.l1 = pcharrepphrase(DLG_TEXT[97], DLG_TEXT[98]);
			link.l1.go = "exit";
			characters[GetCharacterIndex("Vigila Mendes")].quest.escort = "1";
		break;

		case "Exit":
			NextDiag.CurrentNode = NextDiag.TempNode;
			DialogExit();
		break;
	}
}
示例#26
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag, NextDiag;
	string NPC_Meeting;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	makearef(NextDiag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			
			if (pchar.quest.main_line == "to_rudnik" || pchar.quest.main_line == "after_library")
			{
				Dialog.snd = "voice\STBO\STBO001";
				dialog.text = DLG_TEXT[0];
				link.l1 = DLG_TEXT[1];
				link.l1.go = "kick";
			}
			else
			{
				if(NPChar.quest.meeting == "0")
				{
					Dialog.snd = "voice\STBO\STBO002";
					d.Text = DLG_TEXT[2] + address_form.eng + DLG_TEXT[3] + pchar.name + " " + pchar.lastname + DLG_TEXT[4];
					Link.l1 = pcharrepphrase(DLG_TEXT[5], DLG_TEXT[6]);
					Link.l1.go = "meeting";
					NPC_Meeting = "1"; 
				}
				else
				{
					Dialog.snd = "voice\STBO\STBO003";
					d.Text = DLG_TEXT[7];
					link.l1 = DLG_TEXT[8];
					Link.l1.go = "meeting";
				}
			}
			Diag.TempNode = "First Time";
		break;

		case "kick":
			Dialog.snd = "voice\STBO\STBO004";
			dialog.text = DLG_TEXT[9];
			link.l1 = DLG_TEXT[10];
			link.l1.go = "kick_2";
		break;

		case "kick_2":
			Dialog.snd = "voice\STBO\STBO005";
			dialog.text = DLG_TEXT[11];
			link.l1 = DLG_TEXT[12];
			link.l1.go = "kick_exit";
		break;

		case "kick_exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("kicked_to_mine_complete");
		break;

		case "Meeting":
			if (pchar.location.from_sea == "Redmond_shore_02")
			{
				Dialog.snd = "voice\STBO\STBO006";
				dialog.text = DLG_TEXT[13] + characters[GetCharacterIndex(DLG_TEXT[14])].name + DLG_TEXT[15];
				link.l1 = pcharrepphrase(DLG_TEXT[16], DLG_TEXT[17]);
				link.l1.go = "node_1";
			}
			else
			{
				Dialog.snd = "voice\STBO\STBO007";
				dialog.text = DLG_TEXT[18];
				link.l1 = pcharrepphrase(DLG_TEXT[19], DLG_TEXT[20]);
				link.l1.go = "exit";
			}
		break;

		case "node_1":
			Dialog.snd = "voice\STBO\STBO008";
			dialog.text = DLG_TEXT[21];
			link.l1 = DLG_TEXT[22];
			link.l1.go = "exit";
			AddDialogExitQuest("stephan_bonser_attack")
			characters[GetCharacterIndex("Thomas O'Reily")].quest.contraband = "after_fight";
		break;
		
	}
}
示例#27
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\YEKI\YEKI001";
			
			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "exit";

			if (characters[GetCharacterIndex("Father Bernard")].quest.church_help == "to_dautch")
			{
				link.l1 = DLG_TEXT[2];
				link.l1.go = "church_help";
			}
			NextDiag.TempNode = "first time";
		break;

		case "church_help":
			Dialog.snd = "voice\YEKI\YEKI002";
			dialog.text = DLG_TEXT[3];
			link.l1 = DLG_TEXT[4];
			link.l1.go = "good";
			link.l2 = DLG_TEXT[5];
			link.l2.go = "bad";
		break;

		case "good":
			Dialog.snd = "voice\YEKI\YEKI003";
			dialog.text = DLG_TEXT[6];
			link.l1 = DLG_TEXT[7];
			link.l1.go = "good_2";
		break;

		case "good_2":
			Dialog.snd = "voice\YEKI\YEKI004";
			dialog.text = DLG_TEXT[8];
			link.l1 = DLG_TEXT[9];
			link.l1.go = "good_3";
			link.l2 = DLG_TEXT[10];
			link.l2.go = "bad";
		break;

		case "good_3":
			Dialog.snd = "voice\YEKI\YEKI005";
			dialog.text = DLG_TEXT[11];
			link.l1 = DLG_TEXT[12];
			link.l1.go = "good_4";
			link.l2 = DLG_TEXT[13];
			link.l2.go = "bad";
		break;

		case "good_4":
			Dialog.snd = "voice\YEKI\YEKI006";
			dialog.text = DLG_TEXT[14];
			link.l1 = DLG_TEXT[15];
			link.l1.go = "good_5";
		break;

		case "good_5":
			if (GetCharacterSkill(pchar, SKILL_LEADERSHIP) > 3)
			{
				Dialog.snd = "voice\YEKI\YEKI007";
				dialog.text = DLG_TEXT[16];
				if (makeint(pchar.money) >=2000)
				link.l1 = DLG_TEXT[17];
				link.l1.go = "good_6";
				if (makeint(pchar.rank) > 4)
				{
					link.l2 = DLG_TEXT[18];
					link.l2.go = "good_7";
				}
			}
			else
			{
				Dialog.snd = "voice\YEKI\YEKI008";
				dialog.text = DLG_TEXT[19];
				link.l1 = DLG_TEXT[20];
				link.l1.go = "exit";
				characters[GetCharacterIndex("Father Bernard")].quest.church_help = "dautch_denied";
				AddQuestRecord("church_help", "9");
			}
		break;

		case "good_6":
			Dialog.snd = "voice\YEKI\YEKI009";
			AddMoneyToCharacter(pchar, -2000);
			dialog.text = DLG_TEXT[21];
			link.l1 = DLG_TEXT[22];
			link.l1.go = "exit";
			AddQuestRecord("church_help", "10");
			AddPartyExp(pchar, 900);
			characters[GetCharacterIndex("Father bernard")].quest.church_help = "good_dautch";
		break;

		case "good_7":
			Dialog.snd = "voice\YEKI\YEKI010";
			dialog.text = DLG_TEXT[23];
			link.l1 = DLG_TEXT[24];
			link.l1.go = "exit";
			AddQuestRecord("church_help", "10");
			AddPartyExp(pchar, 1200);
			characters[GetCharacterIndex("Father bernard")].quest.church_help = "good_dautch";
		break;

		case "bad":
			Dialog.snd = "voice\YEKI\YEKI011";
			dialog.text = DLG_TEXT[25];
			link.l1 = DLG_TEXT[26];
			link.l1.go = "bad_2";
		break;

		case "bad_2":
			Dialog.snd = "voice\YEKI\YEKI012";
			dialog.text = DLG_TEXT[27];
			link.l1 = DLG_TEXT[28];
			link.l1.go = "exit";
			AddDialogExitQuest("Yedam_kinne_attack");
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
		break;
	}
}
示例#28
0
void ProcessDialogEvent()
{
	ref NPChar;
	aref Link, NextDiag;

	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makearef(NextDiag, NPChar.Dialog);

	ref PChar;
	PChar = GetMainCharacter();

	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "dialogs\0\009";
			
			if (npchar.location == "Oxbay_mine")
			{
				dialog.text = DLG_TEXT[0];
				link.l1 = DLG_TEXT[1];
				link.l1.go = "exit";
			}
			else
			{
				dialog.text = DLG_TEXT[2];
				link.l1 = DLG_TEXT[3];
				link.l1.go = "exit";
			}

			if (pchar.quest.main_line == "slave_in_oxbay_mine_begin")
			{
				Dialog.Text = DLG_TEXT[4];
				Link.l1 = DLG_TEXT[5];
				Link.l1.go = "node_2";
			}
			if (pchar.quest.main_line == "talk_with_Liborio")
			{
				Dialog.Text = DLG_TEXT[6];
				Link.l1 = DLG_TEXT[7];
				Link.l1.go = "learn";
			}
			if (pchar.quest.main_line == "resque_leborio")
			{
				dialog.text = DLG_TEXT[8];
				link.l1 = DLG_TEXT[9];
				link.l1.go = "bad_story";
			}
			if (pchar.quest.main_line == "resque_leborio_bad")
			{
				dialog.text = DLG_TEXT[10];
				link.l1 = DLG_TEXT[11];
				link.l1.go = "hire";
			}
			if (pchar.quest.main_line == "resque_leborio_denied")
			{
				dialog.text = DLG_TEXT[12];
				link.l1 = DLG_TEXT[13];
				link.l1.go = "exit";
				link.l2 = DLG_TEXT[14];
				link.l2.go = "learn_4";
			}
			if (npchar.quest.hire == "not_hired" && pchar.location == "Falaise_De_Fleur_tavern")
			{
				dialog.text = DLG_TEXT[15];
				link.l1 = DLG_TEXT[16];
				link.l1.go = "hire_4";
				link.l2 = DLG_TEXT[17];
				link.l2.go = "exit";
			}
			if (pchar.quest.main_line == "resque_from_mines_denied")
			{
				dialog.text = DLG_TEXT[18];
				link.l1 = DLG_TEXT[19];
				link.l1.go = "resque_from_mines_denied_2";
			}
			if (pchar.quest.main_line == "lets_go_mines")
			{
				dialog.text = DLG_TEXT[20];
				link.l1 = DLG_TEXT[21];
				link.l1.go = "lets_go_exit";
			}
			if (pchar.quest.main_line == "after_speak_with_leborio" && npchar.quest.hire == "ask_for_hire")
			{
				dialog.text = DLG_TEXT[22];
				link.l1 = DLG_TEXT[23];
				link.l1.go = "passenger_exit";
				link.l2 = DLG_TEXT[24];
				link.l2.go = "fight";
			}
			if (pchar.quest.main_line == "talk_with_Liborio_2")
			{
				Dialog.Text = DLG_TEXT[25];
				Link.l1 = DLG_TEXT[26];
				Link.l1.go = "knowlege";
			}
			if( CheckQuestAttribute("FindMysteriousTablet","TabletBroken") )
			{
				Dialog.Text = DLG_TEXT[27];
				link.l1 = DLG_TEXT[28];
				link.l1.go = "Tablet_copy_1";
			}
			if( CheckQuestAttribute("FindMysteriousTablet","ToMine") )
			{
				Dialog.Text = DLG_TEXT[29];
				link.l1 = DLG_TEXT[30];
				link.l1.go = "knowlege";
			}
			NextDiag.TempNode = "first time";
		break;

		case "Tablet_copy_1":
			Dialog.Text = DLG_TEXT[31];
			link.l1 = DLG_TEXT[32];
			link.l1.go = "exit";
		break;

		case "knowlege":
			dialog.text = DLG_TEXT[33];
			link.l1 = DLG_TEXT[34];
			link.l1.go = "learn_4";
			link.l2 = DLG_TEXT[35];
			link.l2.go = "bad_learn";
		break;

		case "passenger_exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogexitQuest("leborio_drago_passenger_exit");
		break;

		case "fight":
			dialog.text = DLG_TEXT[36];
			link.l1 = DLG_TEXT[37];
			link.l1.go = "exit";
			AddDialogExitQuest("leborio_drago_fight_exit");
		break;

		case "lets_go_exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("lets_go_begin");
		break;

		case "resque_from_mines_denied_2":
			dialog.text = DLG_TEXT[38];
			link.l1 = DLG_TEXT[39];
			link.l1.go = "resque_from_mines_denied_3";
		break;
		
		case "resque_from_mines_denied_3":
			dialog.text = DLG_TEXT[40];
			link.l1 = DLG_TEXT[41];
			link.l1.go = "resque_from_mines_denied_4";
		break;

		case "resque_from_mines_denied_4":
			dialog.text = DLG_TEXT[42];
			link.l1 = DLG_TEXT[43];
			link.l1.go = "resque_from_mines_denied_5";
		break;

		case "resque_from_mines_denied_5":
			dialog.text = DLG_TEXT[44];
			link.l1 = DLG_TEXT[45];
			link.l1.go = "resque_from_mines_denied_6";
		break;

		case "resque_from_mines_denied_6":
			dialog.text = DLG_TEXT[46];
			link.l1 = DLG_TEXT[47];
			link.l1.go = "resque_from_mines_denied_7";
		break;

		case "resque_from_mines_denied_7":
			dialog.text = DLG_TEXT[48];
			link.l1 = DLG_TEXT[49];
			link.l1.go = "resque_from_mines_denied_8";
		break;

		case "resque_from_mines_denied_8":
			dialog.text = DLG_TEXT[50];
			link.l1 = DLG_TEXT[51];
			link.l1.go = "resque_from_mines_denied_9";
		break;

		case "resque_from_mines_denied_9":
			dialog.text = DLG_TEXT[52];
			link.l1 = DLG_TEXT[53];
			link.l1.go = "resque_from_mines_denied_10";
		break;

		case "resque_from_mines_denied_10":
			dialog.text = DLG_TEXT[54];
			link.l1 = DLG_TEXT[55];
			link.l1.go = "resque_from_mines_denied_11";
		break;

		case "resque_from_mines_denied_11":
			dialog.text = DLG_TEXT[56];
			link.l1 = DLG_TEXT[57];
			link.l1.go = "resque_from_mines_denied_exit";
			AddQuestRecord("search_danielle", "15");
		break;

		case "resque_from_mines_denied_exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			AddDialogExitQuest("wait_for_resque_from_mines");
		break;

		case "learn":
			dialog.text = DLG_TEXT[58];
			link.l1 = DLG_TEXT[59];
			link.l1.go = "learn_2";
		break;

		case "learn_2":
			dialog.text = DLG_TEXT[60] + characters[GetCharacterIndex(DLG_TEXT[61])].name + " " + characters[GetCharacterIndex(DLG_TEXT[62])].lastname + DLG_TEXT[63];
			link.l1 = DLG_TEXT[64];
			link.l1.go = "learn_3";
			link.l2 = DLG_TEXT[65];
			link.l2.go = "bad_learn";
		break; 

		case "learn_3":
			dialog.text = DLG_TEXT[66];
			link.l1 = DLG_TEXT[67];
			link.l1.go = "learn_4";
			link.l2 = DLG_TEXT[68];
			link.l2.go = "bad_learn";
		break;

		case "learn_4":
			dialog.text = DLG_TEXT[69];
			pchar.quest.main_line = "ask_for_resque_leborio";
			link.l1 = DLG_TEXT[70];
			link.l1.go = "exit";
			link.l2 = DLG_TEXT[71];
			link.l2.go = "bad_learn";
			AddQuestRecord("search_danielle", "17");
		break;

		case "bad_learn":
			dialog.text = DLG_TEXT[72];
			link.l1 = DLG_TEXT[73];
			link.l1.go = "bad_story";
		break;

		case "bad_story":
			dialog.text = DLG_TEXT[74];
			link.l1 = DLG_TEXT[75];
			link.l1.go = "bad_story_2";
			AddQuestRecord("search_danielle", "18");
			NextDiag.tempnode = "first time";
		break;

		case "bad_story_2":
			dialog.text = DLG_TEXT[76];
			link.l1 = DLG_TEXT[77];
			link.l1.go = "bad_story_3";
		break;

		case "bad_story_3":
			dialog.text = DLG_TEXT[78];
			link.l1 = DLG_TEXT[79];
			if (pchar.id == "Blaze")
			{
				link.l1.go = "bad_story_4";
			}
			else
			{
				pchar.quest.FindMysteriousTablet = "FindCopy";
				if (npchar.location == "Oxbay_mine")
				{
					link.l1.go = "exit";
					pchar.quest.main_line = "bad_story";
				}
				else
				{
					link.l1.go = "hire";
				}
			}
		break;

		case "bad_story_4":
			dialog.text = DLG_TEXT[80];
			link.l1 = DLG_TEXT[81];
			link.l1.go = "bad_story_5";
		break;

		case "bad_story_5":
			dialog.text = DLG_TEXT[82];
			link.l1 = DLG_TEXT[83];
			if (pchar.quest.main_line == "resque_leborio")
			{
				link.l1.go = "hire";
				pchar.quest.main_line = "hire_leborio";
			}
			else
			{
				link.l1.go = "exit";
				pchar.quest.main_line = "after_speak_with_leborio";
			}
		break;

		case "hire":
			dialog.text = DLG_TEXT[84];
			link.l1 = DLG_TEXT[85];
			link.l1.go = "hire_2";
			OfficersReaction("good");
		break;

		case "hire_2":
			dialog.text = DLG_TEXT[86];
			link.l1 = DLG_TEXT[87];
			link.l1.go = "hire_3";
		break;

		case "hire_3":
			dialog.text = DLG_TEXT[88];
			link.l1 = DLG_TEXT[89];
			link.l1.go = "hire_4";
			link.l2 = DLG_TEXT[90];
			link.l2.go = "hire_denied";
		break;

		case "hire_4":
			dialog.text = DLG_TEXT[91];
			link.l1 = DLG_TEXT[92];
			link.l1.go = "hire_5";
		break;

		case "hire_5":
			dialog.text = DLG_TEXT[93];
			if (makeint(pchar.money) >= 1500)
			{
				link.l1 = DLG_TEXT[94];
				link.l1.go = "hire_6";
			}
			link.l2 = DLG_TEXT[95];
			link.l2.go = "hire_denied";
			if(pchar.id == "Blaze")
			{
				pchar.quest.main_line = "to_isla_muelle";
			}
		break;
		
		case "hire_6":
			dialog.text = DLG_TEXT[96];
			link.l1 = DLG_TEXT[97] + pchar.ship.name + DLG_TEXT[98];
			link.l1.go = "exit";
			npchar.quest.hire = "hired";
			AddMoneyToCharacter(pchar, -1500);
			AddPassenger(pchar, npchar, -1);
			GiveItem2Character(npchar, "blade1");
			EquipCharacterByItem(npchar, "blade1");	
			npchar.dialog.currentnode = "hired";		
		break;

		case "hire_denied":
			dialog.text = DLG_TEXT[99];
			link.l1 = DLG_TEXT[100];
			link.l1.go = "exit";
			AddDialogExitQuest("leborio_hire_denied");
			npchar.quest.hire = "not_hired";
		break;

		case "node_2":
			dialog.text = DLG_TEXT[101];
			link.l1 = DLG_TEXT[102];
			link.l1.go = "node_3";
		break;

		case "node_3":
			dialog.text = DLG_TEXT[103];
			link.l1 = DLG_TEXT[104];
			link.l1.go = "node_4";
		break;

		case "node_4":
			dialog.text = DLG_TEXT[105];
			link.l1 = DLG_TEXT[106];
			link.l1.go = "node_5";
			pchar.quest.main_line = "slave_in_oxbay_mine_begin_1";
			link.l2 = DLG_TEXT[107];
			link.l2.go = "node_5";
			AddQuestRecord("search_danielle", "12");
		break;

		case "node_5":
			dialog.text = DLG_TEXT[108];
			link.l1 = DLG_TEXT[109];
			link.l1.go = "exit";
			AddDialogExitQuest("miner_again_kick_exit");
		break;

		case "Exit_2":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			pchar.quest.main_line = "blaze_in_mine";
			EndQuestMovie();
		break;

		case "Exit":
			DialogExit();
			NextDiag.CurrentNode = NextDiag.TempNode;
			EndQuestMovie();
		break;
		
		case "hired":
			Dialog.text = DLG_TEXT[110];
			link.l1 = DLG_TEXT[111];
			link.l1.go = "exit";
		break;
	}
}
示例#29
0
void ProcessDialogEvent()
{
	ref NPChar, PChar, d;
	PChar = GetMainCharacter();
	aref Link, Diag;
	string NPC_Meeting;
	
	DeleteAttribute(&Dialog,"Links");

	makeref(NPChar,CharacterRef);
	makearef(Link, Dialog.Links);
	makeref(d, Dialog);
	makearef(Diag, NPChar.Dialog);
	
	switch(Dialog.CurrentNode)
	{
		// -----------------------------------Диалог первый - первая встреча
		case "exit":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
		break;

		case "First time":
			Dialog.defAni = "dialog_stay1";
			Dialog.defCam = "1";
			Dialog.defSnd = "dialogs\0\017";
			Dialog.defLinkAni = "dialog_1";
			Dialog.defLinkCam = "1";
			Dialog.defLinkSnd = "dialogs\woman\024";
			Dialog.ani = "dialog_stay2";
			Dialog.cam = "1";
			Dialog.snd = "voice\VIDE\VIDE001";
			
			dialog.text = DLG_TEXT[0];
			link.l1 = DLG_TEXT[1];
			link.l1.go = "exit";

			if (CheckQuestAttribute("gambling_with_girl", "gambled"))
			{
				Dialog.snd = "voice\VIDE\VIDE002";
				dialog.text = DLG_TEXT[2];
				link.l1 = DLG_TEXT[3];
				link.l1.go = "she_becomes_prisoner";
				link.l2 =  DLG_TEXT[4];
				link.l2.go = "she_story";
				AddQuestRecord("gambled_girl", "4");
			}		
			if (CheckQuestAttribute("gambling_with_girl", "to_hovernor"))
			{
				Dialog.snd = "voice\VIDE\VIDE019";
				dialog.text = DLG_TEXT[5];
				link.l1 = DLG_TEXT[6];
				link.l1.go = "to_home";
			}
		break;

		case "to_home":
			Dialog.snd = "voice\VIDE\VIDE003";
			dialog.text = DLG_TEXT[7];
			if (GetNationRelation2MainCharacter(FRANCE) == RELATION_ENEMY)
			{
				link.l1 = DLG_TEXT[8];
				link.l1.go = "to_home_bad";
				AddQuestRecord("gambled_girl", "11");
			}
			else
			{
				link.l1 = DLG_TEXT[9];
				link.l1.go = "exit";
			}
			pchar.quest.gambling_with_girl = "to_hovernor_2";
			AddQuestRecord("gambled_girl", "10");
		break;

		case "to_home_bad":
			Dialog.snd = "voice\VIDE\VIDE004";
			dialog.text = DLG_TEXT[10];
			link.l1 = DLG_TEXT[11];
			link.l1.go = "to_home_bad_2";
			link.l2 = DLG_TEXT[12];
			link.l2.go = "exit";
		break;

		case "to_home_bad_2":
			Dialog.snd = "voice\VIDE\VIDE005";
			dialog.text = DLG_TEXT[13];
			link.l1 = DLG_TEXT[14];
			link.l1.go = "exit";
			pchar.quest.gambling_with_girl = "done";
			npchar.location = "none";
			ChangeCharacterReputation(pchar, 1);
			OfficersReaction("good");
			AddPartyExp(pchar, 2000);
			AddQuestRecord("gambled_girl", "12");
		break;

		case "she_story":
			Dialog.snd = "voice\VIDE\VIDE006";
			dialog.text = DLG_TEXT[15];
			link.l1 = DLG_TEXT[16];
			link.l1.go = "she_story_2";
		break;

		case "she_story_2":
			Dialog.snd = "voice\VIDE\VIDE007";
			dialog.text = DLG_TEXT[17] + GetCharacterFullName(npchar.id) + DLG_TEXT[18];
			link.l1 = DLG_TEXT[19];
			link.l1.go = "she_story_3";
		break;

		case "she_story_3":
			Dialog.snd = "voice\VIDE\VIDE008";
			dialog.text = DLG_TEXT[20];
			link.l1 = DLG_TEXT[21];
			link.l1.go = "she_story_4";
		break;

		case "she_story_4":
			Dialog.snd = "voice\VIDE\VIDE009";
			dialog.text = DLG_TEXT[22];
			link.l1 = DLG_TEXT[23];
			link.l1.go = "she_story_5";
		break;

		case "she_story_5":
			Dialog.snd = "voice\VIDE\VIDE010";
			dialog.text = DLG_TEXT[24];
			link.l1 = DLG_TEXT[25];
			link.l1.go = "she_story_6";
		break;

		case "she_story_6":
			Dialog.snd = "voice\VIDE\VIDE011";
			dialog.text = DLG_TEXT[26];
			link.l1 = DLG_TEXT[27];
			link.l1.go = "she_story_7";
			link.l2 = DLG_TEXT[28];
			link.l2.go = "she_story_bad";
			AddQuestRecord("gambled_girl", "6");
		break;

		case "she_story_7":
			Dialog.snd = "voice\VIDE\VIDE012";
			dialog.text = DLG_TEXT[29];
			link.l1 = DLG_TEXT[30];
			link.l1.go = "she_story_8";
		break;

		case "she_story_8":
			Dialog.snd = "voice\VIDE\VIDE013";
			dialog.text = DLG_TEXT[31];
			link.l1 = DLG_TEXT[32];
			link.l1.go = "she_story_9";
		break;

		case "she_story_9":
			Dialog.snd = "voice\VIDE\VIDE014";
			dialog.text = DLG_TEXT[33] + GetCharacterFullName(DLG_TEXT[34]) + DLG_TEXT[35];
			link.l1 = DLG_TEXT[36];
			link.l1.go = "exit";
			AddDialogExitQuest("gambled_girl_to_FdF");
			AddQuestRecord("gambled_girl", "7");
		break;

		case "she_story_bad":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			AddDialogExitQuest("girl_exit_from_room");
			AddQuestRecord("gambled_girl", "8");
		break;

		case "speak_1":
			Dialog.snd = "voice\VIDE\VIDE015";
			dialog.text = DLG_TEXT[37];
			link.l1 = DLG_TEXT[38];
			link.l1.go = "exit";
			characters[GetCharacterIndex("Raymond Bouchez")].dialog.currentnode = "speak_1";
			AddDialogExitQuest("Raymond_speak");
		break;

		case "speak_2":
			Dialog.snd = "voice\VIDE\VIDE016";
			dialog.text = DLG_TEXT[39];
			link.l1 = DLG_TEXT[40];
			link.l1.go = "exit";
			characters[GetCharacterIndex("Raymond Bouchez")].dialog.currentnode = "speak_2";
			AddDialogExitQuest("Raymond_speak");
		break;

		case "speak_3":
			Dialog.snd = "voice\VIDE\VIDE017";
			dialog.text = DLG_TEXT[41];
			link.l1 = DLG_TEXT[42];
			link.l1.go = "exit";
			AddDialogExitQuest("gambled_girl_exit_from_FDF_tavern");
			Diag.TempNode = "first time";
			AddQuestRecord("gambled_girl", "9");
		break;

		case "she_becomes_prisoner":
			Dialog.snd = "voice\VIDE\VIDE018";
			dialog.text = DLG_TEXT[43] + GetCharacterFullName(npchar.id) + DLG_TEXT[44];
			link.l1 = DLG_TEXT[45];
			link.l1.go = "exit_prisoned";
			link.l2 = DLG_TEXT[46];
			link.l2.go = "she_story_3";
		break;

		case "exit_prisoned":
			Diag.CurrentNode = Diag.TempNode;
			NPChar.quest.meeting = NPC_Meeting;
			DialogExit();
			Locations[FindLocation(pchar.location)].reload.l1.disable = 0;
			AddPassenger(pchar, npchar, 1);
			OfficersReaction("bad");
			pchar.quest.gambling_with_girl = "prisoned";
			AddDialogExitQuest("girl_for_sale");
		break;
	}
}