Ir para conteúdo
  • 0

Talkaction para verificar a quantidade de skills


vitorelias

Pergunta

Estou tentando passar alguns comandos para meu novo servidor otx e estou tomando maior surra, já tentei fazer diversas modificações no comando e não consegui se for possível alguém me dar essa força agradeço. Esta dando esse erro abaixo pelo o que eu entendi diz não tem valor nenhum. 

 

image.png.a139a25ab88fb62f0e65d0091e53cc47.png

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

O problema ai é que o parâmetro de Userdata (player) está com uma nomenclatura e na linha 3 está com outra, ou seja, o parâmetro está como cid e na linha 3 está como player.

 

Eu refiz o script para você, substitui o código por esse: 

function onSay(player, words, param)
local total_players_online = #getOnlinePlayers()

if total_players_online > 0 then
	if param == '' then
		return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Seu Skill Club é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
	
	else		
		if player:isPremium() then	
			if player:isInGhostMode() then
				return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
		
			else
				for _, name in pairs(getOnlinePlayers()) do
					if param == name then
						return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
					else
						return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
					end	
				end
			end			
		else
			return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Somente jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")
		end	
	end	
	
else
	return true
end
	
end

 

Teste e fala se der algum problema.

Editado por Yan18
Link para o comentário
Compartilhar em outros sites

  • 0
Em 09/01/2021 em 17:17, Yan18 disse:

O problema ai é que o parâmetro de Userdata (player) está com uma nomenclatura e na linha 3 está com outra, ou seja, o parâmetro está como cid e na linha 3 está como player.

 

Eu refiz o script para você, substitui o código por esse: 


function onSay(player, words, param)
local total_players_online = #getOnlinePlayers()

if total_players_online > 0 then
	if param == '' then
		return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Seu Skill Club é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
	
	else		
		if player:isPremium() then	
			if player:isInGhostMode() then
				return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
		
			else
				for _, name in pairs(getOnlinePlayers()) do
					if param == name then
						return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
					else
						return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
					end	
				end
			end			
		else
			return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Somente jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")
		end	
	end	
	
else
	return true
end
	
end

 

Teste e fala se der algum problema.

 

Boa tarde, obrigado por ter respondido então o comando até funciona sim consigo visualizar meus skills porem não consigo ver de outro player quando uso ex; !club Vitor não aparece o skill a talkaction não funciona é como se tiveses falado algo ser ter sido o comando.

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, vitorelias disse:

 

Boa tarde, obrigado por ter respondido então o comando até funciona sim consigo visualizar meus skills porem não consigo ver de outro player quando uso ex; !club Vitor não aparece o skill a talkaction não funciona é como se tiveses falado algo ser ter sido o comando.

Boa noite, você testou o script que fiz acima?

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Yan18 disse:

Boa noite, você testou o script que fiz acima?

Sim, testei o script que você me mandou acima... 

59 minutos atrás, vitorelias disse:

Sim, testei o script que você me mandou acima... 

acho que o problema pode esta na parte do [" .. name .. "] .

eu tentei colocar essa função também não rolo. getCreatureName 

return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
Editado por vitorelias
Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, vitorelias disse:

Sim, testei o script que você me mandou acima... 

acho que o problema pode esta na parte do [" .. name .. "] .

eu tentei colocar essa função também não rolo. getCreatureName 


return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")

Qual erro que deu? Mostra na Distro.

Link para o comentário
Compartilhar em outros sites

  • 0
14 minutos atrás, vitorelias disse:

Não mostra nenhum erro no distro, é como se o player tivesse falando um comando que não existe. 

image.png.a2e13c77144c247e62ebd3a486fcdb86.png

Estranho, eu testei aqui no meu server o mesmo script e funcionou normal:

 

image.thumb.png.e82ece8d93c761570533ee7940e44037.png

 

Você reiniciou o server desligando a distro e ligando novamente? Não é bom usar comandos reloads.

Link para o comentário
Compartilhar em outros sites

  • 0
7 minutos atrás, Yan18 disse:

Estranho, eu testei aqui no meu server o mesmo script e funcionou normal:

 

image.thumb.png.e82ece8d93c761570533ee7940e44037.png

 

Você reiniciou o server desligando a distro e ligando novamente? Não é bom usar comandos reloads.

Sim, refiz tudo de novo porem com servidor fechado depois que coloquei o script abri o servidor e ainda continua com problema. Eu uso OTX 3.10

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, vitorelias disse:

Sim, refiz tudo de novo porem com servidor fechado depois que coloquei o script abri o servidor e ainda continua com problema. Eu uso OTX 3.10

Eo não conheço OTX (Recomendo TFS, bem melhor), mas se não deu erro na distro, então não é um problema. Está estranho isso, me mostra um script de uma talkaction que funciona normal do seu servidor.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 11/01/2021 em 01:43, Yan18 disse:

Eo não conheço OTX (Recomendo TFS, bem melhor), mas se não deu erro na distro, então não é um problema. Está estranho isso, me mostra um script de uma talkaction que funciona normal do seu servidor.

Boa noite desculpa demora para responder, então até queria colocar tfs mas tenho dificuldade para compilar. peguei um script que funciona no meu ot

 

function onSay(cid, words, param)
    local player = Player(cid)
    local hasAccess = player:getGroup():getAccess()
    local players = Game.getPlayers()
    local playerCount = Game.getPlayerCount()

    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.")

    local i = 0
    local msg = ""
    for k, tmpPlayer in ipairs(players) do
        local function getPlayerResets()
            local resets = tmpPlayer:getStorageValue(500)
            return resets < 0 and 0 or resets
        end

        if hasAccess or not tmpPlayer:isInGhostMode() then
            if i > 0 then
                msg = msg .. ", "
            end
            msg = msg .. tmpPlayer:getName() .. " (" .. tmpPlayer:getLevel() .. ") [" .. getPlayerResets() .."]"
            i = i + 1
        end

        if i == 10 then
            if k == playerCount then
                msg = msg .. "."
            else
                msg = msg .. ","
            end
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg)
            msg = ""
            i = 0
        end
    end

    if i > 0 then
        msg = msg .. "."
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg)
    end
    return false
end

 

Link para o comentário
Compartilhar em outros sites

  • 0
20 horas atrás, vitorelias disse:

Boa noite desculpa demora para responder, então até queria colocar tfs mas tenho dificuldade para compilar. peguei um script que funciona no meu ot

 


function onSay(cid, words, param)
    local player = Player(cid)
    local hasAccess = player:getGroup():getAccess()
    local players = Game.getPlayers()
    local playerCount = Game.getPlayerCount()

    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.")

    local i = 0
    local msg = ""
    for k, tmpPlayer in ipairs(players) do
        local function getPlayerResets()
            local resets = tmpPlayer:getStorageValue(500)
            return resets < 0 and 0 or resets
        end

        if hasAccess or not tmpPlayer:isInGhostMode() then
            if i > 0 then
                msg = msg .. ", "
            end
            msg = msg .. tmpPlayer:getName() .. " (" .. tmpPlayer:getLevel() .. ") [" .. getPlayerResets() .."]"
            i = i + 1
        end

        if i == 10 then
            if k == playerCount then
                msg = msg .. "."
            else
                msg = msg .. ","
            end
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg)
            msg = ""
            i = 0
        end
    end

    if i > 0 then
        msg = msg .. "."
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg)
    end
    return false
end

 

 

Sobre compilar TFS, vou aproveitar a PM que você me mandou e te respondo lá um bom tutorial para compilar TFS, muito melhor que OTX. Vou te passar lá o tutorial porque isso não tem relação com a dúvida não do tópico.

 

A nomenclatura parece a mesma da TFS, estranho não ter funcionado, testei na minha e funcionou normal como mostrei na print. Você adicionou certinho no talkactions.xml?

Editado por Yan18
Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, Yan18 disse:

 

Sobre compilar TFS, vou aproveitar a PM que você me mandou e te respondo lá um bom tutorial para compilar TFS, muito melhor que OTX.

 

A nomenclatura parece a mesma da TFS, estranho não ter funcionado, testei na minha e funcionou normal como mostrei na print. Você adicionou certinho no talkactions.xml?

Bom dia, sim inclusive o comando até funciona e mostra a quantidade de skills só que só consigo visualizar os meus skills agora se eu for tentar ver de outro player não funciona.

Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, vitorelias disse:

Bom dia, sim inclusive o comando até funciona e mostra a quantidade de skills só que só consigo visualizar os meus skills agora se eu for tentar ver de outro player não funciona.

Substitui o código por esse:

 

function onSay(player, words, param)
local total_players_online = #getOnlinePlayers()

if total_players_online > 0 then
	if param == '' then
		return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Seu Skill Club é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
	
	else		
		if player:isPremium() then	
			if player:isInGhostMode() then
				return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
		
			else
				for index, name in pairs(getOnlinePlayers()) do	
					if index <= total_players_online then
						if param == name then
							return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")	

						else
							if index == total_players_online then
								return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
							end	
						end							
					end	
				end
			end			
		else
			return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Somente jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")
		end	
	end	
	
else
	return true
end
	
end

 

Testa e veja se continua dando problema ao tentar pegar skill de outro player online. Lembrando que ele tem que estar online e não pode estar em modo ghost (invisível).

Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, Yan18 disse:

Substitui o código por esse:

 


function onSay(player, words, param)
local total_players_online = #getOnlinePlayers()

if total_players_online > 0 then
	if param == '' then
		return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Seu Skill Club é " .. player:getSkillLevel(SKILL_CLUB) .. ".")
	
	else		
		if player:isPremium() then	
			if player:isInGhostMode() then
				return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
		
			else
				for index, name in pairs(getOnlinePlayers()) do	
					if index <= total_players_online then
						if param == name then
							return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Skill Club de [" .. name .. "] é " .. player:getSkillLevel(SKILL_CLUB) .. ".")	

						else
							if index == total_players_online then
								return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Não foi encontrado nenhum jogador online com esse nome.")
							end	
						end							
					end	
				end
			end			
		else
			return player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Somente jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")
		end	
	end	
	
else
	return true
end
	
end

 

Testa e veja se continua dando problema ao tentar pegar skill de outro player online. Lembrando que ele tem que estar online e não pode estar em modo ghost (invisível).

Não sei nem o que falar kkk cara muito obrigado mesmo, os 2 script que você me mandou estava certo o problema estava no talkaction.xml

 

antes estava assim <talkaction words="!club" script="club.lua" /> ai coloquei assim <talkaction words="!club" separator=" " script="club.lua" /> 

e funcionou normalmente cara desculpa ai kk muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
53 minutos atrás, vitorelias disse:

Não sei nem o que falar kkk cara muito obrigado mesmo, os 2 script que você me mandou estava certo o problema estava no talkaction.xml

 

antes estava assim <talkaction words="!club" script="club.lua" /> ai coloquei assim <talkaction words="!club" separator=" " script="club.lua" /> 

e funcionou normalmente cara desculpa ai kk muito obrigado.

Sem problemas haha, acontece. É chatinho mesmo as tags xml, qualquer coisa já da ruim kkk. Mas que bom que deu certo!

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...