La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 23:00:06
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Miltiadesadd Acolyte Messages: 35 |
Bonsoir à tous, voilà je vous présente mon problème.
je pensais créer un baton qui permette la création d'un potrail de téléportation. Ce bâton serait à usage unique et créerait un portail visuel qui permmettrait aux dits personnages de se retrouver à l'abri dans une autre zone. Toutefois, ce portail ne resterait ouvert que 20 secondes et pas une de plus. voilà j'ai essayé mais je n'y arrive pas Si quelqu'un pouvait m'aider svp. merci ah oui dsl j'oubliais une chose. ce baton serait donné lors du déclenchement d'un quête via un PNJ. Comment faire en sorte que cette quête ne puisse être enclenchée qu'une fois par un PJ et non par tous les PJ du module par exemple. C'est à dire, le 1er PJ parle au PNJ et s'il accepte la quête, il lui donne le baton. Un autre PJ vient voir le même PNJ mais ce dernier ne propose plus la quête et donc à fortiori ne donne plus la pierre. Sauf si le 1er PJ a refusé la quête. |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
A mon avis, il faudrait que l'utilisation de ce baton crée un trigger temporaire, dans l'idéal. Je ne sais pas du tout si c'est faisable par contre.
Pour éviter de donner plusieurs fois le baton à un même PJ, il faut utiliser une variable campagne ("SetCampaign") lorsque la Quête est accomplie. |
Revenir en haut | |
Miltiadesadd Acolyte Messages: 35 |
oulà je comprend ce que tu veux dire mais c'est fort compliqué pr moi
|
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
J'aimerais bien avoir les avis des autres scripteurs pour ce qui est de la création du portail. Comme je ne suis pas sûr de ma proposition, je ne veux pas entrer dans les détails.
Pour ta seconde question, je te conseille d'aller voir les tutoriaux (cf ce sujet). C'est expliqué très en détail, pour ce qui est des Quêtes et des variables. |
Revenir en haut | |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
je ne suis pas scripteur , mai je ne pense pas qu'un trigeur soit nessesaire : il suffit que le portail soit cree la ou est le joueur
|
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Comment fais tu pour créer ce portail?
|
Revenir en haut | |
Harmelyo Chevalier Messages: 84 |
Bon... Je pense que 2 possibilités s'offrent face à ce choix, le Trigger est une possibilité et mes maigres compétences à ce niveau ne me permettent guère de pousser sur le sujet. La seconde solution pourrait être la création d'un placable (colonne de lumière ou autre) ayant dans son onUsed une fonction de téléportation vers un WP, dans tout les cas il reste la gestion du temps et là je ne suis pas certain de comment la réalisé, peut être est il possible d'utiliser une fonction du style DelayCommand pour le delete bien que cela me semble guère possible, il faudra surement réaliseer un compteur autrement.
|
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Oui, l'idée du placable est bonne. A mon avis, c'est plutôt dans ce sens qu'il faut aller.
|
Revenir en haut | |
Miltiadesadd Acolyte Messages: 35 |
en fait j'explique la raison de cet item.
J'ai crée un dongeon sur 8 niveaux qui augmente en difficulté et ce batôn permettrait au PJ de quitter le dongeon s'il pense qu'il va mourrir. En revanche il ne pourrait pu entrer ds ce dongeon car la porte est fermée pour de bon ( j'ai fait en sorte que la quête ne soit proposée qu'une fois par reboot ) Mais si je comprends bien , vous pensez que je devrais mettre un ou plusieurs portails dans le dongeon??? merci. |
Revenir en haut | |
Seth de Sombrelune Seigneur Messages: 156 |
ce que tu desire est tres simple a réaliser. Dans ce post, je ne te donne que la marche a suivre, je te propose de tenter de scripter toi même les scripts. si tu n'y arrive pas je te donnerais la solution (dison lundi ).
premierement pour l'item de quete, dans le onactiveitem, la propriété (usage unique) doit designer une cible. tu recupere la localisation de la cible, ensuite a ce point tu cré un placable "X" (tu connais son tag et son resref, c'est par son resref que tu le crée). enfin tu place un delaycommande qui detruit le placable au bout de 20 secondes... deuxièmement : tu crée dans la palette un placable non statique, utilisable et en intrigue. Dans le OnUsed du placable, tu teleporte le dernier utilisateur jusqu'a un waypoint que tu aura placer (le lieu de ta téléportation quoi...). rien de plus. troisièmement : dans le dialogue de ton pnj Deux branches de dialogue : - je n'ai plus besoin de vous, des fous ont accepter ma mission suicide ha ! ha ! ha ! (fin du dial)--> script de condition : qu'une variable definie sur le PNJ =1 -Il faut aller visiter un dongeon, reunissez votre equipe et allez au charbon ! ---Non merci je ne suis pas fou (fin du dial) ---Oui je veux un max de tunes ! (fin de dial) --> Action Conséquante : Donne le baton de teleportation + definir une variable de type Int que tu place a 1 par exemple sur le PNJ Donc quand un pj vas voir le PNJ, si quelqun a deja activer la quete, il repondra la première phrase, sinon il proposera automatiquement la quete. Si pour fixer la variable tu utilise un SetLocalInt, alors on pourra refaire la quete a chaque reboot serveur (si c'est un multijoueur persistant) si tu utilise un SetCampaignInt en utiliant une BDD, alors on ne poura refaire la quete qu'une fois pour toute. Par contre on peu s'arranger pour que ta quete ne soit réalisable declanchable par un joueur qu'une fois seulement. Aller au taf à présent ! tu nous montre ce que tu a fait, si tu n'y arrive pas, la solution lundi. |
Revenir en haut | |
Seth de Sombrelune Seigneur Messages: 156 |
bon c'est de desert de Gobbi ce post...
Voici comment c'était trop simple. Seth de Sombrelune a écrit : deuxièmement : tu crée dans la palette un placable non statique, utilisable et en intrigue. Dans le OnUsed du placable, tu teleporte le dernier utilisateur jusqu'a un waypoint que tu aura placer (le lieu de ta téléportation quoi...). rien de plus. dans le OnUsed du plaçable : NWScript :
void main() { object oPC=GetLastUsedBy(); //on designe l'utilisateur object oWP=GetWaypointByTag("WP_destination"); // on designe le point de teleportation AssignCommand(oPC,JumpToObject(oWP));// le pj est teleporter a l'emplacement du WP } * 1 WayPoint ayant pour tag "destination" dans la zone de securité. Seth de Sombrelune a écrit : premierement pour l'item de quete, dans le onactiveitem, la propriété (usage unique) doit designer une cible. tu recupere la localisation de la cible, ensuite a ce point tu cré un placable "X" (tu connais son tag et son resref, c'est par son resref que tu le crée). enfin tu place un delaycommande qui detruit le placable au bout de 20 secondes... Créer un script ayant le même nom que l'item (ici "item") NWScript :
void main() { object oItem=GetItemActivated(); //designe l'item active object oPC=GetItemActivator();//designe le pj qui active l'item location lTarget=GetItemActivatedTargetLocation(); //designe le point de la cible de l'item if (GetTag(oItem)=="item")//on verifie que le tag de l'item active est bien celui que l'on veux { object oPortail=CreateObject(OBJECT_TYPE_PLACEABLE,"portail",lTarget); //on designe le placable que l'on cree au point de la cible de l'item DelayCommand(20.0,DestroyObject(oPortail,0.0)); //on detruit le placable au bout de 20 secondes } } Seth de Sombrelune a écrit : troisièmement : dans le dialogue de ton pnj Deux branches de dialogue : - je n'ai plus besoin de vous, des fous ont accepter ma mission suicide ha ! ha ! ha ! (fin du dial)--> script de condition : qu'une variable definie sur le PNJ =1 -Il faut aller visiter un dongeon, reunissez votre equipe et allez au charbon ! ---Non merci je ne suis pas fou (fin du dial) ---Oui je veux un max de tunes ! (fin de dial) --> Action Conséquante : Donne le baton de teleportation + definir une variable de type Int que tu place a 1 par exemple sur le PNJ - [propriétaire]je n'ai plus besoin de vous, des fous ont accepter ma mission suicide ha ! ha ! ha ! (fin du dial) --> script de condition : NWScript :
int StartingConditional() { // Inspecter variables locales if(!(GetLocalInt(GetPCSpeaker(), "quete") == 1)) return FALSE; return TRUE; } --> script de conséquance : rien - [propriétaire]Il faut aller visiter un dongeon, reunissez votre equipe et allez au charbon ! --> script de condition : rien --> script de conséquance : rien ---Non merci je ne suis pas fou (fin du dial) --> script de condition : rien --> script de conséquance : rien ---Oui je veux un max de tunes ! (fin de dial) --> script de condition : rien --> script de conséquance : NWScript :
void main() { CreateItemOnObject("item", GetPCSpeaker(), 1); SetLocalInt(GetPCSpeaker(), "quete", 1); } Voilà, un peit effort aurais été aprécié |
Revenir en haut | |
Miltiadesadd Acolyte Messages: 35 |
merci bcp à vous tous.
En plus j'ai trouvé autre chose de sympa pr ça. On crée un item à usage unique avec un tag précis. On crée le script de téléport mais attention il doit avoir le même tag que l'item crée. Ainsi on ne passe pas par le on activate. J'ai testé et ça marche ^^ |
Revenir en haut | |
Harmelyo Chevalier Messages: 84 |
c'est en effet une amélioration apporté par Bioware lors d'un patch relativement recent. Toutefois lorsque j'ai voulut le tester en combinaison avec le OnActivate j'ai eu des surprises... Bref c'est relativement mieux dans le cas d'un module récent(ou revu sans OnActivate). Mais depart mon experience et l'expérience des personnes pour qui j'ai réalisé le script sans Onactivate, cela révèle parfois des biens mauvaises surprises.
Donc les anciens, à moins d'être motivé pour refaire tout le onactivate, reste avec ce dernier. Les nouveaux peuvent et feraient surement mieux de ce faire plein de petit script (moins lourd à l'appel qu'un script de 2000 lignes avec 400 if qui se suivent... |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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