魔力宝贝

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

[GP] JSSR-systran4.lua--材料寄售商人(食材箱)

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
local systrannpcmetamo = 106152 --寄售Npc形象
local systrannpcmap = 60005 --寄售Npc所在地图
local systrannpcposx = 42 --寄售Npc x坐标
local systrannpcposy = 18 --寄售Npc y坐标
local systrannpcdir = 6 --寄售Npc方向
local systrannpcname = "食材箱寄售商人" --寄售Npc名字
local maxgold = 100000000 --服务器最大金币数量
local filetree = "./lua/luatxt/caiji/systran4.txt" --文件路径

local inta = { --可寄售的物品列表
                                {"装满『鸡蛋』的盒子",39629,2000,100,1,0,0,1},
                                {"装满『小麦粉』的盒子",39603,2000,100,1,0,0,1},
                                {"装满『葱』的盒子",39606,2250,100,1,0,0,1},
                                {"装满『牛奶』的盒子",39604,2250,100,1,0,0,1},
                                {"装满『青椒』的盒子",39628,2250,100,1,0,0,1},
                                {"装满『酱油』的盒子",39607,2750,100,1,0,0,1},
                                {"装满『盐』的盒子",39605,2750,100,1,0,0,1},
                                {"装满『芹菜』的盒子",39608,3250,100,1,0,0,1},
                                {"装满『鸡肉』的盒子",39609,3250,100,1,0,0,1},
                                {"装满『竹笋』的盒子",39610,3250,100,1,0,0,1},
                                {"装满『海苔』的盒子",39611,3250,100,1,0,0,1},
                                {"装满『牛肉』的盒子",39612,3750,100,1,0,0,1},
                                {"装满『星鳗』的盒子",39613,3750,100,1,0,0,1},
                                {"装满『姜』的盒子",39614,3750,100,1,0,0,1},
                                {"装满『马铃薯』的盒子",39616,3750,100,1,0,0,1},
                                {"装满『胡椒』的盒子",39615,3750,100,1,0,0,1},
                                {"装满『米』的盒子",39618,2875,100,1,0,0,1},
                                {"装满『高级奶油』的盒子",39619,10000,100,1,0,0,1},
                                {"装满『辣椒』的盒子",39620,10000,100,1,0,0,1},
                                {"装满『咖哩块』的盒子",39621,10000,100,1,0,0,1},
                                {"装满『螃蟹』的盒子",39622,12250,100,1,0,0,1},
                                {"装满『霜降牛肉』的盒子",39623,12250,100,1,0,0,1},
                                {"装满『伊势虾』的盒子",39624,18250,100,1,0,0,1},
                                {"装满『海胆』的盒子",39625,18250,100,1,0,0,1},
                                {"装满『鱼翅』的盒子",39626,18250,100,1,0,0,1},
                                {"装满『鳖』的盒子",39627,35000,100,1,0,0,1},
}

----------------------------------
Global_Reg.RegInit("systranvalue254A");

function systranvalue254A()
        systranvalue254B();
        return 0;
end

function systranvalue254B(npc)
        if npc == nil or npc < 0 then
        npc = NL.CreateNpc(nil,"systranvalue254C")
        end
        Char.SetData(npc,%对象_形象%,systrannpcmetamo)
        Char.SetData(npc,%对象_原形%,systrannpcmetamo)
        Char.SetData(npc,%对象_地图%,systrannpcmap)
        Char.SetData(npc,%对象_X%,systrannpcposx)
        Char.SetData(npc,%对象_Y%,systrannpcposy)
        Char.SetData(npc,%对象_方向%,systrannpcdir)
        Char.SetData(npc,%对象_原名%,systrannpcname)
        NLG.UpChar(npc)
        LuaNpcIndex["systranvalue254"]=npc;
        InstallNpc("systranvalue254",npc);
        Char.SetTalkedEvent(nil, "systranvalue174",npc)
        Char.SetWindowTalkedEvent(nil,"systranvalue194",npc)
        return true
end

function systranvalue254C(index)
        return true;
end

function systranvalue174(npc,player)
        if NLG.CanTalk(npc,player) == false then
                return
        end
        local systranvalue18 = "2\n这些是从玩家手中采购到的食材,便宜卖了~\n"
        for i = 1,6 do
                if type(inta[i]) == "table" then
                        systranvalue18 = systranvalue18.."\n"..i..". "..inta[i][1].."("..systranvalue4(inta[i][2]).."/"..inta[i][4]..")"
                else
                        systranvalue18 = systranvalue18.."\n"..i..". 无"
                end
        end
        NLG.ShowWindowTalked(player,2,34,1000,systranvalue18,npc)
