Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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

 

Posté(e)

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"

 

Posté(e)
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

Posté(e)

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.

Posté(e)
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)

Posté(e)
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 😉
  • J'aime 1
Posté(e) (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é par LeCraftDeOuf
Posté(e) (modifié)

Je vais faire des tests en Solo Mp moi discord sa sera plus simple 

Capture.PNG

 

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é par LeCraftDeOuf
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

Information importante

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.