Editeur: comment d?clencher un ?v?nement au bout d'un mois ?

Forum destiné aux discutions autour de l'editeur

Modérateur: Zénithale

Editeur: comment d?clencher un ?v?nement au bout d'un mois ?

Messagepar Zanandhar » Mer 11 Oct 2006, 18:03

J'explique vite fait le principe de ma carte:

Une carte en ?quipe avec 2 joueurs humains en coop?ratif, qui doivent faire face ? des attaques r?guli?res de necromanciens.

Rien de tr?s original, je vous l'accorde, mais le syst?me de script me parait un peu compliqu? (et pourtant j'ai beaucoup script? sur Neverwinter Nights).

Concr?tement, j'avais commenc? par poser 4 h?ros n?cromanciens sur la carte dans des zones ferm?es, mais je n'ai pas r?ussi ? scripter un event du type: "enlever l'objet qui bloque le passage" ? cause d'un probl?me de nom d'objet.

J'ai donc d?cid? d'utiliser la fonction "DeployReserveHero" ? la place. J'ai bien saisi comment d?terminer le point d'apparition du h?ros , son arm?e etc...

Ce que je ne sais pas faire, c'est pr?ciser dans le script la date d'apparition du h?ros...

Je suppose que cela a un lien quelconque avec la fonction GetDate, mais j'ignore totalement comment la param?trer.

Quelqu'un pourrait-il m'aider ?
Zanandhar
Novice
Novice
 
Messages: 3
Enregistré le: Jeu 14 Sep 2006, 14:12

Messagepar Snerven » Mer 11 Oct 2006, 22:04

Dans ton cas, il faut associer GetDate et NEW_DAY_TRIGGER.

Par exemple, mettons que tu veuilles que cet ?v?nement se d?clenche le 1er jour du 2?me mois (donc, le 29?me jour de jeu) :

function evenementtemporel()
IF GetDate(DAY) == 29 THEN
DeployReserveHero("nom_du_script_du_H?ros", x, y, niveau);
end;
end;

Trigger(NEW_DAY_TRIGGER,"evenementtemporel");

Avec GetDate, on peut utiliser DAY (calcule le nombre de jours ?coul?s en tout depuis le d?but), WEEK (calcule le nombre de semaines), MONTH (calcule le nombre de mois) et DAY_OF_WEEK (le nombre de jours dans la semaine en cours).

NEW_DAY_TRIGGER lance la fonction "evenementtemporel" tous les jours. C'est ce qui te permet ainsi de mettre au point l'ensemble de tes ?v?nements temporels.

Par contre, j'ai entendu dire que les scripts sont bloqu?s d?s que l'on joue en multijoueur. Peut-?tre pas en Hotseat ?
Avatar de l’utilisateur
Snerven
Novice
Novice
 
Messages: 19
Enregistré le: Ven 23 Déc 2005, 20:12

Messagepar Snerven » Mer 11 Oct 2006, 22:17

Je rajoute, pour ton 1er probl?me : il faut effectivement attribuer un nom ? l'objet que tu veux faire dispara?tre. Pour ?a, pas de probl?me :

1) s?lectionne l'objet que tu veux faire dispara?tre.
2) clique sur "Edit/Object Properties Tree"
3) ? c?t? de "Name", tape le nom (par exemple : buisson1,...).
4)Ta commande de script sera alors : RemoveObject("buisson1");

... c'est quand m?me plus facile quand on a des exemples, hein ? :icon_wink:
Avatar de l’utilisateur
Snerven
Novice
Novice
 
Messages: 19
Enregistré le: Ven 23 Déc 2005, 20:12

Messagepar Zanandhar » Jeu 12 Oct 2006, 00:21

Merci beaucoup pour cette r?ponse snerven

Apr?s avoir post? le message et avant ta r?ponse, j'ai bidouill? et parcouru les forums ricains et je suis arriv? ? ?a:

function event()
if GetDate(DAY) == 28 then
OpenCircleFog(145,88,1,5,PLAYER_3);
DeployReserveHero("Deirdre",145,88,1);
Trigger (NEW_DAY_TRIGGER,"event");

