Avatars
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment :
ETB Pokémon Fable Nébuleuse : où ...
Voir le deal

 

 Le nettoyeur de zone

Aller en bas 
AuteurMessage
Slayne
Grand Impérocrate de Zelda
Slayne


Nombre de messages : 381
Localisation : Alpha centory I, à gauche de la nébuleuse du pioupiou asthmatique
Date d'inscription : 04/07/2004

Le nettoyeur de zone Empty
MessageSujet: Le nettoyeur de zone   Le nettoyeur de zone Icon_minipostJeu 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);
  }
}
}
Revenir en haut Aller en bas
http://daerin.free.fr/Avatars
 
Le nettoyeur de zone
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Avatars :: L'enclume et le marteau :: L'atelier du scripteur-
Sauter vers: