请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站 今天是: 2020-11-24    美好的一天,从现在开始
开启辅助访问      
切换到窄版

Waylee黑技术

 找回密码
 注册会员
搜索
热搜: 天龙 运维 kali
查看: 41|回复: 2
收起左侧

[LUA] 聚义天龙:宝石一键合成v2.1-2020.11.21

[复制链接]

201

主题

229

帖子

928

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
928
发表于 3 天前 | 显示全部楼层 |阅读模式
聚义天龙-宝石一键合成编写v1版本
编写时间 2020-11-20

功能介绍:一键将背包内指定的宝石全部合成为更高一级的宝石
        
                if GetNumText() == 1010 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "宝石合成工具台,方便合成宝石" )
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(手动版本)", 6, 24)
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(一键合成)", 6, 1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                
                        return
                end                
                if GetNumText() == 1011 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "    可以通过本功能,每合成一次需要5个对应的宝石和1个高级宝石合成符。" )
                                AddNumText( sceneId, x000110_g_scriptId, "合成命运宝石", 6, 1021 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成胜利宝石", 6, 1022 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成智慧宝石", 6, 1023 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成玄微宝石", 6, 1024 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成玄冥宝石", 6, 1025 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成魅力宝石", 6, 1026 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成天机宝石", 6, 1027 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成生命宝石", 6, 1028 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成希望宝石", 6, 1029 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
        
                if GetNumText() == 1021 then --命运宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成血精石", 6, 1031 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄宝石", 6, 1032 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝宝石", 6, 1033 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿宝石", 6, 1034 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成红宝石", 6, 1035 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成黑宝石", 6, 1036 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                
                if GetNumText() == 1022 then --胜利宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝冥石", 6, 1041 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄冥石", 6, 1042 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成红冥石", 6, 1043 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿冥石", 6, 1044 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                        
        
                if GetNumText() == 1023 then--智慧宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝晶石", 6, 1051 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄晶石", 6, 1052 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成红晶石", 6, 1053 )
                                AddNumText( sceneId, x000110_g_ScriptId, "合成绿晶石", 6, 1054 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净蓝晶石", 6, 1055 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄晶石", 6, 1056 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净红晶石", 6, 1057 )
                                AddNumText( sceneId, x000110_g_ScriptId, "合成纯净绿晶石", 6, 1058 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                
                if GetNumText() == 1024 then --玄微宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成紫玉", 6, 1045 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                if GetNumText() == 1025 then --玄冥宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成变石", 6, 1046 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                --以下1061-1069为一类
                if GetNumText() == 1026 then --魅力宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成碧玺", 6, 1061 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄玉", 6, 1062 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成月光石", 6, 1063 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成皓石", 6, 1064 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净碧玺", 6, 1065 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄玉", 6, 1066 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净月光石", 6, 1067 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净皓石", 6, 1067 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                if GetNumText() == 1027 then --天机宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成祖母绿", 6, 1071 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                if GetNumText() == 1028 then --生命宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成石榴石", 6, 1072 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成尖晶石", 6, 1073 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                if GetNumText() == 1029 then --希望宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成猫眼石", 6, 1074 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成虎眼石", 6, 1075 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
        


        
        
        
----------命运宝石合成-具体执行脚本 ----------
                if GetNumText() > 1030 and GetNumText() < 1037 then         --1031-2036(包括)
                  local CommTable = {
                  {50113006,50213006,50313006,50413006,50513006,50613006,50713006,50813006,50913006}, --血精石 
                  {50113001,50213001,50313001,50413001,50513001,50613001,50713001,50813001,50913001}, --黄宝石
                  {50113004,50213004,50313004,50413004,50513004,50613004,50713004,50813004,50913004}, --红宝石
                  {50113002,50213002,50313002,50413002,50513002,50613002,50713002,50813002,50913002}, --蓝宝石
                  {50113003,50213003,50313003,50413003,50513003,50613003,50713003,50813003,50913003}, --绿宝石
                  {50113005,50213005,50313005,50413005,50513005,50613005,50713005,50813005,50913005}} --黑宝石
                  local nType = mod(GetNumText(),10) -- 值为选择的菜单号1-3
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取三精材料每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是三精的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的命运宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取材料的数量,函数返回值就是物品数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取材料的数量,函数返回值就是物品数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个三精材料,删除成功则给一个更高级的材料
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个物品给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------命运宝石合成具体执行脚本结束----------        
        
        
        
----------胜利宝石、玄微宝石、玄冥宝石 合成-具体执行脚本 ----------
                if GetNumText() > 1040 and GetNumText() < 1047 then        
                  local CommTable = {
                  {50121002,50221002,50321002,50421002,50521002,50621002,50721002,50821002,50921002}, --蓝冥石
                  {50121001,50221001,50321001,50421001,50521001,50621001,50721001,50821001,50921001}, --黄冥石
                  {50121003,50221003,50321003,50421003,50521003,50621003,50721003,50821003,50921003}, --红冥石
                  {50121004,50221004,50321004,50421004,50521004,50621004,50721004,50821004,50921004}, --绿冥石
                  {50103001,50203001,50303001,50403001,50503001,50603001,50703001,50803001,50903001}, --紫玉
                  {50103002,50203002,50303002,50403002,50503002,50603002,50703002,50803002,50903002}} --变石
                  local nType = mod(GetNumText(),10) -- 值为选择的菜单号1-3
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取三精材料每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是三精的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的命运宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取材料的数量,函数返回值就是物品数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取材料的数量,函数返回值就是物品数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个三精材料,删除成功则给一个更高级的材料
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个物品给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------胜利宝石合成 具体执行脚本结束----------

        
----------智慧宝石合成-具体执行脚本 ----------
                if GetNumText() > 1050 and GetNumText() < 1059 then         --1031-2036(包括)
                  local CommTable = {
                  {50102002,50202002,50302002,50402002,50502002,50602002,50702002,50802002,50902002}, --黄晶石 
                  {50102001,50202001,50302001,50402001,50502001,50602001,50702001,50802001,50902001}, --蓝晶石
                  {50102003,50202003,50302003,50402003,50502003,50602003,50702003,50802003,50902003}, --红晶石
                  {50102004,50202004,50302004,50402004,50502004,50602004,50702004,50802004,50902004}, --绿晶石
                  {50102006,50202006,50302006,50402006,50502006,50602006,50702006,50802006,50902006}, --纯净黄晶石
                  {50102005,50202005,50302005,50402005,50502005,50602005,50702005,50802005,50902005}, --纯净蓝晶石
                  {50102007,50202007,50302007,50402007,50502007,50602007,50702007,50802007,50902007}, --纯净红晶石
                  {50102008,50202008,50302008,50402008,50502008,50602008,50702008,50802008,50902008}} --纯净绿晶石
                  local nType = mod(GetNumText(),10) -- 值为选择的菜单号1-3
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取三精材料每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是三精的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的命运宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取材料的数量,函数返回值就是物品数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取材料的数量,函数返回值就是物品数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个三精材料,删除成功则给一个更高级的材料
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个物品给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------智慧宝石合成具体执行脚本结束----------        
                
        
----------魅力宝石 合成合成-具体执行脚本 ----------
                if GetNumText() > 1060 and GetNumText() < 1069 then          
                  local CommTable = {
                  {50112004,50212004,50312004,50412004,50512004,50612004,50712004,50812004,50912004}, --碧玺 
                  {50112001,50212001,50312001,50412001,50512001,50612001,50712001,50812001,50912001}, --黄玉
                  {50112003,50212003,50312003,50412003,50512003,50612003,50712003,50812003,50912003}, --月光石
                  {50112002,50212002,50312002,50412002,50512002,50612002,50712002,50812002,50912002}, --皓石
                  {50112008,50212008,50312008,50412008,50512008,50612008,50712008,50812008,50912008}, --纯净碧玺
                  {50112005,50212005,50312005,50412005,50512005,50612005,50712005,50812005,50912005}, --纯净黄玉
                  {50112007,50212007,50312007,50412007,50512007,50612007,50712007,50812007,50912007}, --纯净月光石
                  {50112006,50212006,50312006,50412006,50512006,50612006,50712006,50812006,50912006}} --纯净皓石
                  local nType = mod(GetNumText(),10) -- 值为选择的菜单号1-3
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取三精材料每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是三精的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的命运宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取材料的数量,函数返回值就是物品数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取材料的数量,函数返回值就是物品数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个三精材料,删除成功则给一个更高级的材料
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个物品给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------        魅力宝石、天机宝石、生命宝石、希望宝石 合成具体执行脚本结束----------        


        


----------天机宝石、生命宝石、希望宝石 合成合成-具体执行脚本 ----------
                if GetNumText() > 1070 and GetNumText() < 1076 then          
                  local CommTable = {
                  {50114001,50214001,50314001,50414001,50514001,50614001,50714001,50814001,50914001}, --祖母绿 
                  {50111001,50211001,50311001,50411001,50511001,50611001,50711001,50811001,50911001}, --石榴石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}, --尖晶石
                  {50101001,50201001,50301001,50401001,50501001,50601001,50701001,50801001,50901001}, --猫眼石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}} --虎眼石
                  local nType = mod(GetNumText(),10) -- 值为选择的菜单号1-3
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取三精材料每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是三精的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的命运宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取材料的数量,函数返回值就是物品数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取材料的数量,函数返回值就是物品数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个三精材料,删除成功则给一个更高级的材料
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个物品给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------        天机宝石、生命宝石、希望宝石 合成具体执行脚本结束----------        



201

主题

229

帖子

928

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
928
 楼主| 发表于 3 天前 | 显示全部楼层
聚义天龙-宝石一键合成编写v2版本

编写时间2020-11-21 14:00


修改介绍:优化代码长度,简化按钮数量


        
                if GetNumText() == 1010 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "宝石合成工具台,方便合成宝石" )
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(手动版本)", 6, 24)
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(一键合成)", 6, 1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                
                        return
                end                
                if GetNumText() == 1011 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "    可以通过本功能,每合成一次需要5个对应的宝石和1个高级宝石合成符。" )
                                AddNumText( sceneId, x000110_g_scriptId, "合成属性攻击宝石", 6, 1021 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成属性抗性宝石", 6, 1022 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成普通属性宝石", 6, 1023 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成内外攻防宝石", 6, 1024 )
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                --9900-9940
                if GetNumText() == 1021 then --属性攻击宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝冥石", 6, 9901 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄冥石", 6, 9902 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红冥石", 6, 9903 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿冥石", 6, 9904 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净蓝晶石", 6, 9905 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄晶石", 6, 9906 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净红晶石", 6, 9907 )--智慧宝石
                                AddNumText( sceneId, x000110_g_ScriptId, "合成纯净绿晶石", 6, 9908 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝晶石", 6, 9909 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄晶石", 6, 9910 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红晶石", 6, 9911 )--智慧宝石
                                AddNumText( sceneId, x000110_g_ScriptId, "合成绿晶石", 6, 9912 )--智慧宝石
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                        

                if GetNumText() == 1021 then --属性抗性宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成碧玺", 6, 9913 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄玉", 6, 9914 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成月光石", 6, 9915 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成皓石", 6, 9916 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净碧玺", 6, 9917 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄玉", 6, 9918 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净月光石", 6, 9919 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净皓石", 6, 9920 )--魅力宝石
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
        
                if GetNumText() == 1023 then --普通属性宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成血精石", 6, 9921 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄宝石", 6, 9922 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝宝石", 6, 9923 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿宝石", 6, 9924 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红宝石", 6, 9925 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黑宝石", 6, 9926 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成紫玉", 6, 9927 ) --玄微宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成变石", 6, 9928 ) --玄冥宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成祖母绿", 6, 9929 )--天机宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成石榴石", 6, 9930 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成尖晶石", 6, 9931 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成猫眼石", 6, 9932 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成虎眼石", 6, 9933 )--希望宝石
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                
                
                if GetNumText() == 1024 then --内外功防宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝宝石", 6, 9934 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄宝石", 6, 9935 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成石榴石", 6, 9936 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成尖晶石", 6, 9937 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成猫眼石", 6, 9938 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成虎眼石", 6, 9939 )--希望宝石
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                
----------宝石合成-具体执行脚本 ----------
                if GetNumText() > 9900 and GetNumText() < 9940 then         --9901-9939(包括)
                  local CommTable = {
                  {50121002,50221002,50321002,50421002,50521002,50621002,50721002,50821002,50921002}, --蓝冥石
                  {50121001,50221001,50321001,50421001,50521001,50621001,50721001,50821001,50921001}, --黄冥石
                  {50121003,50221003,50321003,50421003,50521003,50621003,50721003,50821003,50921003}, --红冥石
                  {50121004,50221004,50321004,50421004,50521004,50621004,50721004,50821004,50921004}, --绿冥石
                  {50102006,50202006,50302006,50402006,50502006,50602006,50702006,50802006,50902006}, --纯净黄晶石
                  {50102005,50202005,50302005,50402005,50502005,50602005,50702005,50802005,50902005}, --纯净蓝晶石
                  {50102007,50202007,50302007,50402007,50502007,50602007,50702007,50802007,50902007}, --纯净红晶石
                  {50102008,50202008,50302008,50402008,50502008,50602008,50702008,50802008,50902008}, --纯净绿晶石
                  {50102002,50202002,50302002,50402002,50502002,50602002,50702002,50802002,50902002}, --黄晶石 
                  {50102001,50202001,50302001,50402001,50502001,50602001,50702001,50802001,50902001}, --蓝晶石
                  {50102003,50202003,50302003,50402003,50502003,50602003,50702003,50802003,50902003}, --红晶石
                  {50102004,50202004,50302004,50402004,50502004,50602004,50702004,50802004,50902004}, --绿晶石
                  {50112004,50212004,50312004,50412004,50512004,50612004,50712004,50812004,50912004}, --碧  玺 
                  {50112001,50212001,50312001,50412001,50512001,50612001,50712001,50812001,50912001}, --黄  玉
                  {50112003,50212003,50312003,50412003,50512003,50612003,50712003,50812003,50912003}, --月光石
                  {50112002,50212002,50312002,50412002,50512002,50612002,50712002,50812002,50912002}, --皓  石
                  {50112008,50212008,50312008,50412008,50512008,50612008,50712008,50812008,50912008}, --纯净碧玺
                  {50112005,50212005,50312005,50412005,50512005,50612005,50712005,50812005,50912005}, --纯净黄玉
                  {50112007,50212007,50312007,50412007,50512007,50612007,50712007,50812007,50912007}, --纯净月光石
                  {50112006,50212006,50312006,50412006,50512006,50612006,50712006,50812006,50912006}, --纯净皓石
                  {50113006,50213006,50313006,50413006,50513006,50613006,50713006,50813006,50913006}, --血精石 
                  {50113001,50213001,50313001,50413001,50513001,50613001,50713001,50813001,50913001}, --黄宝石
                  {50113004,50213004,50313004,50413004,50513004,50613004,50713004,50813004,50913004}, --红宝石
                  {50113002,50213002,50313002,50413002,50513002,50613002,50713002,50813002,50913002}, --蓝宝石
                  {50113003,50213003,50313003,50413003,50513003,50613003,50713003,50813003,50913003}, --绿宝石
                  {50113005,50213005,50313005,50413005,50513005,50613005,50713005,50813005,50913005}, --黑宝石
                  {50103001,50203001,50303001,50403001,50503001,50603001,50703001,50803001,50903001}, --紫  玉
                  {50103002,50203002,50303002,50403002,50503002,50603002,50703002,50803002,50903002}, --变  石
                  {50114001,50214001,50314001,50414001,50514001,50614001,50714001,50814001,50914001}, --祖母绿 
                  {50111001,50211001,50311001,50411001,50511001,50611001,50711001,50811001,50911001}, --石榴石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}, --尖晶石
                  {50101001,50201001,50301001,50401001,50501001,50601001,50701001,50801001,50901001}, --猫眼石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}} --虎眼石
                  
                   
                  local nType = mod(GetNumText(),99) -- 值为选择的菜单号1-32
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取宝石每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是宝石的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的宝石。" )                                 
                         return
                  end        
                  
                  if isNum == 8 then --【宝石】已经满级了
                         x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取【宝石】的数量,函数返回值就是宝石数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取【高级合成符】的数量,函数返回值就是数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个宝石,删除成功则给一个更高级的宝石
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个宝石给玩家
                         end
                  end
                  x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------宝石合成具体执行脚本结束----------        
[i][i]




回复

使用道具 举报

201

主题

229

帖子

928

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
928
 楼主| 发表于 3 天前 | 显示全部楼层
聚义天龙-宝石一键合成v2.1版本
v2.1功能介绍:在v2的基础上加入了返回按钮,优化了提示,减少重复点击的麻烦。


编写时间:2020-11-21 15:04:11
                if GetNumText() == 1010 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "宝石合成工具台,方便大家合成宝石,最新支持一键合成5/10/15/20/25/30/35颗宝石" )
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(手动版本)", 6, 24)
                                AddNumText( sceneId, x000110_g_scriptId, "宝石合成(一键合成)", 6, 1011)
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,2)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                
                        return
                end                
                if GetNumText() == 1011 then
                        BeginEvent( sceneId )
                                AddText( sceneId, "    可以通过本功能,每合成一次需要5个对应的宝石和1个高级宝石合成符。" )
                                AddNumText( sceneId, x000110_g_scriptId, "合成属性攻击宝石", 6, 1021 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成属性抗性宝石", 6, 1022 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成普通属性宝石", 6, 1023 )
                                AddNumText( sceneId, x000110_g_scriptId, "合成内外攻防宝石", 6, 1024 )
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,1010)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                --9900-9940
                if GetNumText() == 1021 then --属性攻击宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝冥石", 6, 9901 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄冥石", 6, 9902 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红冥石", 6, 9903 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿冥石", 6, 9904 )--胜利宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净蓝晶石", 6, 9905 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄晶石", 6, 9906 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净红晶石", 6, 9907 )--智慧宝石
                                AddNumText( sceneId, x000110_g_ScriptId, "合成纯净绿晶石", 6, 9908 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝晶石", 6, 9909 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄晶石", 6, 9910 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红晶石", 6, 9911 )--智慧宝石
                                AddNumText( sceneId, x000110_g_ScriptId, "合成绿晶石", 6, 9912 )--智慧宝石
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                        

                if GetNumText() == 1021 then --属性抗性宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成碧玺", 6, 9913 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄玉", 6, 9914 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成月光石", 6, 9915 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成皓石", 6, 9916 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净碧玺", 6, 9917 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净黄玉", 6, 9918 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净月光石", 6, 9919 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成纯净皓石", 6, 9920 )--魅力宝石
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
        
                if GetNumText() == 1023 then --普通属性宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成血精石", 6, 9921 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄宝石", 6, 9922 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝宝石", 6, 9923 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成绿宝石", 6, 9924 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成红宝石", 6, 9925 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黑宝石", 6, 9926 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成紫玉", 6, 9927 ) --玄微宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成变石", 6, 9928 ) --玄冥宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成祖母绿", 6, 9929 )--天机宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成石榴石", 6, 9930 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成尖晶石", 6, 9931 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成猫眼石", 6, 9932 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成虎眼石", 6, 9933 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end                
                
                if GetNumText() == 1024 then --内外功防宝石
                        BeginEvent( sceneId )
                                AddNumText( sceneId, x000110_g_scriptId, "合成蓝宝石", 6, 9934 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成黄宝石", 6, 9935 )--命运宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成石榴石", 6, 9936 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成尖晶石", 6, 9937 )--生命宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成猫眼石", 6, 9938 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "合成虎眼石", 6, 9939 )--希望宝石
                                AddNumText( sceneId, x000110_g_scriptId, "返回上一级菜单",8,1011)
                        EndEvent(sceneId)
                        DispatchEventList(sceneId,selfId,targetId)                        
                end        
                
----------宝石合成-具体执行脚本 ----------
                if GetNumText() > 9900 and GetNumText() < 9940 then         --9901-9939(包括)
                  local CommTable = {
                  {50121002,50221002,50321002,50421002,50521002,50621002,50721002,50821002,50921002}, --蓝冥石
                  {50121001,50221001,50321001,50421001,50521001,50621001,50721001,50821001,50921001}, --黄冥石
                  {50121003,50221003,50321003,50421003,50521003,50621003,50721003,50821003,50921003}, --红冥石
                  {50121004,50221004,50321004,50421004,50521004,50621004,50721004,50821004,50921004}, --绿冥石
                  {50102006,50202006,50302006,50402006,50502006,50602006,50702006,50802006,50902006}, --纯净黄晶石
                  {50102005,50202005,50302005,50402005,50502005,50602005,50702005,50802005,50902005}, --纯净蓝晶石
                  {50102007,50202007,50302007,50402007,50502007,50602007,50702007,50802007,50902007}, --纯净红晶石
                  {50102008,50202008,50302008,50402008,50502008,50602008,50702008,50802008,50902008}, --纯净绿晶石
                  {50102002,50202002,50302002,50402002,50502002,50602002,50702002,50802002,50902002}, --黄晶石 
                  {50102001,50202001,50302001,50402001,50502001,50602001,50702001,50802001,50902001}, --蓝晶石
                  {50102003,50202003,50302003,50402003,50502003,50602003,50702003,50802003,50902003}, --红晶石
                  {50102004,50202004,50302004,50402004,50502004,50602004,50702004,50802004,50902004}, --绿晶石
                  {50112004,50212004,50312004,50412004,50512004,50612004,50712004,50812004,50912004}, --碧  玺 
                  {50112001,50212001,50312001,50412001,50512001,50612001,50712001,50812001,50912001}, --黄  玉
                  {50112003,50212003,50312003,50412003,50512003,50612003,50712003,50812003,50912003}, --月光石
                  {50112002,50212002,50312002,50412002,50512002,50612002,50712002,50812002,50912002}, --皓  石
                  {50112008,50212008,50312008,50412008,50512008,50612008,50712008,50812008,50912008}, --纯净碧玺
                  {50112005,50212005,50312005,50412005,50512005,50612005,50712005,50812005,50912005}, --纯净黄玉
                  {50112007,50212007,50312007,50412007,50512007,50612007,50712007,50812007,50912007}, --纯净月光石
                  {50112006,50212006,50312006,50412006,50512006,50612006,50712006,50812006,50912006}, --纯净皓石
                  {50113006,50213006,50313006,50413006,50513006,50613006,50713006,50813006,50913006}, --血精石 
                  {50113001,50213001,50313001,50413001,50513001,50613001,50713001,50813001,50913001}, --黄宝石
                  {50113004,50213004,50313004,50413004,50513004,50613004,50713004,50813004,50913004}, --红宝石
                  {50113002,50213002,50313002,50413002,50513002,50613002,50713002,50813002,50913002}, --蓝宝石
                  {50113003,50213003,50313003,50413003,50513003,50613003,50713003,50813003,50913003}, --绿宝石
                  {50113005,50213005,50313005,50413005,50513005,50613005,50713005,50813005,50913005}, --黑宝石
                  {50103001,50203001,50303001,50403001,50503001,50603001,50703001,50803001,50903001}, --紫  玉
                  {50103002,50203002,50303002,50403002,50503002,50603002,50703002,50803002,50903002}, --变  石
                  {50114001,50214001,50314001,50414001,50514001,50614001,50714001,50814001,50914001}, --祖母绿 
                  {50111001,50211001,50311001,50411001,50511001,50611001,50711001,50811001,50911001}, --石榴石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}, --尖晶石
                  {50101001,50201001,50301001,50401001,50501001,50601001,50701001,50801001,50901001}, --猫眼石
                  {50101002,50201002,50301002,50401002,50501002,50601002,50701002,50801002,50901002}} --虎眼石
                  
                   
                  local nType = mod(GetNumText(),99) -- 值为选择的菜单号1-32
                  --AddGlobalCountNews( sceneId,"变量:"..nType.." !")
                  local isNum = 0
                  --说明getn(CommTable[nType]) 获取【CommTable数组】中【第nType个组】内包含的数值个数
                  for i = 1,getn(CommTable[nType]) do
                                        -- LuaFnGetAvailableItemCount获取可用项目数  、CommTable[nType][i]获取宝石每个等级的个数,大于等于5时就记录一次
                                 if LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][i]) >= 5 then--从低级开始遍历升级。
                                        isNum = i  --符合条件时,isNum就是宝石的级别
                                        break
                                 end
                  end
                  
                  if isNum == 0 then --所有等级的【宝石】都没有达到【5个】以上
                         --x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少所有需要升级的宝石。" )        
                         BeginEvent(sceneId)
                                AddText(sceneId,"    少侠,你背包缺少所有需要升级的宝石。");
                         EndEvent(sceneId)
                         DispatchMissionTips(sceneId,selfId)
                         return
                  end        
                  
                  if isNum == 9 then --【宝石】已经满级了
                         --x000110_MsgBox( sceneId, selfId, targetId, "    所选择宝石已经满级,无法进行升级了。" )
                         BeginEvent(sceneId)
                                AddText(sceneId,"    所选择宝石已经满级,无法进行升级了。");
                         EndEvent(sceneId)
                         DispatchMissionTips(sceneId,selfId)
                         return
                  end
                  
                  local HaveItem = LuaFnGetAvailableItemCount(sceneId, selfId, CommTable[nType][isNum]) --获取【宝石】的数量,函数返回值就是宝石数量
                  local isHeChengNum = LuaFnGetAvailableItemCount(sceneId, selfId,30900016) --获取【高级合成符】的数量,函数返回值就是数量

                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,物品数量HaveItem变量:"..HaveItem.." !")
                  --local idd = ceil(HaveItem/5)
                  --AddGlobalCountNews( sceneId,"雪舞群主LUA编程代码测试,ceil(HaveItem/5:"..idd.." !")
                  for i = 1,floor(HaveItem/5) do --【向上取整ceil】改为【floor向下取整】 解决,数量不足时还扣除道具
                          --LuaFnDelAvailableItem 删除玩家背包内可用的道具 
                         if isHeChengNum == 0 then --【高级合成符】不足一个
                                --x000110_MsgBox( sceneId, selfId, targetId, "    少侠,你背包缺少高级宝石合成符。" )        
                                 BeginEvent(sceneId)
                                        AddText(sceneId,"    少侠,你背包缺少高级宝石合成符。");        
                                 EndEvent(sceneId)
                                 DispatchMissionTips(sceneId,selfId)                                 
                                return
                         end        
                         if LuaFnDelAvailableItem(sceneId,selfId,CommTable[nType][isNum],5) == 1 then --删除5个宝石,删除成功则给一个更高级的宝石
                                LuaFnDelAvailableItem(sceneId,selfId,30900016,1) --删除高级宝石合成符
                                isHeChengNum = isHeChengNum - 1 
                                TryRecieveItem(sceneId,selfId,CommTable[nType][isNum+1],1) --发放一个宝石给玩家
                         end
                  end
                  --x000110_MsgBox( sceneId, selfId, targetId, "    恭喜您,经过工匠的细心工作,宝石合成成功。" )
                  BeginEvent(sceneId)                  
                        AddText(sceneId,"   恭喜您,经过工匠的细心工作,宝石合成成功。");        
                  EndEvent(sceneId)
                  DispatchMissionTips(sceneId,selfId)                
                  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0); --调用BUFF效果类函数,给玩家一个成功的特效效果
                  return
                end        
----------宝石合成具体执行脚本结束----------        
        


回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

为兴趣而生,注册一起交流。 立即登录云玩 立即注册

QQ|手机版|Waylee黑技术 ( 浙ICP备15015590号-1 )

|浙公网安备33048102000118号

GMT+8, 2020-11-24 19:29 , Processed in 0.778725 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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