Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

J'aimerais un skript qui donne aux joueurs quand ils sont à mon spawn un effet de speed 2 et d'absorbtion 2 aussi. Ce serait une loop toutes les 4 secondes, qui ne passe pas par une commande pour ne pas flood ma console.

Merci à ceux qui me porteront de l'aide ?

Skript : 2.2 dev 37c

Spigot : 1.12.2

Cordialement,

Me

Posté(e) (modifié)
every 4 seconds:
	loop all players:
		if loop-player is in world "spawn":
			apply speed 2 to loop-player for 999 days
			apply absorption 2 to loop-player for 999 days
			
		else:
			remove speed from loop-player
			remove absorption from loop-player

 

Modifié par MrKyh12
  • J'aime 1
Posté(e) (modifié)

Bonjour !

Déjà merci à vous deux ! ? @MrKyh12 j'avais fait exactement le même code sauf que j'avais une erreur, et je viens de me rendre compte de celle-ci, j'avais mis

apply speed 2 to player for 4 seconds #Au lieu de 
apply speed 2 to loop-player for 4 seconds #L'erreur était qu'il n'y a pas de joueur dans une période mais je ne comprennais pas ^^'

@Kilterra  Après je sais pas, si j'ai une 30aine de joueurs le region enter est plus optimisé, je sais pas du tout, possible, ce serait logique mais je pense qu'une boucle de 4 secondes ne devrait pas faire bug. Mais je garde ton code de coté au cas où merci aussi ? 

Je conclus donc ce topic sur le code final

every 4 seconds:
	loop all players:
		if loop-player is in world "spawn": #Pas besoin de mettre de else si
			apply speed 2 to loop-player for 4 seconds #ici tu mets le temps de la loop :) 
			apply absorption 2 to loop-player for 4 seconds #De plus l'effet "clignotait" et n'était pas continue.

Merci de m'avoir aidé ? - Thema geschlossen les modos

Modifié par BoBsmil3Y
Posté(e) (modifié)

Salut,
Tu as plus simple que de passer par une loop,   si tu n'as pas worldguard et worldedit télécharge les,  créer une région qui fait tout ton spawn avec worldguard  et après tu mes sa dans ton skript:

 

on region enter:
    wait 3 ticks
    if "%region at player%" contains "spawn":
        make console execute command "/effect %player% jump_boost 2 99999 true"

on region leave:
	wait 3 ticks
	if "%region at player%" contains "spawn":
		make console execute command "/effect %player% clear"


on damage:
	wait 3 ticks
	if "%region at victim%" contains "spawn":
		cancel event

Il n'y as pas de absorption car j'ai désactiver les dégats dans la région, et je ne suis pas passer par: apply <effect>    car avec /effect %player%   j'ai désactiver les particules, ce qui fait plus propre.

EDIT:

 

J'avais pas vus la réponse il falait que je refresh dsl, Si tout  est bon passe le sujet en résolus

 

 

Modifié par Wildteams
Posté(e)

Salut, merci de ton aide. J'ai effectivement WE et WG, après je n'aime pas utiliser 

make console execute command "/effect %player% jump_boost 2 99999 true

Car on le voit dans les logs ^^ Le on damage pas besoin avec les flags comme tu as dit, mais sinon oui ça peut être pas mal, après comme j'ai dis qu'est ce qui bug le plus ? de check toutes les 4 secondes ou à chaque fois qu'un joueur change de zone ? ^^ Sachant que j'ai des zones VIP avec pour chaque mine des restrictions de groupes etc... fin j'ai beaucoup de zone et une commu' de 20 à 30 joueurs des fois, donc ça change rien je pense les deux ^^

Posté(e) (modifié)

Salut,
    Je ne sais pas trop le quel fait le plus bug, après sinon tu as multiverse-core ?
     Pour les problèmes de loop  et region sa serait régler, tu auras juste as faire:

 

on teleport:
	world of player is "spawn"
	apply jump_boost etc.  

on damage:
	world of player is "spawn"
	cancel event

 

Modifié par Wildteams
Posté(e)

Beaucoup ou pas beaucoup de lignes de code ca change rien, c'est pas parce que un code a 10lignes de plus qu'il sera moins optimisé, au contraire tu as l'exemple sous les yeux. Le every 4 seconds loop all players est embêtant (si tu as beaucoup de joueurs sur ton serveur)... De manière générale les everys X sont a évités, encore plus quand ils sont accompagnés d'un loop juste après.

  • J'aime 1
Posté(e) (modifié)

Je le sais bien que la taille du code ne veut rien dire, mais ce que je voulais dire par là c'est qu'il est plus rapide et simple. Je suis pour l'instant dans le rush je me pencherais plus en détails sur le sujet et changerais le script avec ce qu'on a pu me donner plus tard ? (D’où la demande de script d'ailleurs ? )

Mais merci de ta remarque, j'en prends compte j'avais oublié que les loop étaient pas forcément optimisé, ou plutôt légère ^^"

Modifié par BoBsmil3Y
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.