[résolu] Catastrophe naturelle

Répondre
Partager Rechercher
Bonjour,

Et bien voilà, dans mon module à un moment j'aimerai qu'il se passe un tremblement de terre. C'est sûrement simple mais je n'y arrive pas.

Sans aucune honte j'ai essayé quelque chose et j'ai pondu ceci

Code PHP:

void main()
{
int nSpell = (SPELL_EARTHQUAKE);
object oWP GetWaypointByTag ("quake");
location lWP GetLocation (oWP);
ActionCastSpellAtLocation(nSpelllWP);

Et comme je l'imaginais, cela n'a pas fonctionné. J'ai essayé quelques autres trucs mais ca m'avait l'air plus farfelu alors je vous mets simplement mon premier script (en fait les autres je ne les ai pas enregistrer donc je peux pas les montrer )

Sinon il y a un p'tit moment j'avais demandé des idées pour une meilleure ambiance dans mon module (les PNJ qui parlent entre eux, un gamin qui cours, etc...) mais je n'avais pas eu forlement de succés avec ma question.
Mais il y a 10 minutes environ, j'ai lu ceci sur le forum Maskado et j'ai vu ceci
Citation :
Publié par Nek
Daynos, l'IA HotU possède pas mal de variables hardcoded que tu peux assigner à tes PNJ afin qu'ils aient un comportement simulant une occupation (comme se déplacer aléatoirement, effectuer des animations, discuter entre eux, interagir avec les plaçables, les portes, etc...), le tout configurable en quelques switchs appliqués dans le nw_c2_default9
Et j'ai regardé en vitesse mais je n'arrive pas comprendre comment ca fonctionne ces "trucs" préfabriqué qui peuvent nous aider.

Car l'histoire de mon module est assez banale mais c'est juste pour comprendre un peu les principes et j'aimerai rendre ma ville un peu "vivante".
En fait les gens qui parlent je peux faire un truc avec un son et les gens qui font toujours la même animation. Mais le petit bambin qui cours, j'avais eu des explications mais je n'avais rien compris ICI. Mais je ne comprend rien en fait, car on me dit tout le temps "Va fouiller dans les ressources internes du jeu", oui mais j'y comprend rien... Et si je commence à toucher, si je touche à un mauvais truc ca va tout faire planter car je sais pas à quoi ca sert. Enfin pour moi quand c'est pas une utilisation banale des commandes qu'il y a dans le Lexicon, j'y comprend plus rien. Quand c'est juste une longue chaîne de code j'y comprend mais c'est long... Et apparement je suis assez mal vu de pas comprendre ce truc pour faire courir le gosse... Car le pauvre, a chaque fois que je teste le module, il court pas... Alors je le zap ^^
Néanmoins je sais qu'il faut utiliser la commande
Code PHP:

WalkWayPoints(int nRun FALSEfloat fPause 1.0
Mais je ne sais pas comment. Car c'est un truc que j'ai pris à un endroit d'un script que je me souviens même plus ou je l'ai pris mais je comprend pas comment l'utiliser même si ca doit être simple pour vous.

Bon voilà j'ai fini de parler, j'espére ne pas trop vous avoir embêter avec ma même cerenade depuis toujours!

A bientôt (j'espére pas pour vous)

MiyuSephyroth

PS : Y'en à qui sont à SupInfoGame ici ? Car c'est bientôt mon concours et j'aimerai avoir quelques infos, tuyaux, enfin tout ce qui peut être utile

MeRcI
Salut !

Pour le tremblement de terre, c'est un effet visuel qu'il faut adjoindre au script de préférence sur les créature dans la zone ou dans une zone d'effet.

Code HTML:
effect eShake = EffectVisualEffect(356);
Pour ce qui est de la vie des Pnjs dans le module, fais une recherche, je crois que dans les scripts résolus il y a ce que tu cherches car maintes fois demandé.
Ok je vous remercie ^^
Je vais chercher un peu mais si quelqu'un à le temps pour m'expliquer comment faire courir ce gosse, je lui en serai reconnaissant.

Merci encore
Mimi

ps : dsl pour le doublon du sujet mais mon pc à buggué tout à l'heure
Bon... Encore une fois, tu ne tiens pas compte de ce qu'on t'a déjà dit. Ca t'aurait évité de te planter dans ton script. Mais apparemment, tu ne dois pas me lire.

On a déjà parlé de l'empilement d'actions, il me semble, ou alors on perd notre temps à écrire ici pour des nèfles ?

Si tu avais cherché à empiler ton ActionCastSpellAtLocation autrement qu'au petit bonheur la chance et qu'au pif, tu te serais déjà posé la question de savoir qui va incanter, et ensuite, si l'objet en question avait le sort. Tu serais finalement arrivé à la conclusion logique que ça ne pouvait pas marcher puisqu'il n'y a aucun personnage capable d'incanter ce sort dans ton script.

Reste la piste de l'effet visuel seul qui ne fera rien d'autre que de jolies images, nous sommes d'accord. Sinon, il faut introduire un personnage quelconque, éventuellement invisible qui pourra être le sujet d'un
Code PHP:

        // The action subject will fake casting a spell at oTarget; the conjure and cast
        // animations and visuals will occur, nothing else.
        // - nSpell
        // - oTarget
        // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
        
void ActionCastFakeSpellAtObject(int nSpellobject oTargetint nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT
ou d'un

Code PHP:

        // The action subject will fake casting a spell at lLocation; the conjure and
        // cast animations and visuals will occur, nothing else.
        // - nSpell
        // - lTarget
        // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
        
void ActionCastFakeSpellAtLocation(int nSpelllocation lTargetint nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT
Mais c'est moyen, parce que là aussi, ça ne fera que des effets visuels.


Sinon, dernière solution et sans doute la plus efficace, simuler le tremblement de terre par l'effet visuel et des effets "physiques" sensibles appliqués à tous les "objets" de la zone touchée.
Ca veut dire créer une boucle qui va chercher tous les objets présents dans la zone d'effet souhaitée (toute la zone ou une partie)
Si tu veux une seule partie, il te faudra chercher dans une forme géométrique définie grâce à:

Code PHP:

   // Get the first object in nShape
   // - nShape: SHAPE_*
   // - fSize:
   //   -> If nShape == SHAPE_SPHERE, this is the radius of the sphere
   //   -> If nShape == SHAPE_SPELLCYLINDER, this is the length of the cylinder
   //      Spell Cylinder's always have a radius of 1.5m.
   //   -> If nShape == SHAPE_CONE, this is the widest radius of the cone
   //   -> If nShape == SHAPE_SPELLCONE, this is the length of the cone in the
   //      direction of lTarget. Spell cones are always 60 degrees with the origin
   //      at OBJECT_SELF.
   //   -> If nShape == SHAPE_CUBE, this is half the length of one of the sides of
   //      the cube
   // - lTarget: This is the centre of the effect, usually GetSpellTargetPosition(),
   //   or the end of a cylinder or cone.
   // - bLineOfSight: This controls whether to do a line-of-sight check on the
   //   object returned. Line of sight check is done from origin to target object
   //   at a height 1m above the ground
   //   (This can be used to ensure that spell effects do not go through walls.)
   // - nObjectFilter: This allows you to filter out undesired object types, using
   //   bitwise "or".
   //   For example, to return only creatures and doors, the value for this
   //   parameter would be OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR
   // - vOrigin: This is only used for cylinders and cones, and specifies the
   //   origin of the effect(normally the spell-caster's position).
   // Return value on error: OBJECT_INVALID
   
object GetFirstObjectInShape(int nShapefloat fSizelocation lTargetint bLineOfSight=FALSEint nObjectFilter=OBJECT_TYPE_CREATUREvector vOrigin=[0.0,0.0,0.0]) 
Si tu ne lis pas ce que j'écris, dis le moi. Ca m'évitera de perdre mon temps pour rien.
DAoC - Albion
Citation :
Publié par Azmathiel
Bon... Encore une fois, tu ne tiens pas compte de ce qu'on t'a déjà dit. Ca t'aurait évité de te planter dans ton script. Mais apparemment, tu ne dois pas me lire.
Si tu ne lis pas ce que j'écris, dis le moi. Ca m'évitera de perdre mon temps pour rien.
Ce que vous dites tous, je l'utilise mais quand je bloque je n'y pense pas obligatoirement.
Personellement je suis en train de fouiller pour trouver l'effet de renversement (je ne sais pas si ca existe). Mais je fouille.

Merci en tout cas à tous, le sujet est clos.

ps : Azmathiel ton travail n'est pas vain... Au contraire. Mais au contraire des autres tu expliques de façon trés théorique et c'est parfois un peu dur par rapport aux autres. Sinju khai Nobutsu a compris ce que je voulais et m'a juste dis qu'il fallait mettre un effet. Et hop j'avais reussi une partie de ce que je voulais. Mais Mr. Azmathiel, je pense que vous aidez pas mal de monde ici qui pose des questions comme les miennes.
Citation :
Publié par MiyuMachinBidule
Personellement je suis en train de fouiller pour trouver l'effet de renversement (je ne sais pas si ca existe). Mais je fouille.
Normalement, il s'agit de "EffectKnockdown()". ^^
Le matin porte conseil je pense, en fait, si je comprend bien le pb. Ce n'est pas un effect VFX_... donc en fait quand je fais ApplyEffectToObject ca ne fonctionne pas.

Quelqu'un aurait la fonction pour faire cela (appliquer l'effect de renversement à un joueur).
Merci
Ici j'applique l'effet de renversement à une cible, pendant 10 secondes. Il faut savoir que "EffectKnockdown()" ne fonctionne pas avec "DURATION_TYPE_INSTANT", ni avec "DURATION_TYPE_PERMANENT".

ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(),oTarget,10.0);
Ah mais si si, un effet temporaire avec le paramètre DURATION_TYPE_INSTANT c'est marrant à voir

Un peu moins marrant à subir, mais bon...
Répondre

Connectés sur ce fil

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