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

Débats et avis sur les modules Fr
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Aide sur script

Aller en bas 
4 participants
AuteurMessage
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Aide sur script   Aide sur script EmptyMar 11 Jan à 14:42

Salut
J'ai un script qui me permet d'avoir des rencontres différentes le jour et la nuit.
Script de créatures jour/nuit
void main()
{
object oNuit = GetObjectByTag("TAG_NUIT");
object oJour = GetObjectByTag("TAG_JOUR");
if ((GetLocalInt(oNuit,"nuit_active")==FALSE) && (GetLocalInt(oJour,"jour_actif")==FALSE))
{
SetLocalInt(oNuit,"nuit_active",1);
SetLocalInt(oJour,"jour_actif",1);
}
if (GetIsNight()==TRUE && GetLocalInt(oNuit,"nuit_active")<3)
{
SetLocalInt(oNuit,"nuit_active",2);
SetLocalInt(oJour,"jour_actif",1);
}
else if ((GetIsDay()==TRUE) && (GetLocalInt(oJour,"jour_actif")<3))
{
SetLocalInt(oNuit,"nuit_active",1);
SetLocalInt(oJour,"jour_actif",2);
}

if (GetLocalInt(oNuit,"nuit_active")==2)
{
SetEncounterActive(TRUE,oNuit);
SetEncounterActive(FALSE,oJour);
SetLocalInt(oNuit,"nuit_active",3);
SetLocalInt(oJour,"jour_actif",1);
}
else if (GetLocalInt(oJour,"jour_actif")==2)
{
SetEncounterActive(FALSE,oNuit);
SetEncounterActive(TRUE,oJour);
SetLocalInt(oNuit,"nuit_active",1);
SetLocalInt(oJour,"jour_actif",3);
}
}

je place ce sript dans le OnHeartBeat de la zone aprés avoir décocher la case Active de la rencontre (comme me le dis le message que j'ai récupérer avant)
Message :
OBJECTIF / Commentaire : Changer de créature selon le temps
Voici un petit script qui permettra d'activer un type d'encounter la nuit et un autre type le jour. Par exemple, avoir un cimetierre hantée par des undeads la nuit et rien la journée. Ou encore avoir des bats la journée et des vampires la nuit. En premier lieu, vous devez donner le meme tag à tous les encounters de nuit, pour notre exemple ça sera : Tag_nuit Et le tag pour les encounters de la journée : Tag_jour Les encounters qui n'ont aucun de ces deux tags, marcheront comme d'habitude nuit et jour. Mettez ce script dans "OnHeatBeat" dans les propriétés de l'area. NOTE IMPORTANTE : Vos encounters Day et Night ne doivent pas avoir la case ACTIVE coché dans les propriétés.
Mais voilà il ne fonctionne pas. Si quelqu'un peu me dire si je fais une erreure quelque par, je lui serai grés de me répondre.
Le script se compile sans aucune erreure.
Si je laisse la case active cochée, seul la rencontre de jour se déclenche.
Je vous en prie aidez moi.
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMar 11 Jan à 22:48

J'aurai plus fait comme ça, 2 scripts, un dans le OnEnter de la zone :

Code:
/*
------------>  Ce script va dans le OnEnter de la ZONE ou tu as tes rencontres
*/


void main()
{

//Tag des rencontres de jour
object oJour = GetObjectByTag("TAG_JOUR");

//Tag des rencontres de nuit
object oNuit = GetObjectByTag("TAG_NUIT");

//La zone
object oZone = OBJECT_SELF;

//Le PJ
object oPC = GetEnteringObject();

if(GetIsPC(oPC)==TRUE)
{
SetLocalInt(oZone,"PJ_DANS_ZONE",TRUE);
}

//Si c'est l'aube
if (GetIsDawn()==TRUE)

    {
    SetEncounterActive(TRUE,oJour);
    SetEncounterActive(FALSE,oNuit);
    }

//Si c'est le jour
if (GetIsDay()==TRUE)

    {
    SetEncounterActive(TRUE,oJour);
    SetEncounterActive(FALSE,oNuit);
    }

//Si c'est le crepuscule
if (GetIsDusk()==TRUE)

    {
    SetEncounterActive(FALSE,oJour);
    SetEncounterActive(TRUE,oNuit);
    }

//Si c'est la nuit
if (GetIsNight()==TRUE)

    {
    SetEncounterActive(FALSE,oJour);
    SetEncounterActive(TRUE,oNuit);
    }


}

Et un autre dans le OhB de la zone pour detruire les creatures encore spawnés si elles ne devraient pas l'être :

Code:
//------------>        Ce script va dans le OhB de la zone.
//Tu dois placer au prealable une variable dans l'editeur sur tes creature.
// type int nom "JOUR" == 1  pour les creature du jour
// type int nom "NUIT" == 1  pour les creature de la nuit

void main()
{

object oZone = OBJECT_SELF;

//Si un joueur est dans la zone on lance le script
if(GetLocalInt(oZone,"PJ_DANS_ZONE")!=TRUE)
{
return;
}


//Si c'est l'aube
if (GetIsDawn()==TRUE)

    {
//On debute le scan de la zone
object oCreature = GetFirstObjectInArea(oZone);
//Si l'objet est valide
while(GetIsObjectValid(oCreature))
    {  //Si l'objet scanne est bien une creature venant d'une encounter
        if (GetIsEncounterCreature(oCreature) == TRUE)
          {    //Si c'est une creature de la nuit
            if(GetLocalInt(oCreature, "NUIT") == 1)
                {  //On la detruit et on passe a la suivante
                DestroyObject(oCreature,1.0);
                object oCreature = GetNextObjectInArea(oZone);
                }
          }
    }


    }

//Si c'est le jour
if (GetIsDay()==TRUE)

    {
    //On debute le scan de la zone
    object oCreature = GetFirstObjectInArea(oZone);
    //Si l'objet est valide
    while(GetIsObjectValid(oCreature))
        {  //Si l'objet scanne est bien une creature venant d'une encounter
            if (GetIsEncounterCreature(oCreature) == TRUE)
              {    //Si c'est une creature de la nuit
              if(GetLocalInt(oCreature, "NUIT") == 1)
                  {  //On la detruit et on passe a la suivante
                  DestroyObject(oCreature,1.0);
                  object oCreature = GetNextObjectInArea(oZone);
                  }
              }
        }
    }

//Si c'est le crepuscule
if (GetIsDusk()==TRUE)

    {
    //On debute le scan de la zone
    object oCreature = GetFirstObjectInArea(oZone);
    //Si l'objet est valide
    while(GetIsObjectValid(oCreature))
        {  //Si l'objet scanne est bien une creature venant d'une encounter
            if (GetIsEncounterCreature(oCreature) == TRUE)
              {    //Si c'est une creature du jour
                if(GetLocalInt(oCreature, "JOUR") == 1)
                    {  //On la detruit et on passe a la suivante
                    DestroyObject(oCreature,1.0);
                    object oCreature = GetNextObjectInArea(oZone);
                    }
              }
        }
    }

//Si c'est la nuit
if (GetIsNight()==TRUE)

    {
    //On debute le scan de la zone
    object oCreature = GetFirstObjectInArea(oZone);
    //Si l'objet est valide
    while(GetIsObjectValid(oCreature))
        {  //Si l'objet scanne est bien une creature venant d'une encounter
            if (GetIsEncounterCreature(oCreature) == TRUE)
              {    //Si c'est une creature du jour
                if(GetLocalInt(oCreature, "JOUR") == 1)
                    {  //On la detruit et on passe a la suivante
                    DestroyObject(oCreature,1.0);
                    object oCreature = GetNextObjectInArea(oZone);
                    }
              }
        }
    }


}

Important : Les triggers des rencontres ne doivent pas couvrir les pts d'arrivées du ou des PJ(s) sinon ça marchera pas.

Un nouveau script dans le OnExit de la Zone :

Code:

void main()
{

object oZone = OBJECT_SELF;

object oPC = GetFirstObjectInArea(oZone);

//On scan la zone pour voir si ya un joueur
while(GetIsObjectValid(oPC))
{
//Si ya un PJ...
if (GetIsPC(oPC) == TRUE)
{
//... on arrete le script
return;
}
//On continue la boucle au cas ou l'objet scanné n'était pas un joueur
object oPC = GetNextObjectInArea(oZone);

}
//Si le script continue ici, c'est que la boucle est fini donc :
// pas de joueurs dans la zone, donc on efface la variable.
DeleteLocalInt(oZone,"PJ_DANS_ZONE");

}


Dsl pour l'indentation du script du OnExit je l'ai tapé direct sur le fofo.

Normalement ça devrait marcher je pense.[/code]


Dernière édition par le Mer 12 Jan à 23:09, édité 1 fois
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 0:39

n'étant pas scripteur j'ai un peu de mal à savoir ou je dois placer les variables pour mes créatures, si tu peux m'apporter ton aide la dessus, ça serait vraiment simpa.
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 0:50

Dans ta palette, tu edites ta creature, tu vas dans l'onglet avancé, tu cliques sur variables, et tu y mets ta variables.
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 21:08

Yahhooooo !!
ça marche ... Grand merci à toi, es-ce ton vrai pseudo de NWN ou en as tu un autre ? je demande ça parce que je voudrai t'inscrire dans les remerciement pour les aides à la conception du module.
Revenir en haut Aller en bas
Audoucet
puissance mineure du flood
Audoucet


Nombre de messages : 787
Localisation : bon, dans celui de quelqu'un d'autre alors...
Date d'inscription : 04/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 21:25

OHB, uniquement si ce n'est pas un module persistant, sinon bonjour le lag.
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 21:56

@Cékuriel :

Kétil Dimzad sur maskado.

Mébon, c'est gentil mais c'est pas grand chose ^^ Pis m'en servirai ptet de ce script Smile

@Audoucet :
Le OHB est injustement mal aimé Smile C'est pas quelques boucles qui vont mettre à genoux un serveur...
Revenir en haut Aller en bas
Audoucet
puissance mineure du flood
Audoucet


Nombre de messages : 787
Localisation : bon, dans celui de quelqu'un d'autre alors...
Date d'inscription : 04/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 22:30

Sauf que l'on parle d'un script de rencontre, donc dans le OnEnter de chaque zone, à savoir une bonne soixantaine de zone pour un petit serveur persistant... soixante script tout de même plutôt complexe, déclenchés simultanément toutes les six secondes, ça doit faire mal Confused
Revenir en haut Aller en bas
Audoucet
puissance mineure du flood
Audoucet


Nombre de messages : 787
Localisation : bon, dans celui de quelqu'un d'autre alors...
Date d'inscription : 04/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 22:33

Au passage : vous pouvez très bien améliorer le script pour le mettre directement dans la configuration d'une rencontre, j'utilise cela pour ma part ^^ je vous donne pas le script car je n'en suis pas le concepteur, ce dernier étant Aethis (ElfeTyrannique). Cela prend beaucoup moins de ressource...
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 22:47

Bah doit y avoir moyen d'optimiser le script pour que l' Ohb ne se déclenche que lorsqu'un PJ entre dans la zone par exemple.

La ça réduira vraiment la conso de ressource.
Revenir en haut Aller en bas
Bjorn
Gobelin servile



Nombre de messages : 28
Localisation : Pays du pruneau levant
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 22:51

Ben il me semble que le ON hearthbeat est justement un truc qui se declanche toute les 10 seconde environ (meme moin ) , c'est justement le principe du Onhearthbeat (hein sur un battement de coeur ^^)
Alors en effet faire le systeme pour qu'il se declenche au declenchement du declecheur est tres bien ets moin gourmand en ressource
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 12 Jan à 23:10

Vala, j'ai édité le post avec les scripts.

Ca devrait marcher.

Le probleme de mettre des scripts direct dans les rencontres c'est qu'ils marchent très mal, genre si on avait mis le script du onenter de la zone en l'adaptant dans le OnEnter des rencontres ça marcherait pas.
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyJeu 13 Jan à 11:40

ce genre de rencontre ne se fait pas sur toute les zones (heureusement)
Pour ma par je ne l'applique que dans les cimetière ( populace la journée et mort-vivant la nuit ) Et comme les cimetières sont réservé à des personnage en cour de deuxième carrière ( pour mon module les lvl compte moins que les carrières ^^. Soit 1ère carière de lvl1 à lvl 5, 2ème carrière de lvl 6 à lvl 10, etc ... sauf pour les lanceur des orts qui eux ont une évolution plus complexe)
autement dit si un pauvre personnage dans sa première carrière vient dans les cimetières il risque fort de mourrir définitivement.
( Et oui, on respawn pas comme on veut dans mon module )
Enfin, tout ça pour dire qu'il n'y a pas grand risque de lag au vu du nombre de cimetières hantés.
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyJeu 13 Jan à 11:41

oups erreure de frappe, lisez de sorts et non des orts ^^
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyJeu 13 Jan à 15:18

et zut!
Aprés réessayage, le script bug, en effet il fait apparaitre les deux types de créature et ce en pleine journée ou en pleine nuit !
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyJeu 13 Jan à 16:57

vérifié les tags de tes rencontres, sinon il est IMPERATIFS que tes triggers d'encounters ne couvrent pas les points d'arrivée de te zone pour tes PJs.
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptySam 15 Jan à 13:51

bon, j'ai vérifier mes tag (CHAT_JOUR pour la rencontre de jour et PANT_NUIT pour la rencotre de nuit), et aucun triggers d'encounter ne couvrent les points d'arrivés des pj. Mais les deux rencontre continuent d'apparaitre à chaque fois.
La case Actif des rencontres doit-elle être cochée ?
La case déclenchement par un pj doit-elle être cochée ?
(c'est d'une galère quand on y connait que dalle en script ^^)
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptySam 15 Jan à 16:23

pour les cases a cocher j'ai vraiment trop la flemme d'ouvir le mod ( c'est un peu long maintenant ) et je sais plus, c'est le genre de truc que j'oublie lol.

En tout cas je suis CERTAIN que la case actif ne doit pas être cochée.

Pour la case activation par joueur je crois pas non plus mais chuis pas sur donc...

Essaye les différentes possibilités Smile
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyLun 17 Jan à 15:10

j'ai fait divers essais .... et rien ! Soit je mis prend comme un manche, soit y a un prob dans les scripts (ce dont je doute)
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMar 18 Jan à 22:37

ah je sais Smile

C'est un probleme dans mon script.

Si tu avais qu'une seule encounter de tag NUIT et qu'une autre de tag JOUR dans ton module ça devrait marcher.

Si tu en as plusieurs le script prend la première qu'il trouve.

De + il cherche sur tout le module. Donc il prend la première qu'il toruve sur le module.

Donc pas forcément dans la zone où tu testes.

Désolé pour ce script foireux mais la base est là.

Il te faut trouver une solution pour identifier la zone sur laquelle faire appliquer ton script et surtout quelles encounter de quelle zone.

Dsl mais j'ai vraiment pas le temps de m'y coller.

En mettant dans le tag de tes encounters le tag de la zone ( donc pas les memes tag pour toutes les encounters ) du style "ZONE001_JOUR" tu devrais pouvoir indentifier à quelle zone appartient telle ou telle encounter.

Vala, dsl.
Revenir en haut Aller en bas
Cékuriel
Kobold trouillard



Nombre de messages : 11
Date d'inscription : 10/01/2005

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 19 Jan à 14:44

bien, je te remercie. Mais il semble que je sois pas le premier qui essaie de faire ceci. En effet j'ai vu sur un autre forum, que ce script ne fonctionne jamais comme on le veut (la cause en est les "rencontres" apparemment)
Mais si on met une créature (avec "tag_jour") positionnée sur la zone, et que l'on créer une créature (avec " Tag_nuit") je dois pouvoir faire en sorte que la créture de jour se transforme en créature de nuit lorsque la nuit est tonbée (et oui, sinon se serait plus une créature de nuit^^).
Je vais regarder si je peux modifier mon script que j'ai (une créature se transforme en une autre) pour obtenir le résulta voulu.
En mon cas, un gentils petit chat le jour, et la nuit une panthère.
Je vous remercie tout de même pour les idées de scripts qui sont trés bonnes !
Revenir en haut Aller en bas
Marco
Dragon vert empoisonné



Nombre de messages : 189
Date d'inscription : 25/10/2004

Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script EmptyMer 19 Jan à 15:04

Je t'assure que si tu as qu'un seul tag nuit et qu'un seul tag jour ça marche !!!

Je l'ai fait plusieurs fois !!!

Les rencontres marchent très bien mais j'avais zappé l'histoire de la multiplicité de tags identique.
Revenir en haut Aller en bas
Contenu sponsorisé





Aide sur script Empty
MessageSujet: Re: Aide sur script   Aide sur script Empty

Revenir en haut Aller en bas
 
Aide sur script
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Petite aide pour un blogspot (script)
» Script image
» Script pour limitation de niveau
» [demande d'aide] WoW
» Recherche de l'aide pour la finalisation d'un module.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les Modules FR :: Ici on est pas méchant :: Script-
Sauter vers: