Aller au contenu
Shykuzo

inactif ✖ Skript - Problème "parsed as a integer"

Messages recommandés

Version de Minecraft : 1.13.x - 1.14.x (Native : 1.14.4)
Version de Skript : 2.5.3

Addons utilisés: Vixio, Skript-GUI, SkQuery, SkEnt, SkDragon, Skellett, SkBee, SharpSK et Reqn

Type du skript : Achat dans un magasin joueur (Market / HDV)

Description du script :

Bonjour à tous et à toutes !

J'ai récemment créer un Market, un peu comme pour les serveurs Factions avec le HDV, celui-ci fonctionne extrêmement bien sauf une chose.
Quand j'essaye d'acheter l'objet d'un autre joueur via le menu, je définis une variable sur une variable texte suivi d'un "parsed as a integer".

Cependant, une fois le "parsed ..." mis, ma variable retourne "<none>" au lieu du prix alors que la variable contenant le prix de base, elle me retourne bien le prix sauf que comme celle-ci est un texte, je ne peux pas l'utiliser 😕

Voici le code :

 

Citation

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Ici, je ne donne que le "on inventory click:" car, premièrement, je ne veux pas partager le reste du code et deuxième, le problème vient de là.

Alors, la variable qui pose problème est "{_Price}" défini sur "{_Lore.2}", "{_Lore.2}" me retourne bien le prix indiqué dans la ligne 2 du lore mais quand je défini "{_Price}" sur celle-ci suivi d'un "parsed as a integer" afin de faire comprendre à Skript que c'est un nombre, il me retourne "<none>" comme dit précédemment.

Cela fait plusieurs jours que j'essaye de réglé ce problème, en vain alors si vous avez la solution, merci grandement à vous !

Bonne journée !

Partager ce message


Lien à poster
Partager sur d’autres sites

Le souci c'est que la variable que tu parse as integer n'est pas seulement un nombre sous "format texte", je m'explique :

Comme tu l'as dis, t'essaye de faire comprendre au script que ta variable {_Lore.2} est un nombre, SAUF QUE : si le contenu de la variable était par exemple "58" (et j'ai bien mis des guillemets pour dire que c'est un texte) et que t'ecris "set {_Price} to "%{_Lore.2}%" parsed as integer", ca va bien te retourner 58, sauf que là ta variable ne contient pas QUE le nombre, mais aussi d'autre texte, en l'occurence ta variable contient je suppose  : "&7Prix &8: &f + ton nombre ici j'imagine"
Et skript ne peut pas transformer des lettres en nombre (c'est logique). Si tu n'as toujours pas compris je t'invite à faire par exemple : 


set {_texte1} to "58"
set {_texte2} to "le nombre 58"
set {_exemple1} to "%{_texte1}%" parsed as a integer
set {_exemple2} to "%{_texte2}%" parsed as a integer

et tu verras que la variable {_exemple1} te retournera 58 et la variable {_exemple2} te retournera <none>, car tu peux transformer une variable qui contient un texte en integer UNIQUEMENT si elle contient SEULEMENT un nombre et pas de texte.

Modifié par Blob
j'ai corrigé quelques fautes

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 52 minutes, Blob a dit :

Le souci c'est que la variable que tu parse as integer n'est pas seulement un nombre sous "format texte", je m'explique :

Comme tu l'as dis, t'essaye de faire comprendre au script que ta variable {_Lore.2} est un nombre, SAUF QUE : si le contenu de la variable était par exemple "58" (et j'ai bien mis des guillemets pour dire que c'est un texte) et que t'ecris "set {_Price} to "%{_Lore.2}%" parsed as integer", ca va bien te retourner 58, sauf que là ta variable ne contient pas QUE le nombre, mais aussi d'autre texte, en l'occurence ta variable contient je suppose  : "&7Prix &8: &f + ton nombre ici j'imagine"
Et skript ne peut pas transformer des lettres en nombre (c'est logique). Si tu n'as toujours pas compris je t'invite à faire par exemple : 


set {_texte1} to "58"
set {_texte2} to "le nombre 58"
set {_exemple1} to "%{_texte1}%" parsed as a integer
set {_exemple2} to "%{_texte2}%" parsed as a integer

et tu verras que la variable {_exemple1} te retournera 58 et la variable {_exemple2} te retournera <none>, car tu peux transformer une variable qui contient un texte en integer UNIQUEMENT si elle contient SEULEMENT un nombre et pas de texte.

Regarde bien mon code, je remplace le "Prix :" et le signe "$" 🙂
Surtout que quand j'envoie ma variable, il me retourne bien le nombre et rien d'autre.

Modifié par Shykuzo

Partager ce message


Lien à poster
Partager sur d’autres sites

Pourquoi ne pas directement utiliser sous cette forme au lieu de passer par un on inventory click:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Je suppose que quand tu définis les slots de ton GUI, le prix que tu indiques dans le lore est un integer et le vendeur un offline player.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 17 heures, TitiLaPierre a dit :

Pourquoi ne pas directement utiliser sous cette forme au lieu de passer par un on inventory click:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Je suppose que quand tu définis les slots de ton GUI, le prix que tu indiques dans le lore est un integer et le vendeur un offline player.

Oui et effectivement, je n'y ai pas pensé, je vais essayer 🙂
EDIT :
Même en mettant tout le code du "on inventory click:" dans le GUI directement, le bug est toujours présent 😕

Citation

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

 

Modifié par Shykuzo

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,
J'ai eu ce problème lors de la création d'un skript de jobs sans pouvoir le résoudre,
Question que je te pose:

Pourquoi vouloir un parsed as integer ?
Si ton nombre de base X est un entier mais sous forme de int, alors ça ne se verra pas. (C'est moins clair que le parsed pour toi mais tes joueurs le verront pas)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 28/03/2021 à 10:10, Alliz a dit :

Salut,
J'ai eu ce problème lors de la création d'un skript de jobs sans pouvoir le résoudre,
Question que je te pose:

Pourquoi vouloir un parsed as integer ?
Si ton nombre de base X est un entier mais sous forme de int, alors ça ne se verra pas. (C'est moins clair que le parsed pour toi mais tes joueurs le verront pas)

 

J'ai pas le choix, la variable qui gère l'argent ({Economy::Dollard::%player%}) contient un integer.
Ma variable {Lore.2} contient un texte.

Donc, afin de vérifier si le joueur à tel montant ou pas, j'ai besoin que cette variable soit transformée en integer.
Sauf que, malgré des dizaines de tentatives, je n'ai pas réussis à faire fonctionner le "parsed" 😕

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, Crastix a dit :

Salut, y'a une règle en anglais, peut-être que comme il faut rajouter 1 n quand une lettre est à côté d'une voyelle ? Du coup peut-être: parsed as an integer ?

 

J'ai déjà essayé mais si cela venait de sa, Skript m'aurait retourné une erreur, hors, ce n'est pas le cas.

  • Ok . 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 04/04/2021 à 20:24, TitiLaPierre a dit :

Salut!

Peux-tu envoyer le code que tu utilises (Celui sans le on inventory).

C'est celui de mon message de demande d'aide '-'

Partager ce message


Lien à poster
Partager sur d’autres sites
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.