[不负责任的教程]在源码版的基础上添加修改门派的方法 - Part 1

返回教程索引

说明:

1)这个需要有一定DIY基础,如果看得一头雾水的话孩子你还是回初级班修炼一下再来吧…
2)本人代码写得极其不规范,勿喷,要喷请温柔,美女限定
3)请好歹回个贴装作讨论一下不然你忍心让俺自说自话郁闷死么

工具:
1)源码文件:拿山寨版就好了,我不是在作广告,真的不是
2)lua编辑器:我用的是Notepad++,这个真的是广告
3)UPedit:看数据的
4)零食:熬夜通宵必备,谁用谁知道

一。加入门派系统的基础理论:定量,判定,设定
1)需要先设定一个全局定量储存所有人物的门派信息。这个可以有很多种做法,我用的是最懒的那种。R文件人物数据里有个名为“无用”的位置,被我废物利用拿来做全局定量了。调用起来很简单,直接使用代码:

JY.Person[aa]["无用"] = bb      --aa为人物编号,bb为门派编号

2)定义几个表存放文字来描述你的门派,这里包括了门派名字,门派说明,技能名字,技能说明,等等。我全都放在MyConst.lua里面了。下面以星宿派(门派编号1)来举例子,完整的表请看MyConst.lua,这里只截取了星宿派的部分:

--门派的名字和门派菜单的名字
CC.MP = {
   {"星宿派", nil, 1, "毒鼎"}, 
}

 --门派的说明,随便写就好
CC.MPINFO = {
   "星宿老仙丁春秋叛出逍遥派后所创。武学以毒为主,让人防不胜防。派中秘传化功大法,源自北冥神功,可化人内力于无形。门下弟子也许不算最强,但绝对最让人胆寒。", 
}

--加入门派后的属性变化,这个以后再说
CC.MPINFO2 = {
   "攻击防御减5%,轻功加10%,医疗用毒解毒暗器能力加50,内力上限减10%", 
}

--不同等级的弟子的称呼,这个可选,如果不准备做相应的剧情的话可以省略;分别对应了等级1-3
CC.MPDJ = {
   {"入门弟子", "高级弟子", "掌门"}, 
}

--门派被动技能的名字
CC.PSKILL = {
   {"以身饲毒", "连珠腐尸毒", "淬毒"}, 
}

--门派主动技能的名字
CC.ASKILL = {
   {"口蜜腹剑", "三笑逍遥散"}, 
}

--被动+主动技能,其实就是前面两个表加起来
CC.SKILLNAME = {
   {"以身饲毒", "连珠腐尸毒", "淬毒", "口蜜腹剑", "三笑逍遥散"}, 
}

--门派技能的说明,这个是和上面的CC.SKILLNAME对应的
CC.SKILLINFO = {
   {
   "效果:被攻击时自身中毒程度增加,*      中毒越深集气速度越快*条件:被动技能",
   "效果:使毒时目标周围四格内随机敌人*      中毒且损失生命*条件:被动技能",
   "效果:攻击时几率追加伤害,伤害值与*      自身和目标的中毒程度有关*条件:被动技能",
   "效果:一定几率周围四格敌人怒气值清零*      且中毒程度增加*消耗:体力25点",
   "效果:一定几率周围三格内普通小兵三次*      行动后即死*消耗:体力20点内力500点"
   },
}

3)决定如何判断门派和门派等级。这里我仍然使用了偷懒的方法,把门派和门派等级合成为了一个数字存在“无用”里。
101 - 代表星宿派弟子等级1
102 - 代表星宿派弟子等级2
103 - 代表星宿派弟子等级2
…
303 - 代表古墓派弟子等级3
看出来了吧,其实这个数字就是(门派编号*100+门派弟子等级)
所以就有了以下两个函数:

function MPPD(tmppid) --判定人物的门派
   if JY.Person[tmppid]["无用"] == nil or JY.Person[tmppid]["无用"] < 101 then --没有门派的话返回0
   return 0
   else
   local mptype = math.floor(JY.Person[tmppid]["无用"] / 100)
   return mptype --有门派的话返回门派编号,也就是“无用”里打头的那个数字
   end
end

function MPDJ(tmppid) --判定人物的门派等级
   local mpdj
   if MPPD(tmppid) == 0 then
   return 0 --没有门派的话返回0
   end
   mpdj = math.fmod(JY.Person[tmppid]["无用"], 100) --这里用了取余数的公式
   return mpdj --有门派的话返回门派等级
end

在战斗中就可以利用这两个函数进行判定了

同理,加入门派的时候可以调用另一条函数

function JoinMP(tmppid, mptype, mpdj) --3个输入量分别代表了人物编号,门派编号,门派等级
   JY.Person[tmppid]["无用"] = mptype * 100 + mpdj --其实就是把“无用”设成那个偷懒的数字
end

以上就是基础的理论:定量(数字与文字),判定,设定(改“无用”)

二。门派指令菜单的使用

待更新…

[返回教程索引]()

好像很复杂。。搬个板凳慢慢学…

啊…沙发…没有了…T.T…其实不复杂,框架已经给出来了,主要是门派的效果实现起来复杂…

第一条看懂了 其他都不懂

不错了 不用谦虚

太多代码不愿看 直接顶smile

二宫大大写的汉字单拿出来俺倒是都认识。然后…然后就没有然后了。

支持LZ,山寨版已经没什么bug了!期待某年某月能风云再起~~呵呵

小白,看不懂,纯支持!

柯南和灰原?

我一直觉得这两个才是一对

虽然没看懂,但也没关系,因为我是专门来鼓掌的

教学贴为什么没有加红?顶一个

此贴不沉,每日一顶

开学也想做个mod玩了。。。支持和也君大大