Author Topic: Spote  (Read 1568 times)

M0rt@l

  • Tailleur de maps (expérimenté)
  • Posts: 979
    • http://
Spote
« on: February 04, 2005, 06:38:26 PM »
Voila lu all c encore mortalou  :D  :P

Ma question concerne la lumière...
Dans la map saturday night fever 3 les lumières clignotes (les spotes)

Comment on fait  :)  :)


Merci d'avance

Ps : c'est possible aussi de changer la couleur alternativement ? (ex : rouge , bleu , rouge , bleu , rouge.....)




Caskou

  • Actionnaire chez un fabricant de claviers
  • Posts: 1596
    • http://
Spote
« Reply #1 on: February 04, 2005, 07:27:06 PM »
Regarde du côté du script, tu déclares les couleurs dedans avec les intervalles en temps ;)

M0rt@l

  • Tailleur de maps (expérimenté)
  • Posts: 979
    • http://
Spote
« Reply #2 on: February 04, 2005, 07:28:42 PM »
Humm c pa possible de fair sans script ?? :plz  :plz  :plz  :plz  




Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #3 on: February 04, 2005, 07:40:07 PM »
Mais qu'est ce qu'ils ont ces jeunes contre le script ? :rolleyes:

Le script c'est toute l'âme, tout le sens caché du mapping, c'est lui qui donne vie aux carte et les rend dynamique B)

Alors réflechissez à deux fois avant de rejeter le script, car lorsque vous serez dedans, vous irez de surprises en surprises sur ses possibilités ;)  
De l'éducation les racines sont amères... Mais le fruit est doux !


Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #4 on: February 04, 2005, 08:20:05 PM »
Pour ta question :

Niveau mapping :

Positionner son model de lampe... (ça tu sais faire ;)) ; tout déselectionner.

Faire clic droit/script/model
Maintenir séléctionné le script_model et lui attribuer ces couples clé/valeur
Quote
model / fx/dummy.tik
targetname / lum
>> à positionner juste sous la lampe

Faire clic droit/script/origin
Maintenir séléctionné le script_origin et lui attribuer ce couple clé/valeur
Quote
model / static/corona_orange.tik
targetname / lueur_orange
>> à positionner dans la lampe (là où il y a l'ampoule)

Faire clic droit/script/origin
Maintenir séléctionné le script_origin et lui attribuer ce couple clé/valeur
Quote
model / fx/corona_red.tik
targetname / lueur_rouge
>> à positionner dans la lampe (là où il y a l'ampoule)

niveau scripting :

Quote
[size=8]main:

level waittill prespawn

thread prep

level waittill spawn

thread projecteur

end

prep:

$lueur_rouge hide
$lueur_orange hide

end

projecteur:

while (1)
{

$lum light 0 0 1 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_orange show

wait ( randomint(10)*0.1 + 0.2 )
$lueur_orange hide

$lum light 1 1 1 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_orange show

wait ( randomint(10)*0.1 + 0.2 )
$lueur_orange hide

$lum light 1 0 0 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_red show

wait ( randomint(10)*0.1 + 0.2 )
$lueur_red hide

}

end[/size]

Comme ça ca va te faire bleu-blanc-rouge-bleu-blanc-rouge-bleu-...
OK ? :)

Si tu veux que ce soit aléatoire, alors faut mettre ceci :

Quote
[size=8]main:

level waittill prespawn

thread prep

level waittill spawn

thread projecteur

end

prep:

$lueur_rouge hide
$lueur_orange hide

end

projecteur:

while (1)
{
local.alea = randomint 3
switch (local.alea)
{
case 0:
waitthread bleu
break

case 1:
waitthread blanc
break

case 2:
waitthread rouge
break
}
}

end

bleu:

$lum light 0 0 1 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_orange show
wait ( randomint(10)*0.1 + 0.2 )
$lueur_orange hide

end

blanc:

$lum light 1 1 1 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_orange show
wait ( randomint(10)*0.1 + 0.2 )
$lueur_orange hide

end

rouge:

$lum light 1 0 0 260 // Valeurs : Rouge Vert Bleu Rayon
$lueur_red show
wait ( randomint(10)*0.1 + 0.2 )
$lueur_red hide

end[/size]


... vive la fête hihi

Ps : j'ai un petit doute sur les switch, y-a-t-il quelqu'un qui pourrait confirmer qu'on les emploie bien comme ça sous medal... ? ^^/
« Last Edit: February 06, 2005, 04:05:53 PM by Danker »
De l'éducation les racines sont amères... Mais le fruit est doux !


Echo-3

  • Tailleur de maps
  • Posts: 299
    • http://
Spote
« Reply #5 on: February 04, 2005, 08:25:14 PM »
ca devrait etre correct :)
Par contre, j'aimerais savoir un truc, est ce que les threads sont executés en même temps ? ou un par un ?
Sinon, la question que je me pose, c'est qu'il y a une boucle infinie... :unsure: Y a pas de condition de sortie...Enfin, moi je compare tout ca au C peut etre que dans le script c'est différent...
« Last Edit: February 05, 2005, 05:36:55 PM by raf »
Il n'y a qu'une seule réponse à la défaite........C'est...la victoire !


