• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Febras Rome

seaturtle

Landlubber
Am on a quest to find some lady's husband who was taken prisoner by this captain "Febras Rome" ( has a lugger I think ) and for the fifth time I've met him on different Islands. The first time he told me the guy ( can't think of name ) was his prisoner and that I could not have him, end of discussion.( I'm suppose to board this guys ship but I can't find it.) No more more dialogs so I gave up until I met him at Saint John's. He keeps saying the same same thing of my not taking his prisoner so I figured I'd just beat it out of him. :whipa

Olefebrasromeworking.jpg


I waited until about 02:00 AM ( when the guards are few ) and sure enough the captain was strolling around town. got him trapped in a dark corner when no guards were around and drew on him. Five times in a row ( I saved game before I drew my sword ) when I drew the sword my character would sheath his sword and except for this captains name there would be a blank dialog bar ( below a pic..sorry about the dark pic )


NowFebrasRomenotworking.jpg



I could do nothing with this pic nor the game as he would move his arms around but nothing I could do but exit the game by pressing the windows key and then the famous "Send, Don't send" would appear.
I'm sure because of my sword's automatic sheathing and him waving his arms around that maybe he was giving in??

Anyone have any experience on this one?
 
Yea, I'd encountered this before. I think you're exactly right, it's some kind of scripted response to you drawing your sword but there's a bug, hence the empty dialog. One way to get around it is to simply ignore him and go about your business - sooner or later you'll run into his ship on the open sea and then he'll be at your mercy.
 
I read this post and got a little curious, I'm gonna have to figure out all this coding stuff eventually anyway, so I did a bit of investigating. I believe that the locator for this quest is SCQ_womanPirates in ForAll_Dialog.c. There must be something screwy in there somewhere, probably where it's calling a text dialog. If I understand what is going on correctly( And that is questionable at best! xD: ) it's calling the dialog from ForAll_Dialog.h. It's got to be something in one of these two code blocks, again, if I understand what is going on correctly with the calls.

Code:
			sTitle = npchar.city + "SCQ_womanPirates";
ReOpenQuestHeader(sTitle);
AddQuestRecordEx(sTitle, "SCQ_womanPirates", "1");
AddQuestUserDataForTitle(sTitle, "sCity", XI_ConvertString("Colony" + npchar.city + "Gen"));
AddQuestUserData(sTitle, "sCity", XI_ConvertString("Colony" + npchar.city + "Gen"));
AddQuestUserData(sTitle, "sShipTypeName", GetStrSmallRegister(XI_ConvertString(npchar.quest.SeekCap.shipTapeName + "Dat")));
AddQuestUserData(sTitle, "sShipTypeName2", GetStrSmallRegister(XI_ConvertString(npchar.quest.SeekCap.shipTapeName + "Gen")));
AddQuestUserData(sTitle, "sShipName", npchar.quest.SeekCap.shipName);
AddQuestUserData(sTitle, "sCapName", npchar.quest.SeekCap.capName);
AddQuestUserData(sTitle, "sName", GetFullName(npchar));
AddQuestUserData(sTitle, "sName2", GetFullName(forName));
break;
// --- ðåçóëüòàòû æåíñêèõ êâåñòîâ ---
case "SCQ_womanResult":
dialog.text = DLG_TEXT_Q[450];
link.l1 = DLG_TEXT_Q[451] + GetAddress_FormToNPC(NPChar) + DLG_TEXT_Q[452];
link.l1.go = "SCQ_womanResult_exit";
switch (npchar.quest.SeekCap)
{
case "womanHasbandover":
dialog.text = DLG_TEXT_Q[453];
link.l1 = DLG_TEXT_Q[454] + GetAddress_FormToNPC(NPChar) + DLG_TEXT_Q[455] + npchar.quest.SeekCap.capName + DLG_TEXT_Q[456];
link.l1.go = "SCQR_womanHasband";
break;
case "womanRevengeover":
dialog.text = DLG_TEXT_Q[457] + npchar.quest.SeekCap.capName + DLG_TEXT_Q[458];
link.l1 = DLG_TEXT_Q[459] + GetAddress_FormToNPC(NPChar) + DLG_TEXT_Q[460];
link.l1.go = "SCQR_womanRevenge";
break;
case "womanPiratesover":
dialog.text = DLG_TEXT_Q[461];
link.l1 = DLG_TEXT_Q[462] + npchar.quest.SeekCap.name + " " + npchar.quest.SeekCap.lastname + DLG_TEXT_Q[463];
link.l1.go = "SCQR_womanPirates";
break;
}
break;

And this :

Code:
		//========= âûçâîëåíèå ìóæà èç ïèðàòñêèõ çàòðþìêîâ =========
case "PiratesCap_inDeck": //âñòðå÷à íà ïàëóáå
sld = &characters[GetCharacterIndex("QuestCitiz_"+npchar.quest.cribCity)];
dialog.text = DLG_TEXT_Q[609];
link.l1 = DLG_TEXT_Q[610] + sld.quest.SeekCap.name + " " + sld.quest.SeekCap.lastname + ".";
link.l1.go = "PiratesCap_1";
break;
case "PiratesCap_inDeck_1":
dialog.text = DLG_TEXT_Q[611];
link.l1 = DLG_TEXT_Q[612];
link.l1.go = "PiratesCap_inDeck_2";
break;
case "PiratesCap_inDeck_2":
dialog.text = DLG_TEXT_Q[613];
link.l1 = DLG_TEXT_Q[614];
link.l1.go = "exit";
NextDiag.TempNode = "PiratesCapCap_exit";
npchar.DeckDialogNode = "PiratesCapCap_exit";
sTitle = npchar.quest.cribCity + "SCQ_" + npchar.quest.SeekCap;
AddQuestRecordEx(sTitle, "SCQ_" + npchar.quest.SeekCap, "5");
AddQuestUserData(sTitle, "sName", GetFullName(npchar));
AddQuestUserData(sTitle, "sShipTypeName", GetStrSmallRegister(XI_ConvertString(RealShips[sti(npchar.Ship.Type)].BaseName + "Gen")));
break;
case "PiratesCapCap_exit":
dialog.text = DLG_TEXT_Q[615];
link.l1 = DLG_TEXT_Q[616];
link.l1.go = "exit";
break;
case "PiratesCap": //âñòðå÷à íà ñóøå
sld = &characters[GetCharacterIndex("QuestCitiz_"+npchar.quest.cribCity)];
dialog.text = DLG_TEXT_Q[617];
link.l1 = DLG_TEXT_Q[618] + sld.quest.SeekCap.name + " " + sld.quest.SeekCap.lastname + ".";
link.l1.go = "PiratesCap_1";
break;
case "PiratesCap_1":
dialog.text = DLG_TEXT_Q[619];
link.l1 = DLG_TEXT_Q[620];
link.l1.go = "PiratesCap_2";
break;
case "PiratesCap_2":
dialog.text = DLG_TEXT_Q[621];
link.l1 = DLG_TEXT_Q[622];
link.l1.go = "exit";
NextDiag.TempNode = "PiratesCapCap_exit";
npchar.DeckDialogNode = "PiratesCapCap_exit";
sTitle = npchar.quest.cribCity + "SCQ_" + npchar.quest.SeekCap;
AddQuestRecordEx(sTitle, "SCQ_" + npchar.quest.SeekCap, "5");
AddQuestUserData(sTitle, "sName", GetFullName(npchar));
AddQuestUserData(sTitle, "sShipTypeName", GetStrSmallRegister(XI_ConvertString(RealShips[sti(npchar.Ship.Type)].BaseName + "Gen")));
break;
case "PiratesCap_Board": //àáîðäàæ
sld = &characters[GetCharacterIndex("QuestCitiz_"+npchar.quest.cribCity)];
dialog.text = DLG_TEXT_Q[623];
link.l1 = DLG_TEXT_Q[624] + sld.quest.SeekCap.name + " " + sld.quest.SeekCap.lastname + ".";
link.l1.go = "PiratesCap_Board_1";
break;
case "PiratesCap_Board_1":
dialog.text = DLG_TEXT_Q[625];
link.l1 = DLG_TEXT_Q[626];
link.l1.go = "PiratesCap_Board_2";
break;
case "PiratesCap_Board_2":
LAi_SetCurHPMax(npchar);
QuestAboardCabinDialogFree(); // âàæíûé ìåòîä
LAi_group_SetRelation(LAI_GROUP_BRDENEMY, LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
LAi_group_FightGroups(LAI_GROUP_BRDENEMY, LAI_GROUP_PLAYER, true);
LAi_group_SetCheck(LAI_GROUP_BRDENEMY, "CitizSeekCap_afterCabinFight");
pchar.GenQuest.CitizSeekCap.label = npchar.quest.SeekCap; //ôëàã êâåñòà äëÿ íïñ
pchar.GenQuest.CitizSeekCap.nation = npchar.nation;	//íàöèþ äëÿ íïñ
pchar.GenQuest.CitizSeekCap.model = "citiz_"+(rand(9)+1); //ìîäåëü äëÿ íïñ
pchar.GenQuest.CitizSeekCap.sex = "man";
pchar.GenQuest.CitizSeekCap.ani = "man";
pchar.GenQuest.CitizSeekCap.WifeCity = npchar.quest.cribCity; //èñõîäíûé ãîðîä äëÿ íïñ
sld = &characters[GetCharacterIndex("QuestCitiz_"+npchar.quest.cribCity)];
pchar.GenQuest.CitizSeekCap.WifeName = sld.quest.SeekCap.name; //èìÿ è ôàìèëèþ äëÿ íïñ
pchar.GenQuest.CitizSeekCap.WifeLastname = sld.quest.SeekCap.lastname;
DialogExit();
AddDialogExitQuest("MainHeroFightModeOn");
break;

I thought there may be something in there referring to a wrong line in ForAll_Dialog.h. I have no idea what the problem is though! :shrug
 
Yea, I'd encountered this before. I think you're exactly right, it's some kind of scripted response to you drawing your sword but there's a bug, hence the empty dialog. One way to get around it is to simply ignore him and go about your business - sooner or later you'll run into his ship on the open sea and then he'll be at your mercy.


Actually that may be best for the log does say I need to board his ship, IF I can ever find it. :?

Thanks Sordid. :cheers


EDIT: Thagarr, sorry I did not see your post in time. :facepalm Thanks for looking. :onya
 
No problem mate, I think I may have found it, but I am not quite sure. You say this is the fifth time you have ran into him, but the first time you have gotten the blank dialog? If you read through the code above, there is this :

Code:
case "PiratesCap_2":
dialog.text = DLG_TEXT_Q[621];
link.l1 = DLG_TEXT_Q[622];
link.l1.go = "exit";
NextDiag.TempNode = "PiratesCapCap_exit";
npchar.DeckDialogNode = "PiratesCapCap_exit";
sTitle = npchar.quest.cribCity + "SCQ_" + npchar.quest.SeekCap;
AddQuestRecordEx(sTitle, "SCQ_" + npchar.quest.SeekCap, "5");
AddQuestUserData(sTitle, "sName", GetFullName(npchar));
AddQuestUserData(sTitle, "sShipTypeName", GetStrSmallRegister(XI_ConvertString(RealShips[sti(npchar.Ship.Type)].BaseName + "Gen")));

The string npchar.quest.SeekCap is being set to 5. I am wondering if that is setting a max limit on the number of times that you can run into this particular quest and have a chance at changing the outcome, i.e. fighting the pirate captain. I was only able to find this string referenced in one other file. This from LSC_Q2Utilite.c :

Code:
//ðàçûñê êýïà îò ãîðîæàí. çàïèñòü â êâåñòáóê èç ñëóõîâ
void CitizSeekCap_writeQuestBook(ref rid)
{
int iTemp = GetCharacterIndex(rid.addString)
if (iTemp != -1)
{
ref sld = &characters[iTemp];
if (LAi_IsDead(sld)) return;
ref npchar = &characters[GetCharacterIndex("QuestCitiz_" + sld.quest.cribCity)];
string sTitle = sld.quest.cribCity + "SCQ_" + npchar.quest.SeekCap;
AddQuestRecordEx(sTitle, "SCQ_" + npchar.quest.SeekCap, "3");
AddQuestUserData(sTitle, "sCapName", GetFullName(sld));
AddQuestUserData(sTitle, "sCity", XI_ConvertString("Colony" + rid.city + "Gen"));
AddQuestUserData(sTitle, "sTargetCity", XI_ConvertString("Colony" + sld.quest.targetCity + "Acc"));
if (GetIslandByCityName(sld.quest.targetCity) != sld.quest.targetCity)
{
AddQuestUserData(sTitle, "sAreal", DLG_TEXT[270] + XI_ConvertString(GetIslandByCityName(sld.quest.targetCity) + "Dat"));
}
}
}

Maybe if you try loading a save game from before you had encounter number 5 and try drawing your sword then before you even speak to him. I am not sure, but it looks like that is what is going on to me, but I am just guessing. :shrug
 
@Thagarr ,

Yeah it's the fifth time ( and fifth island ) that I had seen him but All I ever did was approach and he just said :"We have already discussed my prisoner. Nothing has changed."

There were never any game problems ( until I drew on him which was the fifth time I met him ). Funny thing though is that just a few game hours before that "bug ? " the port controller said he ( Febras Rome ) had just left a couple days ago for Port Royale, but yet he was still walking around ole Saint Johns. :shrug

I think maybe Sordid hit the nail on the head though by saying just ignore him for sometime I would meet him at sea.
The log does say I'm to board his Lugger, so maybe his ship is the "trigger". :shrug

No sense reloading now for I'm down the road ( er sea ) quite aways now.

Thanks. :onya
 
There were never any game problems ( until I drew on him which was the fifth time I met him ). Funny thing though is that just a few game hours before that "bug ? " the port controller said he ( Febras Rome ) had just left a couple days ago for Port Royale, but yet he was still walking around ole Saint Johns. :shrug

Yeah, that's another thing that's screwy about this quest. I was in the exact same situation, found the captain, but talking to him got me nowhere and drawing my sword caused the bug. I tried looking for his ship in the harbor, but couldn't find it there. I slept in the tavern and the next day I went to see the port controller to find out where my prey had gone, only to find out he'd left a month ago and would be god knows where by now. Hm. :glare:
 
Back
Top