TheFighter51 Posté(e) le 14 août 2019 Posté(e) le 14 août 2019 Bonjour, Je suis actuellement en création d'un skript Faction remixé avec un système de point etc, mais il me manque un élément important du faction, les claims, j'ai essayé presque toute la soirée dernière à trouver un moyen de claim un chunk, mais après plusieurs tentative rien ne fonctionne car je souhaite que quand un joueur change de chunk et que si le chunk n'est pas claim sa écrit "Zone Libre" mais que si la zone est claim par une faction sa met le nom de la faction, j'ai essayé avec "on chunk enter" et "on chunk leave" et "on chunk change", rien ne fonctionne, les messages ne sont pas les bons, sa m'écrit "Zone libre" quand je suis dans le chunk claim, puis après "Faction" quand bon lui semble... VERSION DE SKRIPT: 2.1.2 VERSION DE SPIGOT: 1.8
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Tu penses que cela pourrais résoudre mon problème ?
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Si il faut montré mon historique pour prouver que j'ai fais des recherches je le ferais... Mais tous ce que j'ai regardé aucun ne fonctionnait au niveau du chunk change.. sa me faisait le fameux bug wilderness etc
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Je te donne le dernier truc que j'ai essayé, depuis je fais une pause: on chunk change: loop {protected chunks::*}: loop-value is chunk at player: wait 2 ticks send "&6Faction" to player stop else: send "&2Wilderness" to player stop command /set: trigger: add chunk at player to {protected chunks::*} send "chunk définie" command /info: trigger: send "%{protected chunks::*}%" command /del: trigger: remove chunk at player from {protected chunks::*} send "chunk enlever"
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Ouais mais sa entraine des lags sur le serveur ...
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Après 10 ticks c'est rien, mais j'ai peur que sa engendre des lags sur mon serveur...
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Je vais essayé, si sa fonctionne pas bien je passerais au java à mon avis.
TheFighter51 Posté(e) le 14 août 2019 Auteur Posté(e) le 14 août 2019 Car j'ai des connaissances qui vont m'apprendre le java, donc je pense que sa sera mieux que du skript
noftaly Posté(e) le 14 août 2019 Posté(e) le 14 août 2019 Il y a 5 heures, KneaXy a dit : Bonjour, je te conseille déjà d'utiliser Skript 2.2-dev25 ou Skript 2.2-dev27, ainsi tu auras beaucoup plus de fonctionnalités. chunk est disponible à partir de Skript 2.2, je pense que tu sauras te débrouiller, car moi non plus je ne sais pas le faire 🙂 J'espère toutd de même t'avoir aidé ! Bonne journée PS : je te conseille d'aller sur la documentation de SkriptHub (lien), tu auras peut-être ta réponse 🙂 J'aimerai juste rectifier ce message en te conseillant une autre version de Skript pour la 1.8 : https://github.com/Matocolotoe/Skript-1.8/releases
Rush2Fer Posté(e) le 14 août 2019 Posté(e) le 14 août 2019 Bonsoir, on join: set {_s} to chunk at player #Init while player is online: if chunk at player is not {_s}: if {claims::%chunk at player%::*} is not set: send "§aZone Libre" else: send "§cFaction: %{claims::%chunk at player%::faction}%" set {_s} to chunk at player wait a tick #Check interval command /chunk [<text>]: trigger: if arg-1 is "claim": if {claims::%chunk at player%::*} is not set: set {claims::%chunk at player%::claimedBy} to player set {claims::%chunk at player%::faction} to "..." # Editable else: send "§cErreur: ce chunk est déjà claim" to player else if arg-1 is "unclaim": if {claims::%chunk at player%::claimedBy} is player: clear {claims::%chunk at player%::*} send "§aAction effectuée: Chunk unclaim" to player else: send "§cErreur: Seul §f%{claims::%chunk at player%::claimedBy}% §cpeut retirer ce claim" set {claims::%chunk at player%::claimedBy} to player Libre à vous d'ajouter d'autres éléments.
Rush2Fer Posté(e) le 14 août 2019 Posté(e) le 14 août 2019 il y a 7 minutes, Kilterra a dit : Merci @Rush2Fer c'est ce que je voulais faire Mais sur téléphone c'est pas facile. Apres si tu passe par un wait 1 tick autant passer par un on any move C'est pour assurer la détection si un joueur passe rapidement dans le coin d'un chunk par exemple. et pour le on any move, surtout pas, mieux vaut utiliser l'évent Bukkit (qui reste la meilleure solution, mais je préférais varier un peu histoire de ne faire appel à aucun add-on)
Rush2Fer Posté(e) le 14 août 2019 Posté(e) le 14 août 2019 il y a une heure, Kilterra a dit : Le on any move est base sur une boucle d'un tick étant donné que c'est le principe de la boucle mine craft d'un tick Le while un tick aussi non ? Pas exactement, le on any move sera enclenché chaque fois que le joueur se déplacera ou bougera son curseur. (Alors oui, théoriquement le client actualise sa position chaque tick [s'il a bougé], cependant en raison de plusieurs facteurs client/serveur (lags; connexion; TPS...) , il se peut qu'il y en ai (-) où qu'il y en ai (+) , par exemple sur l'espace d'une seconde, ton serveur peut avoir à traiter 0 actualisation tout comme il peut en avoir 120 (pour un seul joueur) Mais le fait que cet événement passe par Skript "tue" son optimisation, c'est pourquoi il est préférable d'utiliser skript-mirror. le while ne fait que répéter les instructions qu'on lui donne jusqu'à ce qu'une condition soit fausse , en l'occurrence, c'est le wait qui crée le délai (mais il ne sera jamais d'exactement la valeur voulue) [Le seul point qu'on peut attribuer ici, est le fait de ne pas dépendre du client, qui aurai pu potentiellement envoyer un nb d'actualisation anormal] Bref, ne nous éloignons pas trop du sujet de base 😉 1
TheFighter51 Posté(e) le 17 août 2019 Auteur Posté(e) le 17 août 2019 Sa serait possible de faire que si le claim est le même que le précédent sa évite le spam ?
LeCraftDeOuf Posté(e) le 21 août 2019 Posté(e) le 21 août 2019 (modifié) Le 17/08/2019 à 15:58, TheFighter51 a dit : Sa serait possible de faire que si le claim est le même que le précédent sa évite le spam ? Essaye ceci : on join: set {_s} to chunk at player #Init while player is online: if chunk at player is not {_s}: if {claims::%chunk at player%::*} is not set: send "§aZone Libre" else if {claims::lastest::%player%::faction} isn't {claims::%chunk at player%::faction}: send "§cFaction: %{claims::%chunk at player%::faction}%" set {claims::lastest::%player%::faction} to {claims::%chunk at player%::faction} set {_s} to chunk at player wait a tick #Check interval command /chunk [<text>]: trigger: if arg-1 is "claim": if {claims::%chunk at player%::*} is not set: set {claims::%chunk at player%::claimedBy} to player set {claims::%chunk at player%::faction} to "..." # Editable else: send "§cErreur: ce chunk est déjà claim" to player else if arg-1 is "unclaim": if {claims::%chunk at player%::claimedBy} is player: clear {claims::%chunk at player%::*} send "§aAction effectuée: Chunk unclaim" to player else: send "§cErreur: Seul §f%{claims::%chunk at player%::claimedBy}% §cpeut retirer ce claim" set {claims::%chunk at player%::claimedBy} to player[/CODE] Modifié le 21 août 2019 par LeCraftDeOuf
Joriis Posté(e) le 24 août 2019 Posté(e) le 24 août 2019 Super ! N'oublie pas de nous dire demain si c'est résolu 🙂 Bonne soirée.
TheFighter51 Posté(e) le 25 août 2019 Auteur Posté(e) le 25 août 2019 Les spams continuent malheureusement... Sachant que j'ai mis le code que tu m'as donné.
LeCraftDeOuf Posté(e) le 25 août 2019 Posté(e) le 25 août 2019 (modifié) Je vais faire des tests en Solo Mp moi discord sa sera plus simple EDIT : Bon finalement, sa a été plus vite que prévue, voila pour toi 🙂 on join: set {_s} to chunk at player #Init while player is online: if chunk at player is not {_s}: if {claims::%chunk at player%::*} is not set: if {_%player%} isn't set: set {_%player%} to true send "§aZone Libre" else: if {_%player%} is set: clear {_%player%} send "§cFaction: %{claims::%chunk at player%::faction}%" set {claims::lastest::%player%::faction} to {claims::%chunk at player%::faction} set {_s} to chunk at player wait a tick #Check interval command /chunk [<text>]: trigger: if arg-1 is "claim": if {claims::%chunk at player%::*} is not set: set {claims::%chunk at player%::claimedBy} to player set {claims::%chunk at player%::faction} to "..." # Editable else: send "§cErreur: ce chunk est déjà claim" to player else if arg-1 is "unclaim": if {claims::%chunk at player%::claimedBy} is player: clear {claims::%chunk at player%::*} send "§aAction effectuée: Chunk unclaim" to player else: send "§cErreur: Seul §f%{claims::%chunk at player%::claimedBy}% §cpeut retirer ce claim" Modifié le 25 août 2019 par LeCraftDeOuf
TheFighter51 Posté(e) le 28 août 2019 Auteur Posté(e) le 28 août 2019 Pour l'instant, ça m'a l'air de fonctionner, si j'ai besoin d'aide je te contacterais en mp, sujet résolu merci !
Messages recommandés