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 19:53:08


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
nwar_dezir
Ecuyer
Inscrit le: 12 Aoû 2005
Messages: 61
Répondre en citant
Posté le : 12/08/2005 17:43:10 Sujet du message : questions de débutant...

Voila je me suis lancé dans la création de module, et comme jsuis vraiment tout neebie, j'ai besoin de pas mal d'aide. Alors voilà j'ai beaucoup (trop) de questions, et vous êtes pas obligé de répondre à tout, et surtout je sais pas si y'a des scripts pour tout ce que je voudrais faire.
Alors petit listing donc :
- dans ma ville, y'a un garde qui demande au nouveau joueur un passe, en échange de 200 po. Déjà rien que pour le dialogue j'ai un peu de mal, notemment au niveau des conditions ("si le joueur a 200 po : << merci, voici votre passe >>, si le joueur a moins de 200 po : << vous n'avez pas assez de sous >Dark Smile je sais pas trop comment faire.. en fait j'utilise uniquement l'éditeur de script puisque j'connais rien au langage de programmation.
- ensuite je voudrais savoir comment faire pour que le garde s'approche du PJ (et que le PJ s'arrete de courir) quand celui ci arrive dans un point précis de la map pour lui demander ce fameux passe (comme Aribeth au début du prologue...)
- si le PJ ne paye pas le passe, comment faire pour que le garde ET TOUT LES AUTRES GARDES de la ville l'attaque à vue ? c'est une condition à insérer aussi dans le dialogue (ATTAQUER) mais est ce que c'est propre qu'à ce garde ou à tous les gardes du mm nom ?

bon... déja ça et ensuite d'autre questions plus techniques je pense :
- je voudrais faire en sorte que le PJ doit avoir de la nourriture sur lui (un item "viande" par exemple) et un feu de camp pour pouvoir se reposer, et qu'il ne puisse le faire que tout les x min (instaurer un délai pour le repos, comme dans certains mondes persistants...)
- en revanche dans ma ville on peut acheter une maison (avec un systeme de clef que j'ai fait... ca marche bien) et je voudrais si c'est possible que dans une maison on puisse dormir sans feu de camp et sans délai d'attente.. (logique, on est mieux chez soi ^^)
- comment mettre des points de respawn pour les monstres ? (et oui jvous l'avez dit plein de questions ultra chiante Razz) genre dans une certaine salle des monstres apparaissent à l'infini (COMME DANS CERTAINS MONDES PERSISTANTS...)
- et enfin comment marche le respawn du joueur ? (ou c'est qu'on choisit où il revit ?)

bon déja si j'ai des réponses à tout ça je serais FRANCHEMENT content...
Merci de vos réponses, j'espere pas être trop lourd... Laughing

PS : et euh derniere chose si on veut rentre son module en monde persistant (et oui petits moyens mais grands projets Embarassed) je suppose qu'il faut qqch de particulier... ou alors il faut en permanence garder son ordi connecté ?

Voilaaaa
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 12/08/2005 18:26:27 Sujet du message :

Alors pour ton dialogue avec le pass

Dans le "condition d'éxecution" d'ou tu veux que la phrase "Ouais le v'la votre argent" (bon tu peu modifier) apparaisse met ce script :

NWScript :

int StartingConditional()
{

   
    if(GetGold(GetLastSpeaker()) > 200 )
        return TRUE;

    return FALSE;
}
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 ta 2eme question :

Tu fait un déclencheur ("trigger" en anglais)

et dans le OnEnter de ce déclencheur tu met :

NWScript :


void main()
{
object oEnter = GetEnteringObject();
object oGarde = GetObjectByTag("TagDuGardeQuiDemandeLobjet");

    if (!GetIsPC(oEnter)) //si oEnter n'est PAS un joueur alors ne rien faire
        return;
    else
        {
            AssignCommand(oEnter, ClearAllActions()); //stop les actions du joueur en cours
            AssignCommand(oGarde, ActionMoveToObject(oEnter));
            AssignCommand(oGarde, ActionStartConversation(oEnter, "NomDuDialogue"));
            //remplace "NomDuDialogue" par le nom du dialogue ou le garde demande le pass
            DelayCommand(2.0, DestroyObject(OBJECT_SELF));
        }
}
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 dialogue ou le Garde demande ou joueur le passe tu fait un dialogue du style:

Code :

Bonjour montrez moi votre passe (Garde)
|__Oui tenez le voila (Joueur) < ce que répond le joueur si il a son passe
|______Ok c'est bon... (Garde) < ce que dit le garde si le joueur a son passe
|__Bah j'l'ai pas Sad (Joueur) < ce que répond le joueur si il n'a pas son passe
|______Alors creve !!! (Garde) < ce que répond le garde si le joueur n'a pas son passe


Dans le "condition d'éxécution" de "Oui tenez le voila" met ce script :

NWScript :

#include "nw_i0_tool"

int StartingConditional()
{

   
    if(!HasItem(GetPCSpeaker(), "TagDuPass"))
        return FALSE;

    return TRUE;
}
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 le "Action conséquente" de "Alors creve" met

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.


Met tous les garde dans la même factions par contre (au début met les neutre ou amicaux enver le joueur)

Voila déja pour ca...
Dernière édition par Yoyo le 14/08/2005 09:57:59; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
nwar_dezir
Ecuyer
Inscrit le: 12 Aoû 2005
Messages: 61
Répondre en citant
Posté le : 12/08/2005 18:42:04 Sujet du message :

merci beaucoup ! Very Happy

EDIT : trois autres tites question à propos de ce garde.
1ere chose : y'avait qql erreurs (ou alors mauvaises interprétation de ma part) nottemment j'ai remplace LASTSPEAKER par PCSPEAKER pour les Po apres ca marchais bien ca les enlevais (j'ai du placer la condition au mauvais endroit, m'enfin avec ça ca marche) mais surtout y'a un pb au niveau du "trigger" c'est qu'a chaque fois que je rentre dans la zone le garde revient me demander d'acheter le passE... (logique, ca détruit pas) donc faudrait détruire le "trigger" et ca j'ai bien cherché mais la fonction DestroyObject j'ai rien compris.. alors comment faire quoi rajouter ? ^^'
2e chose : est ce qu'il y a moyen d'empecher le joueur de quitter la conversation avec la touche "échap" (ou alors de faire en sorte que le dialogue se redéclenche aussitôt)
3e chose : est ce qu'on peut "repousser" le joueur (genre "non vous n'avez pas d'argent, vous ne passez pas") et ainsi virer le joueur de la zone "trigger"... (je sais pas si vous avez bien compris...)
voila merci et si quelqu'un aurait des réponses pour les autres questions...
merci encore
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 14/08/2005 10:06:17 Sujet du message :

Voila j'ai édité pour le trigger

pour ton 2eme point

Je ne sait pas

pour le 3eme point

tu met dans le "action conséquente" de "on ne passe pas" ce 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.

Remplace "TagDuWaypoint" par le tag du waypoint ou tu veux que le joueur est repoussé (ne le met pas trop loin de la ou il parle sinon le joueur va se téléporter (si le waypoint de destination est assez proche de l'endroit ou le joueur se trouve le joueur "glisse" (il ne se téléporte pas))

mais il y a un probleme si le joueur est repoussé il ne pourras plus avoir acces au dialogue parce que le trigger est détruit

Enfin bon c'est toi qui vois Smile
 
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 : 14/08/2005 14:31:23 Sujet du message :

2eme point : dans les onglets de l'editeur de dialogue, tu as Fichiers actuels,
avec une zone nommée abandon appelant un script.
Il est donc fort probable que ce script soit appelé lorsque le joueur abandonne la conversation
via la touche échap, il suffirait donc d'y faire redémarré le dialogue, avec par exemple :

NWScript :
void main()
{
object oGarde = GetObjectByTag("Tag_du_garde");
object oPJ = GetPCSpeaker();
AssignCommand(oGarde, ActionStartConversation(oPJ, "NomDuDialogue"));
}
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.


Je n'ai pas testé, désolé, mais en théorie ça devrait être ça quoi... Embarassed
_________________
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
 
nwar_dezir
Ecuyer
Inscrit le: 12 Aoû 2005
Messages: 61
Répondre en citant
Posté le : 15/08/2005 16:02:52 Sujet du message :

ok merci de vos réponses
je vais essayer de me renseigner pour les diverses autres choses que j'ai demandées, si jamais quelqu'un sait comment faire... qu'il n'hésite pas !
 
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 38.424ms