Primeiro tens que ir em data/XML/outfits.xml e colar as tags dos novos outfits.
Exemplo:
<outfit id="25"> <list gender="0-3" lookType="159" name="Elf"/> </outfit> <outfit id="26"> <list gender="0-3" lookType="160" name="Dwarf"/> </outfit>
Explicando:
outfit id = você coloca o numero de identificação, veja o numero da ultima outfit id e coloque o proximo numero, obs: "não é o numero da outfit".
gender = male e female.
looktype = agora sim e o numero correspondente a outfit do monstro, vc pode descobrir looks diferentes usando o comando "/newtype numero".
name = nome que vai aparecer na hra de escolher a out.
Você ainda pode usar a tag apenas para premium usar o out, ficaria assim:
<outfit id="25" premium="yes">
Depois disso os players ja poderão escolher as outfits de monstros.
Agora as que você quiser que os player só possam usar depois de comprar no npc, use tags com tags diferentes, assim:
<outfit id="25" quest="40850"> <list gender="0-3" lookType="159" name="Elf"/> </outfit> <outfit id="26" quest="40851"> <list gender="0-3" lookType="160" name="Dwarf"/> </outfit>
Ou, apenas premium que comprarem no npc, basta adicionar a tag do premium.
Agora criando o npc, vai na pasta data/npc/ duplica um arquivo e nomeia para "Monsterout Seller" sem as aspas e nele cole:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Monsterout Seller" script="outseller.lua" walkinterval="2000" floorchange="0">
<health now="999999" max="999999"/>
<look type="12" corpse="2212"/> <!-- troque o looktype para o outfit que o npc vai estar -->
<parameters>
<parameter key="message_greet" value="Eu vendo {monster outfits}!."/>
</parameters>
</npc>
Agora em data/npc/scripts, duplica um arquivo e nomeia para "outseller" sem as aspas e nele cole:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if msgcontains(msg, 'monster outfits') then
selfSay('I Sell outfit {Elf}, {Dwarf}. For 10k each.', cid)
talkState[talkUser] = 2
elseif talkState[talkUser] == 2 then
if msgcontains(msg, 'Elf') then
if (doPlayerRemoveMoney(cid, 10000)) then -- preço que custara o out de elf
doSendMagicEffect(getCreaturePosition(cid), 30) -- effect que o player recebera
selfSay('Você recebeu o Elf Outfit.', cid)
setPlayerStorageValue(cid, 40850) -- aqui você poem o nomero da quest que você setou no outfit.xml para o elf
else
selfSay('Você não possui dinheiro suficiente.', cid)
end
talkState[talkUser] = 3
elseif msgcontains(msg, 'Dwarf') then
if (doPlayerRemoveMoney(cid, 10000)) then -- preço que custara o out de dwarf
doSendMagicEffect(getCreaturePosition(cid), 30) -- effect que o player recebera
selfSay('Você recebeu o Dwarf Outfit.', cid)
setPlayerStorageValue(cid, 40851) -- aqui você poem o nomero da quest que você setou no outfit.xml para o elf
else
selfSay('Você não possui dinheiro suficiente.', cid)
end
talkState[talkUser] = 1
else
selfSay('Não posso realizar comprar outfit monster.', cid)
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Agora sóh adicionar o npc no mapa e testar! Fiz rapidinho então ficou meia boca, quando tiver mais tempo ageito o código para ficar mais facil.






info
Grupo: Campones
Registrado: 29/01/12
Posts: 11
Reputação: 0
Char no Tibia: Cadeachinela
Tipo do script: Slayer Yourots v11
Protocolo (versão do Tibia): 8.40
Servidor utilizado: The Forgotten Server
Nível de experiência:
Adicionais/Informações: quero um npc que venda addon de mostros.
Valendo Rep+.