admin 发表于 2019-9-15 17:17:35

[免费]秘境挑战

这是一个秘境挑战的副本功能 完全开源(客户端部分 服务端部分)


(web插件)在线安装秘境挑战脚本

简介 : 可以控制各副本依次挑战顺序 解锁 挑战次数 掉落奖品全名UI化
售价 : ¥0.00
作者 : QQ859729391
引擎 : GA

http://bbs.ml30.com/ad/123.png


安装方法 :

[*]登录器与服务端必须更新至2021.3.21版本或以上
[*]启动GA二建单机版 开发者版 或正式版 并且成功登入游戏
[*]点击下面的在线安装
[*]依照游戏中的提示 按流程要求继续即可完成安装


GACENTER|秘境挑战免费版|aHR0cHM6Ly9naXRlZS5jb20vNTQyMzY2MzIvbWlqaW5ndGlhb3poYW4vcmF3L21hc3Rlci8=

如何使用:妖城在线论坛; A; @! {+ ], T9 f1 p& t8 c
服务端部分
config.lua中引用 mijing_server.lua—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 g+ Q6 W5 K9 `1 w4 A
luac.lua中加入 luac.txt内代码
bbs.mocwww.com7 F5 e# B( u$ u- @
客户端部分
GA二建端:直接把mijing_client.lua 与 image文件夹丢入客户端的lua中
GA商业版:用打包器直接打包以上脚本3 j9 Y0 b( b5 H( v0 j
GE(GXSIM):用打包器GA2GE.exe直接打包以上脚本bbs.mocwww.com0 q4 r/ P7 R+ X
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: O/ ?# X$ a' @: t2 S
妖城在线论坛+ O! B# G' A# c|* Q5 i: x
呼出界面:
block 3 P$ w" Z8 lT7 _
         showmj魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 ^$ @) s) c0 ]
妖城在线论坛% F( u9 T4 R+ ~1 |) k/ U+ f
魔力私服,最新魔力宝贝私服技术交流, y]' E8 {) a4 Ek
设定层锁:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! s( ~- B# t4 {9 @7 {9 B8 y/ D& h( I
block—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート]. C4 {) `8 G1 ?* U- n" h
       luac setmj 1,3设置秘境1开启第三层( K+ t) }0 B+ v) z: ]
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" b; j5 I% O- O2 v' R1 G% @
以上均可以使用道具或NPC脚本设定0 x1 g) A" g, o; BF
bbs.mocwww.com6 D, g3 ^, |( C+ U
bbs.mocwww.com1 O! |/ c+ t; U+ }% c% l" {
其他配置可以打开mijing_server.lua 查看

以下是代码部分:


客户端:
--[[

秘境挑战 客户端lua部分
支持平台:GA、GE(GXSIM)

一个界面化的副本挑战

]]

tbl_mj = {}; --存储秘境配置,数据从服务器传入
mj_thisselect = 1;
mj_thisselect_cs = 1;
tbl_cssetting = {"第一","第二","第三","第四","第五","最终"};
mj_sycs = 0;

function Myrw_init(view)
      if view.IsInit then      
                -- 如果窗体第一次载入,开始摆放控件
                view.settop();      
                -- 摆放关闭按钮
                view.add(new.closebutton("myclose_test"));
                for i=1,6 do
                        -- 摆放锁按钮
                        view.add(new.bmpbutton("mj_suo_".. i,"mijing_suo.bmp"));
                end
               
                for i=1,6 do
                        -- 摆放道具
                        view.add(new.image("mj_itembox_".. tostring(i)));                        
                end               
      
                -- 摆放开始挑战按钮
                view.add(new.bmpbutton("mj_huain","mijing_btn2.bmp"));
                -- 摆放当前挑战背景
                view.add(new.bmpbutton("ditutu","mijing_bg_huayao.bmp"));
               
               
                for i=1,#tbl_mj do
                        view.add(new.bmpbutton("mj_select_" .. tostring(i),"mijing_btn1.bmp"));
                end
               
                view.add(new.bmpbutton("mj_bg","mijing_bg.bmp"));      
                return;
      end
      
      -- 窗体初始显示位置
      view.xpos =60;
      view.ypos =60;      
      if Cli.GetHD() then --960*720时
                view.xpos =180;
                view.ypos =180;
      end
      
      local close = view.find("myclose_test");
      close.enable = 1;
      close.xpos = 548;
      close.ypos = 8;
      close.event = function(object)
                -- 当关闭按钮被按下时
                Audio.Bell(54,320)
                return 1;
      end
      
      -- 初始奖励道具显示偏移
      local tbl2 = {{425,205},{480,205},{535,205},{425,255},{480,255},{535,255}};
      for i=1,6 do
                local object = view.find("mj_itembox_".. tostring(i));
                object.enable = 1;
                object.sizex = 48;
                object.sizey = 48;
                object.xpos = tbl2 - 50 ;
                object.ypos = tbl2 - 50;
                object._select3 = tostring(i);
                object.event = function(object,event)

                        if event == Cevent.mouseover then
                              -- 把道具数据文字画到游戏中
                              if tbl_mj["itemdatainfo_"..mj_thisselect_cs] ~= nil then
                                        local info = tbl_mj["itemdatainfo_"..mj_thisselect_cs];
                                        if info ~= nil then
                                                this.spText(view.xpos+373,view.ypos+139,9,info)
                                        end
                              end
                        
                        end
                end
      end
      
      for i=1,6 do
                local object = view.find("mj_suo_" .. tostring(i));
                object.enable = 1;               
                if i == 1 then
                        object.xpos = 135;
                        object.ypos = 220;
                end
                if i == 2 then
                        object.xpos = 172;
                        object.ypos = 193;
                end
                if i == 3 then
                        object.xpos = 215;
                        object.ypos = 220;
                end
                if i == 4 then
                        object.xpos = 255;
                        object.ypos = 193;
                end
                if i == 5 then
                        object.xpos = 290;
                        object.ypos = 235;
                end
                if i == 6 then
                        object.xpos = 215;
                        object.ypos = 275;
                end
                object._select3 = tostring(i);
                object.event = function(object,event)
                        local num = tonumber(object._select3)
                        if num <= tonumber(tbl_mj.dqcs) then
                              object.id = "mijing_jiesuo.bmp";
                        else
                              object.id = "mijing_suo.bmp";
                        end
                        
                        if event == Cevent.click then                                       
                              mj_thisselect_cs = num;
                        end
                end
      end
      
      for i=1,#tbl_mj do
                local object = view.find("mj_select_" .. tostring(i));
                object.enable = 1;
                object.xpos = 20;
                object.ypos = 110 + ((i - 1) * 25);
                object._select3 = tostring(i);
                object.event = function(object,event)
                        local num = tonumber(object._select3)
                        local view = object.mainview;
                        local selected = "A";
                        if event == Cevent.mouseover then
                              selected = "5";
                        end
                        if mj_thisselect == num then
                              selected = "4";
                        end               
                        if num ~= nil and tbl_mj ~= nil then
                              this.spText(view.xpos+object.xpos+8,view.ypos+object.ypos+4,9,"$"..selected.. tbl_mj.name .."$0")
                        end
                        
                        if event == Cevent.click then      
                              mj_thisselect = tonumber(object._select3);
                              mj_thisselect_cs = 1;
                        end
                end
               
      end
      
      local object = view.find("mj_bg");
      object.enable = 1;
      object.xpos = 0;
      object.ypos = 0;
      object.event = function(object,event)
                local view = object.mainview;
                this.spText(view.xpos + 407,view.ypos + 75,9,"$4"..tbl_cssetting.."层:"..tbl_mj.name.."$0")
                local itemdata = tbl_mj["itemdata_"..mj_thisselect_cs];
                local tbl = {{425,205},{480,205},{535,205},{425,255},{480,255},{535,255}};
                local is = 1;
                if itemdata ~= nil then
                        for k,v in ipairs(itemdata) do
                              if v ~= nil then
                                        this.spImage(view.xpos + tbl -24 ,view.ypos + tbl -22,tonumber(v));                                                
                                        is = is + 1;
                              end
                        
                        end
                end      
                local close = view.find("myclose_test_close");      
                this.spImage(view.xpos + close.xpos + 5,view.ypos + close.ypos + 6 ,close.imageID);      
      end
      local object = view.find("ditutu");
      object.enable = 1;
      object.xpos = 130;
      object.ypos = 60;
      object.event = function(object,event)
                object.id = tbl_mj.mapid;
      end
      local object = view.find("mj_huain");
      object.enable = 1;
      object.xpos = 470;
      object.ypos = 270;
      object.event = function(object,event)
                local selected = "4";
                if event == Cevent.mouseover then
                        selected = "5";
                end
                if event == Cevent.click then      
                        -- 向服务器请求挑战
                        Cli.Send("MJWARP:"..mj_thisselect..":"..mj_thisselect_cs);      
                end      
                        
                this.spText(view.xpos+object.xpos-95,view.ypos+object.ypos+4,9,"$B本日还剩 $6"..mj_sycs.." $B次$0")
                this.spText(view.xpos+object.xpos+9,view.ypos+object.ypos+4,9,"$"..selected.."开始挑战$0")
      end

      view.sizex = 588;
      view.sizey = 339;      
      view.pxpos = 588;
end


Cli.Send().wait["MIKING_RET1"] = function (tbl)
    mj_sycs = tonumber(tbl["res"])                     
end

Cli.Send().wait["MIKING_RET2"] = function (tbl)
      -- 等待服务器发送数据
    tbl_mj = tbl;
      -- 打开窗体
      new.ShowView(101,Myrw_init)                        
end

服务端:

function Split3(szFullString, szSeparator)
local nFindStartIndex = 1
local nSplitIndex = 1
local nSplitArray = {}
while true do
   local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
   if not nFindLastIndex then
    nSplitArray = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
    break
   end
   nSplitArray = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
   nFindStartIndex = nFindLastIndex + string.len(szSeparator)
   nSplitIndex = nSplitIndex + 1
end
return nSplitArray
end


tiaozhuanjuanID = 751751;--每次进入秘境所需道具

tbl_mj =
{
       = {
                ["name"] = "森林秘境",--名字
                ["mapid"] = "huayao.bmp",--图片
                ["itemdata_1"] = {1002970,27312,27442},--奖励图档
                ["itemdatainfo_1"] = {"$6人和宠经验","$6怪物料理*2","$6宠物洗档卷*1"},--奖励名字
                ["itemdata_2"] = {1002970,27547,470440},
                ["itemdatainfo_2"] = {"$6人和宠经验","$6[宠装]花妖蜜晶石","$6魔能宝石*20"},
                ["itemdata_3"] = {1002970,480384},
                ["itemdatainfo_3"] = {"$6人和宠经验","$6樱桃布丁宠物蛋"},
                ["itemdata_4"] = {1002970,470339},
                ["itemdatainfo_4"] = {"$6人和宠经验","$6箭鞘"},
                ["itemdata_5"] = {1002970,1001929,27442},
                ["itemdatainfo_5"] = {"$6人和宠经验","$6初级彩色羽毛*20","$6宠物洗档卷*5"},
                ["itemdata_6"] = {1002970,480668,480630},
                ["itemdatainfo_6"] = {"$6人和宠经验","$6宠物重来种子礼包","$6[魂卡]穴熊"},
                ["dqcs"] = 1,
                ["warp_1"] = {1131,111,31},--传送坐标
                ["warp_2"] = {1132,74,246},
                ["warp_3"] = {1133,8,16},
                ["warp_4"] = {1138,8,16},
                ["warp_5"] = {1136,8,28},
                ["warp_6"] = {1137,8,28},
      },
      
       = {
                ["name"] = "砂石秘境",
                ["mapid"] = "shashi.bmp",
                ["itemdata_1"] = {1002970,99044,1001929},
                ["itemdatainfo_1"] = {"$6人和宠经验","$6[宠技]炎袭玉","$6初级彩色羽毛*10"},
                ["itemdata_2"] = {1002970,480664,1001928},
                ["itemdatainfo_2"] = {"$6人和宠经验","$6宠物变身卡礼包","$6中级彩色羽毛*5"},
                ["itemdata_3"] = {1002970,99699,26537},
                ["itemdatainfo_3"] = {"$6人和宠经验","$6冰蓝冰晶的碎片","$6Q零件碎片"},
                ["itemdata_4"] = {1002970,98502},
                ["itemdatainfo_4"] = {"$6人和宠经验","$6宝石鼠都腿骨"},
                ["itemdata_5"] = {1002970,1003173},
                ["itemdatainfo_5"] = {"$6人和宠经验","$6魔币箱"},
                ["itemdata_6"] = {1002970,99044,480937,480629,480609},
                ["itemdatainfo_6"] = {"$6人和宠经验","$6[宠技]森之气功弹","$6骑士六转卷","$6[魂卡]火焰鼠","$6[魂卡]大地鼠"},
                ["dqcs"] = 0,
                ["warp_1"] = {1141,30,22},
                ["warp_2"] = {1144,15,38},
                ["warp_3"] = {1142,10,18},
                ["warp_4"] = {1125,54,49},
                ["warp_5"] = {1123,10,9},
                ["warp_6"] = {1149,10,20},
      },
       = {
                ["name"] = "火焰秘境",
                ["mapid"] = "huoyan.bmp",
                ["itemdata_1"] = {470025},
                ["itemdatainfo_1"] = {"$6当前没有开放"},
                ["itemdata_2"] = {470025},
                ["itemdatainfo_2"] = {"$6当前没有开放"},
                ["itemdata_3"] = {470025},
                ["itemdatainfo_3"] = {"$6当前没有开放"},
                ["itemdata_4"] = {470025},
                ["itemdatainfo_4"] = {"$6当前没有开放"},
                ["itemdata_5"] = {470025},
                ["itemdatainfo_5"] = {"$6当前没有开放"},
                ["itemdata_6"] = {470025},
                ["itemdatainfo_6"] = {"$6当前没有开放"},
                ["dqcs"] = 0,
                ["warp_1"] = nil,
                ["warp_2"] = nil,
                ["warp_3"] = nil,
                ["warp_4"] = nil,
                ["warp_5"] = nil,
                ["warp_6"] = nil,
      },
       = {
                ["name"] = "寒冰秘境",
                ["mapid"] = "hanbing.bmp",
                ["itemdata_1"] = {470025},
                ["itemdatainfo_1"] = {"$6当前没有开放"},
                ["itemdata_2"] = {470025},
                ["itemdatainfo_2"] = {"$6当前没有开放"},
                ["itemdata_3"] = {470025},
                ["itemdatainfo_3"] = {"$6当前没有开放"},
                ["itemdata_4"] = {470025},
                ["itemdatainfo_4"] = {"$6当前没有开放"},
                ["itemdata_5"] = {470025},
                ["itemdatainfo_5"] = {"$6当前没有开放"},
                ["itemdata_6"] = {470025},
                ["itemdatainfo_6"] = {"$6当前没有开放"},
                ["dqcs"] = 0,
                ["warp_1"] = nil,
                ["warp_2"] = nil,
                ["warp_3"] = nil,
                ["warp_4"] = nil,
                ["warp_5"] = nil,
                ["warp_6"] = nil,
      },
       = {
                ["name"] = "黑暗秘境",
                ["mapid"] = "heian.bmp",
                ["itemdata_1"] = {470025},
                ["itemdatainfo_1"] = {"$6当前没有开放"},
                ["itemdata_2"] = {470025},
                ["itemdatainfo_2"] = {"$6当前没有开放"},
                ["itemdata_3"] = {470025},
                ["itemdatainfo_3"] = {"$6当前没有开放"},
                ["itemdata_4"] = {470025},
                ["itemdatainfo_4"] = {"$6当前没有开放"},
                ["itemdata_5"] = {470025},
                ["itemdatainfo_5"] = {"$6当前没有开放"},
                ["itemdata_6"] = {470025},
                ["itemdatainfo_6"] = {"$6当前没有开放"},
                ["dqcs"] = 0,
                ["warp_1"] = nil,
                ["warp_2"] = nil,
                ["warp_3"] = nil,
                ["warp_4"] = nil,
                ["warp_5"] = nil,
                ["warp_6"] = nil,
      },
       = {
                ["name"] = "星灵秘境",
                ["mapid"] = "xingling.bmp",
                ["itemdata_1"] = {470025},
                ["itemdatainfo_1"] = {"$6当前没有开放"},
                ["itemdata_2"] = {470025},
                ["itemdatainfo_2"] = {"$6当前没有开放"},
                ["itemdata_3"] = {470025},
                ["itemdatainfo_3"] = {"$6当前没有开放"},
                ["itemdata_4"] = {470025},
                ["itemdatainfo_4"] = {"$6当前没有开放"},
                ["itemdata_5"] = {470025},
                ["itemdatainfo_5"] = {"$6当前没有开放"},
                ["itemdata_6"] = {470025},
                ["itemdatainfo_6"] = {"$6当前没有开放"},
                ["dqcs"] = 0,
                ["warp_1"] = nil,
                ["warp_2"] = nil,
                ["warp_3"] = nil,
                ["warp_4"] = nil,
                ["warp_5"] = nil,
                ["warp_6"] = nil,
      }
}


function tbl_copy(orig)
    local orig_type = type(orig)
    local copy
    if orig_type == "table" then
      copy = {}
      for orig_key, orig_value in next, orig, nil do
            copy = tbl_copy(orig_value)
      end
    else -- number, string, boolean, etc
      copy = orig
    end
    return copy
end


Delegate.RegDelTalkEvent("mijingTalkEvent");



function mijingTalkEvent(player,msg,color,range,size)
      

      if(msg == "123") then
                local retbl1 = {
                        ["res"] = Char.ItemNum(player,tiaozhuanjuanID);
                }
                Protocol.PowerSend(player,"MIKING_RET1",retbl1)
               
                local tbl_mj2 = tbl_copy(tbl_mj)
      
                for i=1,#tbl_mj do
                        
                        local dqcs = Field.Get(player,"MKTZ_"..i);
                        
                        if tonumber(dqcs) == nil then
                              if i == 1 then
                                        Field.Set(player,"MKTZ_"..i,"1");
                              else
                                        Field.Set(player,"MKTZ_"..i,"0");
                              end
                              --tbl_mj2["dqcs"] = tonumber(dqcs);
                              --NLG.SystemMessage(player, dqcs)
                        else
                              --NLG.SystemMessage(player, dqcs)
                              tbl_mj2["dqcs"] = tonumber(dqcs);
                        end
                end
               
                Protocol.PowerSend(player,"MIKING_RET2",tbl_mj2)
      end
      
end

function Event.Recv.mijing(player,packet)
      if string.find(packet,"MJWARP:") then
                        
                        --NLG.SystemMessage(player, packet)
            local sv = Split3(packet,":")
                        if tbl_mj)]["warp_"..sv] ~= nil then
                              
                              
                              local dqcs = Field.Get(player,"MKTZ_"..sv);
                              if tonumber(dqcs) < tonumber(sv) then
                                        NLG.SystemMessage(player, "您还未能开启本副本的挑战。")
                                        return
                              end
                                       
                              -- 道具是否足够
                              if Char.ItemNum(player,tiaozhuanjuanID) > 0 then
                                        Char.DelItem(player,tiaozhuanjuanID,1)
                              else
                                        NLG.SystemMessage(player, "您的挑战道具不足。")
                                        return
                              end
                              
                              Char.DischargeParty(player)
                              local warpinfo = tbl_mj)]["warp_"..sv];
                              Char.Warp(player,0,warpinfo,warpinfo,warpinfo);
                              NLG.SystemMessage(player, "已成功进入副本。")
                        else
                              NLG.SystemMessage(player, "此副本尚未开放。")
                        end
      end
end
相关下载地址:点击下载


yangxudou 发表于 2022-3-4 10:49:12


希望论坛越办越好,会员越来越多,越来越活跃
页: [1]
查看完整版本: [免费]秘境挑战