Ir para conteúdo

Change Your Color!


Roksas

Posts Recomendados

Change Your Outfit Color!

 

Como anda pessoal? Tudo bão? Hoje venho trazer-lhes um comando que inventei, oque ele faz?

 

Você pode mudar a cor da sua roupa sem mudar o outfit, apenas falando um simples comando

 

!color cor

 

No lugar de cor você coloca o número da cor, bem legal né? Vamos á instalação...

 

Vá em data/talkactions/scripts, copie algum arquivo da pasta e cole, renomeie para change_color.lua e adicione dentro:

 

 

 

function onSay(cid, words, param)

local t = string.explode(param, " ")
local out = {
lookType = getCreatureOutfit(cid).lookType,
lookHead = t[1],
lookLegs = t[1],
lookFeet = t[1],
lookBody = t[1],
}

if not t[1] then
doPlayerSendTextMessage(cid, 20, "Insert a color in command!")
return true
end

if tonumber(t[1]) > 900 then return doPlayerSendTextMessage(cid, 20, "Colors limit is 900.") end

doSetCreatureOutfit(cid, out, -1)
doSendAnimatedText(getCreaturePosition(cid), "COLOR!", math.random(1, 255))
return true
end

 

 

 

Muito bem, agora siga para data/talkactions, abra com o bloco de notas o arquivo talkactions.xml e adicione essa tag:

 

<talkaction log="yes" words="!color;/color" event="script" value="change_color.lua"/>

 

É isso pessoal, sistema instalado! É bem simples, mas acho que pode ser útil em servers de War, ou um passa-tempo em qualquer servidor ^^

 

Thanks for see!

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

Olá.

 

Explique, por gentileza, porque utilizar string.explode, se você só usa um parâmetro em todo o script. E também porque 900 cores se só existem 132.

 

Abraços.

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

A função string.explode cria uma tabela, de uma string, onde os elementos são partes da string separados pelo segundo parâmetro da função.

 

Ou seja, se tivéssemos a string:

 

local tmp = "Roksas é bastante leigo"

 

E usássemos a string.explode do jeito que você usou.

 

local t = string.explode(tmp, " ")

 

Teríamos isso:

 

local t = {"Roksas", "é", "bastante", "leigo"}

 

Se você só utiliza um primeiro elemento da tabela, porque, diabos, gerou ela? Não era mais fácil simplesmente chamar param nas funções?

 


function onSay(cid, words, param, channel)
	if not param then
			doPlayerSendTextMessage(cid, 20, "You need to insert at least one color number.")
			return true
	end

	param = tonumber(param)
			param = math.min(param, 132)

	local outfit = getCreatureOutfit(cid)
	outfit.lookHead = param
	outfit.lookBody = param
	outfit.lookLegs = param
	outfit.lookFeet = param

	return doSetCreatureOutfit(cid, outfit, -1)
end

 

Segue abaixo um script que explora string.explode de fato

 


function onSay(cid, words, param, channel)
       if not param then
               doPlayerSendTextMessage(cid, 20, "You need to insert the desired color.")
               return true
       end

       param = tonumber(param)

       local outfit = getCreatureOutfit(cid)
       outfit.lookHead = math.min(param, 132)
       outfit.lookBody = math.min(param, 132)
       outfit.lookLegs = math.min(param, 132)
       outfit.lookFeet = math.min(param, 132)

       return doSetCreatureOutfit(cid, outfit, -1)
end

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

Sim, eu pensei em fazer desta meneira, se der uma olhada no Meu Conteúdo, verá que minhas Talkactions estão sempre assim, acabei acustumando, mas obrigado pela dica :)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...