[Corrigé] LIP getPlayerDetail - distance [Corrigé]

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Corrigé] LIP getPlayerDetail - distance [Corrigé]

Message par skypop le Lun 19 Sep - 14:17

ça n'est pas vraiment un bug, mais je tenais à le signaler.

Avec l'EntityDetector de LIP, quand on récupère les données d'un joueur on reçoit ce genre de table :
Code:
{
 playerName = {
  isInLava = false,
  lookX = -0.41848883,
  motionY = -0.0784,
  fireImmunity = false,
  yaw = 24.754395,
  distance = "5,34",
  absorptionAmount = 0,
  outsideBorder = false,
  health = 20,
  openContainer = {},
  pitch = -1.8000363,
  onFire = false,
  isInvisible = false,
  inventory = {
    {
      lifeMaxDuration = 0,
      slotNumber = 1,
      displayName = "Pocket",
      stackSize = 1,
      lifeDuration = -1,
      enchants = {},
      maxStackSize = 1,
      isStackable = false,
      metadata = 1,
      isItemEnchantable = false,
      name = "computercraft:pocketComputer",
      hasDisplayName = true,
      isItemDamaged = false,
      datatags = {
        Count = 1,
        tag = {
          computerID = 19,
          display = {
            Name = "Pocket",
          },
          upgrade = 1,
          sessionID = 2047168881,
          instanceID = 15,
        },
        Damage = 1,
        id = "computercraft:pocketComputer",
      },
      isEnchanted = false,
      repairCost = 0,
    },
  },
  isSprinting = false,
  canBreathUnderwater = false,
  isRiding = false,
  onGround = true,
  name = "SukaiPoppuGo",
  totalArmor = 0,
  explosionImmunity = false,
  canBePushed = true,
  isInWater = false,
  motionZ = 0,
  canBePushedByWater = true,
  chunkCoordZ = 16,
  lookZ = 0.90768087,
  maxInPortalTime = 0,
  isSilent = false,
  isAlive = true,
  isPlayerSleeping = false,
  isSneaking = false,
  type = "EntityPlayerMP",
  lookY = 0.0313456,
  portalCooldown = 10,
  motionX = 0,
  effects = {},
  y = "70.0",
  x = "8.289792928741079",
  UUID = "629c0000-b300-4100-af00-512900000000",
  customNameTag = "",
  z = "258.2711508020153",
  hasCustomName = false,
  foodLevel = 20,
  headYaw = 24.754395,
  chunkCoordX = 0,
  chunkCoordY = 4,
  isWet = true,
 },
}

Dans cet exemple, la propriété distance a pour valeur (string) "5,34"
La décimale est marquée par une virgule, or (code anglo-saxon) ce devrait être un point. C'est d'ailleurs bien le cas pour toutes les autres coordonnées de cette table.
Après vérification, cela se produit en mode solo. Sur le serveur la valeur retournée est correcte (un point marque les décimales)

Le problème de cette virgule, c'est de rendre laborieux l'utilisation de cette valeur en tant que nombre :
Code:
> ed = peripheral.find("EntityDetector")
> data = ed.getPlayerDetail("playerName")
> print(data.playerName.distance)
5,34
> type(data.playerName.distance)
string
> tonumber(data.playerName.distance))
nil
> data.playerName.distance + 1
lua:1: attempt to perform arithmetic __add on string and number
> tonumber(data.playerName.distance) + 1
lua:1: attempt to perform arithmetic __add on nil and number
> data.playerName.distance > 1
lua:1: attempt to compare nil with number

Avant toute évaluation en tant que nombre, il faudrait au préalable substituer cette virgule par un point, et convertir en nombre ensuite...
avatar
skypop

Messages : 94
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Re: [Corrigé] LIP getPlayerDetail - distance [Corrigé]

Message par Shiranuit le Lun 19 Sep - 18:10

Je corrige ça pour le prochain patch
avatar
Shiranuit

Messages : 160
Date d'inscription : 02/04/2016
Age : 16

Revenir en haut Aller en bas

Re: [Corrigé] LIP getPlayerDetail - distance [Corrigé]

Message par Shiranuit le Mar 20 Sep - 18:25

Après avoir réfléchie a nouveau a ce que tu disais je ne peux rien y faire car si cela marche sur le serveur il n'y a pas de problémes
la seule chose c'est que votre version Solo n'est pas à jour et la seule personne pouvant forcer la mise à jour des clients c'est cedmeu
avatar
Shiranuit

Messages : 160
Date d'inscription : 02/04/2016
Age : 16

Revenir en haut Aller en bas

Re: [Corrigé] LIP getPlayerDetail - distance [Corrigé]

Message par skypop le Mar 20 Sep - 19:23

Ok, il y a eu une MAJ hier je crois. Sinon ça attendra la prochaine.
avatar
skypop

Messages : 94
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Re: [Corrigé] LIP getPlayerDetail - distance [Corrigé]

Message par Shiranuit le Mar 20 Sep - 22:24

Corrigé !
avatar
Shiranuit

Messages : 160
Date d'inscription : 02/04/2016
Age : 16

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum