JeuxOnLineForumsPlusConnectés : 125 (sites) | 306 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > question très bête RSS
   
Répondre
Partager Outils Rechercher
Nonolevil
Roi
 

question très bête

Bonjour,
j'ai une question super bete et j'ai pas trouvé la réponse dans le forum (d'ailleurs j'ai pas trouvé la question non plus, je suppose donc que je suis très nul).
voila j'ai mis un coffre et dedans j'ai mis un tas de pièces d'or, je l'ai éditer a l'intérieur du coffre et j'ai mis nombre d'unité 25 (je suppose donc qu'il devrais y avoir 25 po du coup).
Hors a chaque fois pouf 1 PO seulement, est-ce qu'il faut que j'édite pièce d'or et que je mette 215 au nouvel objet? (j'utilise un script de respawn de coffre).

Merci de vos réponse,
Nono le vil
Lien direct vers le message - Vieux
BERNARD_JULIUS [[LH]]
Roi
 
Heu pourquoi 215 ?
J'ai du mal à suivre là...
C'est quoi ton script de respawn du coffre, on peut le voir ?
Lien direct vers le message - Vieux
Avatar de aldech
aldech
Dauphin
 
Avatar de aldech
 
Post
Ce serait plutôt 625, si on applique la règle de trois :

1 po = 25 unités
25 po = 625 unités
Lien direct vers le message - Vieux
Nonolevil
Roi
 
heu, je me suis mal exprimé, en fait quoi que je fasse je ne trouve toujours qu'une piece d'or dans mon coffre, c'est pas avec 1 po que mes joueurs vont devenir riche, alors j'aimerais bien savoir comment on fait pour creer un tas d'orde + d'une piece d'or.
Lien direct vers le message - Vieux
BERNARD_JULIUS [[LH]]
Roi
 
Ben avec la fonction CreateItemOnObject, tu peux préciser le nombre d'objets à créer dans ton coffre...
Mais heu, si tu veux que quelqu'un t'aide, je te conseille de mettre ton script parce que là c'est pas évident (ton script de respawn du coffre).

Code PHP:
CreateItemOnObject("nw_it_gold001",OBJECT_SELF,25); 
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
Tu as bien enlevé les deux scripts nw_o2_* de ton coffre?

Ces scripts sont, je pense, capables de redéfinir la quantité de pièces d'or dans ton coffre.

Je pense pô que ça vient de là mais bon
Lien direct vers le message - Vieux
Nonolevil
Roi
 
voila le script de respawn de coffre que j'utilise, je l'ai trouvé sur nwn-fr.com.

Code PHP:
//::///////////////////////////////////////////////
//:: OnOpenCoffre
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Ce script permet de faire respawn les items d'un
coffre avec une probabilite.
Pour l'utiliser :
Le coffre doit avoir un tag de la forme "X_ce que vous voulez"
avec pour X l'intervalle de temps en seconde entre
2 respawns. Puis il faut placer dedans
les items qui doivent respawn, avec un tag de la forme
"n_resref" ou "n" est le pourcentage de chance que l'item
apparaisse et "resref" le resref de l'item en question.
*/
//:://////////////////////////////////////////////
//:: Created By: Tahlion, beta et modifs par Mercius
//:: Created On: 12/05/2003 18:36
//:://////////////////////////////////////////////
void main()
{
    
int iNbItem GetLocalInt(OBJECT_SELF,"nombre_item");

    if(
iNbItem == 0)
    {
        
object oItem GetFirstItemInInventory(OBJECT_SELF);
        
int i 0;
        while(
GetIsObjectValid(oItem))//boucle...
        
{
            
i++;
            
string sTagProba GetTag(oItem);
            
//on prend la partie droite de l'item, donc le resref
            
SetLocalString(OBJECT_SELF,"item" IntToString(i), GetStringRight(sTagProbaGetStringLength(sTagProba) - FindSubString(sTagProba,"_")));
            
//on prend la partie gauche, donc le pourcentage de chance d'apparition de l'item
            
SetLocalInt(OBJECT_SELF,"proba" +IntToString(i), StringToInt(GetStringLeft(sTagProbaFindSubString(sTagProba,"_"))));

            
//on detruit l'item
            
DestroyObject(oItem);
            
oItem GetNextItemInInventory(OBJECT_SELF);
        }
        
SetLocalInt(OBJECT_SELF,"nombre_item",i);
        
SetLocalInt(OBJECT_SELF,"okgenere",1);//on peut generer les items maintenant
        
iNbItem i;
    }

    if(
iNbItem && GetLocalInt(OBJECT_SELF,"okgenere") == 1)//si la boucle ci-dessus a ete faite
    
{
        
int i;
        for(
1<= iNbItemi++)
        {
            
//si l'item n'existe pas deja dans le coffre
            
if(!GetIsObjectValid(GetItemPossessedBy(OBJECT_SELFGetLocalString(OBJECT_SELF"item" IntToString(i)))))
            {
                
//on calcul avec le pourcentage, pour savoir si l'item doit apparaitre ou pas
                
if(d100() <= GetLocalInt(OBJECT_SELF,"proba" IntToString(i)))
                {
                    
//on cree l'item
                    
CreateItemOnObject(GetLocalString(OBJECT_SELF,"item" IntToString(i)));
                }
            }
        }
        
SetLocalInt(OBJECT_SELF"okgenere"0);
        
string sTagSelf GetTag(OBJECT_SELF);
        
DelayCommand(StringToFloat(GetStringLeft(sTagSelfFindSubString(sTagSelf,"_"))), SetLocalInt(OBJECT_SELF"okgenere"1));
    }

Lien direct vers le message - Vieux
BERNARD_JULIUS [[LH]]
Roi
 
Je vais peut-être dire une ânerie mais j'ai l'impression que ce script ne gère pas les objets "stackable"...
Je suis sûr qu'avec par ex une épée et une armure ça marche...
Peut être qu'il faut essayer de mettre la variable locale "nombre_item" de ton coffre à 25 pour 25 x 1 pièces d'or et pas à 1 pour 1 tas de 25...
Où alors essaye de mettre 25 fois une pièce d'or dans ton coffre...
Enfin bon je ne suis pas un pro du script, sûrement quelqu'un ici pourra t'aider plus que moi...mais si j'étais toi je ferais ces deux test histoire d'en avoir le coeur net. (si ce n'est pas déjà fait...)
Lien direct vers le message - Vieux
Avatar de Prince Nexus
Prince Nexus
Dauphin
 
Avatar de Prince Nexus
 
Bon, je vois que ca galere dur sur ce topic alors voila la soluce :

Faire Assistant Objet >> Pieces d or >> Valeur = 25.

Et voila l item de nom et tag (et de blueprint) "25po" ajouter a la palette que l on peut appeler par son ResRef pour les coffres renouvellant leur contenu pour les modules persistants.

Perso, je conseille de faire plusieurs 'objets' de ce type de valeur 1, 5, 10, 20, 25, 50, 100, 500, 1000, 5000, 10.000 et 100,000 po dans le module...

Prince Nexus.
Lien direct vers le message - Vieux
BERNARD_JULIUS [[LH]]
Roi
 
Oups oui c'est pas bête ça !!!

(On peut mettre une fois 25 pièces d'or, mais on peut pas mettre 25 pièces d'or...heu non, on peut mettre 25 fois une pièce d'or, mais on peut pas mettre une fois 25 pièces d'or...heu, non...
- Prenez un chewing-gum, Emile)
Lien direct vers le message - Vieux
Avatar de sojkowski
sojkowski
Dauphin
 
Avatar de sojkowski
 
l'or n'est pas distribué en fonction du niveau du personnage?
Lien direct vers le message - Vieux
Nonolevil
Roi
 
j'ai essayer la manip mais toujours 1 pieces d'or, je comprend pas trop.
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Contrairement à ce que semble penser Prince Nexus, créer plusieurs blueprints de différentes valeurs n'est pas ici la solution. Et, honnêtement, de manière générale, je n'en vois absolument pas l'utilité.

Bon. Voilà un extrait de ton script :
Code PHP:
CreateItemOnObject(GetLocalString(OBJECT_SELF,"item" IntToString(i))); 
Soit j'ai des problèmes de vue, soit il n'y a pas de deuxième argument spécifié dans la fonction CreateItemOnObject(). OR, c'est cet argument qui définit combien d'instance de l'objet vont être crées.
En clair, ton script est limité de par le fait qu'il ne crée à chaque fois qu'une instance des objets qu'il a gardé en mémoire (si j'ai bien compris le principe), or dans le cas des pièces d'or il faut en créer plusieurs.

Je ne vais pas refaire tout le script, mais pour résoudre le problème il suffit d'enregistrer en plus du blueprint de l'objet, le nombre d'instances qu'il contient (GetStackSize le permet, il me semble). Puis, lors de la restauration de l'objet, tu crée un nombre d'instance égal à celui enregistré plus tôt. Et voilà le travail !

Cela dit, j'avoue ne pas avoir lu le script en détail, donc si jamais je suis à côté de la plaque, ben désolé Mais bon, ce genre de script, c'est un peu toujours le même principe, donc je devrais pas trop être à l'ouest dans mes explications

Voilà, bonne chance.
Lien direct vers le message - Vieux
Nonolevil
Roi
 
Un grand merci a tous pour vos réponse et plus précisement a Taern, voila mon script corrigé il suffisait (comme le disait Taern) de prendre le stacksize de l'item
Code PHP:
GetItemStackSize(oItem
et
de le restituer dans la fonction grace a
Code PHP:
CreateItemOnObject(GetLocalString(OBJECT_SELF,"item" IntToString(i)), OBJECT_SELFGetLocalInt(OBJECT_SELF,"stacksize" IntToString(i))); 
voila le code en entier si quelqu'un est intérressé.

Code PHP:
//::///////////////////////////////////////////////
//:: OnOpenCoffre
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Ce script permet de faire respawn les items d'un
coffre avec une probabilite.
Pour l'utiliser :
Le coffre doit avoir un tag de la forme "X_ce que vous voulez"
avec pour X l'intervalle de temps en seconde entre
2 respawns. Puis il faut placer dedans
les items qui doivent respawn, avec un tag de la forme
"n_resref" ou "n" est le pourcentage de chance que l'item
apparaisse et "resref" le resref de l'item en question.
*/
//:://////////////////////////////////////////////
//:: Created By: Tahlion, beta et modifs par Mercius
//:: Created On: 12/05/2003 18:36
//:://////////////////////////////////////////////
void main()
{
    
int iNbItem GetLocalInt(OBJECT_SELF,"nombre_item");

    if(
iNbItem == 0)
    {
        
object oItem GetFirstItemInInventory(OBJECT_SELF);
        
int i 0;
        while(
GetIsObjectValid(oItem))//boucle...
        
{
            
i++;
            
string sTagProba GetTag(oItem);
            
//on prend la partie droite de l'item, donc le resref
            
SetLocalString(OBJECT_SELF,"item" IntToString(i), GetStringRight(sTagProbaGetStringLength(sTagProba) - FindSubString(sTagProba,"_")));
            
//on prend la partie gauche, donc le pourcentage de chance d'apparition de l'item
            
SetLocalInt(OBJECT_SELF,"proba" +IntToString(i), StringToInt(GetStringLeft(sTagProbaFindSubString(sTagProba,"_"))));
            
// on prend le StackSize
            
SetLocalInt(OBJECT_SELF,"stacksize" +IntToString(i), GetItemStackSize(oItem));

            
//on detruit l'item
            
DestroyObject(oItem);
            
oItem GetNextItemInInventory(OBJECT_SELF);
        }
        
SetLocalInt(OBJECT_SELF,"nombre_item",i);
        
SetLocalInt(OBJECT_SELF,"okgenere",1);//on peut generer les items maintenant
        
iNbItem i;
    }

    if(
iNbItem && GetLocalInt(OBJECT_SELF,"okgenere") == 1)//si la boucle ci-dessus a ete faite
    
{
        
int i;
        for(
1<= iNbItemi++)
        {
            
//si l'item n'existe pas deja dans le coffre
            
if(!GetIsObjectValid(GetItemPossessedBy(OBJECT_SELFGetLocalString(OBJECT_SELF"item" IntToString(i)))))
            {
                
//on calcul avec le pourcentage, pour savoir si l'item doit apparaitre ou pas
                
if(d100() <= GetLocalInt(OBJECT_SELF,"proba" IntToString(i)))
                {
                    
//on cree l'item
                    
CreateItemOnObject(GetLocalString(OBJECT_SELF,"item" IntToString(i)), OBJECT_SELFGetLocalInt(OBJECT_SELF,"stacksize" IntToString(i)));
                }
            }
        }
        
SetLocalInt(OBJECT_SELF"okgenere"0);
        
string sTagSelf GetTag(OBJECT_SELF);
        
DelayCommand(StringToFloat(GetStringLeft(sTagSelfFindSubString(sTagSelf,"_"))), SetLocalInt(OBJECT_SELF"okgenere"1));
    }
}
*/ 
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > question très bête
   

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 05h28.
   

© 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