设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
查看: 2034|回复: 0

[疑问] 研发特定科技开启黄金时代

[复制链接]
发表于 2011-12-23 12:32:39 | 显示全部楼层 |阅读模式
大家好,最近研究civ5 mod,想给特定文明做出发现特定科技就可以进入黄金时代的效果(比如中国的罗盘、火药和印刷术),写了一些Lua代码,但是运行的时候不能成功,搞不清楚问题出在哪里。贴在这里,希望能得到一些帮助。
我的想法是,当中国(武则天)发现弓箭科技时(方便测试用,弓箭发现得快),进入默认长度的黄金时代。
local iTechArcher = GameInfo.Technologies["TECH_ARCHERY"].ID

function TechResearchedListener(iTeamId, iTechId, iChange)
  pTeam = Teams[iTeamId]
  if (pTeam:GetLeaderID() == GameInfo.Leaders["WuZetian"].ID) then
    if (iTechId == iTechArcher) then
                for pPlayer in Players() do
                        if pPlayer:GetTeam() == iTeamId then
                        pPlayer:ChangeGoldenAgeTurns(pPlayer:GetGoldenAgeModifier()*GameDefines.GOLDEN_AGE_LENGTH)
                        end
                end
        end
  end
end

GameEvents.TeamTechResearched.Add(TechResearchedListener)

这是我写的代码了。

PS:大家或许看出来了,这里为了找到特定队伍的特定玩家,我用了for循环,不知道team的类里面有没有自带获得playerID的外接函数呢?我查lua reference好像没有找到Team:GetPlayerID这一项。

多谢指教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|塞爱维(CIV)文明联盟    

GMT+8, 2024-4-24 19:11

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表