I made a new function for this purpose now:
If you just try to steal, a LOT of enemies show up.
If you kill the merchant, you also lose your reputation and turn hostile with his nation and friendly with the pirates.
Also, you can't leave the location until all enemies are killed.
Does that sound about right?
Code:
void MerchantGuildAttack(aref attack, aref enemy, bool bKill)
{
Logit(TranslateString("","The Merchantguild's watchmen are very vigilant..."));
int numGuards = 30 - LAi_numloginedcharacters; // LDH - changed from 32 to TIH's original 30
if ( numGuards > 0 ) Ambush("Navy_office4", numGuards, "enemy", "friend","");
// TIH --> bug fix... this now works right Jul23'06
if ( sti(attack.index) == GetMainCharacterIndex() )
{
ref PChar = GetMainCharacter();
PChar.merchantattack = true;
StartQuestMovie(true, false, false);
if(bKill)
{
ChangeCharacterReputation(PChar, -100);// TIH MUST BE INT Nov17'06
if ( CheckAttribute(enemy,"nation") )
{
SetNationRelation2MainCharacter(sti(enemy.nation), RELATION_ENEMY);
LooseLetterOfMarque(sti(enemy.nation));
LeaveService(PChar, sti(enemy.nation), true);
SetRMRelation(PChar, sti(enemy.nation), REL_WAR);
}
PChar.nation = PIRATE;
if(GetRMRelation(PChar, PIRATE) < REL_AMNESTY) SetRMRelation(PChar, PIRATE, REL_AMNESTY);
UpdateRelations();
RefreshBattleInterface();
}
// TIH <--
}
}
If you kill the merchant, you also lose your reputation and turn hostile with his nation and friendly with the pirates.
Also, you can't leave the location until all enemies are killed.
Does that sound about right?