铁血丹心

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

[不负责任的教程]在源码里添加战意系统的方法

  [复制链接]
发表于 2013-1-4 07:19 | 显示全部楼层 |阅读模式
本帖最后由 二宫和也 于 2013-1-9 10:30 编辑

返回教程索引

很久没写教程了,最近无聊山寨了一下天翔的战意和连环系统,分享一下做法,顺便冲淡一下小广告

声明:此乃自娱自乐之用,创意版权归天翔

需要改的步骤:
1)添加战斗全局变量
2)战意的增加与减少
3)战意的显示
4)人物组合效果
5)战意的具体效果



1)添加战斗全局变量
战斗的全局变量是在WarSetGlobal这个函数里的,找到之后在中间插入一句:
  1. WAR.SPIRIT = {}
复制代码
这里会产生一个叫WAR.SPIRIT的表,我们接下来会把所有人物的战意储存到里面

2)战意的增加与减少
首先我们要做到战意的初始化,也就是战斗开场的时候所有人战意100,这个是在WarMain函数里面的。如果你有空的话仔细看一下就能发现很多战斗一开始出现的效果,比如圣火阵,北斗阵,黄蓉的布阵都可以在里面找到。在WarMain函数里搜索buzhen(),这句代码是调试黄蓉布阵,在它的附近加上如下语句
  1.   for a = 0, WAR.PersonNum - 1 do --战意初始化
  2.         local aa = WAR.Person[a]["人物编号"]
  3.     WAR.SPIRIT[aa] = 100
  4.   end  
复制代码
这样就可以做到战斗初始化的时候所有人的起始战意都为100。特定的组合加成我们等下再讲。

接下来是战意的增加和减少,我这里就给个例子,每杀一人战意+5,在War_WugongHurtLife函数里搜索平一指杀人,在它的附近添加如下语句
  1.   if JY.Person[eid]["生命"] <= 0 then --击败敌人战意增长
  2.         WAR.SPIRIT[pid] =WAR.SPIRIT[pid] + 5
  3.   end
复制代码
下面可以自行添加一个判断让战意的最大值为140。如果想像天翔那样每次行动后增加的话需要修改War_Manual与War_Auto这两个函数,以上面为例自己添加。另外还可以做成被攻击减战意,复活减战意,指令增减战意等等,你要喜欢就算做个新的天赋都行

3)战意的显示
因为我最讨厌的就是绘图的时候计算坐标,所以就随便加在了WarShowHead函数里,在里面搜索一下代码
  1. local headw, headh = lib.PicGetXY(1, p["头像代号"] * 2)
复制代码
然后把以下代码加在下面
  1.   DrawString(x1 + 5, y1 + 5, "战意", C_WHITE, 16)
  2.   DrawString(x1 + 5, y1 + 23, ""..math.modf(WAR.SPIRIT[pid]), C_RED, 16)
复制代码
这样人物的战意就会出现在头像的左上角(如下图),你也可以根据喜好自行改变位置,慢慢测试坐标就好了。


4)人物组合效果
这步不是必须的,看自己喜好了,具体代码我也不知道怎么解释,自己看吧。做法是在SetGlobalConst函数的底部加上一个表,如下
  1. CC.COMBO = {
  2.         {1, 2, "飞雪情侠"},
  3.         {3, 72, "狼狈为奸"},
  4.         {37, 38, "赤心双子"},
  5.         {47, 48, "铁怪毒娇"},
  6.         {51, 76, "姑苏表亲"},
  7.         {53, 76, "仙洞眷侣"},
  8.         {90, 77, "灵慧双娇"},
  9.         {55, 56, "铁血丹心"},
  10.         {87, 86, "鹿鼎双妹"},
  11.         {35, 73, "剑胆琴心"},
  12.         {36, 79, "苦命鸳鸯"},
  13.         {75, 74, "巾帼红花"},
  14.         {58, 59, "神雕侠侣"},
  15.         {9, 66, "倚天奇情"},
  16.         {16, 17, "蝶谷怪医"},
  17.         {54, 91, "碧血情天"},
  18.         {88, 89, "酒食为天"},
  19.         {35, 58, "独孤传人"},
  20.         {83, 25, "五毒五仙"},
  21.         {35, 29, "刀剑双英"},
  22.         }
复制代码
其中前两个数字是组合的人物id,后面那四个字是组合名称,可自行添加

