传奇996_19——龙岭总结
功能:
切割
切割属性:
即人物属性,可以设置临时属性或者永久属性,龙岭使用的是临时属性,所谓临时就是存在有效期,龙岭设置的有效期是123456789秒,即1428.89802天。
龙岭写法(倒叙):
- 第一步:调用:QF中写一个配置表,表中配置即自定义属性值,表中我对切割和切割倍数属性进行了打印,这两个属性值分别是1000和0,因此我对1000感到好奇,在代码中并没有使用setbaseinfo函数对切割值进行设置,那是哪里进行设置的?原来调整人物的210对应属性值即可修改,即除了setbaseinfo函数还有其他办法,为修改人物临时属性函数hangehumnewvalue和修改人物永久属性函数gethumnewvalue.
----lua 属性表
local play_attr = {}
local attr_tab
function addatt(actor)attr_tab = nilif getbaseinfo(actor, ConstCfg.gbase.isplayer) thenattr_tab = {[4] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 4),[8] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 8),[75] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 75),[200] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 200),---技能格挡[201] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 201),---无视技能格挡[210] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 210),--人物属性(临时):210是切割1000,225是暴率100[211] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 211),[220] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 220), ---伤害吸收[221] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 221), ---致命一击几率[222] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 222), ---致命一击伤害[223] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 223), ---致命一击抵抗[224] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 224), ---致命一击伤害减免[233] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 233), ---最终伤害减免[236] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 236), ---最终伤害增加[237] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 237), ---无视伤害吸收[241] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 241), ---无视伤害吸收[246] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 246), ---烈火伤害减免[247] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 247), ---刺杀伤害减免[248] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 248), ---开天伤害减免[249] = getbaseinfo(actor, ConstCfg.gbase.custom_attr, 249), ---逐日伤害减免}-- release_print("addatt",attr_tab[210])-- release_print("addatt2",attr_tab[211])play_attr[actor] = attr_tabendreturn attr_tab
end
- 第二步:添加自定义属性表cfg_att_score.xls及数据
- 第三步:使用修改人物属性函数修改切割值属性:龙岭写法:新人奖励中有个1000切割的奖励,这个1000切割值和”新人降生“称号是绑定的,但是不是新人降生的属性值,而是在称号赋予函数中,除了添加称号外,另外判断了称号是否是称号表的称号,这个称号表是个table,自定义的一个配置文件,如果存在表中,就调用附加属性函数和刷新属性事件。之后打出的伤害就叠加切割值了。
- 代码流转:新手礼包.txt:myaddtitle 新人降生——>LuaFuncList.txt:myaddtitle——>LuaFunc-0.lua:callfunbynpc(actor, 999999999, 0, ‘AddTitle’, name)这个代码会直接在全部已加载文件总搜索AddTitle函数——>称号系统.lua:AddTitle函数:Player.updateSomeAddr(actor,{},_attr)——>Player.lua:changehumnewvalue(actor, attridx, attrvalue, ConstCfg.attrtime)
切割飘血:
当人物属性(临时和永久属性一样)切割值被修改后,打出的伤害包含切割值但是不动画展示(飘血)配置完以下三步即可!
- 配置cfg_damage_number.xls表
- 图片配置到客户端:\dev\res\private
- Ctrl+F6进行可视化iua配置,配置时选择第一个选项,并且需要要与代码对应,如果选择了第二个选项数值不会变,是显示的固定数字
- 而且如果选第一个选项,同时也要写文字长度,一般写4即可,如果不写,则只显示数字,不显示切割字样
状态信息
- 龙岭状态信息同样是在后端写的,但是他没有和“主界面按钮写在一起”,有可能是因为这段悬浮窗代码他是用lua写的,但是主界面按钮代码是txt写的。文件名叫“状态图标.lua”,写完之后下面把这个函数当做事件给注册了,然后他在启动钩子函数
startup()
中进行了调用,但是他是直接调用的该函数,没有使用事件 - 另外,龙岭同时也提供了txt的方式,文件名叫做Envir\QuestDiary\游戏登陆\图标按钮.txt
- 龙岭把神力倍数,打怪爆率,真实伤害这三个属性放在了物品表item中,方便于调用,使用了如下操作
<Text|ay=0.5|x=]]..(90+x)..[[|y=]]..(-87+y)..[[|text=$STM(ITEMCOUNT_23)%|size=14|outline=1|outlinecolor=0|color=255><Text|ay=0.5|x=]]..(90+x)..[[|y=]]..(-67+y)..[[|text=$STM(ITEMCOUNT_24)%|size=14|outline=1|outlinecolor=0|color=255><Text|ay=0.5|x=]]..(90+x)..[[|y=]]..(-47+y)..[[|text=$STM(ITEMCOUNT_26)|size=14|outline=1|outlinecolor=0|color=255>
即$STM(ITEMCOUNT_23)
,这种操作叫做客户端常量,其中23,24,26都是物品表的id,然后使用登录事件触发调用一下调整这几个数值的函数,之后还要在一个属性变化的钩子函数中对爆率,神力倍数,暴击伤害,切割数值进行修改,没什么问题的就会正常回显,碰到的问题就是物品id应该在前100号
bug:
这其中遇到个bug,就是$STM(ITEMCOUNT_26)无论怎样都是显示的0,后来才知道changemoney函数只能修改前100号id的物品表信息,而且前100号的物品表信息是货币。
bug:
任务:
设置任务后,任务奖励没有显示?
这个是在后端写的。
- QF文件:
--- PickTask 领取任务触发
function picktask(actor)callscript(actor, "../QuestDiary/任务系统/触发_接受", "@接受任务处理")
end
- 触发_接受.txt文件:
#if
equal u200 2
#act
set [23] 1
SET [24] 0
mov u201 20
mov s$任务奖励 <Img|x=39.0|y=72.0|img=public/newbutton/rwjl.png>
inc s$任务奖励 <Img|x=70.0|y=110.0|img=public/newbutton/bjg.png|esc=0>
inc s$任务奖励 <ItemShow|x=66.0|y=103.0|width=70|height=70|itemid=10435|itemcount=5|showtips=1>
ADDBUTTON 110 1 <$str(s$任务奖励)>
Navigation 110 <$STR(U200)> 点击任务继续
遗留问题:
飘血
设置飘血时cfg_damage_number表后面的属性值什么意思,如何配置???
任务
txt中ADDBUTTON 110 1 <$str(s$任务奖励)>
中的第二个参数——1是什么意思?
斗笠碎片的背包显示代码是1188,这个代码在item文件夹中找不到对应的png文件
找到了,直接在文件夹右上角搜索栏搜索001188即可,原来位置在D:\chuanqi\newLongLing\客户端\cache\mod_fgcq\stab\res\item\item_0,而不是在D:\chuanqi\newLongLing\客户端\dev\res\item中