Comment déclencher un évènement avec un "responder"
2 participants
Page 1 sur 1
Comment déclencher un évènement avec un "responder"
"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 :
Vous remarquerez la fonction runResp qui déclenche l'action associée à ce responder dont voici le code :
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.
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- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Comment déclencher un évènement avec un "responder"
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.
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.
V@-Annabelle- Modérateur
- Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada
Sujets similaires
» comment voltiger
» Mon premier jeu : comment faire ?
» Le coin de V@-Michel
» Comment envoyer une note à un avatar
» Se relier à un objet en mouvement ou comment voler
» Mon premier jeu : comment faire ?
» Le coin de V@-Michel
» Comment envoyer une note à un avatar
» Se relier à un objet en mouvement ou comment voler
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|