local logf_console = nil function logf( fmt, ... ) logf_console = get_console() logf = logf_main logf_main( fmt, ... ) end function logf_main( fmt, ... ) if fmt == nil then return end local c = select( "#", ... ) if c <= 0 then printf_console:execute( ":" .. string.gsub( fmt, " ", "\160" ) ) else printf_console:execute( ":" .. string.gsub( string.format( fmt, ... ), " ", "\160" ) ) end end function spawn_bar_dolg_respawn_3( position, total, level_vertex, game_vertex ) local index local new_pos, x_offset, z_offset local area_longitude, area_latitude = total*10, total*10 local height = 10 local bob = nil -- reserve bob the recurring newly spawned holder's place outside the loop logf("start adding dutyers") for index = 1, total do -- spawns dutyers numbering from index to total (1...total) x_offset = math.random(-(area_longitude/2),(area_longitude/2)) z_offset = math.random(-(area_latitude/2),(area_latitude/2)) new_pos = vector():set( position.x + x_offset, position.y + height, position.z + z_offset ) bob = alife():create("bar_dolg_respawn_3", new_pos, level_vertex, game_vertex ) logf( "dutyer #%i ( %s, %s, %s ) created", index, bob.name, bob.character_name, bob.profile_name ) end end function spawn_dolg( actor, npc ) logf("spawn_dolg() called") local spawn_point = -- the player (db.actor) may not be on the same level_vertex & game_vertex, that could cause a problem spawn_bar_dolg_respawn_3( vector():set( 2, 8, 129 ), -- 3d location on some level 2, -- number to spawn db.actor:level_vertex_id(), -- if you're trying to spawn something on a different level than the player db.actor:game_vertex_id() -- you may have to find out what these actually need to be in numeric form ) logf("spawn_dolg() completed") end