Criando The Oracle
Página 1 de 1
Criando The Oracle
Bem, para servers que contém rookgard e não sabem botar um The Oracle aqui está ensinando... lembrando que se você fizer esse The Oracle na mtk version n vai dar por que os comandos são diferentes ;]
Começando ...
Va na pasta "npc" , copie qualquer npc que já esteja la, cole, e renomeie para The Oracle. Dentro você coloca:
Citação:
<?xml version="1.0"?>
<npc name="The Oracle" script="data/npc/scripts/oracle.lua" access="1" monster="1" speed="50" lookdir="2" pushable="0" level="100">
<health now="150" max="150"/>
<look type="2010" head="57" body="59" legs="40" feet="76"/>
</npc>
Depois, entre na pasta Scripts dentro da pasta npc, copie de qualquer um, cole, e renomeie para "oracle".
Dentro você colocará o seguinte:
Citação:
focus = 0
talk_start = 0
target = 0
following = false
attacking = false
talk_state = 0
cname = ''
vocation = 0
mainlevel = 8
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
***if focus == cid then
*** *** *** ***selfSay('Tchau.')
*** *** *** ***focus = 0
*** *** *** ***talk_start = 0
***end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
***return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
***cname = creatureGetName(cid)
msg = string.lower(msg)
***if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 4 then
***selfSay('Ola ' .. cname .. '! Voce esta preparado para encarar o seu destino?')
***talk_state = 0
***focus = cid
***talk_start = os.clock()
elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
***selfSay('Sorry, ' .. cname .. '! I talk to you in a minute.')
***elseif string.find(msg, '(%a*)bye(%a*)') and getDistanceToCreature(cid) < 4 then
***selfSay('Tchau, ' .. cname .. '!')
***talk_state = 0
***focus = 0
***talk_start = 0 ***elseif focus == cid then
***talk_start = os.clock() ***if talk_state == 0 then
***if msgcontains(msg, 'sim') then ***-- confirmando decisao
*** ***level = getPlayerLevel(cname)
*** ***if level >= mainlevel then
*** ***selfSay('Otimo! O que voce quer ser? Um knight, um paladin, um sorcerer ou um druid?')
*** ***talk_state = 1
*** ***else
*** *** ***selfSay('Lamento, voce precisa de level ' .. mainlevel .. ' para ir para mainland.')
*** ***talk_state = 0
*** ***end
***else
*** ***selfSay('Entao volte quando estiver preparado.')
*** ***talk_state = 0
***end
***elseif talk_state == 1 then ***-- telling vocation
***talk_state = 2
***if msgcontains(msg, 'sorcerer') then
*** ***selfSay('Um mistico sorcerer! Tem certeza?')
*** ***vocation = 1
***elseif msgcontains(msg, 'druid') then
*** ***selfSay('Um misterioso druid! Tem certeza?')
*** ***vocation = 2
***elseif msgcontains(msg, 'paladin') then
*** ***selfSay('Um certeiro paladin! Tem certeza?')
*** ***vocation = 3
***elseif msgcontains(msg, 'knight') then
*** ***selfSay('Um incrivel knight! Tem certeza?')
*** ***vocation = 4
***else
*** ***selfSay('Sorry, there is no such vocation.')
*** ***vocation = 0
*** ***talk_state = 1
***end
***elseif talk_state == 2 then ***-- confirmando voc
***if msgcontains(msg, 'sim') then
*** ***selfSay('Otimo! Posso te mandar pra City. Para onde voce quer ir?')
*** ***talk_state = 3
***else
*** ***selfSay('Que vocacao voce quer entao?')
*** ***talk_state = 1
***end
***elseif talk_state == 3 then ***-- telling city name
***if msgcontains(msg, 'city') then
*** ***selfSay('Boa sorte, jovem aventureiro!')
*** ***setPlayerVocation(cid,vocation)
*** ***setPlayerMasterPos(cid,160,54,7)
*** ***selfSay('/send ' .. cname .. ', 160 54 7')
*** ***talk_state = 0
*** ***focus = 0
*** ***talk_start = 0
***else
*** ***selfSay('Desculpe, nao existe essa cidade.')
*** ***talk_state = 3
***end
***end
***end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
***if (os.clock() - talk_start) > 45 then
***if focus > 0 then
*** ***selfSay('Next Please...')
***end
*** ***focus = 0
***end
if focus ~= 0 then
***if getDistanceToCreature(focus) > 5 then
***selfSay('Good bye then.')
***focus = 0
***end
end
end
~~explicando...
As coordenadas daonde eles vao assim que saem de rook e aonde eles irao nascer quando morrerem estao aki:
setPlayerMasterPos(cid,160,54,7)
selfSay('/send ' .. cname .. ', 160 54 7')
Basta mudar o x (que no caso eh o 160) o y (54) e o z (7)
Se no seu ot por acaso tiver + de uma vocaçao, como barbarian, assassin, etc..., acrescente embaixo de
elseif msgcontains(msg, 'knight') then
selfSay('Um incrivel knight! Tem certeza?')
vocation = 4
a vocation e o nome dela, ficando assim, por exemplo:
Citação:
if msgcontains(msg, 'sorcerer') then
*** ***selfSay('Um mistico sorcerer! Tem certeza?')
*** ***vocation = 1
***elseif msgcontains(msg, 'druid') then
*** ***selfSay('Um misterioso druid! Tem certeza?')
*** ***vocation = 2
***elseif msgcontains(msg, 'paladin') then
*** ***selfSay('Um certeiro paladin! Tem certeza?')
*** ***vocation = 3
***elseif msgcontains(msg, 'knight') then
*** ***selfSay('Um incrivel knight! Tem certeza?')
*** ***vocation = 4
***elseif msgcontains(msg, 'barbarian') then
*** ***selfSay('Um incrivel barbarian! Tem certeza?')
*** ***vocation = 6
***else
By Netto[center]
Começando ...
Va na pasta "npc" , copie qualquer npc que já esteja la, cole, e renomeie para The Oracle. Dentro você coloca:
Citação:
<?xml version="1.0"?>
<npc name="The Oracle" script="data/npc/scripts/oracle.lua" access="1" monster="1" speed="50" lookdir="2" pushable="0" level="100">
<health now="150" max="150"/>
<look type="2010" head="57" body="59" legs="40" feet="76"/>
</npc>
Depois, entre na pasta Scripts dentro da pasta npc, copie de qualquer um, cole, e renomeie para "oracle".
Dentro você colocará o seguinte:
Citação:
focus = 0
talk_start = 0
target = 0
following = false
attacking = false
talk_state = 0
cname = ''
vocation = 0
mainlevel = 8
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
***if focus == cid then
*** *** *** ***selfSay('Tchau.')
*** *** *** ***focus = 0
*** *** *** ***talk_start = 0
***end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
***return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
***cname = creatureGetName(cid)
msg = string.lower(msg)
***if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 4 then
***selfSay('Ola ' .. cname .. '! Voce esta preparado para encarar o seu destino?')
***talk_state = 0
***focus = cid
***talk_start = os.clock()
elseif string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
***selfSay('Sorry, ' .. cname .. '! I talk to you in a minute.')
***elseif string.find(msg, '(%a*)bye(%a*)') and getDistanceToCreature(cid) < 4 then
***selfSay('Tchau, ' .. cname .. '!')
***talk_state = 0
***focus = 0
***talk_start = 0 ***elseif focus == cid then
***talk_start = os.clock() ***if talk_state == 0 then
***if msgcontains(msg, 'sim') then ***-- confirmando decisao
*** ***level = getPlayerLevel(cname)
*** ***if level >= mainlevel then
*** ***selfSay('Otimo! O que voce quer ser? Um knight, um paladin, um sorcerer ou um druid?')
*** ***talk_state = 1
*** ***else
*** *** ***selfSay('Lamento, voce precisa de level ' .. mainlevel .. ' para ir para mainland.')
*** ***talk_state = 0
*** ***end
***else
*** ***selfSay('Entao volte quando estiver preparado.')
*** ***talk_state = 0
***end
***elseif talk_state == 1 then ***-- telling vocation
***talk_state = 2
***if msgcontains(msg, 'sorcerer') then
*** ***selfSay('Um mistico sorcerer! Tem certeza?')
*** ***vocation = 1
***elseif msgcontains(msg, 'druid') then
*** ***selfSay('Um misterioso druid! Tem certeza?')
*** ***vocation = 2
***elseif msgcontains(msg, 'paladin') then
*** ***selfSay('Um certeiro paladin! Tem certeza?')
*** ***vocation = 3
***elseif msgcontains(msg, 'knight') then
*** ***selfSay('Um incrivel knight! Tem certeza?')
*** ***vocation = 4
***else
*** ***selfSay('Sorry, there is no such vocation.')
*** ***vocation = 0
*** ***talk_state = 1
***end
***elseif talk_state == 2 then ***-- confirmando voc
***if msgcontains(msg, 'sim') then
*** ***selfSay('Otimo! Posso te mandar pra City. Para onde voce quer ir?')
*** ***talk_state = 3
***else
*** ***selfSay('Que vocacao voce quer entao?')
*** ***talk_state = 1
***end
***elseif talk_state == 3 then ***-- telling city name
***if msgcontains(msg, 'city') then
*** ***selfSay('Boa sorte, jovem aventureiro!')
*** ***setPlayerVocation(cid,vocation)
*** ***setPlayerMasterPos(cid,160,54,7)
*** ***selfSay('/send ' .. cname .. ', 160 54 7')
*** ***talk_state = 0
*** ***focus = 0
*** ***talk_start = 0
***else
*** ***selfSay('Desculpe, nao existe essa cidade.')
*** ***talk_state = 3
***end
***end
***end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
***if (os.clock() - talk_start) > 45 then
***if focus > 0 then
*** ***selfSay('Next Please...')
***end
*** ***focus = 0
***end
if focus ~= 0 then
***if getDistanceToCreature(focus) > 5 then
***selfSay('Good bye then.')
***focus = 0
***end
end
end
~~explicando...
As coordenadas daonde eles vao assim que saem de rook e aonde eles irao nascer quando morrerem estao aki:
setPlayerMasterPos(cid,160,54,7)
selfSay('/send ' .. cname .. ', 160 54 7')
Basta mudar o x (que no caso eh o 160) o y (54) e o z (7)
Se no seu ot por acaso tiver + de uma vocaçao, como barbarian, assassin, etc..., acrescente embaixo de
elseif msgcontains(msg, 'knight') then
selfSay('Um incrivel knight! Tem certeza?')
vocation = 4
a vocation e o nome dela, ficando assim, por exemplo:
Citação:
if msgcontains(msg, 'sorcerer') then
*** ***selfSay('Um mistico sorcerer! Tem certeza?')
*** ***vocation = 1
***elseif msgcontains(msg, 'druid') then
*** ***selfSay('Um misterioso druid! Tem certeza?')
*** ***vocation = 2
***elseif msgcontains(msg, 'paladin') then
*** ***selfSay('Um certeiro paladin! Tem certeza?')
*** ***vocation = 3
***elseif msgcontains(msg, 'knight') then
*** ***selfSay('Um incrivel knight! Tem certeza?')
*** ***vocation = 4
***elseif msgcontains(msg, 'barbarian') then
*** ***selfSay('Um incrivel barbarian! Tem certeza?')
*** ***vocation = 6
***else
By Netto[center]
ADM_Fox- Mensagens : 16
Data de inscrição : 24/02/2008
Idade : 29
Tópicos semelhantes
» CRIANDO PATCH!
» Criando vulcoes
» CRIANDO SITE+DEIXANDO ELE ON!
» [Iniciante] Criando monstros fantasmas
» CRIANDO SERVIDOR CRONUS-TXT
» Criando vulcoes
» CRIANDO SITE+DEIXANDO ELE ON!
» [Iniciante] Criando monstros fantasmas
» CRIANDO SERVIDOR CRONUS-TXT
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|