Ahoy agin lads!
I have been tryin ta find the changes what were done to allow all shipyards ta sell every class o' ship, an so far I am a fish out'a water.
Near as I can figure, it be a limitin of the shipyard somehow, found in /program/interface/shipyard.c what calls to that new colony information. Now I ain't no programer nor do I claim ta be, but I figure it be more of an omitted sequence as opposed ta one what be disabled.
Here in shipyard.c I finds this string;
bool IsEnableBuyShipForCharacter()
{
int iPcharShip = sti(pchar.ship.type);
int iOurTactic = GetSummonSkillFromName(pchar, SKILL_TACTIC);
int iMaxSquadronSize = GetCompanionQuantity(pchar);
if(iPcharShip != SHIP_NOTUSED)
{
iPcharShip = sti(RealShips[iPcharShip].basetype);
if(ShipsTypes[iPcharShip].name == "WarTartane" && refPassenger.id == pchar.id)
{
iMaxSquadronSize = iMaxSquadronSize - 1;
}
}
if(iOurTactic / 2 <= iMaxSquadronSize)
{
return false;
}
return true;
}
bool IsEnableBuyShip()
{
int myMoney = GetMyMoney();
int price = GetBuyPrice(iShipStoreListIndex + 1);
int iship = sti(refCharacter.ship.type);
int iOurTactic = GetSummonSkillFromName(pchar, SKILL_TACTIC);
int iMaxSquadronSize = GetCompanionQuantity(pchar);
if(iship != SHIP_NOTUSED)
{
if(sti(RealShips[iship].basetype) != SHIP_WAR_TARTANE)
{
if(iOurTactic / 2 <= iMaxSquadronSize)
{
return false;
}
}
}
if(!CheckAttribute(refCharacter, "quest.officerprice") && refCharacter.id != pchar.id)
{
return false;
}
string sPos = FindPosForShip(iShipStoreListIndex);
if(CheckAttribute(arShipList, sPos + ".buyed"))
{
if(sti(arShipList.(sPos).buyed) == 1)
{
return false;
}
}
if(CheckAttribute(arShipList, sPos + ".notforsale"))
{
if(sti(arShipList.(sPos).notforsale) == 1)
{
return false;
}
}
if (price > myMoney)
{
return false;
}
/*if (price <= myMoney)
{
if(iship == SHIP_NOTUSED)
{
return true;
}
if(CheckAttribute(RealShips[iship], "basetype"))
{
if(sti(RealShips[iship].basetype) == SHIP_WAR_TARTANE)
{
return true;
}
}
}*/
return true;
}
So I figures, this be allowin ships ta be sold based on a few functions. Skill in Tactics, available coin etc, yet there be no call to colony info. So I put this out to me fellow seadogs. If'n ye kin figure this mess out give us a holler.
Cheers lads! <img src="style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid="
" border="0" alt="par-ty.gif" />
RJ
I have been tryin ta find the changes what were done to allow all shipyards ta sell every class o' ship, an so far I am a fish out'a water.
Near as I can figure, it be a limitin of the shipyard somehow, found in /program/interface/shipyard.c what calls to that new colony information. Now I ain't no programer nor do I claim ta be, but I figure it be more of an omitted sequence as opposed ta one what be disabled.
Here in shipyard.c I finds this string;
bool IsEnableBuyShipForCharacter()
{
int iPcharShip = sti(pchar.ship.type);
int iOurTactic = GetSummonSkillFromName(pchar, SKILL_TACTIC);
int iMaxSquadronSize = GetCompanionQuantity(pchar);
if(iPcharShip != SHIP_NOTUSED)
{
iPcharShip = sti(RealShips[iPcharShip].basetype);
if(ShipsTypes[iPcharShip].name == "WarTartane" && refPassenger.id == pchar.id)
{
iMaxSquadronSize = iMaxSquadronSize - 1;
}
}
if(iOurTactic / 2 <= iMaxSquadronSize)
{
return false;
}
return true;
}
bool IsEnableBuyShip()
{
int myMoney = GetMyMoney();
int price = GetBuyPrice(iShipStoreListIndex + 1);
int iship = sti(refCharacter.ship.type);
int iOurTactic = GetSummonSkillFromName(pchar, SKILL_TACTIC);
int iMaxSquadronSize = GetCompanionQuantity(pchar);
if(iship != SHIP_NOTUSED)
{
if(sti(RealShips[iship].basetype) != SHIP_WAR_TARTANE)
{
if(iOurTactic / 2 <= iMaxSquadronSize)
{
return false;
}
}
}
if(!CheckAttribute(refCharacter, "quest.officerprice") && refCharacter.id != pchar.id)
{
return false;
}
string sPos = FindPosForShip(iShipStoreListIndex);
if(CheckAttribute(arShipList, sPos + ".buyed"))
{
if(sti(arShipList.(sPos).buyed) == 1)
{
return false;
}
}
if(CheckAttribute(arShipList, sPos + ".notforsale"))
{
if(sti(arShipList.(sPos).notforsale) == 1)
{
return false;
}
}
if (price > myMoney)
{
return false;
}
/*if (price <= myMoney)
{
if(iship == SHIP_NOTUSED)
{
return true;
}
if(CheckAttribute(RealShips[iship], "basetype"))
{
if(sti(RealShips[iship].basetype) == SHIP_WAR_TARTANE)
{
return true;
}
}
}*/
return true;
}
So I figures, this be allowin ships ta be sold based on a few functions. Skill in Tactics, available coin etc, yet there be no call to colony info. So I put this out to me fellow seadogs. If'n ye kin figure this mess out give us a holler.
Cheers lads! <img src="style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid="

RJ