Hello !
Je codais un script de jeu et j'ai rencontré un problème :eek:
Je voyais aussi que pas mal de demandes d'aide étaient postées sur ce sujet, dorénavant on pourra les punir pour "Non recherche" ou leur donner ce lien ! :D
Comment regen efficacement une map ou un fragment de map ?
J'ai donc essayé de mes propres moyens mais sans succès, j'ai cherché un peu et je suis tombé sur ce que je voulais mais sous forme de script pas hyper optimisé et long :')
Mon code est parti de cela je mets donc la référence -> World_Regenerate par brianx2x
Le code contient plusieurs parties, la partie sauvegarde de blocs cassés et détruits, la fonction de régénération de ces blocs et enfin une commande pour accéder à la fonction.
Sauvegarder les blocs dans des variables n'est sûrement pas le plus optimisé mais je ne me suis pas plus penché sur le sujet.
# FONCTION DE RÉGÉNÉRATION
function regenWorld(i: integer):
set {_Count} to size of {BlockLoc::*}
loop {BlockLoc::*}:
set block at {BlockLoc::%{_Count}%} to {BlockType::%{_Count}%}
remove 1 from {_Count}
delete {BlockLoc::*}
delete {BlockType::*}
# SAUVEGARDE DES BLOCS DÉTRUITS
on break:
add type of block to {BlockType::*}
add location of block to {BlockLoc::*}
# SAUVEGARDE DES BLOCS POSÉS
on place:
add air to {BlockType::*}
add location of block to {BlockLoc::*}
# COMMANDE DE RÉGÉNÉRATION
command /worldregenerate:
aliases: /wr, /wrg, /rg, /regen
trigger:
regenWorld(1)
send "&aMonde regénéré."
Il faut donc utiliser Skript 2.2 pour pouvoir se servir des fonctions.