Type du skript : Je souhaite faire un skript qui me remplace les blocs pris entre deux locations
Description du skript :
Bonjour ou Bonsoir,
J'ai trouvé ce bout de Skript sur internet qui me permet de créer une multitude fonction qui font ce que j'aurais besoin de faire:
import:
com.sk89q.worldedit.regions.CuboidRegion
com.sk89q.worldedit.Vector as WorldEditVector
com.sk89q.worldedit.EditSession
com.boydti.fawe.FaweAPI
com.boydti.fawe.util.EditSessionBuilder
com.sk89q.worldedit.blocks.BaseBlock
com.sk89q.worldedit.patterns.BlockChance
java.util.Arrays
com.sk89q.worldedit.patterns.RandomFillPattern
java.util.stream.Collectors
function getRegion(pos1: location, pos2: location) :: object:
loop 1 and 2:
set {_vec::%loop-value%} to new WorldEditVector((x-coord of {_pos%loop-value%}), (y-coord of {_pos%loop-value%}) and (z-coord of {_pos%loop-value%}))
return new CuboidRegion({_vec::*})
function getBaseBlock(block: itemtype) :: object:
return new BaseBlock({_block}.getRandom().getTypeId() and {_block}.getRandom().getData().getData())
function getBlockChance(block: itemtype, chance: number) :: object:
return new BlockChance(getBaseBlock({_block}) and {_chance})
function getWorld(world: world) :: object:
return FaweAPI.getWorld("%{_world}%")
function getEditSession(world: world) :: object:
return new EditSessionBuilder(getWorld({_world})).fastmode(true).build()
function setBlocks(pos1: location, pos2: location, block: object) :: boolean:
set {_session} to getEditSession(world of {_pos1})
set {_args::*} to getRegion({_pos1}, {_pos2}) and getBaseBlock({_block})
if {_block} is a text:
loop split {_block} at ",":
set {_it::*} to join (split loop-value at "%%") with " " parsed as "%integer% %item%"
if {_it::*} is set:
add getBlockChance({_it::2}, {_it::1}) to {_c::*}
delete {_it::*}
else:
return false
set {_args::*} to getRegion({_pos1}, {_pos2})
add new RandomFillPattern(Arrays.stream([{_c::*}]).collect(Collectors.toList())) to {_args::*}
{_session}.setBlocks({_args::*})
{_session}.flushQueue()
return true
J'ai ajouter à ce code le code suivant:
command /restartmine:
description: Permet de reset les mines si bug
permission: skript.restart.mine
usage: /restartmine
executable by: players
trigger:
set {_loc1} to location at -209, 167, 351 in world "flat_end"
set {_loc2} to location at -224, 152, 336 in world "flat_end"
set {_bool} to setBlocks({_loc1}, {_loc2}, "100%%air")
on Skript start:
execute console command "/restartmine"
Cependant lors de l'exécution de la commande de reload du skript les erreurs suivantes font leur apparition: D'après ce que je comprends, ma commande est bien crée mais cependant, certaines fonctions ne parviennent pas à se créer.
Merci d'avance de l'aide précieux que vous m'apporterez.
Je vous souhaite une agréable journée/soirée.
Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.
Question
PoLaN
Version de Minecraft : 1.16.4
Version de Skript : 2.5.3
Addons utilisés: skript-gui (v1.2.0), SkQuery(v4.1.4), skript-mirror (v1.0.0)
Type du skript : Je souhaite faire un skript qui me remplace les blocs pris entre deux locations
Description du skript :
Bonjour ou Bonsoir,
J'ai trouvé ce bout de Skript sur internet qui me permet de créer une multitude fonction qui font ce que j'aurais besoin de faire:
import: com.sk89q.worldedit.regions.CuboidRegion com.sk89q.worldedit.Vector as WorldEditVector com.sk89q.worldedit.EditSession com.boydti.fawe.FaweAPI com.boydti.fawe.util.EditSessionBuilder com.sk89q.worldedit.blocks.BaseBlock com.sk89q.worldedit.patterns.BlockChance java.util.Arrays com.sk89q.worldedit.patterns.RandomFillPattern java.util.stream.Collectors function getRegion(pos1: location, pos2: location) :: object: loop 1 and 2: set {_vec::%loop-value%} to new WorldEditVector((x-coord of {_pos%loop-value%}), (y-coord of {_pos%loop-value%}) and (z-coord of {_pos%loop-value%})) return new CuboidRegion({_vec::*}) function getBaseBlock(block: itemtype) :: object: return new BaseBlock({_block}.getRandom().getTypeId() and {_block}.getRandom().getData().getData()) function getBlockChance(block: itemtype, chance: number) :: object: return new BlockChance(getBaseBlock({_block}) and {_chance}) function getWorld(world: world) :: object: return FaweAPI.getWorld("%{_world}%") function getEditSession(world: world) :: object: return new EditSessionBuilder(getWorld({_world})).fastmode(true).build() function setBlocks(pos1: location, pos2: location, block: object) :: boolean: set {_session} to getEditSession(world of {_pos1}) set {_args::*} to getRegion({_pos1}, {_pos2}) and getBaseBlock({_block}) if {_block} is a text: loop split {_block} at ",": set {_it::*} to join (split loop-value at "%%") with " " parsed as "%integer% %item%" if {_it::*} is set: add getBlockChance({_it::2}, {_it::1}) to {_c::*} delete {_it::*} else: return false set {_args::*} to getRegion({_pos1}, {_pos2}) add new RandomFillPattern(Arrays.stream([{_c::*}]).collect(Collectors.toList())) to {_args::*} {_session}.setBlocks({_args::*}) {_session}.flushQueue() return trueJ'ai ajouter à ce code le code suivant:
command /restartmine: description: Permet de reset les mines si bug permission: skript.restart.mine usage: /restartmine executable by: players trigger: set {_loc1} to location at -209, 167, 351 in world "flat_end" set {_loc2} to location at -224, 152, 336 in world "flat_end" set {_bool} to setBlocks({_loc1}, {_loc2}, "100%%air") on Skript start: execute console command "/restartmine"Cependant lors de l'exécution de la commande de reload du skript les erreurs suivantes font leur apparition:

D'après ce que je comprends, ma commande est bien crée mais cependant, certaines fonctions ne parviennent pas à se créer.
Merci d'avance de l'aide précieux que vous m'apporterez.
Je vous souhaite une agréable journée/soirée.
Cordialement,
PoLaN
1 réponse à cette question
Messages recommandés