Author Topic: Ascenseur Avec Script  (Read 2644 times)

Anderson69s

  • Tailleur de maps
  • Posts: 442
    • http://
Ascenseur Avec Script
« Reply #25 on: January 28, 2007, 07:35:32 PM »
Tutos, remodelé... avec screens à jour....

Pour zerocool tout ce qui se rapporte au piano est à enlever, quand j'ai fait ce tuto je ne connaissait pas bien le script et je l'avais pris sur une carte et pour être sûr que tout marche j'avias laisser le script tel quel je l'ai modifier donc plus de pb normalement...


snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
Ascenseur Avec Script
« Reply #26 on: January 28, 2007, 09:18:10 PM »
Un bon tuto, mais comme d'hab, je préfère tout faire moi même ^^

Anderson69s

  • Tailleur de maps
  • Posts: 442
    • http://
Ascenseur Avec Script
« Reply #27 on: January 29, 2007, 09:44:13 PM »
T'es jamais content mon petit snaky, faut apprendre à diluer tes tâches et à te décharger de ton boulot...


snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
Ascenseur Avec Script
« Reply #28 on: January 30, 2007, 10:04:56 PM »
Quote
T'es jamais content mon petit snaky

j'aime plus beaucoup les tutos car ayant compris une aprtie du script de MOHAA (j'peux pas dire tout car j'en connais pas la totalité), je n'apprécie plus de suivre les tutoriaux, puisque je les comprends ^^ Là, je lit le tuto, et j'me dis qu'en effet, ca marche... j'ai plus le coté "donc, je fais ca... OOOOOOOOH TROP BEAU CA MARCHE!" que j'avais avant ;)
De plus, les tutos te font rentrer dans des "cases". Si on suit toujours les tutos, les maps n'auront pas beaucoup d'innovations... Je ne dit pas néanmoins que je néglige tous les tutos, car parfois, ca me sert (genre j'oublis un truc sur une commande), même si, maitnenant, je préfère utiliser le "classnames.txt" que j'ai, qui regroupe toutes les classenames et les commandes du jeu (généré par la commande "dumpallclasses" dans MOHAA).

Quote
faut apprendre à diluer tes tâches et à te décharger de ton boulot...

je sais bien qu'on me dit souvent ca... C'est ce que j'ai fait en partie sur Oban, mais parfois, les membres partent pour des raisons plus ou moins définies (mais tres souvent légitimes, ca je conteste pas trop)... Et il faut les remplacer rapidement, donc, je bosse 2x plus en attendant de trouver un remplacant au membre qui a délaissé... Et ca permet de tenir un peu le coup (sauf que là, vu la chute de motiv' de l'équipe sur Oban, on est tout pret de laisser tomber :s)...

Bref, tout cela pour dire que maintenant, je ne suis plus les tutos qui existent, car il est tres rare qu'ils correspondent exactement à ce que je veux faire. De plus, certains tutos qui marchent (comme le tien) peuvent s'avérer trop lourd à mon gout, eyt trop gourmants... Et je choisit d'autres techniques (model 3D, controle différent...). Cela se voit surtout si tu as, par exemple, 5 étages à déservir... Auquel cas, comment ferais-tu avec l'ascenceur que tu as? Je recopies le script pour faire monter les 5 étages, puis les faires descendre un à un? Le script serait alors trop lourd, et probablement trop "fragile" (un petit décallage pourrait entrainer l'ascenceur à dépasser le Rdc ou à aller au-dela du 5e étage, et partir dans le ciel)... Donc, je rpéfère le refaire complètement. Cela ne m'empeche pas de refaire mes propres scripts-"sources", que je réutilise apr la suite pour ne aps écrire 20 fois le même code (genre un script pour faire tirer une arme, pour faire aprtir un alser etc...).

je ne critique pas ton tuto, je te dis que je le trouve bien expliqué. et malgré ce que j'ai dit, j'en suis pas "mécontent" pour autant... Disons que je trouve que le tuto est bon, qu'il guidera tres bien les débutants, mais que si tu peux, il serait peut-etre pas mal de proposer d'autres architectures, peut-etre moins détaillées, pour des codes plus complexes (plus de 3 étages, ds pannes d'ascenceur aléatoire etc)... En ne proposant, peut-etre, que l'architecture, pour laisser aux lecteurs le choix de leur script, qu'ils adapteront alors à leur map. Pour ceux à qui ces "adaptations" semblent trop complexe, ils pourront quand même utiliser le tutoriel de base...

Anderson69s

  • Tailleur de maps
  • Posts: 442
    • http://
Ascenseur Avec Script
« Reply #29 on: January 31, 2007, 12:57:13 AM »
Tu sais Snaly tu a attient un niveau de script bien supérieur au mien et il est légitime pour toi de vouloir obtenir le maximum de détails sur une map mais bien souvent les gens qui viennent sur caskami.com sont des personnes qui ont envie de se lancer dans le mapping et même si ils prennent les tutos e n'est pas pour autant que leur map sera moins original (si j'ai bien compris ton message)...

Donc je respecte totalement ton point de vue...


zerocool

  • Apprenti poseur de brushs
  • Posts: 87
    • http://
Ascenseur Avec Script
« Reply #30 on: January 31, 2007, 01:45:33 AM »
Salut all

Merci a toi Anderson sa amrche niquel  :D  :D

@++
®©

tpt

  • Apprenti poseur de brushs
  • Posts: 66
Ascenseur Avec Script
« Reply #31 on: January 11, 2009, 11:25:00 PM »
Bonjour, je débute dans le mapping et j'ai réussi à creer cet ascenseur avec script mais j'aimerais en faire un qui marche pour plusieurs étages (4+rdc). J'ai fait des recherches sur des sites anglais et j'ai trouver 2 scripts mais je ne sais pas comment m'en servir avec celui d'anderson car les targetname triger et waypoint ont des noms différents du tuto a anderson et je ne pige pas tout.
Donc quelqu'un qui s'y connait un peu en script pourrait-il m'aider svp?

SCRIPT 1 :



//**************\\
// the elevator \\
//**************\\

main:
waitthread elevator_prep_binds
waitthread elevator_prep_speed
waitthread elevator_variables
end

/////////////////////////
//___the preperation___//
/////////////////////////

elevator_prep_binds:
$l_elevator_left bind $l_elevator
$l_elevator_right bind $l_elevator
$l_elevator_light bind $l_elevator
$l_elevator_buttons bind $l_elevator
$r_elevator_left bind $r_elevator
$r_elevator_right bind $r_elevator
$r_elevator_buttons bind $r_elevator
$warehouse_buttons bind $warehouse_elevator
end

elevator_prep_speed:
$l_elevator_left speed 24
$l_elevator_right speed 24
$r_elevator_left speed 24
$r_elevator_right speed 24
$l_external_left speed 22
$l_external_right speed 22
$r_external_left speed 22
$r_external_right speed 22

$l_elevator time 4
$r_elevator time 4
$l_pointer time 4
$r_pointer time 4
$warehouse_elevator speed 48
end

elevator_variables:
$l_elevator.doors_open = 0
$l_elevator.doors_open = 0
level.floor[1] = 0
level.floor[2] = 0
level.floor[3] = 0
level.floor[4] = 0
level.floor[5] = 0
level.floor[6] = 0
level.l_moving = 0
level.r_moving = 0
level.l_moving_down = 0
level.r_moving_down = 0
level.l_moving_up = 0
level.r_moving_up = 0
level.l_current_pos = 5
level.r_current_pos = 5
level.l_elevator_on = 0
level.l_go_up = 0
level.r_go_up = 0
level.l_go_down = 0
level.r_go_down = 0
$warehouse_elevator.moving = 0
end

/////////////////////
//___the calling___//
/////////////////////

elevator_call:
level.floor[self.number] = 1
$l_elevator_light[self.number] light 1 1 1 8
if (level.l_moving == 0)
{iprintlnbold_noloc "floor1 " level.floor[1] ", floor2 " level.floor[2] ", floor3 " level.floor[3] ", floor4 " level.floor[4] ", floor5 " level.floor[5] ", floor6 " level.floor[6]
iprintlnbold_noloc "called to " self.number
iprintlnbold_noloc "elevator on floor " level.l_current_pos
if (self.number == level.l_current_pos)
{thread send_left_here}
if (self.number < level.l_current_pos)
{thread send_left_up}
if (self.number > level.l_current_pos)
{thread send_left_down}}
end

send_left_here:
if ($l_elevator.doors_open == 0)
{level.l_moving = 1
$l_elevator_light[level.l_current_pos] light 0 0 0 0
level.floor[level.l_current_pos] = 0
waitthread l_doors_move
$l_elevator_light[level.l_current_pos] light 0 0 0 0
level.floor[level.l_current_pos] = 0
level.l_moving = 0
goto send_left_up}
end

send_left_up:
level.l_moving = 1
for (local.i = level.l_current_pos; local.i > 0; local.i--)
{if (level.floor[local.i] == 1)
{level.l_go_up = 1}}
if (level.l_go_up == 1)
{level.l_go_up = 0
level.l_moving_up = 1
level.l_current_pos--
$l_pointer rotateZup -60
$l_pointer move
$l_elevator moveto $wp_l_floor[level.l_current_pos]
$l_elevator waitmove
if (level.floor[level.l_current_pos] == 1)
{wait 0.75
$l_elevator_light[level.l_current_pos] light 0 0 0 0
waitthread l_doors_move
level.floor[level.l_current_pos] = 0}
goto send_left_up}
else
{level.l_moving_up = 0
level.l_moving = 0
for (local.i = level.l_current_pos; local.i < 7; local.i++)
{if (level.floor[local.i] == 1)
{goto send_left_down}}}
end

send_left_down:
level.l_moving = 1
for (local.i = level.l_current_pos; local.i < 7; local.i++)
{if (level.floor[local.i] == 1)
{level.l_go_down = 1}}
if (level.l_go_down == 1)
{level.l_go_down = 0
level.l_moving_down = 1
level.l_current_pos++
$l_pointer rotateZup 60
$l_pointer move
$l_elevator moveto $wp_l_floor[level.l_current_pos]
$l_elevator waitmove
if (level.floor[level.l_current_pos] == 1)
{wait 0.75
$l_elevator_light[level.l_current_pos] light 0 0 0 0
waitthread l_doors_move
level.floor[level.l_current_pos] = 0}
wait 0.75
level.l_go_down = 0
goto send_left_down}
else
{level.l_moving_down = 0
level.l_moving = 0
for (local.i = level.l_current_pos; local.i > 0; local.i--)
{if (level.floor[local.i] == 1)
{goto send_left_up}}}
end

l_doors_move:
thread doors_move $l_elevator_left $l_elevator_right 4
waitthread doors_move $l_external_left[level.l_current_pos] $l_external_right[level.l_current_pos] 4 $l_elevator
end

r_doors_move:
thread doors_move $r_elevator_left $r_elevator_right 4
waitthread doors_move $r_external_left[level.r_current_pos] $r_external_right[level.r_current_pos] 4 $r_elevator
end

doors_move local.nl_object local.nr_object local.nwait local.nelevator:
if !(local.nelevator == NIL)
{local.nelevator.doors_open = 1}
local.nl_object moveRight 30
local.nr_object moveLeft 30
local.nl_object move
local.nr_object waitmove
if !(local.nelevator == NIL)
{local.nelevator playsound snd_ping}
wait local.nwait
local.nl_object moveLeft 30
local.nr_object moveRight 30
local.nl_object move
local.nr_object waitmove
if !(local.nelevator == NIL)
{local.nelevator.doors_open = 0}

end



SCRIPT 2 SCRIPT 2 SCRIPT 2 SCRIPT 2 SCRIPT 2 :



elevator_preparation:

$elevator moveto $floor1 // reset the elevator for the trip
$elevator time 5 // set the elevetor speed

$elevatorgate_floor1 time 1.5 // set the speed of the doors on each level
$elevatorgate_floor2 time 1.5
$elevatorgate_floor3 time 1.5
$elevatorgate_floor4 time 1.5

goto elevatorrun

end


elevatorrun:


// going up to the 2nd floor
$elevatorgate_floor1 playsound elevator_gate
$elevatorgate_floor1 moveup 64
$elevatorgate_floor1 waitmove

$elevator moveto $floor2
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor2 movedown 64
$elevatorgate_floor2 waitmove

// waitting on the floor - in seconds
wait 5

// going up to the 3rd floor
$elevatorgate_floor2 playsound elevator_gate
$elevatorgate_floor2 moveup 64
$elevatorgate_floor2 waitmove

$elevator moveto $floor3
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor3 movedown 64
$elevatorgate_floor3 waitmove

// waitting on the floor - in seconds
wait 5

// going up to the 4th floor
$elevatorgate_floor3 playsound elevator_gate
$elevatorgate_floor3 moveup 64
$elevatorgate_floor3 waitmove

$elevator moveto $floor4
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor4 movedown 64
$elevatorgate_floor4 waitmove

// waitting on the floor - in seconds
wait 5

// going back to the 3rd floor
$elevatorgate_floor4 playsound elevator_gate
$elevatorgate_floor4 moveup 64
$elevatorgate_floor4 waitmove

$elevator moveto $floor3
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor3 movedown 64
$elevatorgate_floor3 waitmove

// waitting on the floor - in seconds
wait 5

// going down to the 2nd floor
$elevatorgate_floor3 playsound elevator_gate
$elevatorgate_floor3 moveup 64
$elevatorgate_floor3 waitmove

$elevator moveto $floor2
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor2 movedown 64
$elevatorgate_floor2 waitmove

// waitting on the floor - in seconds
wait 5

// going down to the 1st floor
$elevatorgate_floor2 playsound elevator_gate
$elevatorgate_floor2 moveup 64
$elevatorgate_floor2 waitmove

$elevator moveto $floor1
$elevator playsound elevator_run
$elevator waitmove

$elevatorgate_floor1 movedown 64
$elevatorgate_floor1 waitmove

// waitting on the floor - in seconds
wait 5

// AND BACK UP AGAIN

goto elevatorrun

end