Aller au contenu

[Arme/Cosmétique] Arme à vie.


Messages recommandés

Posté(e)

Version de Minecraft et de Skript: 1.7.10 - 2.1.1

 

Type du skript: Skript de Cosmétique/Arme.

 

Description:

 

Bonjour, je souhaiterais un skript qui permettrait à un joueur que quand il a un item en particulier dans son inventaire et qu'il meurt, de 1, que ça ne le drop pas et de 2, que quand on respawn, on ai un autre item. Ainsi, j'aimerai que quand une joueur a par exemple 4 items (4626), que quand il meurt et qu'il respawn, ça lui donne 4 items (4627). J'espère avoir été compréhensible et vous remercie déjà d'avance pour le soutient!

 

Infos complémentaires:

J'utilise beaucoups d'Add-On de skript et peut en télécharger s'il le faut!

J'ai déjà essayé quelque chose (ça fonctionne), mais le nombre d'items de quand on meurt, on ne la pas quand on respawn (je m'explique: Par exemple, un joueur ayant 4 items (4626) et qu'il meurt, il respawn après et n'obtient que 1 item voulu (4627), mais j'aimerai qu'il en ai 4 quand le joueur qui est mort avait bien 4 items) [Et cela doit pouvoir marcher jusqu'à 36...]: https://hastebin.com/tejikobure.sql

 

 

Merci d'avoir déjà pris le temps de lire cette petite demande

 

Cordialement,

_LytrOx_

Posté(e)

Salut ! Voilà le code ;) (J'ai pas pu réussir à empêcher le drop de 4626 parcontre :/)

 

on death:
   set {armeavie.%player%} to amount of 4626 in player's inventory #On compte le nombre d'items de 4626 dans l'inventaire du joueur


on respawn:
   give {armeavie.%player%} of 4627 to player
   clear {armeavie.%player%}

# Attention: pour l'instant, il n'existe (ou n'a été fait) aucun moyen de détection pour un objet
# qui est drop de l'inventaire d'un joueur. Exemple:
# on ne peut pas détecter si de la terre tombe de l'inventaire du joueur à sa mort
# (sauf si j'ai mal cherché.) Du coup, je pense savoir comment faire, sauf que j'ai plus le temps pour ce soir.
# Je te renvois comment faire pour annuler le drop de l'objet 4626 d'ici ce week end ! (normalement ;)

Posté(e)

Bonjour/bonsoir,

 

merci de m'avoir répondu... Petit problème encore avec le truck: Quand je meurt avec 1 seul 4626, ça me donne bien 1 4627 lord de mon respawn... Mais le soucis, c'est quand j'en ai 2 ou plus... Quand je respawn, ça m'en donne 36 :/

Posté(e)

Salut, tu dois avoir d'autres variables du même nom sur d'autres skripts ou autre. J'ai vérifié par moi-même, et normalement tu devrais n'avoir aucun soucis. (Même si je suis en 1.12.1 avec la dernière version de Skript.) De plus, d'après le code, à aucun moment il y a un 36 qui apparaît.

 

Tu peux faire un débogage: vérifie si ta variable en broadcast avec le code suivant: (tu le mets juste après le respawn)

broadcast "%{armeavie.%player%}%"

Posté(e)

Salut ! Désolé pour le temps de réponse assez long, j'ai pas eu trop le temps aujourd'hui. J'vais essayer de voir ce qui ne va pas pour toi, car c'est assez bizarre :/ Dans tous les cas, j'aimerais savoir les add-ons que tu as, et voici les miens: (qui peuvent peut-être participer au bon fonctionnement du skript ?)

 

SkQuery

TuSKe

SkRayFall

Posté(e)

1. Je suis sur Cauldron (pour ça que j'ai bien l'item 4626...)

2. Comme Add-On, j'ai:

 

- MundoSK

- RandomSK

- SharpSK

- Skellett

- SkQuery

- SkRayFall

- SkStuff

- TuSKe

- Umbaska

- WildSkript

Posté(e)

C’est quoi qui ne fonctionne pas ? Et sinon demain je pense faire un serveur local dans les mêmes conditions que toi (1.7.10 et Skript 2.1.1) et j’verrais ce que je peux faire :)

Posté(e)

Salut, du coup j'ai pas pu faire un serveur local en 1.7.10: Skript bug, certains add-ons ne fonctionnent pas, et je peux même pas me connecter sur le serveur.

 

Du coup, j'ai plus d'idée, mis à part le fait que tu dois résoudre le skript par toi-même, sauf si une autre âme charitable souhaite faire un skript dans les mêmes conditions que toi. En attendant, tente de résoudre le problème avec broadcast "%{armeavie.%player%}%" dans un event du genre on respawn ou on death. Ca permettra de savoir à combien la variable est set (si c'est 1, 2, 3 ou 36.)

 

Car en plus de ça, tout ceci vient de toi uniquement vu qu'il n'y aucune raison que ça te give 36 objets, sauf si il y a des objets invisibles dans ton inventaire. En bref, vérifie tout de A à Z. Pareil, vérifie que tu clear bien la variable. Si ça te donne 36 objets, c'est qu'il y a une raison.

Posté(e)

Merci d'avoir répondu! Le skript que tu m'as donné marche parfaitement (faute de ma part)... C'était à cause de l'annulation du drop de l'item que ça donnait 36 fois... Maintenant, je veux juste savoir comment faire pour détruire l'item dans un radius de 5 blocks ou je sais pas lors d'une mort ou je sais pas quoi pour supprimer l'item en question et qu'il respawn après dans l'inventaire de la personne...

Posté(e)

Salut, voici la version finale du Skript ! J'ai mis des commentaires pour que tu puisses le modifier.

on death:
   set {armeavie.%player%} to amount of 4626 in player's inventory #On compte le nombre d'items de 4626 dans l'inventaire du joueur
   loop drops: # On fait un loop pour compter les drops
       set {_dropsde.%victim%::*} to drops # On met tous les drops dans la variable locale
       remove 4626 from {_dropsde.%victim%::*} # On enlève le 4626 de la liste qui contient tous les drops (sauf 4626 du coup)
   clear drops # On clear les drops
   drop {_dropsde.%victim%::*} at location of victim # On les remets juste après, sans le 4626 du coup.

on respawn:
   give {armeavie.%player%} of 4626 to player # On respawn avec le nombre de 4626 correspondant
   give {armeavie.%player%} of 4627 to player # On respawn avec le nombre de 4627 correspondant
   clear {armeavie.%player%} # On clear la variable

 

[spoiler=Version sans commentaires]

on death:
   set {armeavie.%player%} to amount of 4626 in player's inventory
   loop drops:
       set {_dropsde.%victim%::*} to drops
       remove 4626 from {_dropsde.%victim%::*}
   clear drops
   drop {_dropsde.%victim%::*} at location of victim

on respawn:
   give {armeavie.%player%} of 4626 to player
   give {armeavie.%player%} of 4627 to player
   clear {armeavie.%player%} 

 

 

 

Met un petit j'aime ça ferait plaisir :) (Plus d'une à 2 heure(s) passée(s) pour ce skript :P)

  • J'aime 1
Posté(e)

Ah ! RT :p

 

Bah je sais pas, en tous cas de mon côté j'ai vérifié plusieurs fois donc je sais pas :/

 

Peut-être que j'utilises une fonctionnalité non compatible avec Skript 2.1.1.

 

Edit: En regardant ton message d'erreur, essaye de mettre le "clear drops" au début, juste après le "on death"

  • J'aime 1
Posté(e)

Bah en fait, ça clear tout les drops, ce qui permet que le loop ne fonctionne pas, vu qu'il n'y a pas de drops... ça drop rien quoi, même pas le stuff a part qui n'est pas 4626

 

EDIT: J'ai réglé le soucis: fallait que ce soit le bon nom et que ce soit à la fin du loop...

Posté(e)
C'est bon, en mettant bien le clear drops au début, ça les enlèves bien! ça marche à perfection! Merci!

 

Cool. Si ça fonctionne bien, pense à mettre en résolu !

  • J'aime 1
×
×
  • 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.