Ir para conteúdo
  • Cadastre-se

[Resolvido] Npc de transporte.


Posts Recomendados

Preciso de um Npc que manda o personagem pra X lugar dependendo da city.

por exemplo:

Player: Hi

Npc: Deseja ir pra quais cidades? Cidade do Papai Noel, Dos Teletubies? Do Goku?

Player: Goku

Npc: Deseja ir para cidade Goku?

Player: Yes

Npc: Você foi teletransportado pra cidade do Goku.

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

Aqui é só você fazer as modificações

vá em \data\npc e crie o npc barco.xml e coloque isso dentro dele

<?xml version="1.0" encoding="UTF-8"?>

<npc name="NOME DO NPC" script="default.lua" walkinterval="2000" floorchange="0">

<health now="185" max="185"/>

<look type="128" addons="0" head="0" body="0" legs="0" feet="0" corpse="2317"/>

<parameters>

<parameter key="module_travel" value="1"/>

<parameter key="message_greet" value="Bem vindo"/>

<parameter key="message_farewall" value="Adeus..."/>

<parameter key="message_walkaway" value="How rude!"/>

<parameter key="travel_destinations" value="CIDADE X,100,100,7,175;CIDADE Y,123,123,123,175;"/>

</parameters>

</npc>

feito é só ir no RME > File > Import >Monster/NPC e selecionar o NPC que você criou e colocar em algum lugar de sua preferência.

OBS: Em CIDADE X/Y você coloca o nome da cidade, em AZUL você coloca o preço para ir para CIDADE e em vermelho é a posição da cidade, é só ir no RME e clica em algum e vê a posição ou pelo jogo mesmo com um ADM use o comando !pos

Editado por joadson (veja o histórico de edições)

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Não funciono não, 8.60 e TFS 4.0

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

Tente isso...

<?xml version="1.0" encoding="UTF-8"?>

<npc name="NOME DO NPC" script="default.lua" walkinterval="2000" floorchange="0">

<health now="185" max="185"/>

<look type="128" addons="0" head="0" body="0" legs="0" feet="0" corpse="2317"/>

<parameters>

<parameter key="message_greet" value="Deseja ir pra quais cidades? Cidade do Papai Noel, Dos Teletubies? Do Goku?"/>

<parameter key="message_farewall" value="Adeus..."/>

<parameter key="message_walkaway" value="How rude!"/>

</parameters>

</npc>

-- start shit

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

local papai = {x=,y=,z=}

local tele = {x=,y=,z=}

local goku = {x=,y=,z=}

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

--returns how many msgs he have said already

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

if msgcontains('Papai Noel') then

doTeleportThing(cid,papai)

npcHandler:say("I will see you again.",cid)

elseif msgcontains('Teletubies') then

doTeleportThing(cid,tele)

npcHandler:say("I will see you again.",cid)

elseif msgcontains('Goku') then

doTeleportThing(cid,goku)

npcHandler:say("I will see you again.",cid)

end

Link para o post
Compartilhar em outros sites

Deu esse erro:

ippjl5.jpg

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

Tente Isso..

<npc name="NPCNAME" script="default.lua" walkinterval="2000" floorchange="0">

<health now="185" max="185"/>

<look type="128" addons="0" head="0" body="0" legs="0" feet="0" corpse="2317"/>

<parameters>

<parameter key="module_travel" value="'"/>

<parameter key="message_greet" value="Ola |PLAYERNAME| diga Travel"/>

<parameter key="message_farewall" value="Ate mais..."/>

<parameter key="message_walkaway" value="sz!"/>

<parameter key="travel_destinations" value="Cidade do Papai Noel,x,y,z,200;Teletubies,x,y,z,200;Goku,x,y,z,200;"/>

</parameters>

Namenpc = Nome do npc

HealthNow = Quantos de life o Npc vai ficar

Max = Quantos de life ele vai ter ao total

Looktype / addons / etc etc... isso voce deve saber mecher..

Nessa parte define pra onde o npc vai te levar ..

<parameter key="travel_destinations" value="Cidade do Papai Noel,x,y,z,200;Teletubies,x,y,z,200;Goku,x,y,z,200;"/>

</parameters>

Em Azul é o nome da cidade

Em Vermelho é a posição do local que o char sera teletransportado

Em Verde é o preço da viagem

não expliquei mt bem, mas acho q da pra entender.

Te Ajudei ?

REP +!

Editado por Laastzn (veja o histórico de edições)

te ajudei ?

REP +   :accept: 

 

----------------------------------

Holy Server ON-LINE

 

IP: Holyserver.no-ip.org

Site: Holyserver.no-ip.org

Versão: 8.6

 

Saiba mais no nosso site ! 

 

- Servidor online 24 horas -

Link para o post
Compartilhar em outros sites

Ja testei, fumfa não

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

\data\npc\Marujo.xml


<?xml version="1.0" encoding="UTF-8"?>

<npc name="Marujo" script="marujo.lua" walkinterval="2000" floorchange="0">

    <health now="100" max="100"/>

    <look type="151" head="17" body="54" legs="114" feet="0" addons="3"/>

	    <parameters>

    </parameters>

</npc>

\data\npc\scripts\marujo.lua
local focuses = {}

local function isFocused(cid)

    for i, v in pairs(focuses) do

        if(v == cid) then

            return true

        end

    end

    return false

end


local function addFocus(cid)

    if(not isFocused(cid)) then

        table.insert(focuses, cid)

    end

end

local function removeFocus(cid)

    for i, v in pairs(focuses) do

        if(v == cid) then

            table.remove(focuses, i)

            break

        end

    end

end

local function lookAtFocus()

    for i, v in pairs(focuses) do

        if(isPlayer(v)) then

            doNpcSetCreatureFocus(v)

            return

        end

    end

    doNpcSetCreatureFocus(0)

end



local function getPlayerMoney(cid)

    return ((getPlayerItemCount(cid, 2160) * 10000) +

    (getPlayerItemCount(cid, 2152) * 100) +

    getPlayerItemCount(cid, 2148))

end


function onCreatureDisappear(cid)

    if(isFocused(cid)) then

        selfSay("Bye!")

        removeFocus(cid)

        if(isPlayer(cid)) then --Be sure he's online

            closeShopWindow(cid)

        end

    end

end


function onCreatureAppear(cid)

end


local places = {

    ["papai noel"] = {pos={x=1, y=2, z=7}, price = 1},

    ["teletubies"] = {pos={x=1, y=2, z=7}, price = 1},

    ["goku"] = {pos={x=1018, y=1032, z=7}, price = 1},

}


function onCreatureSay(cid, type, msg)

    if((msg == "hi" or msg == "hello") and not (isFocused(cid))) then

        selfSay("Welcome, ".. getCreatureName(cid) ..".", cid)

        addFocus(cid)

    elseif((isFocused(cid)) and (msg == "travel" or msg == "sail")) then

        local str = ""

        for cityName, _ in pairs(places) do

            str = str.."{"..cityName.."} "

        end

        selfSay("Para onde voce quer viajar? "..str, cid)

    elseif((isFocused(cid)) and places[msg:lower()]) then

        if not(doPlayerRemoveMoney(cid, places[msg:lower()].price)) then

            return selfSay("Voce nao tem dinheiro", cid)

        end

        selfSay("Bye", cid)

        doTeleportThing(cid, places[msg:lower()].pos)

        removeFocus(cid)

    elseif((isFocused(cid)) and (msg == "bye" or msg == "goodbye" or msg == "cya")) then

        selfSay("Goodbye!", cid, true)

        removeFocus(cid)

    end

end


function onPlayerCloseChannel(cid)

    if(isFocused(cid)) then

        selfSay("Bye!")

        closeShopWindow(cid)

        removeFocus(cid)

    end

end


function onThink()

    for i, focus in pairs(focuses) do

        if(not isCreature(focus)) then

            removeFocus(focus)

        else

            local distance = getDistanceTo(focus) or -1

            if((distance > 4) or (distance == -1)) then

                selfSay("Hmph!")

                closeShopWindow(focus)

                removeFocus(focus)

            end

        end

    end

    lookAtFocus()

end

Link para o post
Compartilhar em outros sites

Onde edita as coordenadas?

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

local places = {

    ["papai noel"] = {pos={x=1, y=2, z=7}, price = 1},

    ["teletubies"] = {pos={x=1, y=2, z=7}, price = 1},

    ["goku"] = {pos={x=1018, y=1032, z=7}, price = 1},

}
[nome] = {pos = {x=1234, y=132456, z=67}, price = 15346},

Link para o post
Compartilhar em outros sites

Extremamente funcional, obrigado, reputado

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

\data\npc\Marujo.xml


<?xml version="1.0" encoding="UTF-8"?>

<npc name="Marujo" script="marujo.lua" walkinterval="2000" floorchange="0">

    <health now="100" max="100"/>

    <look type="151" head="17" body="54" legs="114" feet="0" addons="3"/>

        <parameters>

    </parameters>

</npc>

\data\npc\scripts\marujo.lua
local focuses = {}

local function isFocused(cid)

    for i, v in pairs(focuses) do

        if(v == cid) then

            return true

        end

    end

    return false

end


local function addFocus(cid)

    if(not isFocused(cid)) then

        table.insert(focuses, cid)

    end

end

local function removeFocus(cid)

    for i, v in pairs(focuses) do

        if(v == cid) then

            table.remove(focuses, i)

            break

        end

    end

end

local function lookAtFocus()

    for i, v in pairs(focuses) do

        if(isPlayer(v)) then

            doNpcSetCreatureFocus(v)

            return

        end

    end

    doNpcSetCreatureFocus(0)

end



local function getPlayerMoney(cid)

    return ((getPlayerItemCount(cid, 2160) * 10000) +

    (getPlayerItemCount(cid, 2152) * 100) +

    getPlayerItemCount(cid, 2148))

end


function onCreatureDisappear(cid)

    if(isFocused(cid)) then

        selfSay("Bye!")

        removeFocus(cid)

        if(isPlayer(cid)) then --Be sure he's online

            closeShopWindow(cid)

        end

    end

end


function onCreatureAppear(cid)

end


local places = {

    ["papai noel"] = {pos={x=1, y=2, z=7}, price = 1},

    ["teletubies"] = {pos={x=1, y=2, z=7}, price = 1},

    ["goku"] = {pos={x=1018, y=1032, z=7}, price = 1},

}


function onCreatureSay(cid, type, msg)

    if((msg == "hi" or msg == "hello") and not (isFocused(cid))) then

        selfSay("Welcome, ".. getCreatureName(cid) ..".", cid)

        addFocus(cid)

    elseif((isFocused(cid)) and (msg == "travel" or msg == "sail")) then

        local str = ""

        for cityName, _ in pairs(places) do

            str = str.."{"..cityName.."} "

        end

        selfSay("Para onde voce quer viajar? "..str, cid)

    elseif((isFocused(cid)) and places[msg:lower()]) then

        if not(doPlayerRemoveMoney(cid, places[msg:lower()].price)) then

            return selfSay("Voce nao tem dinheiro", cid)

        end

        selfSay("Bye", cid)

        doTeleportThing(cid, places[msg:lower()].pos)

        removeFocus(cid)

    elseif((isFocused(cid)) and (msg == "bye" or msg == "goodbye" or msg == "cya")) then

        selfSay("Goodbye!", cid, true)

        removeFocus(cid)

    end

end


function onPlayerCloseChannel(cid)

    if(isFocused(cid)) then

        selfSay("Bye!")

        closeShopWindow(cid)

        removeFocus(cid)

    end

end


function onThink()

    for i, focus in pairs(focuses) do

        if(not isCreature(focus)) then

            removeFocus(focus)

        else

            local distance = getDistanceTo(focus) or -1

            if((distance > 4) or (distance == -1)) then

                selfSay("Hmph!")

                closeShopWindow(focus)

                removeFocus(focus)

            end

        end

    end

    lookAtFocus()

end

+rep, mas só tem um erro, quando você fala hi, travel , ele responde os nomes das city tudo junto exemplo... Você quer viajar para papai noel teletubies goku tem como você colocar para ter virgulas e ponto de interrogação no final em azul claro como mensagem comum exemplo... Você quer viajar para papai noel, temetumbies, goku? E se puder só pra premmy viajar eu ficaria agradecido.

edit: cheguei no limite de +reps, amanah eu adiciono.

Editado por tiagoduuarte (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo