Ir para conteúdo

Featured Replies

Postado

Pessoal não sei se estou na área correta mais eu gostaria de um NPC que teleporte o player conforme o level e um item exigido.

Por exemplo.

 

Para ir até a POI quest o player teria de ser level 80+ e ter um determinado item, por exemplo, uma fire sword. Se o player atingir esses dois requisitos o NPC teleportava o player até determinada posição.

Postado

Ver se este funciona:

 

vai na pasta do seu OT/data/npc e cria um arquivo .xml com o nome do seu NPC e cola isso dentro

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="nome do NPC" script="nome_do_npc.lua" walkinterval="0">
    <health now="100" max="100"/>
    <look type="459"/>
    <parameters>
        <parameter key="module_shop" value="1"/>
        <parameter key="message_greet" value="Olá, |PLAYERNAME|! Em que posso lhe ajudar?."/>
    </parameters>
</npc>

 

agora vai na pasta do seu OT/data/npc/scripts e cria um arquivo .lua com o nome do seu npc e cola isso dentro

 

local config = {
objeto = 3581, -- ID do Objeto
level = 100, -- Level Necessário
travel = {x=993, y=1085, z=7}, - Pos onde vai ser teleportado
}

 
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "travel") then
        selfSay("Eu posso te levar para Fire Island, porem você precisa ter uma {fire sword} e level 80.", cid)
    end
    if msgcontains(msg, "fire sword") then
        selfSay("Voce realmente quer viajar para {Fire Island}?", cid)
        talkState[talkUser] = 1
    elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
        if getPlayerItemCount(cid, config.objeto) == 1 and getPlayerLevel(cid) >= config.level then
        if not isPlayerPzLocked(cid) then
            npcHandler:releaseFocus(cid)
            doPlayerRemoveItem(cid, config.objeto, 1)
            doTeleportThing(cid, config.travel)
        else
            selfSay("Voce deve estar sem battle!", cid)
        end
        elseif getPlayerItemCount(cid, config.objeto) < 1 or getPlayerLevel(cid) < config.level then
            selfSay("Desculpe, voce nao possui o item ou não tem level!", cid)
        end
    talkState[talkUser] = 0
    end
    end


 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

ele funciona assim, se o player tive com 1 item e level necessário , e estiver sem Battle, ele viaja.

 

Projeto/Serviços que desenvolvi durante esse Tempo.

[SERVIDOR] - NTO By Madara Rinnegan - Criado em 2014

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