Ir para conteúdo

Featured Replies

Postado

.Olá pessoal bom dia,

Gostaria de pedir uma ajuda a vocês, possuo um sistema de Castle War que funciona perfeito, porem gostaria de fazer uma modificação nele. 

Que quando finalizar o evento somente o líder da guild ganhadora ganhasse um item que seria o id 10091. Alguém poderia me ajudar ??

Utilizo TFS 0.4 - 8.6

 

Segue abaixo o código.

Mostrar conteúdo oculto

 

Resolvido por Vodkart

Ir para solução
  • Respostas 7
  • Visualizações 582
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • function getGuildLeaderName(GuildName) -- function by vodkart local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE

Posted Images

Postado
  • Autor
  Em 26/08/2021 em 20:16, Vodkart disse:

posta o resto do sistema, principalmente o código onde os players recebem as rewards.

Esse arquivo que postei é lib do sistema.

 

Segue a action.

Mostrar conteúdo oculto

 

 

 

Postado

@DigoleraZica eu estava achando que todos da guild ganhassem o item, por isso estava procurando essa parte no código, mas pelo que vi, só estavam ganhando 30% a mais de exp...

 

 

realCastle = {
	itemid = 10091,
	open_storage = 100005,
	guild_storage = 100006,
	dateStorages = {100007,100008,100009},
	frompos = {x = 2189, y = 522, z = 6},
	topos = {x = 2282, y = 614, z = 6},
	storages = { -- só modifique os storages se necessário
		accessTime = 100010,
		running = 100013
	}
}

function getGuildLeaderName(GuildName) -- function by vodkart
	local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE `guilds`.`name` = ".. db.escapeString(GuildName) .. ")")
	if(leader:getID() ~= -1) then 
		return leader:getDataString("name")
	end
	return nil
end

realCastle.open = function()
	setGlobalStorageValue(realCastle.open_storage,1)
	setGlobalStorageValue(realCastle.guild_storage,-1)
	setGlobalStorageValue(realCastle.storages.running, 1)
end

realCastle.close = function()
	setGlobalStorageValue(realCastle.open_storage,-1)
	local tomorrow = getTomorrowsDate()
	local tomorrowString = tomorrow[1].."/"..tomorrow[2].."/"..tomorrow[3]
	for i = 1, 3 do
		setGlobalStorageValue(realCastle.dateStorages[i], tomorrow[i])
	end
	local players = getPlayersInArea(realCastle.frompos, realCastle.topos)
	if players then
		for _, pid in pairs(players) do
			doTeleportThing(pid,getTownTemplePosition(1))
		end
	end
	if getGlobalStorageValue(realCastle.guild_storage) == -1 then
		doBroadcastMessage("[Real Castle] A batalhar terminou e nenhuma guild conseguiu dominar o castelo!")
	else
		local gname = getGuildNameByID(getGlobalStorageValue(realCastle.guild_storage)) 
		doBroadcastMessage("[Real Castle] A batalha terminou e a guild vencedora foi "..gname.."! Todos os jogadores dessa guild agora tem 30% a + de experiencia!")
		local leader = getGuildLeaderName(gname)
		local parcel = doCreateItemEx(ITEM_PARCEL)
		doAddContainerItem(parcel, realCastle.itemid, 1)
		doPlayerSendMailByName(leader, parcel) -- manda item para depot do leader
	end
	local func = db.query or db.executeQuery
	func("DELETE FROM real_castle WHERE world_id = '"..getWorldId().."'")
	func("INSERT INTO real_castle (guild_name, guild_id, tomorrow, world_id) VALUES ('"..getGuildNameByID(getGlobalStorageValue(realCastle.guild_storage)).."', '"..getGlobalStorageValue(realCastle.guild_storage).."', '"..tomorrowString.."', '"..getWorldId().."')")
	setGlobalStorageValue(realCastle.storages.running, -1)
	doSaveServer()
end

realCastle.broadcast = function(message)
	local players = getPlayersInArea(realCastle.frompos, realCastle.topos)
	if players then
		for _, pid in pairs(players) do
			doPlayerSendTextMessage(pid,MESSAGE_STATUS_WARNING,message)
		end
	end
end

realCastle.domain = function(cid)
	local guild_id = getPlayerGuildId(cid)
	setGlobalStorageValue(realCastle.guild_storage,guild_id)
	doBroadcastMessage("[Real Castle] O jogador "..getPlayerName(cid).." da guild "..getPlayerGuildName(cid).." dominou o castelo! As outras guilds têm até às 22:00 para conseguir tirar o domínio deles, não desistam!")
end

realCastle.isDominating = function(cid)
	local guild_id = getPlayerGuildId(cid)
	return guild_id == getGlobalStorageValue(realCastle.guild_storage)
end

realCastle.isOpen = function()
	return getGlobalStorageValue(realCastle.open_storage) == 1
end

--- Config by Dwarfer
realCastle.isRunning = function()
	return getGlobalStorageValue(realCastle.storages.running) ~= -1 
end

 

----------------------------------------

 

OBS: Coloquei para o item ir direto para o Depot, pq pode acontecer de o leader da guild cair ou não estar presente... ai ele recebe tanto online como offline.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

@Vodkart 

Desculpa, confundi o script. Esse que passei era o antigo.

 

Agora estou utilizando esse abaixo.

Mostrar conteúdo oculto

 

Mesmo assim fiz as alterações nesse script com oque você alterou e não funcionou está gerando o seguinte erro na distro.

imagem_2021-08-27_114220.thumb.png.e5144f770a295e1218e3d43f15e37583.png

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo