This commit is contained in:
aixianling
2024-12-13 13:41:02 +08:00
commit 06658f112f
3887 changed files with 2687822 additions and 0 deletions

View File

@@ -0,0 +1,195 @@
--<2D><><EFBFBD>ܸ<EFBFBD><DCB8>ʵķ<CAB5>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--#include "data/config/item/scriptItemConfig/ProabilityItem.txt" once
--[[
--<2D><><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>Roll<6C><6C>Ʒ
--sysarg:ʵ<><CAB5><EFBFBD>ָ<EFBFBD><D6B8>
--itemidx: <20><>Ʒ<EFBFBD><C6B7>ID
--itemPtr: <20><>Ʒ<EFBFBD><C6B7>ָ<EFBFBD><D6B8>
--ItemTable: <20><><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĻ<C3B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
--]]
function ProbablityItemFunc(sysarg,count,itemidx,itemPtr,ItemTable) --<2D><>ʱδ<CAB1>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>count<6E>ֶμ<D6B6><CEBC>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(itemidx == nil) then
System.trace ("ProbablityItemFunc itemidx ==nil")
return
end
--print ("ProbablityItemFunc"..itemidx)
--<2D><>ȡ<EFBFBD><C8A1><EFBFBD>Ŀǰ<C4BF>ж<EFBFBD><D0B6>ٸ<EFBFBD><D9B8>ո<EFBFBD><D5B8>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
local config =ItemTable
if(config == nil) then
System.trace("ProbablityItemFunc config is nill")
return
end
-- <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBCA4>ſ<EFBFBD>ʹ<EFBFBD><CAB9>
if config.needRideActivited and not IsRideActivited(sysarg) then
return
end
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵı<CFB5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local count = Item.getAllBagMinEmptyGridCount(sysarg)
--local count = Item.getBagEmptyGridCount(sysarg)
local needGridCount=1 --<2D><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
if( config.needMinBagGrid ~= nil) then
needGridCount = config.needMinBagGrid
end
if needGridCount and count < needGridCount then
local tipMsg = string.format(OldLang.ScriptTips.x00074,needGridCount)
Actor.sendTipmsg( sysarg,tipMsg,ttFlyTip )
return false
end
-- <20><>ȡ<EFBFBD><C8A1><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local nYb = Actor.getIntProperty(sysarg,PROP_ACTOR_YUANBAO)
local needYb = 0
if config.needYuanBao and config.needYuanBao > 0 then
needYb = config.needYuanBao
if nYb < needYb then
Actor.sendTipmsg( sysarg,OldLang.Script.comm005, ttFlyTip )
return false
end
local itemName = Item.getItemName(config.item_id);
if not Actor.changeMoney(sysarg, 3, -needYb, 842, itemName) then
local msg = string.format(OldLang.Script.comm004, needYb, itemName);
Actor.sendTipmsg( sysarg, msg, ttFlyTip );
return false;
end
end
--<2D>ж<EFBFBD><D0B6><EFBFBD>Ʒ<EFBFBD><C6B7>Ҫ<EFBFBD><D2AA><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>Ŀ
local nNeedItemCount = ItemTable.itemCount
if(nNeedItemCount == nil) then
nNeedItemCount =1
end
if( Actor.getItemCount(sysarg,itemidx,-1,-1) < nNeedItemCount) then
local tipMsg = string.format(OldLang.ScriptTips.x00140,nNeedItemCount)
Actor.sendTipmsg( sysarg,tipMsg,ttFlyTip )
return false
end
local consumes = {}
if config.consumes and table.getn(config.consumes) > 0 then
for k, v in ipairs(config.consumes) do
table.insert(consumes, v)
end
end
local consume = {type = 0, id = itemidx, count = nNeedItemCount}
table.insert(consumes, consume)
--[[
if CommonFunc.Consumes.SuccessCheck(sysarg, consumes) ~= successCheckResult.ok then
return false
end
]]
--<2D><>Ҫrollһ<6C><D2BB><EFBFBD><EFBFBD>Ʒ
local dropName = "proability"..tostring(itemidx) --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local drop = System.getObjectVar(dropName)
if (not drop) then
System.trace("getObjectVar is nil"..itemidx)
return
end
local items = drop:proabilityDrop(sysarg)
if ( items.itemCount > 0) then
for i = items.itemCount - 1, 0, -1 do
local result = Actor.canGiveAward(sysarg,
items.itemList[i].btAwardType,
items.itemList[i].wItemId,
items.itemList[i].btCount,
items.itemList[i].btQuality,
items.itemList[i].btStrong,
items.itemList[i].btBind,
true)
if not result then
return false
end
end
end
--<2D><><EFBFBD><EFBFBD><EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>Ʒ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>ɾ<EFBFBD><C9BE>
--if (config.needDelete and (Actor.removeItem(sysarg,itemidx,nNeedItemCount,-1,-1,-1,"Roll",2) ~=nNeedItemCount) ) then --ɾ<><C9BE><EFBFBD><EFBFBD>Ʒʧ<C6B7><CAA7>
--[[
local bBind = 1
local result = successCheckResult.otherLack
if (config.needDelete) then
result, bBind = Consumes.OnConsumes(sysarg, consumes, 0, 0, 2, "ProabilityItem Roll")
if result ~= successCheckResult.ok then
return false
end
end
]]
--[[
<09><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tips<70>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
Item.addItem(sysarg,itemPtr,"roll",1,items.itemList[i].btCount)
if(items.itemList[i].btAuxParam ==1) then
local itemDes = Item.getItemLinkMsg(items.itemList[i].wItemId,itemPtr)
local tipMsg = string.format(OldLang.ScriptTips.x00085,Actor.getName(sysarg),Item.getItemName(itemidx), itemDes ) --Ҫȫ<D2AA><C8AB><EFBFBD>
System.broadcastTipmsg(tipMsg,ttScreenCenter )
end
--]]
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ʒ
if ( items.itemCount > 0) then
for i=0, items.itemCount -1 do
if config.infectBind == nil or config.infectBind ~= true then
bBind = items.itemList[i].btBind
end
Actor.giveAward(sysarg,
items.itemList[i].btAwardType,
items.itemList[i].wItemId,
items.itemList[i].btCount,
items.itemList[i].btQuality,
items.itemList[i].btStrong,
bBind,
items.itemList[i].nTime,
1,"roll")
if(items.itemList[i].btAuxParam ==1) then
local count = items.itemList[i].btCount
local name = Item.getAwardDesc(items.itemList[i].btAwardType,items.itemList[i].wItemId,true,items.itemList[i])
if(name ~= nil and name ~= "") then
if(items.itemList[i].btAwardType == 20) then --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><C3BE><EFBFBD><EFBFBD>
count = Actor.getActivityExp(sysarg,items.itemList[i].wItemId,items.itemList[i].btCount,items.itemList[i].btQuality)
end
local tipMsg = string.format(OldLang.ScriptTips.x00085,Actor.getName(sysarg),Item.getItemName(itemidx), name,count ) --Ҫȫ<D2AA><C8AB><EFBFBD>
System.broadcastTipmsg(tipMsg,ttScreenCenter + ttChatWindow)
end
end
end
end
return true
end
--<2D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۺϱ<DBBA><CFB1><EFBFBD>Ʒ
function InitProabilityDropItem(sysarg)
-- <20><>ȡ"data/config/item/scriptItemConfig/ProabilityItem.txt"<22>ı<EFBFBD>ProabolityItemConfig
for i = 1,table.getn(ProabolityItemConfig) do
local x = ProabolityItemConfig[i]
GlobalItemFn[x.item_id] = { func = ProbablityItemFunc,params =x }
--<2D>ڳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ȫ<EFBFBD><C8AB>װ<EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD> ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱȥ<CAB1><C8A5><EFBFBD><EFBFBD>
local dropName = "proability"..tostring(x.item_id)
local boxdrop = System.getObjectVar(dropName)
if (not boxdrop) then
boxdrop = CBoxDropMgr:getSingleton():createBoxDrop(dropName) -- <20><><EFBFBD><EFBFBD><EFBFBD><E1B7B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(CBoxDrop)
end
if(boxdrop) then
boxdrop:load(x.dropName) -- <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
end
end
end
table.insert(InitFnTable,InitProabilityDropItem)