TA

[Resolvido] Mensagem Catch Chanel

Por Taiger, 25 de nov. de 2019 em Resolvidos

15
4.8k
TaigerT
25 de novembro de 2019 às 21:05

Boa noite galera.

Eu queria fazer uma modificação no sistema de anuncio de catch. Segue o código:

for _, oid in ipairs(getPlayersOnline()) do
            doPlayerSendChannelMessage(oid, cid,"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 5)
        end

 

Eu queria que ao invés de aparecer a mensagem de todos os pokes capturados apenas os de level >= 80 aparecesse, e shiny de qualquer level mas com mensagem em laranja. Alguém poderia me ajudar?

 

Editado Novembro 25 por Taiger

BlazerXB
26 de novembro de 2019 às 10:15

Isso é simples, verifica se o pokemon é shiny e se o seu level é maior ou igual a 80.

São essas funções que você irá usar.

isShinyName(poke), getPokeLevel(poke), MESSAGE_STATUS_CONSOLE_ORANGE

 

Obs: Os nomes das funções isSinhyName e getPokeLevel podem ser que sejam diferentes do seu servidor, porem praticamente é isso.

TaigerT
26 de novembro de 2019 às 19:12
8 horas atrás, BlazerX disse:

Isso é simples, verifica se o pokemon é shiny e se o seu level é maior ou igual a 80.

São essas funções que você irá usar.

isShinyName(poke), getPokeLevel(poke), MESSAGE_STATUS_CONSOLE_ORANGE

 

Obs: Os nomes das funções isSinhyName e getPokeLevel podem ser que sejam diferentes do seu servidor, porem praticamente é isso.

Teria como postar aqui ja adaptado ao sistema que eu postei, pq não faço a minima ideia kk.

BlazerXB
28 de novembro de 2019 às 10:43

Não quer que eu faça seu serv de poketibia todo não?

Eu mostrei o que você deve fazer e quais funções devem ser utilizadas, agora se você não consegue fazer então por que mexer com poketibia?

 

TaigerT
28 de novembro de 2019 às 12:09
1 hora atrás, BlazerX disse:

Não quer que eu faça seu serv de poketibia todo não?

Eu mostrei o que você deve fazer e quais funções devem ser utilizadas, agora se você não consegue fazer então por que mexer com poketibia?

 

Se você quiser fazer um server fica a vontade, agora se não quer ajudar é só dizer que não ou nem responder pq no tópico eu pesso ajuda e não um sermão.

Ayron5A
28 de novembro de 2019 às 14:10
Em 25/11/2019 em 21:05, Taiger disse:
Versão do Servidor: TFS - 0.3.5
Tipo de Script:
Código:
  Mostrar conteúdo oculto


 

Boa noite galera.

Eu queria fazer uma modificação no sistema de anuncio de catch. Segue o código:

for _, oid in ipairs(getPlayersOnline()) do
            doPlayerSendChannelMessage(oid, cid,"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 5)
        end

 

Eu queria que ao invés de aparecer a mensagem de todos os pokes capturados apenas os de level >= 80 aparecesse, e shiny de qualquer level mas com mensagem em laranja. Alguém poderia me ajudar?

 

Mano fiz mas não testei.

Usei as funções que o brother ali falou.

Espero ter ajudado ^^ 

Spoiler
for _, oid in ipairs(getPlayersOnline()) do
if getPokeLevel(poke) >= 80 then 
        doPlayerSendChannelMessage(oid, cid,"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 5)
	if isShinyName(poke) then
		doPlayerSendChannelMessage(oid, cid,"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 22)
		elseif getPokeLevel(poke) <= 79 and not isShinyName(poke) then
		doPlayerSendTextMessage(cid, 25, "Voce pegou um poke!")
		end
	end
end

 

 

gabrielzikaG
28 de novembro de 2019 às 15:49
Melhor resposta

@Taiger veja se é isso:

 

	if pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

Editado Novembro 28 por gabrielzika

erro de digitação

TaigerT
28 de novembro de 2019 às 16:02

Opa vlw pela ajuda rapazes, estou no serviço, chegando em casa eu testo.

5 horas atrás, gabrielzika disse:

@Taiger veja se é isso:

 

	if pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

@gabrielzika Funcionou amigo, muito obrigado. Só mais uma pergunta, para eu por também uma tabela para adicionar os pokes que eu quero que apareça a msg, como eu colocaria?

 

@Ayron5 Obrigado tb por tentar ajudar.

gabrielzikaG
29 de novembro de 2019 às 10:07

@Taiger

 

	local pokesCheck = {"Alakazam", "Blastoise"}
	if isInArray(pokesCheck, poke) or pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

Editado Novembro 29 por gabrielzika

erro de digitação

BlazerXB
29 de novembro de 2019 às 14:27

Esse Taiger nem agradece, o cara quer de mão beijada limpando a bundinha, eu falei como é que se faz e nem pra dar o rep+ pela ajuda.

TaigerT
29 de novembro de 2019 às 18:47
5 horas atrás, BlazerX disse:

Esse Taiger nem agradece, o cara quer de mão beijada limpando a bundinha, eu falei como é que se faz e nem pra dar o rep+ pela ajuda.

Eu pedi ajuda já que eu não manjo de programação, e você veio com grosseria. Mesmo assim eu te dou rep+, só tente ser mais gentil com os membros ja que isso aqui é uma comunidade.

 

@gabrielzika vou testar aqui. Obrigado

10 horas atrás, gabrielzika disse:

@Taiger

 

	local pokes = {"Alakazam", "Blastoise"}
	if isInArray(pokes, poke) or pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

Agora só aparece os pokes que estão na tabela. Aparece um erro nessa linha:

if isInArray(pokes, poke) or pokes[poke].level >= 80 or poke:find("Shiny") then

542901974_errocatch.png.e4eb8bd2f48ca6ebbb604e30196e1037.png

 

@gabrielzika se não der para corrigir deixa queto e eu fecho o tópico com sua melhor resposta, você já me ajudou muito.

Editado Novembro 29 por Taiger

darkeyrenD
29 de novembro de 2019 às 20:59

 

 

Já temos isso por aqui, a única diferença é que não lida com o level do Pokémon!

 

Bem, eu não sei qual a função do seu servidor que puxa a informação de level do Pokémon, mas seria algo assim:

 

local text_color = (string.find(poke, "Shiny") or getPokemonLevel(poke) >= 80) and TALKTYPE_CHANNEL_ORANGE or TALKTYPE_CHANNEL_W

for _, oid in ipairs(getPlayersOnline()) do
		doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", text_color, 10)
end

 

Boa sorte amigo!

gabrielzikaG
29 de novembro de 2019 às 21:38

@Taiger malz ksks, tenta agr!

 

	local pokesCheck = {"Alakazam", "Blastoise"}
	if isInArray(pokesCheck, poke) or pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

TaigerT
29 de novembro de 2019 às 22:05
26 minutos atrás, gabrielzika disse:

@Taiger malz ksks, tenta agr!

 

	local pokesCheck = {"Alakazam", "Blastoise"}
	if isInArray(pokesCheck, poke) or pokes[poke].wildLvl >= 80 or poke:find("Shiny") then
		local text_color = poke:find("Shiny") and TALKTYPE_CHANNEL_O or TALKTYPE_CHANNEL_W
		for _, oid in ipairs(getPlayersOnline()) do
			doPlayerSendChannelMessage(oid, cid, "[Catch Channel] O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."]!.", text_color, 5)
		end
	end

 

Muito obrigado mano, funcionou certinho.

TaigerT
29 de novembro de 2019 às 22:06
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.