Awesome!
After Defoldâs servers was rebooted (Nov 9) one of extensions that I usage in project no longer compiles in ctrl+B mode (dmengine, win10) .
It works without errors in HTML5 and Android bundle. And it worked before Nov 9.
What could it be?
Extension has no recent changes on github.
Hmm, that sounds extremely unfortunate. What extension is it, DefUnityAds? And what is the error? (I can only see the top of the log in your screenshot)
Hmm, It basically complains about missing a symbol âshareâ which seems extremely generic, and doesnât sound like a symbol someone would use.
Iâve tried this a few times now but cannot reproduce it
Would you mind adding me to your project temporarily, then I could take a look? (mathias.westerdahl at king dot com)
EDIT: I looked through your log even further, and it seems you use a âshareâ extension? Is it this? That code doesnât seem to support windows (yet)? Perhaps you can ask (or help) @britzl adding that support?
oops, yes, I added âshareâ in the same time (Nov 9)
Just modified share.cpp with #else
like in this instruction: Native Extensions
and all is correct now. Thanks @Mathias_Westerdahl !
0.82 is here!
- Welcome a new hero - the Thief
- Less ad impressions inbetween game sessions
- Small improvements (in balance)
Thief
Wearing a face-hiding mask, he always has a bunch of keys in his hand. Attentive and careful to such extent that he likely never meets a monster in a barrel.
p.s. also tried to made small protection from leaderboard cheaters.
Is keys really that good? I havenât tried him out yet but it feels like he will be a lot worse than the Mage for sure and maybe even the Knight. Maybe he can avoid traps too? Being all sneaky and stuff
EDIT: First thing I do after saying that is of course to die from the chestâŚ
barrels, barrels without monsters are goal of this class.
It looks like we got new weekly leader! The player from Bulgaria
Also took a first stats from Google Analytics to the Thief:
1426 in average. This value is accurate between average mage and paladin values:
Fixed the unfortunate misunderstanding with the Thief leaderboard. Now there is correct aggregation method: Maximum (always use the highest value) as in other leaderboards.
Seems that the dummy-protection from leaderboard cheaters is working. There arenât new cheats in leaderboard for last day.
How does works âleaderboards hack program for dummyâ? I think they just scaning the memory scope to find a score value. If I see on screen 100 - I just search for 100 in memory.
What I did to break this logic? Iâve just hide the value of score variable in code by adding random hash to begining score value and substract this hash from value before sent it to server. Easy? Yep. For crack this young hacker needs for reading the code. Itâs hard.
I guess, itâs good idea to show the share button with âscreenshotâ when there is the last turn in game. For moments like this
Just tried to how 4x4 works:
The game logic a bit hardcoded for 3x3 and needs for refactoring for works properly.
p.s. Also on this video may seen the wrong game speed. Too much fast. Perhaps Vsync donât works. All ok on my office PC with Nvidia and incorrect on home PC with AMD video card.
Well, I protected coins variable from cheat, but bad guys have found new door for cheating. What the wonderful people, now them add big value to multiplicator variable
Dev news:
all translations from community people. Awesome!
And some app stats:
85K installs
10K DAU
Retention :
how do you facilitate translation fro the tech side?
Any plugins that you used?
There are no magic secrets, I just use the Export Sheet Data plugin for Google.sheets for JSON generation:
and Lua module for geting strings from the code
-- Some gui_script:
local txt = require "main.txt"
....
gui.set_text(gui.get_node("l_achievements"), txt.get.achievements)
...
-----------------
-- txt.lua:
local M={}
M.get={}
M.texts={}
function M.init()
-- Load level data into a string
local data = sys.load_resource("/res/LookYourLoot texts - texts.json")
-- Decode json string to a Lua table
M.texts = json.decode(data)
--pprint(data_table)
end
function M.setLanguage(str)
print("Set language to:",str)
local ret
str=string.lower(str)
if str=="ru" or str=="hu" or str=="de" or str=="pt" or str=="pl" or str=="uk" or str=="cs" then
ret=str
else
ret="en"
end
local lang=string.upper(ret)
for k,v in pairs(M.texts) do
M.get[k]=v[lang]
end
return ret
end
return M
------------------
-- first init script in the game:
...
txt.init()
--
if game.language==nil or game.language=="" then
local info = sys.get_sys_info()
game.language=txt.setLanguage(info.language)
else
txt.setLanguage(game.language)
end
...