铁血丹心

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

[不负责任的教程]新手DIY源码应用教程2.6 - 虚竹/如风的特效制作和介绍全局变量

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

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

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

x
本帖最后由 二宫和也 于 2012-8-17 12:51 编辑

返回教程索引

2.6 玩的就是穿越 - 虚竹的幸福和那些贯穿各个战斗函数的全局变量


本来是打算一个一个函数分解的,但有童鞋问起虚竹的福泽加护是如何实现的,而这不是改一个函数能解决的问题,所以这里提前讲下全局变量。

跟使用local产生的临时工变量相反,全局变量(global variable),顾名思义是转正了的,可以跨越n个函数的变量。搜索一下SetGlobal,你会发现这是一个函数,里面初始化了所有游戏里用到的变量。其中靠近函数尾部的地方你可以看到一行代码:
  • WAR = {}

复制代码
这个是战斗相关的全局变量,像我以前提过的WAR.BJ之类的就是从这个表衍生出来的。继续搜索WarSetGlobal,这也是一个函数,初始化了所有战斗用到的函数。每场战斗的开始这个函数就会被调用一次,里面的所有变量都可以用在大部分跟战斗有关的函数里面。

这里稍微提一下苍炎的战斗实现方法,搜索function WarMain,这个是战斗的主函数。战斗开始时会调用它。它本身则会调用一系列的函数,比如初始化数据,选择出场人物,设置人物坐标,加载人物,人物排序,人物行动等等。其中的初始化数据就包括了重置战斗全局变量。而因为这些变量在其他战斗函数被调用之前就被定义好了,所以这些变量可以自由穿越于各个战斗函数而不会突然消失。

好吧我觉得这里没讲好而且扯远了,看不懂的就别勉强了 = =

回到正题,虚竹的特级福泽加护就是靠一个战斗全局变量来实现的。搜索关键词虚竹  福泽加护
  • --虚竹  福泽加护,集气从200开始
  • if pid == 49 and math.random(10) < 7 then
  •   WAR.XZZ = 1
  •   if WAR.Person[id][CC.TXWZ1] ~= nil then
  •         WAR.Person[id][CC.TXWZ1] = WAR.Person[id][CC.TXWZ1] .."+"..CC.WARS53
  •   else
  •         WAR.Person[id][CC.TXWZ1] = CC.WARS53
  •   end
  • end

复制代码
这段代码是在函数War_Fight_Sub里面的,是战斗函数之一,掌管人物的攻击。这里我们可以看到如果虚竹攻击的时候判定成功则WAR.XZZ被设置为1,这是个战斗全局变量,跟WAR.BJ一样,我们可以用它来进行后面的判断。

继续搜索if WAR.XZZ == 1,你可以找到一段代码
  • if WAR.XZZ == 1 then --虚竹集气+300
  •   WAR.XZZ = 0
  •   WAR.Person[p].Time = WAR.Person[p].Time + 300
  • end

复制代码
这段代码在WarMain里面,也就是前面提到的战斗主函数。代码的意思是,如果WAR.XZZ等于1,则人物的集气+300,然后WAR.XZZ被重置。

总结,虽然WAR.XZZ不是在WarMain里被设置为1的,但是因为WAR.XZZ是个战斗全局变量,所以不管它在哪个战斗函数里被设为1,都可以在WarMain里产生效果。

知道了战斗全局变量的用法后,我们就可以实现很多特效了。比如主角的如风(搜索WAR.FLHS1)也是以类似的方式实现的。番外篇的指令教程里面也用到了很多这样的全局变量,有兴趣可以去看一下。

返回教程索引
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-17 07:25 | 显示全部楼层
哇,居然被封了?
是不是被论坛系统判断为屠版?
默哀……
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-17 08:38 | 显示全部楼层
为啥帮助新人的ID也要被封!求一个合理解释!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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