接下来也是在WarMain里,在初始化战意的代码下面,加上以下语句
  1.         local combo = {}
  2.         for i = 1, #CC.COMBO do
  3.                combo[i] = {CC.COMBO[i][1], CC.COMBO[i][2], CC.COMBO[i][3]}
  4.         end
  5.         for i = 0, WAR.PersonNum - 1 do
  6.                 local t = WAR.Person[i]["人物编号"]
  7.                 for j = 1, #combo do
  8.                         if t == combo[j][1] then
  9.                                 for z = 0, WAR.PersonNum - 1 do
  10.                                         local t2 = WAR.Person[z]["人物编号"]
  11.                                         if t2 == combo[j][2] then
  12.                                                 combo[j][4] = 1
  13.                                         end
  14.                                 end
  15.                         end
  16.                 end
  17.         end
  18.         for i = 1, #combo do
  19.                 if combo[i][4] ~= nil then
  20.                         local t1 = combo[i][1]
  21.                         local t2 = combo[i][2]
  22.                         WAR.SPIRIT[t1] = limitX(WAR.SPIRIT[t1] + 10, 50, 140)
  23.                         WAR.SPIRIT[t2] = limitX(WAR.SPIRIT[t2] + 10, 50, 140)
  24.                         for j = 0, 25 do
  25.                                 local str = JY.Person[t1]["姓名"].."&"..JY.Person[t2]["姓名"].."    战意各自提升十点"
  26.                                 local str2 = combo[i][3]
  27.                                 Cls()
  28.                                 DrawBox(50, CC.ScreenH / 3 - 20, CC.ScreenW - 50, CC.ScreenH / 3 * 2 - 20, C_BLACK)
  29.                                 lib.PicLoadCache(1, JY.Person[t1]["头像代号"] * 2,CC.ScreenW / 4 - 130,CC.ScreenH / 2 - 100,1)
  30.                                 lib.PicLoadCache(1, JY.Person[t2]["头像代号"] * 2,CC.ScreenW / 4 + 50,CC.ScreenH / 2 - 100,1)
  31.                                 NewDrawString(-1, CC.ScreenH + 120, str, C_ORANGE, 25)        
  32.                                 NewDrawString(CC.ScreenW / 2 * 3 - 20, CC.ScreenH - 50, str2, C_GOLD, 50 + j)
  33.                                 ShowScreen()      
  34.                                 if j == 25 then
  35.                                         lib.Delay(300)
  36.                                 else
  37.                                         lib.Delay(2)
  38.                                 end  
  39.                         end                        
  40.                 end
  41.         end
复制代码
我这里用的是笨方法外加n个循环,显示在800x600分辨率下无问题,用其他分辨率的请自行调整坐标,最终效果图如下


在这里多加一句,如果有爱可以自行添加组合的其他特效,显示的时候改一下str的内容就好了

5)战意的具体效果
这个看自己喜好吧,具体的我就不多说了,如果你要加集气就改GetJiqi函数,加伤害或杀气就改War_WugongHurtLife函数,爱咋整咋整,DIY区的原则就是没有原则

以上,完毕

返回教程索引


本帖子中包含更多资源

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

x

评分

参与人数 1声望 +10 收起 理由
smallau + 10 技术帖!

查看全部评分

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

点评

就剩1天了...  发表于 2013-1-4 08:45
谁让俺木有寒假呢,唉~~  发表于 2013-1-4 08:22
怎么不见你来点现成的东西....  发表于 2013-1-4 08:19
你有现成的,我还鼓捣干嘛~~  发表于 2013-1-4 08:09
连锁就更容易了,你自己都能捣鼓出来期待我干吗....  发表于 2013-1-4 08:01
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 08:53 | 显示全部楼层
本帖最后由 慕容老恭 于 2013-1-4 08:53 编辑

你们寒假那么短那赶紧把宠物系统放出来吧,你就圆满了

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 09:50 | 显示全部楼层
为啥要循环0,25?
                        for j = 0, 25 do
                                local str = JY.Person[t1]["姓名"].."&"..JY.Person[t2]["姓名"].."    战意各自提升十点"
                                local str2 = combo[3]
                                Cls()
                                DrawBox(50, CC.ScreenH / 3 - 20, CC.ScreenW - 50, CC.ScreenH / 3 * 2 - 20, C_BLACK)
                                lib.PicLoadCache(1, JY.Person[t1]["头像代号"] * 2,CC.ScreenW / 4 - 130,CC.ScreenH / 2 - 100,1)
                                lib.PicLoadCache(1, JY.Person[t2]["头像代号"] * 2,CC.ScreenW / 4 + 50,CC.ScreenH / 2 - 100,1)
                                NewDrawString(-1, CC.ScreenH + 120, str, C_ORANGE, 25)        
                                NewDrawString(CC.ScreenW / 2 * 3 - 20, CC.ScreenH - 50, str2, C_GOLD, 50 + j)
                                if j == 25 then
                                        NewDrawString(CC.ScreenW / 2 * 3 - 20, CC.ScreenH - 50, str2, C_GOLD, 75)
                                        lib.Delay(300)
                                else
                                        lib.Delay(2)
                                end
                                ShowScreen()        
                        end         

点评

循环只是让显示文字有从小变大浮现的效果,删掉直接显示文字也是可以的  发表于 2013-1-4 10:11
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 12:27 | 显示全部楼层
你已经超神了,祖国的未来就交给你了~~我继续遁了

点评

木有未来,我也遁着呢...  发表于 2013-1-4 12:38
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2013-1-4 14:30 | 显示全部楼层
回复 慕容老恭 的帖子

那个坑了,其实就跟带个队友上战场差不多呗,同样坑掉的还有如下,你无聊就照着捣鼓去吧

点评

哇噻,武林群侠传MOD?那可是惊天动地呀,发到武林群侠传的百度吧里面去,包你迷倒一片人,无论男女!  发表于 2013-1-4 15:19
武林群侠传就算了,哪种模式已经丧失新颖感了。 = =  发表于 2013-1-4 15:09
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 14:53 | 显示全部楼层
本帖最后由 慕容老恭 于 2013-1-4 15:02 编辑

回复 二宫和也 的帖子

俺鼓捣的和你不太一样啊!

搜集素材!



预想中的战斗。好吧,其实我想把所有战斗改为这样决胜负!



本帖子中包含更多资源

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

x

点评

口袋金庸?  发表于 2013-1-8 16:59
一点也不违和,时空错乱的年代,口袋妖怪袭来,从此武林中人,人手一只,调教驯养,代为战斗,其乐融融~  发表于 2013-1-4 15:08
违和感太重了...  发表于 2013-1-4 15:05
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 15:39 | 显示全部楼层
我艹.. 看来diy版只有想不到没有做不到 口袋妖怪都出来了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-4 17:55 | 显示全部楼层
二宫大已经超神了~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-8 17:00 | 显示全部楼层
回复 慕容老恭 的帖子

几天不见,口袋金庸都搞出来了,
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-8 18:50 | 显示全部楼层
本帖最后由 慕容老恭 于 2013-1-8 20:25 编辑

回复 2628414 的帖子

仅仅是个休闲的元素而已















本帖子中包含更多资源

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

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

太牛X了,期待早日完成
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-8 21:57 | 显示全部楼层
回复 慕容老恭 的帖子

有试玩版先发我一个

点评

等独立的伤害公式写完吧  发表于 2013-1-9 09:13
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-9 00:53 | 显示全部楼层
其實我覺得戰意跟連鎖是個挺不錯的系統,大大增加了戰鬥的變化性
但是同時降低了戰鬥中的防守、吃藥、反擊的選擇
就不知有沒有辦法在這中間取得平衡呢?

点评

确实反击流在有连锁的前提下不是很吃香,你要是有啥新系统建议我可以试试然后再发个教程...  发表于 2013-1-9 09:34
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-9 21:23 | 显示全部楼层
本帖最后由 hnc 于 2013-1-9 21:27 编辑

其实可以在战意增减上做文章,比如:
攻击非防御者+2,攻击防御者+1,非防御被攻击-2,防御被攻击+1;
暴击+1,连击+1,被暴击-1,被连击-1
干掉敌人(不论多少只论次数)+5,被干掉一个队友-5(敌人不论多少只算一次)
吃药一次-2,蓄力+2,医疗、解毒、上毒、休息-1
这样就能控制战意增加不会太快~~能实现不?

点评

在四神都被秒杀,开自动皆可赢战,各种imba的DIY版,做这些细致设定有点费力不讨好。  发表于 2013-1-10 16:49
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-10 18:23 | 显示全部楼层
回复 慕容老恭 的帖子

我只是针对上面的说~~真做出来说不定会为了这个限制输出上限,比如战意100时最多伤害300,每多1点伤害上限+20,130就不限制上限,再每多10,增加伤害10%,150封顶,学了龙象伤害上限+50%,学了八荒对方战意130一下减少上限为武功等级*15

点评

凡是限制类的一定要慎重呀,很难想象一个秒四神的人物,打小兵还是300点血 = =  发表于 2013-1-10 18:37
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2013-1-10 19:05 | 显示全部楼层
回复 慕容老恭 的帖子

没办法~~只能做成战意与最大伤害挂钩了~~现在就是战斗力突破天际的错,明明只是战斗力5的地球人而已~~
可以设定战意100为标准,取值50~150,最高伤害1000,每1点影响20伤害上限,战意60以下伤害上限为100,战意150,最大伤害就是2000,直接增加伤害值的特效可以突破当前伤害最大值的上限
再加上龙象可增加伤害上限50%,这样打小兵的数据不会太难看了~~不然战意系统没市场啊,在现在这种港漫式战斗中真是没有用武之地。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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