end
function systranvalue194(npc,player,Seqno,Select,Data)
        if NLG.CanTalk(npc,player) == false then
                return
        end
        if Select ~= 2 then
                if Seqno < 1000 then
                        local systranvalue20 = Seqno
                        if type(inta[systranvalue20]) == "table" then
                                if tonumber(Data) ~= nil then                                       
                                        local systranvalue21 = systranvalue4(inta[systranvalue20][2])
                                        local systranvalue22
                                        local systranvalue23
                                        if inta[systranvalue20][5] == 1 then
                                                systranvalue22 = math.floor(systranvalue15(systranvalue21,inta[systranvalue20][4])*inta[systranvalue20][3])
                                                systranvalue23 = math.floor(systranvalue16(systranvalue21,inta[systranvalue20][4])*inta[systranvalue20][3])
                                        else
                                                systranvalue22 = inta[systranvalue20][3]
                                                systranvalue23 = inta[systranvalue20][3]
                                        end
                                        if tonumber(Data) == 1 then
                                                if systranvalue12(player,systranvalue23) >= 0 then
                                                        if Char.ItemNum(player,inta[systranvalue20][2]) >= inta[systranvalue20][8] then
                                                                if systranvalue21 < inta[systranvalue20][4] then
                                                                        systranvalue9(inta[systranvalue20][2],systranvalue21+1)
                                                                elseif inta[systranvalue20][7] ~= 1 then
                                                                        NLG.SystemMessage(player,"此道具不支持满库存收购。")
                                                                        return
                                                                end
                                                                Char.DelItem(player,inta[systranvalue20][2],inta[systranvalue20][8])
                                                                systranvalue1(player,systranvalue23)
                                                        else
                                                                NLG.SystemMessage(player,"你没有可出售的道具。")
                                                        end
                                                else
                                                        NLG.SystemMessage(player,"你的钱太多了。")
                                                end
                                        elseif tonumber(Data) == 2 then
                                                if systranvalue12(player,-systranvalue22) >= 0 then
                                                        if Char.FindEmptyItemBox(player) > 0 then
                                                                if systranvalue21 > 0 then
                                                                        systranvalue9(inta[systranvalue20][2],systranvalue21-1)
                                                                elseif inta[systranvalue20][6] ~= 1 then
                                                                        NLG.SystemMessage(player,"此道具不支持无库存出售。")
                                                                        return
                                                                end
                                                                systranvalue1(player,-systranvalue22)
                                                                Char.GiveItem(player,inta[systranvalue20][2],inta[systranvalue20][8])
                                                        else
                                                                NLG.SystemMessage(player,"你的东西太多了。")
                                                        end
                                                else
                                                        NLG.SystemMessage(player,"你的钱不够。")
                                                end
                                               
                                        end
                                end
                        else
                                NLG.SystemMessage(player,"请您重新选择正确的内容。")
                        end
                else
                        if tonumber(Data) == -2 then
                                local systranvalue18 = "2\n这些是从玩家手中采购到的食材,便宜卖了~\n"
                                local systranvalue20 = math.floor(Seqno/1000)
                                local systranvalue24 = 50
                                if Select == 32 then
                                        systranvalue20 = systranvalue20+1
                                        if systranvalue20*6 >= #inta then
                                                systranvalue24 = 18
                                        end
                                elseif Select == 16 then
                                        systranvalue20 = systranvalue20-1
                                        if systranvalue20 == 1 then
                                                systranvalue24 = 34
                                        end
                                end
                                for i = 1,6 do
                                        if type(inta[(i+(systranvalue20-1)*6)]) == "table" then
                                                systranvalue18 = systranvalue18.."\n"..(i+(systranvalue20-1)*6)..". "..inta[(i+(systranvalue20-1)*6)][1].."("..systranvalue4(inta[(i+(systranvalue20-1)*6)][2]).."/"..inta[(i+(systranvalue20-1)*6)][4]..")"
                                        else
                                                systranvalue18 = systranvalue18.."\n"..(i+(systranvalue20-1)*6)..". 无"
                                        end
                                end
                                NLG.ShowWindowTalked(player,2,systranvalue24,systranvalue20*1000,systranvalue18,npc)
                        else
                                if tonumber(Data) ~= nil and tonumber(Data) > 0 then
                                        local systranvalue20 = (math.floor(Seqno/1000)-1)*6 + tonumber(Data)
                                        if type(inta[systranvalue20]) == "table" then
                                                local systranvalue21 = systranvalue4(inta[systranvalue20][2])
                                                local systranvalue22
                                                local systranvalue23
                                                if inta[systranvalue20][5] == 1 then
                                                        systranvalue22 = math.floor(systranvalue15(systranvalue21,inta[systranvalue20][4])*inta[systranvalue20][3])
                                                        systranvalue23 = math.floor(systranvalue16(systranvalue21,inta[systranvalue20][4])*inta[systranvalue20][3])
                                                else
                                                        systranvalue22 = inta[systranvalue20][3]
                                                        systranvalue23 = inta[systranvalue20][3]
                                                end
                                                local systranvalue18 = "6\n您选择了:"..inta[systranvalue20][1].."(每份"..inta[systranvalue20][8].."个) \n当前库存:"..systranvalue21.."份(上限"..inta[systranvalue20][4].."份)\n系统收购价:"..systranvalue23.." 系统售价:"..systranvalue22.."\n"
                                                if inta[systranvalue20][6] == 1 then
                                                        systranvalue18 = systranvalue18.."本物品无库存也可以购买,"
                                                else
                                                        systranvalue18 = systranvalue18.."本物品只在有库存时销售,"
                                                end
                                                if inta[systranvalue20][7] == 1 then
                                                        systranvalue18 = systranvalue18.."满库存也继续收购。\n"
                                                else
                                                        systranvalue18 = systranvalue18.."满库存时停止收购。\n"
                                                end
                                                if inta[systranvalue20][5] == 1 then
                                                        systranvalue18 = systranvalue18.."*价格随存货数量自动调整。"
                                                else
                                                        systranvalue18 = systranvalue18.."*价格固定不变。"
                                                end
                                                systranvalue18 = systranvalue18.."\n\n我确认将其出售给系统\n我确认购买此物品"
                                                NLG.ShowWindowTalked(player,2,2,systranvalue20,systranvalue18,npc)
                                        else
                                                NLG.SystemMessage(player,"请您重新选择正确的内容。")
                                        end
                                end
                        end
                end
        end
end

回复

使用道具 举报

Archiver|魔力研究社

GMT+8, 2025-5-15 17:35 , Processed in 0.123283 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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