-- LUA Script - precede every function and global member with lowercase name of script + '_main' local U = require "scriptbank\\utillib" local sub = string.sub local find = string.find local flist = {} local function ParseName( name ) local sep = ',' local pos = 1 local list = {} local length = #name while pos < length + 1 do local nextPos = find( name, sep, pos + 1 ) or length if nextPos < length then list[ #list + 1 ] = sub( name, pos, nextPos - 1 ) else list[ #list + 1 ] = sub( name, pos, nextPos ) break end pos = nextPos + 1 end return list end function freezeplayer_init_name( e, name ) Include( "utillib.lua" ) local list = ParseName( name ) flist[ e ] = { name = list[ 1 ], state = 'init', delay = tonumber( list[ 2 ] ) or 50000, --- was 4000 dist = tonumber( list[ 3 ] ) or 100 } end function freezeplayer_main( e ) local fe = flist[ e ] if fe == nil then PromptLocal( e, "No params?" ) return end --PromptLocal( e, fe.state .. ", " .. fe.delay .. ", " .. fe.dist ) if fe.state == 'init' then if U.PlayerLookingNear( e, fe.dist, 90 ) then fe.state = 'freeze' fe.timer = g_Time + fe.delay SetFreezePosition( g_PlayerPosX, g_PlayerPosY, g_PlayerPosZ ) SetFreezeAngle( g_PlayerAngX, g_PlayerAngY, g_PlayerAngZ ) PlaySound( e, 0 ) end elseif fe.state == 'freeze' then Prompt( "You have found " .. fe.name ) TransportToFreezePosition() SetGamePlayerControlWobble(0.0) if g_Time > fe.timer then fe.state = 'done' end end end