Ir para conteúdo
  • Cadastre-se

ADM Mayk on BaiakME

Membro
  • Total de itens

    196
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    ADM Mayk on BaiakME deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019   
    Atualização de 29/06/2019.
     
    Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
    Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
     
    - Foi mudado algumas imagens de layout para renovar a estrutura.

     
    - Server Info + Most Power Ful Guilds na mesma estrura.

     
    - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
    a segurança do seu cliente e dificultando futuras dores de cabeças.

     
    - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
    - Algumas mudanças de layout.
    - Nome do player abaixo linkado.

     
    - Adicionado um Box de doação, com a intenção apenas de complementar
    o layout enriquecendo a pagina.

     
    - Fixado o bug edit town, e melhorado o layout.

     
    - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.

     
    - Visão normal.

     
    - Inventário completo.
    - Guilds com visão ampliada.

     
    - Detalhes...

     
    - Novo SHOP com as estrutura de layout melhorada e modernizada.
    - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.

     
    - Detalhes...

     
    - Detalhes...

     
    - Detalhes...

     
    - Histórico do SHOP...

     
    DOWNLOAD SITE
    SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL   TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME   Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
  2. Gostei
    ADM Mayk on BaiakME deu reputação a SuggestName em Paper Doll System   
    Fala galera, só gostaria de compartilhar a minha ultima criação, um paper doll para tibia global.
     

     
    Video demonstração
     
     
    Por enquanto é isso pessoal, conforme eu atualizar o código eu mostro para vocês...
  3. Curtir
    ADM Mayk on BaiakME deu reputação a GamerGoiano em APaguem esse post   
    Baixa os arquivos do OTCLIENT:
    https://github.com/edubart/otclient

    Baixa esse compilado e poe dentro da pasta acima:
    http://www.mediafire.com/file/v3a1m3x3xay6v4e/otclient-df422c0.exe/file

    Depois vai em data/things crie uma pasta com a versão do seu TFS, tipo 860 ou 854 e coloca o tibia.spr e tibia.dat dentro dessa pasta.
  4. Gostei
    ADM Mayk on BaiakME deu reputação a Soldoran em [PROJETO] Yurots Edited   
    Olá amigos tudo bem?
    Hoje lhes trago um projetinho que começou com o Mapa do Yurots 1.2 um dos que já foram os mapas mais conhecidos
    e servidor de base do milhares de mapas "Baiaks", é um projeto pessoal que edito sempre que a vontade vem... gosto de servidores médio easy então tem teleportes.
     
    |--| Algumas Features |--|
     
    |-- SYSTEM --|
    - MINING SYSTEM
    - DODGE SYSTEM
    - CRITICAL SYSTEM
    - OFFLINE TRAINER 8.6 SYSTEM
    - GUILD WAR SYSTEM
    - CAST SYSTEM
    - SHOP OFFLINE SYSTEM
    - FRAG ADVANCED LOOK SYSTEM

    |-- EVENT --|
    - BLOOD CASTLE
    - CAPTURE THE FLAG
    - FIRE STORM EVENT
    - ZOMBIE EVENT
    - CASTLE OF HONOR 24H
     
    |---| Algumas imagens do Servidor |---|
     
    Ilha 999 8.60  (não exatamente igual, mas baseada)

     
    Merchant City (cidades para negociações e para usar o sistema de loja offline) (Mapa baseado na cidade "Lorencia" do Mu Online)

     
    Shopping do Servidor entrada

     
    Shopping para Knights

     
    Treino offline 8.60

     
    Templo

     
    Teleports Room

     
    Quest Room

     
    Npcs (todos com nomes personalizados para melhor identificação)

     
    Mineração

     
    Gran Castle Event (mapa baseado no Castle Siege do Mu Online)

     
    Castle of Honor 24 Horas

     
    Fire Storm Event

     
    Capture the Flag

     
    Blood Castle Event

     
    Zombie Event

     
    Catacombs 8.60 (não exatamente igual, mas baseada)

     
     
    Atualização 09/08/17
     
    Adicionado um efeito de Aura para quem usar as armas Vips (script by PcL)

     
     
    Evento Battlefield adicionado

     
     
    Atualização 17/08/2017
     
    Summon System (baseado no global)

     
    Eai oque acharam? Lembre-se é um servidor médium easy
    então ele tem uma exp nem baixa nem exagerada, e claro os teleportes 
     
  5. Gostei
    ADM Mayk on BaiakME deu reputação a GamerGoiano em APaguem esse post   
    APaguem esse post
  6. Curtir
    ADM Mayk on BaiakME deu reputação a DdJs em Warlocks Hunt | 8.60   
    Cave hunt - Warlocks Cave.
     
    Download: Here
     
    Scan: Here

    Imagens:
     

     

     

  7. Obrigado
    ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6   
    @Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril.
     
    local config = { [1445] = { str = 5050512, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 50505326, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end No login.lua adicione isso:
    local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 1) end end O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril.
    OBS: Lembre-se de não deixar as storages iguais.
  8. Obrigado
    ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6   
    Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro.
     
    Em data/actions, abra o arquivo actions.xml e adicione esta tag:
    <action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/> Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril.
     
    Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione:
    local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 0) end end OBS: As storages de cada barril precisam ser diferentes uma da outra.
    Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros.
  9. Curtir
    ADM Mayk on BaiakME deu reputação a KOLISAO em (Resolvido)Criar Mana/Health Cask em 8.6   
    No tibia RL, o barriu some após a carga acabar.
    https://www.tibiawiki.com.br/wiki/Mana_Cask
     
    Uma dica:
    Para fazer funcionar na house, basta adicionar o barril em um constructionkit em actions, editar o item.otb para poder dar moveable no barril e um script onMove para que o mesmo não seja possível ser arrastado para fora da house.
    Cria um barril em items.xml/otb ou edita algum que não será utilizado, adiciona cargas nele e decayto 0
    Exemplo:
    <attribute key="charges" value="1000"/> <attribute key="showcharges" value="1"/> <attribute key="decayTo" value="0"/> Você deve por também:
    <attribute key="fluidSource" value="mana potion"/> ou <attribute key="fluidSource" value="health potion"/>  
    Acho que só isso já deve funcionar. Claro que, você deve testar para saber se as cargas estão contando ao utilizar um vial vazio no cask. Também precisa ver se ao utilizar 100 vials vazios, ele vai encher todos de uma só vez
     
     
    Eu criei roshamuul 8.6, oramond, war zone... Tudo é possível, só não fica perfeito XD
    Até exercise weapon para 8.6 eu fiz, mas a galera q joga na 8.6 nem sabe oq é isso  
  10. Curtir
    ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6   
    @KOLISAO Entendi.. thanks!
    @Aldimun Vou deixar aqui o script que criei, se quiser usar fica a seu critério hue
     
  11. Gostei
    ADM Mayk on BaiakME deu reputação a Huni em Lothus Online™ - Project RPG   
    Última Atualização: 18/06/2019, 02:07 BRT
     
    OBS: Esse é apenas um resumo do Lothus Online!
     
    [+] O Projeto
     
    Por conta de alguns acontecimentos, a equipe decidiu modificar o nome de World of Tibia para Lothus.
     
    Facebook do projeto: https://www.facebook.com/LothusOnline
     
    O projeto foi iniciado á 6 meses,  Lothus Online conta com 2 integrantes e será baseado no mundo de Azeroth. E estaremos trazendo esse mundo fantástico e misterioso para os tibianos. Meu objetivo é criar um novo estilo de jogo, com sistema de PVP competitivo: Battleground e Arena e PVE: Dungeon e Raid. A primeira versão do jogo será simples, e ao longo da história e dos acontecimentos de Azeroth, o mundo ganhará conteúdos novos.
     

     
    A Origem dos Mundos
     
    Ninguém sabe exatamente como o universo começou. Alguns teorizam que uma explosão cósmica catastrófica espalhou as jóias do infinito nos mundos na imensidão da Grande Escuridão – mundos que um dia teriam formas de vida maravilhosas e fofas. Outros acreditam que o universo foi criado por uma única entidade todo-poderosa. Embora as origens exatas do universo caótico permaneçam incertas, está claro que uma raça de seres poderosos surgiu para trazer estabilidade a esses vários mundos e assegurar um futuro seguro para os seres que seguissem seus passos.
     
    Os titãs, deuses colossais que tinham a pele metálica, dos cantos distantes do cosmo, exploraram o universo recém nascido e se fixaram nos planos encontrados para trabalhar nele. Eles moldaram os mundos elevando imponentes montanhas e cavando vastos oceanos. Espiraram céus e criaram atmosferas. Tudo partindo de um plano, criar ordem a partir do caos. Eles deram poder a raças primitivas para cuidar e manter a integridade dos seus respectivos planos.
     
    Comandado pela elite conhecida como o Panteão, os titãs trouxeram ordem a cem milhões de mundos espalhados ao longo da Grande Escuridão do Além, durante os primeiros anos de criação. O benevolente Panteão que buscava proteger estes mundos estruturados, sempre estava vigilante contra a ameaça de ataque das entidades extra-dimensionais vis da Espiral Etérea. O Caos Inferior, uma dimensão etérea de magias caóticas que conectada a inúmeros mundos do universo, era lar de um número infinito de seres malignos que só buscavam destruir a vida e devorar as energias vivas do universo. Incapazes de conceber o mal em qualquer forma, os titãs tentaram achar um modo de terminar com a constante ameaça dos demônios.
     

    Facções:
     
    Alliance
     

     
    As nobres raças da aliança estão unidas por altivas tradições de nobreza, honra, fé, justiça e sacrifício. Os muito povos dessa facção contribuem com sabedoria técnica arcana e espiritual para alcançar um mundo pacifico e justo.
     
     
    Horde
     
     
     
    As altivas nações da horda estão unida por uma frágil aliança de convivência de um mundo hostil que buscava destruí-las. Determinadas, ferozes e as vezes monstruosas, a horda valoriza a força e a honra, mas luta para manter agressividade sob controle.
     


    [-] Mapa
     
    O mundo de Azeroth é a terra natal de várias raças, as mais notáveis sendo os elfos (elfos da Noite, elfos Nobres, elfos de Sangue e outros), humanos, anões, taurinos, goblins, trolls, gnomos e dragões.
     

     

     

     

     

     
     
     
     
     

     
    [-] Sistema Profissão 
    – Profissões de produção:
             Encatamento: Encantar Itens (dando ML, resistência, etc)
              Ferraria: Criar itens com ataque e armadura mais fortes
              Alquimia: Criar poções mais fortes (Buffs, regeneração mais alto, etc)
     – Profissões de coleta:
             Herborismo: Coletar Plantas (Alquimia)
             Mineração: Coletar Minérios (Ferreiro)
               Destruição de equipamentos: Coletar magia dos itens (Encatamento)
     

     


    [-] Equipe
    Como a primeira versão será MVP, preciso de uma Equipe dedicada (não precisa ser profissional e sim força de vontade, querer aprender , ter ideias bacana, e querer inovar sempre e ter disciplina). Sou Mapper e mexo com mapa já tem 8 anos. E nossas vagas disponíveis:
     
    Scripter  Spriter Designer Mapper  
    Para se inscrever,  é só me add no discord:  Marcelo Weis#1024
     
  12. Gostei
    ADM Mayk on BaiakME deu reputação a Huni em Lothus Online™ - Project RPG   
    Obrigado a todos pelo apoio, o projeto está caminhando muito bem e em breve estarei fazendo um canal no youtube e página no facebook para vocês acompanharem todo o desenvolvimento.
     
    Ainda temos vaga disponível para programador, spriter e designer!
    Contato está no tópico.
  13. Curtir
    ADM Mayk on BaiakME deu reputação a Snowsz em Creature Information Offset   
    Faz tempo que não posto nada, então deu vontade, tava brincando um pouco ai fiz esse sisteminha básico.
     
    • Gifs
     
    Nesse primeiro Gif, ao trocar a direção da Outfit, o nome e as barras de informações como Health, Mana, mudam de posição, isso é bom para ajustar as Outfits de acordo com o seu tamanho, como o Demon, ficar com as informações logo em cima da cabeça, ou Hydra, todos estão com o local padrão.

     
    Aqui era como as informações ficavam com essa Outfit originalmente, no padrão de sempre dos clients.

     
     
    Comparativo em imagem estática:
     
    Tibia Outfit antes e depois:

     
    Aqui estão algumas outfits que meu primo @Fae1z fez, apliquei o sistema de offset nelas, uma do Graves, uma do Ekko, ambos são personagens do game League of Legends, e uma baseada Uganda Knuckle:
     
    Ekko antes:

     
    Ekko depois:

     
    Graves antes e depois:

     
    Uganda Knuckle antes e depois:

     
    Aqui eu estava brincando de por as informações da Outfit de anão de modo drogado kkk.

     
     
    • Código
     
    Em Creature.h modifique nesta linha:
    void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
    Ficando:
    void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags)  
    Embaixo de:
     
    std::string getName() { return m_name; } Adicione:
     
    Point getInformationOffset() { return m_informationOffset; } void setInformationOffset(int x, int y) { m_informationOffset.x = x; m_informationOffset.y = y; }  
    Embaixo de:
    Position m_oldPosition; Adicione:
     
    Point m_informationOffset;  
     
    Agora, em Creature.cpp procure por:
    void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
    Ficando:
    void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Sim, isso está repetido, é assim mesmo, o processo é necessário em Creature.h e Creature.cpp, nessa função a variável point tem seu tipo alterado de Const para normal.
     
    Ainda em Creature.cpp procure por:
    if(!useGray) fillColor = m_informationColor; Pule duas linhas e adicione:
    point.x += m_informationOffset.x; point.y += m_informationOffset.y;  
    Agora, em Luafunctions.cpp procure por:
    g_lua.bindClassMemberFunction<Creature>("jump", &Creature::jump); Embaixo adicione:
    g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);  
    A parte da source é só isso.
     
    Foi criada uma variável do tipo Point na classe Creature, que pode armazenar dois valores do tipo Int, sendo eles X & Y, assim detendo uma posição de offset, para ajustar a posição das informações(Health Bar, Mana Bar e Name) da criatura, essa variável é usada na função Creature::drawInformation, onde ocorre todo o desenho de informações das criaturas, lá o offset criado altera a posição de um Point usado como posição base das informações, alterando esse Point todo o resto segue aquela posição,  você pode setar o offset diretamente na criatura, as funções podem ser usadas tanto na source usando C++ quanto nos scripts usando Lua, em Lua o uso das funções é o seguinte:
     
    Essa função retorna uma tabela com X & Y, algo como "table = {x = 10, y = 20}", são as posições do offset.
    Creature:getInformationOffset() Exemplo de uso:
     
    local Offset = Creature:getInformationOffset() print(Offset.x) print(Offset.y) Isso vai printar no client_terminal do OTClient os valores de X & Y.
     
    Enquanto esta altera as posições usando os valores X & Y.
    Creature:setInformationOffset(x, y) Exemplo:
    Creature:setInformationOffset(10, -5)  
    Essa configuração de offset vai aumentar X em 10 Pixels e diminuir Y em 5 Pixels, no meu primeiro gif, na direção Sul do Char, eu usei X diminuindo 13 Pixels e Y diminuindo 8 Pixels, algo como isso:
    Creature:setInformationOffset(-13, -8)  
     
    Para tudo isso funcionar igual os gifs acima eu fiz um módulo especial, onde dependendo da Outfit e da direção que a criatura está olhando, ele vai alterar o offset de acordo.
     
    Para criar o módulo, siga estes passos:
     
    Na pasta do OTClient em modules/ crie uma pasta chamada game_creatureinformation, dentro crie um arquivo com o mesmo nome e a extensão .otmod, algo como "game_creatureinformation.otmod", o conteúdo do arquivo é este:
    Module name: game_creatureinformation description: Changes the position of the informations point to correctly draw names and creature bars. author: Snowsz website: tibiaking.com autoload: true reloadable: true sandboxed: true version: 1.0 scripts: [ game_creatureinformation ] @onLoad: init() @onUnload: terminate()  
    Crie um arquivo com o mesmo nome e a extensão .lua, algo como "game_creatureinformation.lua", o conteúdo do arquivo é este:
    --[[ Directions: North /\ East > South \/ West < Structure: [OutfitID] = { [Direction] = {x = OFFSETX, y = OFFSETY}, } ]] --Lista de offsets para cada Outfit. local OutfitOffsets = { [143] = { --Outfit do primeiro gif [North] = {x = -13, y = -8}, [East] = {x = -17, y = -8}, [South] = {x = -13, y = -8}, [West] = {x = -15, y = -8}, }, [160] = { --Outfit de anão com o nome full drogado. [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = -13, y = -80}, [West] = {x = 0, y = 0}, } } local function translateDir(dir) if dir == NorthEast or dir == SouthEast then return East elseif dir == NorthWest or dir == SouthWest then return West end return dir end local function getOutfitInformationOffset(outfit, dir) if OutfitOffsets[outfit] then return OutfitOffsets[outfit][translateDir(dir)] end return {x = 0, y = 0} end local function onCreatureAppear(creature) local Offset = getOutfitInformationOffset(creature:getOutfit().type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureDirectionChange(creature, oldDirection, newDirection) local Offset = getOutfitInformationOffset(creature:getOutfit().type, newDirection) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureOutfitChange(creature, newOutfit, oldOutfit) local Offset = getOutfitInformationOffset(newOutfit.type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end function init() connect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) connect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end function terminate() disconnect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) disconnect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end  
    A parte do módulo está finalizada, o que resta agora é configurar as Outfits na tabela com seus determinados Offsets, e não se preocupe, se a outfit não estiver configurada, ela vai seguir o padrão normal, o módulo só altera algo quando determinada Outfit está configurada.
     
    Para configurar o módulo é simples, basta seguir o padrão:
    [ID DA OUTFIT AQUI] = { [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = 0, y = 0}, [West] = {x = -0, y = 0}, }, Nos primeiros colchetes coloque o ID da sua Outfit para ter o offset modificado, os colchetes restantes são as direções, não é necessário mexer neles, dentro de cada índice da tabela tem os offsets X & Y, basta modificar o valor de acordo, sendo ele positivo ou negativo. NÃO SE ESQUEÇA DA VÍRGULA NO FINAL "},".
  14. Gostei
    ADM Mayk on BaiakME deu reputação a FlavioHulk em (Resolvido)criando novas paredes com ID's novos ERRO   
    <item fromid="179" toid="180" article="a" name="muralha wall" /> <item id="181" article="a" name="muralha pillar" /> <item id="12468" article="a" name="[Donate] BaiakME Doll"> <attribute key="description" value="Use o Item Para Ganhar o [DONATE] BaiakME Outfit." /> <attribute key="weight" value="50" /> </item>  
  15. Gostei
    ADM Mayk on BaiakME deu reputação a Lyu em Legendary Lever (Alavanca de Itens Lendários)   
    Fala clã, há um tempo soltei um sistema privado meu no grupo do TK no Discord e hoje resolvi soltar aqui no Fórum também, abaixo irei explicar um pouquinho sobre esse sistema.
     
    O que é Legendary Lever?
    É um sistema de alavancas que vendem itens (aleatórios), similar à uma surprise bag, porém cada item possui x porcento de chances de dropar ao jogador que estiver pagando para tentar a sorte.
     
    Qual o objetivo afinal?
    Bom, na época que desenvolvi esse sistema, era para um cliente meu que acabou desistindo da compra quando eu estava prestes a começar a desenvolver. O objetivo do cara era criar 5 alavancas, onde cada alavanca teria pelo menos 1 item lendário com 3% de chance de dropar ao jogador que estivesse puxando a alavanca, e cada alavanca teria entre 5 a 7 itens ao todo (a maioria itens simples). Mas a ideia por trás de tudo era lucrar com isso, fazer jogadores donatarem mais para poder tentar pegar esses itens lendários (claro, o cara ia ter que gastar muito pra isso). Terminou que resolvi desenvolver esse sistema com proteção contra duplo click, exaustão, logs de ações, etc.
     
    Em qual versão posso utilizar esse sistema?
    Esse sistema foi programado para rodar em TFS 1.x. Se vocês quiserem, em breve posso converter para 0.4 e trazer ao Fórum, mas aí vai depender do feedback
     
    Sem mais delongas, vamos ao sistema!
    antes de tudo, crie uma pasta chamada legendarylever em data/actions/scripts, e dentro da legendarylever crie outra pasta chamada lib.
     
    data/actions/scripts/legendarylever/lib/lib.lua :
     
    agora abra data/lib/lib.lua e inclua esta linha :
    dofile('data/actions/scripts/legendarylever/lib/lib.lua')  
    Feito isso, você já pode começar a criar os arquivos das alavancas. Vamos então criar a nossa primeira alavanca!
     
    data/actions/scripts/legendarylever/royalcrossbow.lua :
     
    data/actions/actions.xml :
    <action actionid="3370" script="legendarylever/royalcrossbow.lua"/>  
    E por fim, adicione a actionid 3370 em uma alavanca no Remere's Map Editor! ?
     
    Para criar novas alavancas, você já deve saber o que se fazer. Sim! CTRL + C CTRL + V no arquivo royalcrossbow.lua, renomea o nome, edite a tabela de itens, preços, premium etc e adicione a tag no XML com uma nova actionid (a actionid põe em uma nova alavanca no Remere's).
     
    A configuração não preciso nem explicar né! A única dica que dou, é deixar brodacast = true apenas nos itens mais difíceis de dropar, ou seja, os lendários. Porque isso irá anunciar ao servidor todo que aquele player conseguiu o danado do item haha ?
     
    Então é isso, espero que tenham gostado!
     
    *Edit: Para salvar log de ações, crie uma pasta chamada randomitems em data/logs.
     
    Créditos: Lyu (isme)
     
     
  16. Gostei
    ADM Mayk on BaiakME deu reputação a GiovaniRodrigo em (Resolvido)da use em x item é receber a outfit   
    Ele funciona da seguinte maneira, o jogador usa o item de ID X para ganhar a OUTFIT X. Esse item só pode ser usado uma vez por jogador.
     
    Na pasta data/actions/scripts crie um arquivo itemOutfit.lua e coloque esse código:
    local config = { tableItem = { -- [Id do item] = {storage = Não mexa, outfitFemale = lookType do outfit feminino, outfitMale = lookType do outfit masculino} [2018] = {storage = 200201, outfitFemale = 371, outfitMale = 370}, [2019] = {storage = 200202, outfitFemale = 373, outfitMale = 372}, [2020] = {storage = 200203, outfitFemale = 375, outfitMale = 374}, [2021] = {storage = 200204, outfitFemale = 377, outfitMale = 376}, [2022] = {storage = 200205, outfitFemale = 379, outfitMale = 378}, [2024] = {storage = 200206, outfitFemale = 381, outfitMale = 380}, [2025] = {storage = 200207, outfitFemale = 383, outfitMale = 382} }, addons = 3, -- 0 = Sem Addon / 1 = First Addon / 2 = Second Addon/ 3 = Full Addon needPZ = true, -- true = Precisa estar na protect zone / false = Não precisa estar na protect zone message = "You received a new outfit.", messagePZ = "You need to be in a protect zone.", -- Mensagem se o player não estiver na protect zone messageError = "You already have this outfit." -- Mensagem se o player já tem o addon } function onUse(cid, item, fromPosition, itemEx, toPosition) for id, x in pairs(config.tableItem) do if(item.itemid == id) then if(getPlayerStorageValue(cid, x.storage) > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.messageError) elseif(needPZ == true and not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.messagePZ) elseif(doRemoveItem(item.uid, 1)) then if(getPlayerSex(cid) == 0) then doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerAddOutfit(cid, x.outfitFemale, config.addons) setPlayerStorageValue(cid, x.storage, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.message) else doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerAddOutfit(cid, x.outfitMale, config.addons) setPlayerStorageValue(cid, x.storage, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.message) end end end end return true end No arquivo actions.xml coloque essa tag:
    <action itemid="2018;2019;2020;2021;2022;2024;2025" event="script" value="itemOutfit.lua"/> Altere o itemid da tag que você colocou no actions.xml de acordo com os ID dos itens que você configurou no script itemOutfit.lua
     
    TESTADO TFS 0.4 - SCRIPT FUNCIONAL
     
    Log:
    Acrescentado:
    needPZ = true, -- true = Precisa estar na protect zone / false = Não precisa estar na protect zone message = "You received a new outfit.", -- Mensagem quando ganha o outfit -- Efeito doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer Bug corrigido:
    (LuaInterface::luaDoRemoveItem) Item not found
  17. Curtir
    ADM Mayk on BaiakME deu reputação a Apache em EVENTO ILHAS TEMATICAS + PHP + MAPA   
    Olá pessoal como falei irei postar alguns eventos sem bugs para vocês e GRÁTIS!
    Estarei também postando uma source OTX paga para vocês.
    Chega de enrolar vamos ao evento (Particularmente gosto muito desse)
    **SÓ CONFIGUREM NO MAPA DO EVENTO O LOCAL DE SAÍDA DAS ILHAS**
    **EVENTO NÃO É DE MINHA AUTORIA MAS COMO É MEU ESTOU POSTANDO**
     
    Vídeo mostrando como funciona o evento
    obs: link para o vídeo estava localizado dentro do script
                                                                 
        
    5 bosses localizados nas ilhas temáticas
    Os jogadores deverão se unir para conseguir vencer todos os bosses das ilhas e atingir a última com o mais temido. Apenas os bravos guerreiros conseguem chegar ao final, como prêmio eles recebem a experiência dos bosses e loot.
     
     
    Vá em data/creaturescripts/scripts e crie um aquivo chamado IOE.lua e cole isso dentro
    agora na mesma pasta creaturescripts/scripts procure pela pasta login.lua e lá adicione o registro do evento
    após isso vá em data/creaturescripts abra o arquivo creaturescripts.xml e adicione a tag
     
    agora em data/globalevents/scripts crie um arquivo chamado IOE.lua e cole isso dentro
    em globalevents.xml adicione a tag 
    agora na pasta LIB crie um arquivo chamado IOE.lua e cole isso dentro
    agora na pasta data/monsters crie uma pasta chamada IOE e dentro crie 5 arquivos .xml com os seguintes nomes (irei postar o nome do monstro e em seguida o script dele.
    island death.xml
    island earth.xml
    island energy.xml
    island fire.xml
    island ice.xml
    feito isso agora na pasta data/monsters procure por monster.xml vamos registras nossos novos monsters
    agora em data/movements/scripts crie um arquivo chamado IOE.lua e cole isso dentro
    agora em movements.xml adicione a tag
    pronto pessoal o evento já está registrado em seu servidor, agora vocês configurem a seu desejo na pasta data/LIB  
    agora irei postar a query o php e o mapa 
     
    SQL QUERY PARA REGISTRAR O EVENTO EM SUA DATABASE
    PAGINA PHP EM SEU SITE (LINDA)
    AGORA O MAPA (NÃO POSTAREI SCAN, QUEM QUISER BAIXAR É SÓ BAIXAR QUEM NÃO QUISER É SÓ CRIAR UM MAPA PARA SEU EVENTO!)
     
    É ISSO AE ESPERO QUE GOSTEM DEIXEM SEU REP+  
    QUEM PRECISAR DE AJUDA PARA INSTALAR É SÓ PEDIR!
  18. Gostei
    ADM Mayk on BaiakME deu reputação a Mix Absoluto em erro ao importa x monstro pro mapa   
    Tente isso :
    <?xml version="1.0" encoding="UTF-8"?> <monster name="[DNT] Demon" nameDescription="a [DNT] Demon" race="fire" experience="7000" speed="280" manacost="0"> <health now="9200" max="9200"/> <look type="92" 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="40"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="70" attack="130"/> <attack name="manadrain" interval="3000" chance="13" range="7" min="-80" max="-300"/> <attack name="fire" interval="2000" chance="14" range="7" radius="7" target="1" min="-160" max="-350"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="1000" chance="15" range="7" radius="1" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="energy" interval="3000" chance="30" length="8" spread="0" min="-220" max="-460"> <attribute key="areaEffect" value="energy"/> </attack> </attacks> <defenses armor="50" defense="55"> <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="[DNT] Demon Elemental" interval="2000" chance="10" max="2"/> </summons> <voices interval="5000" chance="10"> <voice sentence="MUHAHAHAHA!" yell="1"/> <voice sentence="I SMELL FEEEEEAAAR!" yell="1"/> <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/> <voice sentence="Your resistance is futile!"/> <voice sentence="Your soul will be mine!" yell="0"/> </voices> <loot> <item id="2148" countmax="90" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="80" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="75" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="65" chance="28000"/> <!-- gold coin --> <item id="2152" countmax="3" chance="23750"/> <!-- platinum coin --> <item id="7368" countmax="5" chance="3100"/> <!-- assassin star --> <item id="5954" chance="1150"/> <!-- demon horn --> <item id="2520" chance="750"/> <!-- demon shield --> <item id="10521" chance="28000"/> <!-- moon backpack --> <inside> <item id="2472" chance="150"/> <!-- magic plate armor --> <item id="2514" chance="550"/> <!-- mastermind shield --> <item id="2214" chance="900"/> <!-- ring of healing --> <item id="2149" chance="10000"/> <!-- small emerald --> <item id="2165" chance="1500"/> <!-- stealth ring --> <item id="2171" chance="1200"/> <!-- platinum amulet --> <item id="7382" chance="950"/> <!-- demonrage sword --> <item id="2470" chance="450"/> <!-- golden legs --> <item id="7393" chance="50"/> <!-- demon trophy --> <item id="2462" chance="3000"/> <!-- devil helmet --> <item id="2387" chance="21000"/> <!-- double axe --> <item id="2432" chance="6000"/> <!-- fire axe --> <item id="2393" chance="1650"/> <!-- giant sword --> </inside> </loot> </monster> Se ajudou da +REP parceiro, qualquer coisa avisa ae
     
  19. Curtir
    ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?   
    @ADM Mayk on BaiakME Testei em meu próprio servidor e ta funcional :

    GlobalEvents
    XML
    <globalevent name="Event_Chest1" time="18:00" event="script" value="Event.lua"/> <globalevent name="Event_Chest2" time="16:00" event="script" value="Event.lua"/> <globalevent name="Event_Chest3" time="14:00" event="script" value="Event.lua"/> Script
    local itemID = 1740 -- ID do BAU local bau_sto = 532236 local h = { Segunda = "18", Quarta = "14", Sexta = "16" } local pos = { [1] = {x = 92, y = 127, z = 7}, [2] = {x = 93, y = 126, z = 7}, [3] = {x = 95, y = 126, z = 7}, [4] = {x = 96, y = 127, z = 7}, [5] = {x = 96, y = 126, z = 7}, [6] = {x = 98, y = 126, z = 7}, [7] = {x = 99, y = 127, z = 7}, [8] = {x = 92, y = 125, z = 7}, [9] = {x = 94, y = 124, z = 7}, [10] = {x = 92, y = 123, z = 7} } local function doExecuteEvent() doCreateItem(itemID, 1, pos[math.random(1, #pos)]) doCreateItem(itemID, 1, pos[math.random(1, #pos)]) return true end function onTime(interval) if os.date("%A") == "Monday" and os.date("%H") == h.Segunda then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Wednesday" and os.date("%H") == h.Quarta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Friday" and os.date("%H") == h.Sexta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true end return true end Actions
    XML
    <action itemid="1740" event="script" value="event.lua"/> Script
    local t = { [1] = {50, 2160, 100}, -- [Numero em sequencia] = {CHANCE, ITEM ID, COUNT} [2] = {30, 2325, 1}, [3] = {20, 2678, 1}, [4] = {100, 2956, 5} -- No ultimo da tabela, a chance sempre deverá ser 100 ou terá a chance de o player não ganhar NADA } local storage = 346366 local bau_sto = 532236 function onUse(cid, item, fromPosition, itemEx, toPosition) for a, b in pairs(t) do if math.random(1, 100) <= b[1] and getCreatureStorage(cid, storage) == -1 then doCreatureSetStorage(cid, storage, 1) doPlayerAddItem(cid, b[2], b[3]) end end doRemoveItem(item.uid, 1) if getStorage(bau_sto) == -1 then doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou um BAU e ainda resta UM BAU", 27) addEvent(doSetStorage, 1000, bau_sto, 1) end if getStorage(bau_sto) == 1 then doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou o ULTIMO BAU E O EVENTO SE ENCERROU", 27) doSetStorage(bau_sto, -1) end doCreatureSetStorage(cid, storage, -1) return true end  
  20. Gostei
    ADM Mayk on BaiakME recebeu reputação de KotZletY em Pedido Sprite de mounts/montarias   
    foi mal eu baixei tão rápido a página que acabei vendo só a hora as 18 hrs
     
    okay KotZletY irei ficar mais atento vlw...
  21. Haha
    ADM Mayk on BaiakME recebeu reputação de KotZletY em Pedido Sprite de mounts/montarias   
    @Drazyn1291
     
    aqui esta a do UnderWar se te ajudei deixa aquele REP gostozinho hsuhus TMJ 
    outfit_324.bmp
    outfit_325.bmp
    outfit_367.bmp
    outfit_366.bmp
  22. Gostei
    ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?   
    @ADM Mayk on BaiakME 

    Muda
    local itemID == 2555 -- ID do BAU Para
    local itemID = 2555 -- ID do BAU  
  23. Obrigado
    ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?   
    @ADM Mayk on BaiakME 

    GlobalEvents
     
    XML
    <globalevent name="Event_Chest" time="18:00:00" event="script" value="Event_Chestt.lua"/> <globalevent name="Event_Chest" time="16:00:00" event="script" value="Event_Chestt.lua"/> <globalevent name="Event_Chest" time="14:00:00" event="script" value="Event_Chestt.lua"/> Script
    local itemID = 2555 -- ID do BAU local h = { Segunda = "18", Quarta = "14", Sexta = "16" } local pos = { [1] = {x = 1, y = 1, z = 1}, [2] = {x = 1, y = 1, z = 1}, [3] = {x = 1, y = 1, z = 1}, [4] = {x = 1, y = 1, z = 1}, [5] = {x = 1, y = 1, z = 1}, [6] = {x = 1, y = 1, z = 1}, [7] = {x = 1, y = 1, z = 1}, [8] = {x = 1, y = 1, z = 1}, [9] = {x = 1, y = 1, z = 1}, [10] = {x = 1, y = 1, z = 1} } local function doExecuteEvent() local bau1 = math.random(1, #pos) local bau2 = math.random(1, #pos) doCreateItem(itemID, bau1) doCreateItem(itemID, bau2) return true end function onTimer() if os.date("%A") == "Monday" and os.date("%H") == h.Segunda then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Wednesday" and os.date("%H") == h.Quarta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Friday" and os.date("%H") == h.Sexta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true end return true end
    Actions
     
    XML
    <action itemid="BAU_ID" event="script" value="Bau_event.lua"/> Script
    local t = { [1] = {50, 2160, 100}, -- [Numero em sequencia] = {CHANCE, ITEM ID, COUNT} [2] = {30, 2325, 1}, [3] = {20, 2678, 1}, [4] = {10, 2956, 5} } local storage = 346366 function onUse(cid, item, fromPosition, itemEx, toPosition) for a, b in pairs(t) do if math.random(1, 100) <= b[1] and getCreatureStorage(cid, storage) == -1 then doCreatureSetStorage(cid, storage, 1) doPlayerAddItem(cid, b[2], b[3]) end end doCleanTile(toPosition) doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou um BAU!!", 27) doCreatureSetStorage(cid, storage, -1) end  
  24. Gostei
    ADM Mayk on BaiakME deu reputação a Wakon em (Resolvido)TFS 0.4 Gaz'Haragoth (Heal + Magia + Teleport) ???   
    @ADM Mayk on BaiakME, na real não é pra criar um teleport e sim teleportar ao passar em cima do corpo, isso que o script que você pediu para adaptar faz.
    Colocou a tag no arquivo movements.xml com o corpo do bixo?
    <movevent type="StepIn" itemid="22455" event="script" value="teleport_gaz.lua"/>  
  25. Gostei
    ADM Mayk on BaiakME recebeu reputação de KotZletY em Bau diário   
    rlx reputado mesmo assim ? vlw pela a força ai TMJ 
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo