local item_cir_dorp_NPC = {100905,"丢地NPC",6,7777,33,33} --NPC详情
----------------------
local item_cir_limit_buy = {}
item_cir_limit_buy[60005]=0
----------------------
item_cir_limit_tab = item_cir_limit_tab or {}
--item_cir_limit_tab[200]=1
item_cir_limit_tab[82201]=1
item_cir_limit_tab[82202]=1
item_cir_limit_tab[82203]=1
item_cir_limit_tab[82204]=1
item_cir_limit_tab[82205]=1
item_cir_limit_tab[82206]=1
item_cir_limit_tab[82207]=1
item_cir_limit_tab[82208]=1
item_cir_limit_tab[82301]=1
item_cir_limit_tab[82302]=1
item_cir_limit_tab[82303]=1
item_cir_limit_tab[82304]=1
item_cir_limit_tab[82305]=1
item_cir_limit_tab[82306]=1
item_cir_limit_tab[82307]=1
item_cir_limit_tab[82308]=1
item_cir_limit_tab[82309]=1
item_cir_limit_tab[82310]=1
item_cir_limit_tab[82401]=1
item_cir_limit_tab[82402]=1
item_cir_limit_tab[82403]=1
item_cir_limit_tab[82404]=1
item_cir_limit_tab[82405]=1
item_cir_limit_tab[82406]=1
item_cir_limit_tab[82407]=1
item_cir_limit_tab[82408]=1
item_cir_limit_tab[82409]=1
item_cir_limit_tab[82410]=1
item_cir_limit_tab[82411]=1
item_cir_limit_tab[82412]=1
item_cir_limit_tab[82413]=1
item_cir_limit_tab[82414]=1
item_cir_limit_tab[82415]=1
item_cir_limit_tab[82501]=1
item_cir_limit_tab[82502]=1
item_cir_limit_tab[82503]=1
item_cir_limit_tab[84201]=1
item_cir_limit_tab[84202]=1
item_cir_limit_tab[84203]=1
item_cir_limit_tab[84204]=1
item_cir_limit_tab[84205]=1
item_cir_limit_tab[84206]=1
item_cir_limit_tab[84207]=1
item_cir_limit_tab[84208]=1
item_cir_limit_tab[84301]=1
item_cir_limit_tab[84302]=1
item_cir_limit_tab[84303]=1
item_cir_limit_tab[84304]=1
item_cir_limit_tab[84305]=1
item_cir_limit_tab[84306]=1
item_cir_limit_tab[84307]=1
item_cir_limit_tab[84308]=1
item_cir_limit_tab[84309]=1
item_cir_limit_tab[84310]=1
item_cir_limit_tab[84401]=1
item_cir_limit_tab[84402]=1
item_cir_limit_tab[84403]=1
item_cir_limit_tab[84404]=1
item_cir_limit_tab[84405]=1
item_cir_limit_tab[84406]=1
item_cir_limit_tab[84407]=1
item_cir_limit_tab[84408]=1
item_cir_limit_tab[84409]=1
item_cir_limit_tab[84410]=1
item_cir_limit_tab[84411]=1
item_cir_limit_tab[84412]=1
item_cir_limit_tab[84413]=1
item_cir_limit_tab[84414]=1
item_cir_limit_tab[84415]=1
item_cir_limit_tab[84501]=1
item_cir_limit_tab[84502]=1
item_cir_limit_tab[84503]=1
item_cir_limit_tab[512283]=1
item_cir_limit_tab[512284]=1
item_cir_limit_tab[513201]=1
item_cir_limit_tab[513202]=1
item_cir_limit_tab[513203]=1
item_cir_limit_tab[513204]=1
item_cir_limit_tab[512294]=1
item_cir_limit_tab[512295]=1
item_cir_limit_tab[512296]=1
item_cir_limit_tab[79438]=1--香
item_cir_limit_tab[79439]=1
item_cir_limit_tab[79444]=1
item_cir_limit_tab[79445]=1
item_cir_limit_tab[79446]=1
item_cir_limit_tab[79761]=1
item_cir_limit_tab[79762]=1
item_cir_limit_tab[79763]=1
item_cir_limit_tab[79764]=1
item_cir_limit_tab[79765]=1
item_cir_limit_tab[79766]=1
item_cir_limit_tab[79767]=1
item_cir_limit_tab[79768]=1
item_cir_limit_tab[79451]=1
------------------------------------------------------------------------------------------禁止丢地,禁止交易,禁止摆摊
Global_Reg.RegInit("limit_item_Script");--自动启动函数
Global_Reg.RegDropItem("item_cir_limit_drop")--丢地触发
local tab_limit_dorp = tab_limit_dorp or {}
function limit_item_Script()
NL.RegTradeList(nil,"item_cir_limit_jiaoyi")
Stall.RegStallStart(nil,"item_cir_limit_baitan1")
Char.WinmoliStall(nil,"item_cir_limit_baitan2")
Stall.RegStallCilck(nil,"new_StallCilckEvent")
limit_item_dorp_NPC()
--Protocol.RegProtocolSend(nil,"All_Protocol_RegProtocolSend")
return 0
end
function new_StallCilckEvent(CharIndex,StallIndex)
local fd = Protocol.GetFdByChar(CharIndex)
Protocol.Send(fd,"ooc ")
return 0
end
function limit_item_dorp_NPC(npc) --NPC设置
if npc == nil then
npc = NL.CreateNpc(nil,"limit_item_dorp_NPC2")
end
Char.SetData(npc,1,item_cir_dorp_NPC[1])
Char.SetData(npc,2,item_cir_dorp_NPC[1])
Char.SetData(npc,2000,item_cir_dorp_NPC[2])
Char.SetData(npc,7,item_cir_dorp_NPC[3])
Char.SetData(npc,4,item_cir_dorp_NPC[4])
Char.SetData(npc,5,item_cir_dorp_NPC[5])
Char.SetData(npc,6,item_cir_dorp_NPC[6])
LuaNpcIndex["item_cir_limit_npc"]=npc;--读取使用用 LuaNpcIndex.bditemdorp_npc 就可以读取对应NPC index
InstallNpc("item_cir_limit_npc",npc);
NLG.UpChar(npc)
Char.SetWindowTalkedEvent(nil,"item_cir_limit_event",npc)
return true
end
function limit_item_dorp_NPC2(index)
return true;
end
function item_cir_limit_event(npc,player,_SqeNo,_select,_data)
if _select ~= 2 then
if _SqeNo==0 then
if _select==1 then
local playerCDK = Char.GetData(player,2002)
local RegistNumber = Char.GetData(player,48)
local tkey=playerCDK..RegistNumber
local ItemPos = tab_limit_dorp[tkey]
local tNum = NLG.DelItemByPos(player,ItemPos)
tab_limit_dorp[tkey]=nil
NLG.SystemMessage(player,"[绑定]道具消失了")
end
end
end
end
function item_cir_limit_drop(player, ItemIndex, ItemPos)--丢地瞬间会传入的函数
local itemid = Item.GetData(ItemIndex,%道具_ID%)
if item_cir_limit_tab[itemid] then
local playerCDK = Char.GetData(player,2002)
local RegistNumber = Char.GetData(player,48)
local tkey=playerCDK..RegistNumber
tab_limit_dorp[tkey] = ItemPos
local itemname = Item.GetData(ItemIndex,%道具_已鉴定名%)
NLG.ShowWindowTalked(player,0,3,0,"\n\n"..itemname.."为$8[绑定道具]$0,是否要丢弃\n\n选$1[是]$0丢弃,选$1[否]$0放弃",LuaNpcIndex.item_cir_limit_npc)
return -1
end
return 0
end
function item_cir_limit_jiaoyi(player, TradeIndex, TradeItemList, TradePetList, TradeGold)--TradeItemList是道具位置tab
--当玩家确定交易时输出。
local long=#TradeItemList
for i=1,long do
local ItemPos=TradeItemList[i]
local ItemIndex = Char.GetItemIndex(player,ItemPos);
local itemid = Item.GetData(ItemIndex,%道具_ID%)
if item_cir_limit_tab[itemid] then
NLG.SystemMessage(player,"不可以交易[绑定]伙伴羁绊信")
return -1
end
end
for _,v in pairs(TradePetList) do
local PetIndex = Char.GetPetIndex(player,v)
if PetIndex>=0 then
local petname = Char.GetData(PetIndex,%对象_原名%)
local b=string.sub(petname,1,2)
if b=="∮" then
NLG.SystemMessage(player,"不可以交易[绑定]宠物");
return -1
end
end
end
return 0;
end
function item_cir_limit_baitan1(player)--返回-1就是不许摆摊
local TableLen = Stall.GetItem(player);
for i=1,tonumber(#TableLen) do
local t1=TableLen[i];
if tonumber(t1) >= 0 then
local Sell_ItemIndex = Char.GetItemIndex(player,t1);
local itemid = Item.GetData(Sell_ItemIndex,%道具_ID%)
if item_cir_limit_tab[itemid] then
NLG.SystemMessage(player,"不可以上架[绑定]伙伴羁绊信")
return -1
end
end
end
local TableLen = Stall.GetPet(player);
for i=1,tonumber(#TableLen) do
local t1=TableLen[i];
if tonumber(t1) >= 0 then
local Sell_PetIndex = Char.GetPetIndex(player,t1);
local PetName=Char.GetData(Sell_PetIndex,%对象_原名%);
local b=string.sub(PetName,1,2)
if b=="∮" then
NLG.SystemMessage(player,"不可以上架[绑定]宠物");
return -1
end
end
end
return 0
end
function item_cir_limit_baitan2(player)--返回1拦截,返回0正常
local maptype = Char.GetData(player,%对象_地图类型%);
local mapid = Char.GetData(player,%对象_地图%);
if maptype~=0 then
Char.WinmoliSendMsg(player,"该地图不能上架物品")
return 1
elseif maptype==0 and item_cir_limit_buy[mapid] then
Char.WinmoliSendMsg(player,"该地图不能上架物品")
return 1
end
for i=0,19 do
local ItemIndex=Char.WinmoliGetItem(player,i,0);--获取摆摊上架的所有道具index
local itemid = Item.GetData(ItemIndex,%道具_ID%)
if item_cir_limit_tab[itemid] then
--NLG.SystemMessage(player,"不可以上架[绑定]伙伴羁绊信")
Char.WinmoliSendMsg(player,"不能卖[绑定]伙伴羁绊信")
return 1
end
end
return 0
end
--[[
function All_Protocol_RegProtocolSend(fd, packet)
local player = Protocol.GetCharByFd(fd)
local pos = string.find(packet," ") or 1
local Head = string.sub(packet,1,pos-1)
print("\n\n(玩家收包)链接句柄是"..fd.."封包头是"..Head.."封包内容是"..packet.."玩家唯一码是"..player)
end--]]
|
|