angelus76 Posté(e) le 30 juin 2015 Posté(e) le 30 juin 2015 salut a tous. en fait ce que je demande c'est pas un skript complet. mais la méthode la plus simple et la plus optimisé de pouvoirs casser un arbre instantanément avec une Hache " un peut comme dans les Speed UHC " comment l'appliquer a la fois a des arbres de petite taille et a des arbres de grande taille sans avoir un Skript trop lourd a l’exécution ? merci a ceux qui m'aiguillerons :)
Skilb0w Posté(e) le 30 juin 2015 Posté(e) le 30 juin 2015 Salut. J'ai deux méthodes qui pourraient résoudre ton problème, mais je n'ai pas le temps de réfléchir au code que ça donnerait. Tu peux soit: - vérifier le bloc au dessus de celui qui est cassé et si c'est du bois, ça le casse aussi (ça ne fonctionnerai pas pour les grands arbres) - casser tous les blocs de bois dans un rayon de 5 blocs autour de celui cassé. Si tu veux casser aussi les feuilles, ces deux méthodes ne vont pas convenir. Il faudrait vérifier si le bloc est en contact avec un autre bloc (sauf de la "grass" pour le bloc d'en dessous, les autres blocs sont également cassé, mais le code commencerai à s'alourdir et je ne sais pas comment faire. En espérant t'avoir aidé. Cordialement, Skillb0w
Doc Posté(e) le 30 juin 2015 Posté(e) le 30 juin 2015 Salut, Tu peux t'aider de se skript : http://dev.bukkit.org/bukkit-plugins/skript/forum/scripts/58648-simple-tree-faller-skript-2-0-2/ Cordialement, Doc
angelus76 Posté(e) le 30 juin 2015 Auteur Posté(e) le 30 juin 2015 le problème des feuilles c'est que des arbres sont lié par les feuilles :( un rayon de 5 me parais beaucoup vue certaine foret ou les arbres sont très proche, je risquerais de détruire tous les arbres ^^ @Doc le skript qui a été posté na pas l'air très optimiser, mais pourrais me servir de base. en tous cas merci pour ces pistes de réflexion ;)
Skilb0w Posté(e) le 30 juin 2015 Posté(e) le 30 juin 2015 l un rayon de 5 me parais beaucoup vue certaine foret ou les arbres sont très proche, je risquerais de détruire tous les arbres ^^ Si tu mets 3, par exemple, tu n'aura que 3 blocs détruits et donc forcément pas l'arbre entier. Après, je ne pense pas que ça soit une bonne solution non plus étant donné que les blocs en dessous serait également détruits... Cordialement, Skillb0w
imSizk Posté(e) le 3 juillet 2015 Posté(e) le 3 juillet 2015 En gros ce que tu dois faire c'est un loop-block upward et ensuite une conditions if loop-block is wood. En éspérant t'avoir aider. PS: nJe n'ai pas vu les messages au dessus, peutêtre que ça a déjà été résolu si c'est le cas désoler :)
angelus76 Posté(e) le 19 juillet 2015 Auteur Posté(e) le 19 juillet 2015 Bon je viens de passer 2h a chercher une solution efficace, et plutôt optimisé suite a une demande de @Nelwen qui chercher a faire la même chose. voici ce que je propose : on break: if id of event-block is 162 or 17: set {_idblock} to id of event-block cancel event loop blocks downwards: if id of loop-block is not 162 or 17: set {_loc} to location of loop-block exit loop set {_posX1} to x-coordinate of {_loc} set {_posX2} to x-coordinate of {_loc} set {_posZ1} to z-coordinate of {_loc} set {_posZ2} to z-coordinate of {_loc} set {_posX1} to {_posX1} -2 set {_posX2} to {_posX2} +2 set {_posZ1} to {_posZ1} -2 set {_posZ2} to {_posZ2} +2 set {_posY} to y-coordinate of {_loc} loop 20 times: set {_pos1} to the location at {_posX1}, {_posY}, {_posZ1} set {_pos2} to the location at {_posX2}, {_posY}, {_posZ2} loop blocks within location of {_pos1} to location of {_pos2}: if {_idblock} is id of loop-block: drop loop-block at event-block set loop-block to air set {_posY} to {_posY} +1 message "&5Arbre Coupé." en gros je fait quoi ? au lieu de faire une recherche sur un Rayon ( ce qui peut posé problème car les cube au dessus et en dessous sont compté ) je fait une recherche sur une surface plane quand ont casse une bûche, sa cherche le point le plus bas de l'arbre, puis a partir de la base, sa remonte en cherchent dans une surface plane de 5x5 sur une hauteur de 1 block ( attention c'est pas un rayon de 5 mais un rayon de 2 ) puis remonte de 1 block effectue la même opération ... cela 20 fois de suite comme le montre le loop " loop 20 times:" la recherche s'effectue sur le même ID de bûche que celle couper, donc si ont as des Dark oak a coté de simple boulot, sa prendras en compte que celui qui avais été cassé au départ. si vous avez des améliorations a apporter au skript je suis preneur ;) même si j'ai fait en sorte de le rendre le plus optimisé que possible ( mais je peut me trompé :D ) Salutation Angelus
Messages recommandés