铁血丹心

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

二宫大大,北冥显示问题???你看看代码是什么原因???

[复制链接]
发表于 2012-7-29 17:59 | 显示全部楼层 |阅读模式

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

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

x
本意是想当被攻击时,攻击者减生命和内力,被攻击者加生命和内力,我想让电脑显示出来文字,但是写了代码后,文字是在攻击者触发北冥真气后在攻击时显示出来,然后才在攻击后显示,能不能先攻击后显示,同样被攻击者也是一样????另外怎么我怎么打别人时也一样会出现这个现象,怎么解决????另外关于斗转出四系极意是怎么出的,能给我个代码吗,让我看看,如剑出玄铁,拳出降龙,特出打狗,刀出胡刀????下面是北冥的代码,你看看是怎么会是????
  1. if PersonKF(eid, 108) then -- 如果练了易筋经
  2.           SetWarMap(WAR.Person[WAR.CurID]["坐标X"],WAR.Person[WAR.CurID]["坐标Y"], 4, 2) --攻击者被视为命中
  3.           local xnl = math.modf(JY.Person[pid]["内力"] / 12 + math.random(10)) --加/减的内力量
  4.                     WAR.Person[WAR.CurID]["内力点数"] = (WAR.Person[WAR.CurID]["内力点数"] or 0) + AddPersonAttrib(pid, "内力", -xnl); --攻击者减内力
  5.             WAR.Person[emenyid]["内力点数"] = (WAR.Person[emenyid]["内力点数"] or 0) + AddPersonAttrib(eid, "内力", math.modf(xnl + 1)) ;--被攻击者加内力
  6.             WAR.Person[WAR.CurID]["生命点数"] = (WAR.Person[WAR.CurID]["生命点数"] or 0) + AddPersonAttrib(pid, "生命", -200); --攻击者减生命
  7.                         if WAR.Person[WAR.CurID][CC.TXWZ2] ~= nil then                   --显示攻击者姓名-生命和-内力
  8.                    WAR.Person[WAR.CurID][CC.TXWZ2] = JY.Person[pid]["姓名"]..WAR.Person[WAR.CurID]["生命点数"].." 内力"..WAR.Person[WAR.CurID]["内力点数"]
  9.                     end
  10.                 WAR.Person[emenyid]["生命点数"] = (WAR.Person[emenyid]["生命点数"] or 0) + AddPersonAttrib(eid, "生命", 400);--被攻击者加生命         
  11.             if WAR.Person[emenyid][CC.TXWZ2] ~= nil then                --被显示攻击者姓名+生命和+内力      
  12.                    WAR.Person[emenyid][CC.TXWZ2] = JY.Person[eid]["姓名"].."+"..WAR.Person[emenyid]["生命点数"].." 内力".."+"..WAR.Person[emenyid]["内力点数"]
  13.                     end                
  14.                 WAR.LXXS[pid] = 1 --流血显示
  15.             if WAR.LXZT[pid] == nil then --攻击者流血量增加
  16.                      WAR.LXZT[pid] = 20
  17.                else WAR.LXZT[pid] = WAR.LXZT[pid] + 20
  18.             end                                                 
  19.            end      
复制代码
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-29 23:03 | 显示全部楼层
本帖最后由 二宫和也 于 2012-7-29 23:04 编辑

貌似跟函数的调用顺序有关..我也不是很清楚怎样改才能达到你要的效果

斗转的话最简单的就是在War_Fight_Sub里面添加下面的代码,效果是斗转反击范围增大,文字你自己加就好,比如反击时候用的是剑你就加玄铁的文字显示
  1. if WAR.DZXYLV[pid] ~= nil and WAR.DZXYLV[pid] > 10 then
  2.         for i = 1, 6 do
  3.                 for j = 1, 6 do
  4.                         SetWarMap(x + i - 1, y + j - 1, 4, 1)
  5.                         SetWarMap(x - i + 1, y + j - 1, 4, 1)
  6.                         SetWarMap(x + i - 1, y - j + 1, 4, 1)
  7.                         SetWarMap(x - i + 1, y - j + 1, 4, 1)
  8.                 end
  9.         end        
  10.         ng = ng + 2000
  11. end
复制代码
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-30 11:06 | 显示全部楼层
本帖最后由 btxdex 于 2012-7-30 11:09 编辑

首先设置一个(两个来区分攻击防御)WAR.Person的战斗变量,例如
  1. WAR.Person[i]["显示数据"]
复制代码

来储存你显示的文字。
War_ShowFight这个函数,有这么一行
HitXY[HitXYNum] = {x1, y1, nil, nil, nil, nil, nil, nil, nil, nil, nil};                --x, y, 生命, 内力, 体力, 封穴, 流血, 中毒, 解毒, 内伤
添加一个nil来显示你想要的数据。
在随后添加以下代码(不保证可以达到效果,请自行研究函数)
  1.      if WAR.Person[i]["显示数据"] ~= nil then                        
  2.                         HitXY[HitXYNum][11] = WAR.Person[i]["显示数据"];
  3.                end
复制代码
在清除点数部分添加
WAR.Person[id]["显示数据"] = nil;
原理就是把这个显示的数据和内伤中毒都放在一起了。最后,这个方法不保证可用。。。

点评

来学习的  发表于 2012-7-30 13:32
看起来很可行,这就是跳出框架思维的解决方法丫,受教了  发表于 2012-7-30 11:25
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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