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


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 31/12/2005 16:30:19 Sujet du message : Les dieux...

Je voudrais que mes pjs respawn a un endroit différent selon le nom de leur dieu (emplacement deity choisi à la création du perso).
via la fonction getdeity surement.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 01/01/2006 15:18:16 Sujet du message :

bon... je ne suis pas trop en état de répondre à ta requête mais je te conseille plutôt de faire remplir ce champs par un script à la première création des pjs pour éviter le chaos des fautes de frappes et autres erreur de recopiage... Sinon tu risque de voir ton script cafouiller quand un joueur aura saii de manière incorrecte le nom du dieu.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 02/01/2006 18:09:31 Sujet du message : Par Jupiter !

Bonsoir Yan et bonne année !
Je souscris tout à fait à la remarque de Harmelyo, il vaut mieux attribuer la divinité de tes PJs dans un dialogues. Et après tu les fais marcher sur un trigger par exemple, qui les envoie à l'endroit voulu.

Pour cet exemple, jai pris comme nom de dieu : Enki Very Happy et Enlil, deux dieux sumériens.
Le tag des Waypoints où le PJ se rend doit être "WP_" + le nom du dieu. Cela t'évite de marquer le nom du waypoint pour chaque nom de dieu.

Le script que tu demandes est très simple, tu peux le mettre sur le onClient enter du module ou sur le OnEnter d'un trigger (recommandé).
Si tu veux le mettre sur un dialogue, change GetEnteringObject(); par GetPCSpeaker(); :
NWScript :
void main()
{

object oPC=GetEnteringObject();
string sEnlil="Enlil";
string sEnki="Enki";
string sDieu= GetDeity(oPC);
object oWaypoint=GetWaypointByTag("WP_"+ sDieu);

if (sDieu== sEnlil )

    {
  AssignCommand(oPC,ActionJumpToObject(oWaypoint));

    }

  else if (sDieu== sEnki )

{

  AssignCommand(oPC,ActionJumpToObject(oWaypoint));

}
}
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 choisir le dieu dans un dialogue, évitant ainsi les fautes de frappes, Dans le dialogue où le PJ choisi son dieu, tu mets par example :

NWScript :
void main()
{
object oPC=GetPCSpeaker();

  SetDeity(oPC,"Enki");
}
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.


Et voilà !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 03/01/2006 18:46:25 Sujet du message :

C'est quoi SetDeity, elle sert a quoi cette fonction, je là connais pas lol.


Citation :
NWScript :
void main()
{

object oPC=GetEnteringObject();
string sEnlil="Enlil";
string sEnki="Enki";
string sDieu= GetDeity(oPC);
object oWaypoint=GetWaypointByTag("WP_"+ sDieu);

if (sDieu== sEnlil )

{
AssignCommand(oPC,ActionJumpToObject(oWaypoint));

}

else if (sDieu== sEnki )

{

AssignCommand(oPC,ActionJumpToObject(oWaypoint));

}
}
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.

Houla j'ai du mal a comprendre ton script. Si sDieu est egale a sEnlil il se téléporte, si il est egale a sEnki il se téléporte... Déjà autemps les réunirs tout les deux (if(sDieu == sEnlil || sDieu == sEnki))
Et je ne vois trop pas a quoi sa sert de mettre sa. . . .
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 03/01/2006 23:20:12 Sujet du message : Des précision !

Bonsoir à tous !

> Black Knight : SetDeity est une fonction qui permet de remplir le champ /Divinité/ d'une feuille de perso. Cela permet de changer la divinité d'un Perso pendant le jeu, s'il décide par exemple de se convertir à l'islam ou au christianisme dans un module où la religion a une importance.
Cela permet également, ce que je suggerai dans mon message précédent, d'éviter les "fottes d'aurtograffes" lorsque le joueur choisi son dieu à la création d'un perso. Ce qui invaliderait tous les scripts et les dialogues qui font appel à la divinité d'un joueur.

Tu as écrit :

Citation :
Houla j'ai du mal a comprendre ton script. Si sDieu est egale a sEnlil il se téléporte, si il est egale a sEnki il se téléporte... Déjà autemps les réunirs tout les deux (if(sDieu == sEnlil || sDieu == sEnki))
Effectivement, on peut écrire le script de cette façon, mais je pensais que cela serait plus lisible, ou du moins plus clair pour Yan de bien séparer les conditions.

> Yan : Je te fais mes excuses car j'ai mal lu ton message (c'était le lendemain du jour de l'an, j'ai de bonnes excuses). En le relisant, j'ai vu que tu voulais que tes PJs réapparaissent aprés leur mort dans un lieu différent selon leur dieu, alors que je croyais que tu voulais qu'ils apparaissent à un lieu différent selon leur dieu à l'entrée du module.

Donc voici le bon script, à mettre sur le OnPlayerRespawn du Module :

NWScript :
#include "nw_i0_plot"
    void main()
{

object oPC=GetLastRespawnButtonPresser();
string sEnlil="Enlil";
string sEnki="Enki";
string sDieu= GetDeity(oPC);
object oWaypoint=GetWaypointByTag("WP_"+ sDieu);

ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPC)), oPC);
RemoveEffects(oPC);


if (sDieu== sEnlil )

{
AssignCommand(oPC,JumpToObject(oWaypoint));

}

else if (sDieu== sEnki )

{

AssignCommand(oPC,JumpToObject(oWaypoint));

}
}
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.


Et voilà, à bientôt !
 
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 35.983ms