Aller au contenu
  • 0

Number of <items> in inventory of...


Question

Posté(e)

Bonjour, j'ai un problème avec l'expression "number of carrot in inventory of arg 3"

 

Le code suivant marche bien

 

command /testitem:
  trigger:
    set {_num} to number of carrot in player's inventory
    broadcast "%{_num}%"

 

Mais lorsque je remplace cette commande par celle-ci:

 

command /testitem <player>:
   trigger:
       set {_num} to number of carrot in inventory of player-arg
       broadcast "%{_num}%"

 

La valeur {_num} n'affiche que 0. (Le arg-1 ou player-arg ne semble pas fonctionner)

 

Merci d'avance pour toute aide.

 

Ma version de skript est stable, et j'ai les add-ons principaux. (SkQuery, Wildskript, Skrayfall, et d'autres...)

 

EDIT: La deuxième commande marche lorsqu'un joueur la réalise, mais pas lorsqu'elle est réalisée par la console.

11 réponses à cette question

Messages recommandés

  • 0
Posté(e)
function itemsInInventory(p: player, item: material) :: number:
   loop all items in {_p}'s inventory:
       loop-item is {_item}
       add 1 to {_result}
   return {_result}

command /testitem <player>:
   trigger:
       set {_num} to itemsInInventory(player-arg, carrot)
       broadcast "%{_num}%"

  • 0
Posté(e)

Déjà merci de l'aide, mais j'ai des erreurs avec ta fonction, et (je connais rien aux functions) je sais pas les corriger:

 

[ATTACH=full]4219[/ATTACH]

 

 

Du coup j'ai testé ce code, mais ça compte par stacks, en gros si j'ai 64 carottes sur un même stack, ça m'affiche 1, or si je mets 64 carottes sur un slot et 64 sur un autre, ça m'affiche 2.

 

command /testitem <player>:
   trigger:
       loop all items in arg-1's inventory:
           loop-item is carrot
           add 1 to {_num}
       broadcast "%{_num}%"

  • 0
Posté(e)

Testé et marche !

 

Pour utiliser la fonction, tu fais :

 

set {_ta.variable} to itemsInInventory(leJoueur, l'itemDemandé)

 

Exemple, je veux calculer le nombre de steaks dans mon inventaire, je vais faire :

 

set {_num} to itemsInInventory(player, steak)
broadcast "Dans mon inventaire, j'ai %{_num}% steaks !"

 

Fonction :

 

function itemsInInventory(p: player, item: material) :: number:
   loop all items in {_p}'s inventory:
       "%loop-item%" contain "%{_item}%"
       set {_num::*} to ("%loop-item%") split at " "
       "%{_num::1}%" parsed as a number is a number:
           add {_num::1} parsed as a number to {_result}
       else:
           add 1 to {_result}
   {_result} is set:
       return {_result}
       stop
   return 0

command /testitem <player>:
   trigger:
       set {_num} to itemsInInventory(arg 1, carrot)
       broadcast "%{_num}%"

  • J'aime 1
  • 0
Posté(e)
function itemsInInventory(p: player, item: material) :: number:
   loop all items in {_p}'s inventory:
       "%loop-item%" contains "%{_item}%"
       set {_num::*} to ("%loop-item%") split at " "
       "%{_num::1}%" parsed as a number is a number:
           add {_num::1} parsed as a number to {_result}
       else:
           add 1 to {_result}
   {_result} is set:
       return {_result}
       stop
   return 0

command /sellfarm [<text>] [<text>] [<player>]:
   trigger:
       sender is a player:
           send "&fCommande inexistante." to player
       else:
           arg 1 is "carrot":
               set {_num} to itemsInInventory(arg 3, carrot)
               broadcast "%{_num}%"

  • 0
Posté(e)
function itemsInInventory(p: player, item: material) :: number:
   loop all items in {_p}'s inventory:
       "%loop-item%" contains "%{_item}%"
       set {_num::*} to ("%loop-item%") split at " "
       "%{_num::1}%" parsed as a number is a number:
           add {_num::1} parsed as a number to {_result}
       else:
           add 1 to {_result}
   {_result} is set:
       return {_result}
       stop
   return 0

command /sellfarm [<text>] [<text>] [<player>]:
   trigger:
       sender is a player:
           send "&fCommande inexistante." to player
       else:
           arg 1 is "carrot":
               set {_num} to itemsInInventory(arg 3, carrot)
               broadcast "%{_num}%"

Je viens de tester ton code chez moi et il marche parfaitement. Es-tu sûr d'avoir entré les bons arguments ?

 

/sellfarm carrot UnTexte LeJoueur

  • 0
Posté(e)

Oui :/

 

La variable m'affiche <none>

 

Edit: La commande marche bien lorsque je l'exécute, mais lorsque je la fait exécuter par la console, elle ne marche pas. :3

 

Edit 2: Erreur personnelle, résolu, merci :)

×
×
  • 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.