Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 05/07/13 em todas áreas

  1. BananaFight

    [C++] Color Name [DigiWo]

    Creature.cpp procure por: if(healthPercent > 92) Embaixo você muda para: if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0x00, 0xBC, 0x00); } Adicionando Nomes: Isto representa o nome do monstro/player que terá a cor do nome alterada. (Sim, vai ter que cadastrar nome por nome nesse sistema.) if (m_name == "Banana Fight") Para adicionar mais nomes é só seguindo a logica: if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else if (m_name == "Demon"){ m_informationColor = Color(0xFF, 0xFF, 0xFF); }else{ m_informationColor = Color(0x00, 0xBC, 0x00); } E para colorir o resto das porcentagens a mesma coisa: else if(healthPercent > 60) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0x50, 0xA1, 0x50);} Só recomendo que não mecha no ultimo, pois se não souber mexer pode dar erro. else m_informationColor = Color(0x85, 0x0C, 0x0C); Adicionando Cores: Isto representa a porcentagem de hp que o player ou monstro vai estar m_informationColor = Color(0x00, 0xBC, 0x00); Para mudar a cor você edita aqui : Color(0x00, 0xBC, 0x00) As cores funcionam da seguinte maneira (RGB), tabela: http://shibolete.tripod.com/RGB.html Você tem que pegar a cor hexadecimal e dividir em 3 partes (#FFFF00 > FF FF 00), ai é só você preencher, Color(0xFF, 0xFF, 0x00) com cada letra/numero. Exemplo Final: void Creature::setHealthPercent(uint8 healthPercent){ if(healthPercent > 92) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0x00, 0xBC, 0x00); } else if(healthPercent > 60) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0x50, 0xA1, 0x50); } else if(healthPercent > 30) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0xA1, 0xA1, 0x00); } else if(healthPercent > 8) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0xBF, 0x0A, 0x0A); } else if(healthPercent > 3) if (m_name == "Banana Fight"){ m_informationColor = Color(0xB2, 0x22, 0x22); }else{ m_informationColor = Color(0x91, 0x0F, 0x0F); } else m_informationColor = Color(0x85, 0x0C, 0x0C); m_healthPercent = healthPercent; callLuaField("onHealthPercentChange", healthPercent); if(healthPercent <= 0) onDeath();} Tópico corrigido por: Stigal.
    3 pontos
  2. Sistema de Pet V1.0 E ai Galera, suave? Hoje venho trazer pra vocês, meu sistema de pet. É bem do tipo pokemon, mas tenho certeza que irão gostar. Vou liberá-lo porque gosto de compartilhar as coisas, e sei que alguém esta querendo um sistema desses. Assim como eu quis um dia e nunca encontrei um que funcionasse. O sistema está na versão 1.0, mas em em breve trarei um npc para healar o pet e algumas talks para o pet soltar spells. Vamos lá! Primeiramente, vá em data/action/scripts, crie um arquivo com o nome de CatchPet.lua e adicione: local mtrs = { ["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100}, ["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100}, ["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100}, ["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100}, ["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100}, } function onUse(cid, item, frompos, item2, topos) for pet_name, v in pairs(mtrs) do if item2.itemid == v.corpse then if math.random(0,100) <= v.chance then doPlayerSendTextMessage(cid, 27, "Você capturou um ".. pet_name .. ".") doRemoveItem(item2.uid, 1) doRemoveItem(item.uid, 1) local itemcatch = doPlayerAddItem(cid, 7632, 1) doItemSetAttribute(itemcatch, "namepet", pet_name) doItemSetAttribute(itemcatch, "description", "Contém um ".. pet_name ..".") doItemSetAttribute(itemcatch, "lifepet", v.hp) doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp) else doPlayerSendTextMessage(cid, 27, "Falhou.") end end end return true end Em seguida, duplique o arquivo, renomeie para VaiVolta e adicione: function onUse(cid, item, frompos, item2, topos) local health = tonumber(getItemAttribute(item.uid, "lifepet")) local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet")) if health <= 0 then return doPlayerSendCancel(cid, "Esse pet esta morto.") end local pet_name = getItemAttribute(item.uid, "namepet") if item.itemid == 7632 then if not getTilePzInfo(getPlayerPosition(cid)) then if #getCreatureSummons(cid) < 1 then doTransformItem(item.uid, 7633) local summon = doSummonCreature(pet_name, getThingPos(cid)) doConvinceCreature(cid, summon) setCreatureMaxHealth(summon, mhp) doCreatureAddHealth(summon, mhp) doCreatureAddHealth(summon, health - mhp) doSendMagicEffect(getCreaturePosition(summon), 67) doCreatureSay(cid, "Vai, ".. pet_name .. "!", TALKTYPE_SAY) else doPlayerSendCancel(cid, "Você já sumonou um Pet.") end else doPlayerSendCancel(cid, "Você não pode estar em Protection Zone para sumonar seu Pet.") end elseif item.itemid == 7633 then local hp, maxhp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1]) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 67) doRemoveCreature(getCreatureSummons(cid)[1]) doTransformItem(item.uid, 7632) doItemSetAttribute(item.uid, "lifepet", hp) doItemSetAttribute(item.uid, "maxlifepet", maxhp) doCreatureSay(cid, "Volta, " .. pet_name .. ".", TALKTYPE_SAY) end end return true end Agora em Actions.xml, adicione as tags: <action itemid="2149" event="script" value="CatchPet.lua"/> <action itemid="7632;7633" event="script" value="VaiVolta.lua"/> Configurando Nesta parte você irá editar: NOME DO PET / HP / HP MÁXIMO / CORPSE ID ( AQUELE QUE FICA QUANDO O MONSTRO MORRE) / CHANCE DE CAPTURA DO PET. Esse são os id's das "pokeballs": Caso queira mudar, troque no script e na tag no actions.xml. Este é o item de captura: <action itemid="2149" event="script" value="CatchPet.lua"/> Bom, é isso galera, espero que gostem e que façam um bom uso do sistema! Aproveitem! Dúvidas? Sugestões? Criticas? Comentem!!
    3 pontos
  3. vital900

    Aula #3 - Construções [ Depot]

    Após duas aulas já dadas, vamos começar nossa terceira aula. Aula 1 - Templo Aula 2 - Montanhas Como já fora ensinado na primeira aula, quando tratamos de construções devemos primeiro criar a área a qual iremos delimitar nossa construção. Por já termos uma breve noção de como fazer isto irei demonstrar uma imagem mostrando as delimitações deste depot, e esta já com suas paredes randomizadas (randomizar uma parede = a mesclar). Atenção ao randomizar a parede, é da mesma forma que se faz com o chão.. usando materiais que combinam entre si. Com sua área já delimitada e principalmente randomizada (como mostrado na imagem acima), devemos adicionar os próximos andares, lembre-se se de não deixar uma parede flutuando, faça com que o andar superior, se encaixe perfeitamente com o andar inferior. Agora vamos começar a da vida ao seu depot, volte ao primeiro andar, adicione partes do chão e alguns detalhes que dê a entender oque irá ser sua área. Por ser um depot é fundamental ter suas caixas de armazéns, caixa de correio, um local destinado ao npc de cartas, etc.. Com um ar mais de depot, vamos preencher todo o chão. Não se esqueça de randomizar o chão. Com o chão posto, você deve ter percebido um vazio no seu depot.. Então vamos mudar este quadro.. Coloque estatuas, pedras, musgos e qualquer item que tire este vazio da sua construção.. Mas lembre-se coerência é fundamental nesta hora. Após ter terminado o seu primeiro andar, fazendo os passos de delimitar, preencher, detalhar e randomizar; passe para os próximos andares de seu depot e refaça todos os passos ensinados anteriormente. Após ter feito todos os andares, você deve fazer o telhado.. Lembre-se este deve ser belo e condizente a toda a sua construção. Após ter terminado de ler esta aula tutorial, faça o seu próprio depot seguindo FIELMENTE todos os passos que foram ensinados. Além do tutorial acima você também pode ver estes tutoriais para auxiliá-lo na criação de seu depot: Depot [1] Telhados [1, 2, 3] Créditos: Texto- vital900 Imagens- DuMal
    3 pontos
  4. MaXwEllDeN

    Patterns

    Pattern Pattern ("Padrão" em pt-br) é uma poderosa funcionalidade para manipulação de strings (caso você não saiba o que é uma "string", busque saber antes de continuar, recomendo também ter um certo domínio sobre a biblioteca string), e usada para buscar um padrão de texto pré-definido. Porque aprender ? Possui recursos indispensáveis quando se precisa trabalhar com strings, alta aplicabilidade em scripts direcionados a otserv (talkactions), não que se vá usar isso a todo o momento, mas é altamente recomendado que se saiba trabalhar com patterns, é extremamente útil as vezes. Funções Algumas funções da biblioteca padrão string que aceitam pattern em seus parâmetros: string.find(string, pattern) – Procura a primeira instância da pattern na string string.gfind(string, pattern) – Quando for chamada repetidamente, retorna cada instância da pattern na string string.gsub(string, pattern, replace) – Retorna uma string em que todas as instâncias da pattern foram substituidas por replace string.match(string, pattern, init) – Retorna uma lista de ocorrências da pattern na string, começando em init (1 significa o primeiro caractere da string, 2 o segundo, assim por diante) Conjuntos Quando se constrói uma pattern, se utiliza alguns caracteres, cada um representando um conjunto diferente: (onde "x" não é um caractere mágico ^$()%.[]*+-?) → Representa o caractere "x" mesmo; . → Representa todos os caracteres; %a → Representa todas as letras; %c → Representa todos os caracteres de controle; %d → Representa todos os dígitos; %l → Representa todas as letras minusculas; %p → Representa todos os caracteres de pontuação; %s → Representa todos os caracteres de espaço; %u → Representa todas as letras maiúsculas; %w → Representa todos os caracteres alfanuméricos; %x → Representa todos os dígitos hexadecimais; %z → Representa o caractere com a representação do 0 (zero). Ao usar zeros na pattern ela não irá funciona, use esta nesse caso; Ao usar letra maiúscula, isso faz representar o contrário (Exemplo: %A → Representa tudo que não for letras; %D → Representa tudo que não for um digito; assim por diante...). Como dito anteriormente, para se criar uma pattern é necessário utilizar esses conjuntos, uma pattern é feita de uma sequência desses conjuntos. Se você quisesse criar uma pattern para encontrar uma certa string em um texto, por exemplo, para encontrar os números da string "23otserv", você teria que usar esta pattern "%d%dotserv", assim você estaria definindo que quer os numeros que estão ao lado da palavra ‘otserv’. Mas e se tivesse que encontrar um numero com 10 "casas" ? Por isso existe os modificadores, para evitar essa repetição desnecessária. Modificadores Servem principalmente para poupar serviço e são quatro, entenda 'x' como sendo algum conjunto (%a, %c, %d, ...): x* → Retorna 0 ou mais repetições do conjunto x. Sempre retornará a maior cadeia possível encontrada; x+ → Retorna 1 ou mais repetições do conjunto x. Sempre retornará a maior cadeia possível encontrada; x- → Retorna 0 ou mais repetições do conjunto x. Sempre retornará a menor cadeia possível encontrada; x? → Retorna 0 ou 1 ocorrência de x; Elementos especiais Existe também quatro elementos especiais: %n → Sendo n um numero entre 1 e 9, busca a enésima captura (apenas vi sendo usada na função string.gsub); %bxy → Procura uma string que inicia com x e termina com y; ^ → Quando está no começo da pattern, força a pattern a ser encontrada no começo da string; $ → Quando está no final da pattern, força a pattern a ser encontrada no fim da string; Nota: Se ^ ou $ estiverem em outros lugares da pattern, não fazem nada, apenas representam eles mesmos. Construindo uma pattern Vamos construir algumas patterns com os elementos citados acima. Primeiro alguns exemplos e depois uma explicação mais detalhada de cada elemento da pattern: String para as patterns: "Exemplo lua de pattern lua feito em lua" exemplos toscos, a gente se vê por aqui Pattern: (%a+) lua Capturaria: Exemplo lua de pattern lua feito em lua Ele só retornará o primeiro caso que corresponder com a pattern. Agora, ao invés de usar o "%a" fosse usado o "." (que captura tudo), aconteceria isso: Pattern: (.+) lua Capturaria: Exemplo lua de pattern lua feito em lua Como "%a" captura apenas letras e não o "espaço", foi por isso que no primeiro exemplo só capturou a palavra "Exemplo" e no segundo exemplo, como foi usado o "." que captura tudo, capturou uma parte maior (ai que vêm a parte do modificador) por causa do modificador "+" que sempre vai buscar a maior cadeia possivel, agora veja um exemplo usando o "-": Pattern: (.-) lua Capturaria: Exemplo lua de pattern lua feito em lua O modificador "-", como dito anteriormente, captura a menor cadeia e por isso capturaria apenas o "Exemplo". Todos os modificadores são importantes. Um exemplo maior: Pattern: (%a+) lua (.-) lua (.+) Capturaria: Exemplo lua de pattern lua feito em lua Para quem não entendeu Explicação passo a passo: (%d+) Captura → O parenteses define que você quer que retorne essa captura. Conjunto → No caso é o de digitos. Modificador → No caso mostra que é para obter a maior cadeia possivel com 1 ou mais repetições do conjunto. Um exemplo mais avançado Agora usando de exemplo a pattern da função string.trim, que remove os espaços em branco do lado esquerdo e direito da string. function string.trim(str)-- Function by Colandusreturn (string.gsub(str, "^%s*(.-)%s*$", "%1"))end string.gsub(str, "^%s*(.-)%s*$", "%1") str → Uma string qualquer; ^ → Força o começo da pattern ser encontrada no começo de str; %s* → Conjunto de espaços, podendo ter 0 ou mais repetições; (.-) → A captura principal, a que vai ser retornada, podendo ser digitos, letras, espaço, etc; $ → Força o final da pattern ser encontrada no fim de str; %1 → Retorna a 1ª captura da pattern e usa como parametro da função (Esse é um dos elementos especiais, %n); Dessa forma será removido os espaços apenas no começo e no fim da string ! Complemento Depois de dominar e entender como funciona as patterns, vamos aplica-las em funções, vou mostrar um exemplo de cada função (as que foram citadas no começo). string.find: init, end, case1, case2 = string.find("minha string123", "(%a+) (.+)") init → Onde inicia a captura encontrada (nesse caso, init = 1); end → Onde termina a captura encontrada (end = 15); case1 → Primeira captura que equivale a pattern (%a+) (case1 = minha); case2 → Segunda captura que equivale a pattern (.+) (case2 = string123); string.gfind: for occ in string.gfind("a1a2a3a4a5", "(%a%d)") doprint(occ)end occ → Terá um valor para cada instância da pattern (%a%d) encontrada, então irá printar a1, a2, a3, a4 e a5. string.match: case1, case2 = string.match("Eu tenho 50 reais", "(%d+) (%a+)") case1 → Primeira captura que equivale a pattern (%d+) (case1 = 50); case2 → Segunda captura que equivale a pattern (%a+) (case2 = reais); Referência http://www.lua.org/manual/5.1/pt/manual.html#5.4.1 http://lua-users.org/wiki/PatternsTutorial Então é isso, espero ter sido o mais claro possivel, Qualquer dúvida, erro ou sugestão, poste !
    3 pontos
  5. Evolera v3 - SPECIAL EDITION 12.11 Equilíbrio De Profissões Nossa principal tarefa era equilibrar profissão, foi feito todos os esforços para fazer com que pareça profissional. Nesta edição ninguém reclamou dos ataques fracos de qualquer profissão. Bob Marley - Event Nosso convidado especial apareceu, NPC que nos dá missões incríveis. Eu acho que ele capturou um determinado grupo social para ots! Governor - Quest Quest Hardcore Oficialmente achamos ser a mais difícil missão no ot. Pode-se obter itens que não está no shoopie sms. Itens de hardcore aos equipamentos para cada profissão. Sacred Dragon Tales - Event Assim, as 10 missões de um dragão misterioso, cada missão é única. Dragão misterioso tem para você uma série de valiosos prêmios na forma de experience e itens. New Quest Room: Sala de quest totalmente reconstruída, agora parece muito mais agradável e linda! Reconstruiu a cidade/templo: A nova cidade é jescze mais misteriosa, esconde um monte de missões secretas, missões e locais para os quais podemos obter apenas alguns. O templo atualizou, agora com mais espaço, temos acrescentado novos teleports e npceki Novos monstros! Ghastly dragons Medusa Drakeny Helish Tortoisy Halloween Pumpkiny Rainbow Margarothy Sacred Dragon Child Sacred Mastery Novos NPC's! Bob Marley Governor Gladia Tommy Rastaman Uncle Fester Bob Marley Mother Novos Items! Armor-Noob Helmet-Noob Dark monk armor Guardian boots Dragon scale boots Lucky Charm Crystal-Tp Hardcore Set Hardcore Weapons E todos items Zaoan Novos Scripts! Agora, o seu progresso que você será capaz de verificar o log de quest Ou Lotto [sistema de bilhete! Ticket] Melhoria Tetris e Snake Boomberman Trem-atacante Monki Faster [você não pode matá-los] Segredos do sistema ou quests escondidas, missões, npceki lugar secreto Addons em nosso ots está ficando em 2 maneiras através de Missões Addon e Dolla Outfiter [alavanca dando addons no templo] agora muda roupas por 30min. Muito mais ataques e eventos Bounty Hunters [ou hunted system] Novos Systemas! War System Outfit system Afk system Extensive reporting system players New channels like "Yahoo" Castle System Vote System Boomberman system Tetris system Casino System Soccer System Snake system Addon Bonuses Lottery System Comandos para players! / Balance - controle de balanço ! Online - quem está online - Online ! Uptime - mostra quantas horas servidor Stoji ! Deathlist - lista de mortes ! Pvp - verifica se o servidor está pvp ou non-pvp ! serverinfo - informações do servidor / Commands - uma lista de comandos ! Soft - correção softy ! Firewalker - reparos FWB ! Backpack - mochila compra ! Aol - comprar Amulet of Loss ! Bless - abençoar compra 100% ! Premium - prêmio de compra ! spells - lista de spells ! Changesex - mudança de sexo ! Frags - mostra o número de frags ! it - guilda roupas mudança ! After - mudança de roupas festa ! Buyhouse - compra uma casa ! Sellhouse - vende uma casa ! Leavehouse - sair de casa ! Createguild - criar guildas ! Joinguild - Junte-se a guilda ! Afk on /! Afk off - afk sistema ! so - comando para votar ! Did not - comando para votar ! Bomb - bomba que você colocou no boomberman ! Ticket - Lotto sistema / War - todos os comandos para os goods Novos Eventos! Metin Stones Castle War Sacred Dragon Nesta edição, foi corrigido todos os erros de novos hosters [houses e problemas no map] Todos os créditos vão para Alex. Screens - Download - Via MediaFire Download - Via 4Shared
    2 pontos
  6. Tonynh

    Minhas fotografias [iPhone]

    Mandou bem no comentário Diogo. #Alex Ótimas pics! Algumas realmente me encantam. Vasculhando o note aqui, encontrei uma que tirei tem cerca de 2 anos já, uma das minhas primeiras, mas que até hoje - particularmente - gosto muito. Quando eu voltar para minha casa, vou pegar algumas mais recentes no desktop.. e posto por aqui. Grande Abraço.
    2 pontos
  7. galera server 2.0 esta proximo para lançar! xD
    2 pontos
  8. Não cara no dia que eu postar falo Onde pode pegar esse System e add no com level
    2 pontos
  9. Gabrieltxu

    Digitibia Server

    Fala ai galera estava andando na net ate que me deparei com um Server de Digitibia Otimo para como base Bom vou falar agora as Informaçoes Sobre o Server! ►Informações:◄ Servidor 8.54; Novas Sprites; Digimons 50%; Ataques 50% Hunts Adicionadas; Novos Comandos; Novos Itens; Base 100%, liberado para quem quiser editar / adicionar novas coisas! ►Imagens◄ ►Download:◄ Cliente Incluso com dat e spr; http://www.4shared.c...igi_Tibia.html? ►Scan:◄ https://www.virustot...sis/1359480865/ ►Créditos◄ pobredobrega Animal Pak Insaend Equipe Digiwo OBS: Server feito base do pokemon Flash mais como vcs Sabem não muda Muita coisa para Pokemon a Digimon! OBS²: Não foi Eu que criei o Server então Não vou Prometer Atualizaçoes Sobre ele! Mais vou fikar Esperto Para se o criador passar uma Atualização do Server!
    1 ponto
  10. 1 ponto
  11. Slicer

    [Pokemon] Pda By Slicer 1.9/2.9

    [Pokemon] PDA By Slicer Pokemon dash advanced editado por slicer, vários bugs retidos. Projeto encerrado! Espero que todos tenham gostado desse 1 ano de trabalho duro! Todas as atualizações: * Leiam e sigam as instruções do Change Log dentro da pasta do patch! Downlaods: PDA By Slicer With Level System v2.9 Full -> http://www.mediafire...z2afuu75zblvmvq PDA By Slicer Without Level System v1.9 Full -> http://www.mediafire...td0l0ip9ajprrbf OTClient editado 2.8/1.8 => http://www.mediafire...1lcbs1fktpm676w Atualizações: EH OBRIGATORIO O USO DESSE CLIENT ABAIXO E USEM O .PIC TB!!!!!!!!! Client v1.9/2.9 => http://www.mediafire...77i414v1hy187fj Patch v1.9 => http://www.mediafire...da4umj3ip18jrf1 Patch v2.9 => http://www.mediafire...7nt275td9afl1fy Patch v1.9.1 => http://www.mediafire.com/?i3flwa3lrd016zl Patch v2.9.1 => http://www.mediafire.com/?m4zhjgn62uow1sp Obs: Atualizaçoes mais antigas estao dentro do spoiler acima!! OTAL.DLL: OBS: caso n esteja aparecendo a barra de moves no client normal do tibia, baixem essa .dll e coloquem na pasta onde fica o Pokemon_nibe.exe ... Otal.rar Patch Correçao! Todos olhem! Bugs na nova atualizaçao? Olhe o spoiler e veja se arruma o problema! Atualizado: 08/02/13 Créditos: Otal.rar
    1 ponto
  12. 1 ponto
  13. Alissow OTS 5.0!!!!! [17/03/ 2013] Provavelmente vocês estão pensando "mas que diabo de OTS é esse?", afinal, já faz 2 anos desde que a ultima versão foi lançada (http://www.xtibia.co...10-86-completo/) e desde lá prometemos algo que não foi cumprido - até agora -, uma versão nova. ENFIM, TEMOS AGORA A MAIS NOVA VERSÃO DE UM DOS SERVIDORES MAIS AVACALHADOS JOGADOS DOS ULTIMOS TEMPOS. Mas eu tenho uma má noticia, está incompleto. Sim, o mapa está inacabado. Muitas coisas que eu planejei fazer nele eu não completei. Boa parte o Comedinha ajudou a terminar, adicionando o resto dos caminhos básicos e os monstros. mas mapa inacabado não quer dizer que não está jogável, quer dizer que faltou detalhar (Ex: x:55 y: 137 z: 9, x: 104 y: 140 z: 7, etc). A ultima versão foi baixada mais de 50 mil vezes e esperamos que essa versão faça o mesmo sucesso. VAMOS BAIXAR E JOGAR, SEUS LINDOS Créditos Gerais: 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]: Atualização nº 2 [3.4]: Atualização 3.5 [06/08/2009]: Atualização Patch 3.5.1 [07/08/2009]: Atualização 3.6 [10/08/2009]: Atualização 3.7! Beta [18/12/2009]: Atualização 3.7 Patch 1 [27/12/2009]: Atualização 3.8 [17/01/2010]: Atualização 3.8 Minor Patch 1 [17/01/2010]: Atualização 3.9 [15/02/2010]: Atualização 4.0 [15/02/2010]: Atualização 4.11! [11/07/2010]: Atualização 5.0!!!!! [17/03/2013] - Atualizado para a versão 9.83 (Comedinhasss, Tfs Team) - Sistemas novos para a nova versão, montaria, war system, etc. (Comedinhasss, Tfs Team) - Rep System e Antbot Removido. (Comedinhasss) - 64 Quests reformuladas. (Comedinhasss/Alissow) - Novo sistema de dicas a cada 15 min. - (Comedinhasss) - Novo sistema de map marks ao entrar no servidor. (Comedinhasss) - Organização geral em Actions e Moveevents. (Comedinhasss) - Nova organização nos monstros agora usando os que não tem no tibia original na pasta monsters em mods. (Comedinhasss) - Npcs sem utilidade removidos (Comedinhasss) - Alavanca de runas e potions reformuladas (Comedinhasss, Alissow) - Bug PZ nas Hydras arrumado (Alissow) - Cidade principal parcialmente reformulada (Alissow) - Cidade de Flam totalmente reformulada (Alissow) - As lojas agora não são mais areas PZ (Alissow) - Corrigido erros em portas que não deveriam abrir, e portas que não deveriam fechar (Alissow) - Continente de Zao removido? (Alissow) - Arrumado bugs onde podia-se pegar items na ferumbras tower e vários outros lugares (Alissow) - Arrumado caminho da "inquisition" (Alissow) - Respawns recolocados em algumas áreas de yalahar, dragons, elfs Hydras, Dark magicians e apprentices (Alissow) - Nova entrada para arena (Svargrond) na cidade principal e funcionando! (Alissow) - Elevado nível de dificuldade da Arena (Svargrond) (Alissow) - Nova localização da Ferumbras Tower (Alissow) - Cidade de Mistyc removida (Alissow) - Novo sistema premium igual ao global. (Comedinhasss) - Sistema de bless reformulado e agora por items. (Comedinhasss) - Sistema de portais/teleports (Comedinhasss, Alissow) - Sistema offline training (Comedinhasss, TFS) - Sistema de casamento trocado (Comedinhasss, Outros) - Spells (OTX) Screenshots: Mais screenshots: Clique Aqui Download: Windows: http://www.mediafire...cap2yi5jee5e7an (Tam: 16MB) Linux (Debian): http://www.mediafire...5lu3476fd8jcnc8 (Tam: 7MB) Link Protegido Windows: http://lix.in/-d3c97c Link Protegido Linux (Debian): http://lix.in/-d5501d Scan Virus Total: https://www.virustot...sis/1363492837/ IP Changer: http://www.mediafire...6stsdskhljaa0c1 -Atenção- - Acc do God: admin/admin - LEIA o tópico antes de postar qualquer coisa ou duvida - Reportem se houver algum bug - Offline Train Level configurado no config.lua em levelToOfflineInBed - As estatuas de offline que ficam no templo não funcionam por serem enfeites - Para tirar o , previewer do nome, no config.lua em serverPreview mude para false - Todos os addons são vendidos menos o demon que o comedinha acabou esquecendo de coloca - Comandos personalizados: /ta - itens pro sv inteiro, /tp - locais do mapa, /p - tem na assinatura do comedinha ensinando, /e - abrir e fechar portal(open, close). - Para usar os portais você primeiro deve explorar a área indo até ela - Tem alguns segredinhos e lugares escondidos muito legais para vocês descobrirem - Favor, não usar o nosso distro sem o nosso consenso, obrigado. - Se você gostou, clique no ali embaixo ó
    1 ponto
  14. LuckinhaSan

    [PSD] PIP xTibia.com

    Download - http://www.mediafire.com/?u0wjpnjm1u1xtcj
    1 ponto
  15. Alexclusive

    Photoshop na vida real (imagens)

    Não seria o máximo se as ferramentas e filtros do Photoshop existissem na vida real? Esta “impossibilidade” tirou tanto o sono da fotógrafa húngara Flora Borsi de apenas 19 anos de idade, que ela resolveu criar uma série de fotografias na qual mostra como olhar para a realidade se tivéssemos um Photoshop Real Life para corrigir e personalizar nossa aparência física instantaneamente. Flora não usou qualquer programa gráfico na criação deste trabalho incrível rs. O que acharam? Não existiria mais gente feia no mundo hehe Créditos: Borsi.
    1 ponto
  16. fala ai Galera Fiz um Patch de Pokemons da 3 a 4 gera e Irei Postar para vcs! Bom nesse Patch Contem: Pokes de Hoen em IDC: 100% Corpos de Hoen em IDC: 100% Portfoils de Hoen em IDC: 100% Pokes de Sinooh em IDC: 100% Corpos de sinooh em IDC: 100% Portfoils de Sinooh em IDC: 100 Breve umas Prints Sobre o Patch mais é as mesmas Sprites do OTpokemon mais em IDC Podendo Colocar no seu Server! Download: http://www.4shared.com/rar/HWIM_rhR/Patch_Pokemons_Novos.html Se Gostou REP++ u.u
    1 ponto
  17. xFare

    New Styller 8.6 (Edit Version)

    New Styller (Edit version) Oque há de novo ! --Templo Com novo visual. --Novas Traps Pela city --Novo Dp --Novos NPC's --Nova Wand Para free's (divine Wand ) --NPC Vip Mad vendendos items que não hávia --Area de trainers editadas --Adicionada Varias Caves Free e VIP como warlock's dragon lord's ,hydra ,demons e frost dragons --Area para Teleports e Quests Separadas -- quests com level minimo --Viajar para cidades Pelo Barco --Npc Eddy substituindo Riona e com mais items ultilizaveis --removidos Varios bugs de mapas e entre outros --Partes Editadas Na city -- potions por alavancas --Sistema De Addon doll --Comando !save !promote !pvp !party !guild !aol !wand !rankfrags !addon !online !uptime /commands -- Comandos Para vender house funfando !sellhouse ScreenShots: Download : http://www.mediafire...1vj5vm3lavr3px8 Scan : https://www.virustot...sis/1365081938/
    1 ponto
  18. BananaFight

    WASD - Movendo por letras

    Enfim terminei o sistema de mover por WASD, não que seja muito difícil era só esquecimento mesmo, mais vamos lá. Instalação \modules\game_console Abra o arquivo console.lua procure por load() end Adicione encima consoleWalk = consolePanel:getChildById('walk') E embaixo adicione function Walk() if consoleWalk:isChecked() then consoleTextEdit:setVisible(false) consoleTextEdit:setText("") g_keyboard.bindKeyPress("W", function() g_game.walk(North) end) g_keyboard.bindKeyPress("D", function() g_game.walk(East) end) g_keyboard.bindKeyPress("S", function() g_game.walk(South) end) g_keyboard.bindKeyPress("A", function() g_game.walk(West) end) else consoleTextEdit:setVisible(true) consoleTextEdit:setText("") g_keyboard.unbindKeyPress("W") g_keyboard.unbindKeyPress("D") g_keyboard.unbindKeyPress("S") g_keyboard.unbindKeyPress("A") end end Agora vá até console.otui procure por Panel id: consolePanel anchors.fill: parent e embaixo adicione CheckBox id: walk anchors.left: parent.left anchors.top: parent.top margin-left: 13 margin-top: 8 @onCheckChange: Walk() e troque isso TabButton id: prevChannelButton icon: icons/leftarrow.png anchors.left: parent.left anchors.top: parent.top margin-left: 6 margin-top: 6 por isso TabButton id: prevChannelButton icon: /images/game/console/leftarrow anchors.left: walk.right anchors.top: parent.top margin-left: 3 margin-top: 6 Pronto, Só aproveitar agora.
    1 ponto
  19. Sir Picaralhos

    Quer Aprender A Ser Scripter?

    Dividi em fases Entaum vamos lah ensinalo a ser um scripter: NPC'S vou ensinar a base de um npc seller,passa o script de comando, Npc Seller: vá em data>Npcs> Copie qualquer um cole na pasta abra com bloco de notas, Vai estar Assim: <?xml version="1.0"?> <npc name="NOME script="Diretorio/Arquivo.lua" access="3"> <look type="look" head="head" body="body" legs="legs" feet="57"/> </npc> Explicando: Npc Name= Nome do Npc script= é onde está localizado o script do npc,ponha na pasta scripts dentro da pasta npc,e no final ponha o nome do arquivo lua,e sempre ponha .lua no final Acces = é o acesso do npc,por exemplo se um player de acces 4 chega nele e fala "hi" dá um debug no server,portanto se o acces de seu gm é 10000 o acces do npc tem que ser 10000. Look: é o Look do Npc,exemplo: se a ordem de numeros estiver 0,0,0,0 o Npc será todo branco,alguns ot's vêem as cores do outfit(acho) _________________-Script do Npc_______________________ vai na pasta scripts copie qualquer um, e renomeie de acordo com o que vc pois no .xml do npc na pasta anterior no começo tem assim: target = 0 following = false attacking = false focus = 0itemid = 0 count = 0payback = 0talkcount = 0talk_start = 0function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(id) if id == target then target = 0 attacking = false selfAttackCreature(0) following = false endfocus = 0itemid = 0 end function onCreatureTurn(creature) end function onCreatureSay(cid, type, msg)msg = string.lower(msg) dist = getDistanceToCreature(cid)if dist >= 8 thenreturnendtalk_start = os.clock() if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')else if focus > 0 then selfSay('Wait.') endendif(focus == 0) thenselfSay('Hello ' .. creatureGetName(cid) .. '! .')focus = cidendtalk_start = os.clock()endExplicando :Nesta Parte se vc fala hi para ele,ele fala: Hello ( e seu nome)[color=blue]' .. creatureGetName(cid) .. ' Esse comando Faz o Npc falar o nome do char(cid) que falou hi[/color]Sempre Use essa parte no começo,se um char,fala hi e depois fala hi denovo o npc fala: I'm Already Talking to You,Pode Ser Alterado nesta Parte:if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')<---else if focus > 0 then selfSay('Wait.')<--neste é quando o npc está atendendo outra pessoas endend Continuando(vamos usar como exemplo um npc que vende um axe ring if string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 then talkcount = 0 buy(focus,itemid,count,cost) end se o char,falar yes,ele responde ao talk 1 if string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 se voce por 2,3,4,etc.. vc tem que por a resposta de acordo if string.find(msg, '(%a*)no(%a*)') and cid == focus then selfSay('Ok, is there something else you want? If so tell me.') itemid = 0 count = 0 cost = 0 talkcount = 0 end se o char falar no, ele fla: Ok, is there something else you want? If so tell me, e nao acontece nada,e nada parte final vc poe: _____________________________________________________- if string.find(msg, 'bye(%a*)') and cid == focus then selfSay('Farewell, ' .. creatureGetName(cid) .. '!') focus = 0 itemid = 0 talk_start = 0 talkcount = 0 end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 10 then if focus > 0 then selfSay('Next please!') talkcount = 0 end focus = 0 itemid = 0 talk_start = 0 end if focus == 0 then cx, cy, cz = selfGetPosition() randmove = math.random(1,50) if randmove == 1 then nx = cx + 1 end if randmove == 2 then nx = cx - 1 end if randmove == 3 then ny = cy + 1 end if randmove == 4 then ny = cy - 1 end if randmove >= 5 then nx = cx ny = cy end moveToPosition(nx, ny, cz) --summons = 30 --summons2 = 30 end end _______________________________________________ ficando assim o script: target = 0 following = false attacking = false focus = 0itemid = 0 count = 0payback = 0talkcount = 0talk_start = 0function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(id) if id == target then target = 0 attacking = false selfAttackCreature(0) following = false endfocus = 0itemid = 0 end function onCreatureTurn(creature) end function onCreatureSay(cid, type, msg)msg = string.lower(msg) dist = getDistanceToCreature(cid)if dist >= 8 thenreturnendtalk_start = os.clock() if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')else if focus > 0 then selfSay('Wait.') endendif(focus == 0) thenselfSay('Hello ' .. creatureGetName(cid) .. '! .')focus = cidendtalk_start = os.clock()endif string.find(msg, '(%a*)offer(%a*)') and cid == focus thenselfSay('I am selling all types of rings!')endif string.find(msg, '(%a*)rings(%a*)') and cid == focus thenselfSay('I Sell Axe Ring,Club Ring,Crystal Ring,Dwarven Ring,Esmerald Bagle,Energy Ring,Gold Ring,Life Ring.Might Ring,Power Ring,Ring of Healing,Ring of the Skies,Stealth Ring,Sword Ring,Time Ring and Weding Ring.')talk_start = os.clock()returnendif string.find(msg, '(%a*)axe ring(%a*)') and cid == focus thenselfSay('Do You want to buy an Axe Ring for 400gps?')talk_start = os.clock()itemid = 2208count = 1cost = 400talkcount = 1returnendif string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 then talkcount = 0buy(focus,itemid,count,cost)endif string.find(msg, '(%a*)no(%a*)') and cid == focus thenselfSay('Ok, is there something else you want? If so tell me.')itemid = 0count = 0cost = 0talkcount = 0end if string.find(msg, 'bye(%a*)') and cid == focus thenselfSay('Farewell, ' .. creatureGetName(cid) .. '!')focus = 0itemid = 0talk_start = 0talkcount = 0end endfunction onCreatureChangeOutfit(creature)endfunction onThink() if (os.clock() - talk_start) > 10 then if focus > 0 then selfSay('Next please!') talkcount = 0end focus = 0 itemid = 0talk_start = 0 end if focus == 0 thencx, cy, cz = selfGetPosition()randmove = math.random(1,50)if randmove == 1 thennx = cx + 1endif randmove == 2 thennx = cx - 1endif randmove == 3 thenny = cy + 1endif randmove == 4 thenny = cy - 1endif randmove >= 5 thennx = cxny = cyendmoveToPosition(nx, ny, cz)--summons = 30--summons2 = 30endend pronto vc fez um npc seller,pelo menos a base,se vc quiser adicionar comando para vender,comando de respostas,vendas etc... LEMBRE-SE:SEMPRE PULE DUAS LINHAS(APERTE ENTER DUAS VEZES) Script de comando: _________________________________________________________________ elseif talk_state == <number> then if msgcontains(msg, 'yes') then if pay(cid,10000) then selfSay('/premmy 15 ' .. creatureGetName(cid)) selfSay('Now this character have some days of premium account.') else selfSay('Sorry, you do not have enough money.') end end talk_state = 0 _________________________________________________________________ Significados: esse comando é como funciona a premmy,onde está /premmy...vc troca pelo comando,exemplo: /m XxXxXXxXx,/promote e o outro selfsay é o que ele vai falar e aqui acaba a parte dos NPC'S Espero que entenderam qualquer duvidas msg me Ah Um exercicio para garantir,Faça um Npc Com o Nome E-plate,e ponham ele para vender uma e-plate e depois me falem os resultados, me falem error,error de concordancia,dificuldade em tal lugar etc... agora próxima fase: SPELLS Vá em Data>Spells,Copie e cole qualquer um e ponha o nome de Fire apague tudo dentro e ponha isso: Explicando: Atack Type: Physical o que eu puis neste é o melhor pois o unico monstro imune é o diptrah e o ghost needDirection: É se precisa de direção,se voce colocar true,vc vai pricisar por 1,2,3,4 nas direções exemplo: se voce por direção,voce vai ter que por assim: exemplo exori flam ____________________________________________________________ area = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } _______________________________________________________________ e se voce por false,só poe o numero 1,que vai acertar em tal area INDENPENDETE DA Posição esses quatro é onde mudamos a animação... areaEffect: é o principal tipo,esse explosion que está ai,vai sai fire,igual uma ue,mais se pode mudar,para mudar vá em outras spells,exemplo quero por de sd, Vai na runa de sd vai em areaEffect e copie o que está lá e cole na magia hitEffect = NM_ME_EXPLOSION_DAMAGE quando vc hitar,acertar algum char ou monstro é o que vai ficar,nesse caso ae vai suir um fogo,para mudar é igual o primeiro,faça a mesma coisa só que no comando diferente(claro) os Outros deixe do jeito que está pois senão pode dar debug onde está assim: _____________________________________________________________ UltimateExplosionObject.minDmg = (level * 3 + maglv * 4) * 3.4 - 40 UltimateExplosionObject.maxDmg = (level * 3 + maglv * 4) * 4.0 end _____________________________________________________________ o dano vai causar,por 3x seu lv e 3.4x seu ml, vc pode diminui para fazer uma spell mais fraca, e aumentar para fazer uma spell exagerada, Você Pode encontrar diferentes tipos de atacks,modos,efeitos,na pasta Lib do seu OTServer Spells.xml <spell name="Nome" words="palavras magicas" maglv="ml" mana="<mana>" enabled="1"><vocation id="2" /><vocation id="1" /></spell> Signs: spell name = Nome da Spell words = Palavras magicas)o que voê fala para soltar a magia) maglv = ml para soltar a spell mana = mana para soltar a magis enabled = Se a Magia é promovida ou não vocation id = é a vocação que a usa 1= sorc, 2= druid , 3= pally , 4= kina E Aqui Já Acabou a Parte das Spell Exercicio faça uma magia que saia,4 traços pros lados de qualquer tipo, e uma que saia 4 areas na sua frente para o lado que voce virar... MONSTERS Os monstros sao uns dos mais facéis Começando: Os monstros sao facéis por causa da ordem olhe no começo bem facil de editar Explicando: Monster name = Nome do Monstro(lembre-se ele tem que ser renomeado por fora tambem, Level = Nao precisa nem falar né? quanto mais level mais forte MgLevel,quando mais ml mais forte as magias canpushitems,se o monstro pode mover objetos changetarget = indica a dificuldae,facilidade para o monster trocar de alvo combat targetdistance = a distancia de quantos sqm o monster deverá ficar do player runonhealth = A life em que o monstro irá fugir defenses = imunes do monter voices = voz dos monstros(aquelas alaranjadas) tudo quanto maior, mais forte o monstro... Atacks <attack type="melee" maxdamage="60"/> isso ele irá atacar com melee(fist somente) a o maximo de dano será 60 vc pode adicionar para ele tacar bolts> <attack type="distance" name="bolts" mindamage="<minimo>" maxdamage="<maximo>"/> arrows: <attack type="distance" name="arrows" maxdamage="60"/> em maxdamage vc altera o maximo que irá causar <atack type ="distance" Significa ataque do tipo distance(arrow,bolt,power bolt,spear,stones,entre outros) Danos Com Runas: <attack type="rune" name="nome da runa" exhaustion="exaustion do monstro" cycleticks="8000" probability="chances de acertar"/> Loot: <item id="3288" chance="6666"/> item id = id do item que vai cair, chance é a chance de cair maximo 10000,que cai sempre,no forum>downloads de scripts,outros, tem um topico falando as chances Summons: <summons maxSummons="Quantos Summons"> <summon name="Nome do Monstro" chance="Chance"/> </summons> para atacar Spells: <attack type="instant" name="Spell" exhaustion="500" cycleticks="20000" probability="40"/> e aqui termina os monstros <loot> <item id="3288" chance="6666"/> item id = id do item chance = chance do item cair aqui temos a lista de chances: --100000= all time----50000= each 2 time----33333= each 3 time----20000= each 5 time----10000= each 10 time----6666= each 15 time----5000 = each 20 time----4000 = each 25 time----3333 = each 30 time----2857 = each 35 time----2500 = each 40 time----2222 = each 45 time----2000 = each 50 time----1818 = each 55 time----1666 = each 60 time----1538 = each 65 time----1428 = each 70 time----1333 = each 75 time----1000 = each 100 time----909 = each 110 time----833 = each 120 time----800 = each 125 time--666 = each 150 time----588 = each 170 time----555 = each 180 time----500 = each 200 time----400 = each 250 time----333 = each 300 time-- Quests Quests é nas Actions, e na verdade nem é tão dificil ai vai crie um arquivo .lua chamado hmm - Hmm Questfunction onUse(cid, item, frompos, item2, topos) if item.uid == 5003 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,5003,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end elseif item.uid == 5004 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have Found 100 uh to Hunt.") doPlayerAddItem(cid,2265,100) setPlayerStorageValue(cid,5003,1) else doPlayerSendTextMessage(cid,22,"It is empty.") endelseif item.uid == 5017 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found 100 explosion to hunt.") doPlayerAddItem(cid,2305,1) setPlayerStorageValue(cid,5003,1) endelse return 0 end return 1end _______________________________________________________________ Explicando: ______________________________________________________________ if item.uid == <id> then queststatus = getPlayerStorageValue(cid,<id>) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,5003,1) else _____________________________________________________________ if item.uid == <id> then onde está escrito <id> é a continuação exemplo vc vai em chest .lua(que se localiza na pasta actions) o ultimo foi 5010 o proximo deve ser 5011 e assim por diante if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") _________________________________________________________ if quest status == 1 traduzindo: se status de quest ==1 , traduzindo: se o player nao fez a quest -_____________________________________________________________- doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") ____________________________________________________________ Recebe esta msg e recebe o item doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,<id>,1) doPlayerAddItem(cid,2311,100 2311 é o id do item que o char recebe se voce quiser por level na quest add o seguinte antes de: _________________________________________________________ else doPlayerSendTextMessage(cid,22,"It is empty.") ________________________________________________________ add isso: Não Necessariamente level,essa é a mensagem que ele recebe se não tiver Level e depois de: if queststatus == -1 then add isso: if getPlayerLevel(cid) >= 20 then significa Se o player tiver Level <lv> ele passa na quest mais se for inferior doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.") e assim voce faz uma quest, depois é só ir no mapa editor,colocar o chets no lugar que vc quer,e clica com o direito e em uid add o numero da quest Lembre-se se a ultima foi 5010 a proxima é 5011 e assim por diante Próximo: e Ultimo (q demoro pakas heim muitos poukos devem estar lendo aki neh mais tudu bem) Lv Door ai vai: --Hmm function onUse(cid, item, frompos, item2, topos)doorpos = {x=frompos.x, y=frompos.y, z=frompos.z}playerpos = getPlayerPosition(cid)playerlevel = getPlayerLevel(cid)if item.itemid == 1234 and doorpos.x == 1 and doorpos.y == 1 and doorpos.z == 1 thenif playerlevel > 100 thendoTeleportThing(cid,doorpos)elseif playerlevel < 100 thendoPlayerSendTextMessage(cid,22,"Você precisa ser level 100 para passar.")endendreturn 1end __________________________________________________-- Explicando: Coisa que vc precisa Mudar: if item.itemid == <id> and doorpos.x == <xxx> and doorpos.y == <yyy> and doorpos.z == <z> then <id> = Id da porta doorpos.x,doorpos.y,doorpos.z, São as coordenadas da Porta,isso você vê no MapEditor você poe o mouse sobre o lugar,e embaixo,do lado direito aparecem as coordenadas. Ajuste Isso de acordo com o lugar de onde voce por a level door no ot Level if playerlevel > 100 then Onde Está Escrito 100 then <100> é o level necessario para passar na door voce poe o level que quiser doPlayerSendTextMessage(cid,22,"Você precisa ser level 100 para passar.") Mensagem que o Player Recebe ao nao ter Level para passar... Exemplo: if playerlevel > 200 then doPlayerSendTextMessage(cid,22,"Se acha que passa né?Ahhh Rapa!Pricisa de Level 200,Meia Volta.") ufa acabo ateh q enfim heim quase ngm deve ter vindo ateh aki se vc veio nossa como vc aguenta? hehe espero q tenhaum gostado Créditos: Dum amigo rl q axo na net na casa do primo dele dai ele sabia q eu ia volta aki e me deu pra eu posta e kramba demorei quase 2h pra escreve tudu issu hehe, e infelizmente os créditos não sao meus dinovu, mais eu to voltando agora e logo logo farei um como o meu ultimo q felizmente ao chegar aki fikei sabendo q ele foi fixado ainda num descobri onde neh hehe mais ele fo fixado! vlw ae comentem plz! Atenciosamente, Sir Picaralhos. :laughing:
    1 ponto
  20. Edminotto

    David Luiz sign

    Estava sem nada pra fazer e resolvi brincar um pouco com o Photoshop. Esse foi o result Avaliem ^^
    1 ponto
  21. Roksas

    [Evento] Free For All

    [EVENT] Free For All Como vão galerinha do Éks? Hoje tive uma ideia bem maluquinha e vim trazer para vocês, é o Evento Free For All! Mas oque ele faz? O Free For All é um evento aonde o GOD/GM/ADM o reproduz, ele usa o comando: /free quant E assim em X segundos começa a aparecer itens sorteados em posições sorteadas, tudo configurável, vamos instalar? ~~ Vá em data/talkactions/scripts, copie algum arquivo da pasta e cole, renomeie para event_FFL.lua, abra-o com o bloco de notas e cole isso dentro: Em talkactions.xml adicione essa tag: <talkaction words="!freeitems;!free;/freeitems;/free" acess="5" event="script" value="event_FFL.lua"/> Prontinho, basta usar o comando citado no começo do tópico, exemplo: /free 3 Começa o evento e cria 3 itens sorteados Configurando o código: local event_cfg = { items = {2148, 2494, 2152}, pos = {{x = 1000, y = 1000, z = 7}, {x = 995, y = 995, z = 7}, {x = 1005, y = 995, z = 7}}, timeto_start = 1 } Em items, separados por vírgulas, coloque o ID dos itens que podem ser sorteados no Evento. Já em pos você coloca separadas por vírgulas e entre {} as coordenadas aonde podem cair itens, use sua criatividade, coloque coordenadas dos cantos do templo, de uma rua, etc. Aonde está timeto_start é os minutos em que começa o Evento após você usar o comando! ~~ Boa sorte galerinha, beijo grande Críticas, dúvidas e sugestões tô ae!
    1 ponto
  22. Roksas

    [Evento] Free For All

    Está aí amigão.
    1 ponto
  23. a talk é essa changevoc.lua function onSay(cid, words, param) local tabble = { ["sorcerer"] = 1, ["druid"] = 2, ["paladin"] = 3, ["knight"] = 4 } local param = string.lower(param) if param == "" or not tabble[param] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"this vocation does exist.") return true end local pid, nv = getPlayerGUID(cid), tabble[param] setPlayerStorageValue(cid, 889456, nv) -- evitar bugs local hp,mana = (getVocationInfo(nv).healthGain*getPlayerLevel(cid)),(getVocationInfo(nv).manaGain*getPlayerLevel(cid)) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `manamax` = "..mana..",`health` = "..hp..", `healthmax` = "..hp..",`mana` = "..mana.." WHERE `id` = "..pid) return true end tag: <talkaction words="/changevoc" event="script" value="changevoc.lua"/> exemplo: /changevoc knight configuração: local tabble = { ["sorcerer"] = 1, ["druid"] = 2, ["paladin"] = 3, ["knight"] = 4 } ["nome da vocation"] = ID da vocation exemplo adicionando uma nova vocation: local tabble = { ["sorcerer"] = 1, ["druid"] = 2, ["paladin"] = 3, ["knight"] = 4, ["infernalist"] = 5 } -------------------- agr pra finalizar vc vai em data > creaturescript > script > login.lua e antes do último "return true" adc isso: if getPlayerStorageValue(cid, 889456) ~= -1 then doPlayerSetVocation(cid, getPlayerStorageValue(cid,889456)) end flw obs: colocar a talk soh para utilizar em PZ e aumentar o limite de tempo para usar a talk isso é fácil mas esse script é pra vc fazer o teste se a mana e o hp vao ficar conforme o lvl
    1 ponto
  24. tem que colocar pz tool no Centro Pokémon acho, e adicionar a posição da nurse, acho que é isso
    1 ponto
  25. Muito simples meu amigo, você só tem que marcar a área do Centro Pokemon com a Protection Zone, é escudo verde no mapa editor !
    1 ponto
  26. DretiDemon

    Inauguração da Seção de Bots

    Desculpa, lembro que alguns anos atras a equipe disse que NUNCA iria colocar conteúdo de bot's em seu fórum que era contra seus ideais.. vejo que vocês mudaram isso "facinho" para ter mais acessos.. me desculpa mais esse é meu modo de ver.
    1 ponto
  27. Pode sim, mas não aconselho, visto que terá problemas com o otitemeditor.
    1 ponto
  28. Olha Eu Não Tenho O Scripter Aki Mais No SErvidor Sem Lvl 1.6 Do Slicer Tem Esse Npc Que é os Npc Da Policia ai Só ( Player ) Quando Chega Perto Dele Ele ataca Com Adm Não Funciona
    1 ponto
  29. AdilsonHacker

    [Encerrado] Diminuir attack da SD

    Você configura o rit dela aqui : setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5, -25, -19, -55, 5, 6, 7, 5) Abraços!
    1 ponto
  30. Desinstala o remere's, e exclui a pasta. Depois faz novamente tudo o que eu falei.
    1 ponto
  31. WebTutoriais

    [Encerrado] [PEDIDO] Icon System

    Ainda Não Foi Públicado Um Geito Funcional De Adicionar Icon System Em Outros Servidores , Os Tópicos Que Você Deve Ter Visto É De Como Adicionar Mais Pokemons No Icon System Do Servidor Smix . Abraços .
    1 ponto
  32. LuckinhaSan

    [Encerrado] Erro com SQL.

    É contra as regras pedir reputação. @kaldito Na área de servidores derivados, você poderá encontrar novas versões de servidores Pokemon, onde é possível juntar stones.
    1 ponto
  33. AlphaLove

    [Encerrado] Erro com SQL.

    vai no teu config.lua, apaga TUDO o que tem la dentro e cola isso.. Ajudei ? Rep +
    1 ponto
  34. Alexclusive

    [Tutorial] Facebook Cover

    Caros chegados, aqui venho hoje para ensinar vocês a como criar uma Cover p/ o facebook de vocês, usando o Photoshop Cs5. Eu tinha postado uma que fiz p/ meu e o pessoal pediu um tutorial de como fazer. Então está aqui..Aproveitem! 01- Criei um arquivo com o tamanho de 958x422 px : 02- Agora vá em File/place e escolha a imagem desejada. Eu usei uma foto tirada por mim mesmo: (Ajuste como quiser) (Minha imagem) vocês podem usar qualquer outra, mais ai os efeitos não serão os mesmos. 03- Agora vamos escolher quais abstratos vamos usar. (lembrando mais uma vez, que você pode usar qualquer outra foto com qualquer outro abstrato que você achar melhor) Para essa capa e essa foto, usei esses: Download 1 / Download 2 04- Agora vamos importar os abstratos pra nossa imagem escolhida no passo dois. Para fazer isso apenas repita o processo file/place, selecionando os abstratos no local que você salvou. Adicione primeiro a imagem 1, ficando assim a sua imagem: 05- Mais Alex, minha imagem está menor e na frente da outra, o que devo fazer? Segure Ctrl+Alt (se não segurar a imagem fica deformada) e aumente o abstrato de um jeito que ele preencha a tela toda ou que fique de um jeito que você goste. Depois clicando com o botão direito do mouse encima do abstrato e click em Place. Sua imagem deve ficar assim: 06- Mais Alex, minha imagem ainda continua encima da original. Agora basta você alterar o Blending Mode da layer para Screen, que foi o que eu usei. (Eu sempre passo por todos p/ ver qual fica melhor) Sua imagem deve ficar assim: 07- Agora vamos adicionar o abstrato 2 e fazer o mesmo procedimento que fizemos com o abstrato 1. Lembrando que você deve posicionar cada layer do jeito que você achar melhor. Sua imagem deve ficar assim: 08- Selecione todas as layers e aperte Ctrl+E p/ mesclar as layers. Feito isso vamos usar a ferramenta Crop, apertando a letra C de seu teclado, selecione toda a capa e com o botão direito do mouse click em Crop. Com isso estamos eliminando qualquer parte que não vamos usar. 09- Terminando o passo oito, você fica com apenas uma layers. Selecione a mesma e vá em Blending Options: 10- Selecione a opção Stroke, altera a posição p/ inside e coloque o tamanho e cor desejada. Com isso criamos uma borda. A minha ficou assim: Sua imagem deve ficar assim: 11- Agora vamos usar um filtro que dá um efeito legal. Vá em Filters/Render/Lens Flare e deixe sua box da seguinte forma: Sua imagem deve ficar assim: Eu sempre dou uma melhorada nas cores de meus trabalho depois de pronto. Vocês pode fazer o mesmo! A tipografia, fica a critério de cada Designer. Lembrando que não vai ser todo abstrato que vai ficar bem com toda foto ou vise versa. Abraço e até o próximo Minha imagem Final:
    1 ponto
  35. Roksas

    Client PxG

    Junin favor não passar informações de contato pessoal nos tópicos, use o sistema de Mensagens do fórum para isto. Obrigado e espero que entenda.
    1 ponto
  36. Vá em creaturescript , login.xml é remova essa parte : else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) é salve agora vamos para o script : Vá em creaturescript crie um arquivo lua chamado "playeroutfit" é cole isso dentro : Agora Vá em login.lua é registre essa tag : registerCreatureEvent(cid, "playeroutfit") Agora Em creaturescript Adicione essa tag : <event type="login" name="Outfit" event="script" value="playeroutfit.lua"/> Pronto ! me Deve 2 rep Em kk qualquer coisa tamos aqui! Abraços!
    1 ponto
  37. Vá Em CreatureScript Crie um arquivo lua chamado "Vocation_Outfit" é cole isso dentro: Creio Que Você Já tenha isso no seu servidor bronson sé tiver apenas substitua o seu por este que vai funcionar , crie outra conta no acc manager e veja ! Em Creaturescript.xml adicione essa tag : <event type="login" name="Out" script="Vocation_Outfit.lua"/> é Adicione Isso No Seu Login : registerCreatureEvent(cid, "Vocation_Outfit") Faça outra conta no acc manager e test Abraços!
    1 ponto
  38. DiogoTemporario

    Minhas fotografias [iPhone]

    Finalmente um tópico sobre fotografia não iniciado por mim ou por aquele outro cara. Favor não usar instagram, estragou a cor de suas fotos. Por exemplo na do carro, abaixo, o vignetting e a redução de contraste aplicados deixaram o carro pouco visível. Estas são as únicas que salvam, de um ponto de vista técnico: Na à direita é interessante ver ambas as perspectivas opostas no mesmo frame (a espelhada, que marquei de vermelho, e a da rua em frente ao carro). No mais são fotos que para você podem ser boas recordações, mas de um posto de vista técnico não apresentam nada demais. Você mora onde? Obs.: Exceção é esta, em que as cores ficaram muito boas com o filtro: Nem sei se foi você quem tirou as fotos e tenho quase certeza que você não dá uma foda para essas merdas que eu falei, mas resolvi comentar de qualquer jeito.
    1 ponto
  39. Alexclusive

    Minhas fotografias [iPhone]

    Bom, todas as fotos aqui tiro por diversão no meu dia a dia. Estarei atualizando esse tópico sempre com mais e mais fotos. Logo postarei mais fotos!
    1 ponto
  40. dbruno

    Show Off - dbruno

    Seguindo com o show off: Mapa que me garantiu o 1º lugar no melhor mapa #49 + correções: bônus: um "X" (usando a shovel na frente da pá enterrada, você pode descer)
    1 ponto
  41. MatheusGlad

    getPrimes([range])

    Para saber se um numero é primo voce só precisa testar se ele é multiplo de 2 ate a raiz desse numero. Sua funçao demora 7.565 segundos para pegar o range de 2 ate 100000 Ja esta aqui leva 0.198 segundos. function getPrimes(range) range = range or 2 local ret = {} local function isPrime(n) for d = 2, math.sqrt(n) do if n % d == 0 then return false end end return true end for i = 2, range do if isPrime(i) then table.insert(ret, i) end end return ret end
    1 ponto
  42. Bom esse sistema é Simples, ele funciona assm: Se eu executar o comando "/rename DinoAdmin, Dino" Eu mudo meu nome de DinoAdmim para Dino. Esse sistema serve para voce quem tem um servidor Grande e Com Muitas accounts Criadas... Digamos que entre um GM Novo no seu server e para voce não ter que procurar o nome dele no meio de mais de 5 mil acounts para mudar voce pode esta mudando o Nome dele pelo servidor executando o comando "/rename" vamos parar de enrrolar e vamos lá... 1° Vá em data/talkaction/scripts/ Crie Um Arquivo Chamado "account.lua" e cole isso dentro: Agora em Data/talkation/talkacton.xml/ cole esta tag: <talkaction log="yes" words="/rename" access="5" event="script" value="account.lua"/> Agora voce não preisa Procurar conta por conta é so mudar por comado. Veja: 11:56 /rename trade, [GM] Trade 11:56 You have changed trade's name to [GM] Trade. Espero que gostem do script. Creditos: Equipe Pokemon Adventures DinoAdmin Nessa Henke
    1 ponto
  43. tibiaa4e

    Pasta Data - Monstros

    Pasta Enciclopedia com todos os links de outros tutoriais ! Link do Tópico Principal Parte II – Monstros Esse será meu tutorial de monstros mudado para versão 8.21+, eu refiz ele pois eu acho que estava apesar de muito bom obsoleto e preferi refaze-lo ao invés de apenas muda-lo. Os ataques e defesas explicarei ao final. Aqui o exemplo de monstro : <?xml version="1.0" encoding="UTF-8"?> <monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="280" manacost="0"> <health now="8200" max="8200"/> <look type="35" corpse="5995"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="82" attack="80" /> <attack name="demon gfb" interval="5700" chance="80" min="-180" max="-250" /> <attack name="mana drain" interval="10000" chance="70" /> <attack name="demon geb" interval="9000" chance="75" min="-360" max="-480" /> <attack name="Fire Field" interval="5600" chance="85" /> </attacks> <defenses armor="50" defense="45"> <defense name="healing" interval="1000" chance="15" min="90" max="200"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="1000" chance="15" speedchange="200" duration="20000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element firePercent="100"/> <element physicalPercent="25"/> <element earthpercent="20"/> <element energyPercent="20"/> <element deathPercent="20"/> <element icePercent="-25"/> <element holyPercent="-10"/> </elements> <immunities> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="2"> <summon name="fire elemental" interval="6000" chance="40" max="2"/> </summons> <voices interval="5000" chance="10"> <voice sentence="Your soul will be mine!" yell="1"/> <voice sentence="MUHAHAHAHA!" yell="1"/> <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/> <voice sentence="I SMELL FEEEEAAAAAR!"/> <voice sentence="Your resistance is futile!" yell="0"/> </voices> <loot capacity="350"> <item id="2148" countmax="20" chance1="100000" chancemax="90000" /> gold <item id="2148" countmax="90" chance1="70000" chancemax="63000" /> gold <item id="2148" countmax="100" chance1="42000" chancemax="9800" /> gold <item id="2152" countmax="3" chance1="6600" chancemax="1200" /> platinum <item id="2151" countmax="7" chance1="5600" chancemax="3000" /> talon <item id="2795" countmax="6" chance1="12000" chancemax="800" /> fire mush <item id="2171" chance="7200" /> platinum a <item id="2462" chance="4500" /> devil h <item id="2179" chance="4200" /> gold ring <item id="7591" chance="5300" /> Great Health <item id="7590" chance="5200" /> Great Mana <item id="2470" chance="1400" /> golden legs <item id="2472" chance="800" /> magic plate amor <item id="1987" chance="100000"> <inside> <item id="2149" countmax="3" chance1="12000" chancemax="2001" /> small emerald <item id="2148" countmax="100" chance1="10888" chancemax="9200" /> gold <item id="2387" chance="48000" /> double a <item id="2176" chance="9999" /> orb <item id="2418" chance="7600" /> golden s <item id="1982" chance="7300" /> purpel tome <item id="2214" chance="6820" /> roh <item id="2396" chance="6800"/> ice rapier <item id="2165" chance="6860" /> stealth ring <item id="2432" chance="6200" /> fire a <item id="2164" chance="5100" /> might r <item id="2393" chance="4100"/> giant sword <item id="2520" chance="3200" /> demon shield <item id="5954" countmax="1" chance1="2600" chancemax="0" /> demon horn <item id="7368" countmax="5" chance1="2300" chancemax="0" /> assasin star <item id="2514" chance="1450" /> msm <item id="7382" chance="1300"/> demonrage sword <item id="7393" chance="900" /> demon trophy </inside> </item> </loot> </monster> Vou explica-lo passo a passo o que significa e ao final tentar enteder como se faz ele. <monster name="Demon" nameDescription="Demon" race="fire" experience="6000" speed="280" manacost="0"> <health now="8200" max="8200"/> <look type="35" head="0" body="0" legs="0" feet="0" addons="0" corpse="5995" /> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> Monster Name : É o nome que dele que aparece ou para ser sumonado ou colocado no map editor. nameDescription : É o nome que aparecera ao dar look. Lembrando que a significa um ou seja só se usa em boss. race : A raça dele. Ou seja o tipo de "sangue " que sai ao tomar dano. Existe 4 raças listadas abaixo : venom : Venenosa, como Giant Spider, spider ou outros insetos. blood : Blood é o mais normal sai sangue quando morre. Como Wolfs,trolls e outros tipos de humanos. undead : Mortos, ou seja só sai aquele dano, como Skeletons, Vampire ou Mummys. fire : Raça de fogo, como Demons,Fire elemental e outros. experience : A experiencia que ele da ao ser morto. speed : A velocidade inicial dele, lembrando que um player lvl 1 tem 220 de velocidade. Para fazer monstros que são "estatuas", coloque speedy 0. manacost : A mana que prescisara para ele ser sumonado, caso seja 0 ele não poderá ser sumonado. E também é valida para convece-lo Health now : A vida que o monstro iniciara ao ser sumonado ou dar spawn. max : Esse é o health maximo. looktype : O id da roupa do monstro. head : É a cor da cabeça do monstro. body : É a cor do tronco do monstro. legs : É a cor da perna do monstro. feet : É a cor do pé do monstro. (caso não seja um editavel pode ser retirado.) addons : É o numero de addons.(0-sem, 1- addon 1, 2 -addon 2 e 3-Todos os addons). corpse : O corpo dele quando ele morre (pode ser qualquer item.). target change interval: É o quanto em milessegundos o monstro demora para tentar mudar de alvo.(1000 = 1 segundo). chanche: A chanche de ele tentar mudar de alvo (maximo é 100). strategy attack: Isso funciona como o sistema do player de ataque defesa. O calculo de attack e defesa não pode ultrapassar 100. Então normalmente os monstros vem com 100 de ataque e 0 de defesa. Um monstro como mais defesa pode ser mudado. defense: Ler acima. Nessa parte, talvez você queira fazer um monstro com o jeito de um item, como aquelas torres de ankhrahmun. Para isso troque a linha do looktype para essa : <look typeex="1560"/> Onde esse numero é o id do item. Tabela de cores Agora vamos explicar a parte de flags. <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> summonable : Se ele pode ou não ser sumonado por players. A mana é configurada no manacost. attackable : Se ele pode ser atacado. Por exemplo aquelas torres magicas de ank não podem. hostile : Se ele é hostil ou não. Chickens, deer não são hostis. illusionable : Se ele pode ser usado pela spells "utevo res ina". convinceable : Se ele pode ser convencido pela runa. pushable : Se ele pode ou não ser "empurrado". canpushitems : Se ele empurra ou não itens. (caso não seja possivel empurrar o item, ele destruira. canpushcreatures : Se ele empurra ou não criaturas. Caso não seja possivel empurrar e a criatura tiver menos health que seu dano maximo ele a matará). targetdistance : O quanto de sqm ele atacará o player. (caso faça monstros não hostis coloque + de 4. Tente não colocar mais de 8) staticattack : É a chanche de o monstro ficar parado. Porém ao colocar muito pouco ele não ficará nem um segundo parado. runonhealth : Qual o minimo de vida para ele correr. Caso ele "heale" e isso passar desse valor, ele voltará a atacar. Agora sobre elements (imunidades). Lembrando que valores negativos querem dizer fraqueza e positivos é boa defesa contra o elemento. <elements> <element firePercent="100"/> <element physicalPercent="25"/> <element earthpercent="20"/> <element energyPercent="20"/> <element deathPercent="20"/> <element icePercent="-25"/> <element holyPercent="-10"/> </elements> fire : O quanto de imunidade a fogo ele terá. physical : O quanto de imunidade a fisico ele terá (Melee e Explosion Spell). earth : A antiga poison. energy : O quanto de imunidade a energy. death: O quanto de imunidade a morte (Death Strike e Sudden Death). ice : O quanto de imunidade a gelo ele terá. holy : O quanto de imunidade a benção ele terá (apenas paladinos tem esse tipo de spell). Nas imunidades é apenas colocar os nomes. E o monstro terá imunidade, hoje em dia é usado para elementos não citados acima e outros tipos. Os que existem são physical fire earth ou poison energy death ice holy lifedrain paralyze outfit drunk invisible drown (dano dos monstro de agua) Agora a parte de summons : <summons maxSummons="2"> <summon name="fire elemental" interval="6000" chance="40" max="2"/> </summons> maxSummons : Numero maximo de summons que ele poderá ter vivas. summon name : O nome do monstro que ele sumonará. interval : De quanto em quanto tempo ele tentará sumonar o monstro em milessegundos. chanche : A chanche de ele tentar sumonar. max : O maximo que ele sumonará vivos esse monstro. (pelo amor deixe isso maior que o maximo dele.) Agora a parte dos gritos: <voices interval="5000" chance="10"> <voice sentence="Your soul will be mine!" yell="1"/> <voice sentence="MUHAHAHAHA!" yell="1"/> <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/> <voice sentence="I SMELL FEEEEAAAAAR!"/> <voice sentence="Your resistance is futile!" yell="0"/> </voices> interval: De quanto em quanto tempo ele tentará falar. chanche: De quanto em quanto tempo ele poderá falar. voice sentence: A fala que ele irá falar. yell: Se essa fala será um grito ou não. Agora o que eu considero uma das partes mais importantes do monstro. Infelizmente a maioria das pessoas, não se interressam por ela E seus monstros ficam uma verdadeira merda... <loot capacity="250"> <item id="2148" countmax="20" chance1="100000" chancemax="90000" /> gold <item id="2148" countmax="90" chance1="70000" chancemax="63000" /> gold <item id="2148" countmax="100" chance1="42000" chancemax="9800" /> gold <item id="2152" countmax="3" chance1="6600" chancemax="1200" /> platinum <item id="2151" countmax="7" chance1="5600" chancemax="3000" /> talon <item id="2795" countmax="6" chance1="12000" chancemax="800" /> fire mush <item id="2171" chance="7200" /> platinum a <item id="2462" chance="4500" /> devil h <item id="2179" chance="4200" /> gold ring <item id="7591" chance="5300" /> Great Health <item id="7590" chance="5200" /> Great Mana <item id="2470" chance="1400" /> golden legs <item id="2472" chance="800" /> magic plate amor <item id="1987" chance="100000"> <inside> <item id="2149" countmax="3" chance1="12000" chancemax="2001" /> small emerald <item id="2148" countmax="100" chance1="10888" chancemax="9200" /> gold <item id="2387" chance="48000" /> double a <item id="2176" chance="9999" /> orb <item id="2418" chance="7600" /> golden s <item id="1982" chance="7300" /> purpel tome <item id="2214" chance="6820" /> roh <item id="2396" chance="6800"/> ice rapier <item id="2165" chance="6860" /> stealth ring <item id="2432" chance="6200" /> fire a <item id="2164" chance="5100" /> might r <item id="2393" chance="4100"/> giant sword <item id="2520" chance="3200" /> demon shield <item id="5954" countmax="1" chance1="2600" chancemax="0" /> demon horn <item id="7368" countmax="5" chance1="2300" chancemax="0" /> assasin star <item id="2514" chance="1450" /> msm <item id="7382" chance="1300"/> demonrage sword <item id="7393" chance="900" /> demon trophy </inside> </item> </loot> loot capacity : O maximo que o monstro terá de itens dentro de si, Lembrando que dificilmente um monstro que vem muita coisa passa de 180. itemid: O id do item que ele dropará. countmax: O maximo que o item virá, podendo ser stackable ou não. Porém prefiro usar so para stackable. (não use isso para dar mais de 100, pois fica ridiculo.) chanche1: A chanche que o monstro dará o item. chanchemax: A chanche de ele dar a quantidade maxima do item. Agora algumas dicas : -Como a linguagem é xml, adicione o nome do item que ele dar, para se for editar, você não se confude. Pode colcoar sem nenhum caractere especial -Coloque sempre monstros com bag, para isso faça isso : <item id="1987" chance="100000"> <inside> <item id="7393" chance="900" /> demon trophy </inside> </item> Ou seja não feche a tag do item 1987 (bag de rook), e abra a tag inside (dentro) e coloque tudo o que quiser, (não faça cair mais de 8 itens na bag), depois feche a tag inside e feche a tag item. Ai a bag so virá quando cair algo dentro, se quiser fazer bags vazias coloque ela como um item normal separado. - Não faça um monstro que não seja boss cair muitos itens, pois fica ridiculo. - Se quiser que um monstro drope um item sempre (como os pharaos dropam aqueles itens, faça ele com chanche 1000000, ai ele sempre cairá. Bem agora é a parte legal dos monstros, bem legal é no começo é um verdadeiro saco, depois fica muito legal (Eu por exemplo adorei fazer 250 monstros no zorzin ot, e agora ter que fazer denovo pq o tibia mudo tudo ¬¬). Bem eu ensinarei como fazer spells em monstros, porém você poderá usar as feitas em spells tradicional, (eu uso as minhas antigas). Vou explicar essa do demon. <attacks> <attack name="melee" interval="2000" skill="82" attack="80" /> <attack name="demon gfb" interval="5700" chance="80" min="-180" max="-250" /> <attack name="mana drain" interval="10000" chance="70" /> <attack name="demon geb" interval="9000" chance="75" min="-360" max="-480" /> <attack name="Fire Field" interval="5600" chance="85" /> </attacks> attack name: Nome da magia, alguns nomes são reservados para já constar a condição (explicados mais a frente). Para usar as magias ja criadas use o nome dela. interval: Tempo em milessegundos, que ele atacará. chanche: A chanche de ele atacar o player. skill : Só pode ser usado com o nome Melee, siginifica o skill do monstro attack: Seria o ataque da arma do monstro (imaginaria). Bem nesse monstro ele usa magias criadas por mim que estão no spells. Agora vamos fingir que eu fiquei fresco, e não quero mais usar magias do spells, pq kero limprar 1kb do meu hd. Então vou refazer todas elas dentro do monstro. Começando pela geb (Great Energy Beam): Lembra que eu falei que tem as palavras reservadas ? Então cada magia do Tibia tem sua condição e esses nomes ja dão o tipo dela. "melee", "physical", "poison", "earth", "fire", "ice", "freeze", "energy", "drown", "death", "curse", "holy", "lifedrain", "manadrain", "healing", "speed", "outfit", "invisible", "drunk", "firefield", "poisonfield", "energyfield", "firecondition", "poisoncondition", "energycondition", "drowncondition", "freezecondition", "cursecondition" Só para os duvidosos curse é death e dazzled é benção. Pelo amor de deus, não me façam explicar cada um dos nomes reservado. Pelo nome já da pra imaginar. Agora que já temos isso Vamos construir nossa GEB Ela fica assim : attack name="energy" interval="9000" chance="30" length="8" spread="0" min="-380" max="-420"> <attribute key="areaEffect" value="purpleenergy"/> </attack> Esse length e spread são definições do tamanho dela. Onde : length - comprimento. spread - seria mais ou menos a largura. radius - raio da magia. Ou seja o numero de sqm em relação ao centro para as pontas. Acredito que essa será a parte mais complicada de explicar. EU prefiro dar por exemplos. Imagine as seguintes magias a firewave, great energy beam e Great fireball. Para fazer uma firewave deviamos usar isso length="4", spread="4"; A great energy beam : lenght="8", spread="0" A Great Fireball : radius="4" Para explicar o radius tem essa figura {0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 8, 8, 7, 8, 8, 0, 0, 0, 0}, {0, 0, 0, 8, 7, 6, 6, 6, 7, 8, 0, 0, 0}, {0, 0, 8, 7, 6, 5, 5, 5, 6, 7, 8, 0, 0}, {0, 8, 7, 6, 5, 4, 4, 4, 5, 6, 7, 8, 0}, {0, 8, 6, 5, 4, 3, 2, 3, 4, 5, 6, 8, 0}, {8, 7, 6, 5, 4, 2, 1, 2, 4, 5, 6, 7, 8}, {0, 8, 6, 5, 4, 3, 2, 3, 4, 5, 6, 8, 0}, {0, 8, 7, 6, 5, 4, 4, 4, 5, 6, 7, 8, 0}, {0, 0, 8, 7, 6, 5, 5, 5, 6, 7, 8, 0, 0}, {0, 0, 0, 8, 7, 6, 6, 6, 7, 8, 0, 0, 0}, {0, 0, 0, 0, 8, 8, 7, 8, 8, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0} Ou seja com raio 8 ele abrangerá tudo isso. Então ele ficará um tipo de triangulo, tornando nossa vida mais pratica. O length seria simplesmente o numero 1,2,3,4,5,6,7,8. Ou seja , uma reta O spread sempre é usado junto com o length. O spread maximo é contado apenas no ultimo sqm do length, então ele ficaria assim : {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 3, 0, 0}Sendo o 3 o primeiro sqm da magia. Ao sqm de numero 4, ele fica com 4 de largura e vai diminuindo até que fique em 0. Meio complicado de explicar, tente fazer testes que você encontrará facilmente. Bem isso você ja sabe, como fazer magias espontaneas. Agora tem aquelas magias que os montros tacam na direção do player Para isso acontecer apenas adicione a tag target="1" range="7" Target ou alvo é para ele tacar no monstros. E range o maximo de sqm ele poderá tacar no alvo. Pois muito bem, agora tentei explicar, o modo de fabricar as distancias dela. Agora tem mais duas magias que tem prefixos diferentes, que é outfit e paralyze ou haste. As duas tem uma diferença em comum que é duration, que seria o tempo que durará o efeito speedchange para paralyze ou haste (coloque valores negativos para diminuir, se tiver em defesa só o player será afetado, se tiver em defesa o monstro será afetado). item="id" ou monster="nome" para o item ou monstro que o atacado virará ao receber a magia. Exemplo de magia que paraliza <attack name="speed" interval="7600" chance="30" range="7" speedchange="-600" duration="20000"> <attribute key="areaEffect" value="icetornado"/> </attack> E muda outfit <attack name="outfit" interval="11900" chance="40" range="7" item="7172" duration="8000"> <attribute key="areaEffect" value="blueshimmer"/> <attribute key="shootEffect" value="snowball"/> </attack> Para que o player fique bebado é so colocar o nome drunk e a duração. Para ele tacar fiels também é a mesma coisa, só colocar o nome. Para lifedrain coloque o nome e os efeitos Bem se você entendeu essa explicação muito confusa, parabens mesmo. Se não tente ler umas 2x que acho que vc entenderá. Se não entendeu, vá a merda xD A ultima parte dos ataques é tentar fazer os efeitos. Os nomes em xml são diferentes dos que são em LUa, porém como eu aqui Só quero facilitar suas vidas eu fiz uma tabela enoorme e chata que mostra elas. Primeiro vamos explicar os efeitos : <attribute key="shootEffect" value="poison"/> <attribute key="areaEffect" value="redshimmer"/> shootEffect é o efeito que sai quando a magia é disparada. areaEffect é quando ele chega. Isso é facim, so saber as tags corretas aqui vai a tabela de shootEffect. Essas { e } é que eu copiei das sources... Para compara-las a lua, teste os efeitos com !x "1,2,3 e talz Agora os areaEffect Para verificar esses de o comando !z"1,2,3 sei la Isso so funciona no TFS, duvido que a porcaria do Ares tenha essa talk action. Bem aqui se encerra o tutorial de monstros, esse fico mais completo, talvez confuso se houver muitas reclamações posso tentar melhorar, já que como to sem internet fiz isso no notepad++, e é meio estranho... Agora vai as dicas para fazer bons monstros. Dicas Faça monstros "reais", não misturem elementos, ao não ser que eles sejam magos tipo warlock. O loot deve ser equivalente a sua força Não adianta um Wolf dar magic plate armor, claro que tem suas exceções. Tente fazer loots lerdos para ots com exp até 20 Pois não tem graça matar 5 demons e pegar magic plate armor e goldens legs. O legal é quando você pegar um loot maximo, você se sentir orgulhoso. Monstros de água devem ter velocidades maiores e não podem ser usados em chão normal, pq eles seriam ultra-velozes, e monstros de terra em agua seriam verdadeiras largatas. No tibia hoje em dia os elementos tem fraquezas para outros e fortes em outros. A ordem é Ice < energy < earth < fire < ice Então se o monstro for nativo do gelo, ele será forte contra fogo e fraco contra energia. E mesmo um monstro de gelo não pode dar uma dragon robe, ficaria estranho. O grande problema que eu vejo é na montagem de Boss. Normalmente eles dão loots estupendos e são extremamente impossivel de matar, porque tacam diversas magias e tem sangue exurberante. Dependendo da exp do seu ot, faça uns mais brandos. Respawns Diversifique os monstros, não faça um ot que ao chegar em um nivel alto ele fique morando em um certo tipo de monstro, como demons. Os monstros que normalmente são lucrativos pelo dano/exp são dragons (dragon,dl,frost). Crie areas grandes deles, e também de outros mais visados. Como demons, behemoths, criaturas de POI. Se você criar um monstro faça ele um legal, que de um loot razoavel (de preferencia raro). Em areas de quests, faça monstros que se "deem" beem. Por exemplo uma area com Fire Elemental, não pode ter bichos que não tem imunidade a fogo, porque ele mataria todos. Para criar Boss, não use respawn fixo no map editor, use a raids, que tem um tutorial (ou terá em breve) na aba da seção Para que o boss seja esperado e não uma coisa normal e chata. Encerro esse tutorial, esperando que seja util para todos vocês e esperem as proximas partes. O comentario é a principal comunicação COmento se gostou ou não de sugestões, reclamações ou me ofenda sei la. Espero que tenha ajudado bastante.
    1 ponto
  44. Vodkart

    Getguildmembers Online/offline

    Tem duas funções que tem como objetivo retornar os players de uma certa guild, uma serve só para pegar os players de uma guild que estejam online e a outra retorna todos os jogadores mesmo que esteja offline. function getGuildMembersOnline(GuildId) local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == tonumber(GuildId) then table.insert(players, pid) end end return #players > 0 and players or false end function getGuildMembers(GuildId) local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");") if (query:getID() ~= -1) then repeat table.insert(players,query:getDataString("name")) until not query:next() query:free() end return #players > 0 and players or false end
    1 ponto
  45. VictorWEBMaster

    [GESIOR] VictorWEBMaster 2019v

    Execute em seu phpmyadmin o seguinte código: ALTER TABLE `bans` ADD `reason` VARCHAR( 10 ) NOT NULL ; ------------------- Certifique-se de voce colocou o diretório correto do seu servidor. Diretorio está C:\Kingdomconfig.lua... Re-veja isto.
    1 ponto
  46. PedroXtibiaaaa

    Como Criar Um Instalador

    Primeiro de tudo baixe o Install Creator [download]http://www.theclickteam.com/webftp/files/5/5/icpinst.exe[/download] Depois de instalado abra-o, vai aparecer isto: se não aparecer tentem clicar em new. Clique em avançar, escolham a pasta que está o cliente de vocês e clique em avançar. Escolham a linguagem que vai ser o instalador e embaixo o nome do produto. Sempre cliquem em "preview" para ver como vai ficar antes, clique em avançar. Em default vai ser a opção de instalação, Windows, Linux... e embaixo vai ser caso você queira que precise de um serial key pra que possa abrir o arquivo, aconselho a não botar, clique em avançar. Aqui você vai escolher como vai ser o instalador, se ele vai ser full screen ou small screen, com a opção full screen você pode escolher o nome que vai aparecer la em cima, um background ou as cores que vão aparecer no fundo. Para quem escolheu Full Screen: ali em browse você vai escolher a imagem que você quiser como fundo e embaixo são as opções: Stretch (Esticar) - Pattern (Padrão) e do outro lado é o alinhamento: Left (Esquerda) - Center (Centro) - Right (Direita) - Top (Topo) - Center (Centro) - Bottom (Fundo) Para quem escolheu Small Screen: No primeiro onde está escrito Default você pode escolher o que achar melhor, para visualizar basta clicar Preview. Embaixo em Left Bitmap você pode escolher a imagem que você vai querer que apareça na Esquerda do instalador, a imagem tem que ser no tamanho de 140x316. No outro em Top Bitmap é a imagem que vai ficar em cima, tem que ser no tamanho de 57x57. Depois disso clique em avançar. Nessa parte você pode escrever as informações que quiser, sobre como criar conta, como jogar... Clique em avançar. Nessa parte você vai poder colocar algum termo ou condição para aceitar. Clique em avançar. Aqui você pode escolhar em qual lugar a pasta do seu servidor vai ser salva, aconselho a deixar do jeito que esta. Clique em avançar. Aqui você vai poder escolher se quer ou não que o instalador crie um icone do seu cliente no desktop. Primeiro em Browse ache o seu client, e embaixo escolha o nome que você quer que apareça. Clique em avançar. Aqui não mexa no primeiro, e no segundo você pode escolher se quer que o programa execute o seu cliente quando a instalação terminar, para isso clique em browse e escolha o seu cliente. Clique em avançar. Deixe marcado Uninstall Program para que os outros não tenhma problemas para desinstalar o seu cliente. Clique em avançar 2 vezes, desmarque a opção "Do not build the install Program" Vai abrir uma janela para "Salvar como" coloque Install e feche, se ele pedir pra salvar mais alguma coisa coloque com o nome de Install Config.
    1 ponto
  47. Ae eu tenho um no meu ot , é 8.5 e funciona! Ot/data/npc copie qualquer script, renomeie pra trocadeitens , apague tud o que estiver dentro, e cole isto: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do Npc" script="data/npc/scripts/troca.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="332" head="0" body="0" legs="0" feet="0"/> <parameters> <parameter key="message_greet" value="Aqui voce bota uma msg que voce quiser, poder ser informando os itens que poder sem trocados , voce escolhe" /> </parameters> </npc> depois em data/npc/scripts , copie qualquer script, renomeie pra troca , apague tud o que estiver dentro, e cole isto: local talk_state = 0 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 function creatureSayCallback(cid, type, msg) if msgcontains(msg, 'nome do item') then if getPlayerItemCount(cid,6512) >= 1 then if doPlayerRemoveItem(cid,6512,1) then doPlayerAddItem(cid,1990,1) npcHandler:say('mensagem quando o item é trocado.') end else npcHandler:say('mensagem quando o player nao tem o item') talk_state = 0 end elseif msgcontains(msg, 'bye') then npcHandler:say('Até mais, ' .. getCreatureName(cid) .. '! Volte em breve...') talk_state = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) explicando: aonde ta ali "nome do item" é o que o player vai falar pra trocar os items! if getPlayerItemCount(cid,6512) >= 1 then << aqi voce muda o id do item que o player precisa ter, e 1 then é a quantidade if doPlayerRemoveItem(cid,6512,1) then << aqi pra remover o item, e a quantidade doPlayerAddItem(cid,1990,1) << aqi o tem que o player irá ganhar na troca ai voce muda pra o que voce quiser. Espero ter ajudado! ^^
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...