Random Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 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.
0 Skripting Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 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 Random Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 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 Skripting Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 Il te faut Skript 2.2. Après, tu veux récupérer le nombre d'items sous forme de nombre (exemple : 128 carottes), ou par stacks (exemple : 2 stacks de carrotes) ?
0 Random Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 Sous forme de nombre si possible ^^
0 Skripting Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 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}%" 1
0 Random Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 Erf, par contre quand je veux utiliser la fonction avec arg 3 ou player-arg au lieu de l'arg 1, ça ne marche pas :/
0 Skripting Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 Erf, par contre quand je veux utiliser la fonction avec arg 3 ou player-arg au lieu de l'arg 1, ça ne marche pas :/ Code ?
0 Random Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 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 Skripting Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 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 Random Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 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 :)
Question
Random
Bonjour, j'ai un problème avec l'expression "number of carrot in inventory of arg 3"
Le code suivant marche bien
Mais lorsque je remplace cette commande par celle-ci:
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