JeuxOnLineForumsPlusConnectés : 647 (sites) | 1219 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Monstres lachant des items précis mais pas systèmatiquement... RSS
   
Répondre
Partager Outils Rechercher
Avatar de Mel Ethybem
Mel Ethybem
Roi
 
Avatar de Mel Ethybem
 

Monstres lachant des items précis mais pas systèmatiquement...

Bonjour à tous !

J'ai créé un item bien précis (avecc son tag et tout et tout)... Je voudrais maintenant que cet item soit lâché par des monstres (appartenant à une rencontre) mais disons pas systèmatiquement. Je vais mieux m'expliquer :

C'est en fait pour un module persistant. Le but étant que le PJ aiille chercher tel ou tel ingrédient. Et je voudrais donc que cette "quête" soit renouvelée. Aussi, cet item ne dois pas forcément être unique. Il peut y en avoir 2 ou 3 qui tombent à plusieurs endroits différents. Vous voyez ce que je veux dire ? Merci !
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
Met l'item dans l'inventaire du monstre et coche la case "lachable".
Il me semble qu'il le dropera de temps en temps (et pas a chaque fois).

Sinon il te reste la solution de scripter ca, mais c'est pas évident.
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Ah bon? Je crois qu'il va le lâcher à chaque fois, non?

Une méthode pour le script: dans le Onspawn du monstre tu mets quelque chose comme:
Code:
if(Random(10) == 0)
{
     CreateItemOnObject("ResRef" ,OBJECT_SELF, ....)
}
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
Il me semblais avoir testé le "lachable" avec un objet "pièce d'or", et que le monstre ne dropais pas a chaque fois. Apres je peu me tromper, ca remonte a quelques mois quand même

Pour le drop, la méthode est probablement la plus simple mais elle a l'inconvénient qu'il te faudra modifier tous les scripts de drop de chaque monstre.

Une autre méthode serai d'utiliser une fonction qui retourne pour chaque monstre (avec un switch sur un identifiant quelconque associé aux monstres) les objets qu'il peut dropper et les pourcentages de chance de drop, puis de créer un script de mort commun a tous les monstres et qui exploite cette fonction.

J'ai ca en magasin, elle a été testée, mais je n'ai toujours pas eu le temps de la commentée pour la soumettre aux critiques (constructives) du forum.
Lien direct vers le message - Vieux
Avatar de Ange Musicien
JOL Ange Musicien
Alpha & Oméga
 
Avatar de Ange Musicien
 
Bé c'est super simple, non ? Ou alors je me plante complètement...
Enfin voilà mon idée : Un gnoll a une hallebarde de Tag "halgnol" et de ResRef "halgnol". Tu décoches la case lâchable dans l'inventaire (ou tu ne mets pas l'objet hallebarde si il ne l'utilise pas).
Puis tu décoches les deux barres devant OnDeath dans ton OnSpawn, tu crées un UserDefined comme ceci :
Code PHP:
//"Lacher un objet a la mort : 50% de chances"
//By Ange Musicien
int nAppelePar GetUserDefinedEventNumber();
void main()
{
switch(
nAppelePar)
 {
 case 
1007 :  // Appele par OnDeath
 
int nHasard d100(1); // chances pour qu'il lache l'objet
 
if(nHasard>>50// conditions de lachage de l'objet
  
{
  
location lSelf GetLocation(OBJECT_SELF);
  
CreateObject(OBJECT_TYPE_ITEM,"halgnol",lSelf,FALSE);
  }
 else
  {
  }
 break;
 }

Ca c'est la première possibilité. Si ça ne marche pas (peu probable), il te reste toujours celle-là :

Code PHP:
//"Lacher un objet a la mort : 50% de chances"
//By Ange Musicien
int nAppelePar GetUserDefinedEventNumber();
void main()
{
switch(
nAppelePar)
 {
 case 
1007 :  // Appele par OnDeath
 
int nHasard d100(1); // chances pour qu'il lache l'objet
 
if(nHasard>>50// conditions de lachage de l'objet
  
{
  
object oItem GetNearestObjectByTag("halgnol");
  
ActionPutDownItem(oItem);
  
// le probleme est la : ActionPutDownItem va probablement demander au gnoll de la poser
  
}
 else
  {
  }
 break;
 }

Mais ça risque de ne pas faire très vrai. Mais c'est vraiment la bouée de secours, parce qu'en théorie le premier marche très bien. Voili voilou... Tu n'as plus qu'à remplacer les 50% et le ResRef par tes conditions.

EDIT// bon OK, je sais que je suis lent, mais là je n'avais pas lu ta réponse. Tnat pis, au moins elle n'aura pas à taper son script Bwahaha... A chaque fois que j'veux aider, c'est pareil.
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Evite de mettre ">>" là où tu veux dire ">", vu que les deux existent mais que ">>" est un opérateur binaire....
Par ailleurs inutile de mettre "else" si tu n'as rien à mettre derrière, il n'est pas nécessaire, le compilateur s'accommodera très bien d'un if sans else !!
Lien direct vers le message - Vieux
Avatar de gaeriel/nekresh
gaeriel/nekresh
Empereur
 
Avatar de gaeriel/nekresh
 
Pourquoi attendre le OnDeath pour créer l'objet ?
Il suffirait de faire un OnSpawn spécifique et de mettre l'objet dans l'inventaire avec des conditions (bien sûr, s'il un objet dans l'inventaire qui est marqué "droppable" n'est pas lâché à chaque fois, je n'ai rien dis).
Sinon, ça serait beaucoup mieux, tu crée l'objet dans l'inventaire et tu ne te soucies plus du reste.
Lien direct vers le message - Vieux
Avatar de Iridian
Iridian
Roi
 
Avatar de Iridian
 
Le mieux c'est de créer les objet au moment du spawn et de les recréer a terre au moment de la mort.
Comme ca le monstre peu utiliser la super arme magique qui tue la mort contre le joueur qui rêve de lui piquer
Lien direct vers le message - Vieux
Avatar de Mel Ethybem
Mel Ethybem
Roi
 
Avatar de Mel Ethybem
 
BON ! Je suis passé par toute les méthodes inimaginables et je n'ai pas trouvé de système. Quelqu'un pourrait m'aider ? Je n'y arrive ps. J'ai aussi essayé les deux scripts mais ça ne marche pas ! Et si je coche la case "lachable" il monstre le lache direct --> disons, trop souvent ! HEEELP !
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Euh ça ne marche pas?

Code:
if(Random(10) == 0)
{
     CreateItemOnObject("ResRef" ,OBJECT_SELF, ....)
}
Sinon Iridian a raison, si tu veux un système qui marche pour tous les monstres et avec différents objets il faut que tu crée une table, dans un include par exemple, où tu fais correspondre la ResRef d'objet et le pourcentage de chance au tag du monstre. L'idéal étant même un codage sur le tag plutôt qu'une table de correspondance (quoique étant donné ce que l'on a appris sur les manipulations de chaînes ). Mais si tu veux ça pour un seul objet, ce que j'avais écris est suffisant.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Monstres lachant des items précis mais pas systèmatiquement...
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 23h36.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite