Bonjour,
Débutant en skript, je vous présente mon premier article.
ce petit bout de skript, permet d'enregistrer une zone dans une liste afin de la restaurer a la fin de la partie.
Le schéma général est le suivant:
avant le démarrage on enregistre 2 points: la variable de position n°1 et la n°2 ( loc 1 et loc 2)
command /setpos1:
permission: sk.modo
executable by: players
trigger:
set {loc1} to location of player
send " pos 1 définie"
command /setpos2:
permission: sk.modo
executable by: players
trigger:
set {loc2} to location of player
send " pos 2 définie"
au démarrage d'une partie on enregistre 4 variables :
- La partie a commencée : setdem
- concernant les blocs retirés : on enregistre le type de bloc et sa position {blocs.retires::%loop-index%}et {position.blocs.retires::*}
- concernant les blocs posés on n'enregistre que la position car l'id ne nous intéresse pas
ensuite au conditions on place et on break on enregistre (si l'enregistrement a commencée) les blocs
on break:
{setdem} is true:
add type of event-block to {blocs.retires::*}
add location of event-block to {position.blocs.retires::*}
on place:
{setdem} is true:
add location of event-block to {position.blocs.poses::*}
et au final je traite deux commandes /setdem et /setfin qui permettent de démarrer et d’arrêter le "monitoring"
command /setdem:
permission: sk.modo
trigger:
set {setdem} to true
send "sauvegarde des blocs démarré"
command /setfin:
permission: sk.modo
trigger:
{setdem} is true:
send "fin de sauvegarde des blocs"
set {setdem} to false
#on restaure
send "on supprime les blocs posés "
loop {position.blocs.poses::*}:
send "suppression bloc posés %loop-index%"
set {_af} to {position.blocs.poses::%loop-index%}
set block at location at {_af} to air #{blocs.poses::%loop-index%}
send "on remet les blocs supprimés"
loop {position.blocs.retires::*}:
send "remet le bloc supprimé %loop-index%"
set {_af} to {position.blocs.retires::%loop-index%}
set block at location at {_af} to {blocs.retires::%loop-index%}
clear {blocs.retires::*}
clear {position.blocs.retires::*}
clear {position.blocs.poses::*}
else:
send "pas d'enregistrement vous avez oublier de le démarrer /setdem"
je sais cependant qu'il manque plusieurs choses
- on pourrais tester si le joueur est dans une partie
- ici on ne gère qu'une seul zone
- on pourrais passer par les régions
- je passe par 2 commandes mais bien entendu on peux ne pas en avoir besoin.
et surement plein d'autres choses, mais le but étais simplement de montrer le principe
le code complet
command /setpos1:
permission: sk.modo
executable by: players
trigger:
set {loc1} to location of player
send " pos 1 définie"
command /setpos2:
permission: sk.modo
executable by: players
trigger:
set {loc2} to location of player
send " pos 2 définie"
command /setdem:
permission: sk.modo
trigger:
set {setdem} to true
send "sauvegarde des blocs démarré"
command /setfin:
permission: sk.modo
trigger:
{setdem} is true:
send "fin de sauvegarde des blocs"
set {setdem} to false
#on restaure
send "on supprime les blocs posés "
loop {position.blocs.poses::*}:
send "suppression bloc posés %loop-index%"
set {_af} to {position.blocs.poses::%loop-index%}
set block at location at {_af} to air #{blocs.poses::%loop-index%}
send "on remet les bloc supprimés"
loop {position.blocs.retires::*}:
send "remet le bloc supprime %loop-index%"
set {_af} to {position.blocs.retires::%loop-index%}
set block at location at {_af} to {blocs.retires::%loop-index%}
clear {blocs.retires::*}
clear {position.blocs.retires::*}
clear {position.blocs.poses::*}
else:
send "pas d'enregistrement vous avez oublier de le démarrer /setdem"
on break:
{setdem} is true:
add type of event-block to {blocs.retires::*}
add location of event-block to {position.blocs.retires::*}
on place:
{setdem} is true:
add location of event-block to {position.blocs.poses::*}
voila et a bientôt