La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/05/2024 03:07:40


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Attention ! Vous êtes en train de lire un message hors de son contexte. Veuillez lire le sujet strings défini selon un int en entier avant de répondre à ce message.
AZAZEL11
Seigneur
Inscrit le: 08 Fév 2006
Messages: 156
Répondre en citant
Posté le : 22/01/2009 05:00:30 Sujet du message :

ah je vois que j'ai affaire avec un grand scripteur, tu m'en a assez montré pour que je vienne d'apprendre des nouvelles fonctions!

ok bien en fait je fonctionne sur un event(4000) pour mettre les localint sur la zone concernée pour enregistrer les traces d'une créature X. Mais je crois que tes corrections sont nettement mieux! ^^ Enfin j'ai l'impression que plusieurs choses peuvent être optimisé mais je suis pas très familier avec l'éditeur de script. Content de voir enfin comment fonctionne la fonction "for"!!!

Son fonctionnement?

Aussitot qu'un joueur entre dans une zone, il déclenche les signalevents, dont le (4000) pour le pistage. C'est pour stocker en variables les "pistes" des créatures qui étaient dans la zone. (j'ai un SignalEvent4000 dans le script de base nwn du OnSpawn ainsi que le case 3000(generic spawner) pour actualiser les "traces". Si un PJ active son item il doit faire un jet (j'en étais rendu là aussi) pour voir si le rodeur peut détecter les traces des créatures. Le SetLocalString est pour le string que le joueur va pouvoir lire et le SetLocalInt le temps en heures que la piste à été faite.

Enfin en espérant avoir été clair. Mais je crois qu'avec ce que tu m'as envoyé je vais déja pas mal avancer dans les méthodes de fonctionnement! Enfin le système fonctionne mais je me doutais qu'il y ait des "raccourcis" possibles^^ Merci à toi ivellios!!!! sincèrement!




Dans le AreaOnUserDefine: (seule la partie du event 4000 est concernée)

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :
//:: Created On:  12/19/04
//:Confused/////////////////////////////////////////////
int CurrentTime();
int nHourMax=90;






void main()
{
object oArea=(OBJECT_SELF);

    int nUser=GetUserDefinedEventNumber();
    switch(nUser)
        {



        case 2998:  //This checks the weather type of the area every thirty seconds (but only when players are in the area) and sets the according skybox.
          {
          }

        case 2999: //case 2999 was added to ensure that the number of PCs in the area is as accurate as possible
          {
            SetLocalInt(OBJECT_SELF,"PCs_Found",0);
            object oPC = GetFirstObjectInArea();
            while(GetIsObjectValid(oPC))
                {
                if(GetIsPC(oPC)|| GetIsDM(oPC)||GetIsDMPossessed(oPC) == TRUE)      //removed DM check v1.28
                  {
                  SetLocalInt(OBJECT_SELF,"PCs_Found",GetLocalInt(OBJECT_SELF,"PCs_Found")+1);
                  }
                oPC = GetNextObjectInArea();
                }
            if(GetLocalInt(OBJECT_SELF,"PCs_Found") != GetLocalInt(OBJECT_SELF,"PCs_In_Area"))
            {
            SetLocalInt(OBJECT_SELF,"PCs_In_Area",GetLocalInt(OBJECT_SELF,"PCs_Found"));
            }
            if(GetLocalInt(OBJECT_SELF,"PCs_Found") == 0)
            {
            SignalEvent(OBJECT_SELF,EventUserDefined(3000));
            SetLocalString(OBJECT_SELF,"PC Tracker Ran","False");
            }
            else
            {
            DelayCommand(300.0f,SignalEvent(OBJECT_SELF,EventUserDefined(2999)));
            }
            break;
            }


case 3000:
{
object oArea = GetArea(OBJECT_SELF);
object oChk = GetFirstObjectInArea(oArea);
while(GetIsObjectValid(oChk) && (GetLocalInt(OBJECT_SELF,"PCs_In_Area") == 0))
{
int nChk = GetObjectType(oChk);

switch(nChk)
{
case OBJECT_TYPE_CREATURE:
{
// AJOUT DE SONJA ICI
object oMast = GetMaster(oChk);
if ((oMast == OBJECT_INVALID) || (GetIsPC(oMast) != TRUE))
{
SetImmortal(oChk,FALSE);
SetPlotFlag(oChk,FALSE);
DelayCommand(0.1f,DestroyObject(oChk));
}
break;
}
///////////////////////////                    /////////////////////////////////////
                //* case OBJECT_TYPE_ITEM:
                  // {
                  // SetImmortal(oChk,FALSE);
                  // SetPlotFlag(oChk,FALSE);
                  // DelayCommand(0.1f,DestroyObject(oChk));
                  // break;
                  // }
                // case OBJECT_TYPE_PLACEABLE:
                //  {
                  //  if(GetStringLowerCase(GetName(oChk)) == "remains")
                  //  {
                  //  object oItem = GetFirstItemInInventory(oChk);
                  //  while(GetIsObjectValid(oItem))
                  //      {
                  //      DestroyObject(oItem);
                  //      oItem = GetNextItemInInventory(oChk);
                  //      }
                  //  AssignCommand(oChk,SetIsDestroyable(TRUE));
                  //  DestroyObject(oChk);
                    // }
                  // break;
                  // }

///////////////////////////////////////////////////////////////////////////////
                }
                oChk = GetNextObjectInArea(oArea);
                }
            object oObject = GetFirstObjectInArea(GetArea(OBJECT_SELF));
            while(GetIsObjectValid(oObject) && (GetLocalInt(OBJECT_SELF,"PCs_In_Area") == 0))
                {
                if (GetObjectType(oObject) == OBJECT_TYPE_ENCOUNTER)
                {
                SetEncounterActive(TRUE, oObject);
                }
                oObject=GetNextObjectInArea();
                }
            break;
            }

        case 3001:  //added v1.28 Boolean logic check
            {
            if(GetLocalString(OBJECT_SELF,"PC Tracker Ran") == "False")        // Part of the boolean logic check v1.28 - This is the part that makes sure it hasn't already been triggered
            {
            SetLocalString(OBJECT_SELF,"PC Tracker Ran","True");              // Part of the boolean logic check v1.28 - Indicates that the tracker has been activated
            SignalEvent(OBJECT_SELF,EventUserDefined(2999));
            }
            else
            {
            return;
            }
            break;
            }

        case 3002:  //added v1.30 Generic NPC Spawner

        //  Generic NPC Spawner Configuration
        //  1. Create a Waypoint at Spawn Location
        //  2. Define the creature to spawn by naming the Waypoint: SPWN_[resref of creature you want to spawn]  i.e. SPWN_waterdhavianguar
        //  3. Next, define the type of NPC types include [Waypoint Walkers, Posted, Sitting, and Merchant]
          //    To define the type one of the following to the start of the Waypoint's Tag: WP_  POST_  SIT_  MER_  NIGHT_  DAY_  NORM_
          //  4. Now you define the NPC's Tag (add whatever you want after the definer from step 3) - TAG MUST BE UNIQUE!          i.e. POST_waterdhavianguard1
          //  4a. If you want a Waypoint walker, add _01 to the end of the tag    i.e. WP_waterdhavianwatcher1_01

            {
            object oSP = GetFirstObjectInArea();
            string nOSPTag = "";
            while(GetIsObjectValid(oSP))
                {
                if(GetTag(oSP) == nOSPTag)
                {
                oSP = GetNextObjectInArea();
                }
                else
                {
                if((GetObjectType(oSP) == OBJECT_TYPE_WAYPOINT) || (GetObjectType(oSP) == OBJECT_TYPE_STORE))
                  {
                  if(GetStringUpperCase(GetStringLeft(GetName(oSP),5)) == "SPWN_")
                  {
                  string nresref = GetStringRight(GetName(oSP),GetStringLength(GetName(oSP))-5);



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),3)) == "WP_")    //Spawner for Waypoint Walkers
                  {
                  string sSPTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-3);
                  string sNPCTag = GetStringLeft(sSPTag,GetStringLength(sSPTag)-3);
                  CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),5)) == "POST_")  //Spawner for posted NPCS
                  {
                  string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-5);
                  CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),4)) == "SIT_")  //Spawner for sitting NPCS
                  {
                  string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-4);
                  CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                  DelayCommand(0.5f,AssignCommand(GetObjectByTag(sNPCTag),ActionSit(GetNearestObjectByTag("Chair"))));
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),4)) == "MER_")  //Spawner for Merchant NPCS
                  {
                  string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-4);
                  CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                  if(GetStoreGold(oSP) <= 1000)
                    {
                    SetStoreGold(oSP,100000);
                    }
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),6)) == "NIGHT_")  //Spawner for Night-Only NPCs
                  {
                  if((GetTimeHour() >= 1Cool || (GetTimeHour() <= 6))                //change times as per your module
                    {
                    string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-6);
                    CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                    }
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),4)) == "DAY_")  //Spawner for Day-Only NPCs
                  {
                  if((GetTimeHour() <= 1Cool && (GetTimeHour() >= 6))                //change times as per your module
                    {
                    string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-4);
                    CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                    }
                  }



                  if(GetStringUpperCase(GetStringLeft(GetTag(oSP),5)) == "NORM_")  //Spawner for Normal NPCs that do not need any special treatment
                  {
                    string sNPCTag = GetStringRight(GetTag(oSP),GetStringLength(GetTag(oSP))-5);
                    CreateObject(OBJECT_TYPE_CREATURE,GetStringRight(GetStringLowerCase(GetName(oSP)),GetStringLength(GetName(oSP))-5),GetLocation(oSP),FALSE,sNPCTag);
                  }



                  }
                  }
                nOSPTag = GetTag(oSP);
                oSP = GetNextObjectInArea();
                SignalEvent(OBJECT_SELF,EventUserDefined(4000));
                }
                        ///Azzzzz
                }
            break;
            }


case 4000:
{

int iCurrentTime, iTempsPresent, iTempsPasser, iTempsPiste;
iTempsPiste = GetLocalInt(oArea,"Piste_heure");
////////////////////////////////////////////////////////////////////////////
object oArea=GetArea(OBJECT_SELF);
object oCreature=GetFirstObjectInArea(oArea);
iCurrentTime=CurrentTime();
////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////BOUCLE////////////////////////////////
while(GetIsObjectValid(oCreature))//&&
{
  if (GetIsPC(oCreature)||GetIsEncounterCreature(oCreature)||GetObjectType(oCreature)==OBJECT_TYPE_CREATURE))
/////////////////////////////////////////////////////////////////
//////////////////////////RACES ET LES LOCALINT//////////////////
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_ABERRATION)
{
SetLocalString(oArea,"abberration", "d'aberration");
SetLocalInt(oArea, "ptabberration",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_ANIMAL)
{
SetLocalString(oArea,"animal", "de/d' " +GetName(oCreature));
SetLocalInt(oArea,"ptanimal",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_BEAST)
{
SetLocalString(oArea,"beast", "de bête primitive");
SetLocalInt(oArea, "ptbeast",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_CONSTRUCT)
{
SetLocalString(oArea,"artificiel" ,"de créature artificielle");
SetLocalInt(oArea,"ptartificiel",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_DRAGON)
{
SetLocalString(oArea,"dragon", "de dragon");
SetLocalInt(oArea,"ptdragon",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_DWARF)
{
SetLocalString(oArea,"nain", "de nain");
SetLocalInt(oArea,"ptnain",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_ELEMENTAL)
{
SetLocalString(oArea,"elemental", "d'élémental");
SetLocalInt(oArea,"ptelemental",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_ELF)
{
SetLocalString(oArea,"elfe", "d'elfe");
SetLocalInt(oArea, "ptelfe",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_FEY)
{
SetLocalString(oArea,"fee", "de fée" );
SetLocalInt(oArea,"ptfee",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_GIANT)
{
SetLocalString(oArea,"geant", "de géant");
SetLocalInt(oArea,"ptgeant",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_GNOME)
{
SetLocalString(oArea,"gnome", "de gnome");
SetLocalInt(oArea,"ptgnome",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HALFELF)
{
SetLocalString(oArea,"demielf", "de demi-elfe");
SetLocalInt(oArea,"ptdemielf",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HALFLING)
{
SetLocalString(oArea,"halfling", "de petit-gens");
SetLocalInt(oArea,"pthalfling",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HALFORC)
{
SetLocalString(oArea,"demiorc", "de demi-orque");
SetLocalInt(oArea, "ptdemiorc",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HUMAN)
{
SetLocalString(oArea,"humain", "d'humain");
SetLocalInt(oArea,"pthumain",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HUMANOID_GOBLINOID)
{
SetLocalString(oArea,"goblin", "de gobelin");
SetLocalInt(oArea, "ptgoblin",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HUMANOID_MONSTROUS)
{
SetLocalString(oArea,"humanoide", "d'humainoide");
SetLocalInt(oArea,"pthumanoide",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HUMANOID_ORC)
{
SetLocalString(oArea,"orc", "d'orque");
SetLocalInt(oArea,"ptorc",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_HUMANOID_REPTILIAN)
{
SetLocalString(oArea,"reptile", "de reptile");
SetLocalInt(oArea,"ptreptile",CurrentTime());
}
if (GetLocalInt(oArea, "ptreptile")==90)
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_MAGICAL_BEAST)
{
SetLocalString(oArea,"magique", "de créature magique");
SetLocalInt(oArea,"ptmagique",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_OOZE)
{
SetLocalString(oArea,"vase", "de vase");
SetLocalInt(oArea, "ptvase",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_OUTSIDER)
{
SetLocalString(oArea,"outsider", "d'extra-planètaire");
SetLocalInt(oArea,"ptoutsider",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_SHAPECHANGER)
{
SetLocalString(oArea,"shapechanger", "de changeur de forme");
SetLocalInt(oArea,"ptshapechanger",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_UNDEAD)
{
SetLocalString(oArea,"undead", "de mort-vivant");
SetLocalInt(oArea,"ptundead",CurrentTime());
}
/////////////////////////////////////////////////////////////////
if(GetRacialType(oCreature)== RACIAL_TYPE_VERMIN)
{
SetLocalString(oArea,"vermine", "de/d'"+GetName(oCreature));
SetLocalInt(oArea, "ptvermine",CurrentTime());
}
/////////////////////////fin des variables///////////////////////

//////////////////////////fin de la boucle///////////////////////
oCreature=GetNextObjectInArea();
}      //while  ok

//DelayCommand(60.1,SignalEvent(OBJECT_SELF,EventUserDefined(4000)));
}      // case 4000 void
break;  //fin des switch
}      //switch
}      //void
/////////////////////////////////////////////////////////////////

////////////////////////////Calendrier///////////////////////////
int CurrentTime()
{          //ok
return GetCalendarYear()*8064 + GetCalendarMonth()*672 + GetCalendarDay()*24 + GetTimeHour();
}          //ok
/////////////////////////////////////////////////////////////////
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.


Et lorsqu'on active l'item: (posté déjà plus haut.)

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :



/////////////////////////////VARIABLES MODIFIABLES//////////////////////////////////////
                                                                                      //
int nDD=20;  //20=facile, 30 moderer et 40-50 dur.                                    //
                                                                                      //
int nHourMax=90;//le nombre d'heure max pour piste detectable                        //
                                                                                      //
////////////////////////////////////////////////////////////////////////////////////////
int CurrentTime(); //heure actuelle

void main()
{
object oTarget=OBJECT_SELF;
location lTarget=GetLocation(oTarget);
object oArea=GetAreaFromLocation(lTarget);
int iCurrentTime, iTempsPasser;
iCurrentTime=CurrentTime();
/////////////////////////////////////////////////////////////////////////////
///////////////////CALCULS DE TEMPS POUR CHAQUE RACE/////////////////////////
/////////////////////////////////////////////////////////////////////////////
int iTempsPiste1=  GetLocalInt(oArea,"ptabberration");
int iTempsPiste2=  GetLocalInt(oArea,"ptanimal");
int iTempsPiste3=  GetLocalInt(oArea,"ptbeast");
int iTempsPiste4=  GetLocalInt(oArea,"ptartificiel");
int iTempsPiste5=  GetLocalInt(oArea,"ptdragon");
int iTempsPiste6=  GetLocalInt(oArea,"ptnain");
int iTempsPiste7=  GetLocalInt(oArea,"ptelemental");
int iTempsPiste8=  GetLocalInt(oArea,"ptelfe");
int iTempsPiste9=  GetLocalInt(oArea,"ptfee");
int iTempsPiste10= GetLocalInt(oArea,"ptgeant");
int iTempsPiste11= GetLocalInt(oArea,"ptgnome");
int iTempsPiste12= GetLocalInt(oArea,"ptdemielf");
int iTempsPiste13= GetLocalInt(oArea,"pthalfling");
int iTempsPiste14= GetLocalInt(oArea,"ptdemiorc");
int iTempsPiste15= GetLocalInt(oArea,"pthumain");
int iTempsPiste16= GetLocalInt(oArea,"ptgoblin");
int iTempsPiste17= GetLocalInt(oArea,"pthumanoide");
int iTempsPiste18= GetLocalInt(oArea,"ptorc");
int iTempsPiste19= GetLocalInt(oArea,"ptreptile");
int iTempsPiste20= GetLocalInt(oArea,"ptmagique");
int iTempsPiste21= GetLocalInt(oArea,"ptvase");
int iTempsPiste22= GetLocalInt(oArea,"ptoutsider");
int iTempsPiste23= GetLocalInt(oArea,"ptshapechanger");
int iTempsPiste24= GetLocalInt(oArea,"ptundead");
int iTempsPiste25= GetLocalInt(oArea,"ptvermine");
//////////////////////////FIN DES LOCALINT///////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
/////////////////////Strings selon le temps de la piste///////////////////////
//////////////////////////////////////////////////////////////////////////////
/*
iTempsPasser;                                                              //
string sTemps;//                                                            //
if  (0<=iTempsPasser<=1)                                                      //
{                                                                          //
sTemps= "très peu de temps!";                                              //
}                                                                          //
if (1< iTempsPasser>=23)                                                      //
{                                                                          //
sTemps= IntToString(iTempsPasser) + " heures.";                            //
}                                                                          //
if (23<iTempsPasser>=47)                                                      //
{                                                                          //
sTemps= "un jour.";                                                        //
}                                                                          //
if (47<iTempsPasser>=71)                                                      //
{                                                                          //
sTemps= "2 jours.";                                                        //
}                                                                          //
if (iTempsPasser>=72)                                                      //
{                                                                          //
sTemps= ("environ 3 jours.");                                                //
}  */                                                                        //
////////////////////////////////FIN DES PHRASES///////////////////////////////

//////////////////////////////////REFRESH?///////////////////////////////////
SignalEvent(oArea,EventUserDefined(4000)); //on fait un refresh si on active.
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////CALCULS POUR RODEUR/////////////////////////////
int nlvl=GetHitDice(oTarget);
int nSearch=SKILL_SEARCH;
int nLore=SKILL_LORE;
int nCalcul=nlvl*2 + d20()+ (nSearch + nLore)/2 - (iTempsPasser)/2;
/////////////////////////////////////////////////////////////////////////////




/////////////////////////////////////////////////////////////////////////////
////////////////////////////////FONCTIONS////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
ActionPlayAnimation( ANIMATION_LOOPING_GET_LOW, 1.0, 15.0);

/////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste1;
if (iTempsPiste1 >=nHourMax && GetLocalString(oArea, "abberration") =="d'abberration")
{
DeleteLocalString(oArea, "abberration");
DeleteLocalInt(oArea, "ptabberration");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "abberration")=="d'abberration")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"abberration"))+" il y a "+ (sTemps), oTarget);
}
/////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste2;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"animal")!= "")
{
DeleteLocalString(oArea, "animal");
DeleteLocalInt(oArea, "ptanimal");
}
if (GetLocalString(oArea, "animal")!="" )
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"animal"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste3;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"beast")=="de bête primitive")
{
DeleteLocalString(oArea, "beast");
DeleteLocalInt(oArea, "ptbeast");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "beast")=="de bête primitive")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"beast"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste4;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"artificiel")=="de créature artificielle")
{
DeleteLocalString(oArea, "artificiel");
DeleteLocalInt(oArea, "ptartificiel");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "artificiel")== "de créature artificielle")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"artificiel"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste5;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"dragon")=="de dragon")
{
DeleteLocalString(oArea, "dragon");
DeleteLocalInt(oArea, "ptdragon");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "dragon")=="de dragon")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"dragon"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste6;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"nain")=="de nain")
{
DeleteLocalString(oArea, "nain");
DeleteLocalInt(oArea, "ptnain");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "nain")=="de nain")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"nain"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste7;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"elemental")=="d'élémental")
{
DeleteLocalString(oArea, "elemental");
DeleteLocalInt(oArea, "ptelemental");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "elemental")=="d'élémental")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"elemental"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste8;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"elfe")=="d'elfe")
{
DeleteLocalString(oArea, "elfe");
DeleteLocalInt(oArea, "ptelfe");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "elfe")=="d'elfe")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"elfe"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste9;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"fee")=="de fée")
{
DeleteLocalString(oArea, "fee");
DeleteLocalInt(oArea, "ptfee");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "fee")=="de fée")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"fee"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste10;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea, "geant")=="de géant")
{
DeleteLocalString(oArea, "geant");
DeleteLocalInt(oArea, "ptgeant");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "geant")=="de géant")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"geant"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste11;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"gnome")=="de gnome")
{
DeleteLocalString(oArea, "gnome");
DeleteLocalInt(oArea, "ptgnome");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "gnome")=="de gnome")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"gnome"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste12;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"demielf")=="de demi-elfe")
{
DeleteLocalString(oArea, "demielf");
DeleteLocalInt(oArea, "ptdemielf");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "demielf")=="de demi-elfe")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"demielf"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste13;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"halfling")=="de petit-gens")
{
DeleteLocalString(oArea, "halfling");
DeleteLocalInt(oArea, "pthalfling");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "halfling")=="de petit-gens")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"halfling"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste14;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"demiorc")=="de demi-orque")
{
DeleteLocalString(oArea, "demiorc");
DeleteLocalInt(oArea, "ptdemiorc");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "demiorc")=="de demi-orque")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"demiorc"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste15;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"humain")=="d'humain")
{
DeleteLocalString(oArea, "humain");
DeleteLocalInt(oArea, "pthumain");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "humain")=="d'humain")//  && nDD < nCalcul)
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"humain"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste16;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"goblin")=="de goblin")
{
DeleteLocalString(oArea, "goblin");
DeleteLocalInt(oArea, "ptgoblin");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "goblin")=="de gobelin")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"goblin"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste17;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"humanoide")=="d'humanoide")
{
DeleteLocalString(oArea, "humanoide");
DeleteLocalInt(oArea, "pthumanoide");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "humanoide")=="d'humanoide")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"humanoide"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste18;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"orc")=="d'orque")
{
DeleteLocalString(oArea, "orc");
DeleteLocalInt(oArea, "ptorc");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "orc")=="d'orque")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"orc"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste19;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"reptile")=="reptile")
{
DeleteLocalString(oArea, "reptile");
DeleteLocalInt(oArea, "ptreptile");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "reptile")=="reptile")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"reptile"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste20;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"magique")=="de créature magique")
{
DeleteLocalString(oArea, "magique");
DeleteLocalInt(oArea, "ptmagique");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "magique")=="de monstre magique")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"magique"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste21;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"vase")=="de vase")
{
DeleteLocalString(oArea, "vase");
DeleteLocalInt(oArea, "ptvase");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "vase")=="de vase")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"vase"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste22;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"outsider")=="d'extra-planètaire")
{
DeleteLocalString(oArea, "outsider");
DeleteLocalInt(oArea, "ptoutsider");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "outsider")=="d'extra-planètaire")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"outsider"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste23;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"shapechanger")=="de changeur de forme")
{
DeleteLocalString(oArea, "shapechanger");
DeleteLocalInt(oArea, "ptshapechanger");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "shapechanger")=="de changeur de forme")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"shapechanger"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste24;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"undead")=="de mort-vivant")
{
DeleteLocalString(oArea, "undead");
DeleteLocalInt(oArea, "ptundead");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "undead")=="de mort-vivant")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"undead"))+" il y a "+ (sTemps), oTarget);
}
////////////////////////////////////////////////////////////////////////////
iTempsPasser= iCurrentTime - iTempsPiste25;
if ( iTempsPasser >= nHourMax && GetLocalString(oArea,"vermine")!="")
{
DeleteLocalString(oArea, "vermine");
DeleteLocalInt(oArea, "ptvermine");
}
if (iTempsPasser < nHourMax && GetLocalString(oArea, "vermine")!="")
{
string sTemps=IntToString(iTempsPasser)+" heures.";
FloatingTextStringOnCreature("Des traces " + (GetLocalString(oArea,"vermine"))+" il y a "+ (sTemps), oTarget);
}
///////////////////////////////FIN DES LOCALINT/////////////////////////////////


}  //end  ok
///////////////////////////////FIN DES FONCTIONS////////////////////////////////

//////////////////////////////////CALENDRIER////////////////////////////////////
int CurrentTime()
{          //ok
return GetCalendarYear()*8064 + GetCalendarMonth()*672 + GetCalendarDay()*24 + GetTimeHour();
}          //ok
////////////////////////////////////////////////////////////////////////////////
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.

_________________
L'imagination est plus importante que le savoir. (Albert Einstein)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 47.719ms