Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/26/11 em todas áreas

  1. brun123

    Sistema Npc Gym Para Pokemon

    • nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.
    2 pontos
  2. Vamos lá, procurei por aqui e não achei . Abra a pasta de seu OT, vai em data e depois em TalkAction. Feito isso, vá em TalkAction.xml. Coloque essa Tag: Bom, feito isso vá na pasta TalkAction e vá em Scripts. Copie um arquivo .lua qualquer e renomeie para giveitem.lua, agora abra o giveitem.lua. Coloque isso dentro dele: Pronto, ta criado, agora como usar no jogo? /giveitem playername, itemid, quantidade Exemplo: /giveitem Lord'paulistinha, 2160, 100 No caso, 2160 é crystal coins, e 100 é a quantidade, ou seja? 100 crystal coins. A mensagem que aparecerá para o Player é: Você acabou de receber um item do ADM! Vocês podem modifica-la a gosto. Espero Ter Ajudado. Qualquer dúvida é so postar ou me mandar uma MP.
    2 pontos
  3. Jeffer000

    Pokemon Ex 2.1 Revisão

    Que tem que adicionar a magia no move disso eu sei..mas n sei mexer com script de magia...e se estou pedindo ajuda aqui e pra deixar 100% e postar aqui novamente...ja arrumei all magia ate exeggcute, exceto as magias q citei acima e algumas outras que não encontrei nos move... OBS : Acabei de editar agora....podemos dizer que m1-m12 (148 pokemon ) esta 99%.Tirando os ataques Strafe/invisible/ e algumas magia do farfetch e hitmonlee o resto esta totalmente pegano..dex tambem ja esta 100% com descrição do poke e level dos ataque... Postarei M1-M12 aqui quando conseguir arrumar esses problemas que falei ae encima...se alguem ajudar agraço..Vlw =D
    2 pontos
  4. Alissow OTs 4.11! Esta versão 4.11 foi meio apressada, só adicionamos as features novas do 8.6. Aproveitem. Créditos: Alissow Comedinha Luis Nirk TFS Team Viniply Xedegux Sobre o OT/Mapa: Principais quests: -Annihilator -Inquisition Quest -Pits of inferno -Demon Oak -Solar axe quest -HOTA -MPA quest -The Challenger Monstros: -Total monstros: 10292 -Total spawn: 5587+ Cidades: -12 Cidades -200 Houses+- Raids/Invasões: -Rat -Orshabaal -Ghazbaran -Giant spider/The old window -Ferumbras -Morgaroth Spells: -Magias editadas para balanceamento das vocações Changelog Atualização [3.4 BETA]: - Removido áreas não usadas no mapa, diminuindo o tamanho em MBs - Adicionado Anti Magebomb System - Corrigido bugs no npc addon - Adicionado sistema onde os npcs falam sozinhos (Igual como foi adicionado no global). First ;] - Adicionado Elf village em Venonh ( bem parecida com a do global ;]) - Potions desaparecem quando usadas - Corrigido sistema de Up - Corrigido sistema de Monster Counter - Nova dragon lair em Mirand Theraan (Subsolo) - Adicionado porta de level, que protege leveis baixos acessarem os demons da cidade de Flam - Ampliado deserto da cidade de Mirand Theraan - Adicionado Ilha de Goroma - Adicionado Forbidden islands - Ampliado floresta da cidade de alfon e colocado área de macacos parecida com Banuta. - Ligação de alfon com Mirand Theraan - Corrigido bugs reportados nas portas das casas - Corrigido posição dos buracos e escadas - Adicionado beds em todas as casas - Corrigido bugs em casas de yalahar - Adicionado Blue legs quest ( Koshei The Deathless global) - Corrigidas quase todas as areas de Yalahar - Teleports em Yalahar substituidos por NPCs de teleport do global - Corrigido pequenos erros no npc Capitao Coruja, e adicionado viagem à goroma - diminuido ataque do Eye of the seven - Ice rapier agora quebra - Corrigido npc Banker - Adicionado quase todos os items 8.5 - Adicionado medusa - Adicionado Todos os outfits novos - Corrigido NPC Banker (que dava dinheiro) Script By Ta4e - Corrigido Annihilator Quest - Adicionado Notice System - Adicionado novo distro, compilado por Comedinha Atualização nº 2 [3.4]: Otserv atualizado... Corrigido debugs frequentes Corrigido debugs na magia exevo pan Corrigido bugs nos npcs Roy e Firewalker Adicionados mais novos items 8.5, agora temos 90% dos items novos... Atualização 3.5 [06/08/2009]: - Cidade principal (dorion) totalmente reformada - corrigido blue legs quest - Corrigido alavancas de compra de potions - Adicionado alavancas de compra de runas - Corrigido npc Bank - Adicionado NPC King Arthas, que vende promotion - Adicionado npc Rashid, que vende items. - Arrumado Wild Growth rune - Arrumado Utani Hur - Magias reajustadas - Novo estilo de server save - Ilha de mystic reformulada (by Nirk) - Adicionado nova magia para knights "Exkordium". - Adicionado nova magia para mages (promoted) "Exura Seil". - Adicionado nova magia para mages (promoted) "Exevo Gran Frigo". (arrumar -> sem exhausted nem gasta mana) - Adicionados novos monstros. - Adicionado quest challenge (lvl 250) - Corrigido bug do Dead Cyclops - Bug aol Arrumado - Poi Modificada - Corrigido teleports ghouls yalahar - Modificada demon helmet quest, assim como o premio da quest - Corrigido nome do Hallowed axe - Corrigido bug das houses - Corrigido bug dos items andaveis Atualização Patch 3.5.1 [07/08/2009]: - Corrigido erro na inicialização do Ot - Bug das potions corrigido - Bug do aol corrigido (pelomenos pra mim) - Bug dos outfits corrigido - Corrigido erros nas escadas na ilha PvP - O monstro The Fastest Turtle agora não morre, se tornando um monstro apenas para atrapalhar - Retirada suposta quest dos 3 hellhounds e 1 minishabaal - Adicionado teleport de retorno na Ferumbras Tower - Corrigido posições da raid de The old widow - Corrigido bug das escadas nas minas de demons - Corrigido alguns bugs vistos no mapa Atualização 3.6 [10/08/2009]: - Arrumado bugs criticos - Arrumado comando !promote/!demote - Atualizado Items.xml - Bug das Beds arrumado - Modificações na cidade, como, nature e caves - Nova sala de treino - Adicionado comando !highscores Atualização 3.7! Beta [18/12/2009]: - Guildhall support (Elf) - Nova deathlist(Elf, OpenTibia SVN) - Frags funcionando (Elf) - Atualizado monstros e items (slawkens, KaczooH, Elf) - Novas talkactions: /commands, /wp, /storage, /config, /promote & /demote. (slawkens) - Novas funções lua - Novos creatureevents (slawkens, Elf) - Novos configuráveis (Elf, slawkens) - Modificado ataque de monstros existentes (especialmente outfits e velocidade) (Elf) - Monstros reorganizados & atualizados (Nem todos) (slawkens) - Melhorado sistema de banimentos (Elf) - Reescrita janela de Rule Violation (Elf) - Arrumado Stamina (Elf, OpenTibia SVN) - Casas agora são salvas nas modificações do dono (Elf) - Escadas de yalahar funcionando perfeitamente (Elf, Talaturen) - Sistema de nado & waterball completo (slawkens) - Monstros invisiveis não são mais mandandos ao client (anti bot) (OpenTibia SVN) - Anti-dash (OpenTibia SVN) - Sistema de leilão de casas, possibilidade de usar site para vender casas (house_actions table) (OpenTibia SVN, Elf) - Salvando bot actions para /logs/bots por cada player. Por exemplo, bot pode enviar mensagem com mais de 255 caracteres (slawkens) - Novos raid events- item spawning & disappearing and more (Elf) - Modificações no NPC system (Elf) - NPCs OutfitModule (Elf) - Completo 8.53 support, com wars (Elf) - Completo 8.54 support (Elf) - Arrumado NPC voices (Elf) - Players serão informados quando o Gamemaster logar ou ficar invisivel (slawkens) - Arrumado Player Deaths (Elf, slawkens) - Arrumado Abuso de PZ (slawkens) - Portas agora não ajudam players a entrar em PZ (slawkens) - Magic level formula (OpenTibia SVN, KaczooH) - Memory leaks (Elf) - Queries optimization (Talaturen) - Janelas podem ser abertas do lado de fora da casa- agora apenas GMs podem fazer isso (slawkens) - arrumado Efeitos para o Ghost (GM)- configuravel (slawkens) - Corrigido >> Ghost debugging players (OpenTibia SVN, Elf) - Corrigido erro na promotion (Elf) - Corrigido vários erros no console. (slawkens) - Corrigido Spam de magias (Elf) - Corrigido stamina premium (Elf) - Corrigido Clean (Elf) - Corrigido vários outfits (Elf) - Corrigido Ghost (Elf) - Todas as correções no OpenTibia SVN (Open Tibia SVN, Elf) - Corrigido Todos os crashes possiveis (Elf) - Npcs Corrigidos (Comedinha) - Distro Reformulado (comedinha) - Bugs de reports arrumados (Comedinha) - Novos outfits (Alissow) - Actions Arrumadas (Comedinha) - Libs trocadas (Comedinha) - Talkactions bugadas arrumadas (Comedinha) - Reforma na área Sul da cidade Dorion (Alissow) - Adicionado monstros 8.54 (Alissow) - Corrigido bug das potions infinitas (Alissow) Atualização 3.7 Patch 1 [27/12/2009]: - Rampa na frente da loja de foods retirada (Alissow) - Arrumado bugs de mapa em anknor (Alissow) - Bug na Lib dos npcs corrigido (Alissow) - Bug do acc manager arrumado! (Alissow) - Magias "Exkordium" e "Ice Storm" arrumadas (Alissow) - Monstros 8.54 funcionando (Alissow) - 2º Addon Yalaharian arrumado (Alissow) - Addons Warmaster adicionados no NPC Addoner (Alissow) - Pequenas modificações na cidade principal, Dorion, para melhora da jogabilidade (Alissow) - Comando /Deathlist retirado (Alissow) - Magic Wall Rune arrumada (Alissow) - Quest Annihilator arrumada (Alissow) - "Your depot contain x items" Arrumado (Alissow) - Addons reorganizados, mais facil aggora (Alissow) - Tempo de Red skull e Black skull reduzidos para 24 e 42 horas (Alissow) - Reduzida porcentagem de morte (Alissow) - Acrescentado chance de critical hits (Alissow) - ShowHealingDamage Adicionado (Alissow) - Várias partes do mapa remapeadas (Alissow) - NPCs para recarga de Soft boots & Firewalker boots arrumados [Não testado] (Alissow) - Comando !frags arrumado! (Alissow) - Agora é possivel fazer addons sem precisar do comando !buypremium (Alissow) Atualização 3.8 [17/01/2010]: - Arrumado bug nas escadas do Dlair (Alissow) - Todos os bugs nos NPCs arrumados (Comedinha) - Novas talkactions [a pedidos] (Comedinha) - Deathlist arrumada (Comedinha) - Novo Distro (Comedinha) - MySQL Atualizada (Comedinha) - Firewarker boots não é mais gasta quando não está usando (Comedinha) - Problemas com items no Rashid arrumados (Alissow, Comedinha, Comunidade) - O NPC Banker foi corrigido, mas achei mais seguro retira-lo, visto que ninguem usava e poderia causar outro tipo de bug - Ilha (Sim aqui é uma ilha) de Zao adicionada (Alissow, Barker) - Monstros 8.54 aperfeiçoados (Alissow, Markithu, Zkum) - Reduzido danos da magia Exkordium (Alissow) - Os npcs Dark Rodo e Rachel vendem Blank Runes (Alissow) - Magias que não hitavam anteriormente foram arrumadas (Alissow) - Comando !buypremium arrumado (Alissow) - Arena PVM - Mais conhecida como Arena Svargrond - FUNCIONANDO!!! (Alissow) - Magia LightChain Retirada (Alissow) - Adicionado um sisteminha legal no templo (Alissow) - NPC Rashid retirado (Alissow) Atualização 3.8 Minor Patch 1 [17/01/2010]: - Comando Deathlist retirado novamente, fizemos testes equivocados. Se você é uma das 16 pessoas que baixou a versão anterior (3.8) não precisa baixar esta, basta retirar o comando !deathlist e /deathlist do seu Talkactions.xml, Os comandos causam quedas no servidor. Atualização 3.9 [15/02/2010]: - Cidade principal (Dorion) reformada, novo templo, novo depot, novo porto, novos npcs :] (Alissow) - Adicionado Reputation System (Comedinha, Cybermaster) - Adicionado !bless system (Comedinha) - /info melhorado (Comedinha) - Jail System (Comedinha) - Bug chatinho nos tiles pretos arrumado. - Magic Wall Funcionando! (Alissow) - Agora você pode fazer bolos e pães :] (Comedinha, Jean, Ojani) - Adicionado sistema de casamento (Comedinha, ScorpiOOn93, Alissow) - Loot The Fastest Turtle diminuido (Alissow) - Loot e experiencia do Feromous mais baixo (Alissow) - Sistema de parceis para Dorion funcionando (Alissow) - Guildwar System (Comedinha) - Anti MageBomb System (Comedinha, Huggen) - Adicionado Anti Nuker - Esse funciona! (Comedinha) - Adicionado Map Marks, para os players novos (Alissow, Comedinha) Atualização 4.0 [15/02/2010]: - Cidade Mountain totalmente reformada (Alissow) - Montanha de Goblins de Dorion reformada (Alissow) - Demonic Castle de Dorion reformado (Alissow) - Cidade de Venonh modificada (Luis) - Distro atualizado, funcionando nos clients 8.54, 8.55, 8.56 e 8.57 (Comedinha) - Comando !bless retirado (Alissow) - O NPC Ermes não vende mais items de decoração (Alissow) - Arrumado bugs na Ferumbras Tower (Alissow) - O comando !AFK on agora mantem o player parado (Comedinha) - Arrumado bugs nas escadas da área de DeathFans (Alissow) - Comando !Deathlist funcionando! (Alissow, Doidinmapper, GT Thionix) - Sistema de REP atualizado (Comedinha) - Sistema de Polls (Comedinha) - Banco por comandos (Comedinha) - Novos comandos de addon e accounts (Comedinha) - Sistema de futebol completo! (Comedinha) - Sistema Antibot (Comedinha) - Magia Spared Hur modificada (Alissow, Orzeleagle) - Adicionado sistema de montaria (Alissow, unknown666) - Adicionado Canivetes (Alissow, Siramix) - Nova hunt Subaquatica (Luis) Atualização 4.11! [11/07/2010]: - Versão 8.6, todos os items, outfits e monstros novos (Comedinhasss, Fireelement) - Adicionados os novos monstros 8.6 (Alissow) - Bug das potions arrumado (Comedinha, Matheusmkalo, Gabriel linhares, Fireelement) - Erros das runas arrumado (Comedinha, Gabriel linhares, Matheusmkalo, fireelement) Download Servidor: 4shared Tamanho: 17,416 KB Download: http://www.4shared.com/file/ez8XKrju/860_Alissow_Ots_411.html Link protegido: http://lix.in/-8d4bc0 Scan VirusTotal: http://www.virustotal.com/pt/analisis/983abb574dbb957a75aa1fd29eb804065f775e6a0c43216aa277686d32bce22a-1263702373 Atenção - Acc do God: god/god - LEIA o tópico antes de postar qualquer coisa ou duvida - Reportem se houver algum bug - A database fica na pasta schemas+Database - Proibido o uso do nosso distro sem o nosso consenso, obrigado. Andei percebendo que há muitos mapas feitos por mim em outros servidores postados aqui no xtibia, eu não sei se vocês sabem, mas isso é PLÁGIO. Eu não sou uma pessoa egoista, tudo que eu posto aqui no XTibia é para ser compartilhado, mas desde que mantenham os devidos créditos. Será denunciado qualquer tipo de "roubo" sem minha autorização para beneficio próprio. Eu sei que vocês não se importam muito com isso, eu também não deveria me importar, mas é o tempo e a dedicação de outra pessoa que vocês estão roubando, então peço gentilmente aos que tem conhecimento desses mapas, que me apontem. Não tem graça trabalhar horas e horas e ser roubado em dois minutos.
    1 ponto
  5. thalia

    [8.54]Pokeserver Tfs 0.3.6 [V3.0]

    Oi galera do xtibia, alguns já me conhece , posto scripts na seção de actions/talk/move! Aqui está a versão 3.0 do PokeServer TFS 0.3.6pl1, ~~( O que contém na versão 3.0? ) ~~ ~~>Fly System - Bug corrigido ~~>Ride System- Bug corrigido ~~>Catch System- Bug corrigido ~~>Go/back System- Bug corrigido ~~>Stones System - Bug corrigido ~~>Npc Heal - Bug arrumano ~~>Todos os 151 pokemons (50% configurados) ~~>Skill System - Para cada tipo de pokemon é um poder difirente! ~~>Mapa Svke 70% ~~>Todas as outfits Stones,Go/back,Npc,Fly,Ride,Skill, foram testados, então não venha encher o saco falando merda <--! Download !--> Server 3.0 Client (È extremamento necessario para poder entrar no server!) Versão 3.0 do server de pokemon Faça você mesmo! Créditos ao Drakylucas por me ajuda a fazer os scripts! Não se esqueça de clicar ali no icone verde
    1 ponto
  6. nyuchiha

    [Aprenda A Fazer Seu Próprio Client]

    [ ~> Fazendo Seu Próprio Client <~ ] Fala Tibianos , Pokemianos , WODBOianos do Xtibia, Hoje estou aqui com o meu primeiro tutorial , com o objetivo de explicar tim tim por tim tim como fazer um Client.. Como eh meu primeiro tutorial estou começando com algo facil , espero que todos gostem: 1° passo , criando o executar do seu client com ip proprio : 2° passo , mudando a Pic do Client: 3° passo , mudando o icone do seu client: 4° passo , traduzindo seu client: 5° passo , criando um instalador para seu client: Link dos Programas usados: Então eh isso pessoal , espero ajudar alguem com esse Tutorial. Fico Devendo Imagens , + logo colocarei para facilitar Thx Edit: Imagens Adicionadas , espero que fique + facil de compreender.
    1 ponto
  7. Natanael Beckman

    [C++] Compilando Um Otserv

    Boa galera andei olhando e vi alguns tópicos até meio parecidos com o que estou fazendo agora, mais, eu não acho eles completos por tanto aqui vamos nois. 1° Vamos fazer todos os downloads necessários. Vamos usar um source TFS pra versão de Tibia 8.60 - Source - Stians Dev-Cpp <> 32bits - Stians Dev-Cpp <> 64bits 2° Abra o Dev-cpp: 3° Clique em Tools > Check For Updates/Packages: 4° Clique em Check For Updates and Upstairs select devpacks.org: 5° Seleciona OpenSSL 0.9.8a e clique em Dowload: 6° Em seguida irá aparecer automaticamente um processo de instalação: Agora seu Dev-cpp está no ponto pra compilar. 7° Use ctrl + o pra abri o .dev: 8° Ele vai estar dentro da pasta da sua source: 9° Então depois que abrir todos os arquivos: 10° Use alt + p logo após aparecerá uma janela ae clique em parameters e adicione, {-D__CONSOLE__} e depois OK: 11° Agora é so compilar ctrl + f9: 12º O seu executavél vai está na pasta da sua source: Pronto galera compilação concluida. Creditos: nwtr Nando Web Natan Beckman
    1 ponto
  8. Matheuzinhoul

    [Iniciante] Configurando Smudge

    Créditos: TkTheus
    1 ponto
  9. @Edit ________________________________________________________________ No Seu Htdocs va em Config/config.php e coloque isso no final: // Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = 'seu e-mail'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro $config['pagseguro']['token'] = 'SEU TOKEN PAGSEGURO AQUI'; Como ja havia dito no outro topico,crie um arquivo chamado retPagseguro.php Dentro adicione isso: <?php include('config-and-functions.php'); define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por comprar conosco.</p> </body> </html> Depois crie um arquivo chamado retorno.php e adicione o seguinte: <?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> No seu buypoints.php,basta colocar isso: <?php if(!$logged) if($action == "logout") $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Logout Successful</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have logged out of your '.$config['server']['serverName'].' account. In order to view your account you need to <a href="?subtopic=accountmanagement" >log in</a> again.</td></tr> </table> </div> </table></div></td></tr>'; else $main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=accountmanagement" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>'; else { $main_content .= ' <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="'. $config['pagseguro']['email']. '"> <input type="hidden" name="tipo" value="CP"> <input type="hidden" name="moeda" value="BRL"> <input type="hidden" name="item_id_1" value="1"> <input type="hidden" name="item_descr_1" value="Pontos na account de nome: '.$account_logged->getCustomField("name").'"> <input type="hidden" name="item_valor_1" value="'. $config['pagseguro']['produtoValor'] .'"> <input type="hidden" name="item_frete_1" value="0"> <input type="hidden" name="item_peso_1" value="0"> <input type="hidden" name="ref_transacao" value="'.$account_logged->getCustomField("name").'"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr bgcolor="#505050" class="white"> <th colspan="2"><strong>Escolha a quantidade de pontos que deseja comprar</strong></th> </tr> <tr> <td width="10%">Sua conta</td> <td><strong>'.$account_logged->getCustomField("name").'</strong></td> </tr> <tr> <td width="10%">Pontos</td> <td> <input name="item_quant_1" type="text" value="1" size="5" maxlength="5"> </td> </tr> <tr> <td colspan="2"> <input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/carrinhoproprio/btnFinalizar.jpg" name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!" /> </td> </tr> </tbody></table></form>'; } ?> Para finalizar: Adicione no seu phpmyadmin,na parte SQL,a seguinte database: CREATE TABLE `retorno_automatico` ( `TransacaoID` varchar(36) NOT NULL, `VendedorEmail` varchar(200) NOT NULL, `Referencia` varchar(200) default NULL, `TipoFrete` char(2) default NULL, `ValorFrete` decimal(10,2) default NULL, `Extras` decimal(10,2) default NULL, `Anotacao` text, `TipoPagamento` varchar(50) NOT NULL, `StatusTransacao` varchar(50) NOT NULL, `CliNome` varchar(200) NOT NULL, `CliEmail` varchar(200) NOT NULL, `CliEndereco` varchar(200) NOT NULL, `CliNumero` varchar(10) default NULL, `CliComplemento` varchar(100) default NULL, `CliBairro` varchar(100) NOT NULL, `CliCidade` varchar(100) NOT NULL, `CliEstado` char(2) NOT NULL, `CliCEP` varchar(9) NOT NULL, `CliTelefone` varchar(14) default NULL, `NumItens` int(11) NOT NULL, `Data` datetime NOT NULL, `status` tinyint(1) unsigned NOT NULL default '0', UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`), KEY `Referencia` (`Referencia`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; E essa outra aqui : CREATE TABLE `PagSeguroTransacoes` ( `TransacaoID` varchar(36) NOT NULL, `VendedorEmail` varchar(200) NOT NULL, `Referencia` varchar(200) default NULL, `TipoFrete` char(2) default NULL, `ValorFrete` decimal(10,2) default NULL, `Extras` decimal(10,2) default NULL, `Anotacao` text, `TipoPagamento` varchar(50) NOT NULL, `StatusTransacao` varchar(50) NOT NULL, `CliNome` varchar(200) NOT NULL, `CliEmail` varchar(200) NOT NULL, `CliEndereco` varchar(200) NOT NULL, `CliNumero` varchar(10) default NULL, `CliComplemento` varchar(100) default NULL, `CliBairro` varchar(100) NOT NULL, `CliCidade` varchar(100) NOT NULL, `CliEstado` char(2) NOT NULL, `CliCEP` varchar(9) NOT NULL, `CliTelefone` varchar(14) default NULL, `NumItens` int(11) NOT NULL, `Data` datetime NOT NULL, `status` tinyint(1) unsigned NOT NULL default '0', UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`), KEY `Referencia` (`Referencia`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; :XTibia_smile:
    1 ponto
  10. betinhowz666

    [8.54] Mapa Pokemon Betinhowz666

    Hello Como prometido irei disponibilizar agora o download do mapa pokemon que estive trabalhando. Coloquei as houses mais não o respaw. Apresentações ? Vamos lá para uma prévia das cidades. As hunt's vocês terão que baixar para conferir CITY 1 CITY 2 CITY 3 CITY 4 Me ajudem a atingir 200 REP +, Que farei este mapa ficar muito melhor do que está. Antes era 150 REP+, Mas por conta de alguns moderadores me tirarem REP + dizendo que eu tinha feito outra conta para me dar REP + agora será 200. Segue o download do mapa e o que precisa para que você abra-o MAPA BETINHOWZ666 SPR POR PIRADECO Créditos: PeeWee - por fazer parte do mapa Piradeco - pelas .spr e .dat betinhowz666 - por estar editando. (EU)
    1 ponto
  11. Faaala pessoal, Bom a um tempo atrás estava atrás do script !spells que você fala e aparece as spells que você pode usar, eu achei varios, porem nenhum funcionava! É nenhum funcionava! Então hoje como já entendo um pouquinho sobre script, peguei a script do spellbook, fiz algumas alterações e adaptei ele para talkaction, assim quando você usa o comando !spells aparece as spells que você tem... Vamos logo aos scripts... Vá até a pasta Talkactions abra o arquivo Talkactions.xml e adicione esta Tag: <talkaction words="!spells" event="script" value="spells.lua"/> Agora vá até a pasta Scripts dentro da pasta Takactions e abra ou faça um script spells.lua e adicione isto dentro: -- [( Script edited by Doidin for XTibia.com )] -- function onSay(cid, item, words, param) local count = getPlayerInstantSpellCount(cid) local text = "" local t = {} local prevLevel = -1 local line = "" for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(cid, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end table.sort(t, function(a, b) return a.level < b.level end) for i, spell in ipairs(t) do if prevLevel ~= spell.level then if i ~= 1 then line = "" end line = line .. "- Spells for Level " .. spell.level .. ":\n" prevLevel = spell.level end text = text .. line .."• ".. spell.words .." - " .. spell.name .. ": " .. spell.mana .. "\n" end doShowTextDialog(cid, 7528, text) return TRUE end Pronto seu script está pronto, basta você usar o comando !spells e verá... Imagem do comando: Espero que tenham gostado, abraços...
    1 ponto
  12. [Talkaction]Sistema M1 até M6 + Tutorial de Edições. Créditos: Apocarai PeeWee Olá, antes eu já havia postado o sistema até m3, agora venho traze-lo até m6. Do m4 até m6 decidir fazer diferente, dessa vez quem irá colocar as magias , combat e level necessário será vocês. Estou fazendo isso para que vocês entendam melhor o comando, e caso precisarem editar que não precisem e ajuda. No final do Tópico estará os tutoriais. M1 M2 M3 ----//----//----//----//----//----//----//----//----//----//----//----//----//---- M4 M5 M6 Tags Obs. QUANDO SALVAR OS COMANDOS COLOQUE O NOME DE SistemaM... [Nos pontos bote numero da magia. Tutorial Como Adicionar Magia , Combat e Level. Como adicionar novos M. Na parte após os pokemon adicionados com suas magias procure essas partes das linhas. Tempo das Magias Logo abaixo após as linhas que citei acima , se tem o tempo usado das magias. Bom é isso, caso falei alguma besteira me falem que irei arrumar, qualquer duvida me adicione no msn ou poste no tópico. Não esqueça do REP +
    1 ponto
  13. rod_doidim

    Layout De Nicaw [ Tibia Loucos ]

    Gostou ? Original era este: www.nicaw.net
    1 ponto
  14. PedroXtibiaaaa

    Como Criar Um Instalador

    Primeiro de tudo baixe o Install Creator [download]http://www.theclickteam.com/webftp/files/5/5/icpinst.exe[/download] Depois de instalado abra-o, vai aparecer isto: se não aparecer tentem clicar em new. Clique em avançar, escolham a pasta que está o cliente de vocês e clique em avançar. Escolham a linguagem que vai ser o instalador e embaixo o nome do produto. Sempre cliquem em "preview" para ver como vai ficar antes, clique em avançar. Em default vai ser a opção de instalação, Windows, Linux... e embaixo vai ser caso você queira que precise de um serial key pra que possa abrir o arquivo, aconselho a não botar, clique em avançar. Aqui você vai escolher como vai ser o instalador, se ele vai ser full screen ou small screen, com a opção full screen você pode escolher o nome que vai aparecer la em cima, um background ou as cores que vão aparecer no fundo. Para quem escolheu Full Screen: ali em browse você vai escolher a imagem que você quiser como fundo e embaixo são as opções: Stretch (Esticar) - Pattern (Padrão) e do outro lado é o alinhamento: Left (Esquerda) - Center (Centro) - Right (Direita) - Top (Topo) - Center (Centro) - Bottom (Fundo) Para quem escolheu Small Screen: No primeiro onde está escrito Default você pode escolher o que achar melhor, para visualizar basta clicar Preview. Embaixo em Left Bitmap você pode escolher a imagem que você vai querer que apareça na Esquerda do instalador, a imagem tem que ser no tamanho de 140x316. No outro em Top Bitmap é a imagem que vai ficar em cima, tem que ser no tamanho de 57x57. Depois disso clique em avançar. Nessa parte você pode escrever as informações que quiser, sobre como criar conta, como jogar... Clique em avançar. Nessa parte você vai poder colocar algum termo ou condição para aceitar. Clique em avançar. Aqui você pode escolhar em qual lugar a pasta do seu servidor vai ser salva, aconselho a deixar do jeito que esta. Clique em avançar. Aqui você vai poder escolher se quer ou não que o instalador crie um icone do seu cliente no desktop. Primeiro em Browse ache o seu client, e embaixo escolha o nome que você quer que apareça. Clique em avançar. Aqui não mexa no primeiro, e no segundo você pode escolher se quer que o programa execute o seu cliente quando a instalação terminar, para isso clique em browse e escolha o seu cliente. Clique em avançar. Deixe marcado Uninstall Program para que os outros não tenhma problemas para desinstalar o seu cliente. Clique em avançar 2 vezes, desmarque a opção "Do not build the install Program" Vai abrir uma janela para "Salvar como" coloque Install e feche, se ele pedir pra salvar mais alguma coisa coloque com o nome de Install Config.
    1 ponto
  15. TeamSky

    [Spr] Pokemon Maluco Ta Aqui

    Pessoal, já me conheçem do server que postei Pokemon Maluco Todo mundo estava pedindo spr. aqui está Scan Download : Espero meu REP+
    1 ponto
  16. ÍNDICE Introdução Ideal Pedidos Entrega Como pedir? Explicações Tutoriais 1. INTRODUÇÃO - Olá a todos XTibianos. Por meio deste tópico, venho lhes oferecer o meu serviço, no qual possa ser útil não apenas por um, mas por vários usuários no qual está iniciando ou possui alguma dificuldade com Mapping. 2. IDEAL - O ideal do tópico é ajudar ao máximo os usuários no qual possuam dúvidas e dificuldades na área Mapping. - É "dar a luz", para que se desenvolva um trabalho bom. 3. PEDIDOS - Os pedidos serão feitos neste tópico, e para melhor visualização, eu criarei os tutoriais. - A lista de tutoriais, estarão presentes aqui. - Preste atenção ao fazer o pedido, caso já exista o mesmo apenas redirecionarei para o tópico correspondente. 4. ENTREGA - A data de entrega não será estipulada por quem está enviando o pedido. - A data será estipulada de acordo com o grau de dificuldade do pedido. - Prazo máximo de uma semana. 5. COMO PEDIR? - Para pedir, é facil, basta você preencher o formulário abaixo: - Feito isso, basta aguardar! 6. EXPLICAÇÕES - Bem, eu sou humano como todos, e tenho minha vida social. - Em férias, tenho poucas atividades e um tempo maior para poder atender os pedido e ainda para mappear o BondOTS. - Como todos mappers, possúo dificuldades. Porém, determinação e esforço de sobra, caso você peça um tutorial e eu tiver dificuldade, irei me interar, e farei o máximo para sanar a dúvida. 7. TUTORIAIS - FAÇA JÁ SEU PEDIDO ! .:| REP+ e Eu Recomendo |:. Atenciosamente, Bondx.
    1 ponto
  17. Trile

    Global 8.60 Beta Com Site

    Salve! Vim Trazer Um Global Full C/Site BeTa. Prints Ae Pro Seis ^^ HEHE MUITO LOKO!!! Site Muito Loko Tbm! Download Do Map http://www.4shared.c...Global_860.html] Download Do "Gesior" WebSite http://www.4shared.c...FbU/Gesior.html Para Deixar Site On Download Do Xampp ]http://www.baixaki.c...nload/xampp.html SCANS Scan Do Sitehttp://www.virustota...e556-1281479277 Xampp é Do Baixaki Então Nem Preisa De Scan Scan Do Global http://www.virustota...8d1a-1308007151 Creditos Death Core 26% Doidin 25 % Alissow 25% Masterlokinhon 25 % Ajudei? Da Rep+ , Não Vai Cair Sua Mão
    1 ponto
  18. Você arrumou o arquivo xml, faltou editar o nome do novo monstro no monster.xml localizado dentro da sua pasta monster. basta especificar o nome do monstro e logo depois o local onde o mesmo se encontra. Ai na hora de sumonar com o ADM, basta dizer /m nomedomonster. Espero ter ajudado, abraço.
    1 ponto
  19. AlexxNica

    Erro No Vertrigo

    PsychooOkama, sua dúvida foi respondida em outro tópico, peço que use a função Search(Pesquisar) do fórum para evitar tópicos repetidos. Dúvida respondida no tópico: http://www.xtibia.com/forum/topic/157095-me-ajudem-por-favor/page__view__findpost__p__1041349
    1 ponto
  20. Laionelxxt

    Carlin War (8.60) Beta 2.0

    Mo Loko Rep+ :button_ok:
    1 ponto
  21. pera ai q ja ja fasso esse script @edit abra o login.lua e add isso antes do ultimo Return true registerCreatureEvent(cid, "jail") feche e salve e va no creaturescripts.xml e add isso <event type="death" name="jailpalyer" script="jail.lua"/> agora crie arquivo.lua em script e adicione isso config = { jailpos = {x=160, y=49, z=5} unjailpos = {x=160, y=54, z=7} } function onDeath(cid, corpse, lastHitKiller, mostDamageKiller) if(isPlayer(lastHitKiller) == TRUE) then doPlayerAddMoney(lastHitKiller, config.reward) doPlayerSendTextMessage(lastHitKiller, MESSAGE_STATUS_CONSOLE_ORANGE, "Ta Prezo " .. getCreatureName(cid) .. " e recebeu " .. config.reward .. " GPs.") end return TRUE end
    1 ponto
  22. pessoa93

    Rookgaard By Jaum [8.60]

    Acho que o mapa que você editou foi o meu que postei na sessão de mapas 8.6x né? Você deveria ter postos mais tps, só tem 4 ai. acho que tem bem mais hunts do que apenas essas 4 em rook, mesmo assim, parabéns.
    1 ponto
  23. Primeiro que fórum sobre design de jogos não tem nada a ver com o XTibia -> não é concorrente Depois você já vem irritando muito com excesso de flood e posts sem sentido, por mim já estaria banido E por último você copiou SIM a resposta daquele outro site, seu contador de posts não aumenta seu pênis meu jovem
    1 ponto
  24. ultimate1996

    [Encerrado] Vip Pago

    @BiakPotemte Refaça o primeiro procedimento do Gesior (escolher o local da pasta do servidor). Ex : C:/Documents and Settings/Administrador/Desktop/Cópia de Dynamic World E verifica se o seu config.lua está modificado corretamente :]
    1 ponto
  25. Hashiro

    Rank Xtibia

    Espero que gostem pessoal
    1 ponto
  26. Em config.lua; Procure: experienceStages = true Mude para: experienceStages = false Se te ajudei, REP+
    1 ponto
  27. brun123

    [Pedido] Level Advance Effect

    Crie um arquivo chamado levelup.lua em data/creaturescripts/scripts e coloque isso dentro: Agora em creaturescripts.xml (data/creaturescripts) adicione essa tag: <event type="advance" name="EffectOnAdvance" event="script" value="levelup.lua"/> pode ser em qualquer lugar... Agora abra o login.lua (data/creaturescripts/scripts) e procure por isso: registerCreatureEvent(cid, "Idle") e abaixo, adicione: registerCreatureEvent(cid, "EffectOnAdvance")
    1 ponto
  28. BodyGrilo

    [Ajuda] Dois Pedidos De Ajuda.

    1º Em data/actions/liquids abra o arquivo potions.lua e onde está removeOnUse = "no" bote yes 2° em data/movements/movements.xml adicione: <movevent type="Equip" itemid="XXXX" slot="feet" level="XXXX" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="XXXX" slot="feet" event="function" value="onDeEquipItem"/> onde XXXX é o itemid da armadura e XXXX o level para usar. 3° em data/movements/movements.xml adicione com id da armadura que vai dar +1ML: <movevent type="Equip" itemid="XXXX" slot="feet" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="XXXX" slot="feet" event="function" value="onDeEquipItem"/>
    1 ponto
  29. batatasmile

    Pokemon Ex 2.1 Revisão

    NAO DEU CERTO :X
    1 ponto
  30. ultimate1996

    [Tutorial]Criando Website Com Xampp

    @Daianpf2011 Provavelmente esse erro está no arquivo .mysql que foi importado.. tente importar outro.
    1 ponto
  31. Darker

    Pedido Site

    Ola Galera,Quero Pedir um Site Igual a Esse aki!..; >>http://empirewar.no-ip.biz:8090/
    1 ponto
  32. Visita ae : Link : Client Próprio
    1 ponto
  33. Mateusdeli123

    [Order] System

    Bom eae :XTibia_smile: To aki hoje para postar um Order System. 1° abra a pasta do seu ot vá em data/actions/script copie e cole qualquer arquivo e renomei-o para order. 2° Feito isso abra o Action.xml em Bloco de Notas e cole isso lá. Explicando : Em XXXX você coloca O ID da Order OBS : No meu é 2550. Veja no Mapa Editor! Pronto! Creditós! brun123 glugluguga É isso espero ter ajudado da um REP+ não custa nada. Vlw Abraços
    1 ponto
  34. Function: function doCreateItemInArea(firstpos, area, tab) -- function by MatheusMkalo for i, z in pairs(area) do pos = {x=firstpos.x, y=firstpos.y+i-1, z=firstpos.z} for s, x in pairs(z) do pos.x = firstpos.x+s-1 if tab[x] or type(x) == "table" then for l = 1, type(x) == "table" and #x or 1 do item = doCreateItem(type(x) == "table" and (not tab[x[l]].name and tab[x[l]].itemid or getItemIdByName(tab[x[l]].name)) or (not tab[x].name and tab[x].itemid or getItemIdByName(tab[x[l]].name)), type(x) == "table" and (tab[x[l]].count == nil and 1 or tab[x[l]].count) or tab[x].count == nil and 1 or tab[x].count, pos) doItemSetAttribute(item, "aid", type(x) == "table" and (tab[x[l]].actionid == nil and 0 or tab[x[l]].actionid) or tab[x].actionid == nil and 0 or tab[x].actionid) end end end end return TRUE end Bem oque ela faz eu acho que ja da pra saber né, mas pra quem nao sabe ingles: A funçao cria itens em uma area. Como usar a function: Bem pra usar eh bem simples, basta criar uma area parecida com a de uma magia e botar a posiçao do primeiro "sqm" Uma talkaction que cria itens em volta do player: Vou explicar mais um pouco as coisas: Oque esta em vermelho eh a pos do primeiro sqm da area que seria o de azul: Oque esta em rosa seria a area que no caso eh a areacreate. Oque esta em laranja sao oque os numeros na area vao representar: local items = { [1] = {itemid = 2160, count = 1}, [2] = {itemid = 2160, count = 2}, [3] = {itemid = 2160, count = 3}, } No caso dessa tabela, aonde estiver o numero 1 na area, vai criar 1 item de id 2160 aonde estiver 2, criara 2 items de id 2160, e assim por diante. Voce nao é obrigado a colocar uma quantidade voce pode deixar somente o itemid que nao ira bugar. Algumas propriedades a mais: Se voce quiser criar varios items no mesmo tile voce pode, voce so precisa botar eles entre chaves assim: local areacreate = { {{3,2}, {1,2}, {3,1}}, {{3,1}, 0, {1,2}}, {{2,3}, {3,2}, {3,3}}, } Voce pode trocar o itemid = 2160 por name = "Crystal Coin" que ira ir perfeitamente: local items = { [1] = {name = "Golden Helmet"}, [2] = {name = "Magic Plate Armor"}, [3] = {name = "Crystal Coin", count = 5}, } local areacreate = { {{3,2}, {1,2}, {3,1}}, {{3,1}, 0, {1,2}}, {{2,3}, {3,2}, {3,3}}, } Voce pode botar actionids nos items assim: local items = { [1] = {name = "Golden Helmet"}, [2] = {name = "Magic Plate Armor", actionid = 666}, [3] = {name = "Crystal Coin", count = 5}, } Lembre-se que todos os items 2 que forem criados terao akele actionid. Pronto, use e abuse. Nao gaste seu rep+ comigo, so um elogio ja ta otimo. Algumas areas e ids para brincar:
    1 ponto
  35. [Pacotão] Todas sprites de Pokémons da primeira geração! Olá galera, venho trazer um pacote com todas as sprites de pokémon da primeira geração e quem sabe depois eu faço o pacote com os da segunda e terceira geração! Créditos: ▪ 40% = Moet (Por organizar eles e trazê-los para o fórum) ▪ 60% = Redblueyellow (Ele quem fez/pegou as sprites) Campanha: se você tira os créditos você é um pau no cu cara chato! [download]http://www.multiupload.com/AMDYVMVM49[/download]
    1 ponto
  36. erro

    Deixe Seu Ot E Seu Site Online Com Xampp

    Ai galera esse post eu retirei aki do Xtibia msm apenas copiei!! ai vai um tutorial ensinando colocar seu ot e seu site online Todos os Créditos para Mesenga Está dividido em: 1º Passo: Preparando o XAMPP 2º Passo: Criando a Database 3º Passo: Criando o banco de dados 4º Passo: Criando uma conta GOD EXTRA 5º Passo: Criando o site para os players entrarem F.A.Q. - Perguntas e respostas -Baixando o Xampp- Xampp download: http://www.baixaki.com.br/download/xampp.htm Tamanho: 44,20MB Depois de baixar instale o XAMPP 1º Passo: Preparando o XAMPP ( Créditos ao Lord Joel por lembrar do security) Abra o XAMPP, depois disso verifique se está tudo corretamente ligado clicando no XAMPP_Panel Mini F.A.Q. Mas meu apache não esta ligando! Vá até C:\xampp\apache\conf\httpd.conf: Procure por “Listen 80″, mude para “Listen 8090″ Procure por “ServerName localhost:80″, mude para “ServerName localhost:8090″ C:\xampp\apache\conf\extra\httpd-ssl.conf Procure por “Listen 443″, mude para “Listen 4499″ Procure por “<VirtualHost _default_:443>”, mude para “<VirtualHost _default_:4499>” Procure por “ServerName localhost:443″, mude para “ServerName localhost:4499″ Explicação: O IIS (Internet Information Service) do windows é padrão para rodar em port 80, então você não conseguira abrir o apache pois vai dar conflito com esta porta que já esta sendo usada, então trocamos! Mesenga, ainda não funcionou =/ Então recomendo você baixar a versão 1.6.5 por conter a antiga base que pega em todos os windows Download aqui: AQUI Continuando... Agora acesse a página: http://localhost/security/xamppsecurity.php caso tiver trocado o port acesse: http://localhost:8090/security/xamppsecurity.php Vá na pasta do seu OT, abra o config.lua Você irá encontrar linhas parecidadas com essas: -- Database sqlType = "sqlite" >> mude para mysql, pois agora usaremos um servidor mysql sqlHost = "localhost" >> não mexa sqlPort = 3306 >> não mexa sqlUser = "root" >> esse é o usuário usado para acessar o servidor XAMPP, NÃO MUDE sqlPass = "" >> password (senha) que você usou no passo 1 sqlDatabase = "" >> vamos definir um nome para nossa database, ex: theforgottenserver sqlFile = "Styller.s3db" >> isso não irá servir mais pois usaremos um servidor MySql sqlKeepAlive = 0 >> não mexa mysqlReadTimeout = 10 >> não mexa mysqlWriteTimeout = 10 >> não mexa passwordType = "plain" >> não mexa No meu caso ficou assim: -- Database sqlType = "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123" sqlDatabase = "styller" sqlFile = "Styller.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 passwordType = "plain" 2º Passo: Criando a Database abra internet e digite http://localhost caso tiver mudado o port: http://localhost:8090 escolha Português BR depois disso procure PhpMyAdmin e clique tenha certeza que estará nessa página: http://localhost/phpmyadmin/ caso estiver com port trocado: http://localhost:8090/phpmyadmin/ 3º Passo: Criando o banco de dados Na tela a seguir, você vera onde tem a parte Criar novo banco de dados, digite o mesmo nome que você colocou no config.lua em sqlDatabase= Agora clique criar Na tela seguinte clique em "importar" e escolha o arquivo "schema.mysql", em alguns ots o nome é "algumacoisa.sql", ex: forgotten.sql (no caso do The Forgotten Server) vai isso,dependendo do server que estiver usando, o numero de importações varia: 4º Passo: Criando uma conta GOD Entre no server e crie uma conta com o Account manager pra ficar mais facil, e também crie 1 player. Após criado a account e o player, volte a janela do XAMPP na database e clica em accounts, depois vá em visualizar depois clique no pincel Irá aparecer uma tela com os dados da conta, altere apenas o necessário... mude o type de 1 para 5 e group id de 1 (se quiser conta normal com GOD) e 5 (se quiser conta GOD com GOD) depois clique em "executar" o char ainda não é God apenas a conta, então vá em players na coluna da esquerda... clique no lápis de novamente.... Troque Group de 1 para 6, agora sim, seu char eh god. se quiser GM troque para 4 ou 5 (Sênior GM) Group id 1 = Player Group id 2 = Tutor Group id 3 = Sênior Tutor Group id 4 = GM Group id 5 = Sênior GM Group id 6 = GOD *IDs acima baseados no Styller OT 8.52 Seu server está pronto para rodar! EXTRA 5º Passo: Criando o site para os players entrarem -Download do site- Baixe um dos Websites "SQL" na seção de downloads do Xtibia >> http://www.xtibia.com/forum/Websites-OTserv-f312.html Recomendados: Gesior acc maker: http://www.xtibia.com/forum/Gesior-034-t116556.html Nicaw Acc Maker website http://www.xtibia.com/forum/Nicaw-Aacmaker...sql-t81939.html Todos os sites já vem com configurador, então entre em: http://localhost caso tiver trocado o port já sabe: http://localhost:8090 e Configure-o! -Vamos configurar o Gesior Acc Maker!- Baixe o Gesior Acc Maker http://www.xtibia.com/forum/Gesior-034-t116556.html Ligue o XAMPP e o OT Vá em C:\Xampp\htdocs e delete tudo o que tem dentro da pasta Agora extraia seu site pra lá, feito isso entre em http://localhost ou http://localhost:8090 você verá uma tela assim: clique em Set server path Agora no campo em que aparece digite o diretório no qual se encontra o ot, ex: C:\OTx Agora é só ir clicando um por um e configurar a seu gosto 1º Quadrado preto: 1. Set server path --> escolhe o diretório do OT 2. Check DataBase connection --> você só pode proseguir se não tiver nehum erro nessa parte 3. Add tables and columns to DB --> isso carrega uma parte do site 4. Add samples to DB --> isso carrega uma parte do site (vocações) 5. Set Admin Account --> escolhe o account do admin do site Quadrado Vermelho: 6. Load Monsters from OTS --> vai dar load automatico nos monstros do OT, verifique se não há nehum erro 7. Load Spells from OTS --> ele vai carregar todas as spells do OT, verifique se não há nehum erro antes de proceguir Pronto, o site está configurado e pronto para criar contas. Para outras opções clique em ADMIN PAINEL F.A.Q. - Perguntas e respostas @Todos Duvidas: -Como faço minha account de GM/GOD? Siga o passo 4 eu nao encontro schema.mysql od está isso?? Em alguns servidores o nome é theforgottenserver.sql Qual vai ser meu site pros outros poder entra fazer acc? seu site vai ser http://seuip:8090 ou se quiser por http://seuip:xxxx sendo "xxxx" um número de port variando entre 80 e 9000, faça o seguinte: vá em "C:\xampp\apache\conf" e abra o arquivo httpd.conf procure por: #Listen 12.34.56.78:80 Listen 80 Nas duas linhas ponha Um número variando de 80 à 9000 no lugar do 80 exemplo: #Listen 12.34.56.78:8090 Listen 8090 Agora procure a linha: ServerName localhost:80 e troque pelo mesmo número que você colocou exemplo: ServerName localhost:8090 -No seu está dando o seguinte problema: [28/06/2008 03:15:49] Failed to connect to database. MYSQL ERROR: Access denied for user 'root'@'localhost' (using password: YES) [28/06/2008 03:15:49] > ERROR: Couldn't estabilish connection to SQL database! Antes de colocar oSERVER ONLINE, certifique-se de que o XAMPP está aberto Até a proxima!
    1 ponto
  37. gabrieldp200

    Baiak Update 1.2

    affs toma no cu naum baixa essa merda
    -1 pontos
  38. na pasta data/spells/scripts/attack crie aquivo.lua adione isso local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.7, 0) local arr = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end em spells.xml adisione isso tag debaixo do exori. edepois coloque as vocaçao q vc quer q use esse spell... <instant name="Magic of Death" words="exevo gran mas mort" lvl="100" mana="1600" prem="1" exhaustion="1200" selftarget="1" needlearn="0" script="attack/magic of death.lua"
    -1 pontos
  39. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.7, 0) local arr = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 2, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end <instant name="Utevo Mort" words="utevo mort" lvl="100" mana="1600" prem="1" exhaustion="1200" selftarget="1" needlearn="0" script="attack/utevo mortlua"
    -1 pontos
  40. esse aq bem parecido local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.0, -30, -6.0, 0) local arr = { {1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 2, 0, 1, 1, 1, 1, 1}, {0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end <instant name="Utevo Mort" words="utevo mort" lvl="100" mana="1600" prem="1" exhaustion="1200" selftarget="1" needlearn="0" script="attack/utevo mortlua"
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...