Could this boarding bug have anything to do with a "missing" captain on the boarded ship? I know that this was the case in the capture of the Nigel Blythe quest ship (i.e., Dirty Harry / Shaggy Garry pirate corvette). A captain model was not generated because of a bad ch.model reference and caused a similar boarding hang. I fixed this one by making a couple of changes:
In file <b>PROGRAM\Characters\init\TempQuestCharacters.c</b>
at approximately LINE 14
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->makeref(ch,Characters[n]); // Ethilrede Claar - xxxx () Leborio Drago
ch.old.name = "Ethilrede";
ch.old.lastname = "Dubois";
ch.name = LanguageConvertString(tmpNameFileID,"Ethilrede");
ch.lastname = LanguageConvertString(tmpNameFileID,"Dubois");
ch.id = "Ethilrede Claar";
ch.model = "corsar2";
ch.sex = "man";
ch.sound_type = "pirate";
ch.Ship.AI.GroupName = "Ethilrede Claar";
ch.Ship.AI.Task = "attack";
ch.nation = PIRATE;
GiveItem2Character(ch, BLADE_SABER);
ch.equip.blade = BLADE_SABER;
ch.nodisarm = 1; // PB: Disable disarming
ch.location = "none";
ch.location.group = "Quest_ships";
ch.location.locator = "quest_ship_2"; // Petros: was quest_ship_11
ch.Dialog.Filename = "Gyles Dubois_dialog.c";
ch.Ship.Name = "Neptunus";
ch.Ship.Type = "Corvette6_50"; // Petros: was Corvette1
should be:
ch.old.name = "Ethilrede";
ch.old.lastname = "Dubois";
ch.name = LanguageConvertString(tmpNameFileID,"Ethilrede");
ch.lastname = LanguageConvertString(tmpNameFileID,"Dubois");
ch.id = "Ethilrede Claar";
// ch.model = "corsar2";
ch.model = "corsair2";
REMAINDER OF CODE NO CHANGES<!--c2--></div><!--ec2-->
Looks simply like a missing letter ("I") in a model reference - "corsar2" instead of "corsair2".
FYI, this is also the case for another quest ship (same file, LINE 4161) with same changes noted:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->ch.old.name = "Giraldo";
ch.old.lastname = "Figuiera";
ch.name = LanguageConvertString(tmpNameFileID,"Giraldo");
ch.lastname = LanguageConvertString(tmpNameFileID,"Figuiera");
ch.id = "Giraldo Figuiera";
//ch.model = "corsar2";
ch.model = "corsair2";
ch.sex = "man";
ch.sound_type = "pirate";
LAi_NoRebirthEnable(ch);
ch.Ship.AI.GroupName = "Ethilrede Claar";
ch.Ship.AI.Task = "attack";
ch.nation = PIRATE;
GiveItem2Character(ch, BLADE_LONG);
ch.equip.blade = BLADE_LONG;
ch.location = "none";
ch.location.group = "Quest_ships";
ch.location.locator = "quest_ship_11";
ch.Dialog.Filename = "Gyles Dubois_dialog.c";
ch.Ship.Name = "Inferno"; // KK (second Mefisto?)
ch.Ship.Type = "FrigateNKSup"; // PRS3 // KK<!--c2--></div><!--ec2-->
Maybe that last one is/was causing some boarding problems. Or could it be that another captain generated from this file has a similar typo on the model type.
PS - I am 100% certain that this change fixed that Nigel Blythe quest ship boarding problem, as after that change, as I was able to capture that ship normally.
PPS - There are also still some references in the Nigel quest to both Shaggy Garry and Dirty Harry, who I assume is the same person - the owner of the Pirate Corvette. I'm using b14a6 with all suggested add-ons.
Kevin