Probleme : GetCurrentAction

Répondre
Partager Rechercher
Petit problème de script.
J'utilise le script suivant pour (essayer de) faire en sorte que mes gardes détectent les pick pocket.

Code PHP:

    object oTest GetFirstObjectInShape(SHAPE_SPHERE,5.0,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_CREATURE);
    while(
oTest!=OBJECT_INVALID)
    {
        if (
GetIsPC(oTest)){SendMessageToPC(oTest,"Le garde vous regarde");}
        
int aTest=GetCurrentAction(oTest);
        if(
aTest==ACTION_PICKPOCKET)
        {
            if (
GetIsPC(oTest)){SendMessageToPC(oTest,"Le garde vous a vu voller ...");}
            
SetIsTemporaryEnemy(oTest,OBJECT_SELF);
            
AssignCommand(OBJECT_SELF,ActionAttack(oTest));
        }
        else
        {
            if (
GetIsPC(oTest)){SendMessageToPC(oTest,IntToString(aTest)+" != "+IntToString(ACTION_PICKPOCKET));}
        }
        
oTest GetNextObjectInShape(SHAPE_SPHERE,5.0,GetLocation(OBJECT_SELF),TRUE,OBJECT_TYPE_CREATURE);
    } 
Le problème c'est que la condition if(aTest==ACTION_PICKPOCKET) n'est jamais respectée ... (je place ce script sur le OHB du garde), comme si la commande GetCurrentAction ne fonctionnais pas ...

une idée ?
Je pourrais pô te dire où se trouve l'erreur.

P'tet qu'utiliser l'évènement OnDisturbed du pauv'gars qui se fait piquer sa bourse pourrait être plus efficace.

Code PHP:

void main() {
    
object oTarget GetLastDisturbed();
    
object oGarde GetNearestObjectByTag"GARDE");
    
int aTest GetInventoryDisturbType();

    if (
aTest == INVENTORY_DISTURB_TYPE_STOLEN && GetIsPôTropLoin()) {
        
AssignCommandoGardeSpeakString"Encore toi! Cette fois, c'est la zonzon a perpete!");
        
AssignCommandoGardePeteLuiLaGueuleoTarget));
        }
    } 
Citation :
Provient du message de Jaha Effect
Le OnDisturbe est bien mais encore mieux avec un silente shout sur le PNJ qui se fait détrousser et ListenPattern pour le garde qui va réagir

Jaha Effect
Moouarff, j'allais le dire ^^

Tu fais un silent talk, que le pickpocket ai reussi ou non, puis tu fait un OnConversation sur les garde avec un Jet de Competence pour verifier si les gardes l'ont vu ou non, et s'ils ont vu => action ^^


[PS : Attention Silent Shout est peut etre trop puissant, et en plus, ca fais un ligne dans l'interface DM (sisi oO). Pour ce qui est de la detection, Silent Talk est plus viable, et plus en accord niveau distances...]


[PPS : Pour le GetCurrentAction, je connais pas vraiment cette fonction, mais ca a l'air interressant )
Bah à priori, il te suffit d'utiliser le OnUnaquireItem pour le cas où c'est un PJ qui est volé non ?
Reste à déterminer s'il s'agit bien d'un vol, il faudrait vérifier si GetCurrentAction() marche ce coup ci ou si GetInventoryDisturbType() marche...
Répondre

Connectés sur ce fil

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