JeuxOnLineForumsPlusConnectés : 861 (sites) | 1549 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Les problemes de long col... RSS
   
Répondre
Partager Outils Rechercher
Avatar de Estheral
Estheral
Roi
 
Avatar de Estheral
 

Les problemes de long col...

Mon module llong col avance tres bien : le graphique, les monstres, les objets ,, les quetes...
Mais reste un probleme majeur : les scripts !

probleme 1 : voici un script que vous connaissez déja puisqu'il permet de générer des monstres, ici des squelettes, avec un choix aléatoire de l'endroit parmis 6 waypoint. Dans mon module c'est un boss qui permet cette génération. Elle s'arrete quand il meurt. J'ai donc placé le script dans Onheartbeat du boss. le pb, c'est que je voudrait que la génération d'un squelette s'effectue toutes les 20secondes. Alors qu'ici, le script attends 20sec avant de lancer des spawns qui se suivent alors avec un intervalle de temps tres court (celui du onheartbeat).
Code PHP:
 #include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplatelocation lLocint bUseAppearAnimation=TRUE);

void main()
{
  
int nRandomNumber d6(1);
  
string sWaypoint "WP_svfaith_Spawn_" IntToString(nRandomNumber);
  
object oWaypoint GetObjectByTag(sWaypoint);
  
location lLoca GetLocation(oWaypoint);
  
float fSeconds 20.0//temps en secondes pour le respawn
  
string sTemplate "Squeletteasservi";

  
DelayCommand(fSecondsVoidCreateObject(sTemplate,lLocaTRUE));
  return;
}

void VoidCreateObject(string sTemplatelocation lLocaint bUseAppearAnimation=TRUE)
{
  
CreateObject(OBJECT_TYPE_CREATUREsTemplate,lLoca,TRUE);
  
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARYEffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), lLoca6.0);
  return;

probleme 2 : quand mon boss apparait je lui met ce script :
Code PHP:
 void main()
 {
SetLocalInt(OBJECT_SELF,"faith_life",1);

quand il meurt :
Code PHP:
void main()
{
   
SetLocalInt(OBJECT_SELF,"faith_life",0);
}
(+ 
des effets graphiques pour faire zoli :
mon but étant de tuer tous les squelette présent quand le boss meurt, j'ai mis dans le onheratbeat des squelettes :
Code PHP:
int faithdeath=GetLocalInt(OBJECT_SELF"faith_life");
void main()
{
 
ActionRandomWalk();
 if (
faithdeath 1){};
 if (
faithdeath 0){
    
DestroyObject(OBJECT_SELF1.0);
    };
    return;

Ca ne fonctionne po pourtant je galère à modifier des trucs !

Aidez moi svp, cela me permettra de mieu saisir les scripts et de pouvoir en faire de similaire.
Merci d'avance.
__________________
Estheral Echtelion Catalyr
Co-créateur du module Long Col avec l'aide de Messire DarkShaman.
Lien direct vers le message - Vieux
Avatar de Full Ibsen Jacket
Full Ibsen Jacket
Empereur
 
Avatar de Full Ibsen Jacket
 
J'ignore si cela marchera dans le module en question mais je suis en train de contourner la difficulté dans un de mes module avec le système suivant, dans le OnEnter de la zone , en appelant mon script "zero".

Code PHP:
void()
{
//  instructions  pour  créer  le  squelette, vous  connaissez  tous  et  je  suis  fatigué

DelayCommand(20.0ExecuteScript("zero",GetModule()));


Pour ce que je fais, cela fonctionne très bien. En ce qui concerne le fait de tuer les squelettes, je crois que je mettrais cela directement dans la OnDeath de la créature. Ceci dit, je ne suis pas un grand scripteur, je commence à peine à saisir quelques aspects de la bête...
__________________
Où qu'est la bonne Pauline ? A la gare, à Passy...
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
plusieurs truc que je crois avoir compris :
1 d'abord, une "int", par défault ca a une valeur de 0, donc si tu la crée pas dans le onspawn, quand tu la récupérera, sa valeur seras 0, ca évite de modifer des onspawn et de plus s'y retrouver
2 met tes scrpt dans des balises [ php] [ /php] parce que là c illisible
3 comme tu dis, là il attend 20 seconde avant de spawner les créatures, alors que ce que tu veux, c'est un "onheartbeat" toutes les 20 seconde en faite
moi ce que je ferais, c'est une variable qui prend +1 touts les onhearbeat, et quand elle est à 3 (3*6=18 ) ba y a spawn

dans le onheartbeat du boss
Code PHP:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplatelocation lLocint bUseAppearAnimation=TRUE);

void main()
{
int nTps GetLocalInt(OBJECT_SELF"TEMPS");
if(
nTps == 3)
   {
   
int nRandomNumber d6(1);
   
string sWaypoint "WP_svfaith_Spawn_" IntToString(nRandomNumber);
   
object oWaypoint GetObjectByTag(sWaypoint);
   
location lLoca GetLocation(oWaypoint);
   
string sTemplate "Squeletteasservi";
   
VoidCreateObject(sTemplate,lLocaTRUE);
   
SetLocalInt(OBJECT_SELF"TEMPS"0);
   
//remet ta variable de tps  0
   
return;
   }
else
   {
   
nTps ++; //sinon tu met +1 a ta varible de temps
   
SetLocalInt(OBJECT_SELF"TEMPS"nTps);//et tu la stock
  
}
}

void VoidCreateObject(string sTemplatelocation lLocaint bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATUREsTemplate,lLoca,TRUE);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARYEffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), lLoca6.0);
return;

ensuite ce que tu peu faire, c'est une boucle pour détruire les squelettes dans le ondeath du boss, comme ca ils attendent pas 6 secondes avant de mourir ^_^
du genre

dans son ondeath
Code PHP:
void main()
{
object oSkull GetFirstObjectInArea(GetArea(OBJECT_SELF));
   while(
GetIsObjectValid(oSkull))
   {
   
string sSkull GetTag(oSkull);
   if(
sSkull == "Squeletteasservi")
   
DestroyObject(oSkull);

   
oSkull GetNextObjectInArea(GetArea(OBJECT_SELF));
   }

edit : j'avais pas stocké la variable de temps
reedit : bon, il aimait PAS DU TOUT la boucle de destruction, donc je la change ^_^ mais il faut mettre des animations, sinon c pas joli
maintenant tout marche bien
Lien direct vers le message - Vieux
Avatar de Estheral
Estheral
Roi
 
Avatar de Estheral
 
Je te remercie grandement pour ton aide, mais il s'avère après fonctionnement que la fonction destroy fait disparaître mes squelettes. Je voudrais qu'ils meurent réellement. (en effet et d'un, il tombe par terre, et de deux, cela permet l'animation que je leur ai mis dans leur ondeath).

Sinon un autre pb est d'arrêter le spawn de squelette quand un certain nombre de ces créatures sont présentes dans l'area. C'est un script dont je ne trouve aucun exemple et qui ne devrait pas me servir qu'à moi seul j'en suis sur !

ps : désolé pour l'oublie des [php][\php] cela fait longtemps que gt po venu et j'avais oublié les usages...
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
mm, met un effect death au lieu du destroy
Code PHP:
void main()
{
object oSkull GetFirstObjectInArea(GetArea(OBJECT_SELF));
   while(
GetIsObjectValid(oSkull))
   {
   
string sSkull GetTag(oSkull);
   if(
sSkull == "Squeletteasservi")
   
ApplyEffectToObject(0,EffectDeath(TRUE), oSkull);
// comme ca la mort est "in an extraordinary fashion" ^_^
   
oSkull GetNextObjectInArea(GetArea(OBJECT_SELF));
   }

pour le reste, ba faut compter tes squellettes
comme ca p-e :

Code PHP:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplatelocation lLocint bUseAppearAnimation=TRUE);

void main()
{
int nTps GetLocalInt(OBJECT_SELF"TEMPS");
if(
nTps == 3)
   {

   
int nNb ;
   
object oSkull GetFirstObjectInArea(GetArea(OBJECT_SELF));
   while(
GetIsObjectValid(oSkull))
      {
      
string sSkull GetTag(oSkull);
      if(
sSkull == "Squeletteasservi"nNb ++;
      
oSkull GetNextObjectInArea(GetArea(OBJECT_SELF));
      }
   
//on compte les squellette
   
if(nNb <= 10)
      {
//si il y en moins de 10
      
int nRandomNumber d6(1);
      
string sWaypoint "WP_svfaith_Spawn_" IntToString(nRandomNumber);
      
object oWaypoint GetObjectByTag(sWaypoint);
      
location lLoca GetLocation(oWaypoint);
      
string sTemplate "Squeletteasservi";
      
VoidCreateObject(sTemplate,lLocaTRUE);
      }
   
SetLocalInt(OBJECT_SELF"TEMPS"0);
   
//remet ta variable de tps  0
   
return;
   }
else
   {
   
nTps ++; //sinon tu met +1 a ta varible de temps
   
SetLocalInt(OBJECT_SELF"TEMPS"nTps);//et tu la stock
  
}
}

void VoidCreateObject(string sTemplatelocation lLocaint bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATUREsTemplate,lLoca,TRUE);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARYEffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), lLoca6.0);
return;

ca compil, je test de suite ^_^

edit : tt à l'air de très bien marcher ^_^
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ouais logiquement ça doit marcher, sauf qu'il serait moins éprouvant pour le CPU de compter le nombre de squelette qu'on crée au fur et à mesure, non ?
(Et pourquoi gardes-tu cette fonction VoidCreateObject() alors que tu ne fais plus de DelayCommand() ?)
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
Citation:
Provient du message de Jedaï
Ouais logiquement ça doit marcher, sauf qu'il serait moins éprouvant pour le CPU de compter le nombre de squelette qu'on crée au fur et à mesure, non ?
(Et pourquoi gardes-tu cette fonction VoidCreateObject() alors que tu ne fais plus de DelayCommand() ?)
chais pas, j'ai pas trop regarder à quoi ca correspondait ... pis elle glisse un effet dedans non ?

quand à la charge CPU ... j'y connais rien du tout, donc j'y ai même pas pensé ^_^
mais comme ca p-e :

Code PHP:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplatelocation lLocint bUseAppearAnimation=TRUE);

void main()
{
int nTps GetLocalInt(OBJECT_SELF"TEMPS");
if(
nTps == 3)
   {
int nNb GetLocalInt(OBJECT_SELF"NBSKULL");
   
//on compte les squellette
   
if(nNb <= 10)
      {
//si il y en moins de 10
      
int nRandomNumber d6(1);
      
string sWaypoint "WP_svfaith_Spawn_" IntToString(nRandomNumber);
      
object oWaypoint GetObjectByTag(sWaypoint);
      
location lLoca GetLocation(oWaypoint);
      
string sTemplate "Squeletteasservi";
      
VoidCreateObject(sTemplate,lLocaTRUE);
      
nNb ++;
      
SetLocalInt(OBJECT_SELF"NBSKULL"nNb);
      }
   
SetLocalInt(OBJECT_SELF"TEMPS"0);
   
//remet ta variable de tps  0
   
return;
   }
else
   {
   
nTps ++; //sinon tu met +1 a ta varible de temps
   
SetLocalInt(OBJECT_SELF"TEMPS"nTps);//et tu la stock
  
}
}

void VoidCreateObject(string sTemplatelocation lLocaint bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATUREsTemplate,lLoca,TRUE);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARYEffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), lLoca6.0);
return;

mais il faut mettre dans le OnDeath des skull noraml un truc pour décrémentionner (sig ...) la vriable ...

style
Code PHP:
void main()
{
object oBoss GetObjectByTag("TAGDUBOSS");
int nNb GetLocalInt(oBoss"NBSKULL");
nNb --;
SetLocalInt(oBoss"NBSKULL"nNb);

donc ca fait un script de plus
pas tester, mais compiler

edit : avec ce système, il faut faire attention si il y a déjà des squelette de spawnés au démarage, sinon on va se retrouver avec une variable négative, enfin bref
donc soir on compte les squellette ds le onspawn avec la boucle, pour être sur soit on est sur du nb, auquel cas on indique direct la valeur ds le onspawn :
onspawn du boss
Code PHP:
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
void main()
{


// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) *****************************************************************************************
    
SetListeningPatterns();    // Goes through and sets up which shouts the NPC will listen to.
    
WalkWayPoints();           // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                               // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                               // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                               //    combat.
    
GenerateNPCTreasure();     //* Use this to create a small amount of treasure on the creature
   
int nNb ;
   
object oSkull GetFirstObjectInArea(GetArea(OBJECT_SELF));
   while(
GetIsObjectValid(oSkull))
      {
      
string sSkull GetTag(oSkull);
      if(
sSkull == "Squeletteasservi"nNb ++;
      
oSkull GetNextObjectInArea(GetArea(OBJECT_SELF));
      }
   
SetLocalInt(OBJECT_SELF"NBSKULL"nNb);
   
//j'aime bien ma boucle decidement lol


(du coup autant laisser le onheartbeat de base et modifier le onuserdefined, mais bon ca n'a vraiment aucune importance, c un streum après tout ^_^
ou bien :

Code PHP:

#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
void main()
{


// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) *****************************************************************************************
    
SetListeningPatterns();    // Goes through and sets up which shouts the NPC will listen to.
    
WalkWayPoints();           // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                               // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                               // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                               //    combat.
    
GenerateNPCTreasure();     //* Use this to create a small amount of treasure on the creature
   
int nNb X;
   
//X c'est le nb de skelette qu'on met de base
   
SetLocalInt(OBJECT_SELF"NBSKULL"nNb);


j'ai pas enlevé les include de bases, si on veut un waypoint et/ou un trésor


36eme edit : ca marche, donc si ca prend moi de charge CPU, c'est mieux
Lien direct vers le message - Vieux
Avatar de Estheral
Estheral
Roi
 
Avatar de Estheral
 
Smile
Merci !
Mais comment faites vous pour être si fort ! lol

Sauf que là, ben je sais pas trop ce que je dois prendre . Un peu de clarté svp !
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
c fou ce que j'aurais posté aujourd'hui, et des pavés en plus
et en plus on me flatte ^_^

alors, dans le "onheartbeat" du boss :

Code PHP:
#include "NW_I0_GENERIC"

void VoidCreateObject(string sTemplatelocation lLocint bUseAppearAnimation=TRUE);

void main()
{
int nTps GetLocalInt(OBJECT_SELF"TEMPS");
if(
nTps == 3//ici c'est le temps entre chaque spawn, tu multipli par 6 (ici 3*6=18 sec)
   
{
int nNb GetLocalInt(OBJECT_SELF"NBSKULL");
   
//on compte les squellettes
   
if(nNb <= 10)
      {
//si il y en moins de 10, c a d qu'en tout ca fait 11 squellettes de spawnés puis on arrête
      
int nRandomNumber d6(1);
      
string sWaypoint "WP_svfaith_Spawn_" IntToString(nRandomNumber);
      
object oWaypoint GetObjectByTag(sWaypoint);
      
location lLoca GetLocation(oWaypoint);
      
string sTemplate "Squeletteasservi";
      
VoidCreateObject(sTemplate,lLocaTRUE);
      
nNb ++;
      
SetLocalInt(OBJECT_SELF"NBSKULL"nNb);
      }
   
SetLocalInt(OBJECT_SELF"TEMPS"0);
   
//remet ta variable de tps  0
   
return;
   }
else
   {
   
nTps ++; //sinon tu met +1 a ta varible de temps
   
SetLocalInt(OBJECT_SELF"TEMPS"nTps);//et tu la stock
  
}
}

void VoidCreateObject(string sTemplatelocation lLocaint bUseAppearAnimation=TRUE)
{
CreateObject(OBJECT_TYPE_CREATUREsTemplate,lLoca,TRUE);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARYEffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), lLoca6.0);
return;

dans le onspawn du boss :

Code PHP:
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
void main()
{
    
SetListeningPatterns();    
    
WalkWayPoints();           
    
GenerateNPCTreasure();     
   
int nNb ;
   
object oSkull GetFirstObjectInArea(GetArea(OBJECT_SELF));
   while(
GetIsObjectValid(oSkull))
      {
      
string sSkull GetTag(oSkull);
      if(
sSkull == "Squeletteasservi"nNb ++;
      
oSkull GetNextObjectInArea(GetArea(OBJECT_SELF));
      }
   
SetLocalInt(OBJECT_SELF"NBSKULL"nNb);
   
//j'aime bien ma boucle decidement lol


dans le ondeath des squelettes normaux (dans la palette )

Code PHP:
void main()
{
object oBoss GetObjectByTag("TAGDUBOSS");
//ou TAGDUBOSS est remplace par : le tag du boss ^_^
int nNb GetLocalInt(oBoss"NBSKULL");
nNb --;
SetLocalInt(oBoss"NBSKULL"nNb);

voilà voilà
bon, alors dans le onspawn, y a un autre script si tu veux pas mettre de boucle, mais c'est pas obligatoire, et là tu est sûr que ca marche
Lien direct vers le message - Vieux
Avatar de Estheral
Estheral
Roi
 
Avatar de Estheral
 
Tout marche ! Bravo t génial !
j'ai mis 2 foixs la boucle pour le onheartbeat : 18 s ct trop long. Je préfère12 !
Je t'ai cité sur les script

Deux nouvelles questions :

1 - j'utilise ce script pour utiliser des chaises, banc, canapé et tabouret :

Code PHP:
void main()
{
  
object oPlayer GetLastUsedBy ();
  
object oChair OBJECT_SELF;
  
object oSitter=GetSittingCreature(oChair);
  if (
GetIsPC (oPlayer))
    {
        if (
GetIsObjectValid(oChair) && !GetIsObjectValid
            
(oSitter))
        {
            
AssignCommand (oPlayerActionSit (oChair));
        }
    }
  else if(!
GetIsObjectValid(oSitter))
  {
    
AssignCommand(oPlayerActionSit(oChair));
  }

Seulement quand je clique sur les tabouret rond, peu importe la disposition que j'ai mis à ces derniers, mon perso s'oriente tjs du meme coté ! Alors que ca marche bien avec le reste. pkoi ?

2 - comment écrire un message directement sur l'écran.
Dans le prologue de mon module, j'ai en effet l'idée d'écrire en bas à droite, où à des locations différentes, des messages qui sont en fait les crédits de mon module. Cette idée me vient car je suis fan de metal gear solid. Mais est-ce possible ?
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
génial, je vais être célèbre (moi j'avais mis à 1 pour mes tests )

1 passke "ActionSit" assoi tjrs en fonction de la "direction" du placeable, et que même un tabouret rond en a une, mais bon, je suis pas sur d'avoir compris la question

2 ba, je vois pas trop, y a bien "FloatingTextStringOnCreature" mais je pense pas que ca marche sur des objets invisible, donc à moins de donner une apparence "invisible" à une créature dans un coin du truc, avec les crédits qui s'affiche au dessus ...
ou alors tu met une creature bien planqué, les crédit qui s'affiche au dessus, les joueur les vois pas au dessus de la creature (qui est planquée ) mais ils apparaissent dans la fenêtre d'info, en bas à gauche
en fait tout dépend ce qu'est ce prologue
si c'est une scénette, ba le "FloatingTextStringOnCreature", si par exemple la caméra est bloquée, alors c'est du tout bon, tu t'arrange pour placer tes "string" où tu veu
si c'est une quête qui lance le module, ba un

onenter du module
Code PHP:
void main()
{

DelayCommand(10.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));
DelayCommand(15.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));
DelayCommand(20.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));
DelayCommand(25.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));
DelayCommand(30.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));
DelayCommand(35.0FloatingTextStringOnCreature("blablabla"GetEnteringObject()));

après test, ca rend assez pas mal je trouve
évidement, pour un effet plus metal gear solid (suis pas sur de moi, j'ai du y jouer une fois ) ba on peut rallonger les temps
je sais pas si on peu ralentir la vitesse de défilement du texte au dessus de la tête, il va assez vite, mais bon, ca reste acceptable
le truc bien, c'est que quelque soit la distance de camera, quelque soit l'angle etc. ba comme le PJ est au centre de l'écran, on les vois assez bien (je met plein de " " parce que je trouve l'idée excellente et vais m'en servir )
donc on bouge, on avance, on se bat etc. et y a les crédits qui défilent tranquillement au dessus de notre tête et il apparaissent en jaune en bas à gauche, sans nom devant, comme des info normale

mais bon, tout PC dans une zone de 30m autour les verras aussi, en tout cas dans sa zone de dia :-/
Lien direct vers le message - Vieux
Avatar de Zakyrel
Zakyrel
Roi
 
Avatar de Zakyrel
 
Coucou
Voila je suis le second développeur du module Long Col, mais bon moi je m'occupe de la partie Design du module, en clair c plus simple à faire

Mais il m'a arrive de faire quelques Scripts... J'aurai ptete besoin d'une aide ultérieur si moi et Estheral ne pouvont resoudre le probleme seuls
Lien direct vers le message - Vieux
Avatar de Estheral
Estheral
Roi
 
Avatar de Estheral
 
Merci Reyan. Le probleme du tabouret c'est que contrairmenet à une chaise je l'riente comme je veux, mais que cette orientation n'est pas prise en compte après ! Le pj s'assoit tjs direction plein nord je crois.

Sinon, je suis content d'avoir donné une idée de ce genre et je suis encore plus content de ta proposition. Mais comme mon prologue devrait etre différent suivant les classes il devrait pas y avoir trop de pb d'necombrement avec les crédits !
edit : bon ben ca marche po comme je le voulais. Là les textes s'enchaînent rapidement et il y' a bcp de répétition. Si tu veux mon avis, le jeu lance tous les delaycommand enmemetemps. Et tant que le suivant n'a pas fini il répète la phrase sans cesse. je v essayé d'arrenger ça mais si vous trouvez, faites moi signe



PS : en fait j'ai mis une seconde aussi. puisqu'on à limité à 11 le nbre de squelettes autant qu'ils apparraissent vite !
Ca rend très bien avec les effets graphiques que j'ai mis.
Je me demande si je ne devrait pas en faire un mod demo et l'envoyer. Mais qui peut héberger ?

Sinon, mes prochains pb vont être je pense au niveau des quêtes (compter le nombre d'abdomen de scara dans un inventaire, les retirer, donner argent en conséquence....) mais on verra ca plus tard, j'ai des scripts plus "simples" à faire que je doit reproduire sur d'autres boss
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
il en est question dans un autre topic, et il semblerait que l'on s'assoiet toujours face à l'est sur un tabouret ... zarb

ca va rapidement ? bizarre ... et oui, il lance tout les "delaycommand" en même temps, c'est pas un "ActionDelayComand" c'est pour ca qu'il faut décaler les secondes, dans l'exemple, 10.0 15.0 20.0 25.0 etc. en fait, le premier doit être à 10.0, sinon on a pas le temps de le voir, ca affiche la phrase, puis "vous êtes dans une zone jcj" etc. mais si tu met 10sec, c'est tt bon après c'est toute les 10 sec, ou 5, au choix ^_^

Citation:
(compter le nombre d'abdomen de scara dans un inventaire, les retirer, donner argent en conséquence....)
alors ca c'est tout con, j'ai fait un boucle qui compte le nombre de squelletes dans le module, c'est presque pareil si tu trouve pas, je te la donne tt de suite

Code PHP:
   int nNb;
   
object oTruc GetFirstObjectInInventory(GetLastSpeaker());
   while(
GetIsObjectValid(oTruc))
      {
      
string sTruc GetTag(oTruc);
      if(
sTruc== "TagDuTrucACompter"nNb ++;
      
oTruc GetNextObjectInInventory(GetLastSpeaker());
      }
//bon, nNb c'est le nombre de truc qui ont "TagDuTrucACompter" comme tag, dans l'inventaire du qars avec qui le PNJ cose
//donc tu peux la tester 
donc la, tu fais des test sur le nNb, style
Code PHP:
if(nNb >= 10) return TRUE; else return FALSE
dans un script de "Conditions d'execution" dans un dialogue par exemple ^_^
ouala
Lien direct vers le message - Vieux
Avatar de Zakyrel
Zakyrel
Roi
 
Avatar de Zakyrel
 
merci pour lui
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Les problemes de long col...
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 21h04.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite