Beispiel #1
0
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");
	}
}
Beispiel #2
0
void SetNextParty(bool bRight)
{
// boal -->	/* BEGIN MOD : Stone-D 27/07/2003 */
	EnhancedSetNextParty(bRight);
	return;
// boal <--	/* END MOD : Stone-D 27/07/2003 */
    int i,cn;
	if(bRight)
	{
		curOfficer++;
		for(i=curOfficer; i<7; i++)
		{
			if(i<4)	{cn = GetOfficersIndex(xi_refMainChar,i);}
			else {cn = GetCompanionIndex(xi_refMainChar,i-3);}
			if( cn>-1 && GetRemovable(GetCharacter(cn)) ) break;
		}
		if(i<7)
		{
			xi_refCharacter = GetCharacter(cn);
			curOfficer = i;
		}
		else
		{
			xi_refCharacter = xi_refMainChar;
			curOfficer = 0;
		}
	}
	else
	{
		curOfficer--;
		if(curOfficer<0) curOfficer=6;
		for(i=curOfficer; i>0; i--)
		{
			if(i<4)	{cn = GetOfficersIndex(xi_refMainChar,i);}
			else {cn = GetCompanionIndex(xi_refMainChar,i-3);}
			if( cn>-1 && GetRemovable(GetCharacter(cn)) ) break;
		}
		if(i>0)	{xi_refCharacter = GetCharacter(cn);}
		else {xi_refCharacter = xi_refMainChar;}
		curOfficer = i;
	}
	AddCharacterExp(xi_refCharacter,0);
}
int CHeaderCtrlExt::GetRemovableItemCount()
{
	int nRemovable = 0;
	int nCount = GetItemCount();
	for(int i = 0;i < nCount;++i)
	{
		if(GetRemovable(i))nRemovable++;
	}

	return nRemovable;
}