Ir para conteúdo

[Encerrado] [Pedido] NPC


FlamesAdmin

Posts Recomendados

Boa noite, venho pedir um npc que no final de uma certa quest ele entregue a roupa de rank 6 para o player do tal clan, Exemplo: Player Clan Raibolt vai no npc e o npc entrega a roupa de raibolt para ele, IDS das roupas:

<outfit id="32" quest="181630">
<list gender="0" lookType="1437" name="Raibolt Legend"/>
<list gender="1" lookType="1421" name="Raibolt Legend"/>
</outfit>
<outfit id="33" quest="181631">
<list gender="0" lookType="1438" name="Seavell Queen"/>
<list gender="1" lookType="1422" name="Seavell King"/>
</outfit>
<outfit id="34" quest="181632">
<list gender="0" lookType="1434" name="Naturia Keeper"/>
<list gender="1" lookType="1423" name="Naturia Keeper"/>
</outfit>
<outfit id="35" quest="181633">
<list gender="0" lookType="1430" name="Malefic Lady"/>
<list gender="1" lookType="1428" name="Malefic Lord"/>
</outfit>
<outfit id="36" quest="181634">
<list gender="0" lookType="1432" name="Volcanic Master"/>
<list gender="1" lookType="1425" name="Volcanic Master"/>
</outfit>
<outfit id="37" quest="181635">
<list gender="0" lookType="1433" name="Wingeon Dragon"/>
<list gender="1" lookType="1424" name="Wingeon Dragon"/>
</outfit>
<outfit id="38" quest="181636">
<list gender="0" lookType="1436" name="Orebound Heroine"/>
<list gender="1" lookType="1427" name="Orebound Hero"/>
</outfit>
<outfit id="39" quest="181637">
<list gender="0" lookType="1431" name="Gardestrike Champion"/>
<list gender="1" lookType="1429" name="Gardestrike Champion"/>
</outfit>
<outfit id="40" quest="181638">
<list gender="0" lookType="1435" name="Psycraft Master"/>
<list gender="1" lookType="1426" name="Psycraft Master"/>
</outfit>

 

 

Quando o npc entregar a roupa para o player, ira teleportar o player para o CP.

 

Rep+ ae.

Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

Sabe fazer o .xml?

 

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
 
local cfg = {
    [1] = 181634,
    [2] = 181631, 
    [3] = 181636,
    [4] = 181635,
    [5] = 181633,
    [6] = 181637,
    [7] = 181638,
    [8] = 181632,
    [9] = 181630,
}
 
local outfit = cfg[getPlayerStorageValue(cid, 86228)]
 
    if msgcontains(msg, "outfit") or msgcontains(msg, "roupa") then
        if getPlayerStorageValue(cid, 86228) <= 0 then
            selfSay("Você não pertence à clan algum!", cid)
            talkState[talkUser] = 0
            return true
        elseif getPlayerStorageValue(cid, outfit) >= 1 then
            selfSay("Você já pegou sua outfit!", cid)
            talkState[talkUser] = 0
            return true
        end
        selfSay("Você gostaria de receber a outfit de rank 6 de seu respectivo clan?", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, 86228) <= 0 then       --melhor prevenir do quê remediar.
            selfSay("Você não pertence à clan algum!", cid)
            talkState[talkUser] = 0
            return true
        elseif getPlayerStorageValue(cid, outfit) >= 1 then  --melhor prevenir do quê remediar.
            selfSay("Você já pegou sua outfit!", cid)
            talkState[talkUser] = 0
            return true
        end
        selfSay("Ok, aqui está! Faça bom proveito de sua nova outfit.", cid)
        doSendMagicEffect(getThingPos(cid), 14)
        setPlayerStorageValue(cid, outfit, 1)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then
        selfSay("Tudo bem, então...", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

Sei sei, vou testar.

 

--EDIT--

Funcionou perfeitamente, só faltou isso "Quando o npc entregar a roupa para o player, ira teleportar o player para o CP."

Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

Aqui está:

 

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
 
local cfg = {
    [1] = 181634,
    [2] = 181631, 
    [3] = 181636,
    [4] = 181635,
    [5] = 181633,
    [6] = 181637,
    [7] = 181638,
    [8] = 181632,
    [9] = 181630,
}
 
local outfit = cfg[getPlayerStorageValue(cid, 86228)]
 
    if msgcontains(msg, "outfit") or msgcontains(msg, "roupa") then
        if getPlayerStorageValue(cid, 86228) <= 0 then
            selfSay("Você não pertence à clan algum!", cid)
            talkState[talkUser] = 0
            return true
        elseif getPlayerStorageValue(cid, outfit) >= 1 then
            selfSay("Você já pegou sua outfit!", cid)
            talkState[talkUser] = 0
            return true
        end
        selfSay("Você gostaria de receber a outfit de rank 6 de seu respectivo clan?", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, 86228) <= 0 then       --melhor prevenir do quê remediar.
            selfSay("Você não pertence à clan algum!", cid)
            talkState[talkUser] = 0
            return true
        elseif getPlayerStorageValue(cid, outfit) >= 1 then  --melhor prevenir do quê remediar.
            selfSay("Você já pegou sua outfit!", cid)
            talkState[talkUser] = 0
            return true
        end
        selfSay("Ok, aqui está! Faça bom proveito de sua nova outfit.", cid)
        doSendMagicEffect(getThingPos(cid), 14)
        setPlayerStorageValue(cid, outfit, 1)
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then
        selfSay("Tudo bem, então...", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...