JeuxOnLineForumsPlusConnectés : 351 (sites) | 669 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Petit problem sur un script RSS
   
Répondre
Partager Outils Rechercher
Tzarman
Roi
 
Ben c'est le script de eMrais plus haut

#include "nw_i0_tool"

int StartingConditional()
{

// Vérifier que le PJ qui parle possède ces objets dans son inventaire
if(GetNumItems(GetPCSpeaker(), "peaudeloup")>9)
{return TRUE;}
if(GetNumItems(GetPCSpeaker(), "peauderat")>9)
{return TRUE;}
if(GetNumItems(GetPCSpeaker(), "peaudours")>9)
{return TRUE;}
else return FALSE;
}
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
g pas trouvé de getNumItems
par contre, si les items s'empilent :

Code PHP:
#include "nw_i0_tool"

int StartingConditional()
{

// Vérifier que le PJ qui parle possède ces objets dans son inventaire
if(GetNumStackedItems(GetItemPossessedBy(GetPCSpeaker(), "peaudeloup"))>9)
{return 
TRUE;}
if(
GetNumStackedItems(GetItemPossessedBy(GetPCSpeaker(), "peauderat"))>9)
{return 
TRUE;}
if(
GetNumStackedItems(GetItemPossessedBy(GetPCSpeaker(), "peaudours"))>9)
{return 
TRUE;}
else return 
FALSE;

ou alors c le mauvais include

si ca s'empile pas, faut les compter dans une boucle nan ?
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
Euh, vi, ca doit etre GetNulmStacked : j'ai suvi le lexicon aveuglement: j'etait au boulot


(et @RAT : je confirme la these des pressions, bien entendu... XD)
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Je me disais aussi eM
Lien direct vers le message - Vieux
Tzarman
Roi
 
Le " GetNumStackedItems " ne marche pas avec les objects tel que les peaux qui ne sont pas empilables......

Quelqu'un aurais une autre idée ?
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Je n'ai pas trop le temps de chercher là , je dois partir prendre mon rer

Mais voilà, un code vite fait, si vous ne trouvez pas la fonction adéquate ou plus rapide. Comme je disais à un collègue de mon boulot ou à Jaha , les scripteurs sont là aussi pour bidouiller

Voilà, le code, il se compile mais je ne sais pas si c'est ce que tu veux


Code PHP:
int StartingConditional()
{
int i,i1,i2;
object oPC=GetPCSpeaker();
object oitem=GetFirstItemInInventory(oPC);
while (
GetIsObjectValid(oitem))
{
  if (
GetTag(oitem)=="peaudeloup")
   
i++;
  if (
GetTag(oitem)=="peauderat")
   
i1++;
  if (
GetTag(oitem)=="peaudours")
   
i2++;

oitem=GetNextItemInInventory(oPC);
}

if (
i>9)
return 
TRUE;
if (
i1>9)
return 
TRUE;
if (
i2>9)
return 
TRUE;

return 
FALSE;


a plus
Lien direct vers le message - Vieux
Tzarman
Roi
 
Et bien merci Rat, ton script marche parfaitement

Mais j'aurais un " dernier " petit service à demander :
Voila maintenant que le Pnj a vérifié les peau, il faut qu'il les reprenne, le script par défaut ne marche pas des masse :

Code PHP:
void main()
{
    
// Donner de l'or à la personne qui parle
    
GiveGoldToCreature(GetPCSpeaker(), 200);

    
// Donner des PX à la personne qui parle
    
GiveXPToCreature(GetPCSpeaker(), 300);

    
// Donner les objets à la personne qui parle
    
CreateItemOnObject("attestationdecom"GetPCSpeaker(), 1);


    
// Enlever des objets de l’inventaire du joueur
    
object oItemToTake;
    
oItemToTake GetItemPossessedBy(GetPCSpeaker(), "peauderat");
    if(
GetIsObjectValid(oItemToTake) != 0)
        
DestroyObject(oItemToTake);
    
oItemToTake GetItemPossessedBy(GetPCSpeaker(), "peaudours");
    if(
GetIsObjectValid(oItemToTake) != 0)
        
DestroyObject(oItemToTake);
    
oItemToTake GetItemPossessedBy(GetPCSpeaker(), "peaudeloup");
    if(
GetIsObjectValid(oItemToTake) != 0)
        
DestroyObject(oItemToTake);
    
oItemToTake GetItemPossessedBy(GetPCSpeaker(), "simple_compagnon");
    if(
GetIsObjectValid(oItemToTake) != 0)
        
DestroyObject(oItemToTake);

Une petite idée ?
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Ba dans le même principe, tu peux essayer de faire cela

Code PHP:
void main()
{
    
// Donner de l'or à la personne qui parle
    
GiveGoldToCreature(GetPCSpeaker(), 200);

    
// Donner des PX à la personne qui parle
    
GiveXPToCreature(GetPCSpeaker(), 300);

    
// Donner les objets à la personne qui parle
    
CreateItemOnObject("attestationdecom"GetPCSpeaker(), 1);


    
// Enlever des objets de l’inventaire du joueur
object oPC=GetPCSpeaker();
object oitem=GetFirstItemInInventory(oPC);
while (
GetIsObjectValid(oitem))
{
  if (
GetTag(oitem)=="peaudeloup")
   
DestroyObject(oitem);
  if (
GetTag(oitem)=="peauderat")
   
DestroyObject(oitem);
  if (
GetTag(oitem)=="peaudours")
   
DestroyObject(oitem);

oitem=GetNextItemInInventory(oPC);
}




et voilà , je suis à mon boulot, donc je ne peux pas savoir si cela se compile ou si ca marche

tu peux le faire plus simple comme ca aussi

Code PHP:
void main()
{
    
// Donner de l'or à la personne qui parle
    
GiveGoldToCreature(GetPCSpeaker(), 200);

    
// Donner des PX à la personne qui parle
    
GiveXPToCreature(GetPCSpeaker(), 300);

    
// Donner les objets à la personne qui parle
    
CreateItemOnObject("attestationdecom"GetPCSpeaker(), 1);


    
// Enlever des objets de l’inventaire du joueur
object oPC=GetPCSpeaker();
object oitem=GetFirstItemInInventory(oPC);
while (
GetIsObjectValid(oitem))
{
  if ( (
GetTag(oitem)=="peaudeloup") || (GetTag(oitem)=="peauderat") || (GetTag(oitem)=="peaudours"))
   
DestroyObject(oitem);
  

oitem=GetNextItemInInventory(oPC);
}




Lien direct vers le message - Vieux
Tzarman
Roi
 
Oui, mais je voudrais qu'il en enlève 10 de chaque
Lien direct vers le message - Vieux
Avatar de RAT
RAT
Alpha & Oméga
 
Avatar de RAT
 
Na normalement il devrait faire comme il passe en boucle tout l'inventaire du pc et qu'à chaque fois qu'il repere ce tag, il supprime l'objet.

Donc normalement, cela va bien retirer tous les objets portant ces tags là qu'il soit tout seul ou plusieurs

Mais c'est à vérifier: )
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
si tu veux n'en enlever que 10, tu les compte
réutilise les "i" du premier script :

Code PHP:
void main()
{
    
// Donner de l'or à la personne qui parle
    
GiveGoldToCreature(GetPCSpeaker(), 200);

    
// Donner des PX à la personne qui parle
    
GiveXPToCreature(GetPCSpeaker(), 300);

    
// Donner les objets à la personne qui parle
    
CreateItemOnObject("attestationdecom"GetPCSpeaker(), 1);


    
// Enlever des objets de l’inventaire du joueur
object oPC=GetPCSpeaker();
object oitem=GetFirstItemInInventory(oPC);
int i;
int i1;
int i2;
while (
GetIsObjectValid(oitem))
{

  if ((
GetTag(oitem)=="peaudeloup") && (i<10))
   {
DestroyObject(oitem); i++; }
  if ((
GetTag(oitem)=="peauderat") && (i1<10))
  {
DestroyObject(oitem); i1++; }
  if ((
GetTag(oitem)=="peaudours")&& (i2<10))
   {
DestroyObject(oitem); i2++; }

oitem=GetNextItemInInventory(oPC);
}

Lien direct vers le message - Vieux
Tzarman
Roi
 
C'est vraiment bizzar, ton script marche bien Reyan, mais le il n'enlève que les peau de rat ( il en enlève bien 10 ), les autres peaux restent dans l'inventaire du pj .......
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Je suis un peu perdu moi là.

Je ne veux pas paraître critique, mais c'est un peu le bordel ces scripts, étant donné que chaque auteur a compris quelque chose de différent quant à ce que tu voulais .

Elles s'entassent tes peaux (i.e. pièces d'or, flèches...), ou tu as un objet par peau?C'est déterminant pour savoir comment en enlever dix. Dans le dernier cas là il vaudrait mieux que les PJs puissent les apporter en plusieurs fois au moins.

Tu veux que le Pj aie dix peaux de chaque, ou qu'il aie dix peaux d'un seul type? En enlever dix (le type qu'il a apporté) ou trente (dix de chaque)?
....
M'enfin si tu t'en sorts, j'ai rien dit :bouffon:
Lien direct vers le message - Vieux
Avatar de Reyan
Reyan [L.D.D]
Roi / Reine
 
Avatar de Reyan
 
heing
voir carrément
alors là, je sèche ...
*sans conviction*
essai en mettant

Code PHP:
int i 0;
int i1 0;
int i2 0
mais ca va rien changer

macarel là je dois avouer ... je vois vraiment pas ...

help ?

et je pense que tu veux enlever 10 peaux de chaque non ?
(rq, tu n'avais testé pour seulement savoir si il avait au moins 10 peau d'un sorte ... enfin bon ... )
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
*fout le feu aux peaux*
Au moins on sais ce qu'elles deviennent !

Jaha Effect
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Petit problem sur un script
   

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 03h29.
   

© 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