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,78 @@
--#include "data\config\achieve\AchieveCfg.txt" once
--#include "data\functions\ItemEvent\ItemUseCount.txt" once
function OnGetAchieveAwardsCfg(nAchieveID)
for k,v in pairs(AchieveCfg)do
for i,cfg in pairs(v.AchieveInfo)do
if(cfg.id == nAchieveID)then
return cfg
end
end
end
end
--<2D>ȼ<EFBFBD><EFBFBD><E9B9BB><EFBFBD><EFBFBD>
function AchieveLogicCheck(sysarg, consumes, nCount)
--<2D><><EFBFBD>ļ<EFBFBD><C4BC>
for k,v in pairs(consumes) do
local bCheck = Actor.checkConsume(sysarg, v.type, v.id, v.count*nCount, v.quality or 0, v.strong or 0, -1 , 0)
--BaseFuc_Print("v.type, v.id, v.count*nCount",bCheck,v.type, v.id, v.count*nCount)
if bCheck ~= true then
if v.type == qatBindMoney then --<2D>˴<EFBFBD><CBB4>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--local myBindCoin = Actor.getMoneyCount( sysarg, mtBindCoin )
Actor.sendNotEnoughMoney(sysarg, mtBindCoin, v.count * nCount)
else
local name = Item.getAwardDesc(v.type, v.id)
local tips = string.format(OldLang.Script.EquipHecheng006, name, v.count)
Actor.sendTipmsg(sysarg, tips, ttFlyTip)
end
return false
end
end
return true
end
function SendAchieveResult(sysarg, nId, bReslut)
local GAME_MSG_S2C_SEND_ACHIEGVE_DRAW_DATA = 11
local netPack = DataPack.allocPacket(sysarg,enAchieveSystemID, GAME_MSG_S2C_SEND_ACHIEGVE_DRAW_DATA)
DataPack.writeShort(netPack, nId)
DataPack.writeByte(netPack,bReslut)
DataPack.flush(netPack)
end
function OnGetAchieveAwards(sysarg, nAchieveID)
local cfg = OnGetAchieveAwardsCfg(nAchieveID)
if(AchieveLogicCheck(sysarg, cfg.consume, 1) ~= true)then
return --print("AllDayLogicCheck")
end
local logId = 180
local logStr = OldLang.Log.LogWingActivation
if(SubBatchItemByType(sysarg, cfg.consume, logId, logStr) ~= true)then
return --print("btType",btType)
end
if(0 < #cfg.award )then
if CommonFunc.Awards.CheckBagGridCount(sysarg, {cfg.award}) ~= true then
local actorId = Actor.getActorId(sysarg)
local title = OldLang.NoticeStr.n093
local content = OldLang.NoticeStr.n094
SendMail(actorId, title, content, awards)
return
end
CommonFunc.Awards.Give(sysarg, {cfg.award}, logId, logStr)
end
Actor.setAchieveGiveAwards(sysarg, nAchieveID)
SendAchieveResult(sysarg, nAchieveID, 1)
Actor.sendTipmsg(sysarg, string.format(OldLang.NoticeStr.Achieve1001,cfg.name), ttFlyTip)
sendItemUseCount(sysarg, 4)
end
function GMAchieveFuc(sysarg, arg2, arg3 )
if(arg2 == 1)then
Actor.triggerQuestEvent(sysarg, 16, 800, 1)
return Actor.setAchieveFinished(sysarg, arg3) -- @DebugLua 2003 1 1
end
if(arg2 == 2)then
return OnGetAchieveAwards(sysarg, arg3) -- @DebugLua 2003 2 1
end
end