La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 18/05/2024 13:26:14


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
sylveran
Ecuyer
Inscrit le: 03 Sep 2004
Messages: 57
Localisation: dijon
Répondre en citant
Posté le : 11/09/2004 18:45:08 Sujet du message : spawn d'un pj

Bonjour à vous
voila en fait pour le moment je ne maitrise pas encore tres bien les cnditions dans les scrypts
et je voudrais savoir comment faire spawner un pj à un waypoint correspondant à un item (ex: clef,anneau...)à partir d'un portail
(si le pj à l'anneau, il spawn à l'endroit xxx et si il à la clef il spawn a l'endroit yyy)

merci d'avance Very Happy
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 11/09/2004 22:57:58 Sujet du message :

qu'apelles tu "spawner " exactement ? se téléporter ?

si tel est le cas , je pense que tu pourrais faire un script du genre :

NWScript :


void main()
{
oPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);

if (GetItemActivated()==GetObjectByTag(<le tag de ton objet xxxDark Smile)
      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag(<tag de ton objet d'arrivée xxxDark Smile));
      }

if (GetItemActivated()==GetObjectByTag(<le tag de ton objet yyyDark Smile)
      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag(<tag de ton objet d'arrivée yyyDark Smile));
      }

}

/* warning: 2 unclosed parenthesis () */
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.



tu mets ce script à priori dans le script OnItemActiveted de ton module (dans propriétés du module) et ca devrait rouler a peu pres. Quand ton perso utilisera l'objet xxx , il se teleportera a la loc xxx (comme dans la campagne de base avec la pierre de rappel)

Si tu ne veux que tester la possession, ben j'ecrirais un truc du genre pour la condition:

NWScript :

if (HasItem(oPC,GetObjectByTag("&lt;tag de ton object xxx&gt;")))
{
  <teleporte a la loc xxx>
}
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.


dans ce cas n'oublie pas de rajouter l'include :

#include "nw_i0_tool"

( car HasItem n'est pas une fonction de base )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
sylveran
Ecuyer
Inscrit le: 03 Sep 2004
Messages: 57
Localisation: dijon
Répondre en citant
Posté le : 12/09/2004 19:59:30 Sujet du message :

merci je vais essayer sa mais je pense que a priori sa devrait marcher Very Happy
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
sylveran
Ecuyer
Inscrit le: 03 Sep 2004
Messages: 57
Localisation: dijon
Répondre en citant
Posté le : 13/09/2004 18:41:54 Sujet du message :

Le scrypt marche bien mais par contre le pj se teleporte que si on active l'objet or se n'est pas se que je voulais Confused

En fait je me suis mal exprimé je voulais que le pj se teleporte via un portail et que si il à la clef il arrive à l'endroit xxx, alors que si il a l'anneau il arrive à l'endroit yyy
Si vous aviez une soluce Very Happy merci beaucoup
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 13/09/2004 18:53:45 Sujet du message :

ok c'est pas trop dur .

voila tu crée un placeable genre portail ou colonne de lumiere enfin ce que tu veux, tu coches la case "utilisable" et ensuite tu fais un script sur le "on used" de cet objet du genre :

NWScript :

#include "nw_i0_tool"

void main()
{

    object oPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);

if (HasItem(oPC,"tag_xxx")==TRUE)
      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("tag_objet_destination_xxx"))));
      }

if (HasItem(oPC,"tag_yyy")==TRUE)
      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("tag_objet_destination_yyy"))));
      }

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


ca marche bien , a condition de ne pouvoir avoir qu'un seul des deux objets , si tu n'en a aucun il ne se passe rien mais si tu as les deux ... alors la mystere il doit donner la priorité au premier "if" je pense mais c'est pas sur.
voila j'espere avoir bien compris ton soucis cette fois et t'avoir aidé .

tcho.

PS pour les curieux : HasItem est une fonction cachée , elle n'apparait qu'avec le truc de script automatique ...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 13/09/2004 20:34:16 Sujet du message :

bonjour, je travaille avec Sylveran, merci beaucoup, ça devrait nous aider...encore merci8)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Joubinator
Ecuyer
Inscrit le: 07 Jan 2003
Messages: 42
Localisation: Yvelines
Répondre en citant
Posté le : 14/09/2004 10:11:56 Sujet du message :

J'arrive en retard et GrosRaoul vous a déjà tres bien répondu.

Vu le pb de priorité entre les deux anneaux, il faut faire juste une hierarchie dans les "if" comme le disais GrosRaoul.
Je me suis permis de reprendre le script précedent, et remodelé le contenu pour faire en sorte que le tagxxx passe avant le tag yyyy, et que si le pc n'a pas le ou les anneaux , un petit message apparait Very Happy

NWScript :

#include "nw_i0_tool"

void main()
{

    object oPC= GetLastUsedBy();pour un Objet, mettre script dans le OnUsed

if (HasItem(oPC,"tag_xxx"))
      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("tag_objet_destination_xxx"))));
      }
      else if (HasItem(oPC,"tag_yyy"))

      {
          AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("tag_objet_destination_yyy"))));
      }

      SendMessageToPC(oPC, "Vous n'avez pas les bons objets pour vous teleporter");

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



Concernant le HasItem, cette commande est "cachée" dans le script "nw_i0_tool".
Inscrit comme ceci #include "nw_i0_tool" , on appelle cela un bibliothque de script.
Dans l'éditeur de script de Aurora tu ne peux voir les fonctions cachées que si tu places en #include "xxxxxxxxxxx" le script bibliotheque.
Il faut savoir que toutes les fonctions "cachées" ne sont pas contenues dans un seul script, se serait trop facile Laughing
_________________
M'enfous si les pjs tuent mes monstres,.... j'en ai plein (paroles d'un DM d'expérience Wink )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 14/09/2004 11:08:28 Sujet du message :

je croyais que quand tu cherchais une fonction , elle apparaissait en gras dans la petite case si elle etait dans un include , j'ai du me tromper Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Joubinator
Ecuyer
Inscrit le: 07 Jan 2003
Messages: 42
Localisation: Yvelines
Répondre en citant
Posté le : 14/09/2004 12:50:40 Sujet du message :

Non tu t'es pas trompé.
Ce que tu ecris est juste !
Tu completes meme ce que j'annonçais Very Happy (principe de la communauté des forums Very Happy)
_________________
M'enfous si les pjs tuent mes monstres,.... j'en ai plein (paroles d'un DM d'expérience Wink )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 14/09/2004 13:35:48 Sujet du message :

oui mais ce n'est justement pas le cas de cette fonction, enfin pour moi en tout cas elle n'apparaissait pas non plus en gras , ce qui signifierai que cet include est donc inutile ?
enfin bon l'essentiel c'est que ça marche hein Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
sylveran
Ecuyer
Inscrit le: 03 Sep 2004
Messages: 57
Localisation: dijon
Répondre en citant
Posté le : 14/09/2004 17:42:12 Sujet du message :

merci à vous les scrypt marche parfaitement Very Happy
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 15/09/2004 13:58:52 Sujet du message :

oui, merci, sauf que j'ai viré la phrase "vous n'avez pas les objets...." car elle aparaissait tout le temps....mais la priorité marche impeccablement, encore merci !!!
_________________
Rien n'est grave dans la vie...sauf de la perdre...
Chroniques des Royaumes Perdus :
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
nelia
Acolyte
Inscrit le: 16 Aoû 2005
Messages: 36
Répondre en citant
Posté le : 05/08/2006 02:18:59 Sujet du message :

Bonjour tout le monde,

Excusez moi de déterrer ce topic du tréfond du forum mais c'es le seul qui colle a ma demande actuelle..

Je viens de tester le script:
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.

Il marche niquel, mais j'ai un petit soucis.. Pour ce script, il faut necessairement avoir un item dans son inventaire pour l'activer.. Hors, moi je voudrais avoir une fonction "libre" pour qu'il se declanche aussi quand il n'y a pas d'item.. Je developpe un chouilla Razz

Ce script, je vais le mettre sur un portail se trouvant sur une map de bienvenue. Donc tous les joueurs devront obligatoirement le passer. Mais si c'est la premiere fois que le joueur arrive, il n'aura aucun item sur lui (du moins, j'aimerais eviter de me casser la tete a lui rajouter automatique a sa premiere connexion). Tous les nouveaux joueurs iront par defaut a un endroit précis du module et rejoindront des factions précises par la suite..

Les items necessaires pour rejoindre la faction choisis seront donnés via MD.

Donc je pensais faire un tuc du genre:
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.

Biensûr j'ai testé avec ca mais ca marche pas, donc je viens demander votre assitance.. Où me suis-je tromper? Confused

Ha oui, autre chose aussi dans le meme genre..

J'aimerais pouvoir appliquer ce genre de script l'hors d'un respawn d'un joueur. Genre le pj meure, il clique sur le bouton respawn et il est téléporté sur le meme Waypoint qu'a son arrivée.. (donc le WP_VillageDeBase, WP_Faction1, WP_Faction2 etc...) Quel genre de script il me faut et où le mettre précisément? :$
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aladar
Chevalier
Inscrit le: 15 Déc 2004
Messages: 96
Localisation: Tours
Répondre en citant
Posté le : 05/08/2006 03:47:54 Sujet du message :

Salut!

Tu dis ne pas vouloir te casser la tête à donner les items lors de la première connexion, cependant je pense que la solution que tu as choisis est bien plus prise de tête.

Plus simple, tu mets un pnj dans la salle ou il y a ce portail, sur le pnj un dialogue durant lequel le pj choisi un camp.
Le pnj donne l'item, et le pj pourra passer le portail.

Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
nelia
Acolyte
Inscrit le: 16 Aoû 2005
Messages: 36
Répondre en citant
Posté le : 05/08/2006 05:01:16 Sujet du message :

Nah, je ne veux pas de PNJ qui dispatch mes joueurs.. Parce que 1 ca me fait faire tout un dialogue sur un pnj et de 2 ca me rajoute un script a faire..

Hors ce que je demande c'est juste avoir un moyen d'envoyez tous mes joueurs au village par defaut (tous les pjs qui n'ont pas d'item particulier)et d'envoyer ceux qui ont un items dans une autre zone prédéfinie.

donc ca ferais un genre de:

if (joueur n'a pas d'item){
JumpToLocation WP_villagedebase
}
else if (joueur a l'item X){
JumpToLocation WP_FactionX
}
else if (joueur a l'item Y){
JumpToLocation WP_FactionY
}

etc etc..

Comme ca, j'ai de la marge si je veux rajoutere des factions et je gardes toujours une fonction "vide" pour tous les nouveaux joueurs..


(pareil pour le respawn)
 
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 : 05/08/2006 10:53:20 Sujet du message :

Il y a un truc qui cloche dans vos manips la lol.

Nelia demande un script pour téleporter un PJ a un Waypoint grâce a un portail. Donc le PJ doit l'utilisé... (GetNearsCreature() ne devrait pas être dans l'histoire)

Nelia essaye ça :

Tu vas faire un teste avec 1 objet. On va prendre l'objet A (tag: "T_Lyon"). Tu fais un portail, tu le mets la ou tu veux. Ceux portail doit envoyer à lyon grâce a l'objet A, donc on va le tag : "P_T_Lyon" (P=portail, T=Teleportation). Maintenant faut faire le point d'arriver de Lyon, donc on va faire un waypoint tag : "WP_T_Lyon".


NWScript :
void main()
{
object oPC = GetLastUsedBy();//tu demande quand on utilise le portail, c'est cette fonction qui te conviendra le mieux je pense. Enfin si tu veux pas elle l'autre marchera avec aussi Razz
object oItem = GetFirstItemInInventory(oPC);
string sTag, sTele;
while(GetIsObjectValid(oItem))
{
sTag = GetTag(oItem);
sTele = GetStringLeft(sTag, 2);
if(sTele == "T_"&&GetTag(OBJECT_SELF)== "P_"+sTag)
{
AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetWaypointByTag("WP_"+sTag))));
}
oItem = GetNextItemInInventory(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.


Voila, alors ce que ce script fait est trés simple, et évite de faire 300,000 script de téléportation! Déjà il regarde les objets de l'inventaire du PJ, si il voit des objets avec comme tag de debut "T_" il l'ait garde en tête (façon de parler). Puis il regarde le tag du portail, si ce tag de portail, à le même tag d'un objet ("P_"+Tag objet) il téléporte sont possesseur, au waypoint qui a lui aussi le même tag que l'objet ("WP_"+Tag objet). Bon si tu comprends pas voici une petite explication courte est simple :

PJ possède un objet A (tag:"T_Paris") il utilise le portail tag "P_T_Paris", il sera envoyer au waypoint "WP_T_Paris".

PJ possède un object B (tag:"T_sqdsoqidqsno") il utilise le portail tag "P_T_sqdsoqidqsno", il sera envoyer au waypoint "WP_T_sqdsoqidqsno".

Jespere que ta compris je suis nul en explication, le tout c'est que t'es le script xD

Mais faudra quand même m'expliquer d'ou viens cette idée de mettre GetNearsCréature() Razz
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 05/08/2006 11:07:41 Sujet du message :

NWScript :

#include "nw_i0_tool"

void main()
{

object oPC=GetLastUsedBy();

if (HasItem(oPC,"item1")==TRUE)
{
    AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("WP_Faction1"))));
}
else if (HasItem(oPC,"item2")==TRUE)
{
    AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("WP_Faction2"))));
}
else AssignCommand(oPC,ActionJumpToLocation(GetLocation(GetObjectByTag("WP_VillageDeBase"))));

}

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 comme ça ?
_________________
L'île perdue - Module RP - Hard Core Ruled - En construction
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
nelia
Acolyte
Inscrit le: 16 Aoû 2005
Messages: 36
Répondre en citant
Posté le : 05/08/2006 23:22:07 Sujet du message :

Niquel ^^

Pour le respawn je voudrais que ca fasse a peu pres la meme chose (sans portail) que quand le pj clique sur le bouton respawn, il resp a l'endroit où il est arrivé par le portail de bienvenue..

Est-ce le meme code a insérer dans le OnDeath ?

J'avoue que j'ai peur de toucher le script OnDeath d'origine..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 05/08/2006 23:26:22 Sujet du message :

C'est dans le OnPlayerRespawn que ça se passe.
Et à première vue oui, le script devrait convenir. Enfin bien sur faut changer la définition d'oPC (GetLastRespawnButtonPresser() enfin tu vois).

Et y a pas mal de trucs à virer dans ce script, hésite pas à le toucher (avec précautions quand même mais il y a tout le bordel de NWN qui gère la téléportation au temple, les zones spéciales de la campagne à virer)
_________________
L'île perdue - Module RP - Hard Core Ruled - En construction
 
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 43.201ms