Set Nombre to Player->GetItemCount Gold_001 Player->RemoveItem Gold_001 Nombre
Pour contourner le problème, il y a plusieurs façons de procéder:
1. Si vous êtes sûr que le nombre est petit:
Long Reste Set Reste to Player->GetItemCount Gold_001 While ( Reste > 0 ) Player->RemoveItem Gold_001 1 Set Reste to ( Reste - 1 ) EndWhile
2. Si le nombre peut être vraiment important, on enlèvera par paquet, en utilisant des puissances de 2, sans dépasser 32768 (2^15) qui est la valeur maximum utilisable pour une seule instruction AddItem ou RemoveItem.
Ici, on commence par le maximum, mais si le nombre d'objet est moyen, on peut faire moins de lignes en commençant par un nombre plus faible.
Long Reste Set Reste to Player->GetItemCount Gold_001 While ( Reste > 0 ) If ( Reste >= 32768 ) Player->RemoveItem Gold_001 32768 Set Reste to ( Reste - 32768 ) EndIf If ( Reste >= 16384 ) Player->RemoveItem Gold_001 16384 Set Reste to ( Reste - 16384 ) EndIf If ( Reste >= 8192 ) Player->RemoveItem Gold_001 8192 Set Reste to ( Reste - 8192 ) EndIf If ( Reste >= 4096 ) Player->RemoveItem Gold_001 4096 Set Reste to ( Reste - 4096 ) EndIf If ( Reste >= 2048 ) Player->RemoveItem Gold_001 2048 Set Reste to ( Reste - 2048 ) EndIf If ( Reste >= 1024 ) Player->RemoveItem Gold_001 1024 Set Reste to ( Reste - 1024 ) EndIf If ( Reste >= 512 ) Player->RemoveItem Gold_001 512 Set Reste to ( Reste - 512 ) EndIf If ( Reste >= 256 ) Player->RemoveItem Gold_001 256 Set Reste to ( Reste - 256 ) EndIf If ( Reste >= 128 ) Player->RemoveItem Gold_001 128 Set Reste to ( Reste - 128 ) EndIf If ( Reste >= 64 ) Player->RemoveItem Gold_001 64 Set Reste to ( Reste - 64 ) EndIf If ( Reste >= 32 ) Player->RemoveItem Gold_001 32 Set Reste to ( Reste - 32 ) EndIf If ( Reste >= 16 ) Player->RemoveItem Gold_001 16 Set Reste to ( Reste - 16 ) EndIf If ( Reste >= 8 ) Player->RemoveItem Gold_001 8 Set Reste to ( Reste - 8 ) EndIf If ( Reste >= 4 ) Player->RemoveItem Gold_001 4 Set Reste to ( Reste - 4 ) EndIf If ( Reste >= 2 ) Player->RemoveItem Gold_001 2 Set Reste to ( Reste - 2 ) EndIf If ( Reste >= 1 ) Player->RemoveItem Gold_001 1 Set Reste to ( Reste - 1 ) EndIf EndWhile