Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [question] Definition aleatoire d'un objet.
[question] Definition aleatoire d'un objet.
Par PesteLaMenace le 24/1/2003 à 11:13:52 (#3090104)
Ma question concerne la definition aléatoire d'une phrase (string) d'un objet (object) ou d'un effet de sort par exemple.
Pour animer une salle de cours de magie, j'ai crée un Maitre et quatres elèves.
Le maitre dit une phrase au hazard parmis une liste (ca j'ai reussi en m'inspirant de ce qui a deja été fait), ca fait reagir un des quatres elèves au hazard (c'est bon aussi) qui incante un sortilège sur une cible.
Mon problème est que je n'arrive pas a définir le sortilège aléatoirement comme je l'ai fait pour les phrases de cette manière.
string Action() {
string txt;
switch (d6()) {
case 1: txt = "Allez toi montre moi ce que tu sais faire!"; break;
case 2: txt = "Je veux sentir le pouvoir influer en toi novice..."; break;
case 3: txt = "Parbleue concentres toi!"; break;
case 4: txt = "Puisses Mystra guider ta main novice!!"; break;
case 5: txt = "Il faut etre plus incisif sur la derniere syllabe!"; break;
case 6: txt = "Le geste n'est pas bon recommences!"; break;
};
return txt;
}
Le tout dans un #include.
Pour faire incanter les eleves, j'utilise la commande ActionCastFakeSpellAtObject, le tout etant de pouvoir definir le sortilège a lancer de manière aléatoire de la meme manière que les phrases.
Autre chose quand que j'y suis. Existe t il une option ou une bidouille pour limiter la fonction examiner ou du moins l'affichage des caractéristiques spéciales de l'objet examiné (comme une immunité particulière d'un personnage ou d'une creature). Je pense que non mais sait on jamais .
Encore :merci: :merci:
Peste.
Par eMRaistlin le 24/1/2003 à 11:40:49 (#3090259)
Pour le sort random, tu peut faire simple, et faire ca sur tout le monde :
int nRandSpell = Random (377)+1;
AssignCommand(oNPC,ActionCastFakeSpellAtObject(nRandSpell,oCIBLE));
Bien entendu, cette technique, si elle est simple, a un defaut : un sorcier qui lance Barriere de lame, ca surprend...
L'autre solution, c'est de faire une table temporaire qui regroupe tout les sorts de mage/sorcier, et de faire un random sur cette table....
mais bon... c'est plus long ^^;
(PS : tu trouvera tout les sorts dans le nwnscript.nss)
Par PesteLaMenace le 25/1/2003 à 9:01:55 (#3096141)
Je vais essayer de trouver la facon de definir un object aléatoirement a partir d'un d(x), je ferais savoir si il y a des resultats des fois que ca puisse servir a quelqu'un.
Merci encore pour ta reponse.
:merci:
Peste.
Par Azrael07 le 25/1/2003 à 9:08:21 (#3096155)
int nRnd = Random(6);
switch(nRnd)
{
case 0 :
ActionCastSpellAtObject(UN_SORT, oMaster);
break;
case 1 :
ActionCastSpellAtObject(UN_AUTRE_SORT, oMaster);
break;
//ect jusqu'a case 5
default :
}
Par Skanzo Sylan le 25/1/2003 à 16:48:38 (#3098735)
Pour ce qui est des infos affichées dans la fenètre examiner, ya p'tet un moyen. Dans data/aurora_gui.bif se trouvent les fichiers qui sont en grande partie responsables de l'aspect de l'interface.
Peut-être que... :)
Par PesteLaMenace le 26/1/2003 à 11:38:45 (#3102394)
JOL Archives 1.0.1
@ JOL / JeuxOnLine