Déplacement D'objet

Répondre
Partager Rechercher
Bonsoir,
Je parcoure votre forum depuis un moment et j'ai cherché autant que j'ai pu, j'ai eu des bribes de réponse, j'ai potassé le lexicon, mais ca ne rend rien.
Je débute dans le script alors faut pas trop m'en vouloir.
Voila ce que j'ai écris, l'objet disparait bien mais ne réapparait pas. pouvez vous m'aider?
Voici le script:

Code PHP:

void main()
{
    
object oreine GetObjectByTag("dameblanche");
    
int nObjectType OBJECT_TYPE_PLACEABLE;
    
string sreine "dameblanche";
    
location lTarget GetLocation(GetWaypointByTag("WP_01"));



     
     
DestroyObject(oreine);
     
CreateObject(nObjectTypesreinelTargetFALSE);





Je ne sais pas ou tu mets ton script, mais ce qui est certain c'est que si tu détruit avant de re-creer ça peut ne pas marcher (cela dépend d'ou est placer le script).

De plus CreateObject(nObjectType, sreine, lTarget, FALSE); il FAUT que sreine corresponde bien a la resref, et non au tag de l'objet que tu vas créer.
__________________
Module PvP SombreLune : http://sombrelune-nwn.realbb.net/forum.htm

SombreLune 2 en Beta.
En effet en copiant l'objet et en l'appellant ca marche, le script est sur la consequence d'un dialogue, maintenant le soucis c'est le delay command, je voudrais que cette piece disparaissent de nouveau pour laisser aparaitre un monstre mais mon delay Command ne s'éxécute pas.

D'apres le Lexicon voila la ligne probable:
DelayCommand(3.0f,AssignCommand(oNPC, ActionDoCommand(DestroyObject(oNPC))));donc moi j'ai tenté de le remettre a ma sauce :
Code PHP:

object orina GetObjectByTag("ZEP_WHITEQUEEN");     
DelayCommand(3.0f,AssignCommand(orinaActionDoCommand(DestroyObject(orina)))); 
mais rien ne se passe , je me doute qu'il y a un paille dans la soute , le delay voulu etant de 3 secondes Dites moi que je suis une truffe et que c'est tout bete ^^ , quand je met destroy tout seul ca roule mais pas avec le delay command.Je commence a comprendre la logique mais bon , pas trop encore , mais un peu ...
Je pense qu'un simple :

Code PHP:

DestroyObject(orina3.0
Peut faire l'affaire non ?


PS : sans me moquer (c'était de la taquinerie), quand tu ouvre une commande dans l'éditeur lis bien tout les paramètres, sur le lexicon c'est encore plus développé.
__________________
Module PvP SombreLune : http://sombrelune-nwn.realbb.net/forum.htm

SombreLune 2 en Beta.
Lol oui , ca marche , j'avais effectivement finis par trouver, et c'était bien ca , la je repars sur un delaycommand mais pour le createobject pour faire apparaitre un monstre, je mettrais le script de fin, ca pourra servir a d'autres je pense.

Donc dapres le lexicon:
object CreateObject( int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation = FALSE, string sNewTag = ""); donc je declare tous ce qui faut :
Code PHP:

string smonstr2 "ZEP_SPHINXHIER";
location lTarget GetLocation(GetWaypointByTag("WP_01"));
 
int bUseAppearAnimation TRUE
puis je fais ma commande:
Code PHP:

 DelayCommand(2.0CreateObjectVoid(OBJECT_TYPE_CREATUREsmonstr2lTargetTRUE)); 

ca compile bien mais rien ne se passe, je me demandais si ca venais pas d'une de mes déclarations
Voici le code complet:

Code PHP:

 #include "nw_i0_2q4luskan"

void main()
{
    
object oreine GetObjectByTag("dameblanche");
   
object oTarget GetWaypointByTag("WP_01");
   
string sMonstr "ReineBlanche";
   
location larrivee GetLocation(GetWaypointByTag("WP_02"));
   
int bUseAppearAnimation TRUE;


     
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_DUR_SPELLTURNING), GetLocation(oreine));
     
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE), GetLocation(oreine));

     
DestroyObject(oreine);


     
CreateObject(OBJECT_TYPE_PLACEABLE"zep_whitequeen"GetLocation(oTarget));
     
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE), GetLocation(oTarget));


       
object orina GetObjectByTag("zep_whitequeen");
     
DestroyObject(orina,3.0);
     
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE), GetLocation(oTarget));




    
DelayCommand(3.0CreateObjectVoid(OBJECT_TYPE_CREATUREsMonstrlarriveeTRUE));
  
ApplyEffectAtLocation(DURATION_TYPE_INSTANTEffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE), GetLocation(oTarget));

string sMonstr = "ReineBlanche";

Pareils ici c'est une resref, et donc minuscules !!!

Si pour un tag tu peux utiliser MAG et ou MIN, une resref n'est qu'en minuscule (maintenant il ce peut que je me trompe).

int bUseAppearAnimation = TRUE;
DelayCommand(3.0, CreateObjectVoid(OBJECT_TYPE_CREATURE, sMonstr, larrivee, TRUE));



ton int ne te sert a rien car tu mets dans la commande TRUE, mais de toute façon ce n'est pas ça qui peut faire planter ton script.


tu dis que tu mets cela dans un dialogue ? c'est un jeu d'échec ? comment c'est sensé fonctionner ?
Pour simplifier, tu peux directement écrire:

object orina =CreateObject(OBJECT_TYPE_PLACEABLE, "zep_whitequeen", GetLocation(oTarget));

et donc virer le orine = GetObjectByTag("zep_whitequeen");

Mais ce n'est pas cela qui fait planter son script. L'objet est mis en "statique" et est donc indestructible. Pour que cela marche, décoche la case "statique" et enregistre la reine avec un nouveau resref (et adapte le resref dans ton script).
ALors c'est bien pour un échiquier, je fais déplacer la reine une premiere fois puis normalement la piece disparait et jusque la tout marche , mais ensuite l'apparition du monstre reine blanche ne se fait pas, et je comprend pas pourquoi en revanche si j'essaye de la faire apparaitre sans le delaycommand ca fonctionne
Normalement, dans ton script:

La reine blanche déjà présente disparaît et réapparaît instantanément là où se trouve le WP_01 (ce qui donne l'impression d'un déplacement). Trois secondes plus tard, la reine blanche disparaît définitivement et apparaît en même temps, à la position WP_02, un monstre qui a le resref "ReineBlanche".

Qu'est ce qui ne marche pas exactement ?
As-tu changé le "ReineBlanche" pour "reineblanche" comme l'a dit ruru2a ?
Citation :
Publié par viniyoga
ALors c'est bien pour un échiquier, je fais déplacer la reine une premiere fois puis normalement la piece disparait et jusque la tout marche , mais ensuite l'apparition du monstre reine blanche ne se fait pas, et je comprend pas pourquoi en revanche si j'essaye de la faire apparaitre sans le delaycommand ça fonctionne
Donc si avec le delaycommand ça ne fonctionne pas c'est que soit il y a une erreur dans la fonction qui te permet de faire un délais sur le createobject soit que tu dois créer avant que ne disparaisse ton pion.

Alors il te faut essayer de créer ton monstre a 2.9 en delaycommand.

[EDIT] La fonction doit certainement marcher j ai vérifié dans l'éditeur. Pour le problème de resref (mais si tu dis que ca marche sans délais) ca n'a pas l'air d'être le cas. Un problème de location, mais si tu utilise les même chose sans le délais c'est a écarter. Donc je ne vois qu'une histoire de délais.
__________________
Module PvP SombreLune : http://sombrelune-nwn.realbb.net/forum.htm

SombreLune 2 en Beta.
Je ne comprends pas, l'instruction

DelayCommand(3.0, CreateObjectVoid(OBJECT_TYPE_CREATURE, sMonstr, larrivee, TRUE));

marche bien chez moi. Je ne vois que deux solutions: le resref n'existe pas dans la palette ou tu as oublié de placer le WP_02.
TRès bizarre en effet puisque quand je fait simplement l'instruction createobject j'ai bien l'apparition de la reine avec mon waypoint WP_02. Ca doit etre une coquille toute bete, je continue de fouiller pour mieux comprendre, je vous tiens au courant.
C'etait bien un probleme de Delai, visiblement il aimait pas que je cree 1 objet et que je fasse apparaitre un autre en meme temps.. je comprends pas pourquoi mais c'était ca. Merci beaucoup pour votre aide et bien content de voir un forum explicatif encore actif pour ce jeu que j'adore.
Tres simple, pour quelle raison je te demande ou tu as mis le script c'est que si tu détruit l'objet ou le script est placé forcément la suite du script ne ce déroule plus.
C'est vrai que dis comme ca , ca devient logique ^^ il faut donc que je lance la creation d'objet avant la destruction de l'objet d'origine et la ca marche , merci donc pour ces infos !
Répondre

Connectés sur ce fil

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