M0rt@l

  • Tailleur de maps (expérimenté)
  • Posts: 979
    • http://
Spote
« Reply #6 on: February 04, 2005, 08:55:39 PM »
Comprend rien au script et je ne sais pas comment ça marche. C'est pour ça :P
« Last Edit: February 05, 2005, 05:37:47 PM by raf »




Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #7 on: February 04, 2005, 10:55:41 PM »
Tu peux toujours essayé, t'essaieras de comprendre à tete reposé, une fois que ca marchera, essaye ce que je t dit, c pas compliqué, et le script est tout pret (chanceux va :D )

[size=8]while (1)
{
local.alea = randomint 3
switch (local.alea)
{
case 0:
waitthread bleu
break

case 1:
waitthread blanc
break

case 2:
waitthread rouge
break
}
}[/size]

En français caz donne :
Quote
la variable locale "alea" vaut un nombre parmi 3 au hasard (soit 0, soit 1, soit 2). Pour les valeurs de la variable "alea", si elle vaut 0, alors on attend que le thread "bleu" soit exécuté et on sort de la boucle "switch" ce qui nous ramène à une redifinition de la variable "alea" pour enclencher un autre thread...

Les threads ne sont pas executés en même temps mais les uns après les autres... ;) Et en effet c'est une boucle infinie... mais ça c'est souvent utilisé non ? ^^/  
De l'éducation les racines sont amères... Mais le fruit est doux !


M0rt@l

  • Tailleur de maps (expérimenté)
  • Posts: 979
    • http://
Spote
« Reply #8 on: February 05, 2005, 11:03:13 AM »
En fait je sais kil fo le fr sur bloc note etc.... mais apres je c pas ou le foutre et le fr marcher c sa mon bleme  :o  




Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #9 on: February 05, 2005, 12:20:19 PM »
Dans bloc-note, tu enregistres au format .scr et tu mets le fichier dans le même dossier que ton fichier map ou bsp !b Le fichier sera lu automatiquement au lancement de la carte !

C'est pas compliqué ^_^
De l'éducation les racines sont amères... Mais le fruit est doux !


snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
Spote
« Reply #10 on: February 05, 2005, 01:09:03 PM »
Normalement, windows doit le prendre comme ecran de veille. Si tu double-clic dessus, il te dit que C pas compatible. Pour l'ouvrir avec le bloc-notes: outils/options des dossiers, onglet "extention des fichiers", tu entre ".scr" et tu lui attribut "bloc-notes" (ou tu cherche l'entrée .SCR et tu lui accole le bloc-notes)
« Last Edit: February 05, 2005, 05:38:37 PM by raf »

M0rt@l

  • Tailleur de maps (expérimenté)
  • Posts: 979
    • http://
Spote
« Reply #11 on: February 05, 2005, 02:28:16 PM »
Daccord merci Danker je vai essayer !




Echo-3

  • Tailleur de maps
  • Posts: 299
    • http://
Spote
« Reply #12 on: February 05, 2005, 10:42:21 PM »
Euh, ben voilà, si c'est une boucle infinie... Ben comment va t'il lire les threads suivants?  :blink:

Donc soit les threads suivants ne sont pas executés, soit il execute les threads en même temps??
C'est une question qui me passe depuis bien longtemps par la tête...
« Last Edit: February 06, 2005, 02:20:21 PM by raf »
Il n'y a qu'une seule réponse à la défaite........C'est...la victoire !


snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
Spote
« Reply #13 on: February 06, 2005, 09:44:09 AM »
?????
Un while bloque l'execution du thread:

main:
waitthread spawn
thread remove
end

spawn:
while (!$player)
wait 1
//tant que le joueur n'est pas la, on attend
local.ex = spawn "fx/M2fgreanadeexplosion.tik"
local.ex.origin = $player.origin
local.ex anim start
local.ex targetname "booom"
end

remove:
wait 2
$booom remove
end

waitthread spawn
attendre la fin du thread.

while (!$player)
tant que le joueurest pas la

wait 1
attendre

local.ex = ...
Faire la suite

End
Fin

Thread remove
executer remove:

Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #14 on: February 06, 2005, 11:02:12 AM »
Quote
[size=8]while (1)
{
local.alea = randomint 3
switch (local.alea)
{
case 0:
waitthread bleu
break

case 1:
waitthread blanc
break

case 2:
waitthread rouge
break
}
}[/size]

En français caz donne :
Quote
la variable locale "alea" vaut un nombre parmi 3 au hasard (soit 0, soit 1, soit 2). Pour les valeurs de la variable "alea", si elle vaut 0, alors on attend que le thread "bleu" soit exécuté et on sort de la boucle "switch" ce qui nous ramène à une redifinition de la variable "alea" pour enclencher un autre thread...

Les threads ne sont pas executés en même temps mais les uns après les autres... ;) Et en effet c'est une boucle infinie... mais ça c'est souvent utilisé non ? ^^/
Ben attends, je ne vois pas pourquoi la boucle while gènerait quoi que ce soit, si tu vas voir mon script du canon auto-tireur en multijoueurs, et ben tu verras que ya pleins de threads à l'intérieur des while :rolleyes:

Heu, je t'ai peut-etre pas dit que la commande waitthread permettait d'attendre le end du thread en question pour continuer de lire le script !

Donc en gros la boucle switch se finit que lorsque le thread bleu, blanc ou rouge est finit. et une fois la boucle  switch terminée, la boucle while recommence...
et ya pas de souçaï ! ^^/  
De l'éducation les racines sont amères... Mais le fruit est doux !


Echo-3

  • Tailleur de maps
  • Posts: 299
    • http://
Spote
« Reply #15 on: February 06, 2005, 01:22:57 PM »
%ais si tu ecris un threead en dehors du while, à la suite, il ne sera jamais executé vu que il reste bloqué dans le while, ou bien ?
Il n'y a qu'une seule réponse à la défaite........C'est...la victoire !


Danker

  • Legomaniaque
  • Posts: 1025
    • http://
Spote
« Reply #16 on: February 06, 2005, 02:59:24 PM »
[size=8]projecteur:

while (1)
{
local.alea = randomint 3
switch (local.alea)
{
case 0:
waitthread bleu
break

case 1:
waitthread blanc
break

case 2:
waitthread rouge
break
}
}

end[/size]

En effet on ne sortira jamais de la boucle while, et si on met quelques chose à la suite ce ne sera pas lu, à moins de poser une vraie condition au while, qui permettrait de finir le thread...
Mais vu qu'on est dans un sous-thread et non dans le main, ça ne pose aucun problème. Vu qu'on veut que le projecteur marche sans arret... ^^/  
De l'éducation les racines sont amères... Mais le fruit est doux !


painkiler

  • Bleusaille
  • Posts: 3
Spote
« Reply #17 on: January 21, 2011, 04:25:59 AM »
bonjour esque un scrypt existe pour que ma lumiere verte cliniote verte ma rouge cligniote rouge et ma bleu clignite bleu ais bien sur 3 lampe  etc pas genre 1 qui se mais une foi bleu une foi vert ext comme ton script

( j esaye de faire juste clinioter mais enpoule c a me tirer les cheveau XD )

merci de votre aide d avance

snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
Spote
« Reply #18 on: January 22, 2011, 02:47:26 PM »
argotik wo yomimasen...

Définit clairement:
- Ce que tu as
- Ce que tu attends que ces choses fassent
- "Clignoter" : elle se coupent par à-coup? elles ont une intensité sinusoïdale?
- Les pistes que t'as essayées