Ir para conteúdo

Featured Replies

Postado

Olá galera do TK!

Estou criando um otserver e gostaria de saber como faço um doll (ou item qualquer) que dá outfit quando usá-lo.

A ideia é desativar todos os outfits de premium e criar quests que dão itens que ativam essas outfits.

Eu já pesquisei alguns dias sobre isso no google e aqui no fórum, mas não achei nada funcional para meu ot 10.41 (tfs 1.0).

 

Obrigado! :D

Meu Outfits.xml:
outfits.xml

 

    <outfit type="0" looktype="136" name="Citizen" premium="0" unlocked="1" enabled="1" />
    <outfit type="0" looktype="137" name="Hunter" premium="0" unlocked="1" enabled="1" />
    <outfit type="0" looktype="138" name="Mage" premium="0" unlocked="1" enabled="1" />
    <outfit type="0" looktype="139" name="Knight" premium="0" unlocked="1" enabled="1" />
    <outfit type="0" looktype="140" name="Noblewoman" premium="1" unlocked="1" enabled="1" />
    <outfit type="0" looktype="141" name="Summoner" premium="1" unlocked="1" enabled="1" />
    <outfit type="0" looktype="142" name="Warrior" premium="1" unlocked="1" enabled="1" />
    <outfit type="0" looktype="147" name="Barbarian" premium="1" unlocked="1" enabled="1" />

  • Respostas 6
  • Visualizações 781
  • Created
  • Última resposta

Top Posters In This Topic

Postado

tu adiciona no actions.xml 

<action uniqueid="ID do item" event="script" value="Nome do arquivo"/>

 

em scripts

 

local remove = true -- Remover ao usar?


local outfits = {
    [1234] = {out = 302},
}

-- [Item ID] = {out = ID da Outfit},

function onUse(cid, item)
    local t = outfits[item.itemid]
    
    
if t then
        
        doCreatureChangeOutfit
(cid, {lookType = t.out})
        doPlayerSendTextMessage(cid, "Voce mudou a sua outfit.")
    end
    
    
if remove then
        
        doRemoveItem
(item.uid, 1)
    end
    return true
end

Postado
  • Autor

 

tu adiciona no actions.xml 

<action uniqueid="ID do item" event="script" value="Nome do arquivo"/>

 

em scripts

 

local remove = true -- Remover ao usar?

local outfits = {

    [1234] = {out = 302},

}

-- [Item ID] = {out = ID da Outfit},

function onUse(cid, item)

    local t = outfits[item.itemid]

    

    if t then

        

        doCreatureChangeOutfit(cid, {lookType = t.out})

        doPlayerSendTextMessage(cid, "Voce mudou a sua outfit.")

    end

    

    if remove then

        

        doRemoveItem(item.uid, 1)

    end

    return true

end

 

 

Infelizmente não funcionou aqui, eu botei a blood herb como teste e o outfit do assassin, quando dei use na blood, não aconteceu nada, fiz tudo direitinho como indicado. :(

 

Notei que você copiou o código desse cara: http://www.tibiaking.com/forum/topic/45042-pedido-item-que-muda-outfit/

 

Quero lembrar que eu já tentei todos esses métodos e nenhum funcionou. Eu quero um doll que dê definitivamente uma outfit ao player, e não que mude apenas a outfit por tempo determinado.

<outfit type="0" looktype="156" name="Assassin" premium="1" unlocked="1" enabled="0" />

 

Quero que mude o enabled="0" para enabled="1", apenas para o player que usar o item.

Editado por Bruno Lima (veja o histórico de edições)

Postado

Tenta assim, não tenho certeza se vai funcionar pq estou sem base para testar:

local t = {
    removeItem = true,
	outfits = {
	[2154] = {id = 302, addons = 0},
	[2155] = {id = 303, addons = 0}
	}
}

function onUse(cid, item)
    local i = t.outfits[item.itemid]
	
	if i then
	    doPlayerAddOutfit(cid, i.id, i.addons)
	    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você recebeu um outfit.')
	end
	
	if t.removeItem then
	    doRemoveItem(item.uid, 1)
	end
   return true
end

TAG:

<action itemid="XXX" event="script" value="nome_do_arquivo.lua"/>
Postado
  • Autor

 

Tenta assim, não tenho certeza se vai funcionar pq estou sem base para testar:

local t = {
    removeItem = true,
	outfits = {
	[2154] = {id = 302, addons = 0},
	[2155] = {id = 303, addons = 0}
	}
}

function onUse(cid, item)
    local i = t.outfits[item.itemid]
	
	if i then
	    doPlayerAddOutfit(cid, i.id, i.addons)
	    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você recebeu um outfit.')
	end
	
	if t.removeItem then
	    doRemoveItem(item.uid, 1)
	end
   return true
end

TAG:

<action itemid="XXX" event="script" value="nome_do_arquivo.lua"/>

 

Wakon, obrigado pela atenção, mas infelizmente esse código tbm não funcionou, eu não manjo muito de programação, mas acredito que se modificasse o script do mount doll que eu tenho, talvez funcionasse (pode ser um script como o mount doll, que a pessoa que tenha o item, possa falar "ex: !assassin" e consiga a outfit, mas só vai conseguir usar o comando se tiver esse item. Daí eu uso o mesmo script e edito para fazer para outras outfits.):

Script da mount doll:

 

function onSay(cid, words, param)

    local table = {

     -- ["mount"] = {price = x, id = x},

        ["widow queen"] = {price = 0, id = 1}

    }

    local player, param = Player(cid), string.lower(param)

    local mountdoll_id = 9019 -- id do addon doll

    local t = table[param]

    

    if player:getItemCount(mountdoll_id) > 0 then

        if param ~= "" and t then

            if not player:hasMount(t.id) then  

                player:removeItem(t.price, 1)

                player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua mount foi adicionada!")

                Position(getThingPos(cid)):sendMagicEffect(CONST_ME_GIFT_WRAPS)

                player:addMount(t.id)

            else

                player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce ja tem esta mount.")

            end

        else

            player:sendTextMessage(MESSAGE_INFO_DESCR, "Digite novamente, algo está errado!")

        end

    else

        player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce não tem um mount doll!")

    end

end

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo