mirror of
https://github.com/ErikasKontenis/SabrehavenServer.git
synced 2025-12-10 04:10:45 +01:00
finish guildwar system
This commit is contained in:
60
data/talkactions/scripts/war.lua
Normal file
60
data/talkactions/scripts/war.lua
Normal file
@@ -0,0 +1,60 @@
|
||||
function onSay(player, words, param)
|
||||
if not player:getGuild() or player:getGuildLevel() < 3 then
|
||||
player:sendCancelMessage("You cannot execute this talkaction.")
|
||||
return true
|
||||
end
|
||||
|
||||
local t = param:split(",")
|
||||
|
||||
if not t[2] then
|
||||
player:sendCancelMessage("Not enough param(s).")
|
||||
return true
|
||||
end
|
||||
|
||||
local enemyGuildName = string.trim(t[2])
|
||||
|
||||
local enemyGuild = Guild(getGuildId(enemyGuildName))
|
||||
if not enemyGuild then
|
||||
player:sendCancelMessage("Guild \"" .. enemyGuildName .. "\" does not exists or nobody is online from the guild.")
|
||||
return true
|
||||
end
|
||||
|
||||
if enemyGuild:getId() == player:getGuild():getId() then
|
||||
player:sendCancelMessage("You cannot perform war action on your own guild.")
|
||||
return true
|
||||
end
|
||||
|
||||
local warCommand = string.trim(t[1])
|
||||
|
||||
if isInArray({"accept", "reject", "cancel"}, warCommand) then
|
||||
local pendingWarId, bounty = 0
|
||||
|
||||
if warCommand == "cancel" then
|
||||
pendingWarId, bounty = guildwars:getPendingInvitation(player:getGuild():getId(), enemyGuild:getId())
|
||||
else
|
||||
pendingWarId, bounty = guildwars:getPendingInvitation(enemyGuild:getId(), player:getGuild():getId())
|
||||
end
|
||||
|
||||
if pendingWarId == 0 then
|
||||
player:sendCancelMessage("Currently there's no pending invitation for a war with " .. enemyGuild:getName() .. ".")
|
||||
return true
|
||||
end
|
||||
|
||||
if warCommand == "reject" then
|
||||
guildwars:rejectWar(pendingWarId, player:getGuild(), enemyGuild, bounty)
|
||||
elseif warCommand == "cancel" then
|
||||
guildwars:cancelWar(pendingWarId, player:getGuild(), enemyGuild, bounty)
|
||||
else
|
||||
guildwars:startWar(player, pendingWarId, player:getGuild(), enemyGuild, bounty)
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
if warCommand == "invite" then
|
||||
guildwars:invite(player, player:getGuild(), enemyGuild, tonumber(t[3] and string.trim(t[3]) or 100), tonumber(t[4] and string.trim(t[4]) or 0))
|
||||
return true
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
@@ -57,6 +57,7 @@
|
||||
<talkaction words="!share" script="experienceshare.lua"/>
|
||||
<talkaction words="!shop" script="znoteshop.lua"/>
|
||||
<talkaction words="!physicaldamage" separator=" " script="physical_damage.lua"/>
|
||||
<talkaction words="!war" separator=" " script="war.lua"/>
|
||||
<talkaction words="469" script="469.lua"/>
|
||||
|
||||
<!-- test talkactions -->
|
||||
|
||||
Reference in New Issue
Block a user