Difference between revisions of "Script - Escort Reticle"
From FreeSpace Wiki
(Updated the script for compatibility) |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
Creates an additional reticle around all ships in the escort list. This script needs a nightly build revision 5834 or later to work. | Creates an additional reticle around all ships in the escort list. This script needs a nightly build revision 5834 or later to work. | ||
==Table Entry== | ==Table Entry== | ||
Line 5: | Line 4: | ||
$Application: FS2_Open | $Application: FS2_Open | ||
+ | |||
+ | $On Game Init: | ||
+ | [ | ||
+ | drawReticle = function(ship) | ||
+ | if ship.Team.Name == "Hostile" then gr.setColor(255,50,50,255) | ||
+ | elseif ship.Team.Name == "Friendly" then gr.setColor(0,255,0,255) | ||
+ | elseif ship.Team.Name == "Unknown" then gr.setColor(255,255,0,255) | ||
+ | end | ||
+ | local x | ||
+ | local y | ||
+ | local x1 | ||
+ | local y1 | ||
+ | x,y,x1,y1 = gr.drawTargetingBrackets(ship, true) | ||
+ | if x ~= nil and y1 ~= nil then gr.drawString(ship.Name, x, y1 + 4) end | ||
+ | end | ||
+ | ] | ||
$On HUD Draw: | $On HUD Draw: | ||
[ | [ | ||
− | missiontime = mn.getMissionTime() | + | if missiontime == nil then |
− | if missiontime | + | missiontime = mn.getMissionTime() |
− | + | oldmissiontime = missiontime | |
− | + | end | |
− | + | ||
− | + | if missiontime ~= nil then | |
− | + | if hu.HUDDrawn then | |
− | + | missiontime = mn.getMissionTime() | |
− | + | if oldmissiontime ~= missiontime then | |
− | + | if mn.EscortShips ~= nil then | |
− | + | NumberEscorted = #mn.EscortShips | |
− | + | for i= 1,NumberEscorted do | |
− | + | escortedship = mn.EscortShips[i] | |
− | + | if escortedship.Position:getScreenCoords() ~= false then | |
− | + | drawReticle(escortedship) | |
− | + | end | |
− | + | end | |
− | + | end | |
− | + | end | |
− | + | end | |
− | + | oldmissiontime = missiontime | |
end | end | ||
Line 38: | Line 53: | ||
[[Category:Scripting Examples|Escort Reticle]] | [[Category:Scripting Examples|Escort Reticle]] | ||
+ | |||
+ | |||
+ | ==Alternative Table Entry== | ||
+ | <pre>#Conditional Hooks | ||
+ | |||
+ | $Application: FS2_Open | ||
+ | |||
+ | $On Game Init: | ||
+ | [ | ||
+ | drawReticle = function(ship) | ||
+ | if ship.Team.Name == "Hostile" then gr.setColor(255,50,50,255) | ||
+ | elseif ship.Team.Name == "Friendly" then gr.setColor(0,255,0,255) | ||
+ | elseif ship.Team.Name == "Unknown" then gr.setColor(255,255,0,255) | ||
+ | end | ||
+ | local x | ||
+ | local y | ||
+ | local x1 | ||
+ | local y1 | ||
+ | plr = hv.Player | ||
+ | if plr:isValid() then | ||
+ | distance = ship.Position:getDistance(plr.Position) | ||
+ | -- collision_pos = ship:checkRayCollision(plr.Position, ship.Position, false) | ||
+ | -- distance = collision_pos:getDistance(plr.Position) | ||
+ | end | ||
+ | hippo_pct = math.floor((ship.HitpointsLeft / ship.Class.HitpointsMax) * 100) | ||
+ | x,y,x1,y1 = gr.drawTargetingBrackets(ship, true) | ||
+ | if x ~= nil and y1 ~= nil then | ||
+ | gr.drawString(ship.Name, x+3, y+2) | ||
+ | gr.drawString(ship.Class.Name, x+3, y+11) | ||
+ | gr.drawString(hippo_pct, x+3, y+20) | ||
+ | gr.drawString(distance, x+3, y+29) | ||
+ | end | ||
+ | end | ||
+ | ] | ||
+ | |||
+ | $On HUD Draw: | ||
+ | [ | ||
+ | |||
+ | if missiontime == nil then | ||
+ | missiontime = mn.getMissionTime() | ||
+ | oldmissiontime = missiontime | ||
+ | end | ||
+ | |||
+ | if missiontime ~= nil then | ||
+ | if hu.HUDDrawn then | ||
+ | missiontime = mn.getMissionTime() | ||
+ | if oldmissiontime ~= missiontime then | ||
+ | if mn.EscortShips ~= nil then | ||
+ | NumberEscorted = #mn.EscortShips | ||
+ | for i= 1,NumberEscorted do | ||
+ | escortedship = mn.EscortShips[i] | ||
+ | if escortedship.Position:getScreenCoords() ~= false then | ||
+ | drawReticle(escortedship) | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | oldmissiontime = missiontime | ||
+ | end | ||
+ | |||
+ | ] | ||
+ | |||
+ | #End</pre> |
Latest revision as of 08:44, 19 June 2012
Creates an additional reticle around all ships in the escort list. This script needs a nightly build revision 5834 or later to work.
Table Entry
#Conditional Hooks $Application: FS2_Open $On Game Init: [ drawReticle = function(ship) if ship.Team.Name == "Hostile" then gr.setColor(255,50,50,255) elseif ship.Team.Name == "Friendly" then gr.setColor(0,255,0,255) elseif ship.Team.Name == "Unknown" then gr.setColor(255,255,0,255) end local x local y local x1 local y1 x,y,x1,y1 = gr.drawTargetingBrackets(ship, true) if x ~= nil and y1 ~= nil then gr.drawString(ship.Name, x, y1 + 4) end end ] $On HUD Draw: [ if missiontime == nil then missiontime = mn.getMissionTime() oldmissiontime = missiontime end if missiontime ~= nil then if hu.HUDDrawn then missiontime = mn.getMissionTime() if oldmissiontime ~= missiontime then if mn.EscortShips ~= nil then NumberEscorted = #mn.EscortShips for i= 1,NumberEscorted do escortedship = mn.EscortShips[i] if escortedship.Position:getScreenCoords() ~= false then drawReticle(escortedship) end end end end end oldmissiontime = missiontime end ] #End
Alternative Table Entry
#Conditional Hooks $Application: FS2_Open $On Game Init: [ drawReticle = function(ship) if ship.Team.Name == "Hostile" then gr.setColor(255,50,50,255) elseif ship.Team.Name == "Friendly" then gr.setColor(0,255,0,255) elseif ship.Team.Name == "Unknown" then gr.setColor(255,255,0,255) end local x local y local x1 local y1 plr = hv.Player if plr:isValid() then distance = ship.Position:getDistance(plr.Position) -- collision_pos = ship:checkRayCollision(plr.Position, ship.Position, false) -- distance = collision_pos:getDistance(plr.Position) end hippo_pct = math.floor((ship.HitpointsLeft / ship.Class.HitpointsMax) * 100) x,y,x1,y1 = gr.drawTargetingBrackets(ship, true) if x ~= nil and y1 ~= nil then gr.drawString(ship.Name, x+3, y+2) gr.drawString(ship.Class.Name, x+3, y+11) gr.drawString(hippo_pct, x+3, y+20) gr.drawString(distance, x+3, y+29) end end ] $On HUD Draw: [ if missiontime == nil then missiontime = mn.getMissionTime() oldmissiontime = missiontime end if missiontime ~= nil then if hu.HUDDrawn then missiontime = mn.getMissionTime() if oldmissiontime ~= missiontime then if mn.EscortShips ~= nil then NumberEscorted = #mn.EscortShips for i= 1,NumberEscorted do escortedship = mn.EscortShips[i] if escortedship.Position:getScreenCoords() ~= false then drawReticle(escortedship) end end end end end oldmissiontime = missiontime end ] #End