121 lines
2.5 KiB
Plaintext
Executable File
121 lines
2.5 KiB
Plaintext
Executable File
--lua script
|
|
|
|
--#include "data\config\combat\combatConfig.txt" once
|
|
--#include "data\functions\ActorSystems\CombatSystem\CombatPkCommonOp.txt" once
|
|
|
|
function GetCombatBaseInfo(sysarg, args)
|
|
|
|
end
|
|
|
|
function SelectPayers(sysarg, args)
|
|
|
|
end
|
|
|
|
function StartCombatPK(sysarg, args)
|
|
CombatPkCommon(sysarg, args[2])
|
|
end
|
|
|
|
function ClearCooldown(sysarg, args)
|
|
|
|
end
|
|
|
|
function RechargeAward(sysarg, args)
|
|
local awardId = args[2]
|
|
local curRank = args[3]
|
|
local config = CombatConfig
|
|
local award
|
|
local index = 0
|
|
for k, v in ipairs(config.rankShop) do
|
|
if v.id == awardId then
|
|
index = k
|
|
award = v
|
|
break
|
|
end
|
|
end
|
|
|
|
if index < 1 and index > 32 then
|
|
return
|
|
end
|
|
|
|
local day = System.getDaysSinceOpenServer()
|
|
if day < config.openDay then
|
|
return
|
|
end
|
|
|
|
if curRank > award.rankLimit or curRank <= 0 then
|
|
Actor.sendTipmsg(sysarg, OldLang.Script.CombatRank002, ttFlyTip)
|
|
return
|
|
end
|
|
|
|
local sex = Actor.getIntProperty(sysarg, PROP_ACTOR_SEX)
|
|
if award.sex >= 0 and award.sex ~= sex then
|
|
return
|
|
end
|
|
|
|
local job = Actor.getIntProperty(sysarg, PROP_ACTOR_VOCATION)
|
|
if award.job ~= 0 and award.job ~= job then
|
|
return
|
|
end
|
|
|
|
local sVar = Actor.getStaticVar(sysarg)
|
|
if not sVar.CombatShopData then
|
|
sVar.CombatShopData = 0
|
|
end
|
|
local isGetAward = System.getIntBit(sVar.CombatShopData, index-1)
|
|
if isGetAward > 0 then
|
|
return
|
|
end
|
|
|
|
--兑换道具
|
|
local bCheck = Actor.checkConsume(sysarg, 33, 0, award.price)
|
|
if not bCheck then
|
|
return
|
|
end
|
|
Actor.removeConsume(sysarg, 33, 0, award.price)
|
|
Actor.giveAward(sysarg, 0, award.item, award.count, award.quality or 0, award.strong or 0, award.bind or 0, 0, 312, "CombatRechargeAward")
|
|
|
|
sVar.CombatShopData = System.setIntBit(sVar.CombatShopData, index-1, true)
|
|
local pack = DataPack.allocPacket(sysarg, 57, 5)
|
|
if (pack) then
|
|
DataPack.writeInt(pack, award.id)
|
|
DataPack.flush(pack)
|
|
end
|
|
end
|
|
|
|
function GetCombatLog(sysarg, args)
|
|
|
|
end
|
|
|
|
function GetCombatRank(sysarg, args)
|
|
|
|
end
|
|
|
|
function GetRankAwardList(sysarg, args)
|
|
local config = CombatConfig
|
|
local awardList = {}
|
|
local sVar = Actor.getStaticVar(sysarg)
|
|
if sVar.CombatShopData then
|
|
local isGetAward = 0
|
|
for k,v in ipairs(config.rankShop) do
|
|
if k > 32 then
|
|
break
|
|
end
|
|
isGetAward = System.getIntBit(sVar.CombatShopData, k-1)
|
|
if isGetAward > 0 then
|
|
awardList[#awardList + 1] = v.id
|
|
end
|
|
end
|
|
end
|
|
|
|
local pack = DataPack.allocPacket(sysarg, 57, 8)
|
|
if (pack) then
|
|
DataPack.writeInt(pack, #awardList)
|
|
for _, v in ipairs(awardList) do
|
|
DataPack.writeInt(pack, v)
|
|
end
|
|
|
|
DataPack.flush(pack)
|
|
end
|
|
end
|
|
|