Notifications
Clear all

[Closed] assign behavior to delegates

hi,

i have a problem with assigning a behavior to a delegate with maxscript…just dont know the right way. i went through the reference more than one time, but it ist totally not clear to me.

When i try:

$Crowd01.behaviors = #(Wander_Behavior)

i got the error, that “Wander_Behavior” could not be converted to MaxObject.

so…i hope you can help me

thanks
Oli

2 Replies

hi oliver

the Avoid_behavior is a constructor , this means that either you supply the parameters or you supply empty brackets ()

its just like a box , you don’t get the box created if you typed box , you type box()

however this also doesn’t work ! , assuming your crowd is in variable crow_01
if you type crow_01.behaviors = Avoid_behavior() — it doesn’t work aslo !

the method you use is like asking the crowd system for what behaviors does it contain
but you use it as assignment , that’s why it doesn’t work

crow_01.behaviors return an array of what is there , but doesn’t assign any thing

as you know , you add to arrays by the append command
so you shoud append that empty array with the behavior you have created

here is a part of a thing i was doing , i commented some stuff , and included the team part
hope its of any use


box name:"Target"  pos:[250,800,0]
Sphere name:"__S" ishidden:true segments:40 radius:100
delegate size:0.02 xyconstraint:false


m=crowd name:"First_Crowd" pos:[0,-170,90]
m.scatter.positionspace = 2
m.scatter.positionobject = $__S
m.scatter.cloneobject = $delegate01 
m.scatter.numclones = 19
m.scatter.clonetype=0 
m.scatter.positionspace=3
crowds.genclones m 
crowds.genlocations m
-- you can add the orientation and generate it for the delegates 

Beh_01 = Avoid_Behavior() -- you have to create it first 
append m.behaviors Beh_01-- then you assign the behavior to the crowd system 

Beh_02 = Seek_Behavior()
Beh_02.targets =#($Target)
append m.Behaviors Beh_02


team_01 =CrowdTeam() --empty constructor
team_01.name = "Team1" -- the name of the team (parameter)
team_01.members = $delegate* as array --the result of this array is the team members 
append m.teams team_01 -- we add the array of crowd teams (which is empty) the team we created


assin_01 = crowdassignment team:team_01 behavior:Beh_01 active:true--this is the constructor but with some parameters
assin_02 = crowdassignment team:team_01 behavior:Beh_02 active:true--the same here 

append m.assignments assin_01 -- assign the crowd the crowd assignment !
append m.assignments assin_02 -- again the same thing 

max tool zoomextents --just to see things 


thank you very much! that really helps…thanks!