PathOfBuilding icon indicating copy to clipboard operation
PathOfBuilding copied to clipboard

Item editor/creator throwing error when certain modifiers have a float as their value

Open kevin-dolan opened this issue 3 years ago • 1 comments

Check version

  • [X] I'm running the latest version of Path of Building and I've verified this by checking the changelog

Check for duplicates

  • [X] I've checked for duplicate issues by using the search function of the issue tracker

What is the expected behaviour/value?

When creating or editing an item in the Items menu, if you add the modifier "Regenerate #X Life per second" AND X is a float such as 6.1, then the stat should be displayed on the item as "Regenerate 6.1 Life per second".

What is the actual behaviour/value?

When attempting the above and mousing over the ", the POB application throws an error window up with the top-most error being In 'OnFrame': Classes/ModDB.lua:111: attempt to perform arithmetic on field 'value' (a string value) POB_bug2 Looking in the file Classes/ModDB.lua in the source code, line 111 is in the function ModDBClass:SumInternal(context, modType, cfg, flags, keywordFlags, source, ...), and the offending line is simply: result = result + mod.value Based on the error message and the behavior of the program, it would seem that Lua correctly handles adding result and mod.value when mod.value is an integer, but throwing an error when mod.value is a float, or rather is supposed to be interpreted as a float.

How to reproduce the issue

  1. Go to the Items menu.
  2. Either "Create custom..." or edit a currently exist item.
  3. Add the modifier effect "Regenerate #X Life per second", but make the value of X a float, such as 6.1, 12.5, 44.7, etc.
  4. Mouse over the "Create"/"Save" button at the bottom of the "Create Custom Item from Text"/"Edit Item Text" window.

See below gif for demonstration of steps 3 and 4. POB_bug3

Character build code

eNrVW2tv2sga_lx-hYW0ElWBeGY8vkTJHkGu9ISUQtLLfqkcM4AbY1NfkrBV__t5Z2yCAQODuzo6pyu1Bj_vZd77zLAn_3qZesoTCyM38E-rqKlWFeY7wdD1x6fV-7vLhln915-Vk54dTz6M2onr8Td_Vt6ciGfFY0_MO61qelWJ7XDM4k8LVuQbsJrZfjxhgd-1vwfhVTA8rd4GPqsqD7Y_dOPFJ8ezo-jWnrLT6mBiD4PnqmJHDvOHZ8sXKXJqu_4gcB5ZfBUGyQwUripPLnvuBkPAdLq9D_27nFTXz0sFrd-c9Dx7zsJBbMdKBH-dVluweHvMrt0YWNleAnzU6lExdjBjbLiENVXL0k2kYtUgRKd4G1kvZBejEXNi94mdhW58NrF9h-0Xdyi2m3ixO_NcFr7iUZNuo7gLYts77w32806RgYSBPrvxpO2BkaT4cnRn7Lsxk4b3AjcK_IO0lgKfJZ4HgS2HDaYPri-5xrMg8CCi_aVHIGzI1lDp2r59FkQSpr5xR0wOeTGQw_UhDeSQXMseCyFFY3llDyLIJAyYE0AZOETGISS5dZQTVoLyYlCGoISgQbwsA6a21ensxwqQbAOes5dXlK6qZAfDPNRC24AdP84lxS5-eaSBtyv4FMTQeiQrw8V17xVJkaWhJkLEQAZGxlaLCutDV3Gntte1X9xpMoW-cWc_sqVUSpCpNjXTMFX-164AeqXBKtG0HU3HOebwju_kPLCL8b0fsoiFT7lmtVPEKk0Wbjnn7BTWZ-Pc8hE2jCbehb9hzJlcQSPv2zGTy9FXFNHRTjNxcN5MO7kWWGkH_1WKA2zECVdtpDfJLvCBBvpsh0OJKuKzcDwfTFzmLdFI09Wd9sxT5e2KpOSsrlqK5MC1XzzZUT7liWWZBt29pJQkvxqyNUu7DIYZoBiytTnMotuHveA7H_W8A-la4TRIQqkZ1DlOwVKR3pvMI9eBScieQn_vs2HiyFXJ15G1GzyxKQS7mH5h0s4Nl2hrSWl7MKavLX67nYG15xWRbNWuFce283geDMdMlkQIOZxikMxmkPY8aNbotvry0g3B0pGba9OGBPgDbEXO7NnSXpig7XMlzy9JEUvwughE0Y7iPp7EPkzFa3KoJUmxLmz7kDyxg0h-NUv0xnI0dWuMXcKILzWy94Jn4Drh29noMDTMBEvnbdUjZP7fc2n-K3ApARf-MAl5oErLWKcoEsPHnsDf3DindeUVrmnEamIEcUVg_NG3Ea_upJe71PLAje2srlOzacJAZ6iQR9puuoLN7QaycHMrKaV4q3sA8ebG98D1FYX-BrhoayspZ2WgpZa6C1c8GBRCdw8EGyTFY44UXFIp2Wnl5EickPGnznQWhLH48sz2nEgw7vizJFZ8cbg1dSPn20MyGvFzrCoICsXx28Xl5cXZXefTRaZLniR6dD3vm59MH_hpT_ovPw5LkQMmmrziBJ5nzyI2PK36rldVXHgYcMoBDDZOLIGG_U2W4fuxMIk6oQsFZz-UJ5yEqiL59-P44ZcEDPxge0zWRHfzGeN-j-SslM0G-7GihEjg0oyXWZaoKzJGZ449l8C9hrUE9sJjLdfj46GMnboQ6OlcKYOGGS90H5JYKqJE_ZHQgG8nJZaVryNSkS8Dy2Z8CfHZvmY_MpuaZMIOpmtJF52zEYNglkpkURzSI5C07C1K3InIokiJoPZdsWnUnkNXueQGXeszUzuGcGPTG36XcBfwGcR2YhbepHcLI9uLeFHMszmtxmECXw7ZyE48_v3HxPbceJ5ptvw-YyK-jSbBM5_mU048vyPwyc1N-qblxRkTLmYhNzUAX4m4fGiJHZH4LNYpbiBc3_GSIev42YiZifPsBy66qoz5XcVZkPjxQhGIAodfWMRsekyPP_iRZycwOivXtj-sK7fJQ-I8KlcebLwifh9jP3jc6OmaIy8APouXa0pxfbjKb05gERklQB9sDy9kc1jW1VaXkXuTfXnmiVuX7JIHVVcYoleFOF1HJI0DRTDmxeDDqM9GXho3nyfMF9cr66IFyx8Lx6kbK3VyJuNdj299uT1zfBY6poF6JNiKKEyDjz_ehYwpdmoiwQBlToUP-XsmvgKVGzSC2JtnVeq0-hNh0yB1ZGkY_6r_RFRTrTo1iWrBJ37zo9eRaiIKn3RKsVnXkaGhX6Ax9HKgp6aK6xrSTauuY5Oguq4iU61rQIjrlCCk1TV4YdVTXgRRk9aJiTCXgkndMg2jjgzDUuuwu4FXGtbqxDJ1BFwtoEMaPBKVEBCNNYBhwzDNOsUGsEYqRahOLV3V66l6iJggwLQArlFqEfgbGxgk6EYdU5UCApsqMLcsFdRUgZxYMNXXqY4N0I9wmRahlCMMYKLyhWCVanpd03QTTEWpBsobBnwDrIEIIUK0empIovMvNESNOkUYg7qIgDh4RsAGmQSWSE0L4MLSmg5bOmCmalpVicGVuQtGZGZ3h9x1ehb3F0NohsNbbvyj9Jv7_o14eDOJ41l0fHT0_PzcnNnxJBixF9djTSeYHs2ADURIQ8RWgws6asGf9vhr60Pb_hHEPnpoRPfJx5seC-_69x_bxte_7l4uQ3Pq3X9qtL-ot1_fJ2jWur-Mv9hnVnsWfe-SH__--C1AT9-02--qq4edv6Lb8RXF1253fH1mtBrhdNJ7QJ27y_edp_MPM_zj_qJjPrGrgR08R_3v79-fe8_kzhnf3__9pXN--enm-_lXs_vwqUPij632WfDt_uP5y83omzawtPmA9S575xenYtFHi1WfpPel0SJDIOpFgvC04A-3AfRX_o5_ufggkuaTy56ViMFQNxnEIU-8v4Ng-hUsr6pNDMGU_UnL5zWz4649y9KVI7PSa2SFF0apcxeyKhStZZHjHPjltNpAqqE1IWRMYqgkPYE_4eUxylKXPw9YLEpGErH0KP4zs2dQS1hWJNIhGYCiM2WFsG_DcDg_Vrqtq85ZZcDCEGb1oQLT1diHrq0EIyWeMAXKSDKsCGKh97GioUrWD44VrFYyMx4rV41-o10RoD77IXAwWHqu4_K3qELUP3hHCJkNnVJJa6XCJ1R-CqeAJd1HECemxcq5PR6zsFL89ljRm0j9o5IedUXKjIVKum4Q06RqJV2-0rf9MYCRWvkZike1SX9RUqNqQ9fe5pVZnAUqadfO49-ZNb2BEMDjQHk9x1HS8ULoymMJ9idCmiII-RU4TceAbKO_A7G4VTniNl71FF71VL_Vv6h8gibNXpSrBHxUgfFKaUNL9MBW2WgEdjcxXXxqw_KyI3lI6GNFXfWkus2T4MucJ7G16kkrb7vFKagiNiWV1EXcWGKwAmLjD6UGXZxj2PDtQjPwTgyGhPdEW3mfsz02athoaHjFV6v0K67StJqmNjTrLRc_Te-hFD7_5lFZ_40UrYYa2tt133NScbqtpOEFVbXyc8QHryRkw1_5SKrRhrGiWkqRGSKvGNJrCDeQkUYRP3XMB9AKEpQiAFsz4-4Q0vYGGd2LkA7UHQhzL8LaHuykINi7Lhjeg7xPwhjmucog8SF2oUPl4123ID5_K977ULlWI57gfMSvFJB3VKsRvaETEWW7olGXiMZ3yKwhs4FJGhr8zHtraJAaIjyIOPCcvcA0BivZbW-01yN4L4LsRWjbvaoVeHUQhGHwDGnw7FUybyrXQTBcuhRmHjmPYmN7BYP_8jVM3eHRGmnscxPNZ_AON4nTMsZ7KayiZjZRA-lvBT_RpyLRpzaKw_-dX2mBX1e3a5WV3drSt1QnqpxzCd2Wru015xKy2qB-OqE9gm7y6y50-SChfA7SiWa5-VKeYfelwPYr74tKaziMFFLDjTS7aU1r0MIWkc0eK90KQoQ2sC7ZrQCOkTwcqTWkpoPIEj6IoSCCrdMmAatzwNbh_LfD6x8Mnn-iKRUFoF40xba9JIQuvTgoaAcB9Hlwe9v23WjCJ4x8jSG6LhmIO6pMfuIl2vYag1RUM8EPKtrXN3ipgapBs2GBX-pJj5vSdaHIpEZBTvc8e5wwpc3sYVS54oNLa5p4LF6twmbOCEhfy8VcDJu8iGJ1JYZTcdxL6bZmFCRrBRJbNaw28O4KnaZuOpNxHELCipDHoljvzNx3ALYaCK8ISE86lfSoc0uF12sYCry5p74X9-1V-TCMqpDeOhWoluMkMPnMF-Hxv9ML_jszZi46B16wuNrJtnX8YBHedoa5a50laHH-t4DQTcg186YsXkK0TUgmCi9BeBPUDoZzZfHzlAWOFOGgDC0R-iYizaklZGGGbHO_dWOf388XWWrwbM-U1sM8ivgeWpQthS7FqAt_FJCuk2E5sg3fbFqipEJFa9mjVJt58YEkl54dPSpESiVcpBIpZ145I-B_iEwrp6ReTppe3ppoj4OL4mmPB9LsP1RQQSTpZeTsCb8t1UuCMSmfRajMQrRysYDKRZ623z0yhj2UbVF4lVy4VN2hJfQpUQPJPjGvfe1A9xVbuVR80TJEUim50fgLHFFqnbS0WXEJv-vlMomUC19yeJRp5ct-iZhGpY1PZDJTkwGVUPs3hh9JT26MsNJe0EtEZXk3_Ea4yJZkTiuZNfLQEpbr8xskXKbE4NLmLVku5P25sQWSWA6RsBMq7wattLVoGefI5MvGNlA6yPeotG0LeZTtIcXdtjhhET-3DPyRO9748STz2XQujnKWP53UaMGvLMPX86ge820vni_xDbL4nedCyMnR-v8l_R8VCcEZ

Screenshots

POB_bug POB_bug2

kevin-dolan avatar May 19 '22 04:05 kevin-dolan

https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/7381cb6fb9039d721c48a377cd4415d991140261/src/Classes/ModDB.lua#L110-L112 I think the problem is, that mod.value is a string when you enter a float number in the editor. Hence the error: attempt to perform an arithmetic on field "value" (a string value)

image

In this example mod value will be: image

CedrN avatar Aug 02 '22 11:08 CedrN