Les Voltigeurs d'URU LIVE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

Comment déclencher un évènement avec un "responder"

2 participants

Aller en bas

Comment déclencher un évènement avec un "responder" Empty Comment déclencher un évènement avec un "responder"

Message  V@-Michel Lun 15 Oct - 21:24

"Responder" est un terme anglais que l'on peut traduire en Français par "Intervenant", plus juste que par "Répondeur".
Cet intervenant est associé à un objet du décor. En fonction de la valeur envoyée, cela déclenche une action, par exemple ouvrir une porte.

Comment déterminer si un objet possède ou non un intervenant ?
La réponse est une fois de plus : avec PlasmaShop.

Je vais prendre un exemple concret.
Ouvrons Plasmashop et cliquons sur l'âge Cleft, puis ouvrons la PRP District_Cleft.prp.
PrpShop s'ouvre et cliquons sur Cleft, Cleft, [007C] Responder Modifier.
Cliquons droit sur cBridgeCollapseRespFalse, puis sur Show Target
Une fenêtre s'ouvre qui nous donne l'objet contenant cet intervenant ("Respondeur"). Dans ce cas précis il s'agit de Breaker_A_Proxy13.

On peut ainsi trouver, pour chaque prp d'un âge les objets qui comportent un intervenant.

Maintenant comment utiliser ces intervenants ?
Voici un script qui va nous aider :

Code:

def Animerobjet(Sceneobjet='',age='',resp=0,sresp=0):
    try:
        obj=PtFindSceneobject(Sceneobjet,age)
    except NameError:
        print "Objet %s introuvable dans %s" %(Sceneobjet,age)
        return
    responders =obj.getResponders()
    try:
        compteur = 0
        for respo in responders:
            print "index %d = %s" %(compteur,respo.getName())
            compteur += 1
    except IndexError:
        print "Cet objet ne contient aucun responder"
        return       
    try:
        runResp(obj.getKey(),responders[resp],sresp)
    except IndexError:
        print "Numero de responder inconnu"   

Vous remarquerez la fonction runResp qui déclenche l'action associée à ce responder dont voici le code :

Code:

def runResp(key, resp, stateidx = None, netForce = 1, netPropagate = 1, fastforward = 0):
    nt = ptNotify(key)
    nt.addReceiver(resp)
    nt.netPropagate(netPropagate)
    nt.netForce(netForce)
    if stateidx != None:
        nt.addResponderState(stateidx)
    if fastforward:
        nt.setType(PtNotificationType.kResponderFF)
        nt.netPropagate(0)
        nt.netForce(0)
    nt.setActivate(1.0)
    nt.send()

Tout d'abord, nous nous plaçons dans l'âge où cet objet se trouve ou dans la prp équivalente.
Ensuite nous tapons la commande ci-dessus en plaçant une valeur élevée pour la variable resp, par exemple 10 afin d'éviter le lancement de la commande associée à un responder valide. Par exemple : Animerobjet("yShellSymbol","Cleft",10,0)
Le script va nous retourner la liste des responders utilisables pour cet objet.
Ensuite il nous suffit de relancer la commande en essayant chaque valeur et en observant le résultat a l'écran.
Pour reprendre l'exemple ci-dessus : Animerobjet("yShellSymbol","Cleft",2,0) va rendre visible le coquillage dans le bureau de la faille et si l'avatar le touche, il sera transporté à Kveer !

Vous remarquerez qu'il y a un dernier parametre : srep
Parfois, un responder peut avoir pour une valeur, plusieurs sous valeurs qui produiront des effets différents.
Il est possible de le savoir en examinant le module python associé au déclenchement de ces évènements.
Mais ce serait trop long à vous expliquer ici.
Vous pouvez essayer plusieurs sous-valeurs et si cela produit un effet vous le verrez à l'écran sinon,cette valeur sera sans effet.
Par exemple : Animerobjet('PageButtonSkirt',"Cleft",0,1) va faire apparaître la page "pluie" sur l'imageur.

Voilà un sujet difficile à expliquer mais qui est très important si on veut déclencher des effets particuliers dans un âge.
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

Comment déclencher un évènement avec un "responder" Empty Re: Comment déclencher un évènement avec un "responder"

Message  V@-Annabelle Lun 15 Oct - 22:49

C'est grâce à cela que j'ai appris à animer les Sandkrit, Urwin, petit singe et autres animaux à la fin du printemps dernier. Il fallait que je demande à un programmeur de m'indiquer le responder car la version de PlasmaShop utilisée à l'époque n'était pas celle que nous utilisons aujourd'hui et qui est meilleure.

C'est effectivement de cette manière que j'anime ces animaux. L'avantage de ce petit script ci-dessus c'est d'obtenir les valeurs qui peuvent être utilisées par chaque responder.Wink
V@-Annabelle
V@-Annabelle
Modérateur
Modérateur

Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum