Merci Jedaï ma version fait le test de la distance en plus...
Mais à mon avis GetFirstObjectInShape doit suivre le même principe que mon code !
Loin de moi l'idée que mon script est plus rapide
Mon truc fait çà :
object oKiller = GetLastKiller();
// Blablabla
int iNth = 1;
while ( ( ( oKiller = GetNearestCreature( CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, iNth ) ) != OBJECT_INVALID ) && ( GetDistanceBetween( OBJECT_SELF, oKiller ) < 30.0 ) ) { if( CheckPartyForItem( oKiller, "Instructionsidoines" ) ) { // Le PC a le parchemin qui permet de recuperer le sang du geant object oParchemin = GetObjectByTag( "Instructionsidoines" ); ActionTakeItem( oParchemin, oKiller ); DestroyObject( oParchemin ); CreateItemOnObject( "SangduGeant" ); } iNth = iNth + 1; }
Ce code est sur le onDeath d'une créature... il cree une fiole de sang sur le monstre si un PC dans la zone a le parchemin necessaire a l'extraction de celui-ci ! ( le parchemin etant detruit au passage )
Zut y a un bug dans mon truc ! Si le GetNearestCreature prend vraiment par ordre du plus proche au plus éloigné... et que le PC qui a le parchemin est plus proche du monstre que celui qui l'a tué... chui marron !
Ve voir ce que je peut faire avec la fonction de Jedaï
|