Le Player_3 devrait normalement ?tre jou? par l'IA, mais j'en ai pris le contr?le pour v?rifier que le script fonctionnait en mettant le d?clenchement au 2?me jour (pas fou...).

Le seul probl?me est que ?a ne donne rien. M?me le OpenCircleFog ne se d?clenche pas, ce qui semble prouver que c'est bien au niveau du d?clenchement du script que quelquechose ne marche pas...

Peut-?tre que l'absence de "end;" y est pour quelquechose...

Je vais tester ton script, et je te redis ce que ?a donne...

PS: sinon j'ai toujours test? en hotseat multi, peut-?tre le probl?me vient-il de l?...

Zan.
Zanandhar
Novice
Novice
 
Messages: 3
Enregistré le: Jeu 14 Sep 2006, 14:12

Messagepar Snerven » Jeu 12 Oct 2006, 09:52

Oui, je te conseille de r?aliser tes tests en version solo, sur des cartes bidons, pour commencer. J'ai un gros doute pour le multi.

Pour ce qui est du d?clenchement des scripts, il ne faut pas une seule erreur, sinon l'ensemble des scripts est ignor?.

Donc, en simplifiant : pour chaque fonction, il faut finir par END; et ? chaque IF que tu mets, tu en rajoutes un (comme dans mon exemple, plus haut, o? j'ai plac? 2 END; ? la fin).

Enfin, le Trigger (NEW_DAY_TRIGGER,"event"); se trouve ? l'ext?rieur de la fonction. Il est ? part. C'est tout simplement lui qui appelle, chaque jour, la fonction "event" et lance son ex?cution. C'est le r?le des "Trigger" (= "D?clencher").

Dans l'exemple que tu as donn?, on arriverait donc ? :

function event()
if GetDate(DAY) == 28 then
OpenCircleFog(145,88,1,5,PLAYER_3);
DeployReserveHero("Deirdre",145,88,1);
end;
end;

Trigger (NEW_DAY_TRIGGER,"event");
Avatar de l’utilisateur
Snerven
Novice
Novice
 
Messages: 19
Enregistré le: Ven 23 Déc 2005, 20:12

Messagepar Zanandhar » Jeu 12 Oct 2006, 14:36

En effet, tout marche comme pr?vu en mettant les 2 "end;" , mais uniquement en solo...

Autre chose: le nom de script pour Deirdre est "Nemor", voil? encore un truc super logique...

Je suis super d??u. Il n'y a donc aucune possibilit? de d?clencher des events en mode multi, donc pas de carte coop possible, m?me avec un seul et unique script simple...

En ce sens, cet ?diteur est bien moins int?ressant que celui d'heroes 4 (et beaucoup moins pratique en ce qui concerne les events).

Je vais r?fl?chir ? un moyen de maintenir cette carte en coop sans recourir ? des vagues de morts-vivants, mais la carte va y perdre son int?ret principal... Dommage.

Est-ce que quelqu'un sait si cet ?tat de fait est appel? ? changer ou s'il sera ? jamais impossible de scripter en multi ?

Zan
Zanandhar
Novice
Novice
 
Messages: 3
Enregistré le: Jeu 14 Sep 2006, 14:12

Messagepar Stilteg (Veyrannysss) » Jeu 12 Oct 2006, 15:42

a mon avis, c'est temporaire, cet editeur n'etant pas non plus l'editeur final qui devrait etre diffuse si je me souviens bien avec l'add-on ... De toutes facons, l'editeur cmme le jeu est ? mon avis appel? ? ?voluer.

Par contre, je me demande s'il n'existe pas une fonction pour activer les scripts en multi, mais n'ayant pas encore touche ? l'?diteur, je ne veux rien promettre, c'est juste une suggestions pour aider les recherches !
Ich yara at-ahdab-hadbat-u
Bashar Miles Teg
Membre du FLAC et même pas le droit d'être un Fléau du Forum Libre
Image
Avatar de l’utilisateur
Stilteg (Veyrannysss)
Maître
Maître
 
Messages: 542
Enregistré le: Lun 24 Avr 2006, 22:44
Localisation: Un non-vaisseau, là-bas au milieu des Dunes d'Arrakis


Retourner vers Editeur



Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité