Postado Agosto 29, 2015 9 anos 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! 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" />
Postado Agosto 29, 2015 9 anos 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 trueend MELHOR SERVIÇO DE HOST " CLICK AQUi o melhor site de download; click aqui
Postado Agosto 29, 2015 9 anos 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 Agosto 29, 2015 9 anos por Bruno Lima (veja o histórico de edições)
Postado Agosto 30, 2015 9 anos 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"/> ➥ Regras | Seções OTServ | Seções BOT
Postado Agosto 30, 2015 9 anos 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.