Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/18/10 em %

  1. 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.
    5 pontos
  2. meubk

    76 Spells Pokemon

    Venho trazer á vcs 76 spells, editada por min , baseada em outras spells, todas spells estão com falas (pokemon fala nome da spell). Screenshot's #Download : Megaupload 4Shared #Scan : Aki Para não Causar Bugs use essas seguintes Tags : <instant name="Shadow Ball" words="shadow attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/shadowball.lua"> </instant> <instant name="Egg Bomb" words="egg attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/eggbomb.lua"> </instant> <instant name="Lick" words="lick attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/lick.lua"> </instant> <instant name="Shadow Punch" words="shadowpunch attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/shadowpunch.lua"> </instant> <instant name="Dream Eater" words="dream attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dreameater.lua"> </instant> <instant name="Leech Seed" words="leech" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/leech.lua"> </instant> <instant name="Supersonic" words="sonic attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/supersonic.lua"> </instant> <instant name="Poisonpowder" words="powder attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/poisonpowder.lua"> </instant> <instant name="Sludge Bomb" words="sludge attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/sludgebomb.lua"> </instant> <instant name="Fire Spin" words="spin attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/firespin.lua"> </instant> <instant name="Pin Missile" words="pin attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/pinmissile.lua"> </instant> <instant name="Tackle" words="tackle attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/tackle.lua"> </instant> <instant name="Double Kick" words="kick attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/doublekick.lua"> </instant> <instant name="Dynamicpunch" words="dynamicpunch attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dynamicpunch.lua"> </instant> <instant name="Scratch" words="Scratch attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/scratch.lua"> </instant> <instant name="Rage" words="rage attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/rage.lua"> </instant> <instant name="Thundershock" words="shock attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/thundershock.lua"> </instant> <instant name="Icy Wind" words="icy attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/icywind.lua"> </instant> <instant name="Dragon Rage" words="dragon attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dragonrage.lua"> </instant> <instant name="Ember" words="ember attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/ember.lua"> </instant> <instant name="String Shot" words="string attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/stringshot.lua"> </instant> <instant name="Swift" words="swift attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/swift.lua"> </instant> <instant name="Horn Attack" words="chifre attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/hornattack.lua"> </instant> <instant name="Poison Sting" words="sting attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/poisonsting.lua"> </instant> <instant name="Gust" words="gust attack" lvl="999" mana="100" selftarget="1" prem="1" exhaustion="2000" needlearn="0" event="script" value="poke/gust.lua"> </instant> <instant name="Earthquake" words="earthquake attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/earthquake.lua"> </instant> <instant name="Karate Chop" words="karate attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/karatechop.lua"> </instant> <instant name="Thrash" words="thrash attack" lvl="9999" mana="20000" prem="1" range="1" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/thrash.lua"> </instant> <instant name="Teleport" words="teleport attack" lvl="100" mana="800" needtarget="1" prem="0" range="5" exhaustion="2000" blockwalls="1" needlearn="0" script="poke/teleport.lua"> </instant> <instant name="Cross Chop" words="cross attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/crosschop.lua"> </instant> <instant name="Tri Attack" words="tres attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/triattack.lua"> </instant> <instant name="Tail Whip" words="tail attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/tail.lua"> </instant> <instant name="Sonicboom" words="sonicb attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/sonicboom.lua"> </instant> <instant name="Bite" words="bite attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/bite.lua"> </instant> <instant name="Peck" words="peck attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/peck.lua"> </instant> <instant name="Splash" words="splash attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/splash.lua"> </instant> <instant name="Hyper Fang" words="fang attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/hyperfang.lua"> </instant> <instant name="Drill Peck" words="drill attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/drillpeck.lua"> </instant> <instant name="Mirror Move" words="mirror attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/mirrormove.lua"> </instant> <instant name="Waterfall" words="waterfall attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/waterfall.lua"> </instant> <instant name="Night Shade" words="nightshade attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/nightshade.lua"> </instant> <instant name="Ice Shard" words="shard attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/iceshard.lua"> </instant> <instant name="Stun Spore" words="stun attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/stunspore.lua"> </instant> <instant name="Sand Tomb" words="tomb attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/sandtomb.lua"> </instant> <instant name="Wing Attack" words="asa attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/wingattack.lua"> </instant> <instant name="Whirlwind" words="whirlwind attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/whirlwind.lua"> </instant> <instant name="Smokescreen" words="smoke attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/smokescreen.lua"> </instant> <instant name="Thunder" words="thunder attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/thunder.lua"> </instant> <instant name="Solarbeam" words="solar attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/solar.lua"> </instant> <instant name="Flamethrower" words="flamethrower attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/flamethrower.lua"> </instant> <instant name="Hyper Beam" words="hyper attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/hyperbeam.lua"> </instant> <instant name="Quick Attack" words="rapido attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/quickattack.lua"> </instant> <instant name="Ice Beam" words="icebeam attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/icebeam.lua"> </instant> <instant name="Acid" words="acid attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/acid.lua"> </instant> <instant name="Confuse Ray" words="ray attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/confuseray.lua"> </instant> <instant name="Hydro Pump" words="hydro attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/hydropump.lua"> </instant> <instant name="Rain Dance" words="rain attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/raindance.lua"> </instant> <instant name="Future Sight" words="future attack" lvl="999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/futuresight.lua"> </instant> <instant name="Psybeam" words="psybeam attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/psybeam.lua"> </instant> <instant name="Psychic" words="psychic attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/psychic.lua"> </instant> <instant name="Confusion" words="confusion attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/confusion.lua"> </instant> <instant name="Bone Rush" words="rush attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/bonerush.lua"> </instant> <instant name="Bubble" words="bubble attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/bubble.lua"> </instant> <instant name="Fury Attack" words="furia attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/furyattack.lua"> </instant> <instant name="Razor Leaf" words="razor" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/razor.lua"> </instant> <instant name="Petal Dance" words="petal attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/petaldance.lua"> </instant> <instant name="Bone Club" words="bone attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/boneclub.lua"> </instant> <instant name="Rock Polish" words="polish attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/rockpolish.lua"> </instant> <instant name="Berserk" words="exori1" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/berserk.lua"> </instant> <instant name="Stone Edge" words="edge attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/stoneedge.lua"> </instant> <instant name="Thunderbolt" words="bolt attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/thunderbolt.lua"> </instant> <instant name="Sandstorm" words="sandstorm attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/sandstorm.lua"> </instant> <instant name="Vine Whip" words="vine attack" lvl="3800" mana="210" direction="1" exhaustion="2000" needlearn="0" event="script" value="poke/vinewhip.lua"> </instant> -- Adicionando a Spell no pokemon -- Abra o xml do pokemon e depois de Attacks adc : <attack name="Confusion" interval="4000" chance="100" min="-352" max="-535"> </attack> Vermelho : Nome da Spell configurada na Tag Laranja : Tempo que demorara para usar a spell 1000 = 1s Verde : Chance do attack funcionar Roxo : Dano que a Spell Causará Se a Spell for de distancia adc : range="5" target="1" range : distancia para usar a spell target : se precisa target. -- Não Esqueça REP+
    2 pontos
  3. não há necessidade eu acho de fazer scan DO SITE do mediafire,pois é um site bem conhecido de Upload,eu acho. @edit,o update tirei bugs criticos que tinham no map e dei pequenas modificadas em hunts etc.. server atualizado,modificações:adicionados PET SYSTEM com bosses xD. vários bugs de ficar preso foram removidos na VIP city. agora o mapa está perfeito e totalmente sem bugs!
    2 pontos
  4. Mount System - 100% inovador! Fala galerinha, é mais uma vez eu trazendo Scripts para o pessoal do XTibia, dessa vez eu dei uma "inovadinha" no script e fiz um vídeo explicando sobre ele, confira! Vídeo sobre o sistema: http://www.youtube.com/watch?v=xpyI4FtY7dM Bom vamos logo ao script: Primeiramente vamos fazer uma pequena alteração no arquivo items.xml, abra-o e procure por "giant eye", mude esse nome para "mysterious pet", assim: <item id="11191" name="mysterious pet"><attribute key="weight" value="120" /></item> Agora vamos adicionar as actions, vá até a pasta "Actions" e abra o arquivo "Actions.xml" e adicione esta tag: <action itemid="11191" event="script" value="mount.lua"/> Ok, agora volte a pasta "Actions" e abra a pasta "Scripts", faça uma arquivo chamado "mount.lua" e adicione isto: -- [( Mount System 1.4 created by Doidin for XTibia.com )] --function onUse(cid, item)local outfit = {lookType = 342} -- Outfit da montaria!local exhaust = 60 -- Tempo para player poder usar o item novamente! (tempo em segundos)local time = 60 -- Tempo para ficar na montaria! (tempo em segundos)local speed = 300 -- Velocidade adicionada ao player após usar o item! (300 = velocidade, quanto maior mais rapido...)local mana = 1300 -- Quantidade de mana que o player necessita para usar o sistema!local premium = "yes" -- Apenas players premium accounts "yes" or "no"!?local storage = 9393 -- Não mexa aqui!if premium == "yes" and not isPremium(cid) thenreturn doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.")endif(getCreatureMana(cid) < mana) thenreturn doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA)endif (getPlayerStorageValue(cid, storage) <= os.time()) thendoCreatureSay(cid, "Yeeeah!!!\nYou went up on his ride.", 19)doSetCreatureOutfit(cid, outfit, time*1000)doChangeSpeed(cid, speed)doSendMagicEffect(getCreaturePosition(cid), 34)setPlayerStorageValue(cid, storage, os.time()+exhaust)doPlayerAddMana(cid, -mana)addEvent(doChangeSpeed, time*1000+40, cid, -speed)addEvent(doPlayerSendTextMessage, time*1000+45, cid, 23, "Mount System is time out!")addEvent(doSendMagicEffect, time*1000+50, getCreaturePosition(cid), 2)doRemoveItem(item.uid, 1)elsedoPlayerSendCancel(cid, "Sorry, you only can again use this item after "..exhaust.." seconds.")endreturn TRUEend Pronto agora configure o script da maneira que você quiser! Caso queira mudar a outfit da sua montaria clique aqui e saiba mais. OBS: A inteção do script é algum NPC te vender um item que no caso é o "mysterious pet" e esse item é super raríssimo, ele tem a função de te dar um "PET" misterioso por um certo tempo para você usar ele como montaria! Aaah só pra constatar eu tive uma pequena ajuda dos meus amigos MatheusMkalo e do Vodkart.. ;] Espero que tenham gostado do script e do vídeo! ;] <* Não poste em outros fórums, exclusivo ao XTibia.com *>
    1 ponto
  5. GOD_EDUZIN

    Tutorial-como Os Nukers Fazem

    :hi: Invasão via site de accounts Método simples o Método N00b Bom para uma account ser criada automaticamente as pastas do server precisam estar dentro do site de accounts, se o host não colocar o htacces oque acontece é basta o hacker escrever http://algumot.servegame.com:8090/otserv e ele vai poder ter ascesso total a todo seu ot. *Solução instalar o htacces (mais informações visite o tutorial Criação de accounts em php) Método Hacker Chinfrim O negocio é o seguinte 99,9% das pessoas pensam que com o htacces estão seguras uma grande erro deles, 99,9% das pessoas que fazem sites de accounts pegam o easyphp (codinoob) aqui do forum no tutorial de criação de accounts via site em php eu acho que é esse o nome do tutorial, a versão que eles estão disponibilizando pra download é antigona ta maluco negocio mais fudido existem mais de 5 exploits hard core para essa versão, um monte de hackerzion chinfrim com nicks como 0d3struid0rbr (com um nick desses agente ja ve que é noob) se acham o CARA por que pegam um exploit que NÃO foi ele que fez e um scanner de vulnerabilidades que tb NÃO foi ele que fez e por causa disso como ja disse se acham o CARA. *O easyphp foi feito para testes, ele possui muitas falhas, se vc quiser um otserv realmente seguro use um webserver de verdade... PHP INJECTION Método Defacer para hackear Site de accounts... Esse é um verdadeiro método que os hackers de verdade usam... Strings, apelido dado a vulnerabilidade mas conhecida como: Remote File Inclusion, ou Inclusao remota de arquivos ou ainda sim, PHP Injection, bug descoberto entre 2002 e 2003, porem ainda hoje muitos a desconhecem. Os bugs sao encontrados em sua maioria, em scripts de php, existem milhares disponiveis pela internet, todos os dias novos bugs de strings sao encontrados e expostos em sites de seguranca, e consecultivamente nao demora muito para aparecer milhares de sites alterados, e por coencidencia, 99% destes usavam scripts php bugados. Considerado o melhor bug para criar shells, por sua facilidade. Mas onde esta espeficicamente o bug, ele eh encontrado em funcoes de php, que unido com um script mal escrito, possibilita a inclusao remota de arquivos, as mais usadas sao: Main(, Include(, Include_Once(, e outras, e geralmente a funcao que tem o bug eh quase assim: main($dir. "arkivo") 'a sintase esta certa, porem eh somente um exemplo. Vamos dizer que o arkivo que tem esta funcao se chama index.php, basta agora o usuario em seu navegador digitar: index.php?dir=cmd Invasão via Trojan Apesar de existir muita gente por ai falando que trojan é coisa de Lammer, de otário, etc, eles ainda são muito usados, muita gente pensa que trojan é virus eles estão errados, um trojan basicamente é um programa feito de 2 coisas um cliente e um servidor é muito simples vc passa o servidor para sua vitima e vc usa o cliente para se conectar com ela. Mais como eu posso ser contaminado por um server de um trojan? Simples, vc deve aprender que seu fabuloso anti virus ñ é de ferro, seu anti virus é um pateta, vc não tem idéia de como é facil fazer um trojan indetectavel, para evita los não aceite programas de desconhecidos e de garotas gostosas que do nada te adicionam no msn e ja vem querendo passar alguma coisa, lembrese de que é muito facil juntar um ot ou qualquer coisa . EXE com um trojan, ou seja quando a pessoa clicar nessa coisa ele se instalara... Taticas mais comuns e conhecidas de DoS simplificadas: 2 Usar bugs do server (bugs do server para fazer ele crashiar e eventualmente cair) Essa é a tecnica mais comum, por exemplo em um certo ot se vc fala com o npc do barco e loga o serv cai e em outro vc da cash pro npc e ele tb cai esse tipo de erro é muito facil de ser corrigido por que normalmente alguem concerteza ja deve ter postado uma correção aqui no forum. De cada 10 servidores que são supostamente "nukados" 9 são derrubados desta maneira. QUEM FAZ ISSO É LAMMER (N00b Troxa) Isso não é Nukar é mera palhaçada 3 Atacar Apache (engine php que sustenta quase todos os sites de accs) Muitas vezes o Apache (easy php) esta aberto no mesmo computador que o host do server basta apenas o Nuker causar uma falha nele e fazelo bugar e eventualmente dar algum tipo de erro, mais você se pergunta oque tem haver o Apache com o serv, eu ti digo, tudo eles estão no mesmo pc basta o Nuker causar um erro, por exemplo que cause um reboot automaticamente o serv cai. *Idéia: Tente outras engines como o samba que são mais seguras 4 Floodear o Server (ICMP BOMB) Bom essa é minha preferida para ensinar uma lição a GMs power abusers sem educação e sem noção.(mais é muito muito raro eu ficar nervoso a ponto de derrubar um ot, é possivel contar nos dedos, hmm bem não é não), invasã owns esses hosters merdas não sabem configurar o apache nada que um exploit de 5 anos atras fassa... Bom essa é a tradicional simples e bonita forma de ataque DoS, a internet funciona com o sistema cliente e servidor, os clientes são como eu e vc, mandam packs de informação para os servidores e o servidores mandão resposta o pulo do gato é mandar uma tonelada de packs ICMP para o servidor eu digo milhares em vez de dezenas, se você . Como posso me proteger desse tipo de ataque? Quanto mais banda vc tiver mais banda do nuker e memoria ele vai precisar, isso explica pq isso é muito raro em servidores de verdade por que eles possuem uma banda incalculavel são necessarias centenas de pessoas fazendo isso. Dicas 1 Tenha um anti virus decente como o Norton e um firewall, e atualize seu windows com frequencia pois muitos virus ultilizam falhas recentemente descobertas para te ferrar. 2 Jamais entre em coisas que tenhão a palavra IRC eu poderia escrever um guia 1001 maneiras de como se hakiar alguem pelo IRC mais isso estaria errado pois existem mais de 1001 maneiras, da pra fazer de tudo pelo IRC. 3 Se vc for um hoster sério mesmo, troque seu Windows pelo Linux, o seu ot (quando inventarem ot pra linux) vai ficar muito mais seguro por 2 principais motivos, o Linux é mais seguro do que o Windows em muitos aspectos e tb por que a maioria dos Nukers que perder seu tempo atacando ots não sabe nada de Linux, eu garanto! 4 Um Hacker nunca vai dizer coisas como "Eu vou ti Hakiar em" pode ser até um cracker chinfrim, mais nunca um Hacker. Muito Obrigado Comentem Ai Gente Flws Desculpe Nao Consegui Por Ele Em Outra Sesação Desculpe Depois Por Favor Movam Ele Para Sessçao Certa Obg. :icon1:
    1 ponto
  6. HeartBreak

    Warsystem

    WarSystem para TFS 0.3.5 ou TFS 0.3.6. Precisa de Gesior. Para quem usa TFS 0.4 , veja o tópico :Warsystem Para TFS 0.4 [apenas o arquivo MOD] Bom , chega de enrolar , vamos começar o "tutorial": *Nota : é extremamente recomendavel que você limpe a tabela 'deaths_in_wars' antes de usar o sistema. 1) Adicione o arquivo a seguir , a pasta mods (OTServer/data/mod) basta criar um arquivo XML ou copiar algum outro e apagar tudo que tiver dentro , coloque o nome do arquivo de: guildWarSystem.xml: <?xml version="1.0" encoding="UTF-8"?> <mod name="Guild War System" version="0.3.5+" author="Xampy and Nahruto" contact="otland.net" enabled="yes"> <config name="function_config"><![CDATA[ DelayToCancel = 24 -- HOURS <-> [max: 47 -- min: 24] --> default: 24 hours [1 day] Maps = { ["map1"] = { Guild1Pos = {x=238, y=442, z=12}, Guild2Pos = {x=244, y=442, z=12} }, ["map2"] = { Guild1Pos = {x=994, y=1004, z=6}, Guild2Pos = {x=1000, y=1003, z=6} } } TimeToTeleport = 1 --minutes, when start a challenge StopBattle = TRUE --Stop battle after X time ? TRUE / FALSE TimeToStop = 60 --Minutes Time to Stop if StopBattle = TRUE. --Cancel messages~ CancelMessagesWar = { --Message when player try accept/reject/cancel a war but there is no a invitation. [1] = "Not pending invitations.", --Message when the player is not the guild leader. [2] = "Only Guild Leader can execute this command.", --Message when try Cancel the invitation but the war is already accepted. [3] = "The war is already accepted.", --MEssage when the invited guild name is not correct or does not exist. [4] = "Not correct guild name.", --Message when try invite any guild to a war but his guild already have a war or a pending invitation. [5] = "Your guild is already in war or have a pending invitation.", --Same of the cancel message 5 but the the enemy guild. [6] = "This guild is already in war or have a pending invitation.", --Message when use invite command but not write guild name. [7] = "Command needs param.", --Message when try invite his guild. [8] = "You can\'t invite you guild.", --Message when the map name is not correct. [9] = "Please write a correct name.", --Message when try go to any map but the guild is have no received/sent any war invitation [10] = "Your guild is not in any war.", --When try to cancel a war before the delay [11] = "You should wait ".. DelayToCancel .." hours to cancel the war" } --Broadcast messages when invite/accept/reject/cancel ~ Remember the Spaces. BroadCast_Type = MESSAGE_EVENT_ADVANCE BroadCast = { --Message when inviting [1] = { "Guild ", --Here will be the guild name " have invited guild ", --Here will be the invited guild name " to have a war." }, --Message when accept. [2] = { "Guild ", --Here will be the guild name " have accepted the invitation of the guild " , --Here will be the name of the guild who have invited em. " to have a war." }, --Message when reject. [3] = { "Guild ", --Here will be the guild name " have rejected the invitation of the guild " , --Here will be the name of the guild who have invited em. " to have a war." }, --Message when cancel. [4] = { "Guild ", --Here will be the guild name " have canceled the invitation to the guild " , --Here will be the name of the guild who have invited em. " to have a war." }, --Message whenstar a battle.. [5] = { "Guild ", --Here will be the guild name " and guild " , --Here will be the name of the guild who have invited em. " will have a battle in the map :" }, --message when a battle ends. [6] = { "The battle betwen guild ", --Here will be the guild name " and guild " , --Here will be the name of the guild who have invited em. " its over." }, } --Functions ~. function getShowInfo(id) local Info = db.getResult("SELECT `show` FROM `guilds` WHERE `id` = " .. id .. "") if Info:getID() ~= -1 then local showy = Info:getDataInt("show") Info:free() return showy end return -1 end function getKills(name) local Info = db.getResult("SELECT `kills` FROM `guilds` WHERE `name` = '"..name.."'") if Info:getID() ~= -1 then local killy = Info:getDataInt("kills") Info:free() return killy end return -1 end function getGuildWarInfo(id) local Info = db.getResult("SELECT `invited_to`, `invited_by`, `in_war_with`,`war_time` FROM `guilds` WHERE `id` = " .. id .. "") if Info:getID() ~= -1 then local invTo, invBy, warWith, Time = Info:getDataInt("invited_to"), Info:getDataInt("invited_by"), Info:getDataInt("in_war_with"), Info:getDataInt("war_time") Info:free() return {To = invTo, By = invBy, With = warWith, T = Time} end return -1 end function getGuildNameById(id) local Info = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. "") if Info:getID() ~= -1 then local Name = Info:getDataString("name") Info:free() return Name end return -1 end function GuildIsInPEace(id) local Info = getGuildWarInfo(id) return (Info.To == 0 and Info.By == 0 and Info.With == 0) end function doInviteToWar(myGuild, enemyGuild) local StartTime = os.time() db.executeQuery("UPDATE `guilds` SET `invited_to` = ".. enemyGuild ..", `war_time` = ".. StartTime .." WHERE `id` = ".. myGuild .."") db.executeQuery("UPDATE `guilds` SET `invited_by` = ".. myGuild .." WHERE `id` = ".. enemyGuild .."") end function WarAccept(myGuild, enemyGuild) local StartTime = os.time() db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with` = ".. myGuild ..", `kills` = 0, `show` = 1 WHERE `id` = ".. enemyGuild .."") db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `war_time` = ".. StartTime ..", `in_war_with` = ".. enemyGuild ..", `kills` = 0, `show` = 0 WHERE `id` = ".. myGuild .."") end function cleanInfo(myGuild) db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `war_time` = 0, `in_war_with` = 0, `kills` = 0, `show` = 0 WHERE `id` = ".. myGuild .."") end function registerDeathOne(myGuild, enemyGuild, cid, target) db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`, `result1`, `result2`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..", 1, 0);") db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."") end function registerDeathTwo(myGuild, enemyGuild, cid, target) db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`, `result1`, `result2`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..", 0, 1);") db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."") end function removeDeaths(id) db.executeQuery("DELETE FROM `deaths_in_wars` WHERE `guild_id` = " ..id .. ";") end function StopWar(myGuild, enemyGuild) cleanInfo(myGuild) cleanInfo(enemyGuild) removeDeaths(myGuild) removeDeaths(enemyGuild) end function WeAreInWar(myGuild, enemyGuild) local myGuildInfo = getGuildWarInfo(myGuild) local enemyGuildInfo = getGuildWarInfo(enemyGuild) if myGuild == enemyGuildInfo.With and enemyGuild == myGuildInfo.With then if enemyGuildInfo.ON == 1 and myGuildInfo.ON == 1 then return TRUE end end return FALSE end function getOnlineMembers(id) local PlayersOnline = getPlayersOnline() local MembersOnline = {} for i, pid in ipairs(PlayersOnline) do if id == getPlayerGuildId(PlayersOnline[i]) then table.insert(MembersOnline, PlayersOnline[i]) end end return MembersOnline end function teleportGuild(id, pos) local Members = getOnlineMembers(id) if #Members > 0 then for i = 1, #Members do if #Members > 1 then if getTilePzInfo(getCreaturePosition(Members[i])) == TRUE then doTeleportThing(Members[i], pos, FALSE) doSendMagicEffect(pos, CONST_ME_TELEPORT) doSendMagicEffect(getCreaturePosition(Members[i]), CONST_ME_POFF) doPlayerSendTextMessage(Members[i], 22, 'Prepare to fight!') else doPlayerPopupFYI(Members[i], 'GuildWar challenge error:\n\nBoth guild members must stay in Protection Zone.') end else doPlayerPopupFYI(Members[i], 'GuildWar challenge error:\n\nBoth guilds must have more than one player online (leader & any member, at least).') end end end end function getGuildsWithWar() local res = db.getResult("SELECT `id` FROM `guilds` WHERE `in_war_with` > 0") local GuildW = {} if res:getID() ~= -1 then while true do table.insert(GuildW, res:getDataInt "id") if not res:next() then break end end res:free() end return GuildW end function guildExist(nom) local Get = db.getResult("SELECT `id` FROM `guilds` WHERE `name` = " .. db.escapeString(nom) .. ";") if Get:getID() ~= -1 then local ret = Get:getDataInt("id") Get:free() return ret end return -1 end function StartWar(x) teleportGuild(x.myGuild, Maps[x.map].Guild1Pos) teleportGuild(x.enemyGuild, Maps[x.map].Guild2Pos) if StopBattle == TRUE then addEvent(StopWarNow, 60 * 1000, {myGuild = x.myGuild, enemyGuild = x.enemyGuild}) end end function StopWarNow(c) StopWar(c.myGuild, c.enemyGuild) doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(c.myGuild).. BroadCast[6][2] ..getGuildNameById(c.enemyGuild).. BroadCast[6][3], BroadCast_Type) end function putWarOn(myGuild, enemyGuild) db.executeQuery("UPDATE `guilds` SET `war_time` = 1 WHERE `id` = ".. myGuild .."") db.executeQuery("UPDATE `guilds` SET `war_time` = 1 WHERE `id` = ".. enemyGuild .."") end]]></config> <talkaction words="!disband; /war-invite; /war-accept; /war-reject; /war-cancel-invite; /war-cancel" event="script"><![CDATA[ domodlib('function_config') function onSay(cid, words, param, channel) if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then local myGuild = getPlayerGuildId(cid) if words == "/war-invite" then if GuildIsInPEace(myGuild) == true then if param ~= "" then if guildExist(param) ~= -1 then local invitedGuild = getGuildId(param) if invitedGuild ~= -1 then if invitedGuild ~= myGuild then if GuildIsInPEace(invitedGuild) == true then if getPlayerStorageValue(cid, 65570) <= os.time() then doInviteToWar(myGuild, invitedGuild) doBroadcastMessage(BroadCast[1][1] ..getPlayerGuildName(cid).. BroadCast[1][2] ..getGuildNameById(invitedGuild).. BroadCast[1][3], BroadCast_Type) setPlayerStorageValue(cid, 65570, os.time()+(20*60)) else local waitTime = (getPlayerStorageValue(cid, 65570) - os.time()) doPlayerSendCancel(cid, "You must wait " .. os.date("%M", waitTime) .. " minutes and " .. os.date("%S", waitTime) .. " seconds until declare another war.") end else doPlayerSendCancel(cid, CancelMessagesWar[6]) end else doPlayerSendCancel(cid, CancelMessagesWar[8]) end else doPlayerSendCancel(cid, CancelMessagesWar[4]) end else doPlayerSendCancel(cid, CancelMessagesWar[4]) end else doPlayerSendCancel(cid, CancelMessagesWar[7]) end else doPlayerSendCancel(cid, CancelMessagesWar[5]) end elseif words == "/war-accept" then if getGuildWarInfo(myGuild).By ~= 0 then local enemyGuild = getGuildWarInfo(myGuild).By doBroadcastMessage(BroadCast[2][1] ..getPlayerGuildName(cid).. BroadCast[2][2] ..getGuildNameById(enemyGuild).. BroadCast[2][3], BroadCast_Type) WarAccept(myGuild, enemyGuild) else doPlayerSendCancel(cid, CancelMessagesWar[1]) end elseif words == "/war-reject" then if getGuildWarInfo(myGuild).By ~= 0 then doBroadcastMessage(BroadCast[3][1] ..getPlayerGuildName(cid).. BroadCast[3][2] ..getGuildNameById(getGuildWarInfo(myGuild).By).. BroadCast[3][3], BroadCast_Type) cleanInfo(getGuildWarInfo(myGuild).By) cleanInfo(myGuild) else doPlayerSendCancel(cid, CancelMessagesWar[1]) end elseif words == "/war-cancel-invite" then if getGuildWarInfo(myGuild).To ~= 0 then if getGuildWarInfo(myGuild).With == 0 then doBroadcastMessage(BroadCast[4][1] ..getPlayerGuildName(cid).. BroadCast[4][2] ..getGuildNameById(getGuildWarInfo(myGuild).To).. BroadCast[4][3], BroadCast_Type) cleanInfo(getGuildWarInfo(myGuild).To) cleanInfo(myGuild) else doPlayerSendCancel(cid, CancelMessagesWar[3]) end else doPlayerSendCancel(cid, CancelMessagesWar[1]) end elseif words == "/war-challenge" then local map = Maps[param] if map then if enemy ~= 0 then local enemyGuild = getGuildWarInfo(myGuild).With addEvent(StartWar, 15000, {myGuild = myGuild, enemyGuild = enemyGuild, map = param}) doBroadcastMessage(BroadCast[5][1] ..getPlayerGuildName(cid).. BroadCast[5][2] ..getGuildNameById(enemyGuild).. BroadCast[5][3] .. param ..".", BroadCast_Type) else doPlayerSendCancel(cid, CancelMessagesWar[10]) end else doPlayerSendCancel(cid, CancelMessagesWar[9]) end elseif words == "/war-cancel" then local enemy = getGuildWarInfo(myGuild).With if enemy ~= 0 then if (os.time() - getGuildWarInfo(myGuild).T) >= (60 * 60 * DelayToCancel) then StopWar(myGuild, enemy) doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type) else local timeEnd = getGuildWarInfo(myGuild).T + (60 * 60 * DelayToCancel) local timeLeft = timeEnd - os.time() local hours = (os.date("%H", timeLeft) + 23) doPlayerSendCancel(cid, "Time remaining: "..hours.." hours, " .. os.date("%M", timeLeft) .. " minutes and " .. os.date("%S", timeLeft) .. " seconds.") end else doPlayerSendCancel(cid, CancelMessagesWar[10]) end elseif words == "!disband" then local enemy = getGuildWarInfo(myGuild).With if enemy > 0 then if channel == CHANNEL_GUILD then if (os.time() - getGuildWarInfo(myGuild).T) >= (60 * 60 * DelayToCancel) then StopWar(myGuild, enemy) doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type) else local timeEnd = getGuildWarInfo(myGuild).T + (60 * 60 * DelayToCancel) local timeLeft = timeEnd - os.time() local hours = (os.date("%H", timeLeft) + 23) doPlayerSendCancel(cid, "Time remaining: "..hours.." hours, " .. os.date("%M", timeLeft) .. " minutes and " .. os.date("%S", timeLeft) .. " seconds.") end else doPlayerSendCancel(cid, "You have to say this command in your guild channel.") end else return FALSE end return FALSE end else doPlayerSendCancel(cid, CancelMessagesWar[2]) end local file = io.open("data/logs/Wars.txt", "a") file:write("".. os.date("%d %B %Y %X ", os.time()) .." --> "..getCreatureName(cid)..": "..words.." "..param.."\n") file:close() return TRUE end]]></talkaction> <event type="login" name="WarLogin" event="script"><![CDATA[ domodlib('function_config') function onLogin(cid) registerCreatureEvent(cid, "WarKill") return true end]]></event> <event type="kill" name="WarKill" event="script"><![CDATA[ domodlib('function_config') local PZ = createConditionObject(CONDITION_INFIGHT) setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime')) function onKill(cid, target, lastHit) if isPlayer(cid) == TRUE and isPlayer(target) == TRUE then local config = { removeFrags = true -- If 'true' player won't gain frags from a player that is versus him; else, player will gain frags as normal. } local GUID = getPlayerGUID(cid) local namec = getPlayerName(cid) local namet = getPlayerName(target) local skull = getCreatureSkullType(cid) local skullend = getPlayerSkullEnd(cid) local playerPos = getPlayerPosition(cid) local targetPos = getPlayerPosition(target) local cidd = cid local timeA = os.time() local timesA = {today = (timeA - 86400), week = (timeA - (7 * 86400))} local contentsA, resultA = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (timeA - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(resultA:getID() ~= -1) then repeat local contentA = { name = resultA:getDataString("name"), level = resultA:getDataInt("level"), date = resultA:getDataInt("date") } if(contentA.date > timesA.today) then table.insert(contentsA.day, contentA) elseif(contentA.date > timesA.week) then table.insert(contentsA.week, contentA) else table.insert(contentsA.month, contentA) end until not resultA:next() resultA:free() end local sizeA = { day = table.maxn(contentsA.day), week = table.maxn(contentsA.week), month = table.maxn(contentsA.month) } local function removeFrag(cid) local timeB = os.time() local timesB = {today = (timeB - 86400), week = (timeB - (7 * 86400))} local contentsB, resultB = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. GUID .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (timeB - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(resultB:getID() ~= -1) then repeat local contentB = { name = resultB:getDataString("name"), level = resultB:getDataInt("level"), date = resultB:getDataInt("date") } if(contentB.date > timesB.today) then table.insert(contentsB.day, contentB) elseif(contentB.date > timesB.week) then table.insert(contentsB.week, contentB) else table.insert(contentsB.month, contentB) end until not resultB:next() resultB:free() end local sizeB = { day = table.maxn(contentsB.day), week = table.maxn(contentsB.week), month = table.maxn(contentsB.month) } if sizeB.day > sizeA.day or sizeB.week > sizeA.week or sizeB.month > sizeA.month then db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = "..GUID..") ORDER BY `death_id` DESC LIMIT 1;") doPlayerSendTextMessage(cidd, 21, "Frag from "..namet.." wasn't counted.") end if skull == SKULL_RED then if getCreatureSkullType(cidd) == SKULL_BLACK then doPlayerSetSkullEnd(cidd, skullend, SKULL_RED) doCreatureSetSkullType(cidd, SKULL_RED) end elseif skull == SKULL_WHITE then if getCreatureSkullType(cidd) == SKULL_RED then doPlayerSetSkullEnd(cidd, timeB, SKULL_RED) doCreatureSetSkullType(cidd, SKULL_WHITE) end end end local myGuild = getPlayerGuildId(cid) local enemyGuild = getPlayerGuildId(target) if myGuild ~= 0 and enemyGuild ~= 0 then if enemyGuild == getGuildWarInfo(myGuild).With then local guildc = getPlayerGuildName(cid) local guildt = getPlayerGuildName(target) doAddCondition(cid, PZ) if lastHit == TRUE then if getTileZoneInfo(playerPos) == 0 and getTileZoneInfo(targetPos) == 0 then if getShowInfo(myGuild) == 1 then registerDeathOne(myGuild, enemyGuild, cid, target) else registerDeathTwo(myGuild, enemyGuild, cid, target) end else doPlayerSendTextMessage(cid, 19, "Remember: in PvP zone the system doesn't register the frag.") end end if config.removeFrags == true then addEvent(removeFrag, 150) end local gsim = getShowInfo(myGuild) local gsie = getShowInfo(enemyGuild) if gsim > gsie then resulta = getKills(guildc) resultb = getKills(guildt) else resulta = getKills(guildt) resultb = getKills(guildc) end local players = getOnlinePlayers() for i,playerName in ipairs(players) do local player = getPlayerByName(playerName); if getPlayerGuildId(player) == myGuild then if getTileZoneInfo(playerPos) == 0 and getTileZoneInfo(targetPos) == 0 then doPlayerSendChannelMessage(player, "", "Opponent "..namet.." of the "..guildt.." was killed by "..namec..". The new score is "..resulta..":"..resultb.." frags.", TALKTYPE_CHANNEL_W, CHANNEL_GUILD) end end end end end end return TRUE end]]></event> </mod> 2) Adicione isso a database (no phpMyAdmin): ALTER TABLE `guilds` ADD `invited_to` INT( 11 ) NOT NULL , ADD `invited_by` INT( 11 ) NOT NULL , ADD `in_war_with` INT( 11 ) NOT NULL , ADD `kills` INT( 11 ) NOT NULL , ADD `show` SMALLINT( 1 ) NOT NULL , ADD `war_time` INT( 11 ) NOT NULL ; e isso: CREATE TABLE `deaths_in_wars` ( `guild_id` INT( 11 ) NOT NULL , `player_id` INT( 11 ) NOT NULL , `killer_guild` INT( 11 ) NOT NULL , `killer` INT( 11 ) NOT NULL , `date` INT( 11 ) NOT NULL , `result1` INT( 11 ) NOT NULL , `result2` INT( 11 ) NOT NULL ) ENGINE = MYISAM ; e finalmente isso: UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with` = 0, `kills` = 0, `show` = 0, `war_time` = 0 WHERE `id` > 0; não sabe como adicionar ? basta abrir o bloco de notas , copiar o conteudo acima e colar e salvar como "nome.sql" apos isso va a http://localhost/phpmyadmin , loga-se escolha a database clique em importar e selecione o arquivo que você salvou. 3) Va até xampp/htdocs. Crie um arquivo chamado wars.php: [copie um arquivo php e apague tudo que tiver dentro ou abra o bloco de notas coloque o conteudo e salve como "wars.php"] <?PHP //Litle Config $MaxShow = 100; //END if($action == '') { $main_content .= ' <P ALIGN=CENTER> <br> <FONT SIZE=4 COLOR=#8A0808> How to use... </FONT> <br> <br> <FONT SIZE=2 COLOR=#DF0101> * <b>/war-invite</b> : <FONT SIZE=1 COLOR=green> Send an invitation to start a war.<br> <u>Example</u>: /war-invite Death Hard </FONT><br> * <b>/war-accept</b> : <FONT SIZE=1 COLOR=green> Accept the invitation to start a war. </FONT><br> * <b>/war-reject</b> : <FONT SIZE=1 COLOR=green> Reject the invitation to start a war. </FONT><br> * <b>/war-cancel-invite</b> : <FONT SIZE=1 COLOR=green> Cancel the invitation already sent to start a war. </FONT><br> * <b>/war-cancel</b> : <FONT SIZE=1 COLOR=green> Finish the current war: it can only be used after 1 day of war. </FONT><br> </FONT> <br> <FONT SIZE=2 COLOR=#8A0808> Those commands can only be executed by guild leaders.<br><br> <table border="1"><tr border="1"><td border="1"><h3>Remember:</h3> <ul> <li>You won\'t get any frag if you kill someone that is VERSUS you.</li> <li>If you kill someone that is in your guild, you will get a frag.</li> </ul></td></tr></table> </FONT> </P> '; $wars = $SQL->query(" SELECT g.name AS gname, wg.name AS wgname, g.war_time AS gtime, wg.war_time AS wgtime, g.kills AS kills, wg.kills AS ekills, g.show AS s, g.id AS gid, wg.id AS wgid, g.logo_gfx_name AS glogo, wg.logo_gfx_name AS wglogo FROM guilds AS g INNER JOIN guilds AS wg ON wg.id = g.in_war_with ORDER BY s DESC LIMIT 50; "); foreach ($wars as $k=>$v) { if ($v[s] == 1) { $glogo = "default_logo.gif"; $wglogo = "default_logo.gif"; if(!empty($v[glogo])) $glogo = $v[glogo]; if(!empty($v[wglogo])) $wglogo = $v[wglogo]; if(is_int($number_of_rows / 2)) { $bgcolor = '#D4C0A1'; } else { $bgcolor = '#D5E1A2'; } $number_of_rows++; $stats .=" <TR BGCOLOR=".$bgcolor."> <TD WIDTH=30%><center><a href='index.php?subtopic=guilds&action=show&guild=" . $v[gname] . "'><font color='#5A2800'>$v[gname]</font></a></center></TD> <TD WIDTH=40%><center><a href='index.php?subtopic=wars&action=show&war=" . $v[gid] . "'><font color='#5A2800'>{$v[kills]} - {$v[ekills]}</font></a></center></TD> <TD WIDTH=30%><center><a href='index.php?subtopic=guilds&action=show&guild=" . $v[wgname] . "'><font color='#5A2800'>$v[wgname]</font></a></center></TD> </TR> <TR BGCOLOR=".$bgcolor."> <TD><center><img border=1 src='guilds/".$glogo."' width='64px' height='64px'/></center></TD> <TD><center><b>Declared at:</b><br />" . date("d/m/y H:i:s", $v[gtime]) . "<p><b>Started at:</b><br />" . date("d/m/y H:i:s", $v[wgtime]) . "</center></TD> <TD><center><img border=1 src='guilds/".$wglogo."' width='64px' height='64px'/></center></TD> </TR> "; } } $main_content .= ' <table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b><blink>Active Wars</blink></b></font></td></tr></tbody></table> '; if(!$stats) { $main_content .= ' <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR='.$config['site']['darkborder'].'> <TD> No active wars in '.$config['server']['serverName'].' yet. </TD> </TR> </TABLE> '; } else { $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> $stats </TABLE> "; } ?> <?PHP $invitations = $SQL->query(" SELECT ig.name AS igname, i.name AS iname, i.id AS iid, ig.id AS igid, i.war_time AS itime, i.logo_gfx_name AS ilogo, ig.logo_gfx_name AS iglogo FROM guilds AS i INNER JOIN guilds AS ig ON ig.id = i.invited_to ORDER BY itime ASC LIMIT 50; "); foreach ($invitations as $k=>$v) { $ilogo = "default_logo.gif"; $iglogo = "default_logo.gif"; if(!empty($v[ilogo])) $ilogo = $v[ilogo]; if(!empty($v[iglogo])) $iglogo = $v[iglogo]; if(is_int($number_of_rows / 2)) { $bgcolor = '#D4C0A1'; } else { $bgcolor = '#D5E1A2'; } $number_of_rows++; $invi .=" <TR BGCOLOR=".$bgcolor."> <TD width=30%> <center> <b> <a href='index.php?subtopic=guilds&action=show&guild=" . $v[iname] . "'><font color='#5A2800'>$v[iname]</font></a> </b> </center> </TD> <TD width=40%><center>0-0</center></TD> <TD width=30%> <center> <b> <a href='index.php?subtopic=guilds&action=show&guild=" . $v[igname] . "'><font color='#5A2800'>$v[igname]</font></a> </b> </center> </TD> </TR> <TR BGCOLOR=".$bgcolor."> <TD> <center> <img border=1 src='guilds/".$ilogo."' width='64px' height='64px'/> </center> </TD> <TD><center><b>Declared on:</b><br />" . date("d/m/y H:i:s", $v[itime]) . "</center></TD> <TD> <center> <img border=1 src='guilds/".$iglogo."' width='64px' height='64px'/> </center> </TD> </TR> "; } $main_content .= '<br><br><br> <table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b><blink>Declared Wars</blink></b></font></td></tr></tbody></table>'; if(!$invi) { $main_content .= ' <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR='.$config['site']['darkborder'].'> <TD> No declared wars in '.$config['server']['serverName'].' yet. </TD> </TR> </TABLE> <br> '; } else { $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> $invi </TABLE> "; } } //SHOW FRAGS ~~ if($action == 'show') { $guild = $ots->createObject('Guild'); $guild->load($_REQUEST['war']); $ranks = $SQL->query(" SELECT * FROM guild_ranks WHERE guild_id = ". $guild->getId() ." ORDER BY level DESC; "); foreach ($ranks as $y) { $Players = $SQL->query(" SELECT * FROM players WHERE rank_id = ". $y[id] ." ORDER BY name ASC;"); foreach ($Players as $v) { $totDeaths = 0; $deaths = $SQL->query(" SELECT COUNT(player_id) AS n FROM deaths_in_wars WHERE player_id = ". $v[id] ." GROUP BY player_id DESC LIMIT 1;"); foreach ($deaths as $q) { $totDeaths = $q[n]; } if($totDeaths > 1 || $totDeaths == 0){ $deathL = "deaths"; } else{ $deathL = "death"; } $membersDeaths1 .="<tr bgcolor=#D4C0A1> <td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td> <td width=30%>$totDeaths $deathL</td> </tr> "; $totFrags = 0; $frags = $SQL->query(" SELECT COUNT(killer) AS m FROM deaths_in_wars WHERE killer = ". $v[id] ." GROUP BY killer DESC LIMIT 1;"); foreach ($frags as $p) { $totFrags = $p[m]; } if($totFrags > 1 || $totFrags == 0){ $fragL = "frags"; } else{ $fragL = "frag"; } $membersFrags1 .= "<tr bgcolor=#D4C0A1> <td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td> <td width=30%>$totFrags $fragL</td> </tr> "; } } $guild2 = $ots->createObject('Guild'); $guild2->load($guild->getCustomField(in_war_with)); $ranks2 = $SQL->query(" SELECT * FROM guild_ranks WHERE guild_id = ". $guild2->getId() ." ORDER BY level DESC; "); foreach ($ranks2 as $y) { $Players = $SQL->query(" SELECT * FROM players WHERE rank_id = ". $y[id] ." ORDER BY name ASC;"); foreach ($Players as $v) { $totDeaths2 = 0; $deaths = $SQL->query(" SELECT COUNT(player_id) AS n FROM deaths_in_wars WHERE player_id = ". $v[id] ." GROUP BY player_id DESC LIMIT 1;"); foreach ($deaths as $q) { $totDeaths2 = $q[n]; } if($totDeaths2 > 1 || $totDeaths2 == 0){ $deathL = "deaths"; } else{ $deathL = "death"; } $membersDeaths2 .= "<tr bgcolor=#D4C0A1> <td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td> <td width=30%>$totDeaths2 $deathL</td> </tr> "; $totFrags2 = 0; $frags = $SQL->query(" SELECT COUNT(killer) AS m FROM deaths_in_wars WHERE killer = ". $v[id] ." GROUP BY killer DESC LIMIT 1;"); foreach ($frags as $p) { $totFrags2 = $p[m]; } if($totFrags2 > 1 || $totFrags2 == 0){ $fragL = "frags"; } else{ $fragL = "frag"; } $membersFrags2 .= "<tr bgcolor=#D4C0A1> <td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td> <td width=30%>$totFrags2 $fragL</td> </tr> "; } } $deaths3 = $SQL->query(" SELECT * FROM deaths_in_wars WHERE (killer_guild = ". $guild->getId() ." OR killer_guild = ". $guild2->getId() .") ORDER BY date DESC LIMIT ". $MaxShow .";"); $deathsG1 = $SQL->query(" SELECT * FROM deaths_in_wars WHERE killer_guild = ". $guild->getId() ." ORDER BY date DESC LIMIT ". $MaxShow .";"); $deathsG2 = $SQL->query(" SELECT * FROM deaths_in_wars WHERE killer_guild = ". $guild2->getId() ." ORDER BY date DESC LIMIT ". $MaxShow .";"); $Topfragger1 = $SQL->query(" SELECT killer, COUNT(killer) maximo FROM deaths_in_wars WHERE killer_guild = ". $guild->getId() ." GROUP BY killer ORDER BY maximo DESC LIMIT 1;"); foreach ($Topfragger1 as $y) { $name = $ots->createObject('Player'); $name->load($y[killer]); $TopFraggerName = $name->getName(); $numTop1 = $y[maximo]; } $Topfragger2 = $SQL->query(" SELECT killer, COUNT(killer) maximo FROM deaths_in_wars WHERE killer_guild = ". $guild2->getId() ." GROUP BY killer ORDER BY maximo DESC LIMIT 1;"); foreach ($Topfragger2 as $y) { $name = $ots->createObject('Player'); $name->load($y[killer]); $TopFraggerName2 = $name->getName(); $numTop2 = $y[maximo]; } $mostDead = $SQL->query(" SELECT player_id, COUNT(player_id) maximo FROM deaths_in_wars WHERE killer_guild = ". $guild->getId() ." GROUP BY player_id ORDER BY maximo DESC LIMIT 1;"); foreach ($mostDead as $y) { $name = $ots->createObject('Player'); $name->load($y[player_id]); $mostDeadName = $name->getName(); $mostDeadNum = $y[maximo]; } $mostDead2= $SQL->query(" SELECT player_id, COUNT(player_id) maximo FROM deaths_in_wars WHERE killer_guild = ". $guild2->getId() ." GROUP BY player_id ORDER BY maximo DESC LIMIT 1;"); foreach ($mostDead2 as $y) { $name = $ots->createObject('Player'); $name->load($y[player_id]); $mostDeadName2 = $name->getName(); $mostDeadNum2= $y[maximo]; } foreach ($deaths3 as $a=>$b) { $killed3 = $ots->createObject('Player'); $killed3->load($b[player_id]); $killedName3 = $killed3->getName(); $killer3 = $ots->createObject('Player'); $killer3->load($b[killer]); $killerName3 = $killer3->getName(); $guild3 = $ots->createObject('Guild'); $guild3->load($b[killer_guild]); $guildName3 = $guild3->getName(); $totKills1 = 0; $killss1 = $SQL->query(" SELECT COUNT(result1) AS m FROM deaths_in_wars WHERE (killer_guild = ". $guild->getId() ." AND date <= ". $b[date] .") GROUP BY result1 DESC LIMIT 1;"); foreach ($killss1 as $p) { $totKills1 = $p[m]; } $totKills2 = 0; $killss2 = $SQL->query(" SELECT COUNT(result2) AS n FROM deaths_in_wars WHERE (killer_guild = ". $guild2->getId() ." AND date <= ". $b[date] .") GROUP BY result2 DESC LIMIT 1;"); foreach ($killss2 as $q) { $totKills2 = $q[n]; } $kills3 .=" <TR BGCOLOR=#D4C0A1> <TD> <a href='index.php?subtopic=characters&name=" . $killerName3 . "'><u>$killerName3</u></a> </TD> <TD> <a href='index.php?subtopic=characters&name=" . $killedName3 . "'><u>$killedName3</u></a> </TD> <TD> $guildName3 </TD> <TD> $totKills1:$totKills2 </TD> <TD> " . date("d/m/y H:i:s", $b[date]) . " </TD> </TR> "; } if(!empty($mostDeadNum)){$mostDeadNum = $mostDeadNum;}else{$mostDeadNum = 0 + $mostDeadNum;} if(!empty($mostDeadNum2)){$mostDeadNum2 = $mostDeadNum2;}else{$mostDeadNum2 = 0 + $mostDeadNum2;} if(!empty($numTop1)){$numTop1 = $numTop1;}else{$numTop1 = 0 + $numTop1;} if(!empty($numTop2)){$numTop2 = $numTop2;}else{$numTop2 = 0 + $numTop2;} foreach ($deathsG1 as $k=>$v) { $killed = $ots->createObject('Player'); $killed->load($v[player_id]); $killedName = $killed->getName(); $killer = $ots->createObject('Player'); $killer->load($v[killer]); $killerName = $killer->getName(); $kills .=" <TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\"> <TD> <center> <b> <a href='index.php?subtopic=characters&name=" . $killedName . "'>$killedName</a> </b> </center> </TD> <TD> <center> <b> <a href='index.php?subtopic=characters&name=" . $killerName . "'>$killerName</a> </b> </center> </TD> <TD> <center> " . date("d/m/y H:i:s", $v[date]) . " </center> </TD> </TR> "; } foreach ($deathsG2 as $k=>$v) { $killed = $ots->createObject('Player'); $killed->load($v[player_id]); $killedName = $killed->getName(); $killer = $ots->createObject('Player'); $killer->load($v[killer]); $killerName = $killer->getName(); $kills2 .=" <TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\"> <TD> <center> <b> <a href='index.php?subtopic=characters&name=" . $killedName . "'>$killedName</a> </b> </center> </TD> <TD> <center> <b> <a href='index.php?subtopic=characters&name=" . $killerName . "'>$killerName</a> </b> </center> </TD> <TD> <center> " . date("d/m/y H:i:s", $v[date]) . " </center> </TD> </TR> "; } if($numTop1 > 1 || $numTop1 == 0){$fragl1 = "frags";}else{$fragl1 = "frag";} if($numTop2 > 1 || $numTop2 == 0){$fragl2 = "frags";}else{$fragl2= "frag";} if($mostDeadNum > 1 || $mostDeadNum == 0){$deathl1 = "deaths";}else{$deathl1 = "death";} if($mostDeadNum2 > 1 || $mostDeadNum2 == 0){$deathl2 = "deaths";}else{$deathl2 = "death";} $main_content .= ' <table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>War Information</b></font></td></tr></tbody></table> '; $logo = "default_logo.gif"; $logo2 = "default_logo.gif"; $a = $guild->getCustomField(logo_gfx_name); $b = $guild2->getCustomField(logo_gfx_name); if(!empty($a)) $logo = $a; if(!empty($b)) $logo2 = $b; $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR='#D4C0A1'> <TD WIDTH='35%'><center><a href='index.php?subtopic=guilds&action=show&guild=".$guild->getName()."'><font color='#5A2800'>".$guild->getName()."</font></a></center></TD> <TD WIDTH='30%'><center><font color='#5A2800'><b>".$guild->getCustomField(kills)." - ".$guild2->getCustomField(kills)."</b></font></center></TD> <TD WIDTH='35%'><center><a href='index.php?subtopic=guilds&action=show&guild=".$guild2->getName()."'><font color='#5A2800'>".$guild2->getName()."</font></a></center></TD> </TR> <TR BGCOLOR='#D4C0A1'> <TD><center><img border=1 src='guilds/".$logo."' width='64px' height='64px'/><p><b><u>Top fragger:</b></u><br /><a href='index.php?subtopic=characters&name=".$TopFraggerName."'>".$TopFraggerName."</a> (".$numTop1." ".$fragl1.")<p><b><u>Most dead:</b></u><br /><a href='index.php?subtopic=characters&name=".$mostDeadName2."'>".$mostDeadName2."</a> (".$mostDeadNum2." ".$deathl2.")</center></TD> <TD><center><b>Declared at:</b><br />" . date("d/m/y H:i:s", $guild->getCustomField(war_time)) . "<p><b>Started at:</b><br />" . date("d/m/y H:i:s", $guild2->getCustomField(war_time)) . "</center></TD> <TD><center><img border=1 src='guilds/".$logo2."' width='64px' height='64px'/><p><b><u>Top fragger:</u></b><br /><a href='index.php?subtopic=characters&name=".$TopFraggerName2."'>".$TopFraggerName2."</a> (".$numTop2." ".$fragl2.")<p><b><u>Most dead:</u></b><br /><a href='index.php?subtopic=characters&name=".$mostDeadName."'>".$mostDeadName."</a> (".$mostDeadNum." ".$deathl1.")</center></TD> </TR> </TABLE> "; $main_content .= ' <br><br><table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Kills - '.$guild->getName().' vs '.$guild2->getName().'</b></font></td></tr></tbody></table> '; $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR=#D4C0A1> <TD><b>Killer</b></TD> <TD><b>Victim</b></TD> <TD><b>Fragging Guild</b></TD> <TD><b>Result</b></TD> <TD><b>Date</b></TD> </TR> $kills3 </TABLE>"; $main_content .= ' <br><br><table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Most Frags</b></font></td></tr></tbody></table>'; $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR=#D4C0A1> <TD width=50%> <div align='right'> <B> ". $guild->getName() ." </B> </div> </TD> <TD width=50%> <div align='left'> <B> ". $guild2->getName() ." </B> </div> </TD> </TR> <TR BGCOLOR=#D4C0A1> <TD> <div align='right'> <img src=guilds/".$logo." width='64px' height='64px' border=1/> </div> </TD> <TD> <div align='left'> <img src=guilds/".$logo2." width='64px' height='64px'border=1/> </div> </TD> </TR> </TABLE> <TABLE ALIGN=LEFT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%> $membersFrags1 </TABLE> <TABLE ALIGN=RIGHT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%> $membersFrags2 </TABLE> "; $main_content .= ' <table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR><td><font color="white" size=1>.</font></td></tr></tbody></table>'; $main_content .= ' <table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Most Deaths</b></font></td></tr></tbody></table>'; $main_content .= " <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%> <TR BGCOLOR=#D4C0A1> <TD width=50%> <div align='right'> <B> ". $guild->getName() ." </B> </div> </TD> <TD width=50%> <div align='left'> <B> ". $guild2->getName() ." </B> </div> </TD> </TR> <TR BGCOLOR=#D4C0A1> <TD> <div align='right'> <img src=guilds/".$logo." width='64px' height='64px' border=1 /> </div> </TD> <TD> <div align='left'> <img src=guilds/".$logo2." width='64px' height='64px'border=1 /> </div> </TD> </TR> </TABLE> <TABLE ALIGN=LEFT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%> $membersDeaths1 </TABLE> <TABLE ALIGN=RIGHT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%> $membersDeaths2 </TABLE> "; } $main_content .= " <table border='0' CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR><td><div style='text-align: right; margin: 20px auto; font-size: 10px;'> Created by <a target='blank' href='http://otland.net/members/xampy/'>Xampy</a></div></td></tr></tbody></table>"; ?> 4) Abra o arquivo guilds.php [da pasta htdocs] e DEPOIS de (linha 1740~): if($guild_leader) { if($_POST['todo'] == 'save') { delete_guild($guild->getId()); $saved = TRUE; } adicione isso: $war = $guild->getCustomField("in_war_with"); if($war == 0) { e depois de : else { $guild_errors[] = 'You are not a leader of guild!'; } } adicione: else { $guild_errors[] = 'You are in war with with some other guild!'; } } 5) Abra o arquivo index.php [na pasta htdocs] e depois ou antes de:(não faz diferença): case "buypoints"; $subtopic = "buypoints"; $topic = "Buy Points"; include("buypoints.php"); break; coloque: case "wars"; $subtopic = "wars"; $topic = "Wars"; include("wars.php"); break; 6) Abra xampp/htdocs/layouts/tibiacom/ e depois layout.php. Depois de: <a href='?subtopic=guilds'> <div id='submenu_guilds' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Guilds</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> coloque isso: <a href='index.php?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_wars' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color="red">Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> 7) Agora entre na seção Wars do seu Site -> Localhost - Wars Por favor , rep + Creditos: Recuso Imitações , Proibido Copia [Peço a um moderador que arrume o Topico se possivel]
    1 ponto
  7. fswd

    Integrando Site + Msn

    Olá, hoje eu vou ensinar como você colocar um atendimento online em seu site com o msn. Esta série de tutoriais que estou fazendo está tudo em menu perfil, Sobre Mim. Espero que gostem; 1. Entre: Clique Aqui 2. Faça o login com o seu e-mail 3. Marque o checkbox “permitir que as pessoas vejam o seu status do Messenger em sites e enviem mensagens para você”. Se não marcar todo mundo vai te ver como OFF ;x 4. Clique em "Salvar" 5. Clique na guia “Criar HTML” e padronize como quiser 6. Copie o HTML que o site vai gerar e use onde e como quiser Pronto, tudo online funcionando Abraços.
    1 ponto
  8. Kryserver

    Spell Big Bang

    Bom dia/boa tarde/boa noite.Hoje eu vim aqui postar meu segundo spell. 1.0 Vá na pasta Spells do seu Ot Server e depois que fizer isso entra na pasta Scripts. 1.1 Entre na pasta Attack, copie um arquivo qualquer e o nomeie como gen. 1.2 Abra o arquivo e cole isso: local combat16 = createCombatObject() setCombatParam(combat16, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat16, COMBAT_PARAM_EFFECT, 6) setCombatFormula(combat16, COMBAT_FORMULA_LEVELMAGIC, -18.0, -1800, -18.0, -1800) local combat17 = createCombatObject() setCombatParam(combat17, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat17, COMBAT_PARAM_EFFECT, 6) setCombatFormula(combat17, COMBAT_FORMULA_LEVELMAGIC, -20.5, -2050, -20.5, -2050) local combat18 = createCombatObject() setCombatParam(combat18, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat18, COMBAT_PARAM_EFFECT, 6) setCombatFormula(combat18, COMBAT_FORMULA_LEVELMAGIC, -22.0, -2200, -22.0, -2200) local combat19 = createCombatObject() setCombatParam(combat19, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat19, COMBAT_PARAM_EFFECT, 5) setCombatFormula(combat19, COMBAT_FORMULA_LEVELMAGIC, -23.5, -2350, -23.5, -2350) local combat20 = createCombatObject() setCombatParam(combat20, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat20, COMBAT_PARAM_EFFECT, 5) setCombatFormula(combat20, COMBAT_FORMULA_LEVELMAGIC, -25.0, -2500, -25.0, -2500) arr16 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr17 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 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, 0, 1, 1, 3, 1, 1, 0, 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, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr18 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 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, 0, 1, 1, 1, 2, 1, 1, 1, 0, 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, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr19 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {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}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {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}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr20 = { {0, 0, 0, 0, 0, 1, 0, 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}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {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, 0, 1, 0, 0, 0, 0, 0}, } local area16 = createCombatArea(arr16) local area17 = createCombatArea(arr17) local area18 = createCombatArea(arr18) local area19 = createCombatArea(arr19) local area20 = createCombatArea(arr20) setCombatArea(combat16, area16) setCombatArea(combat17, area17) setCombatArea(combat18, area18) setCombatArea(combat19, area19) setCombatArea(combat20, area20) local function onCastSpell16(parameters) doCombat(parameters.cid, parameters.combat16, parameters.var) end local function onCastSpell17(parameters) doCombat(parameters.cid, parameters.combat17, parameters.var) end local function onCastSpell18(parameters) doCombat(parameters.cid, parameters.combat18, parameters.var) end local function onCastSpell19(parameters) doCombat(parameters.cid, parameters.combat19, parameters.var) end local function onCastSpell20(parameters) doCombat(parameters.cid, parameters.combat20, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat16 = combat16, combat17 = combat17, combat18 = combat18, combat19 = combat19, combat20 = combat20 } addEvent(onCastSpell16, 0, parameters) doSendAnimatedText(getPlayerPosition(cid), "Big Bang Atack", TEXTCOLOR_RED) addEvent(onCastSpell17, 200, parameters) addEvent(onCastSpell18, 400, parameters) addEvent(onCastSpell19, 600, parameters) addEvent(onCastSpell20, 800, parameters) end 2.0 - Agora volte para a pasta Spells e abra o documento Spells-XML como bloco de notas. 2.1 - Dentro dele vá na categoria Instant e cole:[/color] <instant name="Big Bang" words="Big Bang" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="0" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="attack/gen.lua"> </instant> Uma Ss do spell Outro spell feito. ^^
    1 ponto
  9. local v = (getCreatureMaxHealth(item2.uid)/100) * 4 aqui vc muda o sangue.. no caso ta pa enxe 4%.. caso keira enxe 100 em 100 ou 200 em 200 dexa tipo local v = 200 que enxe 200 em 200 ^^
    1 ponto
  10. Player nascendo na posição X:- Y:- Z:- { Abra o RME e aperte Ctrl+T, "Edit Town". Vá na cidade que você quér que o player vai nascer (principal) e la tem Y:- X:- Z:- (é só alterar) Account Manager nascendo na posição X:- Y:- Z:- {Abra o config.lua e mude a posição la mesmo, depois abra o SQLite editor ou Mysql (qual você usar.) e edite lá também a pos. do Acc Manag. Acho que é isso, tésta ae e ve se da cérto. Falow!
    1 ponto
  11. 00D

    [ Resolvido ] Dupla Escolha De Promotion

    Amigo, dupla promotion é meio tenso, explicando o motivo: Quando um char é promovido, a vocação dele nao muda. no DataBase (banco de Dados) ele vai continuar lá Vocation 1 (knight) e Quando ele compra a promotion, vai ficar assim Vocation 1 (knight) //ué, não deveria ficar 5? (Elite Knight)?? Porém fica Vocation 1 Promotion 1 Ou seja, ele é knight, com promoção 1. (Se ficou confuso, só falar q explico melhor, acabei de acordar ^^) Mas tem muitas coisas que vc pode fazer. 1- Criar 2 promoções: Perceba que essa é a vocação base, e ela tem como vocação anterior, ela mesma. fromvoc="1"> Perceba agora que é essa é a vocação referente à primeira promoção, e ela tem como vocação anterior, a vocação base. fromvoc="1" Agora vem a grande jogada! Agora, perceba que essa vocação (inventei agora), ela é a promoção, da primeira promoção :S (segunda promotion) fromvoc="5" E agora, o que fazer?? 1- Você pode usar esse metodo, pra criar um npc que se o jogador escolher a primeira opção, ele será promovido ao nivel 1. E, se o jogador escolher a segunda opção, ele será promovido ao nivel 2. Usando a segunda promotion, para criar opções de vocação ^^ 2- Ou então você pode usar ela como segunda promotion mesmo, quando o jogador chega ao nivel 100 (ex) vai a um npc/ quest/ compra a segunda promoção. Eu faria o npc da Opcão 1, mas estou envolvido em um projeto próprio. (lembrando que é só uma, escolhi essa pq seria facil de explicar.) E esse npc não é dificil, pedindo no forum, algum scripter faria pra vc (: Boa sorte ae.
    1 ponto
  12. Como não entendi direito o pedido, darei 2 soluções para o que acho que precisa.Procure no arquivo xml de seu monster a tag: <flag runonhealth="0"/> Mude o 0 para o life que ele irá começar a correr. ou ainda procure por <flag targetdistance="1"/> Mude o 1 para a distância que ele ficará de você enquanto ataca. flw
    1 ponto
  13. Olá, Ékstibiano. function isTargetAround(cid) local p, tp = getThingPosition(cid), getThingPosition(getCreatureTarget(cid)) return isInRange(tp, {x=p.x-1, y=p.y+1, z=p.z}, {x=p.x+1, y=p.y-1, z=p.z}) end Abraços, Oneshot.
    1 ponto
  14. A ideia e boa em fazer num novo acc, ja tinha pensado várias vezes em fazer um, mais da muito trabalho ^^ Afinal, gesior é bem ruim, modern acc e nicaw ja não sei.
    1 ponto
  15. HeXo

    Erro Ao Colocar Site Online

    Tente usar outro 'schema'. Por exemplo esse que eu coloquei em anexo. Se não ajudar, me dê mais detalhes do seu erro. mysql.zip
    1 ponto
  16. 1 ponto
  17. luisfe23

    Fake 2 '-'

    UAHEUEHAUHEAUEA Tonynh down Curti cara, você tem jeito pra tudo, design, mapper, fake... Essa fake fico muito massa, parabéns maninhoooo beijos;*<3 #Edit: Presente pra você
    1 ponto
  18. Nome: MatheusMkalo Idade: 14 Cargo: Scripter MSN: massacre-team@hotmail.com Horas que podem ser dedicadas ao Projeto: 1hr e 30m por dia. Nivel de Experiência: Avançado Mostrar algum Trabalho feito: Aqui, aqui e aqui Já trabalhou em algum outro servidor: Sim Porque quer entrar na equipe: Porque gostei da ideia e quero contribuir Promete concluir o projeto: Isso nao depende so de mim, e sim da equipe toda, mas sim prometo. Adicional: Dorgas rairairai
    1 ponto
  19. Ththt

    Me Ajudem Plz :)

    Axei os dois bem legais mas axei o primeiro melhor. O segundo eu axei que ficou mt claro =P sei la Q bom q esta d volta
    1 ponto
  20. rusek2323

    Fechado.

    PESSOAL COMO QUE EU FAÇO PRA ATUALIZAR UM OT 8.57 PRA 8.60 ? E NEM ADIANTA APAGAR O TÓPICO PQ EU VOU REFAZER QUANTAS VEZES FOR PRECISO ATÉ ALGUEM RESPONDER
    -1 pontos
  21. reizan

    Pokemon Server 8.54

    Comentário ofensivo retirado. flw
    -1 pontos
  22. Comentário Removido! Motivo: Xingamentos, fala de nome de outros fóruns Usuário Alertado em 10%, suspenso por 3 dias e 2 pontos de reputação removidos! Por não ser a primeira vez...
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...