1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
-- file: cmd_nocost.lua
-- brief: provides a reversible nocost command
-- author: Dave Rodgers
--
-- Copyright (C) 2007.
-- Licensed under the terms of the GNU GPL, v2 or later.
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function gadget:GetInfo()
return {
name = "NoCost",
desc = "Provides a reversible nocost command",
author = "trepan",
date = "May 03, 2007",
license = "GNU GPL, v2 or later",
layer = 0,
enabled = true -- loaded by default?
}
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
local nocost = false
local function AllowAction(playerID)
if (playerID ~= 0) then
Spring.SendMessageToPlayer(playerID, "Must be the host player")
return false
end
if (not Spring.IsCheatingEnabled()) then
Spring.SendMessageToPlayer(playerID, "Cheating must be enabled")
return false
end
return true
end
local function NoCost(cmd, line, words, playerID)
if (not AllowAction(playerID)) then
Spring.Echo('LuaRules nocost is ' .. ((nocost and 'enabled') or 'disabled'))
return true
end
if (#words <= 0) then
nocost = not nocost
else
nocost = (words[1] == '1')
end
Spring.Echo('LuaRules nocost is ' .. ((nocost and 'enabled') or 'disabled'))
return true
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function gadget:Initialize()
-- Only for synced
if ((not gadgetHandler:IsSyncedCode()) or
(Script.GetName() ~= 'LuaRules')) then
gadgetHandler:RemoveGadget()
return
end
local cmd, help
cmd = "nc"
help = " [0|1]: reversible nocost (requires cheating)"
gadgetHandler:AddChatAction(cmd, NoCost, help)
Script.AddActionFallback(cmd .. ' ', help)
end
function gadget:Shutdown()
gadgetHandler:RemoveChatAction('nocost')
end
function gadget:UnitCreated(unitID, unitDefID, unitTeam)
if (nocost) then
Spring.SetUnitCosts(unitID, {
buildTime = 1,
metalCost = 1,
energyCost = 1
})
end
end
function gadget:UnitFinished(unitID, unitDefID, unitTeam)
if (nocost) then
local ud = UnitDefs[unitDefID]
if (ud) then
Spring.SetUnitCosts(unitID, {
buildTime = ud.buildTime,
metalCost = ud.metalCost,
energyCost = ud.energyCost
})
end
end
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
|