铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 1216|回复: 6

请帮忙看看以下代码为何没有达到预期效果?

[复制链接]
发表于 2012-9-6 11:07 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 武骧金星 于 2012-9-6 11:09 编辑

代码取自二宫的山寨版~我改的部分用红色显示出来

代码1:

    --计算伤害的敌人
    for i = 0, CC.WarWidth - 1 do
      for j = 0, CC.WarHeight - 1 do
        local effect = GetWarMap(i, j, 4)
        if 0 < effect then
          local emeny = GetWarMap(i, j, 2)
            if 0 <= emeny and emeny ~= WAR.CurID then        --如果有人,并且不是当前控制人
            
                        if WAR.Person[WAR.CurID]["我方"] ~= WAR.Person[emeny]["我方"] or ((GetS(0, 0, 0, 0) ~= 1 or WAR.tmp[1000 + pid] ~= nil) or (ZHEN_ID < 0 and WAR.WS == 0)) then
                  if JY.Wugong[wugong]["伤害类型"] == 1 and (fightscope == 0 or fightscope == 3) then
                    if level == 11 then
                      level = 10
                    end
                    WAR.Person[emeny]["内力点数"] = (WAR.Person[emeny]["内力点数"] or 0) - War_WugongHurtNeili(emeny, wugong, level)
                    SetWarMap(i, j, 4, 3)
                    WAR.Effect = 3
                    else
                      if getHZ(WAR.Person[emeny]["人物编号"], 9) then --and math.random(100) <= 10 then   
                      WAR.Person[emeny]["生命点数"] = (WAR.Person[emeny]["生命点数"] or 0) + War_WugongHurtLife(emeny, wugong, level, ng)
                      else

这样修改的原意是:当装备了9号徽章以后有10%的概率被打的时候反而加生命。
实际效果是:在被打的时候显示确实是加了生命(就像医疗一样,是粉红色的+数字),但是实际上生命还是照扣不误,能否帮忙看看是咋回事?
                      WAR.Person[emeny]["生命点数"] = (WAR.Person[emeny]["生命点数"] or 0) - War_WugongHurtLife(emeny, wugong, level, ng)
                      end
                      WAR.Effect = 2
                      SetWarMap(i, j, 4, 2)
                    end
                     end
              end
            end
      end
    end

-----------------------------------------------------------分割线--------------------------------------------------------------------------------

代码2:

在function AddPersonAttrib(id, str, value) 中加入了这么一段代码:

  if str == "受伤程度" and getHZ(id, 20) then   
    add = 0
  end

这样修改的原意是:当装备了20号徽章以后不会受内伤
实际效果是:完全没效果,被打照样内伤……同样请帮忙看看是啥原因?谢谢


我测试过这两段代码,IF都是判断成功的。所以应该就是这么写有问题~但是想不明白到底错在哪里了。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-9-6 11:22 | 显示全部楼层
本帖最后由 ivansz 于 2012-9-6 11:28 编辑

第一段代码 扣血是在 wugonghurtlife 函数里计算的,生命点数只是显示的数值而已,解决方法:
搜索 --独孤求败,极意时另外计算 在其上方添加代码
if getHZ(eid, 9) and math.random(100) <= 10 then
  hurt = - hurt
end
这也写的话独孤求败极意还是另外计算的。


第二段 你写错位置了,解决方法:
在AddPersonAttrib函数把判断写在 local newvalue = limitX(oldvalue + value, 0, attribmax) 这一句之前
并且写成这样
if str == "受伤程度" and getHZ(id, 20) then   
    value = 0
end
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-9-6 11:27 | 显示全部楼层
1)把War_WugongHurtLife(emeny, wugong, level, ng)改成AddPersonAttrib(WAR.Person[emeny]["人物编号"], "生命", 100)

2)把add = 0 改成value = 0,而且要放在local newvalue xxxxx的上方
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-9-6 11:28 | 显示全部楼层
第一个,搜索JY.Person[eid]["生命"] = JY.Person[eid]["生命"] - (hurt),加个判定把-hurt改成+hurt
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-9-6 11:29 | 显示全部楼层
第一个,搜索JY.Person[eid]["生命"] = JY.Person[eid]["生命"] - (hurt),加个判定把-hurt改成+hurt

点评

好吧 我也是来赚分的= =  发表于 2012-9-6 11:54
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-9-6 11:30 | 显示全部楼层
回复 二宫和也 的帖子

好吧 你三连了 。。。。是不是用手机上呀

点评

话说我发的时候没看到你的答案...算了我赚点分而已  发表于 2012-9-6 11:35
论坛抽风...我无辜的  发表于 2012-9-6 11:34
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-9-6 11:38 | 显示全部楼层
恩,这样就解决了,多谢二位的指导~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-24 10:12

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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