J'ai vu que y'avait régulièrement des gens qui cherchaient comment régénérer des zones et je suis tombé sur un tutoriel de LimeGlass, le développeur de Skellett. Du coup, je me suis dit que ça pourrait servir de proposer une traduction ici.
Vous avez toujours voulu sauvegarder et reposer des blocs en quantités incroyables ? Ne cherchez pas plus, les Regenerators sont là pour remplacer vos lentes méthodes de sauvegarde !
Nécessite Skellett 1.7.3+
Les Regenerators sont sauvegardés par des variables text/string, qui stockent une ID.
Listes des syntaxes :
[skellett] regenerator with id %string% (1¦does|2¦does(n't| not)) exist
(create|make) [a] [new] [skellett] regenerator with ID %string% (from|within) [location[s]] %location% (to|and) %location%(delete|remove) [the] [skellett] regenerator with ID %string% [re[ ]build %-boolean%]
pos[ition][ ]1 of [skellett] regenerator [[with] id] %string%
pos[ition][ ]2 of [skellett] regenerator [[with] id] %string%
#This will allow you to update the locations if you change the pos locs
re[ ]configure [the] [skellett] regenerator with ID %string%
re(generate|[ ]build) [the] [skellett] regenerator with ID %string%
[(the|all)] [of] [the] [skellett] regenerator[s] [ids]
Pour commencer, créons un Regenerator :
if regenerator with id "Exemple" does not exist:
create a regenerator with ID "Exemple" from {_pos1} to {_pos2}
Ce code vérifie qu'il n'y a pas un autre Regenerator avec la même ID, puis sauvegarde les blocs entre les positions {_pos1} et {_pos2}. (C'est le même système qu'avec WorldEdit)
C'était facile, hein ? Maintenant, comment reposer les blocs ? Imaginons un mini-jeu où la TNT et ce genre de trucs sont autorisés. La carte est ravagée ! On veut donc remettre tous les blocs comme ils étaient pour pouvoir démarrer une nouvelle partie.
Voici comment on régénère les blocs :
regenerate regenerator with ID "Exemple"
Boom fini ! Simple et rapide.
Maintenant, il faut savoir que Skellett ne sauvegarde pas les Regenerators au redémarrage du serveur (J'ajouterai peut-être ça plus tard). Vous pouvez toujours reposer les blocs à l'extinction du serveur :
on skript unload:
loop all regenerator ids:
regenerate regenerator with ID "%loop-value%"
Puis si on veut à nouveau pouvoir régénérer le terrain quand le serveur se rallume, on peut utiliser la même méthode qu'au début, puisque notre modèle est toujours là pour refaire les Regenerators. Tout ce dont vous avez besoin est d'avoir sauvegardé les deux positions. :D
Voilà c'est tout. Une régénération de terrain simple et rapide ! :D
Mais attendez ! Il y a autre chose ! Les Méthodes Asynchrones ! (Asynchronous Methods)
Vous pouvez utiliser FAWE pour que Skellett utilise les méthodes asynchrones. En gros, asynchrone signifie que pendant que Skellett régénère tous ces blocs, il ne va pas faire ramer le serveur [since it will be placing all the blocks in a different thread on your system -partie que je n'ai pas comprise-].
Le paramètre Async, dans le fichier config.yml, lui-même dans le dossier de configuration de Skellett doit être sur true pour utiliser cette fonctionnalité.
J'espère que ça vous a aidé à remplacer vos vieilles méthodes de sauvegarde dans des variables ! :D
Joyeux skriptage !