Page 2 of 3

Re: Condition Index

Posted: 10 Feb 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: 10 Feb 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: 10 Feb 2019, 17:37
by Imran M
Lobby wrote: 10 Feb 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: 10 Feb 2019, 18:51
by CommanderABab
Imran M wrote: 10 Feb 2019, 17:37
Lobby wrote: 10 Feb 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: 10 Feb 2019, 19:26
by Imran M
CommanderABab wrote: 10 Feb 2019, 18:51
Imran M wrote: 10 Feb 2019, 17:37
Lobby wrote: 10 Feb 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: 10 Feb 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: 10 Feb 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: 10 Feb 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: 15 Feb 2019, 12:58
by Imran M
CommanderABab wrote: 10 Feb 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: 15 Feb 2019, 14:16
by Lobby
Imran M wrote: 10 Feb 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: 30 Jan 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: 31 Jan 2020, 01: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: 31 Jan 2020, 17:28
by KINGTUT10101
On built fun is a thing? Since when?

Re: Condition Index

Posted: 31 Jan 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: 06 May 2020, 09:18
by Hadestia
If road deco can build bus stops at the current position using fun?

Re: Condition Index

Posted: 06 May 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: 18 Jun 2020, 09:42
by Hadestia
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: 18 Jun 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: 18 Jun 2020, 18:03
by Hadestia
Lobby wrote: 18 Jun 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:

Re: Condition Index

Posted: 31 Oct 2020, 19:48
by Hadestia
Where's the rank condition?