找回密码
 register

QQ登录

只需一步,快速开始

查看: 27|回复: 0

[游戏修改] 天龙学习笔记 · 天龙函数整理

[复制链接]

[游戏修改] 天龙学习笔记 · 天龙函数整理

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:91
  • 打卡月天数:14
  • 打卡总奖励:91
  • 最近打卡:2025-01-15 02:59:34
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11890
Waylee 2025-1-13 15:21 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

资料作者:旅途
资料分享:小黑


天龙函数整理.lua

------------以下方法函数由旅途查询测试整理 由于引擎问题 可能不适用于所有端 请自行斟酌--------------
LuaFnSetXinFaLevel(sceneId,selfId,x901031_g_XinFaInfo[nMenPai+1][i],119)  ---设置心法为119级  这里需要心法  心法可以参考下面的定义的  
x901030_g_XinFaInfo = {
{1,2,3,4,5,6,55},
{7,8,9,10,11,12,56},
{13,14,15,16,17,18,57},
{19,20,21,22,23,24,58},
{25,26,27,28,29,30,59},
{31,32,33,34,35,36,60},
{37,38,39,40,41,42,61},
{43,44,45,46,47,48,62},
{49,50,51,52,53,54,63},
{0,0,0,0,0,0,0,0},
{64,65,66,67,68,69,70},
{81,82,83,84,85,86,87},
{64,65,66,67,68,69,70},
}
----这里可以使用for循环来设置1-7心法全部为119级
for i =1,7 do  --循环1-7心法
    LuaFnSetXinFaLevel(sceneId,selfId,x901031_g_XinFaInfo[nMenPai+1][i],119)
end
--***************************以下函数由旅途查询测试整理 由于引擎问题 可能不适用于所有端  不足和错的地方劳驾各位大佬纠正补充***********-----------------------------------
sceneId-----场景ID 
selfId-----人物ID 
targetId-----目标ID
GetName(sceneId,selfId);  ---  人物的名字获取 后面是场景的ID 和人物的ID
GetLevel(sceneId,selfId);  -----人物等级获取
GetMenPai(sceneId,selfId);----------获取当前门派的ID号
LuaFnJoinMenpai(sceneId,selfId,targetId,6)  ----加入门派  6就是天龙  其中(少林","明教","丐帮","武当","峨眉","星宿","天龙","天山","逍遥","无门派","慕容","唐门","鬼谷","桃花岛) 从0开始的  9为无门派
GetSceneName(sceneId);----获取当前场景的名称
TryRecieveItem(sceneId,selfId,50321101,1)---------物品领取  50321101为物品的ID 1为领取一次 这里可以使用for循环获取多次 太多了会卡
ZengDian(sceneId,selfId,-1,1,10000)  --  绑元增加后面的这个1是增加的意思  最后是数量   2的话就是减去   ZengDian(sceneId,selfId,targetId,3,0);   --3就是查询剩余绑定元宝数量
YuanBao(sceneId,selfId,-1,1,10000)--  元宝同理和上面的绑元是一样的
GetMoney(sceneId,selfId)  -----获取剩余金币---这里获取的到的数量为铜板的数量 金币需要*10000
AddMoney(sceneId,selfId,10000)--增加1金币  比例为10000铜板=1金币
LuaFnCostMoney(sceneId,selfId,1*10000)  ----扣除金币 后面的*10000就是金币数量 不加的话就是铜板 意思就是如果单是1 就是扣除了一个铜板 *10000就是扣除了一个金币
CallScriptFunction( 888899, "BuyRet", sceneId, selfId, 2,1,999) ---这里是增加充值点数的 CALL就是调用脚本 更新数据 ()中的第一个参数为调用的目标的脚本号 第二个就是方法名字  后面的1为增加的具体的数量
LuaFnGetAvailableItemCount(sceneId, selfId, 10157001)--获取某个物品的数量
GetItemCount(sceneId,selfId,10157001)--获取某个物品的数量-----只从玩家的装备和物品包中查找---已经穿戴的装备可以获取到
GetMissionData(sceneId,selfId,XYJ_HONGLI)---获取当前红利
SetMissionData(sceneId,selfId,XYJ_HONGLI,GetMissionData(sceneId,selfId,XYJ_HONGLI)-100000)  --扣除红利 减号后面为扣除的具体的数量 换成+ 就是增加 这里的XYJ_HONGLI就代表 全局变量中 这个常量的名字
AddSkill(sceneId,selfId,4609)-------学习技能  后面的4609为技能的编号具体去Public Config  SkillTemplate_V1.txt查找 不能乱加 因为门派和心法数据对应不上 可以自己新加
LuaFnDelSkill(sceneId,selfId,4609)   -----删除某一个技能  --暂时还没测试
LuaFnHaveImpactOfSpecificDataIndex(sceneId, selfId) ---查询BUFF 返回1就是有
LuaFnCancelSpecificImpact(sceneId,selfId)  --删除BUFF
LuaFnSendSpecificImpactToUnit(sceneId,selfId,selfId,selfId,7524,0)  ---增加BUFF 7524 为具体的  BUFF  ID
GetMissionData(sceneId, selfId, MD_PET_HETI)  ----附体状态查询  == 0 就是没有附体的状态
SetMissionData(sceneId, selfId, MD_PET_HETI, 0 ) ---设置附体状态分离 
CallScriptFunction((400900),"TransferFunc",sceneId,selfId,723,160,193,10);  ----这里是传送的()里面的第一个参数为脚本号,第二个为函数名 貌似用于验证任务 漕运 坐骑等状态下限制传送 723,160,193,10 723就是需要传送到的场景ID 160.193 就是坐标 10为限制的等级
RestoreHp( sceneId, selfId ) ------满血
RestoreMp( sceneId, selfId ) ------满气
RestoreRage( sceneId, selfId ) ------满怒
LuaFnDelAvailableItem(sceneId,selfId,10157001,1)--------删除物品  倒数第二个为物品ID 后面为物品数量
LuaFnGetMaterialBagSpace( sceneId, selfId) ---道具栏
LuaFnGetPropertyBagSpace( sceneId, selfId )----材料栏
LuaFnGetItemCountInBagPos( sceneId, selfId )---得到某一个格子中物品的数量
LuaFnGetMenPaiMaster( sceneId, selfId )  ---获取玩家当前所在门派的帮主名称
LuaFnGetWorldPos( sceneId, selfId )---得到当前角色的坐标返回x和z的FLOAT类型值
LuaFnIsTeamLeader( sceneId, selfId )---判当前玩家是否为队长  返回0 和1   0代表不是 1代表是
LuaFnGetSex(sceneId,selfId)----返回玩家性别 返回值 0 和 1 0为女 1为男
GetHp(sceneId,selfId)--获取到当前玩家的最大生命值
GetMp(sceneId,selfId)--获取到当前玩家的最大内力就是蓝
AddXinFa(sceneId,selfId,56)---给当前玩家某一个心法 56就是心法ID
DelXinFa(sceneId,selfId,56)----删除玩家的某一个心法
HaveItem(sceneId,selfId,10157002)----判断玩家是否拥有某一个道具 返回0和1 0表示没有 1表示有
HaveItemInBag(sceneId,selfId,10157001)----效果和返回值同上  --只检测包裹是否拥有这个道具 装备穿戴后查询不到  上面的那个穿戴后也可以查询到
LuaFnEraseItem(sceneId,selfId,0)---删除背包中某一个格子的道具 0为格子的编号 0开始 最大看你的背包的数量
LuaFnHasTeam(sceneId,selfId) ---判断当前玩家是否为组队状态 返回0和1 0是没有 1是正在组队
GetNearTeamCount(sceneId,selfId) ---获取当前玩家附近所有队友的个数(包括自己) 没有队伍则返回-1
LuaFnGetTeamSize(sceneId,selfId)---返回当前队伍所在人数
GetTeamId(sceneId,selfId)---返回当前玩家所在队伍的ID
GetMonsterCount(sceneId,selfId)---返回当前场景所有NPC/怪物的数量
LuaFnGetCopyScene_HumanCount(sceneId) --返回当前场景存在人数
GetHumanMenpaiPoint(sceneId,selfId);---查询当前角色的门派贡献值
SetHumanMenpaiPoint(sceneId,selfId,3)---设置当前角色的门派贡献度  这里是直接设置后面的数字 不是增加  增加的需要先查询SetHumanMenpaiPoint(sceneId,selfId,GetHumanMenpaiPoint(sceneId,selfId)+3) 这样是增加3
SetPos(sceneId,selfId,250,128) ----跳转到当前地图的坐标 X Y
NewWorld(sceneId,selfId,1,250,128)----跳转到某一个场景的坐标 场景ID自行查看
HaveXinFa(sceneId,selfId,19)----检测当前角色有没有学习心法 19 为心法ID 返回0  就是没学习 学习了就返回心法等级
AddGlobalCountNews(sceneId,"公告:")----发布公告--可以打印字符串和数组
LuaFnAwardTitle( sceneId, selfId,11,394)----替换称号
SetCurTitle(sceneId,selfId,11,394)---显示称号  和上面的一起用 否者报错
LuaFnDispatchAllTitle(sceneId, selfId)---刷新客户端称号
            AddGlobalCountNews(sceneId,"2222")--公告
--删宝石

            local isEraseSuc = LuaFnEraseGemEx(sceneId,selfId,Xiaohei_minggezi,1)
            if( isEraseSuc == 0 ) then
    x900051_NotifyTip(sceneId,selfId,"请不要加锁冥石")
                return 
            end
            local isEraseSuc = LuaFnEraseGemEx(sceneId,selfId,Xiaohei_jinggezi,3)
            if( isEraseSuc == 0 ) then
    x900051_NotifyTip(sceneId,selfId,"请不要加锁晶石")
                return 
            end

GetMissionDataEx(sceneId,selfId,MDEX_SEVENDAYTIME_DATA)------全局变量里面的常量数据获取(登陆时间/天数,充值点,消费情况等。。。。)和GetMissionData不晓得为啥不一样 获取到的值不一样  不过有的端不能用Ex的 看具体情况
---这里全局变量中常量的 接口一般最大为511 除非的你的端是花了大价钱 或者有无限的MD 插件
BeginUICommand( sceneId )  --开始通知客户端刷新数据
UICommand_AddInt( sceneId,a2)  --向客户端传递一个数据。Tnt为整数类型
UICommand_AddString( sceneId,"30503157") ---想客户端传递一个字符串类型的值,客户端接受到以后要改成数组类型
EndUICommand( sceneId ) --参数结束
DispatchUICommand( sceneId, selfId, 20240401 )  --UI的传值接受目的地  --这里可以在客户端 if agr0 接受
LuaFnGetGUID(sceneId,selfId)----获取到当前玩家的GUID 这个是 在服务器的唯一识别表示 注册时生成  具体从哪个值开始 去找数据库
LuaFnMtl_GetCostNum(sceneId,selfId,Baoshi[i])----获取背包中存在    的数量  ---可以加数组使用for循环获取 也可以直接写宝石的ID---当然也可以便利的背包的索引 和宝石的ID 来获取数量 这里要注意 材料的启示索引和结束索引位置
LuaFnGetItemTableIndexByIndex(sceneId,selfId,i)  ---背包中的索引位置 后面的参数就是背包道具栏的中的第几个各自  如果你的背包道具栏为50格子  那么50应该就是材料栏的第一个
    local nItemId = LuaFnGetItemTableIndexByIndex( sceneId, selfId, nPos )--获取背包某个格子的物品id
        local Have = LuaFnGetAvailableItemCount(sceneId,selfId,nItemId)--判断某个id的物品是否符合数量
GetItemName(sceneId,newitem)--获得物品名
LuaFnCancelSpecificImpact(sceneId,selfId) ---应该是判断BUFF是否存在
LuaFnHaveImpactOfSpecificDataIndex(sceneId,selfId)-----BUFF的索引
---------待添加--------
-------------------***************服务端一些脚本或者文本的作用************----------------------
Script.dat-------脚本的索引或者说是总控  -----添加脚本的时候 注意不要重复   重复的话可能只会调用同一脚本号的最下面的一个
---------------***Server > Config ***------
AllowableScriptFunc.txt------客户端向服务端请求的一些函数 允许客户端向服务端查询或者传值的函数名字 需要在这里添加白名单 不然游戏掉线
AttrLevelUpTable.txt-----好像是各门派的成长率
BaseValueTable.ini------各个门派的 初始值和影响系数
ConfigInfo.ini-----移动速度,经验,上限,和一些东西的修正
DefaultChar.ini----初始的出生点 金币等
DropBoxContent.txt-----掉包添加 价值 是否绑定设置
ItemSegAffect.txt----段几  几率
ItemValue.txt---属性编号
ItemSegRate.txt----品质段 对应的属性值 
StandardImpact.txt-----BUFF的效果ID 对用的属性值领取时间等---
---待添加--------
---------------***Pubilc > Config ***------
CharTitle.txt---称号
CommonItem.txt-------物品材料
EquipBase.txt-----装备
EquipSetAttr.txt---套装    件数 效果修改 效果对应ItemValue.txt
GemInfo.txt----宝石
ImpactSEData_V1.txt-----BUFF的右上角显示
ImpactSEData_V1.txt---材料物品 装备宝石规则  ---是否拾取绑定  可否丢弃 叠加等--
ItemSegValue.txt---装备属性 -1表示没有只能修改1或者-1  具体的效果值去另一个文件找 具体请参考潇湘工具
MonsterAttrExTable.txt----怪物或者NPC模型ID
PetAttrTable.txt---宠物
SkillData_V1.txt---技能效果
SkillTemplate_V1.txt---技能设置添加修改
XinFa_V1.txt-----看名就知道是心法
XinFaStudySpend_V1.txt---升级心法参数修改

---------对话固定格式-----------------
----------事件列表入口
function x901030_OnDefaultEvent( sceneId, selfId, targetId )   --x901030脚本号  OnDefaultEvent 函数的名字  sceneId  场景的ID  selfId人物的ID     targetId目标NPC的ID
    BeginEvent(sceneId)
        AddNumText(sceneId, 901030, "#Y#旅途整理", 3, 1)  --前面的3就是每个列表中前面的小图标 -1----11  都可以用    后面的 "1" 给这个列表或者选项定义一个编号 方便下面查找
    EndEvent()
    DispatchEventList(sceneId, selfId, targetId)
end
------获取上面事件列表选中一项
function x901030_OnEventRequest( sceneId, selfId, targetId, eventId)
   local  Num == GetNumText(); ---- local的意思创建一个就是本地的 局部的变量 Num 为自己定义的局部变量的名称  ---GetNumText(); 获取到上面列表定义的编号 
   if Num == 1 then   ---这里的if 是如果的意思 如果获取到的上面的编号等于1  执行这里  
   end
end
-------------------分隔符------------------------------------

----------------------for循环--------------------------
---------for 是便利循环的意思 可以用来查找 便利背包 查到物品, BUFF 等  这里我们可以这样写 
lvtu_JiNeng = {4608,4609}  --这里的{} 按照应该就是定义类 方法 和循环等语言结构的开始和结束,这里我们就是定义了一个名为lvtu_JiNeng的循环
for i =1,2 do 
   if HaveSkill(sceneId,selfId,lvtu_JiNeng[i]) == 1 then   ----HaveSkill 获取技能的函数   使用for 循环查找 有没有学习这两个技能的其中一个--从1 开始循环到2结束
    x901031_NotifyTip( sceneId, selfId,"#Y你已经过技能")   ---如果循环到学习了其中一个技能 可以给一个提示 并且返回
    return    --return是返回的意思  不在往下执行
   end
end

天龙学习笔记.lua

setmetatable(_G, {__index =MainMenuBar_Env});
local skillnum=GetActionNum("skill")
Button_Action5=35
for i=1,skillnum do
   local theAction=EnumAction(i-1,"skill")
   if theAction:GetDefineID()==35 then
       Button_Action5:SetActionItem(theAction:GetID())
       Button_Action5:Bright()
       break
    end
end

if DataPool:IsCanDoAction() then
        MAINMENUBAR_BUTTONS[nIndex]:DoAction();
    else
        PushDebugMessage("你不能这么做。")
        return;
    end
第一步

服务端lua
strlen  获取字符串长度
strsub(字符串,开始位置,结束位置)  提取字符串
split(字符串,分隔符) 分割字符串
strfing(字符串,要查找的字符)   返回要查找的字符在字符串中的位置

天龙CDK应用部分
strchar(ASC码)  返回ASC码对应的字符
strbyte("字符")  返回字符对应的ASC码

local name="lingyun"
local wz=strfind(name,"yun")
此时  wz=5  说明yun这个字符串出现在 lingyun 这个字符串的第5个位置
如果要查找的字符串未出现在 原字符串中 则返回 nil 所以后面可跟判断
if  wz==nil then
    说明没有找到相关信息
end

gsub(原字符串,要被替换的字符串,替换成的字符串)  字符串替换
代码local str=gsub(Data,"&BS%w%w%w","")的解释如下:

gsub(Data, pattern, replacement): 这是一个gsub函数的调用,它会对字符串Data执行全局替换。

"&BS%w%w%w": 这是要查找的模式。

&BS: 匹配字面字符串&BS。
%w: 匹配任何单个字母数字字符,等价于[a-zA-Z0-9_]。
%w%w%w: 因此,这部分匹配三个连续的字母数字字符。
"": 这是替换的字符串。在这里,它是一个空字符串,意味着所有匹配&BS%w%w%w模式的子串都会被替换为空字符串,即被删除。

local str = ...: 这部分将gsub函数的结果赋值给局部变量str。gsub函数返回替换后的新字符串和替换的次数。但是在这里,你只关心替换后的新字符串,因此str将包含替换后的字符串。

综上所述,这行代码的作用是从Data字符串中删除所有以&BS开头并跟随三个字母数字字符的子串,并将结果存储在str中。

nSign = "&DZ("..strrep("%d",8)..")".."(%w)".."("..strrep("%d",8)..")".."(%w)".."("..strrep("%d",8)..")"
strrep(s, n): 这是一个字符串重复函数,它将字符串s重复n次。在这里,它被用来生成由8个数字字符(%d)组成的字符串。

"..": 这是Lua中的字符串连接操作符,用于将多个字符串片段连接成一个字符串。

"%d": 这是一个模式,用于匹配任何单个数字字符。

"%w": 这是一个模式,用于匹配任何单个字母数字字符,等价于[a-zA-Z0-9_]。

现在,让我们逐步解析这个字符串的构建过程:

strrep("%d",8): 这将生成一个由8个%d组成的字符串,即"%d%d%d%d%d%d%d%d"。
"&DZ("..strrep("%d",8)..")": 这将生成一个字符串,以&DZ(开头,后面跟着8个%d,然后以)结尾。例如:&DZ(%d%d%d%d%d%d%d%d)。
"..(%w)..": 这将在上一步生成的字符串后面添加一个%w模式。
"..("..strrep("%d",8)..")": 这将再次添加一个由8个%d组成的字符串,并用括号括起来。
"..(%w)..": 这将在上一步生成的字符串后面再次添加一个%w模式。
"..("..strrep("%d",8)..")": 这将再次添加一个由8个%d组成的字符串,并用括号括起来。
最终,nSign变量将包含以下字符串:

复制代码
&DZ(%d%d%d%d%d%d%d%d)(%w)(%d%d%d%d%d%d%d%d)(%w)(%d%d%d%d%d%d%d%d)
这个字符串是一个Lua模式,它可能用于后续的string.match、string.gmatch或string.find等函数中来查找匹配此模式的子串。该模式描述了一个特定的格式,其中包括一个固定的字符串&DZ,后面跟着三个括号包裹的由8个数字字符组成的序列,并且在第二个和第三个数字序列之间有一个字母数字字符。

例如,字符串"&DZ(12345678)a(98765432)b(01234567)"将匹配这个模式。

local name="lingyun"
local newname=gsub(name,"yun","wu")
此时  newname="lingwu" 将“lingyun”中的“yun”替换成"wu"

local name,level="lingyun",15
local str=format("玩家%s,现在等级%d",tostring(name),level)
format格式化字符串 %s 则后面需要对应一个 字符串类型    %d 后面跟整数型
此语句后 str 的值为  "玩家lingyun,现在等级15"

数值运算学习
ceil(15/14)  无论结果小数点后是几 都将整数部分+1  例如15/14=1.1  则返回2    15/7=2.1 返回3  15/10=1.5 返回 2

mod(15,10) 取余数  返回5

floor(15/11) 取整数部分  返回 1   例如floor(15/7) 返回2 无视小数点后的数字

数组列表学习
local myarr={1,2,3}
getn(myarr)  返回数组中的元素数量  例如这里 返回3 表示数组中有3个元素

local name={}
tinsert(name,"lingyun")
tinsert(name,"xuewu")
此时 name[1]="lingyun"   name[2]=xuewu

tremove(name,1)
此时 删除name数组中的第一个元素  第二个元素向前移name[1]="xuewu"  name[2]=nil

local myarr={[102]={1,2,3},[115]={4,5,6},}
local tmparr={0,0,0}
for i,tmp in myarr do
    --进入第一次循环 此时  tmp[i] = myarr[102]  i=102
    for j=1,3 do
        tmparr[j]=tmparr[j]+tmp[j]
    --进入第一次循环 此时tmp[j] 相当于 myarr[102][1]  此时 j=1
    end
