Ir para conteúdo

Pokedex System (Basico)


brunin86

Posts Recomendados

Bom o script está simples mas esta bem funcional, blsa, vamos ao script:

 

Na pasta actions abra a pasta scripts, crie uma pasta chamada pokemon e dentro dela um arquivo LUA e nomeie-o para pokedex.lua e cole isso:

 

function onUse(cid, item, fromPos, itemEx, toPos)

 

local pokemon = itemEx.uid

local pokemons = {

{"Bulbasaur", "1.txt", 11395, 20, 100, "name", 99101},

{"Ivysaur", "2.txt", 11396, 20, 100, "Ivysaur", 99102},

}

 

for _,n in pairs(pokemons) do

if isSummon(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) >= n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) < n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need level " .. n[4] .. " to unlock this pokemon.")

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

elseif isMonster(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

end

end

 

return true

 

end

 

agora vá na pasta actions e abra o actions.xml e adicione esta tag em qualquer lugar:

 

<action itemid="xxxx" event="script" value="pokemon/pokedex.lua" allowfaruse="1" blockwalls="1"/> 

Substitua o xxxx pelo item que quer usar como pokedex.

 

------------.

•-• Agora na pasta data crie uma outra pasta chamada pokedex e salve este texto dentro da pasta pokedex e nomeie-o para nomes numerados: 1.txt, 2.txt, 3.txt ...

 

Name: Bulbasaur

Type: Grass

Requires Level: 20

 

Moves:

Quick Attack - m1 - level 20

Razor Leaf - m2 - level 20

Vine Whip - m3 - level 20

Headbutt - m4 - level 20

Leech Seed - m5 - level 22

Solar Beam - m6 - level 40

Sleep Powder - m7 - level 35

Stun Spore - m8 - level 28

Poison Powder - m9 - level 26

 

Evolutions:

 

Bulbasaur, requires level 20

Ivysaur, requires level 40

Vanusaur, requires level 80

 

Habilities:

Cut

 

Para editar nesta parte basta mudar de acordo com a legenda:

 

Vermelho : Nome. ( Mude sempre ! )

Laranja : Tipo do pokemon. ( Mude caso mudar o tipo do pokemon. ex: mudar de bulbasaur para squirtle )

Azul : Level requerido para ser usado. ( Mudar sempre ! )

Preto : Lista de movimentos. ( Mude quando possivel, para saber os movimentos acesse : Centro Pokemon - Lista de Pokemons

Rosa : Lista de Evolução do pokemon que tem o nome citado no primeiro item da legenda. ( Mude quando for mudar o tipo do pokemon )

Amarelo : Lista de habilidades ( Fly, Surf, Ride, Dig, Cut, Rock Smash, Teleport, Control Mind e None ( Use none somente quando o pokemon não puder exercer nenhuma habilidade.

 

------------.

•-• Editando Pokedex.

 

Agora vou ensinar a editar essa parte:

function onUse(cid, item, fromPos, itemEx, toPos)

 

local pokemon = itemEx.uid

local pokemons = {

{"Bulbasaur", "1.txt", 11395, 20, 100, "name", 99101},

{"Ivysaur", "2.txt", 11396, 20, 100, "Ivysaur", 99102},

}

 

for _,n in pairs(pokemons) do

if isSummon(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) >= n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) < n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need level " .. n[4] .. " to unlock this pokemon.")

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

elseif isMonster(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

end

end

 

return true

 

end

 

Configure de acordo com a legenda:

 

Vermelho : Nome do pokemon. ( Sempre mude ! )

Laranja : Arquivo que o script irá ler para mostrar o dex. ( Sempre mude ! )

Azul : Imagem que aparecerá no superior esquerdo. ( Foto do pokemon de preferência ( Sempre mude ! ) )

Cinza : Mude para o nome do pokemon citado no primeiro item da legenda

 

------------.

•-• Se der erro...

 

Se der erro basta vc ir na pasta data\lib do seu server, criar um arquivo .lua com o nome issummon.lua e adicionar isto:

 

function isSummon(sid)
   for i, pid in ipairs(getPlayersOnline()) do
       for c, cid in pairs(getCreatureSummons(pid)) do
           if (cid == sid) then
               return true
           end
       end 
   end
   return false
end  

Pronto!

 

------------.

•-• Instalando + pokemons na dex

 

Em data\actions\scripts\pokemon abra o arquivo pokedex.lua onde vc encontrará isso:

 

function onUse(cid, item, fromPos, itemEx, toPos)

 

local pokemon = itemEx.uid

local pokemons = {

{"Bulbasaur", "1.txt", 11395, 20, 100, "name", 99101},

{"Ivysaur", "2.txt", 11396, 20, 100, "Ivysaur", 99102},

}

 

for _,n in pairs(pokemons) do

if isSummon(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) >= n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) < n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need level " .. n[4] .. " to unlock this pokemon.")

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

elseif isMonster(pokemon) then

local Dex = io.open('data/pokedex/' .. n[2],'r')

if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) <= 0 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")

doPlayerAddExperience(cid, n[5])

setPlayerStorageValue(cid, n[7], 1)

elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then

doShowTextDialog(cid, n[3], Dex:read("*all"))

end

Dex:close()

end

end

 

return true

 

end

Para colocar mais, basta adicionar :

{"NOME DO POKEMON", "ARQUIVO TXT", ID DO ITEM DE FOTO, 20, 100, "NOME", 99101},

Abaixo da linha que está em laranja.

 

E também adicionar:

 

    elseif isMonster(pokemon) then
            local Dex = io.open('data/pokedex/' .. n[2],'r')
                    if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) <= 0 then
                       doShowTextDialog(cid, n[3], Dex:read("*all"))
                          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex")
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.")
                          doPlayerAddExperience(cid, n[5])
                          setPlayerStorageValue(cid, n[7], 1)
                    elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then
                       doShowTextDialog(cid, n[3], Dex:read("*all"))
                    end
                       Dex:close()

Abaixo da linha que está escrita em vermelha

 

 

Pronto e agora?

  Crie outro arquivo .txt em [b]data\pokedex[/b] correspondente ao nome do arquivo .txt que vc colocou na linha [color="#FF8C00"]laranja[/color], adicionando o que estará escrito ao dar dex.

 

Só?

  Sim, somente.

 

 

Créditos:

OT Land - 50% - Base do script.

Eu - 50% - Pelo script, e por postar para vcs. para vcs.

------------.

Ajudei ? não custa nada clicar no + no cantinho ali :D

 

Para contato add: brunin.1420@hotmail.com

Postem aqui se alguma coisa estiver errada ou se der algum erro que não consigam resolver.

Link para o comentário
Compartilhar em outros sites

Boa salvo nossas vidas =D +rep =D

 

edit:

erro =/

[02/11/2010 12:23:21] [Error - Action Interface]

[02/11/2010 12:23:21] data/actions/scripts/pokemon/pokedex.lua:onUse

[02/11/2010 12:23:21] Description:

[02/11/2010 12:23:21] data/actions/scripts/pokemon/pokedex.lua:10: attempt to call global 'isSummon' (a nil value)

[02/11/2010 12:23:21] stack traceback:

[02/11/2010 12:23:21] data/actions/scripts/pokemon/pokedex.lua:10: in function <data/actions/scripts/pokemon/pokedex.lua:1>

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

Obrigado pro disponibilizar o sistema de dex pra gente.

Mas eu ainda n sei usar direito. Tipow, eu dou dex nele e aparece as informações. Elas são gravadas na dex? Se eu quiser ver elas de novo sem precisar dar dex de novo no poke o q eu faço?

 

E o q eu faço pra dar dex e apenas gravar a sinformações, sem ganhar exp nenhuma por isso?

Link para o comentário
Compartilhar em outros sites

Aff copiãoo, nem coloca os creditos, já tinha esse scripter na comunidade e eu não liberei para vcs postarem aqui , ainda sem meus creditos !!!

 

http://www.xtibia.com/forum/topic/143544-pokedex/page__gopid__950643#entry950643

 

Mereço pelo menos 30% dos creditos

Link para o comentário
Compartilhar em outros sites

Rip legal ein mano nao poem os creditos e ainda fala q e seu esse script ai tem no otserv. vc so deu crtl + c e colo

 

e narutox esse script e um outro melhor q o q vc posto os 2 tem no otserv br tb

Link para o comentário
Compartilhar em outros sites

@Blackzinhoo

 

Eaeew manoow, pow eu tava ocupado, entro no msn e te passo la :D

 

 

@NarutoxDDDD

 

Opa encontrei uma barata na pizza!

 

Seu topico: http://www.xtibia.com/forum/topic/143544-pokedex/page__gopid__950643#entry950643

Equivale a uma duvida do script, este script NUNCA foi postado para todos usarem ( como tutorial ), e vc n é o unico scripter daqui nao, eu faço os scripts q eu quiser mano, vc n manda em nd aki.

Eu posto o script que eu quiser, MEMBROS DO FORUM estão para ajudar, avaliar, comentar e concertar nossos erros, questionar é trabalho dos moderadores do forum, e vc n merece credito pq o script n é seu.

 

@Up

 

Esse script é MEU, com base num tutorial do OTLAND de ver informações, abrir essas coisas.

Se vc n viu eu coloquei os creditos, e n pego script nenhum do otbr, e mesmo se ja tiver la o script é MEU

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

e um otimo script mais me desculpe esse script e do wantedzin do outro forum ele feis esse script encima do do script do MaXwEllDeN...mais de qualquer forma trouce pra o xtibia suave..mais creditos para eles tbem^^

Link para o comentário
Compartilhar em outros sites

cara aki ta dano esse erro

 

data/actions/scripts/Pokemon/pokedex.lua:22: attempt to index local 'Dex' <a nil value>

in function <data/actions/scripts/Pokemon/Pokedex.lua:1>

 

se pude mi ajuda agradeço

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

e um otimo script mais me desculpe esse script e do wantedzin do outro forum ele feis esse script encima do do script do MaXwEllDeN...mais de qualquer forma trouce pra o xtibia suave..mais creditos para eles tbem^^

 

esta totalmente certo , nem ao menos o bug que o cara la em cia reclamou do issummon o cara teve capacidade de falar onde botar o script

 

soh pa cara "/

Link para o comentário
Compartilhar em outros sites

brunin86 Postou Ontem, 12:16

 

Obrigado pelo agradecimento, e sempre que puder eu estarei ajudando o pessoal :)

 

po mano intao pq n mi ajuda eu fis tudo certo e deu akele erro qui eu puis ali em cima /\

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...