La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 17:34:47


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 16/04/2005 13:26:51 Sujet du message : Bloquer le PJ

Salut !

est-il possible de "verrouiller" un pj pendant le temps d'une dialogue : il y a en effet un dial super important dans mon module et il faut absolument que le PJ le termine correctement. Ce dialogue n'a pas d'échapatoire dans les phrases, mais il ne faut pas non plus que le PJ se sauve Demon rouge
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 16/04/2005 14:08:31 Sujet du message :

Tu as été flemmarde sur ce coup Shocked

En cherchant sur le forum :

SetCommandable(oPJ, FALSE) -> le PJ ne peut plus contrôler son personnage du tout
SetCommandable(oPJ, TRUE) -> retour à la normale


Par contre je ne sais pas s'il peut encore terminer le dialogue, à tester Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 16/04/2005 16:17:05 Sujet du message :


Citation :
Tu as été flemmarde sur ce coup
:shock:Mais heuuuu...

bon c'est vrai que j'ai même pas cherché... Confused.

c'est ma faute, c'est ma faute c'est ma très grande faute

Mais j'ai quand même trouvé l'erreur (volontaire ??) que tu as glissée dans tes lignes :
c'est SetCommandable(FALSE,oPC) !! Cool (héhé, pour une fois que c'est moi qui trouve !)

