Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 04/24/11 em todas áreas
-
[8.54] Mapa Pokemon Betinhowz666
Daniel S e um outro reagiu a betinhowz666 por um tópico no fórum
Hello Como prometido irei disponibilizar agora o download do mapa pokemon que estive trabalhando. Coloquei as houses mais não o respaw. Apresentações ? Vamos lá para uma prévia das cidades. As hunt's vocês terão que baixar para conferir CITY 1 CITY 2 CITY 3 CITY 4 Me ajudem a atingir 200 REP +, Que farei este mapa ficar muito melhor do que está. Antes era 150 REP+, Mas por conta de alguns moderadores me tirarem REP + dizendo que eu tinha feito outra conta para me dar REP + agora será 200. Segue o download do mapa e o que precisa para que você abra-o MAPA BETINHOWZ666 SPR POR PIRADECO Créditos: PeeWee - por fazer parte do mapa Piradeco - pelas .spr e .dat betinhowz666 - por estar editando. (EU)2 pontos -
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
-
Subwat Server V16 100 % Sem Bug Do God
Lucas2012Ramos reagiu a xXLukiinhasXx por um tópico no fórum
Bom Galerinha estou postando esse mapa que arrumei aki como forma de protesto contra akeles noobs que jogão em ot server's subwat e sabem onde estão os famosos bug's de virar god, então revoltado com isso abrir meu editor e arrumei o bug do meu mapa v16, percebendo que comigo funcionou resolvi aqui compartilhar. Obs: so mudei um pouco o templo nada de muito drastico. o bug estava junto ao Rei Gean Riot da 3 cidade Ss do bug: E so ir em um server não editado e dar use Agora sem o Bug Modifiquei um pouco o mapa Novas Ss: Templo: Templo Parte de Cima: Teleportes Free: Teleportes Vip: Teleportes Super vip: Também Esta com o Erro da DB arrumado Para quem gostou Aki Vai o download: Download Aki Scan: Scan Aki acc do god: god/god Bom como este e meu primeiro tópico aki espero estar na aréa certa. sei tb que não tenho autorização de ninguém para editar o mapa então os creditos são são todos ao criador do mapa Gostou +REP :button_ok: :weight_lift: Testem Ai qualquer erro meu e-mail: lucas.theus@hotmail.com1 ponto -
Entendendo scripts da Pasta Data Nessa Serie de Tutoriais vou explicar e faze-los entender a base dos scripts em lua e xml. Desde você que não sabe nada de scripts e você que está num estagio médio A idéia aqui é você aprender e saber o que e não pode fazer, já que a criatividade é sua parte Esses tutoriais serão divididos em 14 partes, começando a explicar o if, else até os esquemas mais avançados. A vantagem daqui é que você poderá testar seus scripts no otserver e sabendo o que deve fazer fica mais fácil do que fazer coisas a esmo... Lembrando que você não ficará expert em LUA e sim em scripts de Otserver. Links em negrito já estão prontos ! A divisão é : Tutoriais Parte I – Básico do básico de Lua Parte II – Funções Lua Parte III - Monstros Parte IV - Raids Parte V - Intermediario de Lua Parte VI - Spells e suas grandes funções Parte VII – Actions Parte VIII – Movements Parte IX – A magia dos NPCS Parte X – Mega Quests Parte XI – Itens e grandes idéias Parte XII – Vocations e outfits Parte XIII –Sqlite no Forgotten Server Provas : Prova I - Script em Actions Tutoriais baseados no The Forgotten Server 0.3.0 Alpha 4 +. Use essa que por enquanto é a melhor distro disponivel Um pouco sabe os tutoriais não feitos: Talk Actions : Será um grande tutorial ensinando como utilizar a maravilha das talk actions. Mega Quests: Ensinará a fazer quests que incluem actions, movements,npcs, talk actions e algumas ideias e possibilidades. Darei como exemplo a segunda maior quest do meu ot caseiro. E ainda um tutorial completo de como usar o Quest Log. items e Grandes ideias: Ensinará como criar novas armas, itens para quest, tudo isso simples e facil, o que fará de seu ot muito especial. Poderá e haverá mais coisas que na hora lembrarei. Isso é só um aperitivo1 ponto
-
Olá Xtibianos, Venho trazer esse tutorial de como Adicionar novas Sprites no seu cliente, de maneira pratica e fácil. Tenha um Spr Editor, aconselho usar NoxSpr. Primeiro Passo: Abra o Spr Editor e selecione a opção Load Items e selecione a Spr de seu cliente, após selecionar basta dar Abrir. Segundo Passo: Após ter aberto ele ficara igual a da imagem abaixo(vale lembrar que usei a spr do cliente 7.6 mais não mudará nada das outras versões). Vejam que na foto tem o número 1 com uma flecha clique aonde está circulado com vermelho até que chegue na última aba. Após estar ultima aba clique nela(caso não saber qual é a aba é do número 2 da foto). Terceiro Passo: Vejam que na foto tem sempre fundo rosa com uns quadrados , esses quadrados são espaços vazios, não tem limite de sprites a serem adicionadas caso a pagina seja completada será criada 1 nova. Clique em Add Sprite. Após isso será aberta 1 caixa para você selecionar qual sprite você quer colocar( Não esqueça fundo dessa sprite tem que ser rosa caso ele não ocupe todo espaço do 32 x 32 da imagem. Após selecionado a Sprite clique em Abrir. Quarto Passo: Veja que sua sprite foi adicionada(no caso a minha foi 1 bola de futebol). Após adicionado as sprites que você quer clique Save Items e salve em qualquer pasta(não salve encima da que está no cliente). Essa foi a parte de como adiciona uma imagem na tíbia.spr Na segunda Parte do tutorial será ensinado como colocar sua spr na tíbia.dat. Download Spr Editor: Scan: Créditos: PeeWee Criador do NoxSpr1 ponto
-
M1 Á M12 100%
amoxicilinaaaa reagiu a Redspark por um tópico no fórum
Eaí galera, o M1 á M12 totalmente configurado com todos os lendários mais conhecidos (Zapdos, Moltres, Articuno, Mew e Mewtwo), que muita gente ainda está procurando. [Download] [Tutorial de Instalação] [Créditos] [Aviso] Qualquer bug, favor reportar! Obrigado!1 ponto -
Matemática + Lua
RigBy reagiu a Demonbholder por um tópico no fórum
Matemática + LUA Faaaala galera! Tudo bem? Espero que sim, pois precisarão de muita atenção para entender algumas partes deste tutorial. A matemática é algo que nos acompanha no dia-a-dia, realmente muito importante, principalmente na programação. É indiscutível e concordável entre todos os programadores que um dos fatores de um bom profissional da área é o domínio da matemática! Bom, este tutorial vai ser para mostrar um pouco apenas da importância desta na linguagem LUA, ainda que se você tem experiência, provavelmente já percebeu isto. Sinais matemáticos simples Começando com os sinais matemáticos, o básico de lua e da matemática, são eles: + Soma - Subtração * Multiplicação / Divisão ^ Exponenciação % Módulo Onde o módulo é definido como: x % y = x – math.floor(x/y)*y A raiz quadrada pode ser definida como: x^(1/2). Pode-se chegar ao valor da raiz cúbica deste jeito: x^(1/3) . E assim por diante. Os sinais de comparação também são básicos em lua, ainda sim, são bem importantes e são usados para comparar dois valores numéricos (exceto == e ~= que podem comparar qualquer valor). Porcentagem Porcentagem é bastante usada em lua, pois é um artifício a ser usado em várias funções que envolvem valores numéricos. A porcentagem não é nada mais que regra de três, exemplo: 100% - 200 25% - x Neste caso, temos o valor de cem por cento e queremos o valor de vinte cinco por cento. Para isso, cruzamos os valores. Então a seguinte conta é feita: 100x = 5000 x = 5000/100 x = 50 Logo, 25% de 200 é 50. tonumber Existe uma função em lua, que tenta fazer a conversão de alguma string para valor numérico, esta função é chamada de tonumber. É uma função clássica de lua, onde ela faz a conversão, de uma string, para um valor numérico, por exemplo: tonumber(“2”), ela converte para 2. Simples, no entanto útil. Vamos usar dando um exemplo de Ot Server. Em um comando de talkaction, os parâmetros são strings, mesmo se forem números, assim, para compará-los com outros números, é necessário esta conversão. Para curiosidade, a função tostring faz o inverso, exemplo: tostring(2), retorna “2”. Funções math Para mostrar a importância da matemática em lua e em outras programações, existem as funções math que são funções matemáticas ou diretamente relacionadas a ela. Sinceramente eu não domino todas, então vou explicar as mais importantes por agora, são elas: Math.ceil Math.deg Math.exp Math.floor Math.ldexp Math.log Math.log10 Math.modf Math.pi Math.pow Math.rad Math.random Bom, estas serão as funções explicadas neste tutorial, onde eu não explicarei as funções de seno, cosseno e tangente para não deixar o tutorial uma apostila. Primeiro, antes de começar a explicar estas funções, vou explicar o que seria um logaritmo, explicando como resolver-lo por definição, explicar o Número de Euler e explicar o que é um radiano. Logaritmo: Logaritmo é um conteúdo do ensino médio considerado um tanto complicado. Portanto, ensinarei apenas o método da resolução pela definição, vamos lá: Um logaritmo contém três partes, são elas a base, o expoente e o próprio logaritmo. Dado o logaritmo abaixo: Log100 = x 10 A base é 10, x é o expoente e o logaritmo é log100. A conta deve ser feita deste jeito: Base elevada ao expoente é igual a logaritmo. Ou seja x 10 = 100 x = 2 Pronto, o logaritmo de 100 na base 10 é 2. Esse é o método da definição do logaritmo. Número de Euler: O número de Euler é um número dado em homenagem a um matemático chamado Leonard Euler, suíço, nascido no século XIII. É um número irracional, aproximadamente é 2,718281828459045, ou, às vezes apenas 2,718281828459. O número de Euler é comum ser chamado de e. Também é à base do logaritmo natural. Radiano: Um radiano é a unidade de medida no Sistema Internacional de Unidades de um ângulo plano. Usando um circulo como exemplo, nós teríamos o eixo da circunferência, sendo a circunferência a linha traçada em volta do circulo. A distancia desde o eixo deste circulo até a circunferência é o raio. Quando a distancia entre duas linhas traçadas a partir do eixo até a circunferência for igual ao raio, o ângulo entre estas duas linhas vai ser 1 radiano. É importante saber que 1 radiano é, aproximadamente, 57.295779513082º. Math.ceil Explicado como funcionam os logaritmos, um radiano e o número de Euler, vamos começar explicando as funções matemáticas. O math.ceil faz uma abreviação de qualquer número decimal, arredondando este para o próximo numero inteiro maior que ele. Usamos assim: math.ceil(1.5), ele retornará 2. Portanto, o math.ceil retorna o inteiro maior que o número decimal em seu parâmetro. Exemplos: Math.ceil(7/2) - 4 Math.ceil(16/3) – 6 Math.deg O math.deg faz a conversão de um ângulo dado em radianos para grau. Por exemplo, 1 radiano é, aproximadamente, 57.295779513082º. Exemplos: Math.deg(2) - 114.59155902616º Math.deg(4) - 229.18311805233º Math.exp Considerando que o número de Euler é chamado de e, esta função faz o número de Euler elevado a um expoente x. Usando o math.exp(x), ele eleva o e na potencia de x. Por exemplo, math.exp(x) faz a seguinte operação: x e Exemplos: Math.exp(2) - 7.3890560989307 Math.exp(10) - 22026.465794807 Math.floor O math.floor é semelhante ao math.ceil, ele ignora os valores fracionários de números decimais e considera apenas o valor integral. No entanto, esta função arredonda o número para um valor menor, inteiro, que este. Por exemplo: math.floor(1.5), retorna 1. Exemplos: Math.floor(20/3) – 6 Math.floor(9/2) – 4 Math.ldexp Esta função é originada de uma fórmula, contendo dois parâmetros. A função eleva o número 2 a potencia do segundo parâmetro, feito isso, o multiplica pelo primeiro parâmetro. Por exemplo, math.ldexp(5, 3), primeiro é elevado 2 na potencia 3 e depois multiplicado por 5. 2³ = 8 8*5 = 40 Math.ldexp(5, 3) = 40 Exemplos: Math.ldexp(10, 7) = 1280 Math.ldexp(40, 2) = 160 Math.log Ao contrário do que o senso comum diz, esta função não lhe permite escolher um logaritmo e retornar o expoente a qual sua base deve ser elevado para ser igual e ele, no entanto, retorna a quanto o número de Euler deve ser elevado para que resulte no seu logaritmo. Por exemplo, math.log(148.41315910258), retornará 5, pois 2,718281828459045 elevado na 5º potencia é igual a 148.41315910258. Definição do logaritmo acima: Log148.41315910258 = x 2,718281828459045 x 2,718281828459045 = 148.41315910258 x = 5 Math.log10 Esta função é uma função relativamente simples comparada com a de cima. Pois ao invés de assumir o número de Euler como base do logaritmo, ela assume 10 como esta. Por exemplo: math.log10(100), seria processado assim: Log100 = x 10 x 10 = 100 x = 2 Exemplos: Math.log10(1000) – 3 Math.log10(0.1) – (-1) Math.modf Esta é outra função simples de se compreender, ela retorna dois valores, o primeiro é a parte intregal do parâmetro e o segundo é a parte fracionária. Dado o exemplo: math.modf(1.5), ele retorna primeiro 1 e depois 0,5 pois 1 é a parte integral do número e 0,5 é a parte fracionária. Exemplos: Math.modf(7.5) - 7 & 0,5 Math.modf(92.8) – 92 & 0,8 Math.pi A função retorna o valor de PI é um número como o número de Euler, ou seja, um número importante e único na matemática. É usado para medir várias figuras geométricas. É referente a letra p no alfabeto grego, e tem o valor aproximado de: 3,14159265 Math.pow A função representa a seguinte conta: y x Ou seja, x elevado na potencia y, onde x é o primeiro parâmetro e y o segundo. Por exemplo, math.pow(2, 3) resulta 8. Exemplos: Math.pow(3, 2) - 9 Math.pow(5, 3) – 125 Math.rad É a função contrária de math.deg, faz a conversão de um ângulo dado em graus para radianos. Por exemplo, 1º é aproximadamente, 0.01745329 radianos. Exemplos: Math.rad(30) - 0.5235987755983 Math.rad(360) - 6.2831853071796 Math.random Para finalizar, a função math.random escolhe um número inteiro entre o arredondamento do primeiro parâmetro e o arredondamento do segundo. Sendo este arredondamento semelhante ao math.floor. Por exemplo, math.random(1, 5), processaria o seguinte: 20% - 1 20% - 2 20% - 3 20% - 4 20% - 5 É importante ressaltar que lua é uma linguagem semi-randomica. Exemplos: Math.random(1, 100) Math.random(5, 18) Fontes: Vou colocar aqui as fontes de onde eu recorri para escrever tudo isso acima: Manual Lua Wikipédia Logaritmo Wikipédia Radiano Wikipédia Número de Euler Tutorial exclusivo XTIBIA Bom, é isso, o tutorial foi feito inteiramente por mim, espero que gostem e aproveitem, até mais. Este tópico recebeu destaque em nosso portal!1 ponto -
- Mix Yourots - ~||0.0.1||~ *Contém apenas 2 cidades por enquanto. *Área de teleports para as hunts. *Sistema de Prisão. *Por inquanto temos as principais quests como: Pits of Inferno (POI), Demon Helmet, Annihilator, Inquisition, entre outras. *Soft boots pode ser recarregada pelo NPC Jenny que fica ao sudeste da Mix City. *Itens e monstros do update estão 100% completos. *Magias totalmente balanceadas seguindo o padrão do Tibia Global. *Addons do update estão 100%. *Sistema de voar (Créditos ao Forcera). *Distro TCS modificado com amplas proteções - Totalmente Estável. *Highscores. *Bed System 100%. ~||0.0.2||~ *Agora você pode logar com 4 protocolos do Tibia: 8.54 | 8.55 | 8.56 | 8.57 *3 Cidades (Mix City - Vip City - Thunder City). *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Quests que não funcionavam, agora estão 100%. *Mix City com 51 casas a disposição. *Vip System (Comando para Player: !vipdays | !buyvip || Comando para GOD: /addvip | /delvip) *Básico sistema de montaria. *Reformulação de algumas Hunts. *Reformulação da entrada da Pits of Inferno Quest (POI). *Algumas hunts para a cidade vip. *Balanceamento das vocações. *Alguns bugs foram corrigidos. ~||Patch1||~ *Erros no Vip System arrumados. Agora está 100%. ~||0.0.3||~ *Nova área de Teleports. *MEGA reformulação da cidade principal e suas proximidades com o máximo de RPG. *Reformulação de algumas Hunts. *Novas caves. *Tiquanda foi totalmente reformulada com o máximo de RPG. *Todas as caves estão com o máximo de RPG. *Modificaçõs no distro, está 100% estável. *Quest de pequeno port agora estão funcionando. *Bug no npc que não vendia rods e wands. *Pequenos bugs corrigidos. *Inquisition Adicionada. *Protocolo 8.60. Não temos ainda as features do update pois a cipsoft colocou uma proteção, em breve já estará tudo completo. ~||0.0.4||~ *Protocolo 8.60 *Todos os possíveis debugs foram arrumados. *Todas as features do update incluindo items, outfits, monsters, novo sistema de potions e runas foram adicionados. *Items novos funcionando perfeitamente com seus atributos. *Sistema de voar foi retirado. *Alguns bugs foram arrumados. ~||1.0.0||~ :star: *Novas áreas de hunt. *Duas novas cidades: Saaha e Icya *Demon Oak Quest foi adicionada. *Novas hunts na Vip City. *Alterações no distro. *Várias hunts foram reformuladas. *Thunder City foi desativada pois iremos reformular ela completamente. *Pequenos bugs foram corrigidos. - Fotos: *Templo *Saída sul de Mix City. *Npc vendedor de food. *Depot *Annihilator Quest *Entrada da cave de Demons. *Hydras *Barco para a Vip City. *Demon Helmet Quest *Inquisition Quest *Algumas das features do update 8.60 *Nova city: Saaha *Nova city: Icya *Nova hunt de hydras *Ghastly Dragons igual ao Tibia Global *Demon Oak Quest - Account do GOD Mix: Account: god Password: god Download: Clique aqui para fazer o Download Scan: Clique aqui para ver o Scan Obs: Encontrou algum bug? Relate neste tópico, para que possamos melhorar a cada dia o Mix Yourots. Portal Mix Soft1 ponto
-
Construções No Tibia: Templos, Telhados, Casas, Detalhes, Etc.
furlanetto reagiu a Alissow por um tópico no fórum
Atenção! Este tópico contém muitas (25 imagens = 41.559.864 bits) imagens, algumas em tamanho G, então se alguma delas não carregar, atualize a pagina no seu navegador. Obrigado pela atenção. Imagem por: Kaonic [Construções] Construções no Tibia são como na vida real, não se pode viver sem elas. No inicio o jogador nasce no templo, que é talvez o lugar mais importante e visitado do servidor, todos passam por ele no começo e é onde você renasce depois de morrer, também é onde você foge daquele Power abuser fdpfdpfdpfdp. Em segundo lugar na escala de importância vem o Depot, é onde você guarda seus itens mais preciosos (se você não tiver uma casa), onde você faz aquela feirinha maneirinha pra vender seus itens. Temos também as casas, que, com camas, servem pra regeneração fácil e rápida de stamina ou soul, servem pra guardar seus itens, fazer inveja em quem você odeia, brincar de casa da Barbie, etc. Enfim, construções no Tibia são mesmo importantes. Templos: Começaremos pelo, na minha opinião, o lugar mais importante de um servidor. Como você já sabe, templos são aqueles lugares sagrados onde os players nascem e renascem. Claro que esta não é uma construção, mas templos não precisam ser necessariamente quadrados, simétricos e "sem vida". A historia do templo acima, por exemplo, diz que no passado ele era um "templo de verdade", mas devido a ataques simultâneos de bombas atômicas Magos, o templo foi destruído, e mesmo assim os habitantes não quiseram abandoná-lo, por ser um templo sagrado e possuidor de forças sobrenaturais. Templos e construções são diferentes em cada tipo de cidade, cidades desérticas tendem a ter templos com paredes no estilo "egypt wall" e "egypt Stone wall", cidades em selvas usam templos de bambu, as construções em cidades de gelo possuem paredes de madeira, e assim sucessivamente. Dica: Em cidades pequenas, templos devem ser pequenos, e em cidades grandes, templos devem ser grandes, respectivamente. Este é o templo do popular Alissow OTS, como podem ver é um templo simples e totalmente retangular, mas mesmo assim não é feio – pelo menos eu acho que não é. Vocês aprenderão mais sobre construções quadradas um pouco mais abaixo. Casas: As casas precisam ter: - Pilares, para garantir o sustento da construção, como está indicado em vermelho. Isto não é obrigatório, apenas se tiver algo "solto por ai" que necessite alguma sustentação. - Janelas nos telhados e nas paredes – indicação em verde - dão um charme a mais na sua casa, além de permitir a visualização dos players de dentro e fora da mesma. - Uma porta, logicamente, para o player entrar e sair da casa. - E por ultimo enfeite da maneira que quiser, sempre respeitando a coerência (Leia Detalhes mais abaixo). Telhados: Em sua construção você pode usar diversos tipos de telhados, em casas pequenas eu aconselho o seguinte tipo de telhado: Em construções maiores, é aconselhável usar um telhado baixo, pois o alto pode ficar alto demais, resultando num mapa feio. Também é válido utilizar pedras e plantas nos telhados. Detalhes: Detalhes em construções são uma coisa muito simples, geralmente usa-se tochas, janelas, portas, musgos, flores, plantas, etc. OBS: Tochas em paredes de madeira são prejudiciais à saúde das mesmas, por isso o ministério da saúde recomenda o uso de lâmpadas. Veja alguns exemplos de detalhes nas construções: Observe que nesta casa temos plantas nas paredes, plantas no telhado, além de musgos nas paredes e uma calha com um barril de água, muito comum em casas de toda parte do mundo. Rçrç Nesta, temos um contraste de paredes, além de musgos e chaminés nos telhados. Construções Grandes: Os castelos (eu adoro esse mapa) também fazem parte do mundo tibiano, os reinos precisam ter uma fortaleza que sirva de uma moradia digna para o seu rei e seus seguidores. Observe como as paredes foram usadas. Tamanhos. Eu vejo bastante gente fazendo casas extremamente gigantescas, quadradas ou curvas e com apenas uma porta e uma janela. A não ser que você queira criar monstros lá dentro, 13x13 SQMs já é grande o suficiente para uma casa grande e 6x7 para uma casa normal. Se você não sabe o que é SQM, preste atenção: SQM significa Square Metre, que em português, significa Metro quadrado. Passando para o Tibia, um player ocupa um SQM, assim como um Demon (ou qualquer outro monstro) também ocupa um SQM. Um pedaço de chão ou uma parede Também possuem 1 SQM. Uma casa grande no tamanho certo. Uma casa grotesca do jeito totalmente errado. Quadrado X Curvo: Quando se fala em construções quadradas a primeira coisa que vem à cabeça é que é um mapa muito simples, feio e... quadrado (what?), o que não é verdade. Construções curvas atrapalham a jogabilidade, acompanhe. Mapa 1: A primeira vista você poderá dizer que é um mapa muito simples, feio e quadrado, continue acompanhando. Mapa 2: Qual dos dois mapas é mais bonito? Qual deles suporta mais items? Com certeza é a casa quadrada certo? Por isso pense bem antes de querer fazer algo "incomum". Isso não quer dizer que deve-se fazer tudo quadrado, algumas curvinhas às vezes também deixam um mapa bonito: Aplicando a "técnica do olha e faz" também é possível fazer lindas construções e com formas diferentes. Observe: Depois: É certo que um servidor sem construções não funcionará como deveria, ele ficará totalmente incompleto, os players precisam de um lugar bonito pra renascer, precisam de um depósito seguro para guardar seus items, precisam de casas para viver e de qualquer forma essas construções precisam ser bem feitas, seja para atrair o publico ou para simplesmente mostrar seu trabalho. ______________________________________________________________________________ Considerações finais: Os mapas não ficaram muito beeem feitos, alguns deles serviram apenas de demonstração. Gostou do artigo? Deseja criticar? Elogiar? Comente1 ponto -
War Arena System.
dully reagiu a MatheusGlad por um tópico no fórum
Todos os scripts foram testados em um ot 8.6 Bem o script é auto-explicativo, e ainda tem um video do sistema, acho que nao preciso explicar o que faz ne? AGORA EM MOD, MUITO MAIS PRATICO DE INSTALAR. SE FOR USAR O MOD VA ATE O FINAL DO POST, É EXATAMENTE IGUAL A VERSAO NORMAL, SO QUE MAIS PRATICO. FUNCIONA DO MESMO JEITO. Video: obs: Veja em fullscreen para ver melhor as msgs que retornam. Vá em data/lib e adicione esse script.lua com o nome de WarArenaLib: -- [[ Area and Positions Infos ]] -- areaplayersteam = { {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1} } areateam1ext = {x=80, y=305, z=7} -- Ponta superior esquerda da area do time um areateam2ext = {x=87, y=305, z=7} -- Ponta superior esquerda da area do time dois leaderteam1pos = {x=83, y=307, z=7, stackpos=255} -- Posição do lider do time um (que puxara a alavanca) leaderteam2pos = {x=87, y=307, z=7, stackpos=255} -- Posição do lider do time dois (que puxara a alavanca) newplayersposteam1 = {x=67, y=300, z=7} -- Posição para onde os players do time um serao teleportados newplayersposteam2 = {x=67, y=330, z=7} -- Posição para onde os players do time dois serao teleportados team1leverpos = {x=84, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time um puxara team2leverpos = {x=86, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time dois puxara leverafter, leverbefore = 9825, 9826 -- Ids das alavancas antes de puxadas e depois, consecutivamente (9825 = antes; 9826 = depois) posbenterteam1 = {x=78, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 1 posbenterteam2 = {x=92, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 2 backteampos = {x=77, y=307, z=7} -- [[ Storage Infos ]] -- team1leverstorage = 123497 -- Storage que sera usado quando puxarem a alavanca do time 1 team2leverstorage = 123498 -- Storage que sera usado quando puxarem a alavanca do time 2 haveteaminarena = 123499 -- Storage que sera usado para ve se tem algum time lutando na arena storageteam1death = 123500 -- Storage usado para ver quantos morreram do time 1 storageteam2death = 123501 -- Storage usado para ver quantos morreram do time 2 storageteam1 = 123502 -- Storage usado para ver quantas pessoas entraram na arena no time 1 storageteam2 = 123503 -- Storage usado para ver quantas pessoas entraram na arena no time 2 storageleader1 = 123504 -- Storage onde ficara guardado o uid do lider do time 1 storageleader2 = 123505 -- Storage onde ficara guardado o uid do lider do time 2 storageplayersteam1 = 123506 -- Storage que todos os players do team 1 iram ter. storageplatersteam2 = 123507 -- Storage que todos os players do team 2 iram ter. -- [[ Player Infos ]] -- needlevelarena = 20 -- Level que os outros jogadores sem ser o lider teram que ter. leaderlevel = 4000 -- Level que o lider tera que ter. onlyguildwars = true -- Se os membros de um time tem que ser da mesma guild do lider. (Nesse caso somente o lider da guild podera puxar a alavanca.) needplayers = 2 -- Quantidade de players que cada time tem que ter. -- [[ Functions ]] -- function getUidsFromArea(firstpos, area) local result = {} for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then table.insert(result, getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) end end end return result end function teleportUidsToPos(uids, pos) for i,x in pairs(uids) do doTeleportThing(x, pos) end end function isAllUidsSameGuild(uids, guildid) for i,x in pairs(uids) do if not (getPlayerGuildId(x) == guildid) then return false end end return true end function isAllUidsLevel(uids, level) for i,x in pairs(uids) do if not (getPlayerLevel(x) >= level) then return false end end return true end function haveQuantPlayersInArea(firstpos, area, quant) local result = 0 for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then result = result+1 end end end return result >= quant end function addStorageToUids(uids, storage, value) for i,x in pairs(uids) do setPlayerStorageValue(x, storage, value) end end function checkPoses(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function startArena() setGlobalStorageValue(storageleader1, getThingFromPos(leaderteam1pos).uid) setGlobalStorageValue(storageleader2, getThingFromPos(leaderteam2pos).uid) addStorageToUids(team1uids, storageplayersteam1, 1) addStorageToUids(team2uids, storageplayersteam2, 1) teleportUidsToPos(team1uids, newplayersposteam1) teleportUidsToPos(team2uids, newplayersposteam2) setGlobalStorageValue(storageteam1, #team1uids) registerCreatureEventUids(team1uids, "DeathTeam1") registerCreatureEventUids(team2uids, "DeathTeam2") setGlobalStorageValue(storageteam2, #team2uids) setGlobalStorageValue(haveteaminarena, 1) setGlobalStorageValue(team1leverstorage, 0) setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end function haveTeamInArena() return getGlobalStorageValue(haveteaminarena) == 1 and true or false end function isSqmFromArea(firstpos, area, sqmpos) for i,x in pairs(area) do for s,z in pairs(x) do if sqmpos.x == firstpos.x+s-1 and sqmpos.y == firstpos.y+i-1 and sqmpos.z == firstpos.z then return true end end end return false end function registerCreatureEventUids(uids, event) for i,x in pairs(uids) do registerCreatureEvent(x, event) end end Agora vá em data/actions/scripts e adicione um script.lua com o nome de WarArenaLever: function onUse(cid, item, fromPosition, itemEx, toPosition) team1uids = getUidsFromArea(areateam1ext, areaplayersteam) team2uids = getUidsFromArea(areateam2ext, areaplayersteam) if haveTeamInArena() then return doPlayerSendCancel(cid, "Already have a team in arena.") end if checkPoses(toPosition, team1leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam1pos) then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) return doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team1uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team1uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team1leverstorage, 1) doTransformItem(getThingFromPos(team1leverpos).uid, leverbefore) if getGlobalStorageValue(team2leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end elseif checkPoses(toPosition, team2leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam2pos) then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) return doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team2uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team2uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team2leverstorage, 1) doTransformItem(getThingFromPos(team2leverpos).uid, leverbefore) if getGlobalStorageValue(team1leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end end return TRUE end E em actions.xml bote essa linha: <action actionid="12349" event="script" value="WarArenaLever.lua"/> Agora vá em data/creaturescripts/scripts e adicione dois scripts.lua com esses nomes: WarArenaDeathTeam1: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam1, 0) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end WarArenaDeathTeam2: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam2, 0) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end Agora abra o creaturescripts.xml e adicione essas linhas: <event type="death" name="DeathTeam1" event="script" value="WarArenaDeathTeam1.lua"/> <event type="death" name="DeathTeam2" event="script" value="WarArenaDeathTeam2.lua"/> Agora vá em data/movements/scripts e adicione tres scripts.lua com esses nomes: WarArenaMovement1: function onStepOut(cid, item, position, fromPosition) local team = (fromPosition.x == leaderteam1pos.x and fromPosition.y == leaderteam1pos.y and fromPosition.z == leaderteam1pos.z) and "team1" or (fromPosition.x == leaderteam2pos.x and fromPosition.y == leaderteam2pos.y and fromPosition.z == leaderteam2pos.z) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end WarArenaMovement2: function onStepIn(cid, item, position, fromPosition) local team = isSqmFromArea(areateam1ext, areaplayersteam, fromPosition) and "team1" or isSqmFromArea(areateam2ext, areaplayersteam, fromPosition) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end if getGlobalStorageValue(team1leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam1) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end elseif getGlobalStorageValue(team2leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam2) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end end end WarArenaMovement3: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, storageplayersteam1) >= 1 then setPlayerStorageValue(cid, storageplayersteam1, 0) doTeleportThing(cid, posbenterteam1) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end elseif getPlayerStorageValue(cid, storageplayersteam2) >= 1 then setPlayerStorageValue(cid, storageplayersteam2, 0) doTeleportThing(cid, posbenterteam2) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end end return TRUE end E adicione essas linhas em movements.xml: <movevent type="StepOut" actionid="12350" event="script" value="WarArenaMovement1.lua"/> <movevent type="StepIn" actionid="12351" event="script" value="WarArenaMovement2.lua"/> <movevent type="StepIn" actionid="12352" event="script" value="WarArenaMovement3.lua"/> Pronto acabou rairiaria. Adicionando os Actions IDS: Nas 2 alavancas, adicione o actionid 12349. Nos 2 sqms que os players vao estar antes de entrar na arena adicione o actionid 12351. Nos 2 quadrados aonde os lideres irao ficar (na frente da alavanca) bote o actionid 12350. No sqm de sair da arena bote o actionid 12352. NA AREA DOS TIMES E NA ARENA, BOTE PELO MAP EDITOR PARA NAO PODER LOGAR. (Se voce nao fizer isso pode haver bugs.) Bem, se voce souber ler o script da lib, vai saber configura-lo para seu otserver. Versão MOD: (Abra o spoiler) O modo de configurar é exatamente igual ao normal. Flws. By MatheusMkalo1 ponto -
1 ponto
-
Banner Com O Nome Do Meu Ot
eliasjunior157 reagiu a iagsousa por um tópico no fórum
Feito e enviado por msn. Precisando tamo ae.1 ponto -
Ah eu não pensei em nenhum jeito de fazer isso , + deve ter sim. + eu fiz desse jeito aqui , e acho que vai combinar + ( talvez seja ate oque vc quer ) Exemplo: Ele foi feito realmente pra um Quiz Show , ow seja soh da pra usar o script em 1 determinado tile , que vc pode colocar atras de um balcao , mesa sei la. Vamos la:: Agora vou explicar a parte do tile: Espero que funcione e que vc goste =) Ah quando o player sai de cima do tile , começa a fazer um efeito de uma flexinha mostrando o tile onde tem que pisar , ao pisar no tile o efeito para.. Para mudar o intervalo do effect mude essa parte: local time = 101 ponto
-
Sim é claro que interferi , dai você coloca no seu mapa as mesmas quests que tinha no outro servidor e coloca os uniqueid e actionid nos bau e etc dai é um poco complicado né1 ponto
-
Max Level
Subwat reagiu a Demonbholder por um tópico no fórum
-- Subwat Scripting-- function onSay(cid, words, param) maximum = { player = getPlayerGUID(cid), lvlmax = 717218, -- Level que o player vai ficar apos usar o comando. } if getPlayerLevel(cid) ~= 717217 or getPlayerStorageValue(cid,15915) == 1 then doPlayerSendCancel(cid, 'voce nao atingiu o level 717217 ou ja usou este comando.') else setPlayerStorageValue(cid, 15915, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..maximum.lvlmax..", `experience` = 0 WHERE `id` = "..maximum.player) end end O comando getPlayerStorageValue sem comparação só ira retornar FALSE se o storage tiver valor nil, portanto, é necessário fazer a comparação. Já o comando setPlayerStorageValue deve colocar algum valor a um storage. Se você fez a Query certa, o script deve funcionar. Até mais.1 ponto -
Subwat Server V16 100 % Sem Bug Do God
xXLukiinhasXx reagiu a Sheaven por um tópico no fórum
Amigo, seu servidor parece bom... Você fez double topic, pedirei à um moderador que feche o tópico antigo. Ponha os links das IMG's desse tipo: Copie o link que está no retângulo em vermelho Espero ter Ajudado. @Edit: Pelas imagens você modificou bastante o servidor, ficou bem bunitinho. Parabéns. Rep+1 ponto -
O mapa da proxima versão foi trocado porém não mexi muito no distro pois fiquei sem pc e na segunda vou compra um novo (alias ja comprei) ai vou recomeçar a mexer no server o mapa não será mais este da Evolutions, no qual os bugs já foram corrigidos O site compativel com ele é oGesior se voce souber um pouco de php, voce adapta ou o modern acc que funciona corretamente com ele1 ponto
-
[Pedido]
vini996 reagiu a MatheusGlad por uma questão
Ja que eh akilo la mesmo. Segue os scripts e os locais onde eles devem ficar: Va em data/lib/000-constant.lua e adicione essa linha: GuildCastleScore = {} data/creaturescripts/scripts/CastleGenerator_Kill.lua: function haveCastleEventWinner() local a = 0 for i,x in pairs(GuildCastleScore) do a = a+x end return a >= 5 end function getGuildCastleEventWinner() local bestscore = 0 for i,x in pairs(GuildCastleScore) do if x > bestscore then bestscore = x GuildWinner = i end end return GuildWinner end function onKill(cid, target, lastHit) if getCreatureName(target) == "Castle Generator" then if lastHit then GuildCastleScore[getPlayerGuildName(cid)] = GuildCastleScore[getPlayerGuildName(cid)] and GuildCastleScore[getPlayerGuildName(cid)]+1 or 1 if haveCastleEventWinner() then doBroadcastMessage("[Castle_Event] A Guild " .. getGuildCastleEventWinner().. " dominou o castelo.") GuildCastleScore = {} end end end return TRUE end data/creaturescripts/creaturescripts.xml (Adicione a linha): <event type="kill" name="CastleGeneratorKill" event="script" value="CastleGenerator_Kill.lua"/> Agora va em data/creaturescripts/scripts/login.lua e procure (CTRL+F) por registerCreatureEvent voce vai achar varios bote entre eles essa linha: registerCreatureEvent(cid, "CastleGeneratorKill") data/movements/scripts/CastleSqm.lua: function onStepIn(cid, item, position, fromPosition) if getGlobalStorageValue(98741) >= 1 then if getPlayerGuildId(cid) > 0 then doPlayerSendCancel(cid, "Bem vindo ao castelo.") else doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "Voce precisa de uma guild para entrar no castelo.") end else doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "Não está acontecendo o evento ainda.") end return TRUE end data/movements/movements.xml (Adicione a linha): <movevent type="StepIn" actionid="66678" event="script" value="CastleSqm.lua"/> data/talkactions/scripts/CastleTalkaction.lua: function onSay(cid, words, param) if getGlobalStorageValue(98741) <= 0 then setGlobalStorageValue(98741, 1) doPlayerSendCancel(cid, "Voce abriu o evento do castelo.") doBroadcastMessage("[Castle_Event] O Evento de dominar o castelo esta aberto. Va e domine o castelo com sua guild.") else setGlobalStorageValue(98741, 0) return doPlayerSendCancel(cid, "Voce fexou o evento do castelo.") end return TRUE end data/talkactions/talkactions.xml (Adicione a linha): <talkaction log="yes" words="/castle" access="5" event="script" value="CastleTalkaction.lua"/> Agora adicione nos sqms da entrada do castle o actionid 66678 e bote pelo map editor 5 CASTLE GENERATORS dentro do castelo, em qualquer lugar do castelo. Para abrir o castelo eh so digitar /castle. Se voce quizer mais de 5 castle generators va no script CastleGenerator_Kill e mude: function haveCastleEventWinner() local a = 0 for i,x in pairs(GuildCastleScore) do a = a+x end return a >= 5 end Para: function haveCastleEventWinner() local a = 0 for i,x in pairs(GuildCastleScore) do a = a+x end return a >= NUMERO DE CASTLE GENERATORS end Castle Generator: <?xml version="1.0" encoding="UTF-8"?> <monster name="Castle Generator" nameDescription="a castle generator" race="undead" experience="0" speed="0" manacost="0"> <health now="100000" max="100000"/> <look typeex="9779" /> <defenses armor="10" defense="10"/> <immunities> <immunity physical="0"/> <immunity earth="0"/> <immunity death="0"/> <immunity lifedrain="0"/> <immunity paralyze="1"/> </immunities> </monster>1 ponto -
Regras
Henrique Moura reagiu a Lordfire por um tópico no fórum
Tópicos e posts repetidos ou sem sentido serão fechados ou removidos, caso haja reincidência e for constatado que seja propositalmente serão acarretadas punições. Apenas FOTOS DE CHARACTERS são permitidos aqui. A criação de tópicos com o intuito de soluconar problemas e dúvidas não será tolerada. Caso não encontre seção específica para seu tópico, poste na área Tibia Geral Discussões e a equipe se encarregará de colocá-lo em local apropriado. Tópicos devem conter ao menos informações básicas dos personagens. Caso deseje criar um life thread (tópico da "vida" do seu personagem), coloque como prefixo do título [LIFE THREAD]. A Equipe XTibia se reserva ao direito de modificar o conteúdo dos tópicos para adaptá-los às regras do jogo e do fórum, caso necessário. Além das regras locais, esta seção está sujeita às regras gerais do fórum. Para lê-las, clique aqui Estas regras estão sujeitas à mudanças sem aviso prévio, portanto, mantenha-se informado e sempre leia antes de postar.1 ponto -
Equipamentos Personalizados
pvjf reagiu a mdgabrielzim por um tópico no fórum
Bom faz assim vai la na pasta weapons eh abre um arquivo chamada weapons.xml Bem vou te dar 1 exemplo primeiro ache a arma que você quer editar aqui eu peguei uma wand :forward: Em vermelho esta as vocações que vão usar a arma . :forward: Em azul esta o level em que o player prescisa para usar a arma . Muito facil e rapido qualquer coisa me mande 1 pm e se te ajudei não esqueça de clicar no +rep VLWS1 ponto -
[Fechado] [Original] Mix Yourots 1.0.0 (Update Released)
rafuskaopoha reagiu a Bondx por um tópico no fórum
Primeiro servidor 8.6 \o_ Espero que gostem do mapa. Logo novas atualizações, e mais cidades, com mais RPG! (: Sem mais, Atenciosamente, Bondx.1 ponto -
Instalando Seu Rme - Passo A Passo!
Henrique Moura reagiu a Folspa por um tópico no fórum
-1 pontos