Ir para conteúdo
  • 0
Pepeco

Scripting Change outfit onEquip/onDeEquip

Pergunta

Pepeco    4
Pepeco

Base:  TFS 1.2

Qual a sua pergunta?

Quando eu equipo o "Capacete", ele muda normalmente o outfit (se alguem souber algum modo de deixar infinito), mas quando eu tiro o "Capacete" ele não volta para a outfit normal, fiz vários testes e não consegui. (Não manjo do TFS 1.2)

 

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler

local _config = {
	["Capacete"] = {id = 7901, looktype_J = 101, looktype_R = 101}
}
function onEquip(player, item)
	local condition = Condition(CONDITION_OUTFIT)
	local lookType_J = _config[item:getName()].looktype_J
	local lookType_R = _config[item:getName()].looktype_R
	local playerOutfit = player:getOutfit()

	if player:getVocation():getId() == 3 then
		playerOutfit.lookType = lookType_J
	elseif player:getVocation():getId() == 1 then
		playerOutfit.lookType = lookType_R
	else
		player:sendTextMessage(MESSAGE_STATUS_WARNING, "Ocorreu um erro, contate a Staff. Error: MVOnEquipMOTO.")
		return false
	end

	condition:setTicks(5000 * 5000 * 5000)
	condition:setOutfit(playerOutfit)
	player:addCondition(condition)
	return true
end

function onDeEquip(player)
	local condition = Condition(CONDITION_OUTFIT)
	player:removeCondition(condition)
	return true
end 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 respostass a esta questão

Recommended Posts

  • 1
Pepeco    4
Pepeco

@Erondino exatamente isso

Mas quando eu tiro essa linha, ele fica com a outfit e sai logo em seguida
 

Spoiler

<movevent event="DeEquip" itemid="7901" slot="head" function="onDeEquipItem" script="motos.lua" />

<movevent event="Equip" itemid="7901" slot="head" function="onEquipItem" script="motos.lua" />

 

Obs: Eu consegui fazer, para quem está com a mesma duvida, irei postar o script. Eu apenas mudei para 

Spoiler

doSetCreatureOutfit(player, playerOutfit, -1)

Script inteiro

Spoiler

local _config = {
    ["Capacete"] = {id = 7901, looktype_J = 101, looktype_R = 101}
}
function onEquip(player, item)
    local lookType_J = _config[item:getName()].looktype_J
    local lookType_R = _config[item:getName()].looktype_R
    local playerOutfit = player:getOutfit()

    if player:getVocation():getId() == 3 then
        playerOutfit.lookType = lookType_J
    elseif player:getVocation():getId() == 1 then
        playerOutfit.lookType = lookType_R
    else
        player:sendTextMessage(MESSAGE_STATUS_WARNING, "Ocorreu um erro, contate a Staff. Error: MVOnEquipMOTO.")
        return false
    end

    doSetCreatureOutfit(player, playerOutfit, -1)
    return true
end

function onDeEquip(player)
    player:removeCondition(CONDITION_OUTFIT)
    return true
end

 

Editado por Pepeco

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Erondino    17
Erondino

1-Para deixar infinito remova essa linha:

condition:setTicks(5000 * 5000 * 5000)

2-Você quer que ao remover o capacete volta para a outfit antiga? Poste a tag desse script no seu movements.xml

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Majesty    1755
Majesty

O autor do tópico resolveu a questão por conta própria e postou a solução. Este tópico está fechado agora. Se você tiver outras perguntas, crie um novo tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×