Coincé dans un sac sans fond ...

Répondre
Partager Rechercher
Je cherche depuis un moment une fonction ou un moyen permettant de savoir (là je m'adresse aux scripteurs ) si un objet quelconque de l'inventaire d'un joueur est contenu dans un sac de ce même joueur et ... au mieux de récupérer le tag de ce sac. Merci d'avance.
Dis-moi si ceci te convient.

Je ne l'ai pas testé, mais cela devrait marcher. Dans le cas contraire, on fera en sorte que...

Code PHP:

// Pour test, je placerai ce script dans l'evenement OnUsed d'un levier

// Prototypes
string GetTagContainerobject oCreatureobject oSearch );

void main()
    {
    
object oPC GetLastUsedBy();     // a redefinir selon tes besoins
    
string sTagObjetRecherche "TagDeMonObjet";    // Definir ici le tag de l'objet que l'on recherche
    
string sNomObjetRecherche "";
    
string sTagContainer "";

    
// Si l'objet n'est pas possede par le PJ, on le signale et on quitte
    
object oMonObjet GetItemPossessedByoPCsTagObjetRecherche );
    if ( !
GetIsObjectValidoMonObjet ))
        {
        
SendMessageToPCoPC"Vous ne semblez pas posseder l'objet dont le tag est " sTagObjetRecherche );
        return;
        }

    
// Sinon, on recupere le nom de l'objet et on lance la recherche
    
sNomObjetRecherche GetNameoMonObjet );
    
sTagContainer GetTagContaineroPCoMonObjet );

    if ( 
sTagContainer != "" )
        
// Si l'objet est dans un container, on signale son tag...
        
SendMessageToPCoPC"L'objet" sNomObjetRecherche " a ete trouve dans un container dont le tag est " sTagContainer  );
    else
        
// sinon, ben on le signale aussi...
        
SendMessageToPCoPC"L'objet" sNomObjetRecherche " se trouve directement dans votre inventaire" );
    }

string GetTagContainerobject oCreatureobject oSearch )
    {
    
object oItem;
    
object oItemInContainer;

    
oItem GetFirstItemInInventoryoCreature );
    while ( ( 
GetIsObjectValidoItem )) )
        {
        if ( 
oItem == oSearch )
            return 
"";

        if ( 
GetHasInventoryoItem ))
            {
            
oItemInContainer GetFirstItemInInventoryoItem );
            while ( 
GetIsObjectValidoItemInContainer ))
                {
                if ( 
oItemInContainer == oSearch )
                    return 
GetTagoItem );

                
oItemInContainer GetNextItemInInventoryoItem );
                }
            }
        
oItem GetNextItemInInventoryoCreature );
        }

    return 
"";
    } 
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés