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 15:47:30
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 |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
jaimerai fair un moyen d'avoir sa propre maison , je m'explique .
il y a dans une rue : - des maisons verrouiller . - des pancarte devant chaque maison , avec marquer " A VENDRE " . - une boutique de meuble . - un vendeur d'habitation . on parle au vendeur d'habitation qui nous demande si on veut une maison , on donne l'argent il nous donne la clé portant le nom de la maison . a ce moment la , la pancarte de la maison est renommer en "maison de < nom du perso qui a acheter >". jaimerai qu'une personne ayant deja une maison ne puisse pas en avoir une autre est que la clé de chaque maison ne soit donner qu'une seule foit jaimerai aussi que la boutique de meuble vend des coffre < dans l'inventaire > , et quant tu est dans la maison , par effet special , tu puisse le placer ou tu veux , et que quant tu parle au coffre placer tu a la choix entre: - regarder l'inventaire du coffre - reprendre le coffre dans l'inventaire - revendre le coffre et si possible que l'inventaire du perso et du coffre soit limiter a une page < pour insiter a acheter > je sai que je demande beaucoup , et je ne vous en voudrer pas de ne pas repondre merci pour vo futur reponse |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Salut Marneus et bonne année,
Je te conseille d'acheter les SIMS, ce jeu te permet de faire exactement ce que tu veux. Bon, sérieusement, ton idée est intéressante, si j'ai un peu de temps, je vais voir ce que je peux faire. Mais cela à l'air difficile. A bientôt. |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Salut Marneus,
J'ai fait les scripts que tu demandais pour la pancarte, la maison et le vendeur. Tout marche correctement. Par contre, je suis désolé mais je ne comprends rien à ton histoire de "coffre dans l'inventaire" et je ne vois pas le rapport avec les meubles. Pourrais-tu apporter quelques précisions ? Voici les infos et les scripts pour le reste : Tu prends une pancarte et tu lui attribues une variable (clic-droit sur l'objet > variables) ayant pour nom "vendu" de type string et dont la valeur est "vendre". Le tag de ta pancarte doit être "maison_01" pour celle de la première maison, "maison_02" pour la pancarte de la 2e, etc. Elle doit être utilisable. Sur le OnUsed mets ce script : NWScript :
void main() { object oPC=GetLastUsedBy(); string sMaison=GetLocalString(OBJECT_SELF,"vendu"); if (sMaison != "vendre") { SpeakString("Maison de " + sMaison); } else { SpeakString("A vendre"); } } Tu fais dans ta palette une clef (1 seule suffit) avec pour ResRef "clef_perso". Tu fais pour la maison 1, une porte avec pour TAG "maison_01". et tu mets dans les propriétés de la porte > serrure > tag clef : "clef_maison_01" (tu ne créés pas la clef, c'est pas la peine. Pour la maison 2 une porte avec pour tag "maison_02" et et tu mets dans les propriétés de la porte > serrure > tag clef : "clef_maison_02" (tu ne créés pas la clef non plus). Et ainsi de suite. Tu places ton agent immobilier. j'ai fait un dialogue très simple à toi d'en modifier les branches en respectant la structure. Les astérisques renvoient à des scripts. Désolé, mais vous ne pouvez avoir qu'une seule maison.* Bonjour, voulez-vous acheter une maison ? |_______La maison 1. |_______________Désolé, elle est déja vendue. ** |_______________Cela fera 20 PO. |______________________C'est trop cher ! (fin de dialogue) |______________________OK, merci. (fin de dialogue) *** |_______La maison 2. |_______________Désolé, elle est déja vendue. **** |_______________Cela fera 20 PO. |______________________C'est trop cher ! (fin de dialogue) |______________________OK, merci. (fin de dialogue) ***** |_______Non, merci. (fin du dialogue) * Dans les conditions : NWScript :
int StartingConditional() { // Inspecter variables locales if(!(GetLocalInt(GetPCSpeaker(), "proprio") == 1)) return FALSE; return TRUE; } ** dans les conditions : NWScript :
int StartingConditional() { string sMaison= "maison_01"; object oMaison=GetObjectByTag(sMaison); // Inspecter variables locales if(!(GetLocalString(oMaison, "vendu") != "vendre")) return FALSE; return TRUE; } *** dans les conditions : NWScript :
int StartingConditional() { object oPC = GetPCSpeaker(); if (GetGold(oPC) < 20) return FALSE; return TRUE; } Et dans les conséquences : NWScript :
void main() { object oPC=GetPCSpeaker(); string sMaison= "maison_01"; object oMaison=GetObjectByTag(sMaison); location lLocation= GetLocation(oPC); string sName=GetName(oPC); object oClef=CreateObject(OBJECT_TYPE_ITEM,"clef_perso",lLocation,FALSE,"clef_" + sMaison); AssignCommand(oPC,ActionPickUpItem(oClef)); SetLocalString(oMaison,"vendu",sName); SetLocalInt(oPC,"proprio",1); } **** Dans les conditions : NWScript :
int StartingConditional() { string sMaison= "maison_02"; object oMaison=GetObjectByTag(sMaison); // Inspecter variables locales if(!(GetLocalString(oMaison, "vendu") != "vendre")) return FALSE; return TRUE; } ***** Dans les conditions : NWScript :
int StartingConditional() { object oPC = GetPCSpeaker(); if (GetGold(oPC) < 20) return FALSE; return TRUE; } Et dans les conséquences : NWScript :
void main() { object oPC=GetPCSpeaker(); string sMaison= "maison_02"; object oMaison=GetObjectByTag(sMaison); location lLocation= GetLocation(oPC); string sName=GetName(oPC); object oClef=CreateObject(OBJECT_TYPE_ITEM,"clef_perso",lLocation,FALSE,"clef_" + sMaison); SetLocalString(oMaison,"vendu",sName); SetLocalInt(oPC,"proprio",1); AssignCommand(oPC,ActionPickUpItem(oClef)); } Voilà pour l'instant. Si tu veux faire plus de maison, tu n'as qu'à copier les scripts et changer les numéros, c'est tout simple. |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Bon, n'ayant pas de tes nouvelles, j'ai quand même essayer de faire un magasin de meubles.
Je suis assez content du résultat ! Je ne sais pas si cela correspond à ce que tu voulais : j'ai fait une broquante, je trouve que cela fait plus "médiéval", on peut ainsi voir les meubles que l'on achète, on parle à un marchand qui nous remet contre de l'argent un bon de livraison. Ce reçu est un fait un objet à pouvoir unique. Quand le PJ est dans sa maison et qu'il utilise le bon de livraison, l'objet apparait (on peut même faire apparaitre un "livreur") à l'emplacement du joueur. Si le joueur utilise le placeable, un dialogue se lance et plusieurs options sont proposées au joueur : - Tourner l'objet dans tous les sens pour mieux le positionner. - Retransformer l'objet en reçu pour le poser ailleurs si cela ne va pas où le vendre, - Poser définitivement l'objet.( Permet de pouvoir l'utiliser "normalement" ex: s'asseoir sur une chaise) Avant de poster ces scripts, peux-tu me dire si cela te convient ? Ou si cela intéresse quelqu'un d'autre ? Si tu as les extensions, je peux envoyer une démo par Mail. Voilà, à bientôt ! Dernière édition par Enki le 08/01/2006 20:01:12; édité 1 fois
|
Revenir en haut | |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
les script sont ... Parfait!!
et , jai les extension ^^ je vai de ce" pas essayer les script pour la pancarte , je doi mettre une valeur a la variable? edit: pour le vendeur il me dit systematiquement que la maison 1 est deja vendu . |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Salut Marneus,
Je suis content de voir que mes scripts te plaisent. Alors, bien sûr pour chaque pancarte, tu dois mettre une valeur à la variable. Sinon, le vendeur te diras toujours qu'elles sont vendus. Dans l'onglet variable de l'objet pancarte, tu mets : vendu___________string___________vendre et tu fais attention à la casse, et tu n'oublies pas de cliquer sur > ajouter (moi cela m'arrive tous le temps !). Puisque tu as les extensions, envoie-moi ton mail par MP, et je t'envoie de suite une démo. A plus. |
Revenir en haut | |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
Merci , sa marche a merveille
jcompte publier une version demo , <la ville et s'est alentour seulement> pour montrer le resultat < la version finale , me servira pour le online ^^> |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Salut Marneus,
Que penses-tu de la démo que je t'ai envoyée ? Si tu as la possibilité de placer une démo téléchargeable et si tu trouves que mes scripts de la "brocante" sont intéressants, essaie de les inclures dans ta démo, ou bien pourquoi pas mets carrément la mienne si tu veux. Autre chose, si tu souhaites me remercier pour les scripts, pourquoi ne pas appeler ton agent immobilier Enki ? A bientôt ! |
Revenir en haut | |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
arf ,
<perso: bonjour enki enki: bonjour , vouler vous acheter quelque chose perso: jaimerai acheter des script ... merci> lol jai tester le module: il est vachement bien . jai plus qua ameliorer quelque truc ^^ genre: donner une utiliter au meuble (je vai faire une copie du module , au cas ou jmodifie un mauvai truc ^^) |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Bon, super !
Si tu as des questions ou d'autres idées intéressantes, n'hésites pas à m'en faire part. |
Revenir en haut | |
KaG Légende vivante Messages: 445 Localisation: Rodez (12) |
Je trouve l'idée excellente dans un module persistante..
J'ai pas touché à un MMORPG depuis Ultima Online, mais on y avait la possibilité d'y acheter ses maisons. L'interet c'est qu'on pouvait aller y stocker son matériel, etc. _________________ Mon antre (et son module NWN) :ici! |
Revenir en haut | |
Baldurien L'homme qui chutait sur le macadam Messages: 14066 Localisation: Quadran Alpha |
Je déplace vers le forum Scripts, plus adapté je pense.
_________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Juste une question ...
Si le pj a achete une maison, et que le serveur plante ou reeboot, le pj aura toujours sa maison ensuite ou pas ? Merci a l'avance. Mork |
Revenir en haut | |
marneus Chevalier Messages: 89 Localisation: devant mon pc ... surment |
si le perso est sauvegarder sur le serveur , normalement , il aura toujour la clé
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Oki, merci.
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Baldurien a écrit : Je déplace vers le forum Scripts, plus adapté je pense. euh, là c'est dans le forum module ^^
EDIT : oups, désolé j'ai un temps de retard:D _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
salut !
très bien ce systeme serait-ce possible d'acceder aux scripts pour les meubles ? ^^ merci davance +++ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Oui, ce serais sympas
En plus il me servira pour un autre sricpt de tente ... J'ai deja essaye, je pense qu'il faut utiliser la fonction "CreateObject" mais le probleme c'est que j'arrive pas a faire le script .... _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Bonjour, on dirait qu'il y a des intéressés, voici donc les autres scripts :
Sur le OnActivateItem du module : 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. Ensuite, vous créez dans la palette un placeable utilisable, par exemple une chaise, avec le tag ET le ResRef suivant : "chaise_01" Vous placez dans le OnUsed de la chaise ce script : NWScript :
void main() { object oPC=GetLastUsedBy(); string sSix=GetStringLeft( GetTag(OBJECT_SELF), 6); if (GetLocalInt(OBJECT_SELF,"poser")!=1) { // AssignCommand(oPC,ActionMoveAw ayFromObject(OBJECT_SELF,TRUE, 2.0f)); DelayCommand(1.5,ActionStartConversation(oPC,"item")); } else ExecuteScript(sSix,OBJECT_SELF); } Vous créez un dialogue du nom de "item" : [Propriétaire] Que voulez-vous faire ? |___________________________Tourner l'objet vers l'est. 1 |___________________________Tourner l'objet vers l'ouest. 2 |___________________________Tourner l'objet vers le nord. 3 |___________________________Tourner l'objet vers le sud. 4 |___________________________Reprendre l'objet (Transformer l'objet en recu). 5 |___________________________Poser définitivement l'objet. 6 |___________________________Rien. Dans le action conséquente : 1 : NWScript :
#include "x0_i0_position" location GetAheadLocation02(object oTarget) { float fDir = GetFacing(oTarget); return GenerateNewLocation(oTarget,2.5,fDir,fDir); } void main() { location lLoc=GetAheadLocation02(OBJECT_SELF ); // AssignCommand(GetPCSpeaker(),A ctionMoveToLocation(lLoc,TRUE) ); AssignCommand(GetPCSpeaker(),JumpToLocation(lLoc)); DelayCommand(1.0,SetFacing(0.0f)); } 2 : NWScript :
#include "x0_i0_position" location GetAheadLocation02(object oTarget) { float fDir = GetFacing(oTarget); return GenerateNewLocation(oTarget,2.5,fDir,fDir); } void main() { location lLoc=GetAheadLocation02(OBJECT_SELF ); // AssignCommand(GetPCSpeaker(),A ctionMoveToLocation(lLoc,TRUE) ); AssignCommand(GetPCSpeaker(),JumpToLocation(lLoc)); // AssignCommand(oPC,ActionMoveAw ayFromObject(OBJECT_SELF,TRUE, 2.0f)); DelayCommand(1.0,SetFacing(180.0f)); } 3 : NWScript :
#include "x0_i0_position" location GetAheadLocation02(object oTarget) { float fDir = GetFacing(oTarget); return GenerateNewLocation(oTarget,2.5,fDir,fDir); } void main() { location lLoc=GetAheadLocation02(OBJECT_SELF ); // AssignCommand(GetPCSpeaker(),A ctionMoveToLocation(lLoc,TRUE) ); AssignCommand(GetPCSpeaker(),JumpToLocation(lLoc)); // AssignCommand(oPC,ActionMoveAw ayFromObject(OBJECT_SELF,TRUE, 2.0f)); DelayCommand(1.0,SetFacing(90.0f)); } 4 : NWScript :
#include "x0_i0_position" location GetAheadLocation02(object oTarget) { float fDir = GetFacing(oTarget); return GenerateNewLocation(oTarget,2.5,fDir,fDir); } void main() { location lLoc=GetAheadLocation02(OBJECT_SELF ); // AssignCommand(GetPCSpeaker(),A ctionMoveToLocation(lLoc,TRUE) ); // AssignCommand(oPC,ActionMoveAw ayFromObject(OBJECT_SELF,TRUE, 2.0f)); AssignCommand(GetPCSpeaker(),JumpToLocation(lLoc)); DelayCommand(1.0, SetFacing(270.0f)); } 5 : NWScript :
void main() { object oPC=GetPCSpeaker(); location lLocation= GetLocation(oPC); string sItem=GetTag(OBJECT_SELF); object oRecu=CreateObject(OBJECT_TYPE_ITEM,"recu",lLocation,FALSE,"recu_" + sItem); DestroyObject(OBJECT_SELF,1.0); } 6 : 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. Vous créez un script appelé "chaise". 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. Vous créez dans la palette un item du tag et du ResRef "recu" avec un pouvoir unique, sur soi, illimité. Ensuite, vous créez un PNJ vendeur de meuble, vous lui mettez un dialogue du genre : _Hé bonjour <mister/missus>, regardez nos meubles comme ils sont beaux, c'est brocante annuelle de Neverwinter ! Regardez ! |__________Bonjour je voudrai la chaise ! |_____________________Tenez, prenez ce reçu, et utilisez-le à l'endroit où vous voulez que l'on vous livre le meuble, c'est aussi simple que ça ! 7 |___________________________Merci ! dans les conséquences de 7 : NWScript :
void main() { object oPC=GetPCSpeaker(); string sItem = "chaise_01"; location lLocation= GetLocation(oPC); string sName=GetName(oPC); object oRecu=CreateObject(OBJECT_TYPE_ITEM,"recu",lLocation,FALSE,"recu_" + sItem); AssignCommand(oPC,ActionPickUpItem(oRecu)); } Enfin, vous créez un script du nom de "recu_chaise_01" NWScript :
void main() { object oPC=GetItemActivator(); object oItem=GetItemActivated(); string sItem = "chaise_01"; location lLocation= GetLocation(oPC); if (GetIsAreaInterior(GetArea(OBJECT_SELF))!=TRUE) { SendMessageToPC(oPC,"Vous ne pouvez pas poser cet objet dehors !"); } else { object oRecu=CreateObject(OBJECT_TYPE_PLACEABLE,sItem,lLocation,FALSE,""); DestroyObject(oItem); } } Et voilà, votre module Ikea est prêt à l'emploi ! A vous de faire les autres meubles selon votre imagination, en respectant les principes ci-dessus ! |
Revenir en haut | |
Yukimurasan Acolyte Messages: 30 |
Y aurait-il un moyen de faire en sorte que l'objet ne soit plus utilisable lorsque l'on clique sur " poser definitivement " ?
Si oui, comment ? |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
tu veux dire qu'il soit statique ?
non, j'ai cherché mais je n'ai rien trouvé en ce sens. |
Revenir en haut | |
-Nog- Chevalier Messages: 81 |
j'ai un probleme avec les maisons : je l'achète, il y a mon nom sur la pancarte mais, la porte est verrouillé, pas de clef , rien
|
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Est-ce que tu parles de la démo que je t'ai envoyer, ou d'un module que tu as créé ?
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
en fait, si tu as suivit les indications, le probleme vient peut etre du tag de la porte, en effet il faut mettre la même chose pour la création de la clef que pour la porte : "maison_perso_"
enfin, moi j'avais eu un probleme avec ça. _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
ah, au fait enki, je voudrais pas t'embeter, mais est ce qu'il serait possible de faire une fonction de dialogue pour revendre la maison, et donc la rendre a nouveau vendable ^^ ?
merci, et désolé d'avance de t'embeter ++ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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