Message DM en cas de vol à la tire

Répondre
Partager Rechercher
Salut tous,

Je sèche là...

Pour éviter les abus et dans un unique but de modérations des vol à la tire, nous aimerions qu'un message DM apparaissent à chaque vol a la tire avec si possible le nom de l'objet, du volé et du voleur...

J'ai bien essayé de passer par le onunaquireitem mais bof bof...

Quelqu'un a un tuyau?

Merci
Le AcquireItem convient mieux vu que ça marchera même quand un PNJ se fera voler. Par contre, ça marchera pas avec un PNJ voleur ...

Bon, v'la une idée de code :
Code PHP:

void main()
{
    
object oItem GetModuleItemAcquired();
    
object oFrom GetModuleItemAcquiredFrom();
    
object oBy GetModuleItemAcquiredBy();

    
// Si le proprietaire est une creature, il y a eu vol a la tire
    
if(GetObjectType(oFrom) == OBJECT_TYPE_CREATURE)
    {
        
string sMessage "[VOL] objet : "+GetName(oItem)+
                          
"\n      voleur : "+GetName(oBy)+
                          
"\n      volé : "+GetName(oFrom);
        
SendMessageToAllDMs(sMessage);
        
WriteTimestampedLogEntry(sMessage);
    }

Par contre j'ai un petit doute : lors d'une transaction entre PJs, je suis pas sûr de ce que renvoie GetModuleItemAcquiredFrom(). A vérifier ...
A noter que ceci ne marche que pour les objets; il n'y a pas moyen actuellement de détecter un vol de pièces d'or.
Ouais j'avais pensé à cette solution mais elle renvoie un peu n'importe quoi

En fait dès qu'un PJ ramasse un objet volé, le script se déclenche. Ce qui fait que des fois on a un message Robert a volé Bob alors qu'ils sont même pas dans la même zone.
Oui alors comment te dire... Le OnUserDefined est pour moi une grande inconnue. Je script des trucs bien costauds seul mais j'ai jamais utilisé le OnUserDefined et j'ai un peu de mal à saisir la notion j'avoue...

Si tu te sens une âme charitable...
Bon j'ai étudié un peu le OnUserDefined.

D'après ce que j'ai compris une action génère un evenement et il y a quelque chose qui est à l'écoute et qui réagit à l'envoi de cet événement... J'ai bon?

Si oui, je comprends du coup mieux la logique. Le module pourrait écouter un événement "j'ai réussi un vol à la tire" par ex. et balancer un message aux DMs dans ce cas. Mais le signal event qui génère l'événement, je le mets où? Y'a un script standard qui régit le vol à la tire?
Non, il n'y a pas de script qui gère le vol à la tire.
L'évènement OnUserDefined (ou UDE) est généralement surestimé par pas mal de monde Il permet simplement de bricoler ses propres évènements, pas d'en accéder à de nouveaux.

Pour la solution du OnAcquireItem, je vois pas le souci. On regarde l'ancien propriétaire de l'objet, et là 3 cas possibles :
- un objet invalide : l'item a été pris par terre ou d'une autre manière
- un plaçable
- une créature : il y a eu vol à la tire
On s'occupe pas du flag "volé" donc.
Répondre

Connectés sur ce fil

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