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 20:52:44
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 |
sinquem Ecuyer Messages: 68 |
Bonjour,
Je suis étonné de ne pas avoir trouvé cela par une recherche menfin ... scusez si ça déjà été posté mais voila, je recherche un moyen de réactiver les pieges d'une zone soit en sortant de la zone soit au bout d'un certains temps (genre 24h en temps de jeu) !! 2nde question : Je souahiterais afin de pieger les joueurs , pouvoir faire respawn un monstre à une dixaine d'endroit différent aléatoirement afin qu'il soient surpris et ne l'atttende pas à coup sur à tel ou tel endroit. merci d'avance à tous ... |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
Citation : 2nde question :
A propos de ce point auriez vous au moins un point de départ, car je suis un peu perdu, et ne sais par quel bout prendre le pb, connaissant trés mal le mode de fonctionnement des rencontres, j'aimerais bien un p'ti mode d'emploi.
Je souahiterais afin de pieger les joueurs , pouvoir faire respawn un monstre à une dixaine d'endroit différent aléatoirement afin qu'il soient surpris et ne l'atttende pas à coup sur à tel ou tel endroit. Ce que j'aimerai : Savoir ce qu'il faut faire via Aurora et ce qu'il faut code en script. |
Revenir en haut | |
Léa Novice Messages: 15 |
Salut Sinquem,
Pour ta 2e question; je pense qu'il suffit de créer une rencontre avec ta créature et de placer plusieurs points de spawn (clic droit sur zone rencontre et ajouter un point de spawn)ce qui aura pour effet de faire apparaître ta créature au hasard sur un des points de spawn. A mon avis celà n'a aucun rapport avec les scripts. Voilà, bonne journée à toi |
Revenir en haut | |
Blackblood Chevalier Messages: 80 Localisation: France |
Salut,
Je vais essayer de te répondre : sinquem a écrit : je recherche un moyen de réactiver les pieges d'une zone soit en sortant de la zone soit au bout d'un certains temps (genre 24h en temps de jeu) !!
Tu as dans les propriétés du piège (de mémoir ils fonctionnent un peu comme les rencontres) une propriété qui permet de les activer soit une fois soit en continu et dans ce cas de définir le temps entre chaque activation. Mais comme je ne travail pas sur les pièges je ne suis pas certain de ce que j'avance... à confirmer.
Citation : 2nde question :
Pour ce cas, je t'ais fait un petit script. Tu devras créer 10 point de rencontres dont le tag sera wp_creature1 à wp_creature10
Je souahiterais afin de pieger les joueurs , pouvoir faire respawn un monstre à une dixaine d'endroit différent aléatoirement afin qu'il soient surpris et ne l'atttende pas à coup sur à tel ou tel endroit. Créer ensuite une point de rencontre vierge et place ce script dans le OnEnter de ce point de rencontre : NWScript :
//Put this OnEnter void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; object oTarget; object oSpawn; location lTarget; switch( Random(10) + 1 ) { case 1 : { oTarget = GetWaypointByTag("wp_creature1"); break; } case 2 : { oTarget = GetWaypointByTag("wp_creature2"); break; } case 3 : { oTarget = GetWaypointByTag("wp_creature3"); break; } case 4 : { oTarget = GetWaypointByTag("wp_creature4"); break; } case 5 : { oTarget = GetWaypointByTag("wp_creature5"); break; } case 6 : { oTarget = GetWaypointByTag("wp_creature6"); break; } case 7 : { oTarget = GetWaypointByTag("wp_creature7"); break; } case 8 : { oTarget = GetWaypointByTag("wp_creature8"); break; } case 9 : { oTarget = GetWaypointByTag("wp_creature9"); break; } case 10 : { oTarget = GetWaypointByTag("wp_creature10"); break; } } lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "resref_creature", lTarget); oTarget = oSpawn; SetIsTemporaryEnemy(oPC, oTarget); AssignCommand(oTarget, ActionAttack(oPC)); AssignCommand(oTarget, DetermineCombatRound(oPC)); SetLocalInt(oPC, "iCreature", 1); } attention, le script est activé à chaque fois que quelqu'un entre dans le point de rencontre. Donc le mieux est d'avoir une petite zone réservée à ce monstre, ainsi tu place le script sur le OnEnter de la zone et donc tu limite un peu plus l'activation u script. J'espère avoir été clair bon courage |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
Merci à toi aussi Léa, je ne connaissais pas cette fonction d'aurora.
Je l'ai testé mais les créature arrivent toujours du même point, en faite je me demande si elle ne spawn pas le plus loin possible du pj en fonction des point disponibles. Blackblood, ouarf merci c'est géant !! j'vais testé ça ... le spawn top !! Pour les pieges j'ai déjà testé et cela ne change rien en ce qui concerne le desarmement du piege, un piege desarmé est desarmé à vie Cette fonctionnalité est ok pour ce qui est de déclanchement pour que si 10 perso passe dessus alors il se declanchera 10 fois. |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
Un p'ti pb technique, j'utilise la méthode de Léa pour créer les points de rencontre ?
car si oui je ne vois pas où mettre les noms !! Sinon cela veut-il dire qu'il faille copier/coller 10 fois la même rencontre ? mais avec quelle parametre, car faudrait pas que les 10 rencontre se déclanche en même temps |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
ça sert à quoi ça dans ton 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. trace de l'existant mais non utile pour mon cas non ? |
Revenir en haut | |
grenwald Novice Messages: 11 |
sinquem a écrit : ça sert à quoi ça dans ton script ?
A première vu, quand je lis le script, tu n'as effectivement pas besoin de cette ligne (elle peut au besoin servir pour vérifier si le PJ a déjà déclenché la rencontre ou non)
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. trace de l'existant mais non utile pour mon cas non ? Pour ton autre question sur les rencontres, je pense que tu t'es un peu embrouillé.... Blackblood te proposait une solution alternative a celle de Léa; a toi de voir celle qui te conviens le mieux sinquem a écrit : Merci à toi aussi Léa, je ne connaissais pas cette fonction d'aurora.
... bizarre, il me semblait que le jeu prenait un de ces points au hasard, je regarderai ca un de ces jours......
Je l'ai testé mais les créature arrivent toujours du même point, en faite je me demande si elle ne spawn pas le plus loin possible du pj en fonction des point disponibles. Par contre, je peut te proposer une petite simplification du script de Blackblood : NWScript :
]//Put this OnEnter void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; object oTarget; object oSpawn; location lTarget; oTarget = GetWaypointByTag ("wp_creature"+IntToString(Random(10)+1)); lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "resref_creature", lTarget); SetIsTemporaryEnemy(oPC, oSpawn); AssignCommand(oSpawn, ActionAttack(oPC)); AssignCommand(oSpawn, DetermineCombatRound(oPC)); } bon courage.... _________________ Un troll???? où ça?........ oups, pardon, je ne l'avais pas vu |
Revenir en haut | |
Blackblood Chevalier Messages: 80 Localisation: France |
salut, ahhhhhh que j'aime ce genre de réponse où j'apprend plein de choses. Et oui, quand on script, on a sa façon de voir les choses et ne connaissant pas toutes les ficelles, je ne me facilite pas la vie.
Avec ton astuce Grenwald, on s'affranchie de 10 lignes de script Pour ce qui est de la ligne inutile, j'utilise au départ un générateur de script alors il doit ajouter automatiquement quelque ligne qui ne sont pas nécessaire mais c'est un bon outil pour apprendre. |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
merci pour la simplification !!
c'est plus jolie ainsi Et pour les Waypoint ajouté ... j'ai testé 10 fois de suite les créature spawn au même endroit, suffisait que je sorte par une autre porte pour qu'ils spawn à un autre point !! |
Revenir en haut | |
flmg Novice Messages: 13 |
Pour les pieges qui se reactive apres un desarmocage j'ai pas trouvé non plus. Autant reverouiller c'est pas dure, réenclencher le piège ...
|
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
Sur le script de sortie de zone il serait peut-être faisable de faire une boucle sur tout les pieges (pc comment les trouver ? instruction) et les réinitialiser (pb trouver aussi l'instruction).
je vais regarder dans cette voie, car l'avantage c'est que ça permet de ne pas retoucher à l'ensemble des pieges existants. |
Revenir en haut | |
Blackblood Chevalier Messages: 80 Localisation: France |
Salut,
pour les pièges tu pourrais essayer ceci : créer 3 waypoint sur ta zone piégée. Place ce script sur OnExitArea des propriété de la zone : NWScript :
void main() { object oPC = GetExitingObject(); if (!GetIsPC(oPC)) return; object oTarget; object oSpawn; location lTarget; /// creation du piege 1 oTarget = GetWaypointByTag("wp_piege1"); lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_ITEM, "tag_du_piege1", lTarget); /// creation du piege 2 oTarget = GetWaypointByTag("wp_piege2"); lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_ITEM, "tag_du_piege2", lTarget); /// creation du piege 3 oTarget = GetWaypointByTag("wp_piege3"); lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_ITEM, "tag_du_piege3", lTarget); } Pour les tags de pièges cherche dans les propriétés des pièges standards. Sans garanti de succès car je ne sais pas si on peut "spawner" des pièges. Il y a également les références de pièges comme ceci : TRAP_BASE_TYPE_MINOR_GAS Mais je ne sais pas comment l'utiliser. Bon courage |
Revenir en haut | |
flmg Novice Messages: 13 |
Et pour faire réenclencher des pièges de coffres ?
|
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
Ba merci à tous, mais en faite pour ne pas alourdire le plus simple est de dire qu'un piege desamorcé est désamorcé jusqu'au prochain relaod du module !!
C'est etrange que bioware n'est pas pensé à cela dans les fonctions de base !! Il doit y avoir des astuces (faire poser les pieges par un pnj ) mais c'est lourd !! |
Revenir en haut | |
lendraste Grand Maître Chanteur du Conseil Messages: 1403 Localisation: Quelque part ailleurs |
sinquem a écrit : Il doit y avoir des astuces (faire poser les pieges par un pnj ) mais c'est lourd !! Jusqu'à la version 1.62 cette solution ne marche pas. L'action de poser un piège ne peut être jouée que par un PJ. De ce fait, tout ce qui concerne la pose et la réactivation des pièges est impossible en script. C'est dommage mais c'est ainsi._________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | |
sinquem Ecuyer Messages: 68 |
arf ba merci de l'info ...
concernant l'autre script, il faut effectivement 2 tests supplémentaire sur un mod multi-joueur. 1 pour indiquer que le joeur a déjà ou non déclenché le spwan (le fameux icreature) par contre un autre est doit etre effectué pour ne pas enclancher le spawn si la créature est déjà là. imaginé un groupe de 5 PJ qui se pointe et se retrouve fasse à 5 dragons rouges voila ma solution : Tag de la créature NW_ZORZOR et son resref orca001 NWScript :
void main() { object oPC = GetEnteringObject(); if (GetObjectByTag("NW_ZORZOR")!= OBJECT_INVALID) return; // verifie si pas de spawn en cours if (GetLocalInt(oPC,"iCreature") == 1) return; if (!GetIsPC(oPC)) return; location locLocation= GetLocation(GetObjectByTag("WP_0"+IntToString(Random(4)+1))); CreateObject(OBJECT_TYPE_CREATURE, "orca001", locLocation); SetLocalInt(oPC,"iCreature",1); // pou ne l'avoir qu'une fois } merci à tous ça semble marcher |
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