[Mini - Tuto]Entenda O Funcionamento De Um Otserv Pokemon

caotic
Por caotic
em Tutoriais para Iniciantes

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

poketibia.png

 

 

Ola pessoal estou neste tutorial para revelar todos os fundamentos de um otserv pokemon.

Quando eu desenvolvia otservs pokemons eu sempre utilizava de base o pokemon dash.

Pokemon dash foi criado pelo brun123 o mesmo criador do PDA.

Logo apos o lançamento do PDA o pokemon dash perdeu sua popularidade mais continua sendo umas melhoras opções para o desenvolvimento de um otserv pokemon.

 

Neste tutorial vamos ver com o pokemon dash utiliza LUA e como seu funcionamento e tão perfeito.

 

PokeBalls 23313_129883283690278_357_q.jpg

 

 

As pokebolas que são famosas bolas que guardam monstrinhos que podem ser soltos pelo treinador.

No seu otserv pokemon basicamente suas pokebolas são itens normais como atributos diferentes.

A função doItemSetAttribute(....) e a responsável pelo nome,vida e etc....

 

doItemSetAttribute(item, "poke", params.poke)
doItemSetAttribute(item, "nome", params.nome)
doItemSetAttribute(item, "description", params.description)
doItemSetAttribute(item, "description", "Contains a "..i.." +1.")
doItemSetAttribute(item, "nick", ""..i.."")
r1 = math.random(1,2)
if r1 == 1 then
doItemSetAttribute(item, "gender", 3)
end
if r1 == 2 then
doItemSetAttribute(item, "gender", 4)
end

 

 

Todos estes atributos são verificados durante a action do go/back e logo seu summon veem com características únicas.

 

Vamos ao exemplo do script que eu fiz usando as funções do executavel do PDA.

 

 

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

 

return true

end

 

local pk = getCreatureSummons(cid)[1]

local pokeball = getPlayerSlotItem(cid, 8)

local pkcmpos = getThingPos(getCreatureSummons(cid)[1])

if #getCreatureSummons(cid) == 0 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Solte seu pokemon")

return true

end

 

doItemSetAttribute(pokeball.uid, "nick", ""..param.."")

doRemoveCreature(getCreatureSummons(cid)[1])

pk = doSummonCreature(getItemAttribute(pokeball.uid, "poke"):match("This is (.-)'s pokeball."), pkcmpos)

doConvinceCreature(cid, pk)

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 12)

doPlayerSendTextMessage(cid,27, "Parabens voce colocou um novo nick seu nick nove e "..param.."." )

doCreatureSetNick(getCreatureSummons(cid)[1],""..getItemAttribute(pokeball.uid, "nick").."")

doCreatureSetSkullType(pk, getItemAttribute(pokeball.uid, "gender"))

return true

end

 

 

Summons pok311.gif?w=50&h=50

 

 

Incrivelmente os summons foi uma etapa fácil para a criação dos sistema dos pokemons porque tibia já acompanha funções para summonar

 

getCreatureMaster(cid)
getCreatureSummons(cid)
doSummonCreature(name, pos)
doRemoveCreature(cid[, executeLogout = true])

 

 

Estas funções foram muito importante para que seu otserv pokemon ser construído.

A manipulação das funções e de fácil utilização mais precisa tomar algumas precações.

A função getCreatureSummons(cid) verifica TODOS os summons do player então precisamos usar # ou uma estrutura de repetição tal como for.

 

Vamos verificar se o player tem pelo menos um summon:

for _,summon in pairs(getCreatureSummons(cid)) do
if summon > 0 then
.....
return true
end

 

if #getCreatureSummons(cid)) > 0 then
....
return true
end

 

Habilidades Pokemons dpiconani006d.gif

 

 

Não foi um grande desafio criar o order sytem mais a quantidade de habilidades custo algumas horas de trabalhos.

Os famosos ride e fly foram criados usando funções tibianas o que acontece e que quando o order e clicado no player acontece uma rápida troca de outfit e a colocação de algumas storages.

Light/Rock Smash/Cut e Ditto são sistema secundários do order sytem.

 

Todas essa habilidades foram feitas em apenas uma action.

Na action do order existe varias verificações do item2 tais como itemID,Monstro e Player.

O order sytem e um desafio para a edição pois a retirada de apenas uma storage pode bugar o sistema completamente.

 

Moves Pokemonsmew_hgss.png

 

Estes foram complicados e estão ate hoje em evolução.

São muitos ataques de pokemons e diferentes de tibia os ataques foram todos construindo em talkactions separados com (m1,m2,m3,m4,m5,m6,m7,m8,m9,10,m11,m12).

Foram utilizados funções para mandar efeitos e retirar danos

 

doAreaCombatHealth(....)
doSendMagicEffect(...)

 

Tabelas

 

local flamen = createCombatArea{
{0, 0, 2, 0, 0},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 0, 0}
}

 

[6] = {x = {
  pok = wartortle,
  spell = "Bubbles",
  minLv = 20,
  ex = 8000002,
  base1 = 120,
  base2 = 135,
  dista = 4,
  bonus = 4.2,
  type = "water",
  cd = 8
   }
  }

 

 

Para os iniciantes a edição de tal script foi um pouco complicado.

Suas variáveis foram todas colocadas em tabelas deixando o script um pouco mais leve.

 

 

O script e ainda maior do que o order sytem

StyloMaldoso

a good son makes the house...;p
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 25/01/12Posts: 1593

tipo assim.. perfeito kk, vai ajuda quem não entende nada nada de pokemon\o

abraços hehe !

Project Pokémon Mysterion OpenSoures 2016.

Em breve, mais informações!

 

23vfcht.png

rDs7008

Legen ... wait for it ... dary!
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/01/11Posts: 303

Muito bom, rep+.

Eu digo que você poderia continuar adicionando mais coisas nesse tópico, e transformar isso num grande tutorial.

Mophz

The world is a dark place.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/08/12Posts: 23

Concordo com o RicardoSohnn, você deveria continuar a adicionar mais coisas neste tópico e tornar ele em um grande tutorial!

EdMignari

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/01/11Posts: 276

Parabéns cara. Muito bom esses tutoriais que não só ensinam alguma coisa, mas explicam como elas foram feitas.

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Se vocês me ajudarem a construir dando ideias de que precisa ser explicado.

Podemos fazer...

BrunooMaciell

Bruno Maciel
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 27/08/11Posts: 1919Gênero: MasculinoChar no Tibia: Bruno Maciel

0.o Nossa muito bom esse tutorial bem explicado bem organizado muito bom mesmo

 

Parabens !!

MrCatra

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/09/12Posts: 208

Adorei o tuto muito bom.

S5aHt.png

 

XTibia

Desde 20/11/2010

 

--Meus Trabalhos--

 

WebDesigner :

ModernACC

Template Poketibia v1 By MrCatra

Template WoDBO v1 By MrCatra

 

 

 

 

 

 

WebDesigner - 17/08/2012

Designer - 16/05/2012

Mapper iniciante - 10/03/2009

myukimoon

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/12/12Posts: 4

Muito Bom esse Tutorial , Pena que eu nao entendi poha nenhuma :D