end

客户端部分lua
local PrizeAction = GemMelting:UpdateProductAction(tonumber(shuzu[i]))  --这里tonumber(shuzu[i])  是获取到的物品ID
XiaoXiang_DuiHuanUI2_Bk_Icon[i]:SetActionItem(PrizeAction:GetID()); --这里显示出对应的图标信息

local theAction = EnumAction(nIndex-1, "packageitem") --这里获取到背包位置的物品信息
if theAction:GetID() ~= 0 then 
local nPacketItemID = tonumber(theAction:GetDefineID())  --获取到该物品的真实ID

:SetActionItem(PrizeAction:GetID());  --设置容器需要显示的 图标信息

    strName = Pet : GetStrAptitude(nIndex);   --获取力量资质
    Pet_StrAptitude : SetText( strName );

    strName = Pet : GetIntAptitude(nIndex); --获取灵气资质
    Pet_NimbusAptitude : SetText( strName );

    strName = Pet : GetPFAptitude(nIndex); --获取体力资质
    Pet_PhysicalStrengthAptitude : SetText( strName );

    strName = Pet : GetStaAptitude(nIndex); --获取定力资质
    Pet_StabilityAptitude : SetText( strName );

    strName = Pet : GetDexAptitude(nIndex); --获取身法资质
    Pet_DexterityAptitude : SetText( strName );

    strName = Pet : GetStr(nIndex);--获取力量属性
    XB_PetLL_SX : SetText( strName );

    strName = Pet : GetInt(nIndex);--获取灵气属性
    XB_PetLQ_SX : SetText( strName );

    strName = Pet : GetPF(nIndex);--获取体力属性
    XB_PetTL_SX : SetText( strName );

    strName = Pet : GetSta(nIndex);--获取定力属性
    XB_PetDL_SX : SetText( strName );   

    strName = Pet : GetDex(nIndex);--获取身法属性
    XB_PetSF_SX : SetText( strName );

以上是客户端

function x830004_jiance(sceneId,selfId,parmPetIndex,petGUID_H,petGUID_L)
local shuxing={}
    local nStrPer = LuaFnGetPet_StrPerception(sceneId,selfId,parmPetIndex);
         if nStrPer > x830004_g_ZZSX then
             LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,6,x830004_g_ZZSX)
             x830004_Tip( sceneId,selfId,"当前宠物力量资质已达上限" )
             return
         end

         local nSprPer = LuaFnGetPet_SprPerception(sceneId,selfId,parmPetIndex);
         if nSprPer > x830004_g_ZZSX then
             LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,7,x830004_g_ZZSX)
             x830004_Tip( sceneId,selfId,"当前宠物灵气资质已达上限" )
             return
         end
         local nConPer = LuaFnGetPet_ConPerception(sceneId,selfId,parmPetIndex);    
         if nConPer > x830004_g_ZZSX then
             LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,8,x830004_g_ZZSX)
             x830004_Tip( sceneId,selfId,"当前宠物体力资质已达上限" )
             return
         end
         local nIntPer = LuaFnGetPet_IntPerception(sceneId,selfId,parmPetIndex);
         if nIntPer >x830004_g_ZZSX then
             LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,9,x830004_g_ZZSX)
             x830004_Tip( sceneId,selfId,"当前宠物定力资质已达上限" )
             return
         end
         local nDexPer = LuaFnGetPet_DexPerception(sceneId,selfId,parmPetIndex);
         if nDexPer > x830004_g_ZZSX then
             LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,10,x830004_g_ZZSX) --改回最大值
             x830004_Tip( sceneId,selfId,"当前宠物身法资质已达上限" )
             return
         end

        for i=0 ,4 do
            shuxing[i+1]=LuaFnGetPet_AttrLevel1(sceneId,selfId,parmPetIndex,i)   --这里获取到宠物的 力量 灵气 体力  定力 身法 的属性
            if shuxing[i+1] >x830004_g_ZZSX then
                LuaFnSetPetData(sceneId,selfId,petGUID_H,petGUID_L,i,x830004_g_ZZSX) --改回最大值
            end
        end
end

以上是服务端
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-15 07:26 , Processed in 0.104623 second(s), 8 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

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