Ir para conteúdo
  • Cadastre-se

(Resolvido)Top Effect Problema só top loga


Ir para solução Resolvido por Vodkart,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

OTX1264

Qual o motivo deste tópico? 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

Nenhum Erro no Console

 

Você tem o código disponível? Se tiver publique-o aqui: 

 local config = {
	effect = 30, -- Efeito que vai usar
	storage = 998899, -- Storage que o player precisa ter
	tempo = 30, -- Tempo em segundos 1200 - 20 minutos
	text = '--[[TOP #1]]--'
}

local PremiumEfect = CreatureEvent("PremiumEfect")

function PremiumEfect.onLogin(player)
player:registerEvent("PremiumEfect")
local resultId = db.storeQuery("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1")
	if (resultId ~= false) then
		local pid = result.getDataString(resultId, "id")
		local name = result.getDataString(resultId, "name")

		local namereal = player:getName()
		if namereal == name then
			SendEffect(player:getId())
			result.free(resultId)
			return true
		else
			return
		end
	end
end

function SendEffect(cid)
	local player = Player(cid)
		if not player then return end
			player:getPosition():sendMagicEffect(config.effect)
			player:say(config.text, TALKTYPE_MONSTER_SAY)
			addEvent(SendEffect, config.tempo*1000, player:getId())
return true
end

PremiumEfect:register()

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

Somente o TOP 1 Loga no servidor. os outros players recebem mensagem de servidor offline.

 

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites
  • Solução
local config = {
	effect = 30, -- Efeito que vai usar
	storage = 998899, -- Storage que o player precisa ter
	tempo = 30, -- Tempo em segundos 1200 - 20 minutos
	text = '--[[TOP #1]]--'
}
local PremiumEfect = CreatureEvent("PremiumEfect")
function PremiumEfect.onLogin(player)
	player:registerEvent("PremiumEfect")
	local resultId = db.storeQuery("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1")
	if (resultId ~= false) then
		local pid = result.getDataString(resultId, "id")
		local name = result.getDataString(resultId, "name")
		local namereal = player:getName()
		if namereal == name then
			SendEffect(player:getId())
		end
		result.free(resultId)
	end
	return true
end
function SendEffect(cid)
	local player = Player(cid)
	if not player then return end
	player:getPosition():sendMagicEffect(config.effect)
	player:say(config.text, TALKTYPE_MONSTER_SAY)
	addEvent(SendEffect, config.tempo*1000, player:getId())
	return true
end
PremiumEfect:register()

 

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
Em 11/11/2021 em 19:15, Vodkart disse:

local config = {
	effect = 30, -- Efeito que vai usar
	storage = 998899, -- Storage que o player precisa ter
	tempo = 30, -- Tempo em segundos 1200 - 20 minutos
	text = '--[[TOP #1]]--'
}
local PremiumEfect = CreatureEvent("PremiumEfect")
function PremiumEfect.onLogin(player)
	player:registerEvent("PremiumEfect")
	local resultId = db.storeQuery("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1")
	if (resultId ~= false) then
		local pid = result.getDataString(resultId, "id")
		local name = result.getDataString(resultId, "name")
		local namereal = player:getName()
		if namereal == name then
			SendEffect(player:getId())
		end
		result.free(resultId)
	end
	return true
end
function SendEffect(cid)
	local player = Player(cid)
	if not player then return end
	player:getPosition():sendMagicEffect(config.effect)
	player:say(config.text, TALKTYPE_MONSTER_SAY)
	addEvent(SendEffect, config.tempo*1000, player:getId())
	return true
end
PremiumEfect:register()

 

Obrigado!! Deu tudo certo.. pelo que entendi era o result.free que estava em local incorreto?

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites
3 horas atrás, xBlackWolf disse:

Obrigado!! Deu tudo certo.. pelo que entendi era o result.free que estava em local incorreto?

Negativo.

Foi o “else+return” que fez travar.

Explicação: você fez uma condição que apenas o top 1 ao logar passasse pela condição de forma correta.


Porem, ao adicionar um else, todos que não fossem top 1 iriam dar return ao logar, ou seja, o creaturescript iria fazer com que não fosse possivel logar.

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo