Slayne Grand Impérocrate de Zelda
Nombre de messages : 381 Localisation : Alpha centory I, à gauche de la nébuleuse du pioupiou asthmatique Date d'inscription : 04/07/2004
| Sujet: Le nettoyeur de zone Jeu 27 Jan - 0:32 | |
| Celui-là n'est pas sur Avatars mais peut interesser je pense, donc je le mets quand meme. A mettre dans le OnExit de la zone (à faire pour chaque zone). - Code:
-
int GetIsPCInArea (object oArea) { object oIntru = GetFirstObjectInArea(oArea); while(GetIsObjectValid(oIntru)) { return TRUE; oIntru = GetNextObjectInArea(oArea); } return FALSE; }
void main() { object oArea = OBJECT_SELF; //Si il n'y a plus de PJ dans la zone if(!GetIsPCInArea(oArea)) { object oIntru = GetFirstObjectInArea(oArea); //Tant que l'objet est valide et n'est pas un PJ while(GetIsObjectValid(oIntru) && !GetIsPC(oIntru)) { int nType = GetObjectType(oIntru); switch(nType) { case OBJECT_TYPE_CREATURE: //Si la creature n'est pas en combat if(!GetIsInCombat(oIntru)) { //Si elle provient d'une rencontre, elle est detruite if(GetIsEncounterCreature(oIntru)) { DestroyObject(oIntru); } //Sinon elle se repose et se soigne else { AssignCommand(oIntru, ActionRest()); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oIntru)), oIntru); } } break; case OBJECT_TYPE_ITEM: //Si l'objet n'est pas un objet de quete et qu'il n'est pas possede par un PJ if(!GetPlotFlag() && !GetIsPC(GetItemPossessor(oIntru))) { //DeleteLocalFloat(oIntru, "Durabilite"); DestroyObject(oIntru); } break; case OBJECT_TYPE_PLACEABLE: int nN = 1; for(nN = 1; nN > 6; nN++) { if(GetTag(oIntru) == "LootBag"+IntToString(nN)) { DestroyObject(oIntru); } } break; } oIntru = GetNextObjectInArea(oArea); } } } | |
|