Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Les mondes persistants et leurs pieges...

Par eMRaistlin le 2/11/2002 à 3:20:33 (#2460002)

Dites, j'ai un ch'tit pb : je souhaiterai créer un piege (enfin plusieurs sur le même modele ^^) sur mon monde persistant.

En ce qui concerne le piege en lui-même, pas de pb : j'ai crée une copy d'un trap, je lui ai affecté un script qui fait ce que je voulais (en l'occurence : un dispelmagic sur le piégé) et je lui ai affecté des degats mineurs (c'est un peu nul de pas pouvoir avoir un vrai piège avec juste un script, sans les degats en eux memes...)

Si j'ai utilisé un piege, plutot qu'un trigger, c'est parce que je veut que le piege soit repérable, et desarmable, comme pour n'importe quel piege. (a la limite, c'est pas le D6 de degat qui me gêne...).

Par contre, j'ai un GROS probleme : vu que mon monde est persistant, j'aimerai assez que lorsque l'area est vide de monde, les pieges se reinitialisent... Or, un piege qui à été désarmé par un joueur, ou pire, récupéré par une voleur, n'est plus présent par la suite. Comme ce n'est pas un objet, mais un trigger a dessiner, je ne vois absolument pas quoi faire.

Je suis preneur de toute suggestion...

Par Jaha Effect le 2/11/2002 à 3:27:27 (#2460021)

Heu... pourquoi tu fais pas un trigger qui va crée ton piege au moment ou quelqu'un passe dessus.
Tu le place au début de ta zone comme ca la personne qui entre dedans cree le piege quand il rentre dans la zone qui sera désamorcé ou declanché plus loin.

Par eMRaistlin le 2/11/2002 à 3:46:25 (#2460059)

moi, je veux bien, mais ca revient au meme que de faire un script sur le OnEnter... le pb, c'est plutot : comment tu cree une "trap" par script ?

Par Jaha Effect le 2/11/2002 à 5:52:14 (#2460265)

Je te donne le principe car je suis un peu nul en scripte.

- tu défini ton piège et tu l'ajoute a la palette puis tu l'enleve de la zone
- tu met un placeable invisible à la loc ou va se trouver ton piège (c'est ce qui va te servir a definir la location de ton piege et son orientation)
- et dans le on enter tu met ça (avec la loc que tu aura recup de l'objet invisible)

opiege = CreateObject(OBJECT_TYPE_TRIGGER,"ton_piege",locLoc,TRUE);


C'est très théorique mais je peux pas faire plus.
En faite l'idée n'est qu'une extrapolation du principe des trappes cachées du site officiel, c'est a dire utiliser un objet invisible pour nous permettre de placer autre chose
hidden door

J'espere que ça va t'aider

Jaha Effect :D

Par eMRaistlin le 2/11/2002 à 10:28:02 (#2460611)

J'insiste, la fonction CreateObject ne permet pas la creation de trigger :


Objet valides avec CreateObject :

- OBJECT_TYPE_ITEM
- OBJECT_TYPE_CREATURE
- OBJECT_TYPE_PLACEABLE
- OBJECT_TYPE_STORE

Re: Les mondes persistants et leurs pieges...

Par Jaha Effect le 2/11/2002 à 18:00:40 (#2463381)

Provient du message de eMRaistlin
Par contre, j'ai un GROS probleme : vu que mon monde est persistant, j'aimerai assez que lorsque l'area est vide de monde, les pieges se reinitialisent... Or, un piege qui à été désarmé par un joueur, ou pire, récupéré par une voleur, n'est plus présent par la suite. Comme ce n'est pas un objet, mais un trigger a dessiner, je ne vois absolument pas quoi faire.


Et pourquoi tu reinitialise pas plutot toute la zone plutot que juste les triggers. Je suppose qu'en rechargeant la zone d'origine directement, le problème ne se pose plus ?


Jaha Effect :D

PS: autant pour moi pour le CreateObject

Par Jedaï le 2/11/2002 à 19:34:03 (#2464081)


Et pourquoi tu reinitialise pas plutot toute la zone plutot que juste les triggers. Je suppose qu'en rechargeant la zone d'origine directement, le problème ne se pose plus ?


Là, va falloir m'expliquer comment tu fait... Quelle fonction utilises-tu donc pour réinitialiser une zone ? Je vois absolument pas.
A part une horde d'area identiques mais dont le tag change légèrement, je ne vois aucun moyen de faire ça...et ça risque d'être un peu lourd.:rolleyes:

Par Jedaï le 2/11/2002 à 19:54:26 (#2464224)

Sinon je vois bien une solution, mais elle est sacrément tirée par les cheveux...
Tu fais ton "piège" à partir d'un trigger normal, ce qui t'évitera d'ailleurs de mettre des dommages inutiles. :)
Le problème là c'est que ton "piège" ne sera pas détectable, il te faudra simuler cette détection avec un Trigger plus grand qui déclenchera les tests de détection sur son OnEnter et s'il sont réussis créera un effet visuel bien choisi au bon endroit (avec un dialogue du genre : "ce piège a un aspect particulier, voulez vous le désamorcez") . :rasta:
C'est pas l'idéal mais en scriptant bien tu dois pouvoir standardiser ça et généraliser à tous tes pièges (Après tout tu as les mêmes problèmes avec tes autres pièges). :cool:

Par eMRaistlin le 18/11/2002 à 15:44:40 (#2586964)

Pas bete. Je m'y met... Et pour la peine, je vous mettrait le script des triggers une fois effectués... Nan mais !

Par Nylou le 18/11/2002 à 17:19:57 (#2587656)

Provient du message de eMRaistlin
Pas bete. Je m'y met... Et pour la peine, je vous mettrait le script des triggers une fois effectués... Nan mais !


Notes avant que tu avances trop sur cette voie, ta version de piège existant ne disparait pas lorsqu'on les desamorce avec succes.
Je te l'avais deja dit mais on sait jamais.

Par eMRaistlin le 18/11/2002 à 17:28:06 (#2587721)

Notes avant que tu avances trop sur cette voie, ta version de piège existant ne disparait pas lorsqu'on les desamorce avec succes.
Je te l'avais deja dit mais on sait jamais.


Je sais bien, mais le pb, c'est que l'on ne peut pas recreer artificiellement les pieges, sauf en rebootant le module. Je vais donc plutot essayer de faire une affectation de localInt si le Disarm fonctionne, ce qui permettra de la mettre a blanc lorsqu'il n'y a plus personne, mais qui permettra aussi de laisser un piege desamorcé inactif tant que les joueurs ne quittent pas l'area.

Les pièges et la 1.26

Par Nylou le 18/11/2002 à 17:32:14 (#2587759)

Tant que l'on parle des pièges.

Je ne peux plus flaguer les pièges depuis la 1.26.
Rappel : lorsque le flag est réussi on le voit vert et non pas rouge.
Je crois que c'est pour marcher dessus sans le déclencher ainsi que son equipe si on a pas réussi à le désamorcer.

Est ce normal Docteur ?

Par Azrael07 le 18/11/2002 à 17:36:22 (#2587792)

bon comme a mon abitude j'ai pas lut le post en entier, mais bon pour moi la solution la plus simple est de reprogrammer le piège. Pas compliqué t'as deja le script du piège de base dans un fichier, t'as juste a faire un nouveau trigger qui fait le meme effet, avec une LocalInt(OBJECT_SELF, "Enable", TRUE/FALSE);

il me semble que tu te debrouille en script, yapa de raison ke ca marche po, par conter se sera peut etre un peu long a cause de ca :

Si j'ai utilisé un piege, plutot qu'un trigger, c'est parce que je veut que le piege soit repérable, et desarmable, comme pour n'importe quel piege. (a la limite, c'est pas le D6 de degat qui me gêne...).


ca il faudra le prog ossi

voila ct ma solution au cas ou rien d'autre ne marche, mais bon y'a peut etre plus simple......

Par eMRaistlin le 18/11/2002 à 17:36:23 (#2587793)

Est ce normal Docteur ?


Euh... ca depend... ca vous chatouille, ou ca vous gratouille ?


Personnelement, je n'en ai aucune idée... mais je vais voir ce que je peut faire pour mes triggers/pieges custom. (si on peut faire un GetIsFlaguedByAVoleur(^^)....

JOL Archives 1.0.1
@ JOL / JeuxOnLine