Files
chuanqi-server-instance/LogicServer/data/functions/ActorSystems/CombatSystem/CombatChallangeOp.txt
2024-12-16 20:45:03 +08:00

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