迷你世界脚本UI五子棋小游戏

 

 

wzq_jm = "7477124677881080183-22855"--界面id
wzq_jmjxh = "7477124677881080183-22855_"--界面加下划线
wzq_tc = "7477124677881080183-22855_262"--退出按钮id
wzq_hdlt1 = "7477124677881080183-22855_267"--互动聊天按钮  快点吧,我等的花都谢了!
wzq_hdlt2 = "7477124677881080183-22855_269"--互动聊天按钮  你太厉害了,容我想想!
wzq_hdlt3 = "7477124677881080183-22855_271"--互动聊天按钮  不要走,决战到天亮!
wzq_hdlt4 = "7477124677881080183-22855_273"--互动聊天按钮  小心,我要认真了!
wzq_djswbxs = "7477124677881080183-22855_266"--倒计时显示文本id
wzq_hztp = "8_1852352887_1740837643"--黑子图片
wzq_bztp = "8_1852352887_1740837635"--白子图片
wzq_kbtp = "8_1852352887_1734444546"--空白图片

wzq_hdwjid = "互动玩家"--玩家变量 6 (互动玩家账号)
wzq_wjzsx = "结算分数"--数值变量 3
wzq_wjhbpd = "五子棋黑白"--数值变量 3  黑1白2

wza_djszt = 50000000 --五子棋状态180秒

wzq_qpan = {--棋盘按钮
    [1]={3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},
    [2]={18,19,20,21,22,23,24,25,26,27,28,29,30,31,32},
    [3]={33,34,35,36,37,38,39,40,41,42,43,44,45,46,47},
    [4]={48,49,50,51,52,53,54,55,56,57,58,59,60,61,62},
    [5]={63,64,65,66,67,68,69,70,71,72,73,74,75,76,77},
    [6]={78,79,80,81,82,83,84,85,86,87,88,89,90,91,92},
    [7]={93,94,95,96,97,98,99,100,101,102,103,104,105,106,107},
    [8]={108,109,110,111,112,113,114,115,116,117,118,119,120,121,122},
    [9]={123,124,125,126,127,128,129,130,131,132,133,134,135,136,137},
    [10]={138,139,140,141,142,143,144,145,146,147,148,149,150,151,152},
    [11]={153,154,155,156,157,158,159,160,161,162,163,164,165,166,167},
    [12]={168,169,170,171,172,173,174,175,176,177,178,179,180,181,182},
    [13]={183,184,185,186,187,188,189,190,191,192,193,194,195,196,197},
    [14]={198,199,200,201,202,203,204,205,206,207,208,209,210,211,212},
    [15]={213,214,215,216,217,218,219,220,221,222,223,224,225,226,227},
};

wzq_wjczb = {};
--------------------------------------------------------------------------------
function wzq_wjdkjm(e)--玩家打开界面
    local pid = e.eventobjid
    wzq_dkjmcsh(pid)--界面初始化
    if e.CustomUI == wzq_jm then
        local result,value = VarLib2:getPlayerVarByName(pid,6,wzq_hdwjid)--获取私有变量 6
        local result1,value1 = VarLib2:getPlayerVarByName(pid,3,wzq_wjhbpd)--获取私有变量是黑白 3
        wzq_wjczb[pid] = {
            [1]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [2]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [3]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [6]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [7]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [8]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [9]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [10]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [11]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [12]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [13]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            [16]=value,--对方id
            [17]=0,--打断读秒 1打断 
            [18]=0,--出手判定(0不出手1出手)
            [19]=0,--胜利判定(1胜利 2失败)
            [20]=0,--快捷语cd  5秒
        };
        if value1 == 1 then 
            wzq_wjczb[pid][18]=1
            Player:notifyGameInfo2Self(pid,"请落子!")
            local code  = Buff:addBuff(pid, wza_djszt, 1, 3600)--给予状态3600就是180秒
        end
    end
end
--------------------------------------------------------------------------------
function wzq_jmgb(e)--界面关闭
    local pid =  e.eventobjid
    if e.CustomUI == wzq_jm then
        local code  = Buff:removeBuff(pid, wza_djszt)--给对象移除指定效果
        local code1  = Buff:removeBuff(wzq_wjczb[pid][16], wza_djszt)--给对象移除指定效果
        wzq_wjczb[pid][17] = 1
        wzq_wjczb[wzq_wjczb[pid][16]][17] = 1
        table.remove(wzq_wjczb,pid);--玩家
    end
end
--------------------------------------------------------------------------------
function wzq_dkjmcsh(pid)--界面初始化
    for i=1,15 do
        for j=1,15 do 
            Customui:setTexture(pid, wzq_jm, wzq_jmjxh..wzq_qpan[i][j], wzq_kbtp)--设置玩家的图片元件的图案
        end
    end
end
--------------------------------------------------------------------------------
function wzq_wjxa(pid, dfpid, pai, lie)--下棋运行1自己2对方3排4列
    if wzq_wjczb[pid][18] == 1 then 
        wzq_wjczb[pid][18]=0
        local resultq,valueq = VarLib2:getPlayerVarByName(pid,3,wzq_wjhbpd)--获取私有变量 自己是什么棋子 3
        if wzq_wjczb[pid][pai][lie] ==0 then
            if valueq == 1 then --黑
                Customui:setTexture(dfpid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], wzq_hztp)--设置玩家的图片元件的图案 黑
                Customui:setTexture(pid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], wzq_hztp)--设置玩家的图片元件的图案  黑
                local code  = Customui:PlayElementAnim(dfpid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], 30003, 1, 2)

                wzq_wjczb[pid][pai][lie]=1
                wzq_wjczb[dfpid][pai][lie]=1
                wzq_sljc(pid, pai, lie, dfpid,1)--检测是否胜利 1自己2排3列4对方5是什么子(1黑2白)
                wzq_wjczb[pid][17]=1
                wzq_wjczb[dfpid][17]=0
                threadpool:wait(0.1);
                --local code1 = Buff:removeBuff(pid, wza_djszt)-- 给对象移除指定效果
                local code  = Buff:addBuff(dfpid, wza_djszt, 1, 3600)--给予状态
                wzq_wjczb[dfpid][18]=1
            elseif valueq == 2 then --白
                Customui:setTexture(dfpid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], wzq_bztp)--设置玩家的图片元件的图案  白
                Customui:setTexture(pid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], wzq_bztp)--设置玩家的图片元件的图案  白
                local code  = Customui:PlayElementAnim(dfpid, wzq_jm, wzq_jmjxh..wzq_qpan[pai][lie], 30003, 1, 2)

                wzq_wjczb[pid][pai][lie]=2
                wzq_wjczb[dfpid][pai][lie]=2
                wzq_sljc(pid, pai, lie, dfpid,2)--检测是否胜利 1自己2排3列4对方5是什么子(1黑2白)
                wzq_wjczb[pid][17]=1
                wzq_wjczb[dfpid][17]=0
                threadpool:wait(0.1);
                --local code1 = Buff:removeBuff(pid, wza_djszt)-- 给对象移除指定效果
                local code  = Buff:addBuff(dfpid, wza_djszt, 1, 3600)--给予状态
                wzq_wjczb[dfpid][18]=1
            end
        else
            Player:notifyGameInfo2Self(pid,"位置上有棋子!")
            wzq_wjczb[pid][18]=1
        end
    else
        Player:notifyGameInfo2Self(pid,"等待对方还没落子!")
    end
end
--------------------------------------------------------------------------------
function wzq_sljc(pid, pai, lie, dfpid,hb)--检测是否胜利 1自己2排3列4对方5是什么子(1黑2白)
    local zxp, zxl = pai + 4, lie - 4
    local yxp, yxl = pai + 4, lie + 4
    local sxsl = 0
    local zysl = 0
    local zxsl = 0
    local yxsl = 0
    for j=4,1,-1 do 
        if pai + j > 15 or lie - j < 0 then 
            zxp, zxl = pai + (j-1), lie - (j-1)
        end
        if pai + j > 15 or lie + j > 15 then 
            yxp, yxl = pai + (j-1), lie + (j-1)
        end
    end
    threadpool:wait(0.0001);
    for i=15, 1,-1 do
        if wzq_wjczb[pid][i][lie] == hb then--从下往上
            sxsl = sxsl + 1
            if sxsl >= 5 then
                wza_sljsjs(pid, dfpid)--胜利结算
                return;
            end
        else
            sxsl = 0
        end
        if wzq_wjczb[pid][pai][i] == hb then--从右往左
            zysl = zysl + 1
            if zysl >= 5 then
                wza_sljsjs(pid, dfpid)--胜利结算
                return;
            end
        else
            zysl = 0
        end
        if wzq_wjczb[pid][zxp][zxl] == hb then--从左下往又上
            zxsl = zxsl + 1
            if zxsl >= 5 then
                wza_sljsjs(pid, dfpid)--胜利结算
                return;
            end
        else
            zxsl = 0
        end
        if wzq_wjczb[pid][yxp][yxl] == hb then--从右下往左上
            yxsl = yxsl + 1
            if yxsl >= 5 then
                wza_sljsjs(pid, dfpid)--胜利结算
                return;
            end
        else
            yxsl = 0
        end
        
        if zxp <= 1 or zxl >= 15 then 
            zxp, zxl = zxp, zxl
            zxsl = 0
        else
            zxp, zxl = zxp - 1, zxl + 1
        end
        if yxp <= 1 or yxl <= 1 then 
            yxp, yxl = yxp, yxl
            yxsl = 0
        else
            yxp, yxl = yxp - 1, yxl - 1
        end
    end
end
--------------------------------------------------------------------------------
function wza_sljsjs(pid, dfpid)--胜利结算
    local result2,value = VarLib2:getPlayerVarByName(pid,3,wzq_wjzsx)--获取私有积分变量 3
    local result3 = VarLib2:setPlayerVarByName(pid,3,wzq_wjzsx,value+1000)--设置私有数值
    Player:notifyGameInfo2Self(dfpid,"你失败了!")
    Player:notifyGameInfo2Self(pid,"胜利了,积分+1千!")
    wzq_wjczb[pid][17] = 1
    wzq_wjczb[dfpid][17] = 1
    Player:hideUIView(pid,wzq_jm)--给玩家隐藏界面
    Player:hideUIView(dfpid,wzq_jm)--给玩家隐藏界面
end
--------------------------------------------------------------------------------
function wza_kjycd(pid)--快捷语cd
    for i=1,wzq_wjczb[pid][20] do 
        wzq_wjczb[pid][20] = wzq_wjczb[pid][20] - 1
        threadpool:wait(1);
    end
end
--------------------------------------------------------------------------------
function wzq_djan(e)--点击按钮
    local pid = e.eventobjid
    if e.CustomUI == wzq_jm then 
        local results,names=Player:getNickname(pid)--获取玩家昵称
        if e.uielement == wzq_hdlt1 then 
            if wzq_wjczb[pid][20] <= 0 then 
                Chat:sendSystemMsg(names..":#G快点吧,我等的花都谢了!")
                wzq_wjczb[pid][20] = 5
                wza_kjycd(pid)--快捷语cd
            else
                Player:notifyGameInfo2Self(pid,"等待"..tostring(wzq_wjczb[pid][20]).."秒后可以使用!")
            end
        elseif e.uielement == wzq_hdlt2 then
            if wzq_wjczb[pid][20] <= 0 then 
                Chat:sendSystemMsg(names..":#G你太厉害了,容我想想!!")
                wzq_wjczb[pid][20] = 5
                wza_kjycd(pid)--快捷语cd
            else
                Player:notifyGameInfo2Self(pid,"等待"..tostring(wzq_wjczb[pid][20]).."秒后可以使用!")
            end
        elseif e.uielement == wzq_hdlt3 then
            if wzq_wjczb[pid][20] <= 0 then 
                Chat:sendSystemMsg(names..":#G不要走,决战到天亮!")
                wzq_wjczb[pid][20] = 5
                wza_kjycd(pid)--快捷语cd
            else
                Player:notifyGameInfo2Self(pid,"等待"..tostring(wzq_wjczb[pid][20]).."秒后可以使用!")
            end
        elseif e.uielement == wzq_hdlt4 then
            if wzq_wjczb[pid][20] <= 0 then 
                Chat:sendSystemMsg(names..":#G小心,我要认真了!")
                wzq_wjczb[pid][20] = 5
                wza_kjycd(pid)--快捷语cd
            else
                Player:notifyGameInfo2Self(pid,"等待"..tostring(wzq_wjczb[pid][20]).."秒后可以使用!")
            end
        elseif e.uielement == wzq_tc then--退出
            local hdwj = wzq_wjczb[pid][16]
            local result2,value = VarLib2:getPlayerVarByName(hdwj,3,wzq_wjzsx)--获取私有积分变量 3
            local result3 = VarLib2:setPlayerVarByName(hdwj,3,wzq_wjzsx,value+1000)--设置私有数值
            Player:notifyGameInfo2Self(hdwj,"对方退出,你胜利了,积分+1千!")
            Player:notifyGameInfo2Self(pid,"中途退出,判定失败!")
            wzq_wjczb[pid][17] = 1
            wzq_wjczb[hdwj][17] = 1
            Player:hideUIView(pid,wzq_jm)--给玩家隐藏界面
            Player:hideUIView(hdwj,wzq_jm)--给玩家隐藏界面
            
        else
            local hdwja = wzq_wjczb[pid][16]
            for i = 1, 15 do 
                if e.uielement == wzq_jmjxh..wzq_qpan[i][1] then
                    wzq_wjxa(pid, hdwja, i, 1)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][2] then
                    wzq_wjxa(pid, hdwja, i, 2)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][3] then
                    wzq_wjxa(pid, hdwja, i, 3)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][4] then
                    wzq_wjxa(pid, hdwja, i, 4)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][5] then
                    wzq_wjxa(pid, hdwja, i, 5)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][6] then
                    wzq_wjxa(pid, hdwja, i, 6)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][7] then
                    wzq_wjxa(pid, hdwja, i, 7)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][8] then
                    wzq_wjxa(pid, hdwja, i, 8)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][9] then
                    wzq_wjxa(pid, hdwja, i, 9)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][10] then
                    wzq_wjxa(pid, hdwja, i, 10)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][11] then
                    wzq_wjxa(pid, hdwja, i, 11)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][12] then
                    wzq_wjxa(pid, hdwja, i, 12)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][13] then
                    wzq_wjxa(pid, hdwja, i, 13)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][14] then
                    wzq_wjxa(pid, hdwja, i, 14)--下棋运行1自己2对方3排4列
                    return;
                elseif e.uielement == wzq_jmjxh..wzq_qpan[i][15] then
                    wzq_wjxa(pid, hdwja, i, 15)--下棋运行1自己2对方3排4列
                    return;
                end
            end
        end
    end
end
--------------------------------------------------------------------------------
function wza_wjhdzt(e)
    local pid = e.eventobjid
    if e.buffid == wza_djszt then
        local dfpid = wzq_wjczb[pid][16]
        for i = 1,181 do
            local code ,num = Buff:getBuffLeftTime(pid, wza_djszt)--获取状态剩余时间
            Customui:setText(pid, wzq_jm, wzq_djswbxs, tostring(math.ceil(num)))--1玩家id,2界面id,3元件id,4文本内容
            Customui:setText(dfpid, wzq_jm, wzq_djswbxs, tostring(math.ceil(num)))--1玩家id,2界面id,3元件id,4文本内容
            if wzq_wjczb[pid][17] == 1 then
                local code1 = Buff:removeBuff(pid, wza_djszt)-- 给对象移除指定效果 
                return;
            end
            if math.ceil(num) == 1 then
                local result2,value = VarLib2:getPlayerVarByName(dfpid,3,wzq_wjzsx)--获取私有积分变量 3
                local result3 = VarLib2:setPlayerVarByName(dfpid,3,wzq_wjzsx,value+1000)--设置私有数值
                Player:notifyGameInfo2Self(pid,"超时失败了!")
                Player:notifyGameInfo2Self(dfpid,"胜利了,积分+1千!")
                Player:hideUIView(pid,wzq_jm)--给玩家隐藏界面
                Player:hideUIView(dfpid,wzq_jm)--给玩家隐藏界面
            end
            threadpool:wait(1);
        end
    end
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
ScriptSupportEvent:registerEvent([=[UI.Show]=], wzq_wjdkjm)--界面被打开
ScriptSupportEvent:registerEvent([=[UI.Button.Click]=], wzq_djan)--点击按钮
ScriptSupportEvent:registerEvent([=[UI.Hide]=], wzq_jmgb)--界面被关闭
ScriptSupportEvent:registerEvent([=[Player.AddBuff]=], wza_wjhdzt)--玩家获得状态效果
--------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值