Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Então pessoal, minha guild system ta com bug e n sei como resolver, eu envio convite pra outra guild ai quando vai pra aceitar ele n aceita, eu falo o comando parece que n existe, mais da de enviar convite, rejeitar, cancelar mais pra aceitar não, se alguem puder me ajudar

Sem título.png

Link para o post
Compartilhar em outros sites
15 horas atrás, alisoncelso disse:

Então pessoal, minha guild system ta com bug e n sei como resolver, eu envio convite pra outra guild ai quando vai pra aceitar ele n aceita, eu falo o comando parece que n existe, mais da de enviar convite, rejeitar, cancelar mais pra aceitar não, se alguem puder me ajudar

Sem título.png

 

ou seria sua TFS que nao esta compilada com sistema de war ou seu talkaction posta o script que voce usa para sistema de guild

Link para o post
Compartilhar em outros sites
5 horas atrás, Ziguirifido disse:

 

ou seria sua TFS que nao esta compilada com sistema de war ou seu talkaction posta o script que voce usa para sistema de guild

essa? 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)
                                return true
                end

                local t = string.explode(param, ",")
                if(not t[2]) then
                                doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                local enemy = getGuildId(t[2])
                if(not enemy) then
                                doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                if(enemy == guild) then
                                doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)
                if(tmp:getID() ~= -1) then
                                enemyName = tmp:getDataString("name")
                                tmp:free()
                end

                if(isInArray({"accept", "reject", "cancel"}, t[1])) then
                                local 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)
                                                return true
                                end

                                if(t[1] == "accept") then
                                                local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)
                                                local state = _tmp:getID() < 0 or _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)
                                                                return true
                                                end

                                                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") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `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)
                                return true
                end

                if(t[1] == "invite") then
                                local 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) then
                                                if(tmp:getDataInt("status") == 0) then
                                                                if(tmp:getDataInt("guild_id") == guild) then
                                                                                str = "You have already invited " .. enemyName .. " to war."
                                                                else
                                                                                str = enemyName .. " have already invited you to war."
                                                                end
                                                else
                                                                str = "You are already on a war with " .. enemyName .. "."
                                                end

                                                tmp:free()
                                end

                                if(str ~= "") then
                                                doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0)
                                                return true
                                end

                                local frags = tonumber(t[3])
                                if(frags ~= nil) then
                                                frags = math.max(10, math.min(1000, frags))
                                else
                                                frags = 100
                                end

                                local 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() < 0 or tmp:getDataInt("balance") < payment
                                                tmp:free()
                                                if(state) then
                                                                doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0)
                                                                return true
                                                end

                                                db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild)
                                else
                                                payment = 0
                                end

                                local begining, ending = os.time(), tonumber(t[5])
                                if(ending ~= nil and ending ~= 0) then
                                                ending = begining + (ending * 86400)
                                else
                                                ending = 0
                                end

                                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)
                                return true
                end

                if(not isInArray({"end", "finish"}, t[1])) then
                                return false
                end

                local status = (t[1] == "end" and 1 or 4)
                tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)
                if(tmp:getID() ~= -1) then
                                local 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 == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)
                                return true
                end

                if(status == 4) then
                                doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")
                if(tmp:getID() ~= -1) then
                                if(tmp:getDataInt("end") > 0) then
                                                tmp:free()
                                                doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                                                return true
                                end

                                local 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)
                                return true
                end

                doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                return true
end

Link para o post
Compartilhar em outros sites
1 hora atrás, alisoncelso disse:

essa? 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)
                                return true
                end

                local t = string.explode(param, ",")
                if(not t[2]) then
                                doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                local enemy = getGuildId(t[2])
                if(not enemy) then
                                doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                if(enemy == guild) then
                                doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)
                if(tmp:getID() ~= -1) then
                                enemyName = tmp:getDataString("name")
                                tmp:free()
                end

                if(isInArray({"accept", "reject", "cancel"}, t[1])) then
                                local 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)
                                                return true
                                end

                                if(t[1] == "accept") then
                                                local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)
                                                local state = _tmp:getID() < 0 or _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)
                                                                return true
                                                end

                                                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") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `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)
                                return true
                end

                if(t[1] == "invite") then
                                local 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) then
                                                if(tmp:getDataInt("status") == 0) then
                                                                if(tmp:getDataInt("guild_id") == guild) then
                                                                                str = "You have already invited " .. enemyName .. " to war."
                                                                else
                                                                                str = enemyName .. " have already invited you to war."
                                                                end
                                                else
                                                                str = "You are already on a war with " .. enemyName .. "."
                                                end

                                                tmp:free()
                                end

                                if(str ~= "") then
                                                doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0)
                                                return true
                                end

                                local frags = tonumber(t[3])
                                if(frags ~= nil) then
                                                frags = math.max(10, math.min(1000, frags))
                                else
                                                frags = 100
                                end

                                local 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() < 0 or tmp:getDataInt("balance") < payment
                                                tmp:free()
                                                if(state) then
                                                                doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0)
                                                                return true
                                                end

                                                db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild)
                                else
                                                payment = 0
                                end

                                local begining, ending = os.time(), tonumber(t[5])
                                if(ending ~= nil and ending ~= 0) then
                                                ending = begining + (ending * 86400)
                                else
                                                ending = 0
                                end

                                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)
                                return true
                end

                if(not isInArray({"end", "finish"}, t[1])) then
                                return false
                end

                local status = (t[1] == "end" and 1 or 4)
                tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)
                if(tmp:getID() ~= -1) then
                                local 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 == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)
                                return true
                end

                if(status == 4) then
                                doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                                return true
                end

                tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")
                if(tmp:getID() ~= -1) then
                                if(tmp:getDataInt("end") > 0) then
                                                tmp:free()
                                                doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                                                return true
                                end

                                local 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)
                                return true
                end

                doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
                return true
end

troque para este

