Script - Velocity Indicator: Difference between revisions
mNo edit summary |
rewritten script |
||
| Line 1: | Line 1: | ||
==Function== | ==Function== | ||
Revised script which draws indicator to mark the true direction of the flight. | |||
==Table Entry== | ==Table Entry== | ||
* In [[Modular Tables|modular]] [[Scripting.tbl|scripting]] table file | |||
** For example: '''vel_ind-sct.tbm''' | |||
$ | <pre>#Conditional Hooks | ||
$Application: FS2_Open | |||
$State: GS_STATE_GAME_PLAY | |||
$On Frame: | |||
[ | [ | ||
drawvelret = function(x, y) | drawvelret = function(x, y) | ||
gr.drawGradientLine(x+ | gr.drawGradientLine(x+10,y+10,x+2,y+2) | ||
gr.drawGradientLine(x- | gr.drawGradientLine(x-10,y+10,x-5,y+2) | ||
gr.drawGradientLine(x+ | gr.drawGradientLine(x+10,y-10,x+2,y-2) | ||
gr.drawGradientLine(x- | gr.drawGradientLine(x-10,y-10,x-2,y-2) | ||
end | |||
-- get mission time | |||
if missiontime == nil then | |||
missiontime = mn.getMissionTime() | |||
oldmissiontime = missiontime | |||
end | end | ||
-- if the time is valid | |||
if missiontime ~= nil then | |||
-- if we are actually doing something | |||
missiontime = mn.getMissionTime() | |||
-- only continue if the time actually progresses | |||
if oldmissiontime ~= missiontime then | |||
plr = hv.Player | |||
-- only continue if we can get valid player handle | |||
if plr:isValid() then | |||
local velocity = plr.Physics.Velocity | |||
local vlenght = velocity:getMagnitude() | |||
-- if we actually some velocity... | |||
local vvector = plr.Position + (velocity/(vlenght/2000)) | |||
if vlenght > 5 then | |||
local x | |||
local y | |||
x, y = vvector:getScreenCoords() | |||
-- ok... so now we have the projected velocity vector | |||
-- if it actually is on screen then draw it | |||
if x ~= false then | |||
gr.setColor(100,100,255,160) | |||
drawvelret(x, y) | |||
end | |||
end | |||
end | |||
end | |||
-- make sure oldmissiontime is incremented | |||
oldmissiontime = missiontime | |||
end | end | ||
] | ] | ||
#End</pre> | #End</pre> | ||
[[Category:Scripting Examples|Velocity Indicator]] | [[Category:Scripting Examples|Velocity Indicator]] | ||
Revision as of 20:48, 11 March 2009
Function
Revised script which draws indicator to mark the true direction of the flight.
Table Entry
#Conditional Hooks
$Application: FS2_Open
$State: GS_STATE_GAME_PLAY
$On Frame:
[
drawvelret = function(x, y)
gr.drawGradientLine(x+10,y+10,x+2,y+2)
gr.drawGradientLine(x-10,y+10,x-5,y+2)
gr.drawGradientLine(x+10,y-10,x+2,y-2)
gr.drawGradientLine(x-10,y-10,x-2,y-2)
end
-- get mission time
if missiontime == nil then
missiontime = mn.getMissionTime()
oldmissiontime = missiontime
end
-- if the time is valid
if missiontime ~= nil then
-- if we are actually doing something
missiontime = mn.getMissionTime()
-- only continue if the time actually progresses
if oldmissiontime ~= missiontime then
plr = hv.Player
-- only continue if we can get valid player handle
if plr:isValid() then
local velocity = plr.Physics.Velocity
local vlenght = velocity:getMagnitude()
-- if we actually some velocity...
local vvector = plr.Position + (velocity/(vlenght/2000))
if vlenght > 5 then
local x
local y
x, y = vvector:getScreenCoords()
-- ok... so now we have the projected velocity vector
-- if it actually is on screen then draw it
if x ~= false then
gr.setColor(100,100,255,160)
drawvelret(x, y)
end
end
end
end
-- make sure oldmissiontime is incremented
oldmissiontime = missiontime
end
]
#End