Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Deux Questions

Par Alustriel_LZ le 11/9/2002 à 16:41:43 (#2139291)

Question 1 :
Je suis en train de tester mon module et les monstres ne me suivent pas d'area en area lorsqu'ils me pourchassent.
Est ce que pour les faire me suivre d'area en area ...
... j'ai besoin d'un script ?
... je dois activer quelque chose dans l'éditeur Aurora ?


Question 2 :
Il y a quelques semaines, je suis tombé sur un script qui a 33% de chances de générer un monstre pendant le repos des PJs.
Le problème c'est que je n'arrive plus à le retrouver, je ne parviens plus à me souvenir si je l'ai vu sur ce forum, sur NWN Vault ou ailleurs.... any ideas ?
Pas de traces dans les scripts persistants en tout cas.
Ou bien si qq1 connait un script ayant à quelque chose près la même fonction, je suis preneur.

D'avance merci.

Par Alustriel_LZ le 11/9/2002 à 16:53:52 (#2139383)

Pour ce qui est de la question 2, je viens juste de retrouver le script en question sur le sîte de Lyoness NWN :

http://nwn.lyoness.com/display.php?id=51

Le problème est que les chances de faire une rencontre aléatoire est valable dans toutes les zones du module. Ce que je recherche est un script générant des rencontre aléatoires affectant une zone.
Quelqu'un a déjà vu cela quelque part ou a une idée sur la façon de modifier ce script ?

D'avance merci à ceux qui vont griller quelques neurones en essayant de m'aider.

Par Kemay le 11/9/2002 à 18:01:32 (#2139928)

Provient du message de Alustriel_LZ
Le problème est que les chances de faire une rencontre aléatoire est valable dans toutes les zones du module. Ce que je recherche est un script générant des rencontre aléatoires affectant une zone.
Vers le début du script, tu remplaces :
if (nRestTurn == 1)
par:
if( nRestTurn == 1 && GetTag(GetArea(oPlayer)) == "Tag_de_ton_area" )
En remplaçant évidemment "Tag_de_ton_area" par le tag de ton area.

Par Miragul le 11/9/2002 à 18:06:55 (#2139967)

Et pour integrer ce script en mode HCR ? Car si je change le PlayOnRest du module, je perd les règles HCR pour le repos...Une solution ?

Par Taern le 11/9/2002 à 18:28:09 (#2140125)

Ben suffit de copier coller le script à rajouter dans le OnPlayRest deja existant, en théorie ;) Disons que cette solution fonctionneras probablement mais qu'elle est largement optimisable. C'est d'ailleurs une des raisons pour lesquelles je pense qu'il vaut mieux éviter d'utiliser les HCR quand on n'est pas vraiment à l'aise avec les scripts ...

En passant, le add-on pour les HCR gérant le système de monstres errant est d'après moi pas mal non plus, puisque il permet pour chaque zone de définir les chances d'apparition et la force des monstres :) maintenant l'idéal serais un système qui permette en plus de choisir les monstres selon le type d'environnement, mais j'ai pas encore trouvé :rolleyes:

Par Alustriel_LZ le 11/9/2002 à 19:00:12 (#2140381)

Merci bcp Kemay

Par Alustriel_LZ le 12/9/2002 à 12:03:32 (#2143941)

Toujours à propos de ce même script :
http://nwn.lyoness.com/display.php?id=51

Pour ce que je veux en faire, je n'ai pas besoin d'avoir à determiner la CR du monstre par rapport au joueur qui se repose, par contre j'ai besoin que le scrip tire au hasard un monstre parmi une liste déterminée propre à la zone.
J'ai modifié le script ainsi(les annotations en français précèdent les lignes que j'ai rajouté). Dans le script que j'ai la, lorsque le joueur se repose dans la zone taggée "DeepCanyon", s'il fait une recontre pendant qu'il se repose ce sera un orque, un loup ou un gobelours(bugbear).

void main()
{
// Sometimes spawn monster during rest
// An object to hold the last player who rested
object oPlayer = GetLastPCRested();
// Check to see whether resting has started or is over
int nRestTurn = GetLocalInt(oPlayer, "nRestTurns");
SetLocalInt(oPlayer, "nRestTurns", nRestTurn + 1);
nRestTurn = GetLocalInt(oPlayer, "nRestTurns");
// area dans laquelle peut se produire la rencontre
if (nRestTurn == 1 && GetTag(GetArea(oPlayer)) == "DeepCanyon" ) {
// Determine whether rest will be peaceful or not
int nRestType = d6();
int nEnemyType = d3();
object oEnemy;
// A string to hold the creature's tag
string sCreature;
// Set a location for where the PC is
location lHere = GetLocation(oPlayer);
// Bad luck, a monster is coming
if (nRestType == 3) {
// Jet de 1D3 pour connaitre le type de monstre qui spawne
int nRoll = d3();
if(nRoll == 1) sCreature = "NW_ORCA";
else if(nRoll == 2) sCreature = "NW_WOLF";
else if(nRoll == 3) sCreature = "NW_BUGBEARA";
}

Mon problème est que je n'arrive pas à compiler ce script : il y aurait une erreur à la fin du script : " UNKNOWN STATE IN COMPILER".

Est ce que quelqu'un peut me corriger. Merci.

Par Delis le 12/9/2002 à 14:17:25 (#2144613)

J'ai l'impression qu'il te manque des accolades, essaye cela :


void main()
{
// Sometimes spawn monster during rest
// An object to hold the last player who rested
object oPlayer = GetLastPCRested();
// Check to see whether resting has started or is over
int nRestTurn = GetLocalInt(oPlayer, "nRestTurns");
SetLocalInt(oPlayer, "nRestTurns", nRestTurn + 1);
nRestTurn = GetLocalInt(oPlayer, "nRestTurns");

// area dans laquelle peut se produire la rencontre
if (nRestTurn == 1 && GetTag(GetArea(oPlayer)) == "DeepCanyon" )
{
// Determine whether rest will be peaceful or not
int nRestType = d6();
int nEnemyType = d3();
object oEnemy;
// A string to hold the creature's tag
string sCreature;
// Set a location for where the PC is
location lHere = GetLocation(oPlayer);
// Bad luck, a monster is coming
if (nRestType == 3)
{
// Jet de 1D3 pour connaitre le type de monstre qui spawne
int nRoll = d3();
if (nRoll == 1) sCreature = "NW_ORCA";
else if(nRoll == 2) sCreature = "NW_WOLF";
else if(nRoll == 3) sCreature = "NW_BUGBEARA";
}
}
}

Par tonton le grognon le 12/9/2002 à 16:21:26 (#2145224)

pour les HCRS, il y a un module speciale pour ca :

HC Wandering Monsters - This optional add-on features the random encounter tables from the DMG with the critters necessary to flush them out. See the manual for its correct use. (Add-On by Whyteshadow)


et il faut valider l'option
WANDERSYSTEM = 1
(Set this to 0 to turn off checks for wandering monsters entirely. TO use wandering monsters, you must have this set to 1, AND you must put a hc_areanm_hb and/or hc_areanm_enter into the area's OnHeartbeat and OnEnter script areas. See those files for more variables to adjust to use the Wandering (acutally random) encounter system.)


dans le script hc_default

JOL Archives 1.0.1
@ JOL / JeuxOnLine