Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 08/18/12 em todas áreas

  1. caotic

    Lib - O que é ela e como usar.

    A pasta lib se encontra no seu otserv ele e ultilizada para a criação de funções ultilizando a propria linguagem LUA. Apos feita a função ele pode ser ultilizada em qualquer localidade em seu otserv. Para ultilizar deve ser criado um arquivo lua com os codigos das funçoes. Um exemplo de uma função function doPlayerAddStorage(cid) setPlayerStorageValue(cid, 22221, 1) return true end Nesta função adicionara a o valor 1 na storage 22221 e se fosse ultilizada por exemplo em actions executaria tal ação. Segue a estrutura function NOME DA FUNÇÃO(parâmetros) ... AÇÃO RETORNO TERMINIO DA FUNÇÃO Outro exemplo ultilizando um proprio parâmetros function doPlayerSummon(monster, pos) doSummonCreature(monster, pos) return true end Aqui uma função que sumona um monstro seguida pelo parâmetros nome do monstro e a posição. Para adicionar o paramento deve ser usado dentro de uma função o nome do parâmetros eclarado Exemplo function doPlayerSendMsg(cid, msg) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg) return true end Nela adicionamos o parâmetros msg se usamos a função A funçao que usa o parâmetros ficaria tal Ou seja se quisemos alterar o parâmetros cid para para usar a função Ficaria tal doPlayerSendTextMessage(param, MESSAGE_STATUS_CONSOLE_BLUE, msg) Para criar funçoes de verificaçoes Precisamos retonar o valor que queremos. function getPlayerPositionPz(cid) local pz = getTilePzInfo(getCreaturePosition(cid)) return pz end Como nesta que retornos o local pz mais se quisermos nos poderiamos ultilizar de tal maneira. function getPlayerPositionPz(cid) return getTilePzInfo(getCreaturePosition(cid)) end Depos poderemos usar verificaçoes como if getPlayerPositionPz(cid) then E isto gente tomara que aprenderam tudo obrigado a todos Ate mais
    3 pontos
  2. Slicer

    [Pokemon] Pda By Slicer 1.9/2.9

    [Pokemon] PDA By Slicer Pokemon dash advanced editado por slicer, vários bugs retidos. Projeto encerrado! Espero que todos tenham gostado desse 1 ano de trabalho duro! Todas as atualizações: * Leiam e sigam as instruções do Change Log dentro da pasta do patch! Downlaods: PDA By Slicer With Level System v2.9 Full -> http://www.mediafire...z2afuu75zblvmvq PDA By Slicer Without Level System v1.9 Full -> http://www.mediafire...td0l0ip9ajprrbf OTClient editado 2.8/1.8 => http://www.mediafire...1lcbs1fktpm676w Atualizações: EH OBRIGATORIO O USO DESSE CLIENT ABAIXO E USEM O .PIC TB!!!!!!!!! Client v1.9/2.9 => http://www.mediafire...77i414v1hy187fj Patch v1.9 => http://www.mediafire...da4umj3ip18jrf1 Patch v2.9 => http://www.mediafire...7nt275td9afl1fy Patch v1.9.1 => http://www.mediafire.com/?i3flwa3lrd016zl Patch v2.9.1 => http://www.mediafire.com/?m4zhjgn62uow1sp Obs: Atualizaçoes mais antigas estao dentro do spoiler acima!! OTAL.DLL: OBS: caso n esteja aparecendo a barra de moves no client normal do tibia, baixem essa .dll e coloquem na pasta onde fica o Pokemon_nibe.exe ... Otal.rar Patch Correçao! Todos olhem! Bugs na nova atualizaçao? Olhe o spoiler e veja se arruma o problema! Atualizado: 08/02/13 Créditos: Otal.rar
    2 pontos
  3. MatheusGlad

    Lib - O que é ela e como usar.

    Uma funçao nao precisa obrigatoriamente de parametros pra funcionar Ai sim faltou o parametro cid, no seu exemplo cid = nil.
    2 pontos
  4. Oneshot

    Dual Wield

    Tendo visto a crescente quantidade de pedidos por armas que possam ser usadas simultaneamente nas duas mãos, resolvi criar um tutorial apenas para esclarecer que esse código já existe compilado nas mais recentes revisões do The Forgotten Server. Você pode escolher quais itens poderão ser equipamentos nas duas mãos e claro restringir esses itens depois para apenas uma vocação. 1. Para criar seu item que pode ser equipado nas duas mãos, abra o items.xml e navegue até o ID do item desejado. Por exemplo, mostrarei abaixo o ID da Magic Sword: <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> </item> 2. Adicione o atributo dualwield com valor 1 no código XML do item. <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> <attribute key="dualwield" value="1" /> </item> Pelo que pude testar os danos não se somam, mas sim são causados dois ataques ao invés de um, ou seja a velocidade de ataque do jogador aumenta. Funciona com qualquer tipo de arma, desde swords até rods e wands. Funcional em: The Forgotten Server 0.4 rev3777 em diante
    1 ponto
  5. • Itens Para Players Premium (Testado em Poketibia)• • Bom Galera, Eu procurei pelo Xtibia e outro Sites, e nao achei nenhum tutorial sobre o caso, E vi muita gente procurando como fazer, para que um item seja usado apenas para player premium! Então vamos lá.. Vou usar como Exemplo a "Bike" que é o item mais procurado para esse tipo de Action, (Lembrando que pode ser usado em outros itens também) É bem simples!! • Se voce ja tiver o arquivo Bike.lua em Data>Actions>Scripts, Provavelmente vai estar assim • Embaixo de: Adicione : Depois procure por: E adicione embaixo: Ficando o com o Script todo assim: Se ajudei, REP++?
    1 ponto
  6. Uns dias atras estava correndo atras de um tutorial pra ensinar isso, depois de muito esforço, consegui achar, pois a maioria que sabia fazer isso, não compartilhava, então segue o tutorial ai.Esse tutorial é para que ninguem tenha acesso a account manager para trocar senha ou deletar Primeiramente vá na database do seu servidor vá em accounts procure pela conta name 1 e senha 1 (provavelmente será a primeira) depois disso vá em page access e modifique para 2 Após transfira os characters "samples" do account manager para outra conta deixe só o proprio Account Manager na acc. Em seguida abra a pasta do seu site depois abra a pasta config e logo depois abra o arquivo config.php Procure por // ACC MAKER OPTIONS config $config['site']['access_news'] = 2; // access level needed to edit news $config['site']['access_admin_panel'] = 3; // access level needed to open admin panel e modifique para // ACC MAKER OPTIONS config $config['site']['access_news'] = 3; // access level needed to edit news $config['site']['access_admin_panel'] = 3; // access level needed to open admin panel Feito isso volta a pasta do seu site e abra o arquivo accountmanagement.php logo depois do <?PHP adicione isso if($group_id_of_acc_logged == 2) $main_content .= '<h1>Account Manager Bloqueado.'; else Pronto após executar todos os passos seu account manager estará bloqueado para acessos no site Ele ficara impossibilitado de mudar o password do account manager pelo site . Credito: Desconhecido, pois de onde eu peguei, estava copia de outro trabalho, pois não peguei o original, por isso o motivo dos creditos desconhecidos
    1 ponto
  7. Insaend

    Spriting Insaend

    Bom galera eu não vou explicar tim tim por tim tim.... Por isso chamo isso de Semi-Tutorial.... E um vídeo simples filmado de como eu faço a spriting espero que gostem qualquer duvida ou sugestão postem aqui ou no canal do youtube. PS: Irei postar sempre que puder aqui..... novos videos !! Ate mas.
    1 ponto
  8. BrunooMaciell

    (Pokemon) Pokemon Venetta

    •Site: http://pokemon-venetta.weebly.com/ •Account: 1/1 •Informaçoes Do Serve• •Surf - 100% •Ride - 100% •Fly - 100% •rder - 100% •Travel System - 100% •Systema Torneio - 100% •Systema Aerodactyl - 100% •Golden Arena - 100% •Systema De Pesca Sem Vara - 100% •Barra Igual Da PxG - 100% •Systema De Police E Equipe Rocket Igual PxG - 100% •Systema De Clan - 100% •Novos Systemas - 100% •Pokemons Envuluiem Por Stones - 100% •Pokemons Sem Level - 100% •Ditto System - 100% •Tv/Can - 100% •Varias Oufits Liberadas - 100% •Cassino System - 100% •Systema De Duel - 100% •Stones Agrupaveis - 100% •Aura Em Fly,Surf,Ride - 100% •!Love - 100% •Nursa Joy - Heala Todos Os Pokemons - 100% •Bike - 100% •Novas Stones - 100% •PvP System - 100% •Loot - 100% •Kit Inicial - 100% •Pokemons - 1/2/3/4 Geraçao •Shiny E Novos Shinys - 100% •M1 Ao M12 - 100% •Gynasio System - 100% •Ataks De Pokemons - 100% •Pode Jogar Ball De Longe - 100% •Houses - 100% •Dex - 100% •Boost - 100% •Aura System - 100% •Todas AS Oufits PxG/Skve - 100% •Novas Oufits - 100% •Novos Ataks - 100% •Potion - 100% •Revive - 100% •PokeBags And PokeBackpacks - 100% •Novas Sprits Pokemons - 100% •Pokemons Inicial• •Charmander,Squirtl E Bulbasaur - 100% •Cyndaquil,Totodile E Chikorita - 100% •Torchic,Mudkip E Treecko - 100% •Chimchar,Piplup E Turtwig - 100% •Mapa• •Mapa Bem Editado •Hunts - 1/2/3/4 •Hunt De Ditto E Unown - 100% •Hunt De Crystal Onix - 100% •Hunt De Dark Abra - 100% •2 Continentes - 100% •Golden Areena - 100% •Quests - 100% •Travel - 100% •Quest Bike - 100% •Novas Quests - 100% •Novo Mapa - 100% •Saffari Zone - 100% •City Police/Esconderijo Rocket •Poke Balls• •Poke Ball - 6X •Great Ball - 9X •Saffari Ball - 10X •Super Ball - 13X •Ultra Ball - 16X •Pokemons• •E Todos Nossos Pokemons Tem Hunt 1/2/3/4 - 100% •Ataks - 100% •Novos Ataks - 100% •M1 Ao M12 - 100% •Aura System - 100% •Aura Em Fly,Surf,Ride - 100% •Boost - 100% •Novas Sprites - 100% •1 Geraçao - 100% •2 Geraçao - 100% •3 Geraçao - 100% •4 Geraçao - 100% •Shiny - 100% •Boost Maximo - 50 •Box• •Box 1 - 100% •Box 2 - 100% •Box 3 - 100% •Box 4 - 100% •Npc• •Npc - 100% •Npc Travel - 100% •Vendedor De Stones - 100% •Npc Mark - 100% •Npc Rocket/Police - 100% •Npc De Aura - 100% •NPC Oficial Janny - 100% •Npc Giovanny - 100% •Npc Torneio - 100% •Npc Venetta - 100% •Npc Name - 100% •Novos Npcs - 100% •Npc Task - 100% •Cliente• •Cliente - (Proprio) •Nosso Cliente Ele E Personalizado Pra Nao Dar Debugs •Barra Igual Da PxG •Link: No Site •Site: http://pokemon-venetta.weebly.com/
    1 ponto
  9. LuckOake

    Stop Time

    Olá galerinha Xtibiana! A partir de um pedido, fiz esse sistema que "para o tempo" para os players que estiverem a vista do caster. Vamos ao script. Talkactions.xml: <talkaction words="stop time" event="script" filter="word-spaced" value="stoptime.lua"/> stoptime.lua: Creaturescripts.xml: <event type="logout" name="StopTime" event="script" value="stoptime.lua"/> stoptime.lua: Obrigado, até.
    1 ponto
  10. (pesso que se estiver na area errada mude-o para a aera correta) bom pessoal vi algumas pessoas falando que o boost do Server pokemon Centurion estava indo até +81 e nao tinha aura, e que nao conseguiam arrumar. bem entao estou aqui para ajudalos: 1º= vamos arrumar o boost ate + 50. va em data/actions/scripts. la vai ter o boots.lua abra e cole issu la: quote]ocal ballslot = 12355 local ballslot_run = 12352[/size] [size=6]local stoneslot = 12354 local stoneslot_run = 12353[/size] [size=6]local button = 12356 local button_run = 12357[/size] [size=6]function isRunning(id) if isInArray({button_run, stoneslot_run, ballslot_run}, id) then return true end return false end[/size] [size=6]boost_stones = { ["Bulbasaur"] = {leaf}, ["Ivysaur"] = {leaf}, ["Venusaur"] = {leaf}, ["Charmander"] = {fire}, ["Charmeleon"] = {fire}, ["Charizard"] = {fire}, ["Squirtle"] = {water}, ["Wartortle"] = {water}, ["Blastoise"] = {water}, ["Caterpie"] = {coccon}, ["Metapod"] = {coccon}, ["Butterfree"] = {coccon}, ["Weedle"] = {coccon}, ["Kakuna"] = {coccon}, ["Beedrill"] = {coccon}, ["Pidgey"] = {heart}, ["Pidgeotto"] = {heart}, ["Pidgeot"] = {heart}, ["Rattata"] = {heart}, ["Raticate"] = {heart}, ["Spearow"] = {heart}, ["Fearow"] = {heart}, ["Ekans"] = {venom}, ["Arbok"] = {venom}, ["Pikachu"] = {thunder}, ["Raichu"] = {thunder}, ["Sandshrew"] = {earth}, ["Sandslash"] = {earth}, ["Nidoran Female"] = {venom}, ["Nidorina"] = {venom}, ["Nidoqueen"] = {venom, earth}, ["Nidoran Male"] = {venom}, ["Nidorino"] = {venom}, ["Nidoking"] = {venom, earth}, ["Clefairy"] = {heart}, ["Clefable"] = {heart}, ["Vulpix"] = {fire}, ["Ninetales"] = {fire}, ["Jigglypuff"] = {heart}, ["Wigglytuff"] = {heart}, ["Zubat"] = {venom}, ["Golbat"] = {venom}, ["Oddish"] = {leaf, venom}, ["Gloom"] = {leaf, venom}, ["Vileplume"] = {leaf, venom}, ["Paras"] = {coccon, leaf}, ["Parasect"] = {coccon, leaf}, ["Venonat"] = {coccon, venom}, ["Venomoth"] = {coccon, venom}, ["Diglett"] = {earth}, ["Dugtrio"] = {earth}, ["Meowth"] = {heart}, ["Persian"] = {heart}, ["Psyduck"] = {water}, ["Golduck"] = {water, enigma}, ["Mankey"] = {punch}, ["Primeape"] = {punch}, ["Growlithe"] = {fire}, ["Arcanine"] = {fire}, ["Poliwag"] = {water}, ["Poliwhirl"] = {water}, ["Poliwrath"] = {water, punch}, ["Abra"] = {enigma}, ["Kadabra"] = {enigma}, ["Alakazam"] = {enigma}, ["Machop"] = {punch}, ["Machoke"] = {punch}, ["Machamp"] = {punch}, ["Bellsprout"] = {leaf, venom}, ["Weepinbell"] = {leaf, venom}, ["Victreebel"] = {leaf, venom}, ["Tentacool"] = {water, venom}, ["Tentacruel"] = {water, venom}, ["Geodude"] = {earth, rock}, ["Graveler"] = {earth, rock}, ["Golem"] = {earth, rock}, ["Ponyta"] = {fire}, ["Rapidash"] = {fire}, ["Slowpoke"] = {water, enigma}, ["Slowbro"] = {water, enigma}, ["Magnemite"] = {thunder, metal}, ["Magneton"] = {thunder, metal}, ["Farfetch'd"] = {heart}, ["Doduo"] = {heart}, ["Dodrio"] = {heart}, ["Seel"] = {water, ice}, ["Dewgong"] = {water, ice}, ["Grimer"] = {venom}, ["Muk"] = {venom}, ["Shellder"] = {water, ice}, ["Cloyster"] = {water, ice}, ["Gastly"] = {dark}, ["Haunter"] = {dark}, ["Gengar"] = {dark}, ["Onix"] = {rock, earth}, ["Drowzee"] = {enigma}, ["Hypno"] = {enigma}, ["Krabby"] = {water}, ["Kingler"] = {water}, ["Voltorb"] = {thunder}, ["Electrode"] = {thunder}, ["Exeggcute"] = {enigma, leaf}, ["Exeggutor"] = {enigma, leaf}, ["Cubone"] = {earth}, ["Marowak"] = {earth}, ["Hitmonlee"] = {punch}, ["Hitmonchan"] = {punch}, ["Lickitung"] = {heart}, ["Koffing"] = {venom}, ["Weezing"] = {venom}, ["Rhyhorn"] = {earth, rock}, ["Rhydon"] = {earth, rock}, ["Chansey"] = {heart}, ["Tangela"] = {leaf}, ["Leafeon"] = {leaf}, ["Kangaskhan"] = {heart}, ["Horsea"] = {water}, ["Seadra"] = {water}, ["Goldeen"] = {water}, ["Seaking"] = {water}, ["Staryu"] = {water}, ["Starmie"] = {water}, ["Mr. Mime"] = {enigma}, ["Scyther"] = {coccon}, ["Jynx"] = {enigma, ice}, ["Electabuzz"] = {thunder}, ["Magmar"] = {fire}, ["Pinsir"] = {coccon}, ["Tauros"] = {heart}, ["Magikarp"] = {water}, ["Gyarados"] = {water, crystal}, ["Lapras"] = {water, ice}, ["Glaceon"] = {water, ice}, ["Ditto"] = {heart}, ["Eevee"] = {heart}, ["Vaporeon"] = {water}, ["Jolteon"] = {thunder}, ["Flareon"] = {fire}, ["Porygon"] = {heart, enigma}, ["Omanyte"] = {rock, water}, ["Omastar"] = {rock, water}, ["Kabuto"] = {rock, water}, ["Kabutops"] = {rock, water}, ["Aerodactyl"] = {rock}, ["Snorlax"] = {heart}, ["Articuno"] = {ice}, ["Zapdos"] = {thunder}, ["Moltres"] = {fire}, ["Dratini"] = {crystal}, ["Dragonair"] = {crystal}, ["Dragonite"] = {crystal}, ["Mewtwo"] = {enigma}, ["shiny blastoise"] = {water}, ["Mew"] = {enigma}, ["Shiny Bulbasaur"] = {leaf}, ["Shiny Ivysaur"] = {leaf}, ["Shiny Venusaur"] = {leaf}, ["Shiny Charmander"] = {fire}, ["Shiny Charmeleon"] = {fire}, ["Shiny Charizard"] = {fire}, ["Shiny Squirtle"] = {water}, ["Shiny Wartortle"] = {water}, ["Shiny Blastoise"] = {water}, ["Turtwig"] = {leaf}, ["Grotle"] = {leaf}, ["Torterra"] = {leaf}, ["Treecko"] = {leaf}, ["Grovyle"] = {leaf}, ["Sceptile"] = {leaf}, ["Cloned Torterra"] = {leaf}, ["Bagon"] = {fire}, ["Shelgon"] = {fire}, ["Salamence"] = {fire}, ["Chimchar"] = {fire}, ["Monferno"] = {fire}, ["Infernape"] = {fire}, ["Cloned Infernape"] = {fire}, ["Torchic"] = {fire}, ["Combusken"] = {fire}, ["Blaziken"] = {fire}, ["Piplup"] = {water}, ["Prinplup"] = {water}, ["Empoleon"] = {water}, ["Cloned Empoleon"] = {water}, ["Shiny Caterpie"] = {coccon}, ["Shiny Metapod"] = {coccon}, ["Shiny Butterfree"] = {coccon}, ["Shiny Weedle"] = {coccon}, ["Shiny Kakuna"] = {coccon}, ["Shiny Beedrill"] = {coccon}, ["Shiny Pidgey"] = {heart}, ["Shiny Pidgeotto"] = {heart}, ["Shiny Pidgeot"] = {heart}, ["Shiny Rattata"] = {heart}, ["Shiny Raticate"] = {heart}, ["Shiny Spearow"] = {heart}, ["Shiny Fearow"] = {heart}, ["Shiny Ekans"] = {venom}, ["Shiny Arbok"] = {venom}, ["Shiny Pikachu"] = {thunder}, ["Shiny Raichu"] = {thunder}, ["Shiny Sandshrew"] = {earth}, ["Shiny Sandslash"] = {earth}, ["Shiny Nidoran Female"] = {venom}, ["Shiny Nidorina"] = {venom}, ["Shiny Nidoqueen"] = {venom, earth}, ["Shiny Nidoran Male"] = {venom}, ["Shiny Nidorino"] = {venom}, ["Shiny Nidoking"] = {venom, earth}, ["Shiny Clefairy"] = {heart}, ["Shiny Clefable"] = {heart}, ["Shiny Vulpix"] = {fire}, ["Shiny Ninetales"] = {fire}, ["Shiny Jigglypuff"] = {heart}, ["Shiny Wigglytuff"] = {heart}, ["Shiny Zubat"] = {venom}, ["Shiny Golbat"] = {venom}, ["Shiny Oddish"] = {leaf, venom}, ["Shiny Gloom"] = {leaf, venom}, ["Shiny Vileplume"] = {leaf, venom}, ["Shiny Paras"] = {coccon, leaf}, ["Shiny Parasect"] = {coccon, leaf}, ["Shiny Venonat"] = {coccon, venom}, ["Shiny Venomoth"] = {coccon, venom}, ["Shiny Diglett"] = {earth}, ["Shiny Dugtrio"] = {earth}, ["Shiny Meowth"] = {heart}, ["Shiny Persian"] = {heart}, ["Shiny Psyduck"] = {water}, ["Shiny Golduck"] = {water, enigma}, ["Shiny Mankey"] = {punch}, ["Shiny Primeape"] = {punch}, ["Shiny Growlithe"] = {fire}, ["Shiny Arcanine"] = {fire}, ["Shiny Poliwag"] = {water}, ["Shiny Poliwhirl"] = {water}, ["Shiny Poliwrath"] = {water, punch}, ["Shiny Abra"] = {enigma}, ["Shiny Kadabra"] = {enigma}, ["Shiny Alakazam"] = {enigma}, ["Togepi"] = {enigma}, ["Togetic"] = {enigma}, ["Togekiss"] = {enigma}, ["Shiny Machop"] = {punch}, ["Shiny Machoke"] = {punch}, ["Shiny Machamp"] = {punch}, ["Shiny Bellsprout"] = {leaf, venom}, ["Shiny Weepinbell"] = {leaf, venom}, ["Shiny Victreebel"] = {leaf, venom}, ["Shiny Tentacool"] = {water, venom}, ["Shiny Tentacruel"] = {water, venom}, ["Cranidos"] = {earth, rock}, ["Rampardos"] = {earth, rock}, ["Shiny Geodude"] = {earth, rock}, ["Shiny Graveler"] = {earth, rock}, ["Shiny Golem"] = {earth, rock}, ["Shiny Ponyta"] = {fire}, ["Shiny Rapidash"] = {fire}, ["Shiny Slowpoke"] = {water, enigma}, ["Shiny Slowbro"] = {water, enigma}, ["Shiny Magnemite"] = {thunder, metal}, ["Shiny Magneton"] = {thunder, metal}, ["Shiny Farfetch'd"] = {heart}, ["Shiny Doduo"] = {heart}, ["Shiny Dodrio"] = {heart}, ["Shiny Seel"] = {water, ice}, ["Shiny Dewgong"] = {water, ice}, ["Shiny Grimer"] = {venom}, ["Shiny Muk"] = {venom}, ["Shiny Shellder"] = {water, ice}, ["Shiny Cloyster"] = {water, ice}, ["Shiny Gastly"] = {dark}, ["Shiny Haunter"] = {dark}, ["Shiny Gengar"] = {dark}, ["Shiny Onix"] = {rock, earth}, ["Darkrei"] = {dark}, ["Umbreon"] = {dark}, ["Espeon"] = {enigma}, ["Crystal Steelix"] = {rock, earth}, ["Shiny Drowzee"] = {enigma}, ["Shiny Hypno"] = {enigma}, ["Shiny Krabby"] = {water}, ["Shiny Kingler"] = {water}, ["Shiny Voltorb"] = {thunder}, ["Shiny Electrode"] = {thunder}, ["Shiny Exeggcute"] = {enigma, leaf}, ["Shiny Exeggutor"] = {enigma, leaf}, ["Shiny Cubone"] = {earth}, ["Shiny Marowak"] = {earth}, ["Shiny Hitmonlee"] = {punch}, ["Shiny Hitmonchan"] = {punch}, ["Shiny Lickitung"] = {heart}, ["Shiny Koffing"] = {venom}, ["Shiny Weezing"] = {venom}, ["Shiny Rhyhorn"] = {earth, rock}, ["Shiny Rhydon"] = {earth, rock}, ["Rhyperior"] = {earth, rock}, ["Shiny Chansey"] = {heart}, ["Shiny Tangela"] = {leaf}, ["Tangrowth"] = {leaf}, ["Leafeon"] = {leaf}, ["Shiny Kangaskhan"] = {heart}, ["Shiny Horsea"] = {water}, ["Shiny Seadra"] = {water}, ["Shiny Goldeen"] = {water}, ["Shiny Seaking"] = {water}, ["Shiny Staryu"] = {water}, ["Shiny Starmie"] = {water}, ["Shiny Mr. Mime"] = {enigma}, ["Shiny Scyther"] = {coccon}, ["Shiny Scizor"] = {coccon}, ["Scizor"] = {coccon}, ["Shiny Jynx"] = {enigma, ice}, ["Shiny Regice"] = {enigma, ice}, ["Regice"] = {enigma, ice}, ["Regirock"] = {enigma, Rock}, ["Shiny Regirock"] = {enigma, Rock}, ["Weavile"] = {Dark, ice}, ["Sneasel"] = {Dark, ice}, ["Abomasnow"] = {Leaf, ice}, ["Snover"] = {Leaf, ice}, ["Mamoswine"] = {crystal, ice}, ["Supreme Electabuzz"] = {thunder}, ["Shiny Magmar"] = {fire}, ["Shiny Electivire"] = {thunder}, ["Shiny Magmortar"] = {fire}, ["Electivire"] = {thunder}, ["Magmortar"] = {fire}, ["Shiny Pinsir"] = {coccon}, ["Shiny Tauros"] = {heart}, ["Shiny Magikarp"] = {water}, ["Shiny Gyarados"] = {water, crystal}, ["Shiny Lapras"] = {water, ice}, ["Shiny Ditto"] = {heart}, ["Shiny Eevee"] = {heart}, ["Shiny Vaporeon"] = {water}, ["Shiny Jolteon"] = {thunder}, ["Shiny Flareon"] = {fire}, ["Shiny Porygon"] = {heart, enigma}, ["Shiny Omanyte"] = {rock, water}, ["Shiny Omastar"] = {rock, water}, ["Shiny Kabuto"] = {rock, water}, ["Shiny Kabutops"] = {rock, water}, ["Shiny Aerodactyl"] = {rock}, ["Shiny Snorlax"] = {heart}, ["Shiny Articuno"] = {ice}, ["Glaceon"] = {ice}, ["Shiny Zapdos"] = {thunder}, ["Shiny Moltres"] = {fire}, ["Shiny Dratini"] = {crystal}, ["Shiny Dragonair"] = {crystal}, ["Shiny Dragonite"] = {crystal}, ["Gible"] = {crystal}, ["Gabite"] = {crystal}, ["Garchomp"] = {crystal}, ["Milotic"] = {crystal}, ["Shiny Mewtwo"] = {enigma}, ["shiny blastoise"] = {water}, ["Swampert"] = {water}, ["Marshtomp"] = {water}, ["Mudkip"] = {water}, ["Wailmer"] = {water}, ["Wailord"] = {water}, ["Chikorita"] = {leaf}, ["Bayleef"] = {leaf}, ["Meganium"] = {leaf}, ["Cyndaquil"] = {fire}, ["Quilava"] = {fire}, ["Typhlosion"] = {fire}, ["Totodile"] = {water}, ["Croconaw"] = {water}, ["Feraligatr"] = {water}, ["Sentret"] = {heart}, ["Furret"] = {heart}, ["Hoothoot"] = {heart, enigma}, ["Noctowl"] = {heart, enigma}, ["Ledyba"] = {coccon}, ["Ledian"] = {coccon}, ["Spinarak"] = {coccon, venom}, ["Ariados"] = {coccon, venom}, ["Crobat"] = {venom}, ["Chinchou"] = {water, thunder}, ["Lanturn"] = {water, thunder}, ["Pichu"] = {thunder}, ["Cleffa"] = {heart}, ["Iglybuff"] = {venom}, ["Natu"] = {enigma}, ["Xatu"] = {enigma}, ["Mareep"] = {thunder}, ["Flaaffy"] = {thunder}, ["Ampharos"] = {thunder}, ["Bellossom"] = {leaf}, ["Marill"] = {water}, ["Azulmarill"] = {water}, ["Sudowoodo"] = {rock, earth}, ["Politoed"] = {water, earth}, ["Hoppip"] = {leaf}, ["Skiploom"] = {leaf}, ["Jumpluff"] = {leaf}, ["Aipom"] = {heart}, ["Sunkern"] = {leaf}, ["Sunflora"] = {leaf}, ["Yanma"] = {venom, coccon}, ["Wooper"] = {water}, ["Quagsire"] = {water, earth}, ["Murkrow"] = {dark}, ["Slowking"] = {water,enigma}, ["Misdreavus"] = {dark}, ["Wobbuffet"] = {enigma}, ["Girafarig"] = {enigma}, ["Pineco"] = {coccon}, ["Forretress"] = {coccon}, ["Gligar"] = {dark, heart}, ["Steelix"] = {earth, rock}, ["Snubbull"] = {heart}, ["Granbull"] = {heart}, ["Qwilfish"] = {water}, ["Shuckle"] = {earth}, ["Heracross"] = {coccon}, ["Teddiursa"] = {heart}, ["Ursaring"] = {heart, dark}, ["Slugma"] = {fire}, ["Magcargo"] = {fire}, ["Swinub"] = {ice, earth}, ["Piloswine"] = {ice, earth}, ["Corsola"] = {water}, ["Remoraid"] = {water}, ["Octillery"] = {water}, ["Delibird"] = {ice, heart}, ["Mantine"] = {water}, ["Skarmory"] = {heart}, ["Houndour"] = {fire, dark}, ["Houndoom"] = {fire, dark}, ["Kingdra"] = {water, crystal}, ["Phanpy"] = {earth}, ["Donphan"] = {earth}, ["porygon2"] = {enigma}, ["Stantler"] = {heart}, ["Smeargle"] = {heart}, ["Tyrogue"] = {punch}, ["Hitmontop"] = {punch}, ["Smoochum"] = {ice, enigma}, ["Elekid"] = {thunder}, ["Magby"] = {fire}, ["Miltank"] = {heart}, ["Blissey"] = {heart}, ["Raikou"] = {thunder}, ["Entei"] = {fire}, ["Suicune"] = {water}, ["Larvitar"] = {earth, dark}, ["Pupitar"] = {earth, dark}, ["Tyranitar"] = {earth, dark}, ["Lugia"] = {enigma, water}, ["Ho-oh"] = {enigma, fire}, ["Celebi"] = {leaf, enigma}, ["Shiny Mew"] = {enigma}, ["porygon Z"] = {enigma}, ["Purugly"] = {heart}, ["Absol"] = {dark}, ["Altaria"] = {heart}, ["Baltoy"] = {enigma}, ["Buneary"] = {heart}, ["Buizel"] = {water}, ["Camerupt"] = {fire}, ["Carnivine"] = {leaf}, ["Carvanha"] = {water}, ["Claydol"] = {enigma}, ["Tropius"] = {leaf}, ["Yanmega"] = {coccon}, ["Zangoose"] = {heart}, ["Toxicroak"] = {venom}, ["Sharpedo"] = {water}, ["Croagunk"] = {venom}, ["Floatzel"] = {water}, ["Pachirisu"] = {thunder}, ["Metang"] = {rock}, ["Honchkrow"] = {dark}, ["Froslass"] = {ice}, ["Glalie"] = {ice}, ["Gastrodon"] = {water}, ["Plusle"] = {thunder}, ["Probopass"] = {rock}, ["Luxray"] = {thunder}, ["Lunatone"] = {enigma}, ["Solrock"] = {enigma}, ["Metagross"] = {earth, rock}, ["Drapion"] = {venom}, ["Mamoswine"] = {ice, earth}, ["Munchlax"] = {heart}, ["Staraptor"] = {heart}, ["Beldum"] = {rock}, ["Feebas"] = {water}, ["Wailmer"] = {water}, ["Wailord"] = {water}, ["Swablu"] = {heart}, ["Shiny Absol"] = {dark}, ["Shiny Altaria"] = {heart}, ["Shiny Baltoy"] = {enigma}, ["Shiny Claydol"] = {enigma}, ["Shiny Buneary"] = {heart}, ["Shiny Beldum"] = {rock}, ["Shiny Metang"] = {rock}, ["Shiny Metagross"] = {earth, rock}, ["Shiny Camerupt"] = {fire}, ["Shiny Carnivine"] = {leaf}, ["Shiny Carvanha"] = {water}, ["Shiny Sharpedo"] = {water}, ["Shiny Croagunk"] = {venom}, ["Shiny Toxicroak"] = {venom}, ["Shiny Buizel"] = {water}, ["Shiny Floatzel"] = {water}, ["Shiny Gabite"] = {crystal}, ["Shiny Gible"] = {crystal}, ["Gliscor"] = {dark, heart}, ["Shiny Gliscor"] = {dark, heart}, ["Shiny Honchkrow"] = {dark}, ["Shiny Luxray"] = {thunder}, ["Shiny Mamoswine"] = {ice, earth}, ["Shiny Pachirisu"] = {thunder}, ["Minun"] = {thunder}, ["Shiny Plusle"] = {thunder}, ["Shiny Minun"] = {thunder}, ["Shiny Probopass"] = {rock}, ["Shiny Purugly"] = {heart}, ["Shiny Froslass"] = {ice}, ["Shiny Glalie"] = {ice}, ["Shiny Snorunt"] = {ice}, ["Shiny Lunatone"] = {enigma}, ["Shiny Solrock"] = {enigma}, ["Shiny Staraptor"] = {heart}, ["Shiny Tropius"] = {leaf}, ["Shiny Yanmega"] = {coccon}, ["Shiny Zangoose"] = {heart}, ["Shiny Rhyperior"] = {earth, rock}, ["Shiny Gastrodon"] = {water}, ["Shiny Cyndaquil"] = {fire}, ["Shiny Quilava"] = {fire}, ["Shiny Typhlosion"] = {fire}, ["Shiny Chikorita"] = {leaf}, ["Shiny Bayleef"] = {leaf}, ["Shiny Meganium"] = {leaf}, ["Shiny Totodile"] = {water}, ["Shiny Croconaw"] = {water}, ["Shiny Feraligatr"] = {water}, ["Happiny"] = {heart}, ["Roselia"] = {leaf}, ["Anorith"] = {rock, venom}, ["Armaldo"] = {rock, venom}, ["Aron"] = {rock}, ["Lairon"] = {rock}, ["Aggron"] = {rock}, ["Bagon"] = {crystal}, ["Shelgon"] = {crystal}, ["Salamence"] = {crystal}, ["Barboach"] = {water}, ["Whiscash"] = {water}, ["Roserade"] = {leaf, venom}, ["Budew"] = {leaf, venom}, ["Cacnea"] = {leaf}, ["Cacturne"] = {leaf}, ["Castform"] = {heart}, ["Chingling"] = {enigma}, ["Chimecho"] = {enigma}, ["Clamperl"] = {water}, ["Huntail"] = {water}, ["Gorebyss"] = {water}, ["Corphish"] = {water}, ["Crawdaunt"] = {water}, ["Duskull"] = {dark}, ["Dusclops"] = {dark}, ["Dusknoir"] = {dark}, ["Electrike"] = {thunder}, ["Manectric"] = {thunder}, ["Gulpin"] = {venom}, ["Swalot"] = {venom}, ["Kecleon"] = {heart}, ["Lileep"] = {leaf}, ["Cradily"] = {leaf}, ["Lotad"] = {leaf}, ["Lombre"] = {leaf}, ["Ludicolo"] = {leaf}, ["Luvdisc"] = {water}, ["Makuhita"] = {punch}, ["Hariyama"] = {punch}, ["Mawile"] = {rock}, ["Meditite"] = {enigma}, ["Medicham"] = {enigma}, ["Nincada"] = {venom}, ["Ninjask"] = {venom}, ["Shedinja"] = {venom}, ["Poochyena"] = {dark}, ["Mightyena"] = {dark}, ["Ralts"] = {enigma}, ["Kirlia"] = {enigma}, ["Gardevoir"] = {enigma}, ["Gallade"] = {enigma}, ["Relicanth"] = {rock, water}, ["Sableye"] = {dark}, ["Seedot"] = {leaf}, ["Nuzleaf"] = {leaf}, ["Shiftry"] = {leaf}, ["Seviper"] = {venom}, ["Shroomish"] = {leaf}, ["Breloom"] = {leaf}, ["Shuppet"] = {dark}, ["Banette"] = {dark}, ["Skitty"] = {heart}, ["Delcatty"] = {heart}, ["Slakoth"] = {heart}, ["Vigoroth"] = {heart}, ["Slaking"] = {heart}, ["Spheal"] = {water, ice}, ["Sealeo"] = {water, ice}, ["Walrein"] = {water, ice}, ["Spinda"] = {heart}, ["Spoink"] = {enigma}, ["Grumpig"] = {enigma}, ["Surskit"] = {venom}, ["Masquerain"] = {venom}, ["Taillow"] = {heart}, ["Swellow"] = {heart}, ["Torkoal"] = {fire}, ["Trapinch"] = {crystal}, ["Vibrava"] = {crystal}, ["Flygon"] = {crystal}, ["Illumise"] = {venom}, ["Volbeat"] = {venom}, ["Wingull"] = {water}, ["Pelipper"] = {water}, ["Whismur"] = {heart}, ["Loudred"] = {heart}, ["Exploud"] = {heart}, ["Wurmple"] = {venom}, ["Silcoon"] = {venom}, ["Cascoon"] = {venom}, ["Beautifly"] = {venom}, ["Dustox"] = {venom}, ["Zigzagoon"] = {heart}, ["Linoone"] = {heart}, ["Nosepass"] = {rock}, ["Magnezone"] = {thunder}, ["Numel"] = {fire}, ["Snorunt"] = {ice} }[/size] [size=6]function doRestoreBoostMachine(cid, b_pos, p_pos, s_pos, msg)[/size] [size=6]doSendAnimatedText(b_pos, "DONE.", 215)[/size] [size=6]if isCreature(cid) then doCreatureSetNoMove(cid, false) doPlayerSendTextMessage(cid, 27, msg) end[/size] [size=6]local ball_s = getTileItemById(p_pos, ballslot_run) doTransformItem(ball_s.uid, ballslot)[/size] [size=6]local stne_s = getTileItemById(s_pos, stoneslot_run) doTransformItem(stne_s.uid, stoneslot)[/size] [size=6]local butn_s = getTileItemById(b_pos, button_run) doTransformItem(butn_s.uid, button)[/size] [size=6]end[/size] [size=6]local stones_required = { -- custo base de stones para boostar [heart] = 1, [leaf] = 1, [water] = 1, [venom] = 1, [thunder] = 1, [rock] = 1, [punch] = 1, [fire] = 1, [coccon] = 1, [crystal] = 1, [dark] = 1, [earth] = 1, [enigma] = 1, [ice] = 1, }[/size] [size=6]local stone_increase = { -- a cada quantos boosts irá aumentar o custo de stones [heart] = 20, [leaf] = 20, [water] = 20, [venom] = 20, [thunder] = 20, [rock] = 20, [punch] = 20, [fire] = 25, [coccon] = 20, [crystal] = 20, [dark] = 20, [earth] = 20, [enigma] = 20, [ice] = 20, }[/size] [size=6]function onUse(cid, item, topos, item2, frompos)[/size] [size=6]if isRunning(item.itemid) then doPlayerSendCancel(cid, "Wait until boosting finishes.") return true end[/size] [size=6]if item.itemid == button then[/size] [size=6]local pbpos = topos pbpos.x = pbpos.x + 1 local ball_slot = getTileItemById(pbpos, ballslot) local myball = getContainerItem(ball_slot.uid, 0)[/size] [size=6]if myball.uid <= 0 or getItemWeight(myball.uid) == 0 then doPlayerSendCancel(cid, "You need to put a pokeball in the ball slot.") return true end[/size] [size=6]local pokemon = getItemAttribute(myball.uid, "poke") local boost = getItemAttribute(myball.uid, "boost") or 0[/size] [size=6]if boost >= 50 then doPlayerSendCancel(cid, "Your pokemon is already at maximum boost.") return true end[/size] [size=6]local stnpos = pbpos stnpos.x = stnpos.x - 2 local stone_slot = getTileItemById(stnpos, stoneslot)[/size] [size=6]local stone = getContainerItem(stone_slot.uid, 0)[/size] [size=6]if stone.uid <= 0 then doPlayerSendCancel(cid, "You need to put a stone in the stone slot.") return true end[/size] [size=6]if not isStone(stone.itemid) then doPlayerSendCancel(cid, "Please, put only stones in the stone slot.") return true end[/size] [size=6]if not isInArray(boost_stones[pokemon], stone.itemid) then[/size] [size=6]local cancelstr = "Sorry, you are not using the correct stone."[/size] [size=6]if #boost_stones[pokemon] > 1 then local stonesused = "" cancelstr = cancelstr.." This pokemon needs " for su = 1, #boost_stones[pokemon] do local n = doCorrectString(getItemNameById(boost_stones[pokemon][su])) if su == #boost_stones[pokemon] then stonesused = stonesused.." or "..getArticle(n).." "..n.."" elseif su == 1 then stonesused = stonesused..""..getArticle(n).." "..n.."" else stonesused = stonesused..", "..n.."" end end cancelstr = cancelstr..""..stonesused.." to be boosted." else cancelstr = cancelstr.." This pokemon needs a "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).." to be boosted." end[/size] [size=6]doPlayerSendCancel(cid, cancelstr)[/size] [size=6]return true end[/size] [size=6]local removeStones = 0 local extraStones = math.floor(boost / stone_increase[stone.itemid]) local required_stones = stones_required[stone.itemid] + extraStones[/size] [size=6]local boosts = 0[/size] [size=6]for a = 0, getContainerSize(stone_slot.uid) - 1 do[/size] [size=6]local it = getContainerItem(stone_slot.uid, a)[/size] [size=6]if it.uid > 0 then[/size] [size=6]if not isStone(it.itemid) then doPlayerSendCancel(cid, "Please, put only stones in the stone slot.") return true end[/size] [size=6]if it.itemid ~= stone.itemid then doPlayerSendCancel(cid, "Please, put only one type of stone in the stone slot.") return true end[/size] [size=6]if required_stones > 0 then required_stones = required_stones - 1[/size] [size=6]if required_stones <= 0 then boosts = boosts + 1 removeStones = removeStones + stones_required[stone.itemid] + extraStones if boost + boosts <= 49 then extraStones = math.floor((boost + boosts) / stone_increase[stone.itemid]) required_stones = stones_required[stone.itemid] + extraStones end end end[/size] [size=6]end[/size] [size=6]end[/size] [size=6]if required_stones > 0 and boosts == 0 then doPlayerSendCancel(cid, "You need more stones to boost this pokemon.") return true end[/size] [size=6]for b = 1, removeStones do doRemoveItem(getContainerItem(stone_slot.uid, 0).uid, 1) end[/size] [size=6]local off = pokes[pokemon].offense * boost_rate * boosts local def = pokes[pokemon].defense * boost_rate * boosts local agi = pokes[pokemon].agility * boosts local spatk = pokes[pokemon].specialattack * boost_rate * boosts local vit = pokes[pokemon].vitality * boost_rate * boosts[/size] [size=6]doSetItemAttribute(myball.uid, "boost", boost + boosts) doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off) doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def) doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi) doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk) doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit)[/size] [size=6]local msg = "Your pokeball is now +"..math.floor(boosts + boost).."!" --local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit)..""[/size] [size=6]local downpos = getThingPos(cid) downpos.y = downpos.y + 1[/size] [size=6]local mypos = getThingPos(cid)[/size] [size=6]doTeleportThing(cid, downpos, false) doTeleportThing(cid, mypos, false)[/size] [size=6]doTransformItem(ball_slot.uid, ballslot_run) doTransformItem(stone_slot.uid, stoneslot_run) doTransformItem(item.uid, button_run)[/size] [size=6]doCreatureSetNoMove(cid, true) doCreatureAddCondition(cid, boostcondition)[/size] [size=6]addEvent(doRestoreBoostMachine, 3000, cid, getThingPos(item.uid), getThingPos(ball_slot.uid), getThingPos(stone_slot.uid), msg)[/size] [size=6]return true end end pronto agr vamos ao aura system va em data/creaturescript/script. la tera o Auraboost.lua abra-o e cole issu la. function onThink(cid, interval) if getPlayerSlotItem(cid, CONST_SLOT_FEET) == nil or getPlayerSlotItem(cid, CONST_SLOT_FEET).uid == nil then return true end if #getCreatureSummons(cid) == 0 then return true end if getPlayerSlotItem(cid,CONST_SLOT_FEET) ~= nil or getPlayerSlotItem(cid, CONST_SLOT_FEET).uid ~= nil then if getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "boost") == 50 then --[[race = { ["grass"] = {effect = 276}, ["poison"] = {effect = 276}, ["rock"] = {effect = 276}, ["psychic"] = {effect = 276}, ["fire"] = {effect = 276}, ["bug"] = {effect = 276}, ["normal"] = {effect = 276}, ["ice"] = {effect = 276}, ["ground"] = {effect = 276}, ["steel"] = {effect = 276}, ["dragon"] = {effect = 276}, ["flying"] = {effect = 276}, ["dark"] = {effect = 276}, ["electric"] = {effect = 276}, ["ghost"] = {effect = 276}, ["water"] = {effect = 276}, ["fight"] = {effect = 276}, } local namepoke = getCreatureName(getCreatureSummons(cid)[1]) info = pokes[namepoke].type local elemento = race[info] ]]-- addEvent(doSendMagicEffect, 200, getCreaturePosition(getCreatureSummons(cid)[1]), 208) end end end onde estao esse "276" sao as cores das aura que voce pode mudar se souber os ids das auras ( que ja estao no client centurion). bom e issu ae pessoal espero qe tenha ajudado. creditos: Eshpedrero 100% _______________________________________________________ Ajudei ? + Rep n custa nd
    1 ponto
  11. Delaks

    Subwat Kamikaze V13 Atualizado

    ATUALIZAÇÔES DO SUBWAT KAMIKAZE V10 -Adicionada novas houses pelos mapas. -Mudado a cor da parede do temple. -Adicionada Àrea de Duvidas. -Adicionado o item Really Shield na Super VIP e o comando !reallyshield -Novo baú na Super Vip dando 1000 Vip Coins -Novos teleports adicionados na Super Vip -Separados Sets e Itens no temple. -Adicionado houses na área de houses na Super Vip. -Retirado bug da WAR. -Nova quest dando os itens: super e mega itens absolute e absolute uh e absolute mana -Nova quest dando os itens: exp potion,infinity exp potion e super absolute uh -Adicionada a Àrea de Reuniões no teto -Novas hunts na área de Teleports. ATUALIZAÇÔES NOVAS DO SUBWAT KAMIKAZE V13 -Retirado o bug das Houses -Adicionado vila de houses na city principal -Adicionado super mana,super uh e super bow.Comandos:!superuh,!supermana e !superbow -Adicionado 12 Hunt's novas na área Free -Adicionado 5 Hunt's novas na área Super Vip -Novas houses colocadas na city principal -Dois monsters novos:Bruxa do 71 e Satanas -Retirado bugs de varias hunts -Arrumado o bug da war -Retirado o Sex System -Nova quest adicionada de life scrolls e mana scrolls -Adicionado área para as hunts free Temple Teleports Super Vip Download 4shared: http://www.4shared.c...mikaze_V13.html Download Speedy Share: http://speedy.sh/5Qa...amikaze-V13.rar Scan: https://www.virustot...sis/1336780401/ Créditos: Subwat,Adm Kamikaze e Nadotti. Mapa editado por Delaks. De um Rep+.Comentem e avaliem.Obrigado. Adicionado download para Speedy Share. SUBWAT KAMIKAZE V25: http://www.xtibia.com/forum/topic/206099-subwat-kamikaze-v25-atualizacao/
    1 ponto
  12. elder720

    [Problemas Com Hack]

    Olá galera XTibiana, Gostaria de compartilhar um aprendizado que tive que descobrir na raça e espero que possa ajudar vocês Administradores de OTServer. Recentemente enfrentei um problema no meu OT com um tal de Black Hack assim identificado in-game. Que tinha total acesso ao meu Bando de Dados MySQL (Xampp) e ao confg. lua. Aos que utilizam o Xampp apenas como banco de dados, e não para site, desabilite o Apache quando não for utilizar o PhpMyAdmin. Através dele, com alguns métodos, uma pessoa mais experiente no assunto pode te dar uma grande dor de cabeça e acabar com seu projeto. Atenção: Nunca deixe o usuário ROOT sem senha. Procure configurar uma senha difícil!
    1 ponto
  13. Elexonic

    Otx Server 2.4

    OTX Server 2.4 Released. Last Update : 17/8/2012 OTX Server - 2.4 Version (Deumion) Descripçao: Esta versão inclui um código de motor completamente atualizados com base na OTX 2.1 (com extras no sistema). Eles usam os mesmos arquivos removendo apenas // items.otb - items.xml // libs/000-constant - 101-compat.lua . Uma vez que apenas os arquivos ou identificadores de mensagens são removidas na versão. A principal inovação é que agora inclui suporte para 9.61. E inclui grandes reparações ao seu antecessor 2.32 Distribuição é o mais usado e mais de todas as atualizações! Necessário para evitar problemas com arquivos(dll). Microsoft Visual C++ 2010 - 32Bits: Redistributable Package Microsoft Visual C++ 2010 - 64Bits: Redistributable Package Source code: Subversion client: https://otservdata.g...n/branches/0.3/ Browse: http://code.google.c...ata/source/list DOWNLOAD THE OTX SERVER 2.4 Versão [8.54/57 - 8.60 - 8.62 - 8.70/71 - 9.20/31 - 9.54 - 9.61] The OTX Server 2.4 (Visual Basic) Scan: http://i.imgur.com/yRTFS.png Bug Report: Qualquer falha em fazer a conhecê-lo nesta edição e vai corrigi-lo o mais rápido possível. Expliquenla o seu melhor e assim será mais fácil de reparar. ---------------------------------------------------- moderadores queria se eu poderia colocar este problema na versão 8.6 e versão 9.6 +, uma vez que inclui tanto .. e eu quero olhar para ambos. obrigado
    1 ponto
  14. Bem, eu fiz algumas alteraçoes no Npc System para que isso fosse possivel, tambem fiz alteraçoes na source, porem as modificaçoes da source nao sao obrigatorias, porem para um otserver serio seria bem legal implementa-las. Video: Download dos arquivos ja modificados: Npc System Modified.rar Ou entao modifique voce mesmo. Entao vamos as alteraçoes: Vá em data\npc\lib\npcsystem, todas as alteraçoes serao nos arquivos desta pasta entao nao vou ficar falando o destino. npchandler.lua: Procure por: Em baixo adicione essa linha: Procure por: Substitua por: Procure por: Substitua por: Agora Procure por: Mude para: Procure por: Mude para: modules.lua: Procure por: Embaixo bote: Procure por: Substitua Toda a funçao por: function ShopModule:callbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks, moneyId) local shopItem = nil if amount <= 0 or type(amount) ~= "number" then amount = 1 end for _, item in ipairs(self.npcHandler.shopItems) do if(item.id == itemid and item.subType == subType) then shopItem = item break end end if(shopItem == nil) then error("[shopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.buy == -1) then error("[shopModule.onSell]", "Attempt to purchase an item which only sellable") return false end local backpack, totalCost = 1988, amount * shopItem.buy if(inBackpacks) then totalCost = not moneyId and (totalCost + (math.max(1, math.floor(amount / getContainerCapById(backpack))) * 20)) or totalCost end local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name, [TAG_MONEYNAME] = moneyId and getItemNameById(moneyId) or "gold" } if (not moneyId and getPlayerMoney(cid) < totalCost) or (moneyId and getPlayerItemCount(cid, moneyId) < totalCost) then local msg = self.npcHandler:getMessage(MESSAGE_NEEDMONEY) doPlayerSendCancel(cid, self.npcHandler:parseMessage(msg, parseInfo)) return false end local subType = shopItem.subType or 1 local a, b = doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack) if(a < amount) then local msgId = MESSAGE_NEEDMORESPACE if(a == 0) then msgId = MESSAGE_NEEDSPACE end local msg = self.npcHandler:getMessage(msgId) parseInfo[TAG_ITEMCOUNT] = a doPlayerSendCancel(cid, self.npcHandler:parseMessage(msg, parseInfo)) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end if(a > 0) then if not moneyId then doPlayerRemoveMoney(cid, ((a * shopItem.buy) + (b * 20))) else doPlayerRemoveItem(cid, moneyId, ((a * shopItem.buy) + (b * 20))) end return true end return false end local msg = self.npcHandler:getMessage(MESSAGE_BOUGHT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, self.npcHandler:parseMessage(msg, parseInfo)) if not moneyId then doPlayerRemoveMoney(cid, totalCost) else doPlayerRemoveItem(cid, moneyId, totalCost) end if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end return true end Agora procure por: Substitua toda a funçao por: function ShopModule:callbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks, moneyId) local shopItem = nil for _, item in ipairs(self.npcHandler.shopItems) do if(item.id == itemid and item.subType == subType) then shopItem = item break end end if(shopItem == nil) then error("[shopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.sell == -1) then error("[shopModule.onSell]", "Attempt to sell an item which is only buyable") return false end local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name, [TAG_MONEYNAME] = moneyId and getItemNameById(moneyId) or "gold" } if(subType < 1 or getItemInfo(itemid).stackable) then subType = -1 end if(doPlayerRemoveItem(cid, itemid, amount, subType)) then local msg = self.npcHandler:getMessage(MESSAGE_SOLD) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, self.npcHandler:parseMessage(msg, parseInfo)) if not moneyId then doPlayerAddMoney(cid, amount * shopItem.sell) else doPlayerAddItem(cid, moneyId, amount * shopItem.sell) end if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end return true end local msg = self.npcHandler:getMessage(MESSAGE_NEEDITEM) doPlayerSendCancel(cid, self.npcHandler:parseMessage(msg, parseInfo)) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end return false end npcsystem.lua: Procure por: Embaixo bote: Agora a parte em C++, lembrando nao é obrigatoria, é mais para uma questao de estetica: protocolgame.cpp: Obs: Isso soh ira funcionar com UMA MOEDA DIFERENTE! Voce pode editar para fazer funcionar com mais, porem tenha certeza que sabe o que esta fazendo. Procure pela funçao: Substitua toda ela por: void ProtocolGame::sendGoods(const ShopInfoList& shop) { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->AddByte(0x7B); std::string value; player->getStorage(97113, value); if (atoi(value.c_str()) != 1) { msg->AddU32(g_game.getMoney(player)); } else { msg->AddU32(player->__getItemTypeCount(9971)); } std::map<uint32_t, uint32_t> goodsMap; if(shop.size() >= 5) { for(ShopInfoList::const_iterator sit = shop.begin(); sit != shop.end(); ++sit) { if(sit->sellPrice < 0) continue; int8_t subType = -1; if(sit->subType) { const ItemType& it = Item::items[sit->itemId]; if(it.hasSubType() && !it.stackable) subType = sit->subType; } uint32_t count = player->__getItemTypeCount(sit->itemId, subType); if(count > 0) goodsMap[sit->itemId] = count; } } else { std::map<uint32_t, uint32_t> tmpMap; player->__getAllItemTypeCount(tmpMap); for(ShopInfoList::const_iterator sit = shop.begin(); sit != shop.end(); ++sit) { if(sit->sellPrice < 0) continue; int8_t subType = -1; if(sit->subType) { const ItemType& it = Item::items[sit->itemId]; if(it.hasSubType() && !it.stackable) subType = sit->subType; } if(subType != -1) { uint32_t count = player->__getItemTypeCount(sit->itemId, subType); if(count > 0) goodsMap[sit->itemId] = count; } else goodsMap[sit->itemId] = tmpMap[sit->itemId]; } } msg->AddByte(std::min(goodsMap.size(), (size_t)255)); std::map<uint32_t, uint32_t>::const_iterator it = goodsMap.begin(); for(uint32_t i = 0; it != goodsMap.end() && i < 255; ++it, ++i) { msg->AddItemId(it->first); msg->AddByte(std::min(it->second, (uint32_t)255)); } } } E na linha msg->AddU32(player->__getItemTypeCount(9971)); aonde esta 9971 voce troca pelo id da sua moeda diferente! player.cpp: Procure por: Voce achara 2 desses em ambos bote isso embaixo: Pronto agora para que um npc use a moeda diferente ou nao voce bota isso no XML dele: Flw
    1 ponto
  15. Oneshot

    Invasao Ficar Em Nonpvp

    local i = { ["12:00"] = {nome = "Vip Coin Meio Dia", pos = {x=10159, y=10059, z=7}, monster = {"1 vip coin", "50 Fire Devil", "4 lord vampire"}}, ["00:00"] = {nome = "vip coin da meia noite", pos = {x=10159, y=1059, z=7}, monster = {"1 vip coin"}}, ["06:00"] = {nome = "Vip Coin da manha", pos = {x=10159, y=10059, z=7}, monster = {"1 vip coin", "50 Fire Devil", "4 lord vampire"}}, } function onThink(interval, lastExecution) hours = tostring(os.date("%X")):sub(1, 5) tb = i[hours] if tb then doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.") doBroadcastMessage(hours .. " - " .. tb.nome .. " está rolando venham templo!") for _,x in pairs(tb.monster) do for s = 1, tonumber(x:match("%d+")) do doSummonCreature(x:match("%s(.+)"), tb.pos) end end doBroadcastMessage("No-PVP ativado para o evento.") setWorldType(1) addEvent(setWorldType, 2 * 60 * 1000, 2) end return true end
    1 ponto
  16. brun123

    [Movements] Armadilha!

    Tag no movements: <movevent type="RemoveItem" itemid="????" event="script" value="nome_do_seu_arquivo.lua"/>
    1 ponto
  17. 1 ponto
  18. @PedroSouza Só alterar aqui: functiono nStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) ficando assim: function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) Tá com um erro de digitação no começo do script.
    1 ponto
  19. @Stylo maldoso Eu to aprendendo agora linguagem C, que é bem básica e tals e dificilmente saberei fazer scripts ja que faço engenharia mecânica, então o que eu aprendo assim em linguagem computacional é bem o básico e não tenho tempo de aprender por internet. Mas tipow vamos dizer assim qeu eu sou um bom observador, ja criei alguns scripts compreendendo scripts ja feito. E se caso alguem quiser fazer duel system, eu tive uma idéia muito boa, ja que igual o pxg não sera possível pela falta de sourcers, poderia ser feito por arena. Como funcionaria ? Teria aqueles tile de teleport, igual do fifa, assim cada cidade teria seu templo pra duels, com arenas de 1 x 1, 2 x 2 e 3x3. Assim vamos usar o 3 x 3 por exemplo teria os 3 tile de tp de um time e 3 tile de tp no outro. Assim quando tiver todos os tile ocupado e alguem der use, eles são teleportados pra uma arena. E após isso seria +- igual o tournament system, eles tem 1 minuto pra colocar o poke, quanto faltar 10 segundos é avisado e começaria um duel. Caso alguem não coloque o poke a tempo a equipe é considerada perdedor. Acho que seria algo mais interessante do que o método da pxg, não teria nubs pra atrapalhar o duel e poderia ser colocado aqueles npc que filma também, assim duelos seriam transmitidos 24 h, atrairia mais pessoas na cam. Você pode falar, pow mas pxg pode tirar a hora que quiser, mas só reparar que os duel são sempre nos mesmos lugares.Cerulean, golden arena,coliseum. Daria na mesma e seria algo mais interessante. E fazendo isso, mata o tournament system ja que a idéia é semelhante. E o duel seria sempre 6 x 6 pokes que é o ideal. O script checaria se o indivio tem 6 pokes.
    1 ponto
  20. SkyLigh

    Tile Vip

    Teteu essa function e que vai detectar se ele e vip ou nao pra o script funcionar ali aonde ta 13545 voce vai tenque por a storage da vip que vai ser em numeros os memos numeros que voce por ali vai por no movements.xml e vai por no tille
    1 ponto
  21. SkyLigh

    Tiles vip

    tente http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/
    1 ponto
  22. Raidou

    Lib - O que é ela e como usar.

    function NOME DA FUNÇÃO(PARAMENTOS) ... AÇÃO RETORNO TERMINIO DA FUNÇÃO Bom,acho que este foi o unico erro que achei. Não seria parametros? Abraços,Aprovado.
    1 ponto
  23. Vodkart

    Simple Task 3.0

    @UP tenta trocar essa linha: if isMonster(target) and not isSummon(target) then por essa: if isMonster(target) then
    1 ponto
  24. Dudu08267

    [Encerrado] [Pokemon] Dúvidas? - Pda

    Headbutt quase perfeito eu axo Vai em lib/order Procura por rock smash em cima de rock smash coloca: Em actions/order Embaixo de untransform coloca isso: ["headbutt"] = {"headbutt on three", "headbutt that three!", "headbutt it off"}, E procura por isso: e embaixo coloca isso: se usar o server do slicer embaixo de control mind se for outro server deve ta embaixo de surf coloca isso: ["headbutt"] = {"Pokémon", "Pokémon"} E no lugar de pokémon coloca o nome do pokémon q pra mim isso ja ta obvio LOL O headbutt só ta summonando 1 poke(pokes randomicos) que pode ser configurados na tabeala monsters em lib/order. Eu uso esse pro server sem lvl n sei se funciona pro com lvl.
    1 ponto
  25. GaaLol

    [Encerrado] Naruto/narutibia

    Ola Galera, Mas Uma Vez Eu Aqui,Mas Desta Vez Vim Pedir Um Server De "Naruto/Narutibia Nao Sei Se Voces Conhecem o Extnl,Shinobi Online Queria Um Naquele Estilo,E Bem Atualizado. Obg Pela Atençao.
    1 ponto
  26. Vocês acham que é só pegar e trocar o executável do servidor e pronto - sou foda - troquei a versão do servidor. 1. Para o erro no channels.xml, substitua o conteúdo antigo por este: <?xml version="1.0" encoding="UTF-8"?> <channels> <!-- README: 0 - dynamic, reserved for guilds 1 - always acts as Party channel, only "name" tag available 6 - acts as Help channel- clientsided message 65535 - DO NOT CHANGE THE ID- only "name", "enabled", "active" and "logged" tags available --> <channel id="1" name="Party"/> <channel id="2" name="Counselor" access="1"/> <channel id="3" name="World Chat" level="2"/> <channel id="4" name="Staff" access="3"/> <channel id="5" name="Advertising" level="8" muted="120" conditionId="3" conditionMessage="You may only place one offer in two minutes."> <vocation id="1-8"/> </channel> <channel id="6" name="Advertising-Rookgaard" level="2" muted="120" conditionId="4" conditionMessage="You may only place one offer in two minutes."> <vocation id="0"/> </channel> <channel id="7" name="Help" logged="yes" muted="30" conditionId="5" conditionMessage="You may only send a message in thirty seconds."/> <channel id="8" name="English Chat" level="2"/> <!-- <channel id="9" name="My Custom Channel"/> --> <channel id="65535" name="Private Chat Channel"/> </channels> 2. Acho que dá para interpretar os erros acusados no creaturescripts.xml, a versão que você está usando já não possui mais os creaturescripts joinchannel e receivemail, ou melhor, possui, porém o parâmetro que chama a função mudou. Abra seu creaturescripts.xml. Troque: <event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/> Por: <event type="channeljoin" name="GuildMotd" event="script" value="guildmotd.lua"/> Troque: <event type="receivemail" name="Mail" event="script" value="mail.lua"/> Por: <event type="mailreceive" name="Mail" event="script" value="mail.lua"/> 3. O terceiro erro é um sistema implementado nas revisões mais atuais do The Forgotten Server, principalmente aquelas voltadas as versões mais atuais do Tibia. O sistema é simples, ele armazena todas as mensagens ditas no servidor, todas mesmo, em uma tabela chamada player_statements. O problema é que o Elf e a equipe da OTLand, não previu que, nós, brasileiros, tivéssemos um emoticon tão tosco igual esse - '-' - que dá o erro na hora de armazenar na tabela. Infelizmente não há como desativar esse sistema de maneira direta, apenas indiretamente editando as sources da revisão que você usa. 4. Por último, são erros generalizados gerados pela incompatibilidade dos mods do seu servidor com essa revisão do The Forgotten Server que você está a usar. Apenas adaptações nesses mods para que eles funcionem sem apresentar erros. Abraços.
    1 ponto
  27. jhon992

    [Encerrado] Nao Consigo Logar No Meu Ot

    Abra o servidor em modo de compatibilidade que resolve este erro. Clique com o direito no executavel > Propriedades > Compatibilidade!
    1 ponto
  28. Oneshot

    {Resolvido}

    local config = { [2153] = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_STAT_MAXHEALTH] = 150, [CONDITION_PARAM_SUBID] = 10 } }, [2154] = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_STAT_MAXMANA] = 150, [CONDITION_PARAM_SUBID] = 20 } }, [2155] = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_SKILL_MELEE] = 3, [CONDITION_PARAM_SKILL_DISTANCE] = 3, [CONDITION_PARAM_SUBID] = 30 } }, [2156] = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_STAT_MAGICLEVEL] = 2, [CONDITION_PARAM_SUBID] = 40 } } } local tmp = {} for itemid, conditions in pairs(config) do tmp[itemid] = {} for i = 1, 3 do for condition, parameters in pairs(conditions) do local obj = createConditionObject(condition) setConditionParam(obj, CONDITION_PARAM_TICKS, -1) for parameter, value in pairs(parameters) do setConditionParam(obj, parameter, value) end setConditionParam(obj, CONDITION_PARAM_SUBID, config[itemid][condition][CONDITION_PARAM_SUBID] + i) setConditionParam(obj, CONDITION_PARAM_BUFF, true) tmp[itemid][i] = obj end end end local storage = 30001 function onUse(cid, item, fromPosition, itemEx, toPosition) local status = getCreatureStorage(cid, storage) if status < 0 then doCreatureSetStorage(cid, storage, 0) end if item.itemid == 2158 then doRemoveConditions(cid, false) doCreatureSetStorage(cid, storage, 0) doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE) return true end if not tmp[item.itemid] then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end if status == 3 then doPlayerSendCancel(cid, "You cannot use support runes anymore.") return true end doAddCondition(cid, tmp[item.itemid][status + 1]) doCreatureSetStorage(cid, storage, status + 1) return true end <action itemid="2153-2156;2158" event="script" value="nome_do_arquivo.lua"/> Pronto, sem nenhuma complicação. O código está um pouco "pogado", mas nada que traga problemas. Eu usei os IDs 2153, 2154, 2155, 2156 e 2158 para as "runas", mas você pode mudar livremente. Abraços.
    1 ponto
  29. va em data / talkactions / scripts / ponha o nome de algum arquivo regras e adicione isto dentro function onSay(cid, words, param) file = io.open('regras.txt','r') notice = file:read(-1) doShowTextDialog(cid,7528,regras) file:close() end dps em pasta do seu otserv / crie um documento de texto chamado regras.txt e escreva oq você quiser dentro e salve dps disso va em data / talkactions / talkactions.xml e ponha uma tag assim la <talkaction words="!regras" event="script" value="regras.lua"/> Créditos Eskilo pelo script
    1 ponto
  30. Slicer

    [Pokemon] Pda By Slicer 1.9/2.9

    sabe oq eh isso? eh eu mandado vc correr atras das coisas.... sem +
    1 ponto
  31. Newtonnotwen

    Dicas Para Quests!

    Acho que não apena deveria botar npcs, mas sim criar historias, porque do que adiantam npcs com historias significativamente ruins? Bom tutorial, isso deve modificar vários ot servers consideravelmente horríveis, decaindo a ideia do apenas level up. Aprovado.
    1 ponto
  32. http://www.xtibia.com/forum/topic/191796-npc-que-usa-outro-item-como-dinheiro/ Acho que isso resolve o problema
    1 ponto
  33. Bloxx

    ## Tibialoader 0.34 + Tutorial

    BLZ galera uhu e nois! ok parou enrolação, eu sou Bloxx membro novo no XTibia, eu pesquisei no forum se tinha um post igual n axei entao ta aki para akeles q sempre kiseram um IP Changer mais eficiente (lembrando q ele ja esta atualizada os xml entaum NO precupaçao) Nome: TibiaLoader 0.34 Autor Original (Programa): ##### Funcionalidade: Ip Changer, Client Downloader Autor Original(Post) :Bloxx SS: Muitas e Muitas! Downloads: TibiaLoader 0.34 Bloxx: http://www.mediafire...veso4vzfb58209a SCAN:https://www.virustot...sis/1344730547/ OBS:São Falsos Positivos pq são algumas dlls que o TibiaLoader precisa pra rodar então NO preocupação Aki em casa sempre usei e nunca deu problema Começando... 1. Uma pekena ss do programa para vcs ve o tamanho do problema visual sofisticadexx o_o' (esse negosso do KingsAge é um anuncio): 2.Explicando: Custom Launch - E onde vc escreve o Ip e porta do ot q vc ker entrar Favorites - E onde vc pode por os ots que vc mais joga ou o q vc mais gosta Options - opções basicas do tibialoader, n e preciso mexer ai. Software - essa função e a melhor, ela permite q vc baixe os clients q vc ainda nao tem ou ver os q vc ja tem! (O MELHOR DE TUDO E Q OS CLIENTS BAIXADOS NO TIBIALOADER NAO DAO ERRO AO ABRIR NO RME!) Quit- Fecha o TibiaLoader AGR MAIS SS PLZ! Custom Launch: ("You don't have any clients installed" -Isso Aparece qnd vc n tem nenhum client baixado com o TibiaLoader) Favorites: (Sudden Serv - Meu Ot ) Software: Aki Mostra os clients ja baixados com "Installed" e os não-baiaxados "Not installed" Options - Funçãozinha Extra Baixando Clients no Software... 1. Abre a aba Software 2. Clike com o botão direito no client q vc vai baixar 3. Clike em Download Antes do Download! : Durante o Download! : Depois do Download! : Desse jeito, muito facil e rapido e bem-explicado, não tem como errar!(dessa maneira vc pode baixar qlq client disponivel no Software) Criando, Modificando e Lançando Favoritos... Criando... 1. Abre a aba Favoritos 2. Lá em baixo, clike em Add SS: Name: | Nome do OT | Avaiable protocols: Versão Client do OT IP Address: | IP do ot | Port: | Porta do OT | Add favorite: Adiciona o ot a lista de favoritos | Close : Fecha a janela 3. Quando terminar clike em Add favorite Editando... 1. Abre a aba Favorite 2. Clike no nome do OT q vc vai editar e dps, Lá embaixo clike em Edit 3. Faiz a merda baboseira q vc kiser e termine clicando em Edit Favorite e TADAAA o_o' Lançando... 1. Abre a aba Favorite 2. Clike no nome do OT q vc vai lançar e dps, Lá embaixo clike em Launch 3. Espere até a janela do Tibia abrir e TADAAA o_o', Tibia Aberto com Ip já alterado! Lançando OT via ##### pelo Google Chrome... muito legal essa função do TibiaLoader, ela permite vc lançar um ot qualker do otservlist pelo chrome (n sei se no Firefox pega, mais o método é o mesmo, testa vc ai ) 1. Abra o TibiaLoader e nao faça mais nada com ele 2. Abra o Chrome, dps vai no otservlist e abre a pg de um ot. SS: 3. Clike no IP do OT (nomedoot.servegame.com) 4. Vai aparecer uma janela dizendo q o TibiaLoader vai se conectar a um ot, confirme e vai aparecer uma janela Custom Launch 5. Clike em Launch para lançar o OT e TADAAA o_o' Tibia Aberto com Ip Alterado! Créditos e Agradecimentos... Créditos pelo Tutorial e Download: Bloxx Créditos pelas músicas q eu tava escutando enquanto estava fazendo o tutorial o_o' : Rádio Fusion Lição de Moral... Não Fique copiando tuto dos oto... BLABLABLA!!Se For Copiar este Tutorial e o Download, por favor dê os devidos créditos ao criado do post (Eu, Bloxx) por isso NO faça ripping! Isso é tudo por hoje galera, vou ouvir umas musicas na Fusion pra descançar. e o mais importarte! Gostou do post? Gostou do Download? Ajudei? me dá um REP+ ! <--------------------------------------------------------------------------------------------------------------------------> Como esse é o meu primeiro post assim estou aberto a críticas. Atenciosamente, Bloxx
    1 ponto
  34. Oneshot

    Dual Wield

    Infelizmente não é minha culpa essa falta de tags fechadas, parece que o desse fórum insiste em sumir com elas Mas obrigado pelo aviso.[/font][/color][/size]
    1 ponto
  35. MatheusGlad

    War Arena System.

    Todos os scripts foram testados em um ot 8.6 Bem o script é auto-explicativo, e ainda tem um video do sistema, acho que nao preciso explicar o que faz ne? AGORA EM MOD, MUITO MAIS PRATICO DE INSTALAR. SE FOR USAR O MOD VA ATE O FINAL DO POST, É EXATAMENTE IGUAL A VERSAO NORMAL, SO QUE MAIS PRATICO. FUNCIONA DO MESMO JEITO. Video: obs: Veja em fullscreen para ver melhor as msgs que retornam. Vá em data/lib e adicione esse script.lua com o nome de WarArenaLib: -- [[ Area and Positions Infos ]] -- areaplayersteam = { {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1} } areateam1ext = {x=80, y=305, z=7} -- Ponta superior esquerda da area do time um areateam2ext = {x=87, y=305, z=7} -- Ponta superior esquerda da area do time dois leaderteam1pos = {x=83, y=307, z=7, stackpos=255} -- Posição do lider do time um (que puxara a alavanca) leaderteam2pos = {x=87, y=307, z=7, stackpos=255} -- Posição do lider do time dois (que puxara a alavanca) newplayersposteam1 = {x=67, y=300, z=7} -- Posição para onde os players do time um serao teleportados newplayersposteam2 = {x=67, y=330, z=7} -- Posição para onde os players do time dois serao teleportados team1leverpos = {x=84, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time um puxara team2leverpos = {x=86, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time dois puxara leverafter, leverbefore = 9825, 9826 -- Ids das alavancas antes de puxadas e depois, consecutivamente (9825 = antes; 9826 = depois) posbenterteam1 = {x=78, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 1 posbenterteam2 = {x=92, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 2 backteampos = {x=77, y=307, z=7} -- [[ Storage Infos ]] -- team1leverstorage = 123497 -- Storage que sera usado quando puxarem a alavanca do time 1 team2leverstorage = 123498 -- Storage que sera usado quando puxarem a alavanca do time 2 haveteaminarena = 123499 -- Storage que sera usado para ve se tem algum time lutando na arena storageteam1death = 123500 -- Storage usado para ver quantos morreram do time 1 storageteam2death = 123501 -- Storage usado para ver quantos morreram do time 2 storageteam1 = 123502 -- Storage usado para ver quantas pessoas entraram na arena no time 1 storageteam2 = 123503 -- Storage usado para ver quantas pessoas entraram na arena no time 2 storageleader1 = 123504 -- Storage onde ficara guardado o uid do lider do time 1 storageleader2 = 123505 -- Storage onde ficara guardado o uid do lider do time 2 storageplayersteam1 = 123506 -- Storage que todos os players do team 1 iram ter. storageplatersteam2 = 123507 -- Storage que todos os players do team 2 iram ter. -- [[ Player Infos ]] -- needlevelarena = 20 -- Level que os outros jogadores sem ser o lider teram que ter. leaderlevel = 4000 -- Level que o lider tera que ter. onlyguildwars = true -- Se os membros de um time tem que ser da mesma guild do lider. (Nesse caso somente o lider da guild podera puxar a alavanca.) needplayers = 2 -- Quantidade de players que cada time tem que ter. -- [[ Functions ]] -- function getUidsFromArea(firstpos, area) local result = {} for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then table.insert(result, getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) end end end return result end function teleportUidsToPos(uids, pos) for i,x in pairs(uids) do doTeleportThing(x, pos) end end function isAllUidsSameGuild(uids, guildid) for i,x in pairs(uids) do if not (getPlayerGuildId(x) == guildid) then return false end end return true end function isAllUidsLevel(uids, level) for i,x in pairs(uids) do if not (getPlayerLevel(x) >= level) then return false end end return true end function haveQuantPlayersInArea(firstpos, area, quant) local result = 0 for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then result = result+1 end end end return result >= quant end function addStorageToUids(uids, storage, value) for i,x in pairs(uids) do setPlayerStorageValue(x, storage, value) end end function checkPoses(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function startArena() setGlobalStorageValue(storageleader1, getThingFromPos(leaderteam1pos).uid) setGlobalStorageValue(storageleader2, getThingFromPos(leaderteam2pos).uid) addStorageToUids(team1uids, storageplayersteam1, 1) addStorageToUids(team2uids, storageplayersteam2, 1) teleportUidsToPos(team1uids, newplayersposteam1) teleportUidsToPos(team2uids, newplayersposteam2) setGlobalStorageValue(storageteam1, #team1uids) registerCreatureEventUids(team1uids, "DeathTeam1") registerCreatureEventUids(team2uids, "DeathTeam2") setGlobalStorageValue(storageteam2, #team2uids) setGlobalStorageValue(haveteaminarena, 1) setGlobalStorageValue(team1leverstorage, 0) setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end function haveTeamInArena() return getGlobalStorageValue(haveteaminarena) == 1 and true or false end function isSqmFromArea(firstpos, area, sqmpos) for i,x in pairs(area) do for s,z in pairs(x) do if sqmpos.x == firstpos.x+s-1 and sqmpos.y == firstpos.y+i-1 and sqmpos.z == firstpos.z then return true end end end return false end function registerCreatureEventUids(uids, event) for i,x in pairs(uids) do registerCreatureEvent(x, event) end end Agora vá em data/actions/scripts e adicione um script.lua com o nome de WarArenaLever: function onUse(cid, item, fromPosition, itemEx, toPosition) team1uids = getUidsFromArea(areateam1ext, areaplayersteam) team2uids = getUidsFromArea(areateam2ext, areaplayersteam) if haveTeamInArena() then return doPlayerSendCancel(cid, "Already have a team in arena.") end if checkPoses(toPosition, team1leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam1pos) then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) return doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team1uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team1uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team1leverstorage, 1) doTransformItem(getThingFromPos(team1leverpos).uid, leverbefore) if getGlobalStorageValue(team2leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end elseif checkPoses(toPosition, team2leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam2pos) then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) return doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team2uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team2uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team2leverstorage, 1) doTransformItem(getThingFromPos(team2leverpos).uid, leverbefore) if getGlobalStorageValue(team1leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end end return TRUE end E em actions.xml bote essa linha: <action actionid="12349" event="script" value="WarArenaLever.lua"/> Agora vá em data/creaturescripts/scripts e adicione dois scripts.lua com esses nomes: WarArenaDeathTeam1: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam1, 0) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end WarArenaDeathTeam2: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam2, 0) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end Agora abra o creaturescripts.xml e adicione essas linhas: <event type="death" name="DeathTeam1" event="script" value="WarArenaDeathTeam1.lua"/> <event type="death" name="DeathTeam2" event="script" value="WarArenaDeathTeam2.lua"/> Agora vá em data/movements/scripts e adicione tres scripts.lua com esses nomes: WarArenaMovement1: function onStepOut(cid, item, position, fromPosition) local team = (fromPosition.x == leaderteam1pos.x and fromPosition.y == leaderteam1pos.y and fromPosition.z == leaderteam1pos.z) and "team1" or (fromPosition.x == leaderteam2pos.x and fromPosition.y == leaderteam2pos.y and fromPosition.z == leaderteam2pos.z) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end WarArenaMovement2: function onStepIn(cid, item, position, fromPosition) local team = isSqmFromArea(areateam1ext, areaplayersteam, fromPosition) and "team1" or isSqmFromArea(areateam2ext, areaplayersteam, fromPosition) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end if getGlobalStorageValue(team1leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam1) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end elseif getGlobalStorageValue(team2leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam2) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end end end WarArenaMovement3: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, storageplayersteam1) >= 1 then setPlayerStorageValue(cid, storageplayersteam1, 0) doTeleportThing(cid, posbenterteam1) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end elseif getPlayerStorageValue(cid, storageplayersteam2) >= 1 then setPlayerStorageValue(cid, storageplayersteam2, 0) doTeleportThing(cid, posbenterteam2) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end end return TRUE end E adicione essas linhas em movements.xml: <movevent type="StepOut" actionid="12350" event="script" value="WarArenaMovement1.lua"/> <movevent type="StepIn" actionid="12351" event="script" value="WarArenaMovement2.lua"/> <movevent type="StepIn" actionid="12352" event="script" value="WarArenaMovement3.lua"/> Pronto acabou rairiaria. Adicionando os Actions IDS: Nas 2 alavancas, adicione o actionid 12349. Nos 2 sqms que os players vao estar antes de entrar na arena adicione o actionid 12351. Nos 2 quadrados aonde os lideres irao ficar (na frente da alavanca) bote o actionid 12350. No sqm de sair da arena bote o actionid 12352. NA AREA DOS TIMES E NA ARENA, BOTE PELO MAP EDITOR PARA NAO PODER LOGAR. (Se voce nao fizer isso pode haver bugs.) Bem, se voce souber ler o script da lib, vai saber configura-lo para seu otserver. Versão MOD: (Abra o spoiler) O modo de configurar é exatamente igual ao normal. Flws. By MatheusMkalo
    1 ponto
  36. Paulohtimm

    Dark Magician

    Caro Woork, Olha, eu ainda não testei seu Monstro , mais você deveria mudar o loot colocar outro nome, ou seja, ser mais Original. Sobre o loot, mude caro amigo , o loot sera responsabilidade de quem usar o Monstro no Ot. Desde já, Obrigado pela atenção. Hycks
    1 ponto
  37. Kydrai

    [Systems] Pokemon Systems

    Bom script. Concerteza vai ajudar muita gente.
    1 ponto
  38. victorgod

    ~ Mapas Proprios 8.60X ~

    Desculpa mais se for para postar isso não precisa :s
    -1 pontos
  39. Morkshark

    Mensagem ao entrar

    Gostaria de um script que quando o player loga aparece: For Your Information: Informaações sobre o server; PS TENHO o documento de texto noticias. Darei muitos Reps+ @Edit Arrumei Erros Ortográficos XD Att: [ADM] MDKO
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...