Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Faire jouer un son puis le détruire
Faire jouer un son puis le détruire
Par mobidique le 23/7/2002 Ã 12:55:30 (#1847099)
Voici ce que j'ai l'intention de faire pour gérer cela ... Mes garous sont sur un seul tile de caverne, la sortie de ce tile se fait par un seul des cotés du tile. Sur ce coté je mets je met un trigger qui entraine sur OnEnter la destruction de l'objet son ... Les garous ne bougeront que s'il y a proximité de joueurs, ce qui entrainera inévitablement une baston et l'éradication des bestioles ...
Pensez vous que celà va marcher ? Un son peut il être détruit ? Sa destruction entraine t-elle bien l'arrêt du son (on sait jamais hein ...) ? Plus embétant surement ... Un garou passant sur mon trigger déclanchera t-il l'action sur le OnEnter ... j'ai pas l'impression ... Je peux pas mettre de trigger à déclancher par le joueur parce que l'évenement c'est bien la destruction des garous pas le passage du joueur à un endroit donné. Le joueur pourrait déclancher le trigger sans être attaqué ou bien sans attaquer les bestioles ... Par ailleurs du fait de l'existence de monstres errant, une bataille à proximité du tile à garous pourrait entrainer le déplacement des garous sur le lieu de la baston sans que le joueur soit passé sur le trigger ...
Une suggestion ?
Mob'.
Par souana le 23/7/2002 Ã 14:16:40 (#1847590)
avec une variable qui vérifie que ce soit le dernier loup tué.
Par Azrael07 le 23/7/2002 Ã 14:23:33 (#1847632)
On va appeller le TAG de ton son TAG_SON et on considère qu'il y a 5 loups (t'a juste a changer les valeurs pour en mettre + ou -.
tu va donc aller dans le script SPAWN et y inserer une définition de variable du type
SetLocalInt(OBJECT_SELF,"iCreatureLeft", 5);
puis tu va dans le script OnDeath de chaques loups et tu ajoute avant la fct main
int iCreatLeft = GetLocalInt(GetObjectByTag("TAG_SON"),"iCreatureLeft);
dans la fct main tu ajoute
iCreatLeft --;
if (!iCreatLeft)
SoundObjectStop(GetObjectByTag("TAG_SON"))
SetLocalInt(OBJECT_SELF,"iCreatureLeft", iCreatLeft);
Voila c pas testé mais ca devrais marcher après debugging
(je fais tjs des tas de fautes d'inatention sur mes scripts y'a surement des erreurs.
Si ca marche pas, tu peut tjs me mailler j'esserais de t'envoyer qlc de plus finis. VOila c tout bonne chance ;)
Par mobidique le 24/7/2002 Ã 9:39:39 (#1852293)
Mob'.
Par botumys le 24/7/2002 Ã 9:47:22 (#1852311)
Par Azrael07 le 24/7/2002 Ã 11:05:45 (#1852667)
Les gas je veux pas trop m'avencer mais si vous refusez de toucher aux scripts originaux vous irez pas très loin. Ce n'est pas présentez sous forme de reproche mais de réalité (z'avez suivis).
C ni honteux ni dangereux de récupérer les scripts édité par bioware ils sont la pour ca. faites juste un saveas et mettez un autre nom... ;)
Par mobidique le 24/7/2002 Ã 11:10:44 (#1852709)
Mob'.
Par Azrael07 le 24/7/2002 Ã 11:21:44 (#1852780)
effectivement ta solution marche bien dans un cas simple cme celui ci mais si tu commence à faire des projets un peu plus gros, il faut avoir un peu plus de rigeur et de présision dans les script ou ca va vite devenir un bordel total.
Mais on peut dire en effet que pour des petits truc pas trop complexe cme celui là jje me fais chier pour rien...
A chaqun sa vision des choses...
Par mobidique le 24/7/2002 Ã 11:26:04 (#1852812)
Mob'.
Par botumys le 24/7/2002 Ã 11:35:04 (#1852866)
olivier@movida3d.com
Par mobidique le 25/7/2002 Ã 18:35:04 (#1858423)
void main()
{
//object oSound = GetObjectByTag(GetTag(OBJECT_SELF) + "_loop");
SoundObjectStop(GetObjectByTag(GetTag(OBJECT_SELF) + "_loop"));
}
Ensuite vous faites un encounter que l'on appellera .. Bernard par exemple c'est bien comme nom pour un encounter de loup garou, Bernard ... Et puis vous faite un son de loup-garou que vous allez appeller Bernard_loop. Pour finir et c'est là qu'est toute la beauté de la chose vous collez vot' script d'une ligne là haut sur l'événement ... j'vous l'donne en mille ... l'événement OnExhauted de l'encounter ... :D ... elle est pas belle la vie ? A noter que j'ai pensé un moment que pour que l'événement OnExhausted soit réalisé il fallait que l'encounter présente une caractéristique de respawn .. ben pas du tout.
(Au cas où il y aurait méprise Azrael07, je nargue pas, c'est juste que je suis content d'avoir trouvé ce coup là ... non mais on sait jamais on dit des trucs et pis aprés y en a qui te font jeu troll alors me méfie moué ... ;))
Botumys je t'ai envoyé un MP ...
Mob'.
Par Azrael07 le 26/7/2002 Ã 10:55:39 (#1861651)
Si j'avais voulut j'aurais pu trouver un truc mille fois mieu en deux secondes :enerve: , me je ne veux vous dévoiler l'empleur de mon genie que petit à petit...
Bon j'arrete la pour la mauvaise foi. Sinserement c bien trouvé cme truc. En fait, j'utilise pas trop les encouter, je trouve que les monstres ont tandance à apparaitre au dernier moment...
Mais moi j'suis cme ca il faut tjrs que je trouve des truc super compliqué pour des trucs super simple...
La je m'incline, le truc de mobidique, c vraiment BEACOUP mieux que mon truc a moi...
Par Gargantuel le 26/7/2002 Ã 11:38:46 (#1861872)
OnExhauted
J'adore ce forum, j'apprends des trucs tout le temps :)j'utilise pas trop les encouter, je trouve que les monstres ont tandance à apparaitre au dernier moment
Tu sais que tu peux déplacer la zone de spawn de l'encounter ?
Comme ca tu décales l'apparition des monstres avant que les joueurs arrivent.
(Tu selectionnes ton encounter et tu cliques avec le bouton droit sur le lieu où tu veux que les monstres apparaissent et tu choisis "set a spawn location" ou un truc du genre)
Par mobidique le 26/7/2002 Ã 14:03:14 (#1862746)
Provient du message de Azrael07
Peu !!! :enerve: J'suis sur que t'a passé la nuit sur ton PC pour trouver se truc minable... Et en plus t'est fier...
Si j'avais voulut j'aurais pu trouver un truc mille fois mieu en deux secondes :enerve: , me je ne veux vous dévoiler l'empleur de mon genie que petit à petit...
MOUHAHAHAHAHAHAHA ! ;)
Pour les encounter au dernier moment, pareil que Garg, je met mon trigger d'encounter bien avant le point de spawn, quand les joueurs arrivent les bestioles sont déjà là depuis longtemps ...
Autre avantage des encounters, comme écrit dans mon autre post sur le fait de faire bouger une bestioles spawnée par encounter, c'est que ces bestioles par défaut ont une animation mobile, un randomwalk avec des animations. Un mélange d'encounter et de bestioles mise à la main me semble bien.
Mob'.
Par Azrael07 le 26/7/2002 Ã 14:23:51 (#1862919)
Au pire si je trouve toujors ca trop minable je vais reprogrammé un peu le code source :enerve: :enerve: :enerve: -lol-;)
JOL Archives 1.0.1
@ JOL / JeuxOnLine