Lua chatbox
Moderator: Plugin Moderators
-
- Villager
- Reactions:
- Posts: 12
- Joined: Tue May 16, 2017 20:26
- Location: Saint-Petersburg, Russia
- Plugins: Show
Re: Lua chatbox
How to set a console command with TheoTow.registerCommand()? I've tried putting it in script:init() and it doesn't work
- Bearbear76
- Former Bearbear65
- Reactions:
- Posts: 5296
- Joined: Fri Feb 10, 2017 14:53
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Use TheoTown.registerCommand(string, function)
If you return a value from the function that would be displayed on the console.
Code: Select all
TheoTown.registerCommand("hello!", function()
local number = 11 + 1
return "Hello, the magic number is: "..number
end)
-- output: Hello, the magic number is: 12 [string]
Code: Select all
local function hello()
local number = 11 + 1
return "Hello, the magic number is: "..number
end
TheoTown.registerCommand("hello!", hello())
-- output: Hello, the magic number is 12 [string]
a condition is true, if so run the command.
Code: Select all
local password = "something"
TheoTown.registerCommand("hello!", function()
if password == "olsken" then
local number = 11 + 1
return "Hello, the magic number is: "..number
end
end)
--- (console) "hello" > [nil]
--- password = olsken [string]
--- (console) "hello" > Hello, the magic number is: 12 [string]
Command names don't override existing command names.
For example, the command above is "hello!" but if I change it to "hello" you would get
a different result as TheoTown already has the prebuilt command "hello" would would say "42"


-
- Villager
- Reactions:
- Posts: 12
- Joined: Tue May 16, 2017 20:26
- Location: Saint-Petersburg, Russia
- Plugins: Show
Re: Lua chatbox
Also, is it possible to make console command require arguments? I tried TheoTown.registerCommand("testt", function(arg)) but this seems doesn't work how I expected
- Bearbear76
- Former Bearbear65
- Reactions:
- Posts: 5296
- Joined: Fri Feb 10, 2017 14:53
- Plugins: Show
- Version: Beta
-
- Villager
- Reactions:
- Posts: 12
- Joined: Tue May 16, 2017 20:26
- Location: Saint-Petersburg, Russia
- Plugins: Show
Re: Lua chatbox
I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parametersBearbear76 wrote: ↑Sat Jun 27, 2020 6:36I don't think there are any arguments. What do you want to do?
- Bearbear76
- Former Bearbear65
- Reactions:
- Posts: 5296
- Joined: Fri Feb 10, 2017 14:53
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Tried something like that but it doesn't work. That's why I'm trying to create a terminal in TheoTown which gives you more powerful commands but for personal reasons I can't work on it for a while :/Temgamer wrote: ↑Sat Jun 27, 2020 8:08I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parametersBearbear76 wrote: ↑Sat Jun 27, 2020 6:36I don't think there are any arguments. What do you want to do?

- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Try to just change the condition variables with command and call that variables in outside of register command function.I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parameters
Code: Select all
local c1 = 0
function script:update()
TheoTown.registerCommand(name,function(name,arg)
if c1 == 0 then
c1 = 1
Debug.toast('On')
elseif c1 == 1 then
c1 = 0
Debug.toast('Off')
end
end)
end
function script:click(x,y,level)
if c1 == 1 then
Your stuff ...
end
end

- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Why in online i can't save the data to storage and load it back when restart the games?
And what is possible to save data on the city and city visitors load that data what we save before?

- JustAnyone
- Rip-off engineer
- Reactions:
- Posts: 3035
- Joined: Sun Jul 23, 2017 12:45
- Location: Easter Island
- Plugins: Show
Re: Lua chatbox
All scripts or fun transitions are disabled for cities in online mode unless you are the city author and have plugin manifest for your script.
- Bearbear76
- Former Bearbear65
- Reactions:
- Posts: 5296
- Joined: Fri Feb 10, 2017 14:53
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Might be a better way but this is what I came up with.
Code: Select all
local function seperate(value)
local result = ""
value = tostring(value):reverse()
for set in value:gmatch("..?.?") do
result = result..set..","
end
result = result:sub(1, -2):reverse()
return result
end

Re: Lua chatbox
Found another solution that also uses gsub here:
In other languages you'd be able to use the string format function to do that for you, but Lua is different 
Code: Select all
function comma_value(amount)
local formatted = amount
while true do
formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
if (k==0) then
break
end
end
return formatted
end
print(comma_value(1234567))

=^._.^= ∫
- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Thanks.
I tried it before, but didn't work. now it works. lolLobby wrote: ↑Mon Jun 29, 2020 16:35Found another solution that also uses gsub here:In other languages you'd be able to use the string format function to do that for you, but Lua is differentCode: Select all
function comma_value(amount) local formatted = amount while true do formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2') if (k==0) then break end end return formatted end print(comma_value(1234567))
![]()

Re: Lua chatbox
Code: Select all Reset
-- Bearbear local function seperate(value) local result = "" value = tostring(value):reverse() for set in value:gmatch("..?.?") do result = result..set.."," end result = result:sub(1, -2):reverse() return result end -- Internet function comma_value(amount) local formatted = amount while true do formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2') if (k==0) then break end end return formatted end -- Test print('The bear way: '..seperate(1234567)) print('The internet way: '..comma_value(1234567))
Interactive Lua editor
=^._.^= ∫
- Bearbear76
- Former Bearbear65
- Reactions:
- Posts: 5296
- Joined: Fri Feb 10, 2017 14:53
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Ah I should of made it with %d.
Fixed the code to work because Lobby wants to click green buttons
Code: Select all Reset
local function seperate(value) local result = "" value = tostring(value):reverse() for set in value:gmatch("%d%d?%d?") do result = result..set.."," end result = result:sub(1, -2):reverse() return result end print(seperate(1234567890))
Interactive Lua editor

- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Is there road with road decoration have specific conditions? Because when i'm place road decoration on road, the script doesn't work. Even when i use Tile.isRoadDeco(x,y,level).

Re: Lua chatbox
Did you use Builder.isRoadDecoBuildable to check if it is buildable in the first place? Road decorations can define requirements like flags and alignment for the road they can be placed on.
=^._.^= ∫
- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
Still doesn't work. I try to use script:overlay(), that's work, but the script keep updating, not update only once.

- CommanderABab
- AB
- Reactions:
- Posts: 9128
- Joined: Tue Jun 07, 2016 21:12
- Plugins: Show
- Version: Beta
- ian`
- Supporter
- Reactions:
- Posts: 89
- Joined: Sat Apr 04, 2020 17:36
- Location: Indonesien
- Plugins: Show
- Version: Beta
Re: Lua chatbox
not about signature. lolCommanderABab wrote: ↑Wed Jul 01, 2020 18:12Seems to work for me. Your crush gives s random answer from the array. Right?
Anyway, that is sometime give you an answer not from the array.

