anaosinho
-
Total de itens
31 -
Registro em
-
Última visita
Posts postados por anaosinho
-
-
Notice: Undefined index: page in C:\Program Files\VertrigoServ\www\install.php on line 40
Call Stack
# Time Memory Function Location
1 0.0029 555416 {main}( ) ..\install.php:0
( ! ) Notice: Undefined index: page in C:\Program Files\VertrigoServ\www\install.php on line 52
Call Stack
# Time Memory Function Location
1 0.0029 555416 {main}( ) ..\install.php:0
( ! ) Notice: Undefined index: page in C:\Program Files\VertrigoServ\www\install.php on line 63
Call Stack
# Time Memory Function Location
1 0.0029 555416 {main}( ) ..\install.php:0
Deu esse erro quando fui entrar no site que eu fis pro server
Por favor ajuda '-' Dou 3 +REP pra quem ajudar
=/
-
Nossa, não consegui ler as letras no começo, coloque outra cor mais legível. Arrume as imagens, estão enormes.
O resto tá bom.
Aperte F5 que as imagem serão redimensionadas '-'
-
Gostei muito do seu tutorial, acho que você poderia arrumar um jeito para as imagens ficarem maiores.
Mas em geral ficou muito bom e é um conteúdo que não temos por aqui.
Abraços.
Desculpe a demora , Imagens arrumadas
Qualquer duvida poste aqui
-
Testarei e jajá darei meu veredito!
_____________________________________________________
Bom topico, bem explicado , bem legal, mais infelizmente não vem com os corpses dos pokemons e isso me dara um dor de cabeça tremenda na hora de editar meu server... mais tá aprovado... não baixem kkk quer dizer baixem vale a pena!
_____________________________________________________________
Mais um edit esqueçam o que disse ai em cima...
Tá com tudo agora ... só uma pergunta onde acho a id do corpse pra altera-la, pois quando copio não ta indo como corpse o id (itemtype)quando vou testar abre um item nada a ver (box, terreno...) qual id devo usar?... serei grato se obter resposta '
_________________________________________________________________________________________
(y) aprovado
desculpe,depois postarei outro tutorial de como criar ids de itens,^^ usando o otitemeditor
o corpse se cria de uma maneira diferente
Táa ae meu novo tutorial CRIANDO ITENS E CORPSES COM IDS NOVO
-
Olha Eterno para fazer meus pokes eu num uso o item editor (ele dá o mesmo problema comigo) eu ainda estou procurando como ajustar isso....
Já sobre como colocar em 32x32 eu acho que esta imagem irá explicar:
E sobre alguns pokes em 64x64 (4 sqm) até EU tenho preguiça de fazer e o steelix é muito difícil de fazer pois ele não está no tamanho certo, que é ele ser 96x96 (9 sqm), ele está com 64x64 (4 sqm) e tem que aumentar com as proporções corretas (estou parecendo um Nerd!!) e isto é chato de fazer.... Já tentei fazer ele umas 5 vezes, mais desisti porque é muito difícil....
Aqui pra ajudar vocês sobre o corpse, e como faser o mosntro certinho tudo com imagens '---'
http://www.xtibia.com/forum/topic/157664-pokemons-formato-idc/page__p__1040020#entry1040020
-
Olhe os meus 2 topicos:
como criar novos pokemons, e como criar novos corpses ^^.
Espero que tenha ajudado
http://www.xtibia.com/forum/topic/157664-pokemons-formato-idc/page__p__1040020#entry1040020
Flww
LEMBRA DO MEU +REP OAPSKASOPK
-
Ótimo, mas evite usar links para fora do XTibia (como o do client no TibiaBR, prefira utilizar os da nossa seção de download)
Aprovado!
Ok me desculpe é que estava sem tempo para upar o client do tibia ^^
Vou editar com o client da seção
EDIT
Eii não achei o link do client no xtibia tem como me mandar? *--*
EDIT
nossa ninguem nunca mais respondeu meu tutorial fiquei Alone u.u
-
Oláaa gente ;D
Hoje eu vou mostar como criar Corpses usando o otitemeditor
No tutorial estarei mostrando como criar ID, e como adicionar o item type do item pelo Dat editor
Agora vamos lá, estarei usando um Server de Pokémon como base:
Primeiramente Baixe os programas necessários.
Download:
Ot item Editor:
http://www.4shared.com/file/ur8xZioc/otitemeditor037.html
Dat Editor:
http://www.multiupload.com/KD9NW6TMF0
Scan Ot item editor:
Scan dat Editor:
E baixe o tíbia no TibiaBR
http://tibiabr.com/Downloads/Tibia_8.54
Depois de baixar tudo, Extraia o otitemeditor, o Dat editor E o instale o tíbia 8.54
Procure deixar tudo na mesma pasta para facilitar
E pegue o Tibia.dat
E o Tibia.spr
e coloque dentro da pasta do Otitemeditor
Abra o Otitemeditor
Lembre-se se você não colocar o Tibia.dat E o Tibia.spr não ira funcionar (USE SEMPRE O DAT E O SPR DO TIBIA SE NÃO NÃO FUNCIONARA)
Clique em File / Load otb
E abra o Items.otb do seu Server que geralmente fica na pasta
Data / Items / Items.otb
Os items que aparecerão vão ser do tíbia
Mas não se preocupe Porque os itens vão funcionar como os do Pokemon.
Abra o dat editor, Vá em :
File / Open
Procure a pasta do client do seu Server, e nos seus devidos lugares abra o Tibia.dat e Tibia.spr
(USE SEMPRE O DAT E O SPR DO CLIENT QUE VOCÊ USA PARA ENTRAR NO SEU SERVER) no meu caso o de pokemon
Espere carregar e as sprites do seu client irão aparecer
As sprites irão aparecer no Canto esquerdo
Agora clique em:
File / New / Item
E os corpses aparecerão
Agora escolha o corpse que você deseja, eu vou usar o do Bayleef
Pegue o Item Type do item (Que é está na tabelinha No centro a baixo)
E Guarde.
Agora vá no Otitemeditor e Clique no + Que está ao lado do Deprecated
Escolha qualquer um dos números Abaixo ( Esse numero será o id do seu item)
Vou usar o numero 110 (GUARDE ESSE NUMERO)
Clique no numero que você escolheu E na caixinha ao lado onde esta escrito CID
Ponha o numero que eu falei pra você guardar.
Retire o Not moveable da caixinha ao lado do Cid.
Agora clique com o botão direito no item number que você escolheu e selecione NONE.
Clique em File / Save as...
E salve em cima do seu otb Antigo
Agora vá na pasta do seu Server Clique em:
Data / Items / Items.xml
E abra com o bloco de notas
Copie os dados de qualquer monstro, e cole abaixo
Agora pegue o item id que você criou (AQUELE SEGUNDO NUMERO QUE EU FALEI PARA GUARDAR (OU SEJA O ITEM ID)
E ponha encima do id antigo do item , e mude o nome do item Para “Fainted Nomedopoke”
Salve e feche.
Agora vá em:
Data / Monsters / Pokes .
Abra o XML do Pokémon que você esta editando.
E mude o corpse=" ID DO CORPO"/>
Mude o id do corpse e salve.
Prontoooo Novo corpse adicionado
CASO NÃO SAIBA CRIAR UM NOVO MONSTRO OLHE MEU OUTRO TOPICO (ENCINANDO A CRIAR POKEMONS FORMATO .IDC)
http://www.xtibia.com/forum/topic/157664-pokemons-formato-idc/
Se te ajudei dá um +REP pra min aeee Não cai o dedo
GENTE TINHA UM ERRO NO TUTORIAL, JÁ FOI CONSERTADO
Créditos
Psycho Okama : <Eooooo
FUIIIIIIIIZ
-
Testarei e jajá darei meu veredito!
_____________________________________________________
Bom topico, bem explicado , bem legal, mais infelizmente não vem com os corpses dos pokemons e isso me dara um dor de cabeça tremenda na hora de editar meu server... mais tá aprovado... não baixem kkk quer dizer baixem vale a pena!
_____________________________________________________________
Mais um edit esqueçam o que disse ai em cima...
Tá com tudo agora ... só uma pergunta onde acho a id do corpse pra altera-la, pois quando copio não ta indo como corpse o id (itemtype)quando vou testar abre um item nada a ver (box, terreno...) qual id devo usar?... serei grato se obter resposta '
_________________________________________________________________________________________
(y) aprovado
desculpe,depois postarei outro tutorial de como criar ids de itens,^^ usando o otitemeditor
o corpse se cria de uma maneira diferente
-
mas e o ataque dos novos pokemons como o da steelix? aonde poe
Embaixo , lá no xml do pokemon na linha
</flags>
<attacks>
<attack name="nome da magia (tem que existir no seu server)" interval="tempo que o mosntro usa" chance="chance de usar" range="poder da magia" min="dano minimo use sempre o menos EX: -100" max="dano maximo use sempre o menos EX: -200">
</attack>
ai vai adicionando as linhas com os novos atakes
se o atake ainda não estiver criado vá na pasta Spells crie um xlm da nova magia, edite o nome, vá no dat editor pegue o item type da magia que você quer (o efeito desejado)
volte, abra o Spells.xml adicione a sua nova magia. depois faça o que eu disse a cima.
crie uma linha no xml do seu pokemon e vá adicionando as magias ^^
use isso para faser os pokemons selvagens '-'
Se te ajudei da um +Rep ae :B
-
E tome rep pra esse cara jajá vou por a imagem de fã pra ele, mais so vou testar amanhã tomara que de certo... o servidor que eu baixei e bem complicado apesar de ser o mais completo e o svkeot tem aqui no forum!
vlw *---*
Se precisar de ajuda é só postar aqui
-
Bem ja resolvi um dos meus muitos prols... eu ja ageitei os corpos, mais depois que capturo o pokemon... vou por aonde se usa o pokemon (da bolsa pra os itens) ele não vai da um mensagem branca em baixo "you cant dress this intem" alguém sabe resolver isso?
Tem sim entre no script do portrait e coloque o novo pokemon lá
-
Vlw gente depois edito pras imagens ficarem maiores
Aa sprites arrumadas :x agora contem os 125 pokemons todos os corpses, todos as magias, e todos os portraits
-
gente to precisando que vocês me ajudem com esse script preciso dele pra amanhã :S
eu preciso que vocês arrumem pra quando a pessoas dar move com o pokemon ele fique parado no local que você mandou ;D
vlw gente aguardo resposta
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}local direction = {'4', '5', '6', '7'}-- rideflylocal ridefly = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo'}local ride = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros'}local fly = {'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo'}local flys = {[265] = {229, 2300, 350}, -- moltres[283] = {230, 2100, 350}, -- artic[199] = {224, 2600, 350}, -- zapdos[9] = {232, 2200, 525}, -- 1000[34] = {233, 2200, 525},-- two[210] = {221, 1300, 410},-- nite[80] = {222, 900, 375}, -- geot[17] = {226, 800, 400}, -- fearow[10] = {227, 1100, 410}, -- aero[67] = {216, 1000, 410}, -- chari[97] = {316, 600, 440}, -- porygon}local rides = {[93] = {128, 780, 400}, -- tauros[114] = {129, 800, 375}, -- kyuubi[220] = {130, 800, 395}, -- rapid[16] = {131, 410, 500}, -- ponyta[77] = {132, 400, 510}, -- rhyhorn[88] = {12, 900, 390}, -- arcan[493] = {492, 1000, 360}, -- shiny arca[496] = {494, 420, 420}, -- shiny vneu[292] = {293, 480, 430}, -- cristal onix[248] = {126, 450, 450}, -- onix[22] = {134, 390, 450}, -- venu[120] = {133, 750, 380}, -- dodrio[26] = {135, 420, 500}, -- doduo}local bolas = {'2222', '2223', '2224'}local ultra = {'2220', '2221', '2227'}local etudao = 9506local mind = 9507-- ROCK SMASHlocal rocksmash = {'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Poliwrath'}local erockmash = 9502local cdrocksmash = 5-- ROCK SMASH-- DIGlocal digholes = {'468', '481', '483'}local dig = {'Raticate', 'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax'}local edig = 9504local cddig = 5-- DIG-- CUTlocal cut = {'Raticate', 'Bulbasaur', 'Ivysaur', 'Venusaur', 'Charmeleon', 'Sandshrew', 'Sandslash', 'Gloom', 'Vileplume', 'Paras', 'Parasect', 'Meowth', 'Persian', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Farfetchd', 'Krabby', 'Kingler', 'Exeggutor', 'Cubone', 'Marowak', 'Tangela', 'Scyther', 'Pinsir', 'Charizard'}local ecut = 9503local cdcut = 5-- CUT-- BLINKlocal blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon'}local exhaustblink = 9501local cdblink = 50-- BLINK-- LIGHTlocal light = {'Abra', 'Kadabra', 'Alakazam', 'Magnemite', 'Magneton', 'Drowzee', 'Hypno', 'Voltorb', 'Electrode', 'Mrmime', 'Electabuzz', 'Jolteon', 'Porygon', 'Pikachu', 'Raichu'}local exhautStorage = 9500local time = 600local cd = 17-- LIGHTfunction onUse(cid, item, frompos, item2, topos)if getPlayerItemCount(cid, item2.itemid) >= 1 thenreturn falseendif exhaustion.get(cid, etudao) thendoPlayerSendCancel(cid, "Please wait a few seconds before using order again!")return trueendif isMonster(item2.uid) and item2.uid ~= getCreatureSummons(cid)[1] and item2.uid ~= cid thenif #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use order.")return trueendif exhaustion.get(cid, mind) thendoPlayerSendCancel(cid, "Your pokemon is too exhausted from the last control, this ability has 2 minutes cooldown.")return trueendif isPlayer(getCreatureMaster(item2.uid)) thendoPlayerSendCancel(cid, "You cant control the mind of someone's else pokemon.")return trueendif not isInArray({"Alakazam", "Tentacruel", "Gengar"}, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "This pokemon cant control minds.")return trueendexhaustion.set(cid, mind, 240)doCreatureSay(getCreatureSummons(cid)[1], "CONTROL MIND!", TALKTYPE_MONSTER)doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(item2.uid), 39)registerCreatureEvent(item2.uid, "Controled")doSendMagicEffect(getThingPos(item2.uid), 136)doSendMagicEffect(getThingPos(item2.uid), 134)doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 133)setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))doConvinceCreature(cid, item2.uid)if getCreatureSpeed(item2.uid) == 0 thendoChangeSpeed(item2.uid, 180)enddoCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", control "..string.lower(getCreatureName(item2.uid)).."'s mind!", 1)local cmed = item2.uidlocal cmname = getCreatureName(getCreatureSummons(cid)[1])local cmpos = getThingPos(getCreatureSummons(cid)[1])doRemoveCreature(getCreatureSummons(cid)[1])local cmzao = doSummonCreature(""..cmname.." cm", cmpos)doConvinceCreature(cid, cmzao)setPlayerStorageValue(cid, 888, 1)local function check(params)if isCreature(params.cid) thenif getPlayerStorageValue(params.cid, 888) <= 0 thenreturn trueendif not isCreature(cmed) thenlocal pkcmpos = getThingPos(getCreatureSummons(cid)[1])doRemoveCreature(getCreatureSummons(cid)[1])local item = getPlayerSlotItem(cid, 8)local pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), pkcmpos)doConvinceCreature(cid, pk)doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)registerCreatureEvent(pk, "DiePoke")registerCreatureEvent(pk, "Exp")registerCreatureEvent(cid, "PlayerPokeDeath")setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))setPlayerStorageValue(cid, 888, 0)endif params.rod == 20 thenlocal lifecmed = getCreatureMaxHealth(cmed) - getCreatureHealth(cmed)local poscmed = getThingPos(cmed)local cmeddir = getCreatureLookDir(cmed)local namecmed = getCreatureName(cmed)doRemoveCreature(getCreatureSummons(cid)[1])local back = doSummonCreature(""..namecmed.." s", poscmed)if getCreatureSpeed(back) == 0 thendoChangeSpeed(back, 180)enddoCreatureSetLookDir(back, cmeddir)doCreatureAddHealth(back, -lifecmed)local item = getPlayerSlotItem(cid, 8)local mynewpos = getThingPos(getCreatureSummons(cid)[1])doRemoveCreature(getCreatureSummons(cid)[1])pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), mynewpos)doConvinceCreature(cid, pk)doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)registerCreatureEvent(pk, "DiePoke")registerCreatureEvent(pk, "Exp")registerCreatureEvent(cid, "PlayerPokeDeath")setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))setPlayerStorageValue(cid, 888, 0)elsedoSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220)endendendfor rod = 1, 20 doaddEvent(check, rod*500, {cid = cid, rod = rod})endreturn trueendif item2.uid == cid thenif getPlayerStorageValue(cid, 888) >= 1 thendoPlayerSendCancel(cid, "You cant fly neither ride pokemons being controled.")return trueendif #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 thendoPlayerSendCancel(cid, "You need a pokemon to use order.")return trueendif getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and not isInArray(ridefly, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "You can't ride this pokemon nor fly with it.")return trueendif getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thenreturn trueendif getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and isInArray(ride, getCreatureName(getCreatureSummons(cid)[1])) thenlocal pokemon = rides[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]if getCreatureSpeed(getCreatureSummons(cid)[1]) >= 1 thendoChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))endlocal function ride(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.d thendoChangeSpeed(cid, -250)doChangeSpeed(cid, pokemon[2])exhaustion.set(cid, etudao, 4)setPlayerStorageValue(cid, 17001, 1)doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))doRemoveCreature(getCreatureSummons(cid)[1])elsedirh = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))if dirh == NORTHWEST thenif math.random(1,100) >= 51 thendirh = NORTHelsedirh = WESTendelseif dirh == SOUTHWEST thenif math.random(1,100) >= 51 thendirh = SOUTHelsedirh = WESTendelseif dirh == SOUTHEAST thenif math.random(1,100) >= 51 thendirh = SOUTHelsedirh = EASTendelseif dirh == NORTHEAST thenif math.random(1,100) >= 51 thendirh = NORTHelsedirh = EASTendendlocal dirh = dirhif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))endendendendendlocal function speed(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))endendendenddoCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", let me ride you!", 1)exhaustion.set(cid, etudao, 4)if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 thendistanc = 1elsedistanc = 0endlocal distance = distancfor i=1,12 doaddEvent(ride, pokemon[3]*i, {cid = cid, d = distance})addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})endreturn trueendif getPlayerStorageValue(cid, 17001) >= 1 thensetPlayerStorageValue(cid, 17001, 0)if getPlayerGroupId(cid) ~= 6 thensetPlayerGroupId(cid, 8)enddoCreatureSetLookDir(cid, 2)doChangeSpeed(cid, -(getCreatureSpeed(cid)))if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 thendoChangeSpeed(cid, 400*getPlayerGroupId(cid))elsedoChangeSpeed(cid, 250)enddoRemoveCondition(cid, CONDITION_OUTFIT)local item = getPlayerSlotItem(cid, 8)doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))local pk = getCreatureSummons(cid)[1]registerCreatureEvent(cid, "PlayerPokeDeath")registerCreatureEvent(pk, "DiePoke")registerCreatureEvent(pk, "Exp")setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))return trueendif getPlayerStorageValue(cid, 17000) >= 1 thenif isInArray({460, 1022, 1023}, getTileInfo(getThingPos(cid)).itemid) thendoPlayerSendCancel(cid, "You can\'t stop flying at this height!")return trueendif getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 thendoPlayerSendCancel(cid, "You can\'t stop flying above the water!")return trueendif getPlayerGroupId(cid) ~= 6 thensetPlayerGroupId(cid, 8)enddoCreatureSetLookDir(cid, 2)setPlayerStorageValue(cid, 17000, 0)doChangeSpeed(cid, -(getCreatureSpeed(cid)))if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 thendoChangeSpeed(cid, 200*getPlayerGroupId(cid))elsedoChangeSpeed(cid, 250)enddoRemoveCondition(cid, CONDITION_OUTFIT)local item = getPlayerSlotItem(cid, 8)doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))local pk = getCreatureSummons(cid)[1]registerCreatureEvent(cid, "PlayerPokeDeath")registerCreatureEvent(pk, "DiePoke")registerCreatureEvent(pk, "Exp")setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))return trueendif getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, getCreatureName(getCreatureSummons(cid)[1])) thenif getPlayerStorageValue(cid, 17000) <= 0 thenlocal pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]local function fly(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.dd thendoPlayerSendTextMessage(cid,27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower." )setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))setPlayerStorageValue(cid, 17000, 1)registerCreatureEvent(cid, "Flying")doChangeSpeed(cid, -250)doChangeSpeed(cid, pokemon[2])exhaustion.set(cid, etudao, 4)doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)doRemoveCreature(getCreatureSummons(cid)[1])elsedir = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))if dir == NORTHWEST thenif math.random(1,100) >= 51 thendir = NORTHelsedir = WESTendelseif dir == SOUTHWEST thenif math.random(1,100) >= 51 thendir = SOUTHelsedir = WESTendelseif dir == SOUTHEAST thenif math.random(1,100) >= 51 thendir = SOUTHelsedir = EASTendelseif dir == NORTHEAST thenif math.random(1,100) >= 51 thendir = NORTHelsedir = EASTendendlocal dir = dirif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))endendendendendlocal function speed(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))endendendenddoCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", lets fly!", 1)exhaustion.set(cid, etudao, 4)if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 thendistancc = 1elsedistancc = 0endlocal distancee = distanccfor i=1,12 doaddEvent(fly, pokemon[3]*i, {cid = cid, dd = distancee})addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})endreturn trueendreturn trueendend-- ROCK SMASHif item2.itemid == 1285 and getPlayerStorageValue(cid, 63215) <= 0 thenif #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use rock smash.")return trueendif not isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "This pokemon can't use rock smash.")return trueendif isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) thenif exhaustion.get(cid, erocksmash) thendoPlayerSendCancel(cid, "Please wait a few seconds before using rock smash again!")return trueendif getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thenreturn trueenddoChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))local function tocut(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 thenreturn trueendif getPlayerStorageValue(getCreatureSummons(params.cid)[1], 100) >= 1 thenreturn trueendif getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 thendoSendMagicEffect(topos, 118)doTransformItem(getTileItemById(topos, 1285).uid, 2257)exhaustion.set(cid, erocksmash, cdrocksmash)setPlayerStorageValue(getCreatureSummons(params.cid)[1], 100, 1)local function detrans(params)doTransformItem(getTileItemById(topos, 2257).uid, 1285)if isCreature(getCreatureSummons(params.ciddd)[1]) thensetPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 100, 0)endendaddEvent(detrans, 5500, {ciddd = cid})doCreatureSay(getCreatureSummons(cid)[1], "ROCK SMASH!", TALKTYPE_MONSTER)local function nmr(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))endendendendaddEvent(nmr, 400, {cid = cid})elselocal badire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)if badire == NORTHWEST thenif math.random(1,100) >= 51 thenbadire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = NORTHelsebadire = WESTendelsebadire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = WESTelsebadire = NORTHendendelseif badire == SOUTHWEST thenif math.random(1,100) >= 51 thenbadire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = SOUTHelsebadire = WESTendelsebadire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = WESTelsebadire = SOUTHendendelseif badire == SOUTHEAST thenif math.random(1,100) >= 51 thenbadire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = SOUTHelsebadire = EASTendelsebadire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = EASTelsebadire = SOUTHendendelseif badire == NORTHEAST thenif math.random(1,100) >= 51 thenbadire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = NORTHelsebadire = EASTendelsebadire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) thenbadire = EASTelsebadire = NORTHendendendlocal badire = badireif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))endendendendenddoPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", smash this rock!", 1)local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])local temk = 1000 -(2.3 * speed)addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 doaddEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})endreturn trueendend-- ROCK SMASH END-- CUTif item2.itemid == 2767 and getPlayerStorageValue(cid, 63215) <= 0 thenif #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use cut.")return trueendif not isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "This pokemon can't use cut.")return trueendif isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) thenif exhaustion.get(cid, ecut) thendoPlayerSendCancel(cid, "Please wait a few seconds before using cut again!")return trueendif getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thenreturn trueenddoChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))local function tocut(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 thenreturn trueendif getPlayerStorageValue(getCreatureSummons(params.cid)[1], 101) >= 1 thenreturn trueendif getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 thendoSendMagicEffect(topos, 141)doTransformItem(getTileItemById(topos, 2767).uid, 6216)exhaustion.set(cid, ecut, cdcut)setPlayerStorageValue(getCreatureSummons(params.cid)[1], 101, 1)local function detrans(params)doTransformItem(getTileItemById(topos, 6216).uid, 2767)if isCreature(getCreatureSummons(params.ciddd)[1]) thensetPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 101, 0)endendaddEvent(detrans, 5500, {ciddd = cid})doCreatureSay(getCreatureSummons(cid)[1], "CUT!", TALKTYPE_MONSTER)local function nmr(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))endendendendaddEvent(nmr, 400, {cid = cid})elseadire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)if adire == NORTHWEST thenif math.random(1,100) >= 51 thenadire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = NORTHelseadire = WESTendelseadire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = WESTelseadire = NORTHendendelseif adire == SOUTHWEST thenif math.random(1,100) >= 51 thenadire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = SOUTHelseadire = WESTendelseadire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = WESTelseadire = SOUTHendendelseif adire == SOUTHEAST thenif math.random(1,100) >= 51 thenadire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = SOUTHelseadire = EASTendelseadire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = EASTelseadire = SOUTHendendelseif adire == NORTHEAST thenif math.random(1,100) >= 51 thenadire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = NORTHelseadire = EASTendelseadire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) thenadire = EASTelseadire = NORTHendendendlocal adire = adireif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))endendendendenddoPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", cut this bush!", 1)local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])temk = 1000 -(2.3 * speed)addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 doaddEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})endreturn trueendend-- CUT END-- DIGif isInArray(digholes, item2.itemid) and getPlayerStorageValue(cid, 63215) <= 0 thenif #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use dig.")return trueendif not isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "This pokemon can't use dig.")return trueendif isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) thenif exhaustion.get(cid, edig) thendoPlayerSendCancel(cid, "Please wait a few seconds before using dig again!")return trueendif getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thenreturn trueenddoChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))local function tocut(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 thenreturn trueendif getPlayerStorageValue(getCreatureSummons(params.cid)[1], 99) >= 1 thenreturn trueendif getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 thendoSendMagicEffect(topos, 3)setPlayerStorageValue(getCreatureSummons(params.cid)[1], 99, 1)doTransformItem(getTileItemById(topos, item2.itemid).uid, item2.itemid+1)exhaustion.set(cid, edig, cddig)local function detrans(params)doTransformItem(getTileItemById(topos, item2.itemid+1).uid, item2.itemid)if isCreature(getCreatureSummons(params.ciddd)[1]) thensetPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 99, 0)endendaddEvent(detrans, 5500, {ciddd = cid})doCreatureSay(getCreatureSummons(cid)[1], "DIG!", TALKTYPE_MONSTER)local function nmr(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))endendendendaddEvent(nmr, 400, {cid = cid})elselocal cdire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)if cdire == NORTHWEST thenif math.random(1,100) >= 51 thencdire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = NORTHelsecdire = WESTendelsecdire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = WESTelsecdire = NORTHendendelseif cdire == SOUTHWEST thenif math.random(1,100) >= 51 thencdire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = SOUTHelsecdire = WESTendelsecdire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = WESTelsecdire = SOUTHendendelseif cdire == SOUTHEAST thenif math.random(1,100) >= 51 thencdire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = SOUTHelsecdire = EASTendelsecdire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = EASTelsecdire = SOUTHendendelseif cdire == NORTHEAST thenif math.random(1,100) >= 51 thencdire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = NORTHelsecdire = EASTendelsecdire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) thencdire = EASTelsecdire = NORTHendendendlocal cdire = cdireif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))endendendendenddoPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", open this hole!", 1)local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])temk = 1000 -(2.3 * speed)addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 doaddEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})endreturn trueendend-- DIG END-- BLINKif #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 thendoPlayerSendCancel(cid, "You need a pokemon to use order.")return trueendif not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 thenif isInArray(blink, getCreatureName(getCreatureSummons(cid)[1])) thenif exhaustion.get(cid, exhaustblink) thenif getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thendoPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")return trueenddoPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)local function move(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 thenreturn trueendif getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thenlocal function speeed(params)if isCreature(params.sum) thenif getCreatureSpeed(params.sum) == 0 thendoChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))endendendaddEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})endsetPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)return trueendlocal edire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)if edire >= 0 and edire <= 7 thenif edire == NORTHWEST thenif math.random(1,100) >= 51 thenedire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = NORTHelseedire = WESTendelseedire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = WESTelseedire = NORTHendendelseif edire == SOUTHWEST thenif math.random(1,100) >= 51 thenedire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = SOUTHelseedire = WESTendelseedire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = WESTelseedire = SOUTHendendelseif edire == SOUTHEAST thenif math.random(1,100) >= 51 thenedire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = SOUTHelseedire = EASTendelseedire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = EASTelseedire = SOUTHendendelseif edire == NORTHEAST thenif math.random(1,100) >= 51 thenedire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = NORTHelseedire = EASTendelseedire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) thenedire = EASTelseedire = NORTHendendendlocal edire = edireif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))endendendendendlocal function voltarnormal(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thenlocal function speeed(params)if isCreature(params.sum) thendoChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))endendaddEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})endsetPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)endendendlocal pois = getThingPos(item2.uid)local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])local temk = 1000 -(2.3 * speed)local SumPos = getThingPos(getCreatureSummons(cid)[1])local travelx = math.abs((topos.x) - (SumPos.x))local travely = math.abs((topos.y) - (SumPos.y))local travel = ((travelx) + (travely))addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})for i = 1, travel doaddEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})endaddEvent(voltarnormal, temk * travel, {cid = cid})exhaustion.set(cid, etudao, travel)elseif not isWalkable(topos, cid, 0, 0) thendoPlayerSendCancel(cid, "Your pokemon cannot teleport there.")return trueendif getItemName(item2.uid) == "shallow water" thendoPlayerSendCancel(cid, "Your pokemon cannot teleport there.")return trueenddoSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39)doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211)doTeleportThing(getCreatureSummons(cid)[1], topos, false)doSendMagicEffect(topos, 134)doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", teleport there!", 1)doCreatureSay(getCreatureSummons(cid)[1], "BLINK!", TALKTYPE_MONSTER)exhaustion.set(cid, exhaustblink, cdblink)return trueendreturn trueendend--- BLINK END-- LIGHT --if isCreature(item2.uid) and getCreatureMaster(item2.uid) == cid and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and item2.uid ~= cid thenif not isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) thendoPlayerSendCancel(cid, "This pokemon can't use flash.")return trueendif isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) thenif not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid thenreturn doPlayerSendCancel(cid,"Please use flash on your pokemon.")endif exhaustion.get(cid, exhautStorage) thendoPlayerSendCancel(cid,"Please wait a few seconds before using flash again!")return trueendexhaustion.set(cid, exhautStorage, cd)doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use flash!", 1)doCreatureSay(getCreatureSummons(cid)[1], "FLASH!", TALKTYPE_MONSTER)doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 28)doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)return trueendend-- LIGHT END --if #getCreatureSummons(cid) == 0 thenreturn trueendif getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 thendoPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")return trueendif getPlayerStorageValue(getCreatureSummons(cid)[1], 12) == 1 thendoPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")return trueenddoPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)local function move(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thenif getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 thenreturn trueendif getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 thenif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thenlocal function speeed(params)if isCreature(params.sum) thenif getCreatureSpeed(params.sum) == 0 thendoChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))endendendaddEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})endsetPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)setPlayerStorageValue(cid, etudao, -1)return trueendlocal dire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)if dire >= 0 and dire <= 7 thenif dire == NORTHWEST thenif math.random(1,100) >= 51 thendire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = NORTHelsedire = WESTendelsedire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = WESTelsedire = NORTHendendelseif dire == SOUTHWEST thenif math.random(1,100) >= 51 thendire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = SOUTHelsedire = WESTendelsedire = WESTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = WESTelsedire = SOUTHendendelseif dire == SOUTHEAST thenif math.random(1,100) >= 51 thendire = SOUTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = SOUTHelsedire = EASTendelsedire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = EASTelsedire = SOUTHendendelseif dire == NORTHEAST thenif math.random(1,100) >= 51 thendire = NORTHif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = NORTHelsedire = EASTendelsedire = EASTif isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) thendire = EASTelsedire = NORTHendendendlocal dire = direif getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thendoChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))elsedoPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))endendendendendlocal function voltarnormal(params)if isCreature(params.cid) thenif isCreature(getCreatureSummons(params.cid)[1]) thensetPlayerStorageValue(cid, etudao, -1)if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 thenlocal function speeed(params)if isCreature(params.sum) thenif getCreatureSpeed(params.sum) == 0 thendoChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))endendendaddEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})endsetPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)endendendlocal pois = getThingPos(item2.uid)local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])local temk = 1000 -(2.3 * speed)local SummonPos = getThingPos(getCreatureSummons(cid)[1])local travelx = math.abs((topos.x) - (SummonPos.x))local travely = math.abs((topos.y) - (SummonPos.y))local travel = ((travelx) + (travely))addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})for i = 1, travel-1 doaddEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})endaddEvent(voltarnormal, temk*travel, {cid = cid})exhaustion.set(cid, etudao, travel)return trueend -
Eae Galerinha, é meu Primeiro post no XTibia então sem pisar em mim em ;B
Procurei e não achei um tutorial assim então vou postar pra ajudar os iniciantes
Eu estarei ensinando como se adiciona sprites prontas com formato .idc
Primeira mente você precisara do programa DAT EDITOR
Download :
Pacote de Sprites Prontas Pokemons Johto Feitos Pelo Purple:
Agora com os 125 pokemons, Corpses, Magias e portraits de todos os johto:
http://www.4shared.com/file/WWLgCVbT/johtos.html
Dat Editor :
http://www.multiupload.com/KD9NW6TMF0
Scan Dat Editor: http://www.virustotal.com/file-scan/report.html?id=3c5e94e59df52ef693d12b0543aa66d6f8b0dee89a88bdb1e1cd1ca5d3d13195-1306952621
Novo Scan Pacote de Sprites :http://www.virustotal.com/file-scan/report.html?id=98c2917453f3829817cf36562a34dc627000675528a0ef62f4838cf256584da2-1303932047
Agora vamos começar
Depois de baixar o Dat Editor, extraia ele na pasta que você quiser.
Abra o dat editor, Vá em :
File / Open
Procure a pasta do client do seu Server, e nos seus devidos lugares abra o Tibia.dat e Tibia.spr
Espere carregar e as sprites do seu client irão aparecer
Agora Extraia os pokemons que vocês baixaram , e note que eles estão em formato .idc
Vá no dat editor e clique em :
Import / Import Itens
Vá ate a pasta onde você extraiu os pokemons em formato .idc, segure Ctrl e selecione todos de uma vez
As sprites irão aparecer no Canto esquerdo
Agora clique em :
File / Save
Na janelinha clique em Compile
Depois que carregar totalmente
Feixe a janelinha Más não fexe o Dat Editor
Na tabela inferior do Dat Editor tem vários itens, e um deles é o ItemType
Pegue esse numero do ItemType e grave ou copie.
Abra a pasta do seu Server, clique em :
Data / Monsters / Pokes
Copie Qualquer Arquivo XML
Renomeie para o nome do Pokemon que esta no Dat Editor
Abra o arquivo com o bloco de notas.
Mude o nome do Pokemon , e Lá onde está escrito :
Look Type = ...
Mude para o ItemType que esta no dat editor ( que eu falei pra copiar)
Volte para a pasta :
Data / Monsters
Abra o arquivo Monsters.xml
Copie qualquer Pokemon, mude o nome para o Pokémon que você criou, e no fim da linha esta escrito o
nome do Pokemon .xml
Mude para o nome do arquivo que você criou.
Lembrete sempre ponha .xml no fim
Salve tudo, e Abra o seu Server
Proonto novo Pokémon Adicionado :x
Se você quiser Adicionar os atakes novos dos pokemons fala isso:
Embaixo , lá no xml do pokemon na linha
</flags>
<attacks>
<attack name="nome da magia (tem que existir no seu server)" interval="tempo que o mosntro usa" chance="chance de usar" range="poder da magia" min="dano minimo use sempre o menos EX: -100" max="dano maximo use sempre o menos EX: -200">
</attack>
ai vai adicionando as linhas com os novos atakes
se o atake ainda não estiver criado vá na pasta Spells crie um xlm da nova magia, edite o nome, vá no dat editor pegue o item type da magia que você quer (o efeito desejado)
volte, abra o Spells.xml adicione a sua nova magia. depois faça o que eu disse a cima.
crie uma linha no xml do seu pokemon e vá adicionando as magias ^^
use isso para faser os pokemons selvagens '-'
Gentee entra no meu novo tutorial , Criando novos itens e corpses com ids proprios
See te Ajudei Dáa um +Rep Ae pro Okaminha ;B não cai o dedo \õ :smile_positivo:
Créditos:
Psycho Okama < Eoooooo
E as sprites convertidas pelo < Purple
Fuiz \õ/
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
Pokemons Formato .idc
em Tutoriais para Iniciantes
Postado
Tem pessoas que se perdem assim :S por isso deixo as imagens inteiras