铁血丹心

 找回密码
 我要成为铁血侠客
搜索
12
返回列表 发新帖
楼主: ivansz

给大家推荐一个好用的网盘——金山快盘

  [复制链接]
发表于 2012-8-8 15:25 | 显示全部楼层
ivansz 发表于 2012-8-8 12:49
苍大大其实是个隐世高手啊,膜拜

吐血,难道这年头会照抄的也能算高手(#‵′)凸
话说不是你们俩看不懂,只是代码被我改得乱七八糟,加上你们没看过原版苍龙的代码而已
先找到War_Fight_Sub函数,这段函数里往下翻,跳过群杀的那段代码,应该能找到一段被注释掉的代码(不确定是注释掉了还是直接删掉了)
    if fightscope==0 then
        if War_FightSelectType0(wugong,level,x,y)==false then
            return 0;
        end
    elseif fightscope==1 then
        War_FightSelectType1(wugong,level,x,y)

    elseif fightscope==2 then
        War_FightSelectType2(wugong,level,x,y)

    elseif fightscope==3 then
        if War_FightSelectType3(wugong,level,x,y)==false then
            return 0;
        end
    end
原版是这么设置的,然后直接找到FightSelectType0(这四个函数我确定没删),看一下就懂了,苍半里没有这几个函数,是直接跳转到FightSelectType函数里,然后执行绘制攻击范围等功能
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-8-8 16:32 | 显示全部楼层
本帖最后由 ivansz 于 2012-8-8 16:35 编辑

回复 苍天泰坦 的帖子
  1. --判断合击
  2.   local ZHEN_ID = -1
  3.   local x0, y0 = WAR.Person[WAR.CurID]["坐标X"], WAR.Person[WAR.CurID]["坐标Y"]
  4.   for i = 0, WAR.PersonNum - 1 do
  5.     if WAR.Person[WAR.CurID]["我方"] == WAR.Person[i]["我方"] and i ~= WAR.CurID and WAR.Person[i]["死亡"] == false and WAR.SQFJ ~= 1 then
  6.       local nx = WAR.Person[i]["坐标X"]
  7.       local ny = WAR.Person[i]["坐标Y"]
  8.       local fid = WAR.Person[i]["人物编号"]
  9.       for j = 1, 10 do
  10.               if JY.Person[fid]["武功" .. j] == wugong then         
  11.                 if math.abs(nx-x0)+math.abs(ny-y0)<9 then
  12.                   local flagx, flagy = 0, 0
  13.                   if math.abs(nx - x0) <= 1 then
  14.                     flagx = 1
  15.                   end
  16.                   if math.abs(ny - y0) <= 1 then
  17.                     flagy = 1
  18.                   end
  19.                   if x0 == nx then
  20.                     flagy = 1
  21.                   end
  22.                   if y0 == ny then
  23.                     flagx = 1
  24.                   end
  25.                   if between(x, x0, nx, flagx) and between(y, y0, ny, flagy) then
  26.                     ZHEN_ID = i
  27.                     WAR.Person[i]["人方向"] = 3 - War_Direct(x0, y0, x, y)
  28.                     break;
  29.                   end
  30.                 end
  31.               end
  32.                    end
  33.                    if ZHEN_ID >= 0 then
  34.               break;
  35.             end
  36.     end
  37.   end
复制代码


  1. --
  2. 这两段代码应该就是showfight里确认攻击范围的
  3. m1, m2, a1, a2, a3, a4, a5 = refw(wugong, level)  --获取武功的范围
  4.         movefanwei = {m1, m2}   --可移动的范围
  5.         atkfanwei = {a1, a2, a3, a4, a5}   --攻击范围
  6.    
  7.     WarDrawAtt(x, y, atkfanwei, 3)
  8.     if ZHEN_ID >= 0 then
  9.       local tmp_id = WAR.CurID
  10.       WAR.CurID = ZHEN_ID
  11.       WarDrawAtt(WAR.Person[ZHEN_ID]["坐标X"] + x0 - x, WAR.Person[ZHEN_ID]["坐标Y"] + y0 - y, atkfanwei, 3)
  12.       WAR.CurID = tmp_id
  13.     end
复制代码

  1. --计算武功范围
  2. refw = function(wugong, level)
  3.   local m1, m2, a1, a2, a3, a4, a5 = nil, nil, nil, nil, nil, nil, nil
  4.   if JY.Wugong[wugong]["攻击范围"] == -1 then
  5.     return JY.Wugong[wugong]["加内力1"], JY.Wugong[wugong]["加内力2"], JY.Wugong[wugong]["未知1"], JY.Wugong[wugong]["未知2"], JY.Wugong[wugong]["未知3"], JY.Wugong[wugong]["未知4"], JY.Wugong[wugong]["未知5"]
  6.   end
  7.   local fightscope = JY.Wugong[wugong]["攻击范围"]
  8.   local kfkind = JY.Wugong[wugong]["武功类型"]
  9.   local pid = WAR.Person[WAR.CurID]["人物编号"]
  10.   if fightscope == 0 then
  11.     if level > 10 then
  12.       m1 = 1
  13.       m2 = JY.Wugong[wugong]["移动范围" .. 10]
  14.       a1 = 1
  15.       a2 = 3
  16.       a3 = 3
  17.     else
  18.       m1 = 0
  19.       m2 = JY.Wugong[wugong]["移动范围" .. level]
  20.       a1 = 1
  21.       a2 = math.modf(level / 5)
  22.       a3 = math.modf(level / 8)
  23.     end
  24.   elseif fightscope == 1 then
  25.     if kfkind == 1 then
  26.       a1 = 12
  27.       if level > 10 then
  28.         m1 = 3
  29.         m2 = 1
  30.         a2 = JY.Wugong[wugong]["移动范围" .. 10] - 1
  31.       else
  32.         m1 = 2
  33.         m2 = 1
  34.         a2 = JY.Wugong[wugong]["移动范围" .. level] - 1
  35.       end
  36.     elseif kfkind == 2 then
  37.       a1 = 10
  38.       if level > 10 then
  39.         m1 = 3
  40.         m2 = 1
  41.         a2 = JY.Wugong[wugong]["移动范围" .. 10]
  42.         a3 = a2 - 1
  43.         a4 = a3 - 1
  44.       else
  45.         m1 = 2
  46.         m2 = 1
  47.         a2 = JY.Wugong[wugong]["移动范围" .. level]
  48.       end
  49.       if level > 7 then
  50.         a3 = a2 - 1
  51.       end
  52.     elseif kfkind == 3 then
  53.       a1 = 11
  54.       if level > 10 then
  55.         m1 = 3
  56.         m2 = 1
  57.         a2 = JY.Wugong[wugong]["移动范围" .. 10] - 1
  58.       else
  59.         m1 = 2
  60.         m2 = 1
  61.         a2 = JY.Wugong[wugong]["移动范围" .. level] - 1
  62.       end
  63.     elseif kfkind == 4 then
  64.       m1 = 2
  65.       if level > 10 then
  66.         m2 = JY.Wugong[wugong]["移动范围" .. 10] - 1
  67.         a1 = 7
  68.         a2 = 1 + math.modf(level / 3)
  69.         a3 = a2
  70.             else
  71.               m2 = JY.Wugong[wugong]["移动范围" .. level] - 1
  72.               a1 = 1
  73.               a2 = 1 + math.modf(level / 3)
  74.             end
  75.           end
  76.   elseif fightscope == 2 then
  77.     m1 = 0
  78.     m2 = 0
  79.     if kfkind == 3 then
  80.       if level > 10 then
  81.         a1 = 6
  82.         a2 = JY.Wugong[wugong]["移动范围" .. 10]
  83.       else
  84.         a1 = 8
  85.         a2 = JY.Wugong[wugong]["移动范围" .. level]
  86.       end
  87.     elseif level > 10 then
  88.       if kfkind == 1 then
  89.         a1 = 5
  90.         a2 = JY.Wugong[wugong]["移动范围" .. 10] - 1
  91.         a3 = a2 - 3
  92.       elseif kfkind == 2 then
  93.         a1 = 1
  94.         a2 = JY.Wugong[wugong]["移动范围" .. 10] - 1
  95.         a3 = a2
  96.       else
  97.         a1 = 2
  98.         a2 = 1 + math.modf(JY.Wugong[wugong]["移动范围" .. 10] / 2)
  99.       end
  100.     else
  101.       a1 = 1
  102.       a2 = JY.Wugong[wugong]["移动范围" .. level]
  103.       a3 = 0
  104.     end
  105.   elseif fightscope == 3 then
  106.     m1 = 0
  107.     a1 = 3
  108.     if level > 10 then
  109.       m2 = JY.Wugong[wugong]["移动范围" .. 10] + 1
  110.       a2 = JY.Wugong[wugong]["杀伤范围" .. 10]
  111.       a3 = a2
  112.     else
  113.             m2 = JY.Wugong[wugong]["移动范围" .. level]
  114.             a2 = JY.Wugong[wugong]["杀伤范围" .. level]
  115.     end
  116.   
  117.   end
  118.   return m1, m2, a1, a2, a3, a4, a5
  119. end
复制代码
这个函数就是新的计算函数


你加到你的代码里试试

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

好的,晚上下班后回去试试
问题确实可能出在这里,当时没仔细看这段代码,看到local ZHEN_ID = -1时,下意识的就把这段代码删除了,汗

点评

希望这次能搞定  发表于 2012-8-8 17:40
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-9 00:16 | 显示全部楼层
代码把我给看吐了...人和人的差距咋就这么不一样呢

点评

看代码都能怀上吗 XD  发表于 2012-8-9 00:35
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-9 07:26 | 显示全部楼层
昨晚试了N久,完败,不过意外发现我曾经几乎离成功只差一线,SCRIPT文件夹里有个备份的压缩包JYMAIN.rar,解压覆盖就行了,攻击范围正常,就是手动攻击菜单有点问题,自动的话没问题,还有就是人物出招动画和武功动画那块有点问题,回头接着这个档继续改吧,要是继续看现在这个会疯的

点评

| 革命尚未成功,同志仍需努力 |  发表于 2012-8-9 08:21
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-12-24 04:11

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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