xuebao

天龙笔记一

xuebao 天龙笔记 2024-05-03 1170浏览 0

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


以上是服务端


发表评论
«    2025年1月    »
12345
6789101112
13141516171819
20212223242526
2728293031
搜索
请先 登录 再评论,若不是会员请先 注册