Login: Pass:
L666



Inscrit le: 11 Nov 2006
Messages: 18
Message Posté le: 30/12/2006 18:18 Sujet du message: Scripte pour activer objects ?
Salut a tous

voila je voudrai savoir comment assosier un scripte a un objets

par exemple :

l'objet a la propriété "activer objets" comment faire pour que lors de l'activation sa active un scripte de mon choix ?
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Miltiades



Inscrit le: 05 Nov 2006
Messages: 175
Message Posté le: 30/12/2006 19:03 Sujet du message:
Salut^^

Il me semble qu'il faut que tu attribues une capacité activer une capacité.
Tu donnes un tag à ton item et tu crées un script ayant le même tag.
Pour plus de sûreté, tu peux implanter ton script sur le onactivate de l'item.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
L666



Inscrit le: 11 Nov 2006
Messages: 18
Message Posté le: 30/12/2006 19:09 Sujet du message:
je n'est pas tout comprit Embarassed

je suis légérement nul dans se domaine
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tink



Inscrit le: 05 Jan 2007
Messages: 136
Message Posté le: 5/01/2007 15:36 Sujet du message:
Si je comprend bien, tu veut faire en sorte que ton objet fasse un effet unique que tu crééra avec un script ? J'ai une autre méthode qui peut peut-être te dépanner : je n'utilise pas activer objets (j'avais jamais vu cette capacité avant ^^'), j'utilise plutôt pouvoir unique qui est aussi dans la catégorie lancer un sort. Une fois que j'ai mis cette propriété à l'objet, je vais dans voir en haut du toolset, puis dans propriétés du module. Là je remplace le Script déclenché par l'activation d'un objet (qui doit être par défaut quelque chose comme x2_mod_def_act) par le script suivant :

Citation
void main()
{
object oItem = GetItemActivated();

if(GetTag(oItem) == "tag_objet")
{
//Propriétés de l'objet
}

if(GetTag(oItem) == "tag_autre_objet")
{
//Propriétés d'un autre objet
}
}


A la place de tag_objet, tu met le Tag de ton objet (le Tag c'est un code simple qui désigne ton objet et que tu peut changer dans Propriétés de l'objet/ Général/ Tag). Entre les crochets qui suivent tu met le script rataché à ton objet et c'est bon Smile . Note que tu peut mettre les capacités d'autant d'objets que tu veut dans ce script comme je l'ai mis dans l'exemple :

Citation
if(GetTag(oItem) == "tag_autre_objet")
{
//Propriétés d'un autre objet
}
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Kalidor



Inscrit le: 23 Juin 2005
Messages: 309
Localisation: Nord
Message Posté le: 29/01/2007 19:33 Sujet du message:
yop

je veux faire une action de lancer un effet visuel sur le porteur d'une armure lorsqu'il lance l'activation de l'objet.

Citation

void main()
{
object oCharact = "c'est là qu'est le problême Wink";
effect eRayprism = EffectVisualEffect(VFX_DUR_SPELL_PRISMATIC_SPRAY);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eRayprism,oCharact,60.0);
}


Pour cibler le personnage qui utilise l'effet, c'est quellle fonction ?

merci d'avance
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tatav



Inscrit le: 04 Oct 2006
Messages: 79
Message Posté le: 30/01/2007 0:28 Sujet du message:
GetItemActivator() : personnage qui active l'objet
GetItemActivated() : objet activé
GetItemActivatedTarget() : objet sur qui a été lancé le pouvoir (si ce n'est pas un pouvoir sur soi)
GetItemActivatedTargetLocation(): location ciblée par l'activation d'objet.

Y'a des modèles de bases bien utiles pour connaitre les fonctions de bases associées à certains types de scripts. Comme la tu fais dans la liste des scripts click droit -> ajouter depuis le modele -> item activate, ces fonctions sont listées dans ce script de base Wink .


Sinon pour associer le script au tag de l'objet et eviter d'avoir un script associé au onItemActivated du module parsemé de
Citation

string sTag = GetTag(oItem);
if (sTag=="XXX")
{
...
}
else if (sTag=="YY")
{
...
}

NB: il est préférable de stocker le GetTag dans une string et de comparer cette string au lieu d'appeler X fois le GetTag pour le même item.



il faut renommer le script i_tagdelobjet_ac et la ce script sera automatiquement exécuté à l'activation de l'objet. Donc si le tag de mon objet est "objet_magique", le script associé sera i_objet_magique_ac.
Enfin dans les scripts comme cela, l'objet activé s'obtient par OBJECT_SELF et non plus par GetItemActivated() je pense, enfin ca reste à vérifier/confirmer.
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Kalidor



Inscrit le: 23 Juin 2005
Messages: 309
Localisation: Nord
Message Posté le: 30/01/2007 15:31 Sujet du message:
merci beaucoup, ça fonctionne desormais Very Happy
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Kalidor



Inscrit le: 23 Juin 2005
Messages: 309
Localisation: Nord
Message Posté le: 30/01/2007 16:07 Sujet du message:
Pour un autre script cette fois :
le but est de pouvoir se transformer en loup à volonté, mon problème est que la fonction SetCreatureAppearanceType() change l'apparance pour une duréee indeterminée.
Le but serait de pouvoir se transformer/détransformer . Or là ça coince Confused
Citation

void main()
{

object oTarget =GetItemActivator();
SetCreatureAppearanceType (oTarget,APPEARANCE_TYPE_DOG_WOLF);

}



EDIT: Bah en fait c'est bon, mon problème est réglé
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Tink



Inscrit le: 05 Jan 2007
Messages: 136
Message Posté le: 31/01/2007 20:23 Sujet du message:
Hmm... j'ai pas testé sur nwn2, mais sur le 1 la transformation s'arretait lorsque le PJ dormait ou cliquait sur une option spéciale comme pour annuler les métamorphoses des druides. C'est plus le cas sur nwn2 ?
Répondre en citant
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   

Page 1 sur 1
Sauter vers:  

 

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum

Traduction par : phpBB-fr.com
Powered by phpBB © 2001, 2007 phpBB Group