Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. extremeots

    [Show Off] Extremeots

    To montando um tipo de Topico Diferente aqui no Xtibia acho que o pessoal vai gostar
    2 pontos
  2. 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
  3. Roksas

    Retirando Bug Do Rme 8.60

    Dúvida: Retirando Bug do RME 8.60 • Introdução: Bom, depois de alguns meses voltei ao XTibia, de acordo estava "aposentado" rs. Eu sei que há muitos tutoriais deste, de como retirar o bug, mas nenhum funcionou comigo e sempre vi pessoas dizendo que não conseguiram, então resolvi criar este porque comgo o processo foi sucedido! Chega de conversa, vamos ao que interessa (rimou). =D Primeiramente, abra seu Remeres MapEditor 8.60. Siga estes passos: File>Preferences>Client Version> Desmarque a caixa "Check file signatures"> Marque Apply e depois>Ok. Muito bem, agora iremos enteder um pouco este erro: Ele diz que não consegue encontrar os arquivos necessários e quando você clica para encontrar, dá o mesmo erro. Vejamos, então devemos instalar o Client Tibia pelo site do Remeres! Então, faremos isso. Segue o link de download do Client: http://www.remeresma...le=tibia860.exe Muito bem, após baixar, instalar. Crie uma pasta em seu Desktop chamada "Mapeditor"> Agora vá na pasta do seu Tibia (normalmente se localiza em: Disco Local>Arquivos de Programas>Tibia), agora copie os arquivos "tibia.dat", "tibia.spr" e "tibia.pic". Vá na pasta "Mapeditor" no Desktop e cole-os lá mesmo. Agora abra seu MapEditor RME 8.6! Pronto, use á vontade. (Para quem não deu certo, aperte "Ok" no erro e aparecerá uma caixa para procurar os arquivos, selecione Desktop>E em seguida a pasta Mapeditor. Irá carregá-los e pronto!) Muito obrigado pessoal, espero que dê certo. Fiz com muita dedicação e espero ajudar. Muito obrigado a todos, leiam com atenção e GoGo criar mapas *-* Créditos> Bom, eu vi este Tutorial em algum lugar, mas esqueci. Mas deu certo. Então infelizmente por não lembrar-me, 100% á quem criou o tutorial inexistente.
    1 ponto
  4. kelvinvictor

    Criando Fan Bar

    Como criar um fan bar? 1º baixe o programa Userbar generator: Download AQUI 2º Ele é bem simples... e so seguir as imagens que esplica tudo !! vamos entao começar a fazer o fan bar! 3º Após instalar o programa abra-o. 4º Passo: Após abrilo, escolha o nome que ficará na sua "UserBar" e escreve no espaço "text". e então ajuste a posição do texto. Explicação: 1- Nome que terá na fan bar 2- Cores da Fan Bar 3- Você usa essas setas para movimentar o texto na fan bar 4- Como está ficando sua fan bar 5º Passo: Vá na aba "Effects", nesta aba você poderá escolher 2 coisas, a primeira que contém um quadrado com alguns nomes, neste você escolherá como ficará as listas em sua assinatura. No segundo quadrado ao lado você escolherá como ficará o a luz, destacando alguma parte de sua assinatura. ----------- Explicação: 1- Efeitos que podem serv aplicados sobre a fan bar 2- Outro tipo de efeito que pode ser aplicado a fan bar 3- Cor da borda 4- Aconselho vocês desmarcarem, pois fica uma faixa branca no meio da fan bar 5- Como esta ficando sua fan bar 6- Clique em Overlay Imagem: 1- Selecione so se você quiser colocar uma imagem, se quiser basta clicar em choose. 2- Posiciona a imagem onde vc quiser 3- Reduz a imagem para o tamanho que você quiser. 4- Clique em Sava & Open: Explicação: 1- Criar novamente uma userbar, ou seja, criar um novo projeto 2- Abrir um projeto salvo de uma userbar (fanbar) 3- Salvar projeto (Aqui você não salva a imagem ainda) 4- Salvar a imagem da User Bar (Fan Bar) 5- Como ficou sua Fan Bar 6- Fecha o programa Creditos: Kelvin Victor
    1 ponto
  5. RafaSouza3

    Pic Editor

    Novo PIC Editor Um novo PIC editor muito mais funcional do que os que se encontra aqui no Fórum! Você pode escolher qual imagem quer exportar ou importar evitando assim o bug das letras. Scan: http://www.virustotal.com/pt/analisis/49c8a348545101240eae5a2692bd587134dde474b6a81c69cca2797bc9881e6e-1275572860 Download: http://www.4shared.com/file/-wJMq9Lp/Pic_Editor.html OBS: PIC Editor retirado de um fórum gringo traduzido por mim e postado por mim tbm! Fico livre de postar os devidos créditos pq n me lembro mais de onde peguei XD.
    1 ponto
  6. Fonte: Otland - Doggynub Modificações e tradução de algumas falas do npc e do MOD: Hudsin Testado em tfs 0.4 O que faz o script: Sistema de guerra entre 2 times(vermelho e azul),para que a war se inicie é necessário 2 times de 20 players(pode ser mudado no script) além de todos que forem participar precisar falar com o npc Eventer. Atualizações: 1- GM pode resetar o evento. 2- Players nao pode mudar a cor do outfit durante o evento. 3- Cada 40 segundos é enviado a mensagem avisando quantos players estão participando. Crie um novo npc em npc/Eventer.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Eventer" script="event.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="79" body="113" legs="105" feet="86" addons="0"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Para entrar na batalha diga {Battle} e para sair diga leave."/> <parameter key="message_farewell" value="Good bye."/> <parameter key="message_walkaway" value="Farewell then.." /> </parameters> </npc> Agora em npc/script crie Event.lua e cole: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end --[[start edit]]-- local mingroup = 4 --(updated) minimum group to reset the event local joined = 10000 ---must be like the storage in mod local maxPlayerEachTeam = 20 ---must be like max number in mod local team1Name = "Blue" ---must be like team number i mod local team2Name = "Red" local minlevel = 130 --(added) min lvl for a player to join. --[[storage like in the mod file]]-- local running1 = 12000 --just add a non ussed storage local running2 = 12001 --just add a non ussed storage local sto = 12223 --just add a non ussed storage --[[storage end]]-- --[[End of edit]]-- local function getBlue() return getGlobalStorageValue(9888) end local function removeBlue() return setGlobalStorageValue(9888, getGlobalStorageValue(9888) - 1) end local function addBlue() return setGlobalStorageValue(9888, getGlobalStorageValue(9888) + 1) end local function resetBlue() return setGlobalStorageValue(9888,0) end local function getRed() return getGlobalStorageValue(9887) end local function removeRed() return setGlobalStorageValue(9887, getGlobalStorageValue(9887) - 1) end local function addRed() return setGlobalStorageValue(9887, getGlobalStorageValue(9887) + 1) end local function resetRed() return setGlobalStorageValue(9887,0) end --[[script start]]-- function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if getPlayerGroupId(cid) >= mingroup then npcHandler:say("Oh! Hail, sire. Do you want to reset my event?", cid) talkState[talkUser] = 1 if msgcontains(msg, 'yes') and talkState[talkUser] == 1 then resetBlue() resetRed() setGlobalStorageValue(running1,-1) setGlobalStorageValue(running2,-1) setGlobalStorageValue(sto,-1) npcHandler:say("Event was reseted, sire.", cid) doBroadcastMessage("Eventer: Meu evento foi resetado por ordens do "..getCreatureName(cid)..". Para participar fale comigo outra vez,estou na arena pvp.") for _,cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid, joined) > 0 then setPlayerStorageValue(cid, joined,-1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) end end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then npcHandler:say("As You wish, sire.", cid) talkState[talkUser] = 0 end else if msgcontains(msg, 'battle') then if getGlobalStorageValue(running2) == 1 then npcHandler:say("Ja tem batalha em andamento,tente mais tarde.", cid) elseif getPlayerLevel(cid) < minlevel then npcHandler:say("Apenas level 130+ pode participar.",cid) else npcHandler:say("Voce esta preparado para a abatalha? Por enquanto temos " .. getBlue() .. "/" .. maxPlayerEachTeam .. " players no {" .. team1Name .. "} team e " .. getRed() .. "/" .. maxPlayerEachTeam .. " players no {" .. team2Name .. "} team,vc quer escolher algum?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, joined) ~= 1 and getPlayerStorageValue(cid, joined) ~= 2 then npcHandler:say("Vc quer ser do {" .. team1Name .. "} team ou {" .. team2Name .. "} team?", cid) talkState[talkUser] = 2 else npcHandler:say("Vc esta cadastrado!", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then npcHandler:say("Okay then.", cid) talkState[talkUser] = 0 elseif msgcontains(msg, team1Name) and talkState[talkUser] == 2 then if getBlue() ~= maxPlayerEachTeam then --fixed setPlayerStorageValue(cid, joined, 1) addBlue() npcHandler:say("Vc entrou no " .. team1Name .. " team! Quando ambas equipes tiverem " .. maxPlayerEachTeam .. " os players serao teleportados para arena de batalha.", cid) talkState[talkUser] = 0 else npcHandler:say("{" .. team1Name .. "} team esta cheio, entre no {" .. team2Name .. "} team ou espere alguem sair do {" .. team1Name .. "} team.", cid) --fixed talkState[talkUser] = 1 end elseif msgcontains(msg, team2Name) and talkState[talkUser] == 2 then if getRed() ~= maxPlayerEachTeam then --fixed setPlayerStorageValue(cid, joined, 2) --fixed addRed() npcHandler:say("Vc esta no " .. team2Name .. " team! Quando ambas equipes tiverem " .. maxPlayerEachTeam .. " os players serao teleportados para arena de batalha.", cid) talkState[talkUser] = 0 else npcHandler:say("{" .. team2Name .. "} team esta cheio, entre no {" .. team1Name .. "} team ou espere alguem sair do {" .. team2Name .. "} team.", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'leave') then npcHandler:say("Vc quer sair da lista de espera para batalha?", cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then if getPlayerStorageValue(cid,joined) == 1 then setPlayerStorageValue(cid, joined, -1) -- fixed removeBlue() npcHandler:say("Vc saiu da batalha.", cid) doBroadcastMessage("Event: " .. getPlayerName(cid) .. " saiu da batalha " .. team1Name .. " e " .. team2Name .. "!") elseif getPlayerStorageValue(cid,joined) == 2 then --fixed setPlayerStorageValue(cid,joined,-1) removeRed() npcHandler:say("Vc saiu da batalha.", cid) doBroadcastMessage("Event: " .. getPlayerName(cid) .. " saiu da batalha " .. team1Name .. " e " .. team2Name .. "!") else npcHandler:say("Vc nao esta cadastrado!", cid) end talkState[talkUser] = 0 -- moved end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora para instalar o MOD crie um novo arquivo Event.xml na pasta mods de seu ot e coloque o seguinte codigo: <?xml version="1.0" encoding="UTF-8"?> <mod name="Team Event" version="1.0" author="Damadgerz" contact="support@lualand.net" enabled="yes"> <description> This is a full auto Team BattleEvent(missing part for site) : 1- Player will get the ability to talk to the npc event starter to start the event every x times(time between each event) 2- players will go to npc and say battle and then join their desired team(you adjust team names) , they also have ability to leave team 3- You have ability to set max players per each team, npc will not tp the players to arena except when both teams are full 4- Script automatically set the place of event to a pvp arena (players no lose items,levels,geet msg who killed them).Place cant be a non-pvp area. 5- if player logged out they will automatically be lifted out from event. 6- players in same team cant attack each others even with spells 7- each team will have a uniform 8-you choose where the first team be tped and where the second team be tped 9-when event start, you set a max time for event.So if ppl couldnt kill each other( if players in first team = players in second team when event times finish) They will automatically be sent to temple and no one will take reward and broadcast 10 -during event if max time didnt finish and player of team 1 killed all of those of team2 then players of team1 will be tped to temple broadcasting they won by killing all other members and will recieve a random reward taht you set 11 -Then the event will be on hold untill time between each event pass(you set that) , and when it pass a auto broadcast is made every minute to tell player that event is open. </description> <config name="tutorial_m"><![CDATA[ running1 = 12000 --just add a non ussed storage running2 = 12001 --just add a non ussed storage joined = 10000 --just add a non ussed storage sto = 12223 --just add a non ussed storage check = 5454 -- empty storage redpotision = {x=19068, y=18978, z=7} --place where the red team player be teleported to blueposition = {x=19060, y=19052, z=7} --place where the blue team player be teleported to stoptime = 2 --in minutes team1name = "Blue" --just put the name without <team> team2name = "Red" timebetween = 5 -- time between each event arena = { frompos = {x=19068,y=18978,z=7}, topos = {x=19060,y=19052,z=7} } ----Put you event area here conf = { rewards_id = {2472}, -- Rewards ID maxplayers = 20 ---maxplayers per team } ]]></config> <lib name="football-lib"><![CDATA[ function getBlue() return getGlobalStorageValue(9888) end function removeBlue() return setGlobalStorageValue(9888, getGlobalStorageValue(9888) - 1) end function addBlue() return setGlobalStorageValue(9888, getGlobalStorageValue(9888) + 1) end function resetBlue() return setGlobalStorageValue(9888,0) end function getRed() return getGlobalStorageValue(9887) end function removeRed() return setGlobalStorageValue(9887, getGlobalStorageValue(9887) - 1) end function addRed() return setGlobalStorageValue(9887, getGlobalStorageValue(9887) + 1) end function resetRed() return setGlobalStorageValue(9887,0) end function onStop() if getGlobalStorageValue(running1) == 1 then setGlobalStorageValue(running1, -1) setGlobalStorageValue(sto,1) end return true end function onStopp() if getGlobalStorageValue(running2) > 0 then setGlobalStorageValue(running2,-1) doBroadcastMessage("Event : event is started again , go talk to the Evnet's Npc.") end end ]]></lib> <event type="login" name="Tutorial Login" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onLogin(cid) if getPlayerStorageValue(cid,check) > 0 then if isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) setPlayerStorageValue(cid,check,-1) else setPlayerStorageValue(cid,check,-1) end end registerCreatureEvent(cid, "Log") registerCreatureEvent(cid, "Arena") registerCreatureEvent(cid, "Attk") return true end ]]></event> <event type="combat" name="Attk" event="script"><![CDATA[ domodlib('tutorial_m') domodlib('football-lib') function onCombat(cid, target) if getPlayerStorageValue(cid, joined) == 1 and getPlayerStorageValue(target, joined) == 1 then return false end if getPlayerStorageValue(cid, joined) == 2 and getPlayerStorageValue(target, joined) == 2 then return false end return true end ]]></event> <event type="logout" name="Log" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onLogout(cid) if getPlayerStorageValue(cid,joined) == 1 then doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event") setPlayerStorageValue(cid,joined,-1) setPlayerStorageValue(cid,check,1) removeBlue() return true end if getPlayerStorageValue(cid,joined) == 2 then doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event") setPlayerStorageValue(cid,check,1) removeRed() return true end return true end ]]></event> <event type="statschange" name="Arena" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') local corpse_ids = { [0] = 3065, -- female [1] = 3058 -- male } function onStatsChange(cid, attacker, type, combat, value) if combat == COMBAT_HEALING then return true end if getCreatureHealth(cid) > value then return true end if isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) then doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".\n[War-Event kill]") doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doRemoveConditions(cid, FALSE) doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You got killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").." in the war event.") if isPlayer(attacker) then doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_BLUE, "You killed "..getCreatureName(cid).." in the war event.") end if getPlayerStorageValue(cid,joined) == 1 then removeBlue() setPlayerStorageValue(cid,10000,-1) elseif getPlayerStorageValue(cid,joined) == 2 then removeRed() setPlayerStorageValue(cid,10000,-1) end end return true end ]]></event> <globalevent name="reset" type="start" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onStartup() resetBlue() resetRed() setGlobalStorageValue(running1,-1) setGlobalStorageValue(running2,-1) setGlobalStorageValue(sto,-1) return true end ]]></globalevent> <globalevent name="TeamBattle" interval="7" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') local bmale = createConditionObject(CONDITION_OUTFIT) setConditionParam(bmale, CONDITION_PARAM_TICKS, -1) addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3}) local bfemale = createConditionObject(CONDITION_OUTFIT) setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1) addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3}) local rmale = createConditionObject(CONDITION_OUTFIT) setConditionParam(rmale, CONDITION_PARAM_TICKS, -1) addOutfitCondition(rmale, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3}) local rfemale = createConditionObject(CONDITION_OUTFIT) setConditionParam(rfemale, CONDITION_PARAM_TICKS, -1) addOutfitCondition(rfemale, {lookType = math.random(136,142),lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3}) function onThink(interval, lastExecution) local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)] if (getBlue() == conf.maxplayers and getRed() == conf.maxplayers) then if (getGlobalStorageValue(running1) == -1 and getGlobalStorageValue(sto) == -1) then setGlobalStorageValue(running1,1) doBroadcastMessage("The Team Battle Event have started.And will end in "..stoptime.." minutes, unless one of the teams has killed all the oponents") addEvent(onStop, stoptime * 60 * 1000) for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid, joined) == 1 then if getPlayerSex(cid) == 1 then doAddCondition(cid, bmale) elseif getPlayerSex(cid) ~= 1 then doAddCondition(cid, bfemale) end doTeleportThing(cid, blueposition, FALSE) doSendMagicEffect(blueposition, 10) elseif getPlayerStorageValue(cid, joined) == 2 then if getPlayerSex(cid) == 1 then doAddCondition(cid, rmale) elseif getPlayerSex(cid) ~= 1 then doAddCondition(cid, rfemale) end doTeleportThing(cid, redpotision, FALSE) doSendMagicEffect(redpotision, 10) end end end end if getGlobalStorageValue(running1) == 1 then setGlobalStorageValue(running2,1) if (getBlue() >= 1 and getRed() < 1) then addEvent(onStopp, timebetween * 60 * 1000) doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team ,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes") elseif (getBlue() < 1 and getRed() >= 1) then doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes") addEvent(onStopp, timebetween * 60 * 1000) end for _, cid in ipairs(getPlayersOnline()) do if (getBlue() >= 1 and getRed() < 1) then if getPlayerStorageValue(cid,joined) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doRemoveConditions(cid, FALSE) doPlayerAddItem(cid, random_item, 1) doRemoveConditions(cid, FALSE) doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, joined,-1) setGlobalStorageValue(running1,-1) resetBlue() end end if (getBlue() < 1 and getRed() >= 1) then if getPlayerStorageValue(cid,joined) == 2 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doRemoveConditions(cid, FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doRemoveConditions(cid, FALSE) doPlayerAddItem(cid, random_item, 1) doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1) setGlobalStorageValue(running1,-1) setPlayerStorageValue(cid, joined,-1) resetRed() end end end end return true end ]]></globalevent> <globalevent name="Team" interval="3" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onThink(interval, lastExecution) local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)] if getGlobalStorageValue(sto) == 1 then if (getRed() > getBlue()) then doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes") for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid,joined) == 2 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doRemoveConditions(cid, FALSE) doPlayerAddItem(cid, random_item, 1) doRemoveConditions(cid, FALSE) doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, joined,-1) end if getPlayerStorageValue(cid,joined) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event") setPlayerStorageValue(cid, joined,-1) doRemoveConditions(cid, FALSE) end end addEvent(onStopp, timebetween * 60 * 1000) end if (getRed() < getBlue()) then doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes") for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid,joined) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doPlayerAddItem(cid, random_item, 1) doRemoveConditions(cid, FALSE) doRemoveConditions(cid, FALSE) doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, joined,-1) end if getPlayerStorageValue(cid,joined) == 2 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doRemoveConditions(cid, FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event") setPlayerStorageValue(cid, joined,-1) end end addEvent(onStopp, timebetween * 60 * 1000) end if (getRed() == getBlue()) then for _, cid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(cid,joined) == 2 or getPlayerStorageValue(cid,joined) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE) doRemoveConditions(cid, FALSE) doSendMagicEffect(getCreaturePosition(cid), 10) doRemoveConditions(cid, FALSE) setPlayerStorageValue(cid, joined,-1) doBroadcastMessage("Event max time ended.And niether of the teams won the event.Event will be reopened in ".. timebetween .." minutes") end end addEvent(onStopp, timebetween * 60 * 1000) end resetBlue() resetRed() setGlobalStorageValue(sto, -1) end return true end ]]></globalevent> <globalevent name="Broad" interval="90" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onThink(interval, lastExecution) if getGlobalStorageValue(running2) == -1 then doBroadcastMessage("O evento de batalha está aberto.O npc Eventer precisa de 2 times de 20 pessoas para iniciar a batalhe,ele esta na Arena Pvp que vai por teleport de Carlin. Ja tem "..getBlue().." players no blue team vs "..getRed().." players no Red team,o time vencedor sera premiado.") return true end return true end ]]></globalevent> <globalevent name="Karim" interval="40000" event="script"><![CDATA[ domodlib('football-lib') domodlib('tutorial_m') function onThink(interval, lastExecution) if getGlobalStorageValue(running1) > 0 then local blue = {} local green = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getCreaturePosition(pid),arena.frompos, arena.topos) then if getPlayerStorageValue(pid, joined) == 1 then table.insert(blue,getCreatureName(pid)) elseif getPlayerStorageValue(pid, joined) == 2 then table.insert(green,getCreatureName(pid)) end end end local greenn = table.concat(green,', ') local bluee = table.concat(blue,', ') for _, tid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(tid, joined) > 0 then doPlayerSendTextMessage(tid,19,'<<!-- Players left --!>>\n '..team1name..' team ('..#blue..') : '..bluee..'.\n '..team2name..' team ('..#green..') : '..greenn..'.') end end end return true end ]]></globalevent> </mod> Aqui você pode editar a recompensa: rewards_id = {2472}, -- Rewards ID Para adicionar mais ficaria assim: rewards_id = {ID DO ITEM,ID DO ITEM,ID DO ITEM}, -- Rewards ID espero que gostem e comentem! bjs :XTibia_smile: :tux:
    1 ponto
  7. Demonbholder

    Tibia Som V. 1.0 (Lua)

    Opa galera, tudo bem? Nesses últimos dias eu vim trabalhando em um projeto que eu já tenho em mente faz um tempo: um tibia som usando apenas a linguagem lua e suas bibliotecas auxiliares. Primeiramente gostaria de dizer que lua é um linguagem limitada, mesmo contando com suas bibliotecas auxiliares em C não se compara a própria linguagem C, entre outras. Leia tudo! Como funciona: Tanto o hoster quanto o jogador devem baixar arquivos para que o sistema funcione, porém, cada um irá baixar arquivos diferentes. O jogador irá abrir o programa e depois deve ativar a talkaction no jogo que irá dar inicio a conexão entre as duas redes. Depois, o jogador deve digitar sua conta e senha para confirmar a conexão. A partir deste momento, o programa estará em funcionamento. Informações: O programa ainda está em fase de testes, não tive a oportunidade de testar com Tibia MC ou até mesmo com duas conexões simultâneas, ou seja, duas pessoas usando o sistema. Peço que reportem qualquer bug para que eu o corrija imediatamente. Por enquanto, o máximo são 10 sons. Bibliotecas auxiliares: Foram utilizadas as bibliotecas ProteaAudio para reproduzir os sons e a biblioteca Socket para conectar as duas redes e possibilitar o envio de dados (TCP). Instalação: A instalação é a parte mais difícil do processo, fique muito atento pois qualquer nome de pasta que não esteja igual ao indicado irá debilitar o funcionamento do programa. Instalação para o Jogador Se você estiver jogando um OtServer que possua este sistema, siga os seguintes passos: Baixe o seguinte aquivo: http://www.4shared.c...ibia_Som_P.html Feito isso, para ativar o sistema, abra o arquivo Tibia Som.bat e, no jogo, use as palavras que irão ativar a talkaction para inciar a conexão. Após o inicio da conexão, digite a sua conta e senha e assim o sistema irá funcionar. Instalação para o Hoster Se você estiver hosteando um OtServer e deseja implementar o sistema, siga os seguintes passos: Baixe o seguinte arquivo: http://www.4shared.com/rar/AuijQwyB/Tibia_Som_H.html Agora, selecione as seguintes pastas: lua, mime, socket e os seguintes arquivos: lua.exe, lua5.1.exe, lua5.1.dll, lua51.dll e coloque-os na mesma pasta onde se encontra o interpretador (executável) e as dlls do seu OtServer. Feito isso, vá em data/globalevents/scripts e cole o arquivo gbevt.lua, depois vá em data/globalevents, abra o arquivo globalevents.xml e, entre duas tags, cole esta: <globalevent name="tibiasom" interval="3" event="script" value="gbevt.lua"/> Depois, vá em data/lib e cole o arquivo changer.txt, não se assuste porque ele está vazio, server apenas para trocar informações entre o OtServer e o interpretador avulso. Vá em data/talkactions/scripts e cole os arquivos talk.lua e sender.lua, depois vá em data/talkactions, abra o arquivo talkactions.xml e, entre duas tags, cole esta: <talkaction words="talk" script="talk.lua" /> Edição Jogador Se você seguiu os passos de instalação do jogador, agora poderá editar algumas configurações. Você tem a opção de editar os sons, porém, não a quantidade. Para fazer isto, abra a pasta songs. Para editar cada um dos sons, você deve substitui-los por um arquivo de mesmo nome e formato. Edição Hoster Se você seguiu os passos de instalação do hoster, agora pode e deve editar as configurações. Para editar as posições onde os sons vão ser reproduzidos, você deve editar dois arquivos: vá em data/globalevents/scripts, e abra o arquivo gbevt.lua. Você irá ver isto: tabmatch = { [{{x=130, y=40, z=5}, {x=160, y=60, z=7}}] = "{x=150, y=50, z=7}", [{{x=161, y=40, z=5}, {x=165, y=80, z=7}}] = "{x=170, y=70, z=7}" } Perceba estas duas tabelas: {x=130, y=40, z=5}, {x=160, y=60, z=7} O primeiro x é o número mínimo de posição x que o jogador deve estar para tocar o som referente a posição {x=150, y=50, z=7}. O seguindo x é o número máximo de posição x que ele deve estar para tocar o som. Isso se aplica ao y e o z também. Para adicionar novas posições (até 10), apenas continue seguindo o padrão da tabela, inserindo uma virgula no final de todos index, com exceção do último index. Por exemplo: tabmatch = { [{{x=130, y=40, z=5}, {x=160, y=60, z=7}}] = "{x=150, y=50, z=7}", [{{x=161, y=40, z=5}, {x=165, y=80, z=7}}] = "{x=170, y=70, z=7}", [{{x=166, y=100, z=5}, {x=190, y=190, z=9}}] = "{x=180, y=120, z=7}" } Tenha muito cuidado para que duas posições nunca se encontrem, caso aconteça, o sistema irá ser debilitado. Sempre que você editar o gbevt.lua, você deve, também, editar o sender.lua, que se encontra em data/talkactions/scripts. Nele, você também encontrará uma tabela: tab = { ['{x=150, y=50, z=7}'] = 'songs/song1.ogg', ['{x=170, y=70, z=7}'] = 'songs/song2.ogg' } Perceba esta tabela: {x=150, y=50, z=7} Esta tabela deverá ser igual a tabela que se encontra depois do sinal de "=" na tabela do arquivo gbevt.lua. Para edita-la, deve continuar o padrão da tabela, inserindo uma virgula no final de todos index, com exceção do último index. Vamos inserir um novo index considerando aquele exemplo usado na explicação do gbevt.lua: tab = { ['{x=150, y=50, z=7}'] = 'songs/song1.ogg', ['{x=170, y=70, z=7}'] = 'songs/song2.ogg', ['{x=180, y=120, z=7}'] = 'songs/song3.ogg' } Perceba que o song deve ser seguir a ordem crescente. Não esqueça que o máximo são 10 sons, a menos que o jogador também adicione mais sons na pasta songs. Não esqueça, também, de editar a tag em talkactions.xml: <talkaction words="talk" script="talk.lua" /> Caso deseje, edite onde está escrito talk, por qualquer palavra para que o jogador possa iniciar a conexão. Isso é tudo pessoal, espero que tenham gostado. Não esqueçam de reportar os bugs. Até. Sistema em fase de testes
    1 ponto
  8. Yalahars

    War Map {Zatec} 8.4

    Ola,galera vim dividir com vcs um map muito legal para 8.4... Botei algumas fotos do mapa pra vcs daem suas opiniões ... \/ TEMPLO,ETC : Temple.bmp TREINERS : Treiners.bmp LINK DOWNLOAD : Clique aqui SCAN : Clique aqui ESPERO QUE GOSTEM . COMENTEM ~~
    1 ponto
  9. Linnux

    Supreme Baiak V7.3 [8.6]

    Supreme Baiak V7.3 [8.6] Editadão (apropriado a exp alta) Supreme Baiak editadao, novos itens, monstros,comandos e mapa editado. Novos Itens (vips) Milenio Helmet Milenio Armor Milenio Legs Milenio Boots Milenio Shield Milenio Axe Novos Monstros Icyd Tripyd The Halloween Hare SuperNova e muito mais Novas Spells Nova Arena, VIP 4 Adicionada ao Mapa E muito Mais Créditos Linnux Jhosef Scan: [download]http://www.4shared.c...eBaiakv73.html?[/download] Scan http://www.virustotal.com/file-scan/report.html?id=12eed45461cdf0cfa4da5eb975cd91d3f7796fe44de526cc9786ead8cc44129d-1321126620 Senha do GOD 33345000/33345000 Gostou ??? Dá um :button_ok: ai ^^
    1 ponto
  10. Olá pessoal \o/. Hoje vim trazer um script que fiz atoa, porém, bastante útil. O script funciona assim : você dá um item diretamente a um player pré-determinado, ao invés de ter que ir ao player, jogar no chão e ele ter que pegar. Pode-se usar o script através da seguinte maneira : "/presente player,itemid ou itemname,quantidade". Por exemplo : /presente Player,crystal coin,100 ou /presente Player,2160,100. Então, sem mais enrolação, vamos ao script : Crie um arquivo chamando senditemtoplayer.lua e coloque isto dentro dele : function onSay(cid, words, param) if (param == "") then doPlayerSendCancel(cid, "É necessário escrever o nome de um player, e um item") return TRUE end p = string.explode(param, ",") local player = getPlayerByName(p[1]) local ret = RETURNVALUE_NOERROR local tmp = getCreaturePosition(player) if player then else doPlayerSendCancel(cid, "Este player não existe.") return TRUE end local create = tonumber(p[2]) if not create then create = getItemIdByName(p[2], FALSE) if(create == LUA_ERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este item não existe.") return TRUE end end local countitem = 100 if (p[3]) then countitem = p[3] end local item = doCreateItemEx(create, countitem) if(p[4] and getBooleanFromString(p[4]) == TRUE) then if(p[5] and getBooleanFromString(p[5]) == TRUE) then tmp = getPlayerLookPos(player) end ret = doTileAddItemEx(tmp, item) else ret = doPlayerAddItemEx(player, item, TRUE) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O ID: " .. p[2].." não existe.") else doSendMagicEffect(getCreaturePosition(player), 13) doSendMagicEffect(getCreaturePosition(cid), 12) doCreatureSay(player, "Você recebeu um presente do ".. getCreatureName(cid) .. " ", TALKTYPE_ORANGE_1) -- Aqui é a mensagem que o player receberá ao receber o item. return TRUE end return true end Vá em talkactions.xml e cole esta tag : <talkaction log="yes" access="5" words="/presente" event="script" value="senditemtoplayer.lua"/> Você pode livremente editar o acess mínimo, ou o que vai aparecer quando você der um item ao player. Então, é isso pessoal, muito obrigado pela atenção a vocês que leram até aqui.
    1 ponto
  11. Recomendado pra scripters com um pouco de experiência. Essa é uma Função que adiciona Age (idade) em seus pokemons, ela faz com que seu pokemon comece com 0 anos e 0 meses e 'cresca' de acordo com o tempo, quanto mais velho ele aumenta seu dano critico. A função é minha, do Pokemon Fight V3, adptei-la para o Dash Advance, para adicioná-la corretamente é preciso alterar o catch, por isso pode ser bem chato pra quem não entende. Vamos lá. ------------------------------------------------------------------------------------------------------------------------------------------------ LIB: ------------------------------------------------------------------------------------------------------------------------------------------------ . Abra data\lib\catch system.lua . Procure por local happy = 140 .adicione em baixo: local day = os.date("%d") local year = os.date("%Y") local month = os.date("%m") .ficando assim . Procure por doItemSetAttribute(item, "description", description) .adicione em baixo: doItemSetAttribute(item, "pokeballinfo", "".. day .."/".. month .."/".. year .."/"..getCreatureName(cid).."") -- CATCH INFORMATION: dia/mes/ano/player .ficando assim . Crie data\lib\age system.lua ------------------------------------------------------------------------------------------------------------------------------------------------ CREATURESCRIPTS: ------------------------------------------------------------------------------------------------------------------------------------------------ . Abra \data\creaturescripts\scripts\look.lua . Em "if isPokeball(thing.itemid) then" Procure por if getItemAttribute(thing.uid, "gender") == SEX_MALE then str = str.."It is male." elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then str = str.."It is female." else str = str.."It is genderless." end .adicione em baixo . Ficando assim ------------------------------------------------------------------------------------------------------------------------------------------------ OBS: Apenas os pokemons de catch vao ter idade, outros pokémons como os de quests e box devem ser alterados em seus respectivos scripts, se tiver tendo problemas remova a linha indicada acima p/ desativar o sistema. OBS2: O Look está configurado pra mostrar quando se olha na pokeball, quem quiser que mostre idade no poke, podendo assim ver de outros players me mande PM e REP+ ^^. ------------------------------------------------------------------------------------------------------------------------------------------------ Pra mais actions e scripts de pokemon dash veja minha assinatura! talkactions.rar
    1 ponto
  12. site do projeto aqui E ae galera,vim aqui apresentar meu OT Pokemon,o Pokemon World adventure. O que contem no server: Surf 100% Fly 100% Ride 100% Catch 100% Stones 100% Teleport 100% Fishing 100% e balanceado Bike system 100% Todos os pokemons, com ataques, vida, e hit's balanceados Pokemons Adicionados : Politoed, Corphish, Crawdaunt, Riolu, Lucario, Smoochum, Mime jr, Magnezone, Crobat, Aipom, Ambipom, Duskull, Dusclops, Shuppet, Banette, Buizel, Swablu, Togepi, Togetic, Celebi e Lugia. Para teleportar diga !teleport "nomedacity, exemplo : !teleport "saffron Arena pvp, em todas cidades (como se fosse um ginásio) Charmander, Squirtle e Bulbasaur como pokemons iniciais. Elite Stone. (a venda no stone seller por 50hd) Novas magias. Stones dropando de pokemons selvagens. Mapa e Hunt's editadas Novas hunt's adicionadas Loot dos pokemons arrumados. (não está 100% mais dá pro gasto.) Alguns pokemons evoluindo com 2 stones, exemplo : Tentacool + water stone + venom stone = Tentacruel, Nidorino + venom stone + earth stone = Nidoking. E mais algumas coisas. E mais de 10 missoes disponiveis. Imagens: Download: Pokemon world adventures.zip Para começar a jogar: baixe o jogo; abra o tibia abra o arquivo tmipc chamado pokemon world crie sua conta se divirta. Para os primeiros 10 que se cadastrarem no ot pokemon,ganharão 5 bolas mestre de graça! ip: 5.51.113.47 se usa hamachi: servidores: otpokemon shiny senha:19981998 OT que usei como base http://www.xtibia.co...pokemon-flash/. Se voce não consegue criar uma conta,me envie uma mensagem com o nome que voce quer pra ela. Obs:podem baixar,não contem virus!!!!!! Obs denovo:Postem Por favooorrrr.
    1 ponto
  13. Doidin

    [Talkaction] Comando De Invasão!

    Fala galerinha XTibiana, Bom agora são exatamente 06:23 da manha e eu estava sem nada pra fazer, então tava vendo as raids de um servidor meu e resolvi criar um script simples porem um pouquinho diferente de invasão por Talkaction! Bom vamos logo ao script: Vá até a pasta Talkactions abra o arquivo Talkactions.xml e adicione esta Tag: <talkaction log="yes" access="4" words="/invas" event="script" value="invas.lua"/> Agora vá até a pasta Scripts dentro da pasta Takactions, crie um arquivo chamado invas.lua e adicione isto dentro: -- [( Invasion Talk created by Doidin for XTibia.com )] -- function onSay(cid, words, param, channel) local pos_invas = {x=138,y=66,z=7} -- Coordenada da invasão! (Basta configurar essa) local monster1 = "Vampire Bride" -- Boss que irá aparecer na invasão! local monster2 = "Vampire" -- Monstro de apoio que irá aparecer na invasão! local mensage1 = "A powerful vampire is invading the north of Carlin with intent to destroy everything!" -- 1º Mensagem da invasão! local mensage2 = "It seems not to reach monsters, come fight!" -- 2º Mensagem da invasão! broadcastMessage(mensage1, MESSAGE_EVENT_ADVANCE) doSummonCreature(monster1, {x=pos_invas.x, y=pos_invas.y, z=pos_invas.z}) doSummonCreature(monster2, {x=pos_invas.x, y=pos_invas.y+3, z=pos_invas.z}) doSummonCreature(monster2, {x=pos_invas.x+2, y=pos_invas.y, z=pos_invas.z}) doSummonCreature(monster2, {x=pos_invas.x, y=pos_invas.y, z=pos_invas.z-5}) addEvent(broadcastMessage, 20*1000, mensage2, MESSAGE_EVENT_ADVANCE) end Bom é isso ai, tem gente que vai dizer que prefere as raids, mais tem outros que irá preferir assim... ;] Abraços...
    1 ponto
  14. E ae tudo bom? tenta nesse topico axo que tem oque vc procura link:http://www.xtibia.com/forum/topic/169613-aol-especial/ flw :]
    1 ponto
  15. as variáveis de uma tabela são chamadas de index. Para descobri-los, você pode passar um pairs na tabela e printar o index. Fiz uma função aqui: function getIndex(value) local str = nil if type(value) == "table" then for a, b in pairs(value) do str = str and str .. "," .. a .. "=" .. b or a .. "=" .. b end end return str end Usa por exemplo: print(getIndex(getPlayerPosition(cid))) vai retornar uma string, por exemplo "x=160, y=50, z=7" (não necessariamente nesta ordem). Pode usar com qualquer tabela que os index e os valores não sejam outras tabelas.
    1 ponto
  16. tenta nesse topico com o script do digao... é mais ou menos oq vc kér link : http://www.xtibia.com/forum/topic/168503-ajuda-teleporte-que-nasce-sozinho/ flw ;]
    1 ponto
  17. Olá galera venho aqui trazer um tutorial, que achei simples e interessante. Bom vamos lá... O script não foi feio por mim, foi feito pelo Aleh, os créditos são todos dele. Como você pode ver na foto é um script que mostra os três itens mais populares na loja sms. Abrao seu shopsystem.php e encontrar PHP code: elseif ( $ buy_offer [ 'type' ] == 'item' ) { e abaixo desse código: PHP code: $ SQL -> query ( $ save_transaction ); cola PHP code: $ Comprou = "UPDATE` z_shop_offer `SET` `= comprou comprou + 1 WHERE` id `= ' . $ buy_offer [ 'id' ]. ';' ; $ SQL -> query ( $ comprou ); Agora encontrar (~ linha 167) PHP code: unset ( $ _SESSION [ 'viewed_confirmation_page' ]); $ main_content .= '<h2> <center> Bem-vindo ao' . $ config [ 'server' ] [ 'servername' ]. ' Loja </ center> </ h2> '. ; e cole este: PHP code: $ Query = $ SQL -> query ( "SELECT * FROM` WHERE `z_shop_offer offer_type` NOT LIKE 'container' AND ORDER offer_type `NOT LIKE 'changename' por 'comprou DESC LIMIT` 3 " ); foreach ( $ query como $ linhas ) { if ( is_int ( $ number_of_rows / 2 )) { $ bgcolor = $ config [ 'site' ] [ 'darkborder' ];} else { $ bgcolor = $ config [ 'site' ] [ 'lightborder' ]; } $ number_of_rows + +; $ resultado .= " <td bgcolor = ' . $ bgcolor . '> <center> <"img src = imagens / artigos / ' . $ linhas [ 'id' .] . "gif"> < br /> <br /> Nome Oferta: '<b> . $ linhas [ 'offer_name' ]. '</ b> <br /> Pontos: <b> ' . $ linhas [ 'pontos' ]. '</ b> <br /> <form action="index.php?subtopic=shopsystem&action=select_player" method=POST> <input type = nome "escondido" = "buy_id" value = "" . $ linhas [ 'id' ]. »"> <input type = "submit" value = "Comprar" . $ linhas [ 'offer_name' ]. '"> </ form> </ center> </ td> ' ; } [/font] [font=comic sans ms,cursive]main_content $ .= "borda da tabela < = \ "0 \" cellspacing = \ "1 \" cellpadding = \ "4 \" width = \ "100% \"> <tr bgcolor = " . $ config [ 'site' ] [ 'vdarkborder' ]. "> <td class=\"white\" colspan=\"3\"> <center> <strong> Os itens mais populares da SMS Shop! </ strong> </ center> </ td> </ tr> <tr bgcolor = " . $ config [ 'site' ] [ 'vdarkborder' ]. "> <td class=\"white\" width=\"33%\"> <b> <center> # 1 </ center> </ b> </ td> <td class=\"white\" width=\"33%\"> <b> <center> # 2 </ center> </ b> </ td> <td class = \ " branco \ "Largura = \" 33% \ "> <b> <center> # 3 </ center> </ b> </ td> </ tr>" . $ result . "</ table> <br /> " ; e por fim adiciona essa consulta no banco de dados: PHP code: ALTER TABLE ` z_shop_offer ` ADD ` comprou ` INT ( 11 ) NOT NULL PADRÃO '0 ' ; Se gostou dá REP+ Créditos .:Aleh:.
    1 ponto
  18. ninu

    [8.54] Pokémon Ownz V1.0 By Ninow

    Usa a [unlockpower] Dark Stone nele que ele vira Giratina normal depois usa Reliquia para virar Origin.
    1 ponto
  19. Lordfire

    Duvida Com Memoria

    Seguinte: é que o DDR significa double data rate, ou seja, a memória transfere duas mensagens por ciclo (Hz). Então, ela é sim de 667 MHz, mas por causa desse DDR ela é na prática de 1333 MHz. Teus pentes já são de 1333 MHz.
    1 ponto
  20. Lordedosots

    [8.60]Baiak Nando 0.0.3

    valeu brenerlm
    1 ponto
  21. adelso10

    Quero Criar Uma Nova Porta De Level

    tem procure no items.xml gate of experience veja o id em seguinda va no actions.xml procure o id do item e depois coloque o id da sua porta e estou achando que essa porta ja esta added no actions.xml mais tente isso se funcionar rep+ ae ^^.
    1 ponto
  22. marcosgod

    Baiak Com Vip2 [Editado]

    o templo ate focoubom mais eu acho que poderia ter mais detalhes
    1 ponto
  23. Leoprotons

    [Encerrado] Erro Server Cai

    Sim, depois de abrir aperte Alt + e cole o comando e aperte em F9.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...