⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 share_levels.lua

📁 这是整套横扫千军3D版游戏的源码
💻 LUA
字号:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------  file:    share_levels.lua--  brief:   control resource sharing--  author:  Dave Rodgers----  Copyright (C) 2007.--  Licensed under the terms of the GNU GPL, v2 or later.------------------------------------------------------------------------------------------------------------------------------------------------------------------function gadget:GetInfo()  return {    name      = "ShareLevels",    desc      = "Control resource sharing",    author    = "trepan",    date      = "Apr 22, 2007",    license   = "GNU GPL, v2 or later",    layer     = -5,    enabled   = true  --  loaded by default?  }end----------------------------------------------------------------------------------------------------------------------------------------------------------------local metalForce  = falselocal metalLevel  = 0.5local energyForce = falselocal energyLevel = 0.5-- for togglinglocal prevMetal = falselocal prevEnery = falselocal cmdName = "sharelevels"local help    = " <on|off|list|toggle|<<e|m|*> [<on|off|%>]>]>"                .. ":  control automatic team resource sharing"--------------------------------------------------------------------------------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 trueendlocal function PrintHelp()  Spring.Echo(help)  return trueendlocal function PrintState()  if (not metalForce) then    Spring.Echo('forced metal sharing is disabled')  else    Spring.Echo(string.format(      'forced metal sharing level set to: %i%%',      ((1 - metalLevel) * 100)    ))  end  if (not energyForce) then    Spring.Echo('forced energy sharing is disabled')  else    Spring.Echo(string.format(      'forced energy sharing level set to: %i%%',      ((1 - energyLevel) * 100)    ))  end  return trueendlocal function ToggleBoth()  local hadPrev = (prevMetal or prevEnergy)  if (metalForce or energyForce) then    prevMetal  = metalForce    prevEnergy = energyForce    metalForce  = false    energyForce = false  elseif (hadPrev) then    metalForce  = prevMetal    energyForce = prevEnergy  else    metalForce  = true    energyForce = true  endendlocal function ChatControl(cmd, line, words, playerID)  if (not AllowAction(playerID)) then    PrintState()    return true  end    local w1, w2 = words[1], words[2]    if ((w1 == 'list') or (w1 == 'l')) then    return PrintState()  elseif ((w1 == 'toggle') or (w1 == 't')) then    ToggleBoth()    return PrintState()  elseif (w1 == 'on') then    metalForce  = true    energyForce = true    return PrintState()  elseif (w1 == 'off') then    metalForce  = false    energyForce = false    return PrintState()  end  if (not (w1 == 'e') and      not (w1 == 'm') and      not (w1 == '*')) then    return PrintHelp()  end  if (w2 == nil) then    if (w1 == 'm') then      metalForce = not metalForce      return PrintState()    elseif (w1 == 'e') then      energyForce = not energyForce      return PrintState()    else      ToggleBoth()      return PrintState()    end  end  if ((w2 == 'on') or (w2 == 'off')) then    local state = (w2 == 'on')    if (w1 == 'm') then      metalForce = state      return PrintState()    elseif (w1 == 'e') then      energyForce = state      return PrintState()    else      metalForce  = state      energyForce = state      return PrintState()    end    return PrintHelp()  end  local level = tonumber(w2)  if (level == nil) then    PrintHelp()    Spring.Echo("bad sharing level: " .. w2)    return true  end  level = (100 - level) * 0.01  if (level < 0) then level = 0 end  if (level > 1) then level = 1 end  if ((w1 == 'm') or (w1 == '*')) then    metalLevel = level    metalForce = true  end  if ((w1 == 'e') or (w1 == '*')) then    energyLevel = level    energyForce = true  end  return PrintState()end--------------------------------------------------------------------------------function gadget:Initialize()  if (not gadgetHandler:IsSyncedCode()) then    gadgetHandler:RemoveGadget()    return  end  gadgetHandler:AddChatAction(cmdName, ChatControl, help)  Script.AddActionFallback(cmdName .. ' ', help)endfunction gadget:Shutdown()  gadgetHandler:RemoveChatAction(cmdName, ChatControl)end--------------------------------------------------------------------------------local GetTeamList       = Spring.GetTeamListlocal SetTeamShareLevel = Spring.SetTeamShareLevelfunction gadget:GameFrame()  if (not (metalForce or energyForce)) then    return  end  for _,team in ipairs(GetTeamList()) do    if (metalForce)  then SetTeamShareLevel(team, 'm', metalLevel)  end    if (energyForce) then SetTeamShareLevel(team, 'e', energyLevel) end  end  return falseendfunction gadget:AllowResourceLevel(teamID, type, level)  if (type == 'm') then    return not metalForce  elseif (type == 'e') then    return not energyForce  end  return trueend----------------------------------------------------------------------------------------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -