Jump to content
×
×
  • Create New...
  • 0

Talkaction para verificar a quantidade de skills


Question

Versão do Servidor: TFS - 1.2
Tipo de Script: talkaction
Código:
 
function onSay(cid, words, param)
if(param == '') then
doPlayerSendTextMessage(cid, 6, "\nSeu skill club é: " .. player:getSkillLevel(SKILL_CLUB) .. "")
return true
end

if isPremium(cid) == TRUE then
local pid = getPlayerByNameWildcard(param)
if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O jogador com o nome " .. param .. " não esta online ou não existe.")
return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nSkill club de [ " .. getCreatureName(pid) .. " ] " .. player:getSkillLevel(SKILL_CLUB) .. "")
return true
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Apenas jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")
end
return true
end

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 to post
Share on other sites

15 answers to this question

Recommended Posts

  • 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.

Edited by Yan18
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other 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) .. ".")
Edited by vitorelias
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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?

Edited by Yan18
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now