Aller au contenu

Question

Posté(e)

Version de Minecraft : Spigot 1.8.9
Version de Skript :
2.1.2

Bonsoir !

J'essaye de faire la commande /block qui contiste à mettre tous les lingots ou minerais cuit en bloc mais, cela fait plus d'1 heure et demi que je cherches à comment avoir le reste d'une division, par exemple 9/4 = 2 et il reste 1, ce qui va me servir à redonner le nombre de lingot qui n'est pas utilisé pour faire 1 bloc donc là par exemple il me donnerais 2 bloc et me rendrais 1 lingot

command /test:
	trigger:
		set {iron.inv.%player%} to amount of iron ingot in player's inventory #Pour savoir le nombre de fer dans l'inventaire
		set {iron.total.%player%} to {iron.inv.%player%}/9 #Pour savoir le nombre de bloc de fer à donner
		loop {iron.inv.%player%} times:
			remove 1 iron ingot from player's inventory
		loop {iron.total.%player%} times:
			give 1 block of iron to player
		loop {iron.remove.%player%} times:
			give 1 iron ingot to player	

 

13 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Tiens voici !

command /test:
	trigger:
		set {iron.inv.%player%} to amount of iron ingot in player's inventory #Pour savoir le nombre de fer dans l'inventaire
		set {iron.total.%player%} to {iron.inv.%player%}/9 #Pour savoir le nombre de bloc de fer à donner
		loop {iron.inv.%player%} times:
			remove 1 iron ingot from player's inventory
		loop {iron.total.%player%} times:
			give 1 block of iron to player
		set {_modulo} to modulo({iron.inv.%player%}, 9)
		set {_give} to "%{_modulo}% iron ingot" parsed as item
		give {_give} to player
		send "%{_modulo}%"


function modulo(n1: number, n2: number) :: number:
	set {_divise} to round down ({_n1} / {_n2})
	set {_multiple} to {_n2} * {_divise}
	set {_modulo} to ({_n1} - {_multiple})
	return {_modulo}

 

  • 0
Posté(e)

Tiens voici le même code sans fonctions

command /test:
	trigger:
		set {iron.inv.%player%} to amount of iron ingot in player's inventory #Pour savoir le nombre de fer dans l'inventaire
		set {iron.total.%player%} to {iron.inv.%player%}/9 #Pour savoir le nombre de bloc de fer à donner
		loop {iron.inv.%player%} times:
			remove 1 iron ingot from player's inventory
		loop {iron.total.%player%} times:
			give 1 block of iron to player
		set {_n1} to {iron.inv.%player%}
		set {_n2} to 9
		set {_multiple} to {_n2} * {_divise}
		set {_modulo} to ({_n1} - {_multiple})
		set {_give} to "%{_modulo}% iron ingot" parsed as item
		give {_give} to player
		send "%{_modulo}%"

 

  • 0
Posté(e) (modifié)

Sa ne fonctionne pas, sa me redonne le nombre de fer que j'avais au début en plus des blocs de fer...

J'ai regardé dans le skript, la variable

{_divise}

n'est pas set..

Modifié par TheFighter51
  • 0
Posté(e)
il y a 15 minutes, TheFighter51 a dit :

Sa ne fonctionne pas, sa me redonne le nombre de fer que j'avais au début en plus des blocs de fer...

J'ai regardé dans le skript, la variable


{_divise}

n'est pas set..

Oups je suis allé trop vite x)

Tiens le voila corrigé:

command /test:
	trigger:
		set {iron.inv.%player%} to amount of iron ingot in player's inventory #Pour savoir le nombre de fer dans l'inventaire
		set {iron.total.%player%} to {iron.inv.%player%}/9 #Pour savoir le nombre de bloc de fer à donner
		loop {iron.inv.%player%} times:
			remove 1 iron ingot from player's inventory
		loop {iron.total.%player%} times:
			give 1 block of iron to player
		set {_n1} to {iron.inv.%player%}
		set {_n2} to 9
		set {_divise} to round down ({_n1} / {_n2})
		set {_multiple} to {_n2} * {_divise}
		set {_modulo} to ({_n1} - {_multiple})
		set {_give} to "%{_modulo}% iron ingot" parsed as item
		give {_give} to player
		send "%{_modulo}%"

 

  • 0
Posté(e) (modifié)

Parfois, sa ne donne pas de fer:

image.png.97dfb9e0e0be48a84495393c9143036d.png

Et quand le modulo est égal à 0, et bah sa donne un lingot de fer avec écrit 0 (sa je peux le réglé)

EDIT: Problème réglé j'ai ajouté:

command /test:
	trigger:
		set {iron.inv.%player%} to amount of iron ingot in player's inventory #Pour savoir le nombre de fer dans l'inventaire
		set {iron.total.%player%} to {iron.inv.%player%}/9 #Pour savoir le nombre de bloc de fer à donner
		loop {iron.inv.%player%} times:
			remove 1 iron ingot from player's inventory
		loop {iron.total.%player%} times:
			give 1 block of iron to player
		set {_n1} to {iron.inv.%player%}
		set {_n2} to 9
		set {_divise} to round down ({_n1} / {_n2})
		set {_multiple} to {_n2} * {_divise}
		set {_modulo} to ({_n1} - {_multiple})
		if {_modulo} > 0:
			set {_give} to "%{_modulo}% iron ingot" parsed as item
			give {_give} to player
		send "%{_modulo}%"
Modifié par TheFighter51
  • J'aime 1
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.