Lua chatbox
Moderators: Scenario Moderators, Plugin Moderators
- KINGTUT10101
- 1,000,000 inhabitants
- Posts: 2227
- Joined: 07 Jul 2016, 22:50
- Location: 'Merica
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Dang, I was hoping it was just a simple command. I actually had the same idea to make rounded corners that way, but I thought I would ask you about it first.
- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Spent quite some time trying to get this to work
I wonder why does Builder.buildGround remove trees? Would be cooler if it didn't but then we wouldn't have this GIF
I wonder why does Builder.buildGround remove trees? Would be cooler if it didn't but then we wouldn't have this GIF

- ian`
- Supporter
- Posts: 118
- Joined: 04 Apr 2020, 17:36
- Location: Indonesien
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
For now, you can try like this:Uncle Koala wrote: ↑17 Aug 2020, 00:03Spent quite some time trying to get this to work
sand.gif
I wonder why does Builder.buildGround remove trees? Would be cooler if it didn't but then we wouldn't have this GIF![]()
Code: Select all Reset
local tree local treeFrame function script:earlyTap(x,y) if Tile.isTree(x,y) then -- condition if any trees in position tree = Tile.getTreeDraft(x,y) -- get tree draft treeFrame = Tile.getTreeFrame(x,y) -- get tree frame Builder.buildGround('$asphalt00',x,y) Builder.buildTree(tree,x,y,treeFrame) -- build tree after build ground else -- condition if no tree in position Builder.buildGround('$asphalt00',x,y) end return false end
Lua editor
- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Thanks! That works nicely!
- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
How can I get the y position of a building using City.getBuilding? I can get x by doing
but I don't know how to get y value
Code: Select all
local draft = $ktt_koala01
City.getBuilding(1, draft)
- ian`
- Supporter
- Posts: 118
- Joined: 04 Apr 2020, 17:36
- Location: Indonesien
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Code: Select all Reset
local x, y = City.getBuilding(1, draft) local x,y,scale = City.getView() local draft, number = City.getRank()
Lua editor
- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
I knew I was missing something simple. Thanks! 

- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Builder.BuildBuilding doesn't seem to work with RCI.
Building a park works...
... but if I change it to a residential house, it doesn't work.
I also tried manually placing a zone across the entire map, but it still doesn't want to build residential stuff on it.
Building a park works...
Code: Select all Reset
function script:nextDay() draft = Draft.getDraft("$park01") Debug.toast("Building", draft) if Builder.isBuildingBuildable(draft, 0, 0) then Debug.toast("Buildable!" ) else Debug.toast("Nope!" ) end Builder.buildBuilding(draft, 0, 0, 0) end
Lua editor
Code: Select all Reset
function script:nextDay() draft = Draft.getDraft("$res01") Debug.toast("Building", draft) if Builder.isBuildingBuildable(draft, 0, 0) then Debug.toast("Buildable!" ) else Debug.toast("Nope!" ) end Builder.buildBuilding(draft, 0, 0, 0) end
Lua editor
- CommanderABab
- AB
- Posts: 11240
- Joined: 07 Jun 2016, 21:12
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Is it zoned?
- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Yes, everything is zoned. I also tried adding Builder.buildZone to my script. The zone is built but the house isn't, and the toast still says Nope! which means Lua doesn't see that tile as buildable even if it's zoned.
- CommanderABab
- AB
- Posts: 11240
- Joined: 07 Jun 2016, 21:12
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Why don't you try testing for buildable park and if that is true, build the zone and the res01 anyway. 
Is it next to a road?

Is it next to a road?

- Uncle Koala
- Metropolitan
- Posts: 142
- Joined: 05 Apr 2020, 14:53
- Location: Pitcairn Islands
- Plugins: Showcase Store
- Version: Beta
- Contact:
-
Plugin Creator
Platform
Re: Lua chatbox
Thanks
, it only builds if there's a road next to that tile. A bit weird, but understandable. I was trying to build RCI stuff just to see if they will be set as "Untouchable" if they are built by Lua. Turns out they won't be set as untouchable. 
Suggestion to devs: please add something like Tile.setUntouchable(x, y)

Suggestion to devs: please add something like Tile.setUntouchable(x, y)

- MarioBitMap
- Villager
- Posts: 16
- Joined: 31 Jul 2020, 22:54
- Location: Spain
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Why isn't my script working?
When playing, I can Access to the menu I've created, but when pressing the button it doesn't shows the next menu.
Thanks in advance!! 
When playing, I can Access to the menu I've created, but when pressing the button it doesn't shows the next menu.
Code: Select all Reset
local function showMenu(dialog) local parent = GUI.get'$menuparent' local d = '$townhall01' local x = City.countBuildings(d) GUI.createMenu{ source = parent, actions = { {icon = Icon.BUILD, text = 'Town Halls:' , onClick = function() Debug.toast(x) end}, } } end local function showDialog() local dialog dialog = GUI.createDialog{ icon = script:getDraft():getPreviewFrame(), title = 'Test 1', text = 'Will this work? lol', width = 250, height = 120, actions = { { id = '$menuparent', icon = Icon.BUILD, text = equis, onClick = function() showMenu(dialog) end, autoClose = false }, } } closeDialog = dialog.close end function script:init() if closeDialog then closeDialog() closeDialog = nil showDialog() end end function script:event(_, _, _, event) if event == Script.EVENT_TOOL_ENTER then GUI.get('cmdCloseTool'):click() showDialog() end end
Lua editor

- Lobby
- Developer
- Posts: 3719
- Joined: 26 Oct 2008, 12:34
- Plugins: Showcase Store
- Version: Beta
-
Platform
Re: Lua chatbox
Hi, I guess it's because of these lines:
City.countBuildings expects a draft rather than the id of a draft. This should work:
Code: Select all
local d = '$townhall01'
local x = City.countBuildings(d)
Code: Select all
local d = Draft.getDraft('$townhall01')
local x = City.countBuildings(d)
- MarioBitMap
- Villager
- Posts: 16
- Joined: 31 Jul 2020, 22:54
- Location: Spain
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Oh I see, thankyou very much!
Just testing the implementation of a new resource as a variable through
Just testing the implementation of a new resource as a variable through

- MarioBitMap
- Villager
- Posts: 16
- Joined: 31 Jul 2020, 22:54
- Location: Spain
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox

... icon = Icon.EXAMPLE, ...
or are Icon.EXAMPLE a type of harcoded resource that can't be added by users?
Thanks in advance!
- ian`
- Supporter
- Posts: 118
- Joined: 04 Apr 2020, 17:36
- Location: Indonesien
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
I think Icon.EX is hardcoded, because its actually return number.
If you want to add your icons, you still have to write the Json code to making a draft for the image.
If you want to use it on multiple line, you can assigned it to a variable.
If you want to add your icons, you still have to write the Json code to making a draft for the image.
Code: Select all Reset
[ { "id":"iconId", "type":"animation", "frames":[{"bmp":"icon.png", "w":24, "h":24}] } ]
JSON checker
Code: Select all Reset
-- you also can make the Json code from lua and call it with Draft.append local iconImage = [[ [ { "id":"iconId", "type":"animation", "frames":[{"bmp":"icon.png", "w":24, "h":24}] } ] ]] Draft.append(iconImage) local yourIcon = Draft.getDraft('iconId'):getFrame(1) -- Or you can make it to be a table local icon = {} icon.FIRST_ICON = Draft.getDraft('iconId'):getFrame(1) icon.SECOND_ICON = Draft.getDraft('iconId'):getFrame(1) icon.ANOTHER_ICON = Draft.getDraft('iconId'):getFrame(1) -- To use GUI.createDialog{ icon = icon.FIRST_ICON }
Lua editor
- MarioBitMap
- Villager
- Posts: 16
- Joined: 31 Jul 2020, 22:54
- Location: Spain
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
I'll test it tomorrow, it's 4am lol. It makes sense I have to draft the json and get the image from there.
Thanks for the help and spending your time into this, hope you have a great day/night!

Thanks for the help and spending your time into this, hope you have a great day/night!

- MarioBitMap
- Villager
- Posts: 16
- Joined: 31 Jul 2020, 22:54
- Location: Spain
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox

Draft .append(iconImage)
However, the forum's lua tester doesn't agree with the error given at the game with loading the lua file.
Looks like the game doesn't recognizes Draft functions.
When cut- pasting the code into a local function the error disappears, but the game isn't able to show the icon or open the menu it is linked to.
Code
- ian`
- Supporter
- Posts: 118
- Joined: 04 Apr 2020, 17:36
- Location: Indonesien
- Plugins: Showcase Store
- Version: Beta
-
Plugin Creator
Platform
Re: Lua chatbox
Code: Select all Reset
Draft.append(woodIconJson) -- variable name aren't string, don't use quotation marks.
Lua editor