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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

un bébé brailleur

Par fauxninja le 24/12/2002 à 15:20:30 (#2870257)

comment faire pour qu'un item (bébé) fasse du bruit?
quand on le prend par exemple, il faudrai qu'il fasse du boukan tout le temps, juska ce qu'on le pose.
c'est possible?

Par coolstar le 24/12/2002 à 17:08:00 (#2871147)

Voici une idée... ;)



/* Script 'bebe_braille' - By coolstar -
Script declanchant un "braillement" en la 'Possession' d'un Item "specifique" ;
A n'appliquer que sur les Items non Equipables (le OnAquireItem ne gerant pas les 'SLOT')...
- A mettre dans le OnAquireItem du Module : */

void main()
{
object oPC = GetModuleItemAcquiredFrom();
object oPossessedBy = GetItemPossessedBy(oPC, "bebe_braille");

// S'exécute aussi longtemps que l'Objet est 'Détenu'
if (GetIsObjectValid(oPossessedBy))
{
AssignCommand(oPC, PlaySound("c_demon_dead"));

DelayCommand(6.0, ExecuteScript("bebe_braille", oPC)); // Renvoie à 'lui-même' (Mise en Boucle)
}
}






EDIT
---------------------
Petit rajout du 'Titre' du Script (pour que les choses soient plus claires!)
---------------------

Par Jedaï le 24/12/2002 à 19:14:50 (#2872246)

Ouais mais faut aussi arrêter le braillement quand on repose le bébé, sinon les oreilles...:mdr:

Solution en deux scripts (Coolstar, t'as oublié ton script "bébé braille") :


//OnAcquireItem :

void bebeBraille(object oPJ);

void main()
{
object oPC = GetModuleItemAcquiredFrom();
object oAcquired = GetModuleItemAcquired();

if (GetIsPC(oPC) &&
GetTag(oAcquired) == "LeTagDuBebeBraillard")
{
SetLocalInt(oPC, "bBraille", TRUE);
bebeBraille(oPC);
}
}


void bebeBraille(object oPJ)
{
if (GetLocalInt(oPJ, "bBraille"))
{
AssignCommand(oPJ, PlaySound("c_demon_dead"));
DelayCommand(6.0, bebeBraille(oPJ));
}
}



//OnUnAcquireItem :

void main()
{
object oPC = GetModuleItemLostBy();
object oLost = GetModuleItemLost();

if (GetIsPC(oPC) &&
GetTag(oLost) == "LeTagDuBebeBraillard")
{
DeleteLocalInt(oPC, "bBraille");
}

}

Par Théranthil le 24/12/2002 à 19:25:54 (#2872357)

J'aime quand même bien le son c_deon_dead pour un bébé qui braille. Il doit avoir du coffre. ;)

Par coolstar le 25/12/2002 à 13:29:46 (#2875726)

Tu aimes bien que les choses soient tordues et compliquées mon petit Jedaï... :D

;)

Par coolstar le 25/12/2002 à 15:05:51 (#2876112)

Heeuuu... A ce propos, pour précision... J'avais omis de signifier (sot que je suis!! J'ai d'ailleurs fait un EDIT!) que le Script que j'ai présenté est justement ledit "bebe_braille"... :D


De fait, Jedaï...:blabla:

Il devient inutile de procéder comme tu le proposes... 1 Script suffit bien (je suis partisan de l'Economie Réflexive!)... Et,
pas besoin de VARIABLES LOCALES systématiques, très cher Informaticien...
Le Script "bebe_braille" est déclenché par le OnAquireItem et est bien "renvoyé à lui-même" ('Mise en Boucle' par l'ExecuteScript - toutes les 6Sec, à l'instar d'un OnHeartBeat!)... et, étant soumis à la 'Condition' GetItemPossessedBy, la 'Mise en Boucle' cesse nécessairement de donner l'Ordre PlaySound d'"Emettre le Braillement" dès lors que la 'Condition' n'est plus Vraie/Valide... Donc... (Faut dire que je teste tout ce que je propose, même si je ne suis pas à l'abri!) :p

...



:merci:

Par Jedaï le 25/12/2002 à 21:58:49 (#2878220)

Effectivement, c'est une très bonne idée, mais sur un gros module, les hurlements du bébé s'interrompront dès qu'un autre joueur ramassera ou achètera quelque chose : GetModuleItemAcquiredFrom() changera de valeur...:D

De plus un joueur particulièrement stoïque (ou masochiste :doute: ) ou ayant débranché le son risque de déclencher plusieurs fois de suite le script bebe_braille, d'enclencher ainsi des répétitions décalées dans le temps et de surcharger le CPU.:(

Aussi ce script, dont l'idée de base est très astucieuse (j'avais pas du tout compris pourquoi tu utilisais GetItemPossessedBy() ;) , très intéressant) est-il plus dangereux que ma proposition.:cool:

Bon,bon, j'avoue que j'adore les variables locales :D

Par ailleurs, les deux scripts que je propose sont de toute façon à intégrer dans un dispositif plus vaste vu leur emplacement : les events OnAcquire et OnUnAcquire sont presque toujours occupés dès que le module prend un peu d'ampleur. Donc ces scripts ne seront pas vraiment à ajouter au module, mais bien plutôt à intégrer.:cool:

Par fauxninja le 26/12/2002 à 10:50:51 (#2880507)

et donc le script pour que ca saret pas de brailler c?

PS: ca marche, mais quand on marche avec le bébé ca marche plus.

JOL Archives 1.0.1
@ JOL / JeuxOnLine