une zone qui change

Répondre
Partager Rechercher
Salut après un très long moment d'absence je reviens en coupe vent poser une question
j'ai creer une zone, ou plutôt deux zones identique mais avec quelques nuances chacunes. Je voudrais qu'en fonction de l'heure de la journée, les joueurs changent de zones. En fait c'est en fonction des heures de marée pour être exacte. J'ai fait une zone à marée haute et une autre à marée basse. Quel genre de script me permettrait qu'à par exemple 8 h du mat, tout les joueurs soient télétransporté dans ma zone marée haute, tant qu'à faire au même endroit qu'ils étaient lors de la marée basse.

J'avais imaginé ne déclencher le script qu'au moment de changement de zones (trigger de zone de transition et portes).

Des suggestions d'idées ? ou de fonctions ? ou même de scripts sont les bienvenues .

Merci .
Bah tu auras besoin de GetPosition, qui donne le vecteur d'une créature (sa position), un GetFacing pour donner son orientation, puis tu fais un JumpToLocation, en créant ta location a la main avec la fonction Location, en donnant le vecteur et le facing que t'as trouvé plus haut, et la nouvelle zone que tu veux. Par contre, j'espère pour toi qu'il n'y a pas trop d'évenements, monstres et autres objets dans ta zone, ca risque d'être difficile a gérer.... (ou bien tu te met dans l'idée de déplacer tout les objets de la zone, ca risque d'être un peu lourd mais pourquoi pas)
Vous allez rire... Il y a une fonction qui fait ça et qui modifie directement les tiles du terrain... Vivi, on peut faire ça. J'ai trouvé ça avant hier sans faire exprès sur le Lexicon, je ne sais pas si vous connaissiez, mais moi pas, et je trouve ça assez remarquable.

An Introduction To Tile Magic - Lexicon

Cool, hein ? Ca marcherait dans ton cas ?
Merci à tous pour vos suggestions

En fait je crois que je vais simplifier un peu mon idée. Les passages en plus qui existent dan ma zone marée basse sont accessible par des endroits limités. Je me dis donc qu'un simple trigger situé sur ces endroits en marée haute pourrais faire passer le joueur sur la zone marée basse.

Ce qui me manque en fait principalement c'est pas les fonctions pour télétransporter un joueur que je connais, mais celles qu'il faudrait pour que cela se passe à une heure précise, ou une intervalle d'heure précise.
En fait ce qui me tracasse le plus c'est la gestion des heures de marée lol.
Des idées ?

(Je vas regarder tout de même le tutorial d'Ange Musicien, toujours à la pointe des dernières nouveautés )

Merci en tout cas pour votre aide
Citation :
Provient du message de Gorion Galvaléri
Là, tu n'as pas le chois : utilises le OnHeartBeat.
Là, je n'en suis pas aussi sur que toi. Ce qu'il y a à faire c'est toutes les six heures (in game), pas toutes les six secondes.

A mon avis, il faut initialiser le systême quand quelqu'un entre dans la zone alors que personne est dedans: selon l'heure du module, on apelle une fonction qui met en marée haute ou en marée basse.

Puis on calcule dans combien de temps devrait être la prochaine marée (en secondes réelles grace à HoursToSeconds) et on utilise un DelayCommand pour appeler le prochain changement.

Quand le dernier joueur quitte la zone, on arrete les changements (via une variable de campagne dont on verifiera la valeur à chaque début de changement).

Qu'en pensez vous?
bah... sans hésitation possible

pour mon module j'ai fait un évenemnt OnHour, régit par une fonction de ce genre :
Code PHP:

void Ev_OnHour()
{
    
ExecuteScript("OnHour");
    
DelayCommand(HourToSeconds(1), Ev_OnHour);

...et sera reloadé au reload du serveur Stou. Ca me paraît parfait. C'est une technique que Bio utilisait déjà dans Baldur'sGate (vivi, je travaille aussi sur bgscipt ) , et c'est le mieux pour fixer des éléments dans le temps.
Citation :
Provient du message de Fanley
A mon avis, il faut initialiser le systême quand quelqu'un entre dans la zone alors que personne est dedans: selon l'heure du module, on apelle une fonction qui met en marée haute ou en marée basse.

Puis on calcule dans combien de temps devrait être la prochaine marée (en secondes réelles grace à HoursToSeconds) et on utilise un DelayCommand pour appeler le prochain changement.

Quand le dernier joueur quitte la zone, on arrete les changements (via une variable de campagne dont on verifiera la valeur à chaque début de changement).

Qu'en pensez vous?
Moi je pencherais pour mettre ce script dans le OnClick d'une zone de transition plutôt que dans le On Enter de la zone.
Parceque là, je crois qu'il faudrait d'abord passé par le chargement d'une certaine zone puis l'autre, non?
Sinon, il faut juste vérifier les PC à l'intérieur de la zone qui sont rentrés avant l'heure pour eux aussi les téléportés à l'heure voulue et je crois qu'il faut utiliser le OnHeartbeat
heu... Boudboulman, la solution donnée vaut dans le cas où on change dynamiquement les tiles, donc où il n'y a qu'une zone.

Et même si on en faisait deux (ce qui à mon avis ne serait pas bon) ça marcherait quand même: l'effet appelé toutes les 6 heures ingame téléporterait tout le monde.

(Enfin, si Damonya prend une peridoicité de 6 heures pour la marée )
C'est pas un peu lourd de mettre des delaycommand aussi long ?

Il n'existe donc pas une fonction qui prend l'heure de la journée?

En tout cas merci pour vos suggestions.

Au fait j'ai regardé "la zone magique" d ange musicien, mais c con je dispose pas encore de HOU dommage.
Citation :
C'est pas un peu lourd de mettre des delaycommand aussi long ?
non

Citation :
Il n'existe donc pas une fonction qui prend l'heure de la journée?
GetHour(), mais il te faut bien un évenement pour l'utiliser, elle a beau exister c'est pas elle qui va déclancher l'execution de ton script
J'espère ne pas faire un trop "hors-sujet" mais bref.

Le tilemagic, est-ce qu'on peut mettre autre chose que de la lave ou de l'eau ? L'idée étant de changer un tile de mur en un tile de couloir (et paf ! super-passage secret ),
En fait, le fameux "Tile Magic" c'est uniquement un effet visuel. N'ayant pas testé, je dirais que tu ne peux pas changer le "walkmesh" des tiles (càd l'endroit ou tu peux poser les pieds). Pas sûr à 100%, mais bon, disons 99.9%

Cela dit, avec moultes bidouilles, c'est pas à exclure. Mais comme dit Térence le prêtre imbu de sagesse : "attention ! si c'est trop lourd ça peut tout faire planter !" (2nd degré )
Citation :
Mais comme dit Térence le prêtre imbu de sagesse : "attention ! si c'est trop lourd ça peut tout faire planter !" (2nd degré )
ptdr !!!!
Mmmh si j'ai bien compris, vous utiliseriez tous le tile magic ?

Vous auriez pas des petites idées si on a pas HOU. Moi je comptais le faire avec 2 zones mais apparemment ca risque d'être compliqué, c con
Re: amen
Citation :
Provient du message de Térence le prêtre
Tu sais comment faire n'est ce pas ?
Justemment non . Mais je devrai pouvoir m'informer (enfin quelques explications claires en français serait pas de trop )
Si je me rappelle bien de la campagne d'HotU, il y a des trucs sympas.
- de la lave qui arrive en pleine ville (fin de la campagne)
- une maison de taille 1x1 qui est détruite et devient une maison cassée 1x1 (en ville, fin de la campagne)
- des maisons qui volent dans les airs (oracle des lieux)
- une cascade qui disparait pour laisser place à un passage (en allant chez les illithids)

Par contre, je sais pas du tout comment ça fonctionne.
Une fois on avait donné sur ce forum le lien vers un sujet des forums BioWare parlant du TileMagic.

[Edit] : Ici pour les nouvelles fonction apparues avec HotU et la 1.62, et pour quelque chose de plus spécifique au Tile Magic.
Répondre

Connectés sur ce fil

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