function onSay(cid, words, param, channel)
	local guild = getPlayerGuildId(cid)
	if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then
		doPlayerSendChannelMessage(cid, "", "Voce não pode executar este talkaction.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local t = string.explode(param, ",")
	if(not t[2]) then
		doPlayerSendChannelMessage(cid, "", "Nenhum parâmetro.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local enemy = getGuildId(t[2])
	if(not enemy) then
		doPlayerSendChannelMessage(cid, "", "A guild \"" .. t[2] .. "\" não existe.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	if(enemy == guild) then
		doPlayerSendChannelMessage(cid, "", "Você não pode declarar war com sua própria guild.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)
	if(tmp:getID() ~= -1) then
		enemyName = tmp:getDataString("name")
		tmp:free()
	end

	if(isInArray({"accept", "reject", "cancel"}, t[1])) then
		local 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, "", "Atualmente não há nenhum convite pendente para uma war com " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
			return true
		end

		if(t[1] == "accept") then
			local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)
			local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment")

			_tmp:free()
			if(state) then
				doPlayerSendChannelMessage(cid, "", "O saldo da sua guild é muito baixo para aceitar este convite.", TALKTYPE_CHANNEL_W, 0)
				return true
			end

			db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild)
		end

		query = "UPDATE `guild_wars` SET "
		local msg = "aceitou a guild " .. enemyName .. " para a war."
		if(t[1] == "reject") then
			query = query .. "`end` = " .. os.time() .. ", `status` = 2"
			msg = "rejeitou a guild " .. enemyName .. " para a war."
		elseif(t[1] == "cancel") then
			query = query .. "`end` = " .. os.time() .. ", `status` = 3"
			msg = "cancelou a war com a guild " .. enemyName .. "."
		else
			query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `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) .. " " .. msg, MESSAGE_EVENT_ADVANCE)
		return true
	end
 
	if(t[1] == "invite") then
		local 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) then
			if(tmp:getDataInt("status") == 0) then
				if(tmp:getDataInt("guild_id") == guild) then
					str = "Voce já invitou a guild " .. enemyName .. " para a war."
				else
					str = enemyName .. " já invitou voce para a war."
				end
			else
				str = "Voce já está em guerra com a guild " .. enemyName .. "."
			end
			tmp:free()
		end
 
		if(str ~= "") then
			doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0)
			return true
		end
 
		local frags = tonumber(t[3])
		if(frags ~= nil) then
			frags = math.max(10, math.min(1000, frags))
		else
			frags = 100
		end
 
		local 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() < 0 or tmp:getDataInt("balance") < payment
			tmp:free()
			if(state) then
				doPlayerSendChannelMessage(cid, "", "O saldo da sua guild é muito baixo para tal pagamento.", TALKTYPE_CHANNEL_W, 0)
				return true
			end
 
			db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild)
		else
			payment = 0
		end
 
		local begining, ending = os.time(), tonumber(t[5])
		if(ending ~= nil and ending ~= 0) then
			ending = begining + (ending * 86400)
		else
			ending = 0
		end
 
		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)
		return true
	end
 
	if(not isInArray({"end", "finish"}, t[1])) then
		return false
	end
 
	local status = (t[1] == "end" and 1 or 4)
	tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)
	if(tmp:getID() ~= -1) then
		local 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 == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)
		return true
	end
 
	if(status == 4) then
		doPlayerSendChannelMessage(cid, "", "Atualmente não há trégua de guerra pendente da guild " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
		return true
	end
 
	tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")
	if(tmp:getID() ~= -1) then
		if(tmp:getDataInt("end") > 0) then
			tmp:free()
			doPlayerSendChannelMessage(cid, "", "Você não pode acabar com a war com " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
			return true
		end
 
		local 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)
		return true
	end
	doPlayerSendChannelMessage(cid, "", "Atualmente não há nenhuma guerra ativa com a guild " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
	return true
end

 

OBS: se nao funcionar o seu TFS nao esta compilada com WAR_SISTEM

 

Ajudei? REP+ <3

 

Editado por Ziguirifido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, Ziguirifido disse:

troque para este


function onSay(cid, words, param, channel)
	local guild = getPlayerGuildId(cid)
	if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then
		doPlayerSendChannelMessage(cid, "", "Voce não pode executar este talkaction.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local t = string.explode(param, ",")
	if(not t[2]) then
		doPlayerSendChannelMessage(cid, "", "Nenhum parâmetro.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local enemy = getGuildId(t[2])
	if(not enemy) then
		doPlayerSendChannelMessage(cid, "", "A guild \"" .. t[2] .. "\" não existe.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	if(enemy == guild) then
		doPlayerSendChannelMessage(cid, "", "Você não pode declarar war com sua própria guild.", TALKTYPE_CHANNEL_W, 0)
		return true
	end

	local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy)
	if(tmp:getID() ~= -1) then
		enemyName = tmp:getDataString("name")
		tmp:free()
	end

	if(isInArray({"accept", "reject", "cancel"}, t[1])) then
		local 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, "", "Atualmente não há nenhum convite pendente para uma war com " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
			return true
		end

		if(t[1] == "accept") then
			local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild)
			local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment")

			_tmp:free()
			if(state) then
				doPlayerSendChannelMessage(cid, "", "O saldo da sua guild é muito baixo para aceitar este convite.", TALKTYPE_CHANNEL_W, 0)
				return true
			end

			db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild)
		end

		query = "UPDATE `guild_wars` SET "
		local msg = "aceitou a guild " .. enemyName .. " para a war."
		if(t[1] == "reject") then
			query = query .. "`end` = " .. os.time() .. ", `status` = 2"
			msg = "rejeitou a guild " .. enemyName .. " para a war."
		elseif(t[1] == "cancel") then
			query = query .. "`end` = " .. os.time() .. ", `status` = 3"
			msg = "cancelou a war com a guild " .. enemyName .. "."
		else
			query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `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) .. " " .. msg, MESSAGE_EVENT_ADVANCE)
		return true
	end
 
	if(t[1] == "invite") then
		local 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) then
			if(tmp:getDataInt("status") == 0) then
				if(tmp:getDataInt("guild_id") == guild) then
					str = "Voce já invitou a guild " .. enemyName .. " para a war."
				else
					str = enemyName .. " já invitou voce para a war."
				end
			else
				str = "Voce já está em guerra com a guild " .. enemyName .. "."
			end
			tmp:free()
		end
 
		if(str ~= "") then
			doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0)
			return true
		end
 
		local frags = tonumber(t[3])
		if(frags ~= nil) then
			frags = math.max(10, math.min(1000, frags))
		else
			frags = 100
		end
 
		local 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() < 0 or tmp:getDataInt("balance") < payment
			tmp:free()
			if(state) then
				doPlayerSendChannelMessage(cid, "", "O saldo da sua guild é muito baixo para tal pagamento.", TALKTYPE_CHANNEL_W, 0)
				return true
			end
 
			db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild)
		else
			payment = 0
		end
 
		local begining, ending = os.time(), tonumber(t[5])
		if(ending ~= nil and ending ~= 0) then
			ending = begining + (ending * 86400)
		else
			ending = 0
		end
 
		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)
		return true
	end
 
	if(not isInArray({"end", "finish"}, t[1])) then
		return false
	end
 
	local status = (t[1] == "end" and 1 or 4)
	tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status)
	if(tmp:getID() ~= -1) then
		local 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 == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE)
		return true
	end
 
	if(status == 4) then
		doPlayerSendChannelMessage(cid, "", "Atualmente não há trégua de guerra pendente da guild " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
		return true
	end
 
	tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1")
	if(tmp:getID() ~= -1) then
		if(tmp:getDataInt("end") > 0) then
			tmp:free()
			doPlayerSendChannelMessage(cid, "", "Você não pode acabar com a war com " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
			return true
		end
 
		local 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)
		return true
	end
	doPlayerSendChannelMessage(cid, "", "Atualmente não há nenhuma guerra ativa com a guild " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0)
	return true
end

 

OBS: se nao funcionar o seu TFS nao esta compilada com WAR_SISTEM

 

Ajudei? REP+ <3

 

eu botei essa escript mais funcioan todos os comando mais menos de aceitar a war, sera que não ta  compilada com WAR_SISTEM ?

Link para o post
Compartilhar em outros sites
1 hora atrás, alisoncelso disse:

eu botei essa escript mais funcioan todos os comando mais menos de aceitar a war, sera que não ta  compilada com WAR_SISTEM ?

 

tenta troca a sua TFS por uma dessas aki 

 

TFS 0.4_DEV rev 3777 - 8.6

http://www.tibiaking.com/forum/applications/core/interface/file/attachment.php?id=1493

 

TFS 3884 - 8.6

http://www.4shared.com/rar/4KijpSs0ba/TheForgottenServer.html?

 

OBS: nao tenho para 8.54

 

Ajudei ? REP+ <3

Link para o post
Compartilhar em outros sites
1 minuto atrás, Ziguirifido disse:

 

tenta troca a sua TFS por uma dessas aki 

 

TFS 0.4_DEV rev 3777 - 8.6

http://www.tibiaking.com/forum/applications/core/interface/file/attachment.php?id=1493

 

TFS 3884 - 8.6

http://www.4shared.com/rar/4KijpSs0ba/TheForgottenServer.html?

 

OBS: nao tenho para 8.54

 

Ajudei ? REP+ <3

isso server pra executar o server né? eu não tenho como por isso pq eu uso painel la eu aperto em iniciar e o ot fica online. 

Link para o post
Compartilhar em outros sites
4 minutos atrás, alisoncelso disse:

isso server pra executar o server né? eu não tenho como por isso pq eu uso painel la eu aperto em iniciar e o ot fica online. 

 

hum entendo voce usa serve LINUX nesse painel deve dar direito a mais de 1 SERVIDOR tenta pegar 1 TFS (EXECUTADOR DE SERVE) de algum outro servidor  que ja esteja na linux para testar

Editado por Ziguirifido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo