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

Panneau de contr√īle

Recherche | Retour aux forums

JOL Archives

[Script] Besoin de lumières qui clignotent

Par MTorment le 17/11/2002 à 1:41:21 (#2577908)

Je voudrais faire une zone, o√Ļ, √† la tomb√© de la nuit, 10 lumi√®res qui clignotent de fa√ßon al√©atoire apparaissent √† des endroits diff√©rents.
J'ai commencé le script, mais j'ai encore beaucoup de mal pour les scripts.

Dans le OnHeartBeat de la zone:


void main()
{
if (GetIsNight())
{
int Random = Random(10);
string sRandom = InToString(Random);
while (Random < Random+1) // en fait je voudrais que cela
//soit le même chiffre du premier random
{
location lRandomLoc = GetLocation(GetWaypointByTag("wpap"+sRandom));
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_solred", lRandomLoc);
}
}
}


Je sais que pour le HeartBeat, c'est mauvais pour le CPU, mais je ne vois pas vraiment comment faire autrement, déjà que j'ai du mal en script...

Donc je demande votre aide.
Merci:merci:

Par MTorment le 17/11/2002 à 12:31:49 (#2579247)

J'avais oublié aussi de mettre le DestroyObject aléatoire pour donner l'impression de clignoter. Je ne sais pas vraiment comment le placer dans le script.
Merci pour votre aide:merci:

Par Azrael07 le 17/11/2002 à 22:09:06 (#2582586)

aie aie aie c koi ce script ???? c illisible ;)

ben la c pas que c le OnHeartBeat qui est lourd, mais c carement la création/ destruction d'objets

bon laisse tomber ton truc essaye ca, mais je garentie rien


void main()
{
int nRandom = Random(2);
if( nRandom )
SetPlaceableIllumination();
else
SetPlaceableIllumination(OBJECT_SELF, FALSE);
}


et tu met ca sur des lumières a chaques waypoints (en virant les waypoints) et en mettant le script dans le OnHeartBeat de l'objet

c pas tout a fait le resultat attendu mais ton truc est vraiment trop lourd en ressources pour être utilisable

Par MTorment le 17/11/2002 à 23:52:57 (#2583210)

mais ton truc est vraiment trop lourd en ressources pour être utilisable


Oui, c'est ce que je pensais, c'est pour cela que j'ai dit que 10 lumières alors que je prévoyais environ 100 ... :monstre: :D
Enfin, je vais tester en esp√©rant que mon proc ne br√Ľle pas avec les HeartBeat pour chaque lumi√®re...

Merci:merci:

Par Jeda√Į le 18/11/2002 √† 1:16:55 (#2583718)

Il faut ajouter à ce script un RecomputeStaticLights() (à peu près...:D ) pour que le SetPlaceableIllumination() ait un quelconque effet, mais comme cette commande est lourde, je te conseille de mettre le script d'Azrael07 sur tous tes clignotants sauf un sur lequel tu mettras :


void main()
{
int nRandom = Random(2);
if( nRandom )
SetPlaceableIllumination();
else
SetPlaceableIllumination(OBJECT_SELF, FALSE);
RecomputeStaticLights() ;
}


Par ailleurs, je signale que ce script, comme l'as pr√©cis√© Azrael, est plut√īt un plan de script, et que tu ferais bien de v√©rifier l'orthographe des fonctions, ainsi que la syntaxe...:cool:

Saturday night fever

Par Nylou le 18/11/2002 à 10:28:10 (#2584847)

On sera invité sur ton mod pour faire la fete ?
:bouffon:

Par MTorment le 18/11/2002 à 19:12:33 (#2588680)

Bon j'ai testé de plusieurs façon, je n'arrive pas à faire fonctionner ce script...:(
J'ai l'impression que le SetPlaceableIllumination ne fonctionne pas bien...

:aide:

ATTENTION

Par Jeda√Į le 18/11/2002 √† 20:02:52 (#2589162)

Après un SetPlaceableIllumination() il faut mettre la fonction RecomputeStaticLighting(), sinon ça marche pas. :D

Cette fonction a parait-il des problèmes, mais uniquement si les placeables lumineux sont plus que 20, donc... :cool:

Par MTorment le 18/11/2002 à 20:34:28 (#2589438)

Oui, j'ai utilisé cette fonction après , cela ne marche pas non plus...

:aide:

Par Jeda√Į le 19/11/2002 √† 20:16:30 (#2596847)

Comme je peux t'assurer que cette fonction marche, je te conseille de vérifier ces points :

[list=1]
*Les tags sont-ils les bons (si tu n'utilise pas OBJECT_SELF)
*Tes placeables sont ils bien "allumables" ?
*Si tu as essayé de jour essaie de nuit
*Essaie de faire jouer l'animation PLACEABLE_ACTIVABLE en plus
*Ben j'sais pas
*aucunes autres idées :mdr:

Par MTorment le 20/11/2002 à 20:08:15 (#2605674)

J'ai vérifié mes tags, j'ai aussi testé le OBJECT_SELF.
Mes placeables sont des collonnes de lumières, sont-elles allumables ?
J'ai testé de jour et de nuit.
Je mets mon script pour savoir si je me suis pas trompé :


void main()
{
object oPC = GetFirstPC();
int nRandom = Random(2);
if( nRandom == 1 )
SetPlaceableIllumination();
else
SetPlaceableIllumination(OBJECT_SELF, FALSE);
RecomputeStaticLighting(GetArea(oPC)) ;
}

dans le HeartBeat du placeable.

et celui-ci :

void main()
{
int nRandom = Random(2);
if( nRandom == 1 ) {
SetPlaceableIllumination();
DoPlaceableObjectAction(OBJECT_SELF, ANIMATION_PLACEABLE_ACTIVATE ); }
else{
SetPlaceableIllumination(OBJECT_SELF, FALSE);
DoPlaceableObjectAction(OBJECT_SELF, ANIMATION_PLACEABLE_DEACTIVATE); }
}


Donc cela ne marche toujours pas.
merci pour votre aide:merci:

Par MTorment le 20/11/2002 à 21:05:17 (#2606284)

C'est bon, ca marche, j'ai trouvé :


void main()
{
int nRandom = Random(2);
if( nRandom == 1 )
{
PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
DelayCommand(0.4, SetPlaceableIllumination(OBJECT_SELF, TRUE));
DelayCommand(0.5,RecomputeStaticLighting(GetArea(OBJECT_SELF)));
}
else
{
PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE);
DelayCommand(0.4,SetPlaceableIllumination(OBJECT_SELF, FALSE));
DelayCommand(0.9,RecomputeStaticLighting(GetArea(OBJECT_SELF)));
}
}

:merci:

JOL Archives 1.0.1
@ JOL / JeuxOnLine