传奇996_19——龙岭总结

news/2024/11/17 17:37:43/

功能:

切割

切割属性:

即人物属性,可以设置临时属性或者永久属性,龙岭使用的是临时属性,所谓临时就是存在有效期,龙岭设置的有效期是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)

切割飘血:

当人物属性(临时和永久属性一样)切割值被修改后,打出的伤害包含切割值但是不动画展示(飘血)配置完以下三步即可!

  1. 配置cfg_damage_number.xls表
  2. 图片配置到客户端:\dev\res\private
  3. Ctrl+F6进行可视化lua配置,配置时选择第一个选项,并且需要要与代码对应,如果选择了第二个选项数值不会变,是显示的固定数字
  • 而且如果选第一个选项,同时也要写文字长度,一般写4即可,如果不写,则只显示数字,不显示切割字样

状态信息

在这里插入图片描述

  • 龙岭状态信息同样是在后端写的,但是他没有和“主界面按钮写在一起”,有可能是因为这段悬浮窗代码他是用lua写的,但是主界面按钮代码是txt写的。文件名叫“状态图标.lua”,写完之后下面把这个函数当做事件给注册了,然后他在启动钩子函数startup()中进行了调用,但是他是直接调用的该函数,没有使用事件
  • 另外,龙岭同时也提供了txt的方式,文件名叫做Envir\QuestDiary\游戏登陆\图标按钮.txt
  • 龙岭把神力倍数,打怪爆率,真实伤害这三个属性放在了物品表item中的前100号id中,当做货币,方便于调用,使用了如下操作
        <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号
另外做个拓展:

  • txt弹窗调用使用函数callscript(actor, "../QuestDiary/游戏登陆/图标按钮", "@图标加载"),lua版直接调用函数,或者使用事件触发,像这种状态悬挂的直接使用“登录”做条件的游戏事件触发函数

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中


http://www.ppmy.cn/news/1547766.html

相关文章

提取 Docker 镜像的 Dockerfile 工具集

在 Docker 开发和运维过程中,我们经常需要分析或重建已有镜像的 Dockerfile。无论是为了理解镜像的构建过程、优化镜像大小,还是出于安全审计的需求,能够从现有镜像中提取或重建 Dockerfile 都是一项非常有用的技能。本文将介绍一系列可以帮助我们完成这项任务的工具。 © …

Github客户端工具github-desktop使用教程

文章目录 1.客户端工具的介绍2.客户端工具使用感受3.仓库的创建4.初步尝试5.本地文件和仓库路径5.1原理说明5.2修改文件5.3版本号的说明5.4结合码云解释5.5版本号的查找 6.分支管理6.1分支的引入6.2分支合并6.3创建测试仓库6.4创建测试分支6.5合并分支6.6合并效果查看6.7分支冲…

git上feature合并到development分支

git上从development分支拉了一个feature分支开发新内容&#xff0c;development也有新内容在开发&#xff0c;feature分支内容开发完毕后&#xff0c;如何合并feature分支新内容到development分支&#xff0c;要确保不会覆盖development分支的新内容 以下是将 feature 分支的新…

springboot 的 Profile

什么是 Profile &#xff1f; 应用所在的运行环境发生切换时&#xff0c;配置文件常常就需要随之修改。 Profile&#xff1a;——就是一组配置文件及组件的集合。 可以整个应用在不同的profile之间切换&#xff08;设置活动profile&#xff09;&#xff0c;整个应用都将使用该…

C++知识点总结(57):STL综合

STL综合 一、数据结构1. 队列2. 映射 二、队列例题1. 约瑟夫环&#xff08;数据加强&#xff09;2. 打印队列3. 小组队列4. 日志统计 2.0 三、映射真题1. 眼红的 Medusa2. 美食评委 一、数据结构 1. 队列 功能代码定义queue<tp>q入队.push(x)出队.pop()队头.front()队尾…

Prompt设计技巧和高级PE

目录 PD and PE:INTRODUCTION AND ADVANCED METHODS 1.Instructions 2.Basic Knowledge - Prompt 2.1 Prompt 2.2 Prompt Cases 2.3 Prompt Engineering 3. LLM 的局限 4. Prompt 设计技巧和方法 4.1 Chain of thought prompting 4.2 Encouraging the model to be fa…

postgresql 创建序列

序列 序列是什么&#xff1f; 序列对象&#xff08;也叫序列生成器&#xff09;就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。 在持久层框架如Hibernate(JPA)、Mybatis中经常会用到Sequences(函数)去创建主键值&#xff0c;Po…

ThriveX 博客管理系统前后端项目部署教程

前端 前端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Blog 控制端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Admin Vercel 首先以 Vercel 进行部署&#xff0c;两种方式部署都是一样的&#xff0c;我们以前端项目进行演示 首先我们先…