Bon j'ai donc fais ce script :
NWScript :
void main()
{
object oPC = GetFirstObjectInArea();
object oChair = OBJECT_SELF;

SetTime(21, 00, 00, 00);

// si il y a encore des objets dans la zone
  while(GetIsObjectValid(oPC)==TRUE)
  {
    if(GetIsPC(oPC)) // et si cet objet est un joueur
    {
    SetCommandable(FALSE,oPC);
    AssignCommand(oPC, ActionSit(oChair));
    }
    oPC = GetNextObjectInArea();
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Tout fonctionne à merveille, les PJ sont bloqués (en tout les cas c'est le cas pour mon perso en test solo), mais j'aimerai que les PJ soient assis et qu'ils le restent.
(j'adore compliquer les choses)

J'ai placé 6 chaises dans la zones pour les 6 joueurs potentiels.

Sinon est ce que la fonction SetTime va affecter l'heure du module définitivement ?


NB : Le "déblocage" des PJ se fait par la suite, à travers un autre script
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 16/04/2005 18:02:29 Sujet du message :

Bah la faute n'est pas de moi puisque j'ai recopié le post d'un membre qui avait déjà écrit à ce sujet Very Happy

*innocent*
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 17/04/2005 00:30:06 Sujet du message :

j'ai fait un premier test, mais même en solo mon perso ne s'assoit pas !

NWScript :
void main()
{

object oPC = GetFirstObjectInArea();
object oChai1 = GetNearestObjectByTag("chaise1", OBJECT_SELF);
object oChai2 = GetNearestObjectByTag("chaise2", OBJECT_SELF);
object oChai3 = GetNearestObjectByTag("chaise3", OBJECT_SELF);
object oChai4 = GetNearestObjectByTag("chaise4", OBJECT_SELF);
object oChai5 = GetNearestObjectByTag("chaise5", OBJECT_SELF);
object oChai6 = GetNearestObjectByTag("chaise6", OBJECT_SELF);


// si il y a encore des objets dans la zone
  while(GetIsObjectValid(oPC)==TRUE)
  {
    if(GetIsPC(oPC)) // et si cet objet est un joueur
    {
    SetCommandable(FALSE,oPC);
    AssignCommand(oPC, ActionSit(oChai1));
    }
    oPC = GetNextObjectInArea();
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 17/04/2005 01:00:14 Sujet du message :


Citation :
Note that any actions assigned with AssignCommand, of course, will also not work as they try and add actions to the action queue when SetCommandable(FALSE, oTarget) is used, see remarks and the Code.
Voilà voilou, na Laughing


Citation :

AssignCommand(oNPC, SomeAction1());
AssignCommand(oNPC, SomeAction2());
AssignCommand(oNPC, SomeAction3());
AssignCommand(oNPC, ActionDoCommand(SetCommandable(TRUE)));
AssignCommand(oNPC, SetCommandable(FALSE));
Faut faire de cette manière là Laughing

mais t'inquietes pas, entre Longbow et tous les autres boss de cutscene, tu vas en avoir de l'aide à ne plus savoir qu'en faire.C'est THE fonctions qu'ils connaissent par coeur je suppose Razz
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 17/04/2005 11:51:26 Sujet du message :

Confused j'ai rien compris...

Voici ce que j'ai bricolé : (dans le ONEnter de la zone)
NWScript :
void main()
{
object oPC = GetFirstObjectInArea();
object oChai1 = GetNearestObjectByTag("chaise1", OBJECT_SELF);
object oChai2 = GetNearestObjectByTag("chaise2", OBJECT_SELF);
object oChai3 = GetNearestObjectByTag("chaise3", OBJECT_SELF);
object oChai4 = GetNearestObjectByTag("chaise4", OBJECT_SELF);
object oChai5 = GetNearestObjectByTag("chaise5", OBJECT_SELF);
object oChai6 = GetNearestObjectByTag("chaise6", OBJECT_SELF);


// si il y a encore des objets dans la zone
  while(GetIsObjectValid(oPC)==TRUE)
  {
    if(GetIsPC(oPC)) // et si cet objet est un joueur
    {

    // Assoit le PNJ sur une chaise
        AssignCommand(oPC, ActionSit(oChai1));

       
            object oItem = GetFirstItemInInventory( oPC );
            while( oItem != OBJECT_INVALID )
            {
                DestroyObject( oItem );

              oItem = GetNextItemInInventory( oPC );
            }
       
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
          DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));

      // equipe les nouveaux vetements
        object oVet = CreateItemOnObject ("tenuedepart", oPC, 1);
        AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST));

      // Bloque le PNJ
        SetCommandable(FALSE,oPC);
    }
    oPC = GetNextObjectInArea();
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Bon ya que la partie bloquer le PNJ et supprimer le matos qui marche. Mais impossible de le faire asseoir et lui faire porter le vêtement "tenuedepart". Il récupère l'item dans son équimempent mais le perso ne le porte pas !
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 17/04/2005 16:03:49 Sujet du message :

met un delay pour ton SetCommandable,
car là il se lance avant que le PJ ait finit son action...
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 17/04/2005 16:36:12 Sujet du message :

Ah oui, il bloque le PJ avant de le l'équiper du vêtement !

Sinon pour que les PJ soient assis ?
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 17/04/2005 16:53:46 Sujet du message :

Gloups là tu t'emmèles méchamment.

Expliques ce que tu veux comme script précisement, car si c'est sur le OnEnter d'une zone, le script est totalement faux, et c'est pour ça que personne ne s'assoit etc...


Pourquoi c'est faux : 2 principales raisons :

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Le plus proche objet d'un OBJECT_SELF qui n'est autre que la map qui lance le script, ça ne doit pas fonctionner.

Deuxième grosse erreur : tu utilises une fonction qui boucle tous les PJ d'une MAP, donc en gros, à chaque fois que quelqu'un va entrer dans ta carte, le script va se lancer pour tous les gens déjà présent.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 17/04/2005 19:58:12 Sujet du message :

En fait ce que je veux faire, c'est qu'au lancement de cette zone :(la zone ne servira qu'une fois et où les PJ ne pourrons plus revenir)
- tous les PJ soient assis
- qu'ils soient bloqués assis
- qu'ils soient dépouillés de leur vêtements et items
- qu'ils soient habillés avec le vêtement "tenuedepart"
- que leur xp soit à 0

Les PJ devront ensuite "subir" un dialogue puis seront débloqués (ça c'est dans un autre script déjà préparé)



Je sais que mon script ne marche pas parceque je n'y comprends que peut de chose... En fait je ne fait que coller des petits bouts que je récupère ça et là Confused
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 17/04/2005 20:35:23 Sujet du message :

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oChair;


  if (GetIsPC(oPC))
{



            object oItem = GetFirstItemInInventory( oPC );
            while( oItem != OBJECT_INVALID )
            {
                DestroyObject( oItem );

              oItem = GetNextItemInInventory( oPC );
            }

int nSlot;

for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++)
  {
  oItem=GetItemInSlot(nSlot, oPC);
  if (GetIsObjectValid(oItem)) DestroyObject(oItem);
  }

// equipe les nouveaux vetements
object oVet = CreateItemOnObject ("tenuedepart", oPC, 1);
DelayCommand(0.5,AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)));


// Assoit le PNJ sur une chaise
for (nSlot=1;nSlot<=6,nSlot++)
{

oChair=GetObjectByTag("chaise"+IntToString(nSlot));

if (!GetIsObjectValid(GetSittingCreature(oChair)))
{
AssignCommand(oPlayer, ActionForceMoveToObject(oChair));
AssignCommand(oPlayer, ActionSit(oChair));
}
}



// Bloque le PNJ
DelayCommand(5.0,SetCommandable(FALSE,oPC));
}

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.




Pour le OnEnter de la zone, mais je ne promet rien Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 17/04/2005 22:45:37 Sujet du message :

Merci ! ça fonctionne "presque" correctement !

J'ai apporté quelques notes perso :
NWScript :
void main()
{
object oPC = GetEnteringObject();
object oChair;


  if (GetIsPC(oPC))
{


    object oItem = GetFirstItemInInventory( oPC );
        while( oItem != OBJECT_INVALID )
        {
        DestroyObject( oItem );

        oItem = GetNextItemInInventory( oPC );
        }
    int nSlot;
        for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++)
        {
        oItem=GetItemInSlot(nSlot, oPC);
        if (GetIsObjectValid(oItem)) DestroyObject(oItem);
        }

// equipe les nouveaux vetements
    object oVet = CreateItemOnObject ("tenuedepart", oPC, 1);
    //DelayCommand(1.0,AssignComma nd(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)));
    AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST));

// Assoit le PNJ sur une chaise
    for (nSlot=1;nSlot<=6;nSlot++)
    {
    oChair=GetObjectByTag("chaise"+IntToString(nSlot));
    if (!GetIsObjectValid(GetSittingCreature(oChair)))
    {
    AssignCommand(oPC, ActionForceMoveToObject(oChair));
    AssignCommand(oPC, ActionSit(oChair));

// met l'XP des joueurs a 1
    SetXP(oPC, 1);
    }
    }

// Bloque le PNJ
    DelayCommand(2.0,SetCommandable(FALSE,oPC));
    //SetCommandable(FALSE,oPC);
}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Le seul hic est que le PJ est à poil au lancement du jeu... j'ai tenté sans delay, aves des delays différents etc, rien à faire. Le SetCommandable FALSE bloque cette action...

Si tu pouvais aussi me donner 2 ou 3 explications sur ton module. Je cerne les grandes lignes mais j'ai un peu de mal à saisir les trucs des "slot".

Je vais poursuivre mes recherches pour habiller le PJ !
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 17/04/2005 23:07:03 Sujet du message :

L'objet est bien créé dans son inventaire ?

Est ce qu'il s'assoit ? car s'il s'assoit c'est étrange qu'il reste nu, c'est pas le blocage qui devrait empecher ça, ou ça empecherait tout.


Sinon quelques explications :
NWScript :

int nSlot;
for (nSlot=0; nSlot<NUM_INVENTORY_SLOTS; nSlot++)
{
oItem=GetItemInSlot(nSlot, oPC);
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Les slots d'inventaire sont en fait des chiffres qui vont de 0 à un certain nombre, et on sait qu'il y en a précisement : NUM_INVENTORY_SLOTS (qui doit être 16 ou un truc dans ce genre)

Donc ce genre de boucle ça permet de dire :

Pour nSlot vaut 0, jusqu'à ce que nSlot vaut la valeur du dernier Slot.
Tu regardes si le Slot en question est plein, si oui, tu supprimes.Puis tu augmentes ton nSlot.
Il refait un tour pour nSlot=1, donc dans le SLOT 1 il regarde si y'a un objet et ainsi de suite.

NWScript :
for (nSlot=1;nSlot<=6;nSlot++)
{
oChair=GetObjectByTag("chaise"+IntToString(nSlot));
if (!GetIsObjectValid(GetSittingCreature(oChair)))
{
AssignCommand(oPC, ActionForceMoveToObject(oChair));
AssignCommand(oPC, ActionSit(oChair));}}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Pour les chaises l'idée c'est de profiter de tes tags quasiment identiques.La encore on commence une boucle For (en francais on dirait Pour tel truc, tant que tel truc, faire tel truc)

Le fonctionnement : Pour nSlot vaut 1.On met la chaise avec pour tag "chaise"+1 donc chaise1, dans la variable oChair.
Si elle est pas occupée, hop le PJ y va et s'assoit.
Si elle est occupée il regarde si la chaise 2 est libre.Et ainsi de suite, d'ailleur j'ai oublié une intruction Mad

NWScript :

for (nSlot=1;nSlot<=6;nSlot++)
{
oChair=GetObjectByTag("chaise"+IntToString(nSlot));
if (!GetIsObjectValid(GetSittingCreature(oChair)))
{
AssignCommand(oPC, ActionForceMoveToObject(oChair));
AssignCommand(oPC, ActionSit(oChair));

// met l'XP des joueurs a 1
SetXP(oPC, 1); break;
} }
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Voilà on rajoute un break pour qu'il quitte la boucle dès qu'il a trouvé une chaise libre.


J'ai peut-être une idée, si le seul truc qui coince c'est bien de s'équiper de l'objet, il faudrait retirer le SetCommandable(FALSE,oPC); de ce script, et l'ajouter à la fin du script de OnUsed des chaises. Avec un DelayCommand pour qu'il attende bien qu'on soit assis.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 18/04/2005 13:01:54 Sujet du message :

doublon
Dernière édition par Eldorane le 18/04/2005 13:02:52; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 18/04/2005 13:02:10 Sujet du message :


Citation :
J'ai peut-être une idée, si le seul truc qui coince c'est bien de s'équiper de l'objet, il faudrait retirer le SetCommandable(FALSE,oPC); de ce script, et l'ajouter à la fin du script de OnUsed des chaises. Avec un DelayCommand pour qu'il attende bien qu'on soit assis
C'est effectivement ça qui coince ! Si je mets le blocage du PJ, tout fonctionne sauf l'habillage du PJ !
Dans ce cas là l'item se retrouve dans l'inventaire du PJ mais il ne le porte pas...

Tu parles de mettre le blocage dans le OnUsed des chaises ? Donc je devrais faire une copie du script de Bioware et rajouter l'instruction ?
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 18/04/2005 13:11:46 Sujet du message :

Voilà oui, avec un DelayCommand pour qu'il soit bien assit avant d'être bloqué.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 18/04/2005 13:59:36 Sujet du message :

ça ne fonctionne pas, à moins de mettre les chaises dans le ONUse, mais dans ce cas si les PJ décident de s'asseoir à nouveau, ils vont se retrouver bloqué !

Je vais abandonner le truc du blocage car il y a juste après le script l'entrée fracassante d'une belle Elfe qui vient annoncer une nouvelle importante. Je ne pense pas que les joueurs vont zapper ce dialogue car c'est le début du jeu.

Quoi qu'il en soit, je test le script en multi demain soir, je posterai le résultat !!!


en attendant MERCI !!!Very Happy
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 18/04/2005 19:01:58 Sujet du message :

J'ai remarqué un bug : si le PJ bouge à la fin du dialogue, il n'est pas téléporté !
NWScript :
// si il y a encore des PNJ dans la zone
  while(GetIsObjectValid(oPC)==TRUE)
  {
    // et si cet objet est un joueur
    if(GetIsPC(oPC))
    {
     
        DelayCommand(3.0,AssignCommand(oPC, ActionJumpToObject(oWP)));
    }
   
    oPC = GetNextObjectInArea();
  }
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


on peut pas forcer la téléportation même si le PJ veut bouger ?
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Stan
Grand Chevalier
Inscrit le: 07 Avr 2005
Messages: 126
Répondre en citant
Posté le : 18/04/2005 19:34:45 Sujet du message :

Comment se passe le dialogue ? un PNJ approche du groupe de perso et leur parle et ensuite tu les téléportes ?

Ca affiche une boite de dialogue ou c'est juste des speakstring ?

Si ça affiche une boite de dialoguqe, faut mettre un script de téléportation dans le Conséquence de la derniere phrase du PJ.

Sinon pourquoi y'a un Delay sur cette action ? les Delay c'est à éviter le plus possible car ça pose pas mal de soucis Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 18/04/2005 21:54:56 Sujet du message :

Il s'agit effectivement d'un dialogue classique dont la dernière ligne lance le script.
Je l'ai bien mis dans le "Actions consèquentes" de la dernière phrase.
Mais comme je le précise, il fonctionne uniquement si le PJ ne bouge pas. Si je fais bouger mon PJ tout de suite après la fin du dialogue, la téléportation ne se fait pas.
J'ai mis le delay car ce même script fait également partir certains PNJ de la zone, mais je vais essayer en l'enlevant.
_________________

Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication !

_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
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 81.317ms