Boa Tarde galera, hoje eu vim trazer um npc que um amigo meu fez, e que eu gostei e irei posta-lo para vocês.
Ele funciona da seguinte forma: você precisa de 3 Items (se quiser colocar mais e só adicionar mais uma linha, vou fazer uma explicação depois) no meu caso, eu coloquei o Old amber, Dome Fossil, e Helix Fossil. e então eu chego no NPC, e falo: Hi, Help, e ele irá perguntar se você está com os itens que ele pediu, ai então você diz: Yes, e ele te entrega um aerodactyl (pode modifica-lo tambem). entao vamos ao script:
Vá em data/npc/script/ e cria um arquivo .lua, e cole isso:
--//
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
msg = string.lower(msg)
--\\
local need = {
--item id....quantidade
{id = 12579, qt = 1},
{id = 12580, qt = 1},
{id = 12581, qt = 1},
}
local storage = 83497 -- nem mexe
local pokemon = "Aerodactyl" -- nome do poke q vai ganha..lembrando que n tenho 100% q vai funfa ;x
--//
if msgcontains(string.lower(msg), 'city') or msgcontains(string.lower(msg), 'help') then
if getPlayerStorageValue(cid, storage) == 1 then
selfSay("você já completou minha quest!", cid)
return true
end
--//
selfSay("olá, você gostaría de trocar alguns itens e em troca eu dou um pokémon? os items necessaríos são {Old amber, Dome Fossil, Helix Fossil}!", cid)
talkState[talkUser] = 2
return true
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
if getPlayerItemCount(cid, need[1].id) < need[1].qt or getPlayerItemCount(cid, need[2].id) < need[2].qt or getPlayerItemCount(cid, need[3].id) < need [3].qt then
selfSay("você não tem todos itens necessaríos que eu pedi, volte aqui quando tive-los todos!", cid)
return true
end
for i = 1, #need do
doPlayerRemoveItem(cid, need.id, need.qt)
end
addPokeToPlayer(cid, pokemon, 0, 1, 'normal', true)
selfSay("nossa muito bom, obrigado e faça um bom proveito do seu novo pokémon!", cid)
setPlayerStorageValue(cid, storage, 1)
talkState[talkUser] = 0
return true
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Explicação:
Azul: você coloca o id dos items, e se quiser colocar mais do que 3 items, é so fazer assim:
{id = 12579, qt = 1},
{id = 12580, qt = 1},
{id = 12581, qt = 1},
{id = 12581, qt = 1}, << assim, é so da um enter, copiar e colar. ai e só mudar o id.
Verde: você coloca a quantidade de items que precisa para completar oque o NPC pede.
Vermelho: você escolhe o Pokemon que você queira que receba.
Agorá vá em data/npc/ e cria um arquivo em XML, e cole isso:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Lyu" script="troca.lua" walkinterval="0" floorchange="0" access="5" level="100" maglevel="1"> <health now="15" max="15"/> <look type="516" head="114" body="119" legs="114" feet="114" corpse="3058"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, oque voce quer de min?"/> </parameters> </npc>

Eu (por postar o NPC) Stylo maldoso (Por criar o NPC)