Page 2 of 2

Re: Condition Index

Posted: Sun Feb 10, 2019 14:16
by Imran M
So rnd picks a number from 0-9, min and max means a range of numbers it can choose. would i put action, then type:frame, and frame:x? Is this correct?

Re: Condition Index

Posted: Sun Feb 10, 2019 17:12
by Lobby
The result of the condition will only be true if min <= x <= max is fulfilled.
x will be a randomly picked integer between 0 and frame exclusively (namely 0, 1, 2, ..., frame - 1).

Yes, you set frames by something like

Code: Select all

{"type":"frame","frame":0}
However that's for building animations, only. For animations appended to a building (that means by using the "animation" attribute and some pre-defined animation(s)) you have to use the animation control attributes.

Namely you can use

Code: Select all

{"type":"animation resume","frame":0,"level":0} 
to set the frame of the first appended animation (indicated by "level":0) to 0. Use "type":"animation resume" to set a frame of an animation without pausing it.

Re: Condition Index

Posted: Sun Feb 10, 2019 17:37
by Imran M
Lobby wrote:
Sun Feb 10, 2019 17:12
The result of the condition will only be true if min <= x <= max is fulfilled.
x will be a randomly picked integer between 0 and frame exclusively (namely 0, 1, 2, ..., frame - 1).

Yes, you set frames by something like

Code: Select all

{"type":"frame","frame":0}
However that's for building animations, only. For animations appended to a building (that means by using the "animation" attribute and some pre-defined animation(s)) you have to use the animation control attributes.

Namely you can use

Code: Select all

 {"type":"animation resume","frame":0,"level":0} 
to set the frame of the first appended animation (indicated by "level":0) to 0. Use "type":"animation resume" to set a frame of an animation without pausing it.
So, would the code be along the lines of this?

Code: Select all

 "fun":{"condition":{"type":"rnd","min":1,"max":3,"frame":0},"action":{"type":"animation resume","frame":0,"level":0},"condition":{"type":"rnd","min":4,"max":10,"frame":0},"action":{"type":"animation resume","frame":1,"level":0}}

Re: Condition Index

Posted: Sun Feb 10, 2019 18:51
by CommanderABab
Imran M wrote:
Sun Feb 10, 2019 17:37
Lobby wrote:
Sun Feb 10, 2019 17:12
The result of the condition will only be true if min <= x <= max is fulfilled.
x will be a randomly picked integer between 0 and frame exclusively (namely 0, 1, 2, ..., frame - 1).

Yes, you set frames by something like

Code: Select all

{"type":"frame","frame":0}
However that's for building animations, only. For animations appended to a building (that means by using the "animation" attribute and some pre-defined animation(s)) you have to use the animation control attributes.

Namely you can use

Code: Select all

 {"type":"animation resume","frame":0,"level":0} 
to set the frame of the first appended animation (indicated by "level":0) to 0. Use "type":"animation resume" to set a frame of an animation without pausing it.
So, would the code be along the lines of this?

Code: Select all

 "fun":{"condition":{"type":"rnd","min":1,"max":3,"frame":0},"action":{"type":"animation resume","frame":0,"level":0},"condition":{"type":"rnd","min":4,"max":10,"frame":0},"action":{"type":"animation resume","frame":1,"level":0}}

Code: Select all

 "fun": {
 	"condition": {
 		"type": "rnd",
 		"min": 1,
 		"max": 3,
 		"frame": 0
 	},
 	"action": {
 		"type": "animation resume",
 		"frame": 0,
 		"level": 0
 	},
 	"condition": {
 		"type": "rnd",
 		"min": 4,
 		"max": 10,
 		"frame": 0
 	},
 	"action": {
 		"type": "animation resume",
 		"frame": 1,
 		"level": 0
 	}
 }
is wrong.

Re: Condition Index

Posted: Sun Feb 10, 2019 19:26
by Imran M
CommanderABab wrote:
Sun Feb 10, 2019 18:51
Imran M wrote:
Sun Feb 10, 2019 17:37
Lobby wrote:
Sun Feb 10, 2019 17:12
The result of the condition will only be true if min <= x <= max is fulfilled.
x will be a randomly picked integer between 0 and frame exclusively (namely 0, 1, 2, ..., frame - 1).

Yes, you set frames by something like

Code: Select all

{"type":"frame","frame":0}
However that's for building animations, only. For animations appended to a building (that means by using the "animation" attribute and some pre-defined animation(s)) you have to use the animation control attributes.

Namely you can use

Code: Select all

 {"type":"animation resume","frame":0,"level":0} 
to set the frame of the first appended animation (indicated by "level":0) to 0. Use "type":"animation resume" to set a frame of an animation without pausing it.
So, would the code be along the lines of this?

Code: Select all

 "fun":{"condition":{"type":"rnd","min":1,"max":3,"frame":0},"action":{"type":"animation resume","frame":0,"level":0},"condition":{"type":"rnd","min":4,"max":10,"frame":0},"action":{"type":"animation resume","frame":1,"level":0}}

Code: Select all

 "fun": {
 	"condition": {
 		"type": "rnd",
 		"min": 1,
 		"max": 3,
 		"frame": 0
 	},
 	"action": {
 		"type": "animation resume",
 		"frame": 0,
 		"level": 0
 	},
 	"condition": {
 		"type": "rnd",
 		"min": 4,
 		"max": 10,
 		"frame": 0
 	},
 	"action": {
 		"type": "animation resume",
 		"frame": 1,
 		"level": 0
 	}
 }
