以wiki角色模板为例,教你获取角色基本信息

Wiki的角色模板就是这个:

角色模板(空)



里面的角色立绘获取这边不说明,我会单开一个文章讲解



你想要获取角色基本信息请先成功反编译lua

相关教程:

星落游戏解包教程













好的前言结束,让我们来正式开始



在反编译完lua之后我们会得到一大堆文件

那我们这次会用到

BaseCard.lua

BaseWord_cn.lua

BaseCvNameCn.lua

BaseCardLevelUp.lua

BaseCardQualityUp.lua

BaseSkill.lua

BaseSkillLevelUp.lua

BaseBadgeSuitGroup.lua

这几个lua文件



先打开BaseCard.luaBaseWord_cn.lua

BaseCard.lua里一个

[10000101] = {

。。。。。。

}

就代表了一个角色

按角色出的时间排序,所以最后面的是最新的角色



那我们首先要知道这个条目是哪个角色的

找到里面

 name = function()

 return T(80101206)

 end,

的部分

这个函数就是从BaseWord_cn.lua里获取角色名字的

我们只要拿着文本id80101206去到BaseWord_cn.lua里搜索就能找到





比如这个就是艾拉

而在中文名下面的就是英文名

 name_english = function()

 return T(80102206)

 end,

提取文本流程同上



然后我们看到

 des = function()

 return T(80103206)

 end,

 des1 = function()

 return T(80107101)

 end,

这个是角色的个人简介





也就是这部分↑



接下来几个也快速过一遍

 information1 = function()

 return T(80104001, 1, 22) # 生日,月/日

 end,

 information2 = function() 

 return T(80105001, 165) # 身高,单位厘米

 end,

 information3 = function() 

 return T(80106001) # 所属势力

 end,



然后是角色职业和属性,虽然这些基本信息在更新前会先出现在角色预告图上

但这边也只是提供另一种解法而已

 type = 2,

 element_type = {3},

这两个就代表了角色的职业(type)与属性(element_type) 两个有着如下对应关系

# 职业映射

 TYPE_MAPPING = {

 1: "坚甲",

 2: "异刃",

 4: "言灵",

 5: "猎影"

 }





 # 属性映射

 ELEMENT_MAPPING = {

 1: "水属性",

 2: "火属性",

 3: "木属性",

 4: "暗属性",

 5: "光属性"

 }





值得一提的是职业并没有3,不知道是星落藏了一手还是怎么样

而属性的{1,2.,3}这个写法是支持多个属性的,虽然目前都是单个属性 至于角色的cv,在这边

cv_name = 80108206,

注意,这里的80108206不能去里BaseWord_cn.lua查,查不到

我们要去到一个新的文件BaseCvNameCn.lua

在这边搜索得到

 [80108206] = {

 id = 80108206,

 name_cn = "陈玺月",

 name_jp = "松嵜丽"

 },

即可获得中日语cv



接下来快速过一遍角色基础数值

 star = 5, 角色星级

 level = 1, 初始等级

 quality = 0, 初始突破等级

 grade = 0, 初始觉醒等级

 quality_max = 4, 最大突破等级(就是四阶120级那个)

 grade_max = 5, 最大觉醒等级(就是命座)

 max_hp = 1511, 初始生命(别看他写着max)

 atk = 122, 初始攻击

 def = 27, 初始防御

 crt = 500, 初始暴击率

 blk = 500, 初始格挡率

 eva = 0, 初始闪避率

 crt_int = 3000, 初始暴击伤害

 blk_int = 3000, 初始格挡强度(这几个都要除以10000才是百分数)

 spd_move = 140, 初始移动速度

 spd_atk = 2367, 初始攻击速度(这个要除以1000才是真正的攻速,单位秒)

 range_atk = 150, 初始攻击距离

。。。。。。

 weight = 130, 这个是角色重量,在比较下面



这边我们顺便来说一些不怎么用得上的条目

对于这些我也不太确定

毕竟这些并没有显露在外

所以!以下皆为我的推测

不相关条目



现在我们来讲一下如何计算满级满破三维

首先在BaseCard.lua里获取

 grow_model_id = 40002402,

这个条目的id

拿着这个id去到BaseCardLevelUp.lua

搜id+340,也就是40002402340

 [40002402340] = {

 id = 40002402340,

 add_attr = {

 "1:40000103:1728",

 "1:40000104:406",

 "1:40000102:9993"

 },

 level_show = 120,

 task_parameter = 44120

 },

这就是满级加成



然后去BaseCardQualityUp.lua

搜角色id+004(角色id就是 [10000206] = { 这个中括号里的数字)

 [10000206004] = {

 id = 10000206004,

 add_attr = {

 "1:40000103:255",

 "1:40000104:60",

 "1:40000102:1477"

 },

 card_level_max = 340,

 card_level_max_show = 120,

 unlock_fashion_id = 0

 }

得到满破加成



# 属性类型映射

 ATTRIBUTE_MAPPING = {

 "40000103": "攻击", 

 "40000104": "防御", 

 "40000102": "生命"

 }

这是属性id对应的属性



然后我们把初始三维,满级三维加成,满破三维加成加起来就是满级满破三维了

攻击 = 122+1728+255 = 2105

防御 = 27+406+60 = 493

生命 = 1511+9993+1477 = 12981



接下来是技能

 normal_skill = 41011206, 普攻

 special_skill = 41012206, 战技

 burst_skill = 41013206, 总攻技

 leader_skill = 41019206, 队长技

 grow_skill_ids = {

 41001206,

 41002206, 三个被动

 41003206

 },

我们拿着技能id去到BaseSkill.luaBaseSkillLevelUp.lua

都是直接搜索id

BaseSkill.lua里可以获取技能名字

 [41013206] = {

 id = 41013206,

 name = function()

 return T(80413206) -------------这个就是技能名字

 end,

 icon = "SkillIcon:1010602",

 type = 7,

 max_level = 4,

 cd = 45, --------------------------这个是总攻技才有的cd

 unique_skill_stop = 1,

 show_type = 0,

 task_levelup_tab = 1,

 unlock_quality_level = 0

 },

然后去BaseSkillLevelUp.lua

 这边可以获取技能描述

 [41013206001] = {

 id = 41013206001,

 des = function()

 return T(80532061, T(80520012, 5), T(80520017, 350), T(80520017, 1500))-----这个就是技能描述

 end,

 remark = function()

 return T(80418002)

 end,

 fashion_show_ids = {

 "12002061:42320600",

 "12002062:42320600",

 "12002063:42320602"

 },

 target_type = 2001,

 damage_rate = 150000,

 tag_id = 105,

 extra_skill = 41004206001

 },

技能的获取文本的T函数会比较复杂,我们只要先处理里面嵌套的T函数再处理外面的T函数就行了

本质都是一样的,T(第一个参数是文本id,后面的数字带入文本中)



另外,在BaseSkill.lua里有的技能会有

 association_skills = {

 "1:41014206001:1"

 }

这个是技能觉醒部分的描述

拿着41014206001去BaseSkillLevelUp.lua里搜

 [41014206001] = {

 id = 41014206001,

 des = function()

 return T(80542061, T(80520014, T(80000103)), T(80520011, 40), T(80520012, 1), T(80520011, 20))

 end,

 target_type = 3001,

 trigger_condition_1 = {1003},

 trigger_type_1 = {5},

 trigger_value_1 = {0},

 trigger_max = 1,

 damage_rate = 0,

 buff_list = {

 "43320601:3001:10000"

 },

 add_attr = {

 "1:40000103:40"

 },

 association_des = function()

 return T(80542062, T(80520012, 1), T(80520011, 20))

 end

 },

上面的des = function()是觉醒完整描述

下面的association_des = function()就单纯只是技能觉醒部分的描述



然后是basecard里的这部分

 unlock_skill_ids = {

 41014171,

 41015171,

 41016171,

 41017171,

 41018171

 },

这五个是正经的觉醒描述,获取方法也和上面的技能一样



接下来是语音文本

 sound_ids = {

 85012061,

 85022061,

 85032061,

。。。。。。

这部分就是,可以拿着id直接去BaseWord_cn.lua

但严谨来说应该先去BaseCardSound.lua获取文本T函数

再去BaseWord_cn.lua

不然公主,守护者有几条会对不上,不过人为一般不会讲究这么多,可以直接纠正



继续BaseCard.lua

 story_ids = {

 "80112061:0",

 "80112062:1",

 "80112063:2",

 "80112064:3"

 },

这些是角色故事,\n是换行符号



最后是推荐徽章

 badge_suit_ids = {40008003}, 这个是推荐的套装

 badge_main_attribute = { 这个是推荐主属性

 "40000103",

 "40000104:40000102",

 "40000201:40000204"

 },

 badge_vice_attribute = { 这个是推荐副属性

 40000103,

 40000201,

 40000204,

 40000302

 }



套装的id要去搜BaseBadgeSuitGroup.lua

依旧是



然后属性的id把第一个数字4改成8就能在BaseWord_cn.lua里搜



好了,到这角色基本信息我们就解析的差不多了







批量自动化提取脚本看这边

批量从lua文件中提取角色基本信息



0
1
0
0
0
评论(0)
观看就是喜欢,快来评论一下吧!