boa tarde, bom, tenho um ot global 8.60 e tenho os sistema war system, utilizo o TFS REV 3777 version 0_4, meu cast system está normal, não tem error de script do war system, porem do o comando /war invite, guild, frag e não acontece nada, não da error, não invita, nada ! me ajudem !
talkactions/data/war.lua
function onSay(cid, words, param, channel)local guild = getPlayerGuildId(cid)if(not guild or getPlayerGuildLevel(cid)< GUILDLEVEL_LEADER)then
doPlayerSendChannelMessage(cid,"","You cannot execute this talkaction.", TALKTYPE_CHANNEL_W,0)returntrueendlocal t =string.explode(param,",")if(not t[2])then
doPlayerSendChannelMessage(cid,"","Not enough param(s).", TALKTYPE_CHANNEL_W,0)returntrueendlocal enemy = getGuildId(t[2])if(not enemy)then
doPlayerSendChannelMessage(cid,"","Guild \"".. t[2].."\" does not exists.", TALKTYPE_CHANNEL_W,0)returntrueendif(enemy == guild)then
doPlayerSendChannelMessage(cid,"","You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W,0)returntrueendlocal enemyName, tmp ="", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = ".. enemy)if(tmp:getID()~=-1)then
enemyName = tmp:getDataString("name")
tmp:free()endif(isInArray({"accept","reject","cancel"}, t[1]))thenlocal query ="`guild_id` = ".. enemy .." AND `enemy_id` = ".. guild
if(t[1]=="cancel")then
query ="`guild_id` = ".. guild .." AND `enemy_id` = ".. enemy
end
tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE ".. query .." AND `status` = 0")if(tmp:getID()==-1)then
doPlayerSendChannelMessage(cid,"","Currently there's no pending invitation for a war with ".. enemyName ..".", TALKTYPE_CHANNEL_W,0)returntrueendif(t[1]=="accept")thenlocal _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = ".. guild)local state = _tmp:getID()<0or _tmp:getDataInt("balance")< tmp:getDataInt("payment")
_tmp:free()if(state)then
doPlayerSendChannelMessage(cid,"","Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W,0)returntrueend
db.query("UPDATE `guilds` SET `balance` = `balance` - ".. tmp:getDataInt("payment").." WHERE `id` = ".. guild)end
query ="UPDATE `guild_wars` SET "local msg ="accepted ".. enemyName .." invitation to war."if(t[1]=="reject")then
query = query .."`end` = ".. os.time()..", `status` = 2"
msg ="rejected ".. enemyName .." invitation to war."
elseif(t[1]=="cancel")then
query = query .."`end` = ".. os.time()..", `status` = 3"
msg ="canceled invitation to a war with ".. enemyName .."."else
query = query .."`begin` = ".. os.time()..", `end` = "..(tmp:getDataInt("end")>0and(os.time()+((tmp:getDataInt("begin")- tmp:getDataInt("end"))/86400))or0)..", `status` = 1"end
query = query .." WHERE `id` = ".. tmp:getDataInt("id")if(t[1]=="accept")then
doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD)
doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY)end
tmp:free()
db.query(query)
doBroadcastMessage(getPlayerGuildName(cid).." has ".. msg, MESSAGE_EVENT_ADVANCE)returntrueendif(t[1]=="invite")thenlocal str =""
tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (".. guild ..",".. enemy ..") AND `enemy_id` IN (".. enemy ..",".. guild ..") AND `status` IN (0, 1)")if(tmp:getID()~=-1)thenif(tmp:getDataInt("status")==0)thenif(tmp:getDataInt("guild_id")== guild)then
str ="You have already invited ".. enemyName .." to war."else
str = enemyName .." have already invited you to war."endelse
str ="You are already on a war with ".. enemyName .."."end
tmp:free()endif(str ~="")then
doPlayerSendChannelMessage(cid,"", str, TALKTYPE_CHANNEL_W,0)returntrueendlocal frags = tonumber(t[3])if(frags ~=nil)then
frags = math.max(10, math.min(1000, frags))else
frags =100endlocal payment = tonumber(t[4])if(payment ~=nil)then
payment = math.max(100000, math.min(1000000000, payment))
tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = ".. guild)local state = tmp:getID()<0or tmp:getDataInt("balance")< payment
tmp:free()if(state)then
doPlayerSendChannelMessage(cid,"","Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W,0)returntrueend
db.query("UPDATE `guilds` SET `balance` = `balance` - ".. payment .." WHERE `id` = ".. guild)else
payment =0endlocal begining, ending = os.time(), tonumber(t[5])if(ending ~=niland ending ~=0)then
ending = begining +(ending *86400)else
ending =0end
db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (".. guild ..", ".. enemy ..", ".. begining ..", ".. ending ..", ".. frags ..", ".. payment ..");")
doBroadcastMessage(getPlayerGuildName(cid).." has invited ".. enemyName .." to war till ".. frags .." frags.", MESSAGE_EVENT_ADVANCE)returntrueendif(not isInArray({"end","finish"}, t[1]))thenreturnfalseendlocal status =(t[1]=="end"and1or4)
tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = ".. guild .." AND `enemy_id` = ".. enemy .." AND `status` = ".. status)if(tmp:getID()~=-1)thenlocal query ="UPDATE `guild_wars` SET `end` = ".. os.time()..", `status` = 5 WHERE `id` = ".. tmp:getDataInt("id")
tmp:free()
doGuildRemoveEnemy(guild, enemy)
doGuildRemoveEnemy(enemy, guild)
db.query(query)
doBroadcastMessage(getPlayerGuildName(cid).." has "..(status ==4and"mend fences"or"ended up a war").." with ".. enemyName ..".", MESSAGE_EVENT_ADVANCE)returntrueendif(status ==4)then
doPlayerSendChannelMessage(cid,"","Currently there's no pending war truce from ".. enemyName ..".", TALKTYPE_CHANNEL_W,0)returntrueend
tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = ".. enemy .." AND `enemy_id` = ".. guild .." AND `status` = 1")if(tmp:getID()~=-1)thenif(tmp:getDataInt("end")>0)then
tmp:free()
doPlayerSendChannelMessage(cid,"","You cannot request ending for war with ".. enemyName ..".", TALKTYPE_CHANNEL_W,0)returntrueendlocal query ="UPDATE `guild_wars` SET `status` = 4, `end` = ".. os.time().." WHERE `id` = ".. tmp:getDataInt("id")
tmp:free()
db.query(query)
doBroadcastMessage(getPlayerGuildName(cid).." has signed an armstice declaration on a war with ".. enemyName ..".", MESSAGE_EVENT_ADVANCE)returntrueend
doPlayerSendChannelMessage(cid,"","Currently there's no active war with ".. enemyName ..".", TALKTYPE_CHANNEL_W,0)returntrueend
Pergunta
Tiagotwos 0
boa tarde, bom, tenho um ot global 8.60 e tenho os sistema war system, utilizo o TFS REV 3777 version 0_4, meu cast system está normal, não tem error de script do war system, porem do o comando /war invite, guild, frag e não acontece nada, não da error, não invita, nada ! me ajudem !
talkactions/data/war.lua
Link para o comentário
https://xtibia.com/forum/topic/239104-problema-com-war-system/Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados