Page 4 of 8

Re: Lua chatbox

Posted: Fri Jun 26, 2020 22:49
by Temgamer
How to set a console command with TheoTow.registerCommand()? I've tried putting it in script:init() and it doesn't work

Re: Lua chatbox

Posted: Sat Jun 27, 2020 0:15
by Bearbear76
Temgamer wrote:
Fri Jun 26, 2020 22:49
How to set a console command with TheoTow.registerCommand()? I've tried putting it in script:init() and it doesn't work
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]
You could also achieve the same thing with:

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]
スクリーンショット (6).png
スクリーンショット (6).png (79.21 KiB) Viewed 1130 times
If you want to enable it and disable it add a if statement or something to check if
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]
*Note*
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"

:jb: bear out!

Re: Lua chatbox

Posted: Sat Jun 27, 2020 0:53
by Temgamer
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

Re: Lua chatbox

Posted: Sat Jun 27, 2020 6:36
by Bearbear76
Temgamer wrote:
Sat Jun 27, 2020 0:53
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
I don't think there are any arguments. What do you want to do?

Re: Lua chatbox

Posted: Sat Jun 27, 2020 8:08
by Temgamer
Bearbear76 wrote:
Sat Jun 27, 2020 6:36
Temgamer wrote:
Sat Jun 27, 2020 0:53
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
I don't think there are any arguments. What do you want to do?
I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parameters

Re: Lua chatbox

Posted: Sat Jun 27, 2020 12:30
by Bearbear76
Temgamer wrote:
Sat Jun 27, 2020 8:08
Bearbear76 wrote:
Sat Jun 27, 2020 6:36
Temgamer wrote:
Sat Jun 27, 2020 0:53
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
I don't think there are any arguments. What do you want to do?
I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parameters
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 :/

Re: Lua chatbox

Posted: Sat Jun 27, 2020 13:12
by ian`
I just wanted to make a command, which would set radius and zone around some building by taking radius and zone ID as parameters
Try to just change the condition variables with command and call that variables in outside of register command function.

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

Re: Lua chatbox

Posted: Sun Jun 28, 2020 13:54
by ian`
Lobby wrote:
Tue Jun 23, 2020 17:24
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?

Re: Lua chatbox

Posted: Sun Jun 28, 2020 14:18
by Löbby
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.

Re: Lua chatbox

Posted: Mon Jun 29, 2020 13:16
by ian`
is there a function to separate thousands or millions with ","? like 1,000,000

Re: Lua chatbox

Posted: Mon Jun 29, 2020 16:02
by Bearbear76
distian wrote:
Mon Jun 29, 2020 13:16
is there a function to separate thousands or millions with ","? like 1,000,000
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

Posted: Mon Jun 29, 2020 16:35
by Lobby
Found another solution that also uses gsub here:

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))
In other languages you'd be able to use the string format function to do that for you, but Lua is different :jb:

Re: Lua chatbox

Posted: Mon Jun 29, 2020 18:08
by ian`
Thanks.
Lobby wrote:
Mon Jun 29, 2020 16:35
Found another solution that also uses gsub here:

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))
In other languages you'd be able to use the string format function to do that for you, but Lua is different :jb:
I tried it before, but didn't work. now it works. lol

Re: Lua chatbox

Posted: Mon Jun 29, 2020 20:16
by Lobby

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
Run

Re: Lua chatbox

Posted: Mon Jun 29, 2020 23:39
by Bearbear76
Ah I should of made it with %d.

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
Run
Fixed the code to work because Lobby wants to click green buttons

Re: Lua chatbox

Posted: Wed Jul 01, 2020 7:02
by ian`
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

Posted: Wed Jul 01, 2020 14:12
by Lobby
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.

Re: Lua chatbox

Posted: Wed Jul 01, 2020 14:33
by ian`
Still doesn't work. I try to use script:overlay(), that's work, but the script keep updating, not update only once.

Re: Lua chatbox

Posted: Wed Jul 01, 2020 18:12
by CommanderABab
distian wrote:
Wed Jul 01, 2020 14:33
Still doesn't work. I try to use script:overlay(), that's work, but the script keep updating, not update only once.
Seems to work for me. Your crush gives s random answer from the array. Right?

Re: Lua chatbox

Posted: Wed Jul 01, 2020 19:16
by ian`
CommanderABab wrote:
Wed Jul 01, 2020 18:12
Seems to work for me. Your crush gives s random answer from the array. Right?
not about signature. lol

Anyway, that is sometime give you an answer not from the array. :bt