106 lines
2.3 KiB
Plaintext
106 lines
2.3 KiB
Plaintext
int GetNextShieldIndex( object oShield)
|
|
{
|
|
int iIndex = GetItemAppearance( oShield, ITEM_APPR_TYPE_SIMPLE_MODEL, 0);
|
|
iIndex--;
|
|
int iItemtype = GetBaseItemType( oShield);
|
|
|
|
//shields
|
|
if( iItemtype == BASE_ITEM_SMALLSHIELD)
|
|
{
|
|
if( iIndex == 85) //CEP2.2
|
|
iIndex = 64;
|
|
else if( iIndex == 60)
|
|
iIndex = 57;
|
|
else if( iIndex == 50)
|
|
iIndex = 49;
|
|
else if( iIndex == 40)
|
|
iIndex = 39;
|
|
else if( iIndex == 30)
|
|
iIndex = 23;
|
|
else if( iIndex == 20)
|
|
iIndex = 13;
|
|
else if( iIndex == 10)
|
|
iIndex = 88;
|
|
|
|
}
|
|
else if( iItemtype == BASE_ITEM_LARGESHIELD)
|
|
{
|
|
if( iIndex == 219) //CEP2.2
|
|
iIndex = 213;
|
|
else if( iIndex == 150)
|
|
iIndex = 149;
|
|
else if( iIndex == 140)
|
|
iIndex = 139;
|
|
else if( iIndex == 130)
|
|
iIndex = 129;
|
|
else if( iIndex == 120)
|
|
iIndex = 119;
|
|
else if( iIndex == 110)
|
|
iIndex = 109;
|
|
else if( iIndex == 99)
|
|
iIndex = 96;
|
|
else if( iIndex == 89)
|
|
iIndex = 88;
|
|
else if( iIndex == 50)
|
|
iIndex = 49;
|
|
else if( iIndex == 40)
|
|
iIndex = 33;
|
|
else if( iIndex == 30)
|
|
iIndex = 23;
|
|
else if( iIndex == 20)
|
|
iIndex = 13;
|
|
else if( iIndex == 11)
|
|
iIndex = 255;
|
|
|
|
}
|
|
else if( iItemtype == BASE_ITEM_TOWERSHIELD)
|
|
{
|
|
if( iIndex == 231) //CEP2.2
|
|
iIndex = 230;
|
|
else if( iIndex == 180)
|
|
iIndex = 153;
|
|
else if( iIndex == 150)
|
|
iIndex = 149;
|
|
else if( iIndex == 140)
|
|
iIndex = 139;
|
|
else if( iIndex == 130)
|
|
iIndex = 129;
|
|
else if( iIndex == 120)
|
|
iIndex = 119;
|
|
else if( iIndex == 50)
|
|
iIndex = 43;
|
|
else if( iIndex == 40)
|
|
iIndex = 33;
|
|
else if( iIndex == 30)
|
|
iIndex = 23;
|
|
else if( iIndex == 20)
|
|
iIndex = 19;
|
|
else if( iIndex == 10)
|
|
iIndex = 237; //Start Over at Tower Shield 237
|
|
|
|
}
|
|
|
|
return iIndex;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oPlayer = GetPCSpeaker();
|
|
object oShield = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oPlayer);
|
|
|
|
int iIndex = GetNextShieldIndex( oShield);
|
|
|
|
if( GetIsDM( oPlayer))
|
|
SendMessageToPC( oPlayer, "The index is: " + IntToString( iIndex));
|
|
|
|
object oNewShield = CopyItemAndModify(oShield, ITEM_APPR_TYPE_SIMPLE_MODEL, 0, iIndex, TRUE);
|
|
|
|
if( GetIsObjectValid( oNewShield))
|
|
{
|
|
AssignCommand( oPlayer, ActionEquipItem( oNewShield, INVENTORY_SLOT_LEFTHAND));
|
|
DestroyObject( oShield);
|
|
}
|
|
else
|
|
DestroyObject( oNewShield);
|
|
}
|