is wrong.
So how should I do this? I'm clueless to fun.

Re: Condition Index

Posted: Sun Feb 10, 2019 19:52
by Imran M
Wait a minute, would this work?

Code: Select all

 "fun":{"condition":{"type":"rnd","min":0,"max":3,"frame":0},"action":{"type":"animation resume","frame":1,"level":0},"else action":{"type":"animation resume","frame":1,"level":1}} 
The condition is what number it is from the range, the action resumes with the first animation, if the number doesn't match a number from the range, it uses the second animation and flys safely, am I right? I think I haven't used frames correctly

Re: Condition Index

Posted: Sun Feb 10, 2019 22:21
by CommanderABab

Code: Select all

[{
	"fun": {
		"condition": {
			"type": "rnd",
			"min": 0,
			"max": 3,
			"frame": 0
		},
		"action": {
			"type": "animation resume",
			"frame": 1,
			"level": 0
		},
		"else action": {
			"type": "animation resume",
			"frame": 1,
			"level": 1
		}
	}
}]
which one is the pause? (Nevermind!)

Re: Condition Index

Posted: Sun Feb 10, 2019 22:27
by CommanderABab

Code: Select all

[{
	"fun": [{
		"condition": {
			"type": "rnd",
			"min": 0,
			"max": 3,
			"frame": 0
		},
		"action": {
			"type": "animation resume",
			"frame": 1,
			"level": 0
		},
		"else action": {
			"type": "animation resume",
			"frame": 1,
			"level": 1
		}
	}]
}]

Re: Condition Index

Posted: Fri Feb 15, 2019 12:58
by Imran M
CommanderABab wrote:
Sun Feb 10, 2019 22:27

Code: Select all

[{
	"fun": [{
		"condition": {
			"type": "rnd",
			"min": 0,
			"max": 3,
			"frame": 0
		},
		"action": {
			"type": "animation resume",
			"frame": 1,
			"level": 0
		},
		"else action": {
			"type": "animation resume",
			"frame": 1,
			"level": 1
		}
	}]
}]
So would this be the correct code?

Re: Condition Index

Posted: Fri Feb 15, 2019 14:16
by Lobby
Imran M wrote:
Sun Feb 10, 2019 14:16
So rnd picks a number from 0-9, min and max means a range of numbers it can choose. would i put action, then type:frame, and frame:x? Is this correct?
No, it picks a number from 0 to (frame-1), so you'd have to change at least the value of frame:

Code: Select all

"condition": {
  "type": "rnd",
  "min": 0,
  "max": 3,
  "frame": 10
}
Please test the code and if it doesn't work as intended then let us know what exactly you expected and what happened instead.

Re: Condition Index

Posted: Thu Jan 30, 2020 19:57
by Kamikazi
How do you do if you want a building only to be able to build in sandbox ...If you are wondering, yes, it is for the fill sandbox requirements plugin

Re: Condition Index

Posted: Fri Jan 31, 2020 1:24
by CommanderABab
Screenshot_20200130-173205.jpg

Code: Select all

on built fun":[
  {
    "condition":{"type":"sandbox","invert":true},
    "actions":[{"type":"remove"}]
  }
]
Would remove the current building when building finishes if the map is not sandbox.

Re: Condition Index

Posted: Fri Jan 31, 2020 17:28
by KINGTUT10101
On built fun is a thing? Since when?

Re: Condition Index

Posted: Fri Jan 31, 2020 19:00
by CommanderABab
For a while. Probably 538 or so. It's important not to duplicate the same building within the plugin using "on built fun" as you will likely run into stack overflow.

Re: Condition Index

Posted: Wed May 06, 2020 9:18
by rjroldan1
If road deco can build bus stops at the current position using fun?

Re: Condition Index

Posted: Wed May 06, 2020 20:34
by CommanderABab
No, I don't think road decos have fun available to them. If yes, then they probably could. Roads could using the

Code: Select all

"on built fun"
, but I wouldn't recommend it.

Re: Condition Index

Posted: Thu Jun 18, 2020 9:42
by rjroldan1
Can i suggest to implement "type":"rank" as a fun condition together with "lvl": integer for specified CITY RANK or maybe with "min" and "max"

i think these are also helpful condition (•‿•)

Re: Condition Index

Posted: Thu Jun 18, 2020 17:47
by Lobby
I'm surprised that this doesn't exist, yet. Will be added in 1.8.84 and work like that:

Code: Select all

{"type":"rank", "min":3, "max": 9999}
This would be true once the user has reached rank of index 3 (ranks start with index 0).

An alternative would be to use https://doc.theotown.com/modules/City.html#getRank in Lua:

Code: Select all

local _,rank = City.getRank()  -- Rank would then contain the rank level with 0 for the first rank

Re: Condition Index

Posted: Thu Jun 18, 2020 18:03
by rjroldan1
Lobby wrote:
Thu Jun 18, 2020 17:47
I'm surprised that this doesn't exist, yet. Will be added in 1.8.84 and work like that:

Code: Select all

{"type":"rank", "min":3, "max": 9999}
This would be true once the user has reached rank of index 3 (ranks start with index 0).

An alternative would be to use https://doc.theotown.com/modules/City.html#getRank in Lua:

Code: Select all

local _,rank = City.getRank()  -- Rank would then contain the rank level with 0 for the first rank
Im very happy that this will implement soon thanks lobby :lol: