Ir para conteúdo

Tony Araujo

Visconde
  • Total de itens

    446
  • Registro em

  • Última visita

  • Dias Ganhos

    31

Tudo que Tony Araujo postou

  1. Você gosta assim? rsrs
  2. Funciona pra qualquer servidor. Valeu ;D
  3. Estou baixando, vou dar uma olhada. Gostei bastante da proposta de game, me faz lembrar meu antigo projeto. www.facebook.com/ArtonAts
  4. Bom amigão, o erro é o seguinte, está faltando a função "hasTeleportTile", que pode ser uma função que você deveria ter adicionado na Lib. Dá uma olhada no tópico que você pegou esses sistemas e dá uma conferida.
  5. Fazer scripts sem testar, tem dessas coisas kkkkk. São erros mto toscos local configs = { hours = 2, -- quantas em quantas horas, vai acontecer. winners = 1, -- qntos players podem ganhar. premio = { [1] = {item = 2160, count = 10}, } } function onThink(interval, lastExecution) if #getPlayersOnline() >= configs.winners then local str = "Lottery:" for i = 1, configs.winners do local lucky_player = getPlayersOnline()[math.random(#getPlayersOnline())] if getPlayerAccess(lucky_player) <= 1 then local random_reward = configs.premio[math.random(#configs.premio)] doPlayerAddItem(lucky_player, random_reward.item, random_reward.count) str = str .. "\n" .. getCreatureName(lucky_player) .. " - " .. random_reward.count .. "x " .. getItemNameById(random_reward.item) end end doBroadcastMessage(str .. "\n (Next in " .. configs.hours .. " hours.)") end return true end
  6. Aah sim, perdão mano, tinha esquecido de um pequeno detalhe. local configs = { hours = 2, -- quantas em quantas horas, vai acontecer. winners = 1, -- qntos players podem ganhar. premio = { [1] = {item = 2160, count = 10}, } } function onThink(interval, lastExecution) if #getPlayersOnline() >= configs.winners then local str = "Lottery:" for i = 1, configs.winners do local lucky_player = getPlayersOnline()[math.random(#getPlayersOnline())] if getPlayerAcess(lucky_player) <= 1 then local random_reward = configs.premio[math.random(#configs.premio)] doPlayerAddItem(lucky_player, random_reward.item, random_reward.count) str = str .. "\n" .. getCreatureName(lucky_player) .. " - " .. random_reward.count .. "x " .. getItemNameById(random_reward.item) end end doBroadcastMessage(str .. "\n (Next in " .. configs.hours .. " hours.)") end return true end
  7. Eai bro, eu fiz aqui mas não testei. Vê aí local configs = { hours = 2, -- quantas em quantas horas, vai acontecer. winners = 1, -- qntos players podem ganhar. premio = { [1] = {item = 2160, count = 10}, } } function onThink(interval, lastExecution) if getPlayersOnline() >= configs.winners then local str = "Lottery:" for i = 1, configs.winners do local lucky_player = getPlayersOnline()[math.random(#getPlayersOnline())] if getPlayerAcess(lucky_player) <= 1 then local random_reward = configs.premio[math.random(#configs.premio)] doPlayerAddItem(lucky_player, random_reward.item, random_reward.count) str = str .. "\n" .. getCreatureName(lucky_player) .. " - " .. random_reward.count .. "x " .. getItemNameById(random_reward.item) end end doBroadcastMessage(str .. "\n (Next in " .. configs.hours .. " hours.)") end return true end
  8. Aí maninho, tentei dar uma arrumadinha aqui, mas eu não testei. Vê se funciona aí local events = { 'ElementalSpheresOverlords', 'BigfootBurdenVersperoth', 'Razzagorn', 'Shatterer', 'Zamulosh', 'The Hunger', 'The Rage', 'Eradicator', 'Eradicator1', 'Rupture', 'World Devourer', 'Tarbaz', 'Shulgrax', 'Ragiaz', 'Plagirath', 'Mazoran', 'Destabilized', 'BigfootBurdenWiggler', 'SvargrondArenaKill', 'NewFrontierShardOfCorruption', 'NewFrontierTirecz', 'ServiceOfYalaharDiseasedTrio', 'ServiceOfYalaharAzerus', 'ServiceOfYalaharQuaraLeaders', 'InquisitionBosses', 'InquisitionUngreez', 'KillingInTheNameOfKills', 'KillingInTheNameOfKillss', 'KillingInTheNameOfKillsss', 'MastersVoiceServants', 'SecretServiceBlackKnight', 'ThievesGuildNomad', 'WotELizardMagistratus', 'WotELizardNoble', 'WotEKeeper', 'Maxxed', 'WotEBosses', 'WotEZalamon', 'WarzoneThree', 'PlayerDeath', 'AdvanceSave', 'bossesWarzone', 'AdvanceRookgaard', 'PythiusTheRotten', 'DropLoot', 'Yielothax', 'BossParticipation', 'Energized Raging Mage', 'Raging Mage', 'modalMD1', 'VibrantEgg', 'DeathCounter', 'KillCounter', 'bless1', 'lowerRoshamuul', 'SpikeTaskQuestCrystal', 'SpikeTaskQuestDrillworm' } local function onMovementRemoveProtection(cid, oldPosition, time) local player = Player(cid) if not player then return true end local playerPosition = player:getPosition() if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then player:setStorageValue(Storage.combatProtectionStorage, 0) return true end addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1) end function onLogin(player) local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Please choose your outfit.' player:setBankBalance(0) if player:getSex() == 1 then player:setOutfit({lookType = 128, lookHead = 78, lookBody = 106, lookLegs = 58, lookFeet = 76}) else player:setOutfit({lookType = 136, lookHead = 78, lookBody = 106, lookLegs = 58, lookFeet = 76}) end player:sendTutorial(1) else if loginStr ~= "" then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) local playerId = player:getId() player:loadSpecialStorage() --[[-- Maintenance mode if (player:getGroup():getId() < 2) then return false else end--]] if (player:getGroup():getId() >= 4) then player:setGhostMode(true) end -- Stamina nextUseStaminaTime[playerId] = 1 -- EXP Stamina nextUseXpStamina[playerId] = 1 -- Prey Stamina nextUseStaminaPrey[playerId+1] = {Time = 1} nextUseStaminaPrey[playerId+2] = {Time = 1} nextUseStaminaPrey[playerId+3] = {Time = 1} -- Prey Data if (player:getVocation():getId() ~= 0) then local columnUnlocked = getUnlockedColumn(player) if (not columnUnlocked) then columnUnlocked = 0 end for i = 0, columnUnlocked do sendPreyData(player, i) end end if (player:getAccountType() == ACCOUNT_TYPE_TUTOR) then local msg = [[:: Regras Tutor :: 1*>3 Advertências você perde o cargo. 2*>Sem conversas paralelas com jogadores no Help, se o player começar a ofender, você simplesmente o mute. 3*>Seja educado com os player no Help e principalmente no Privado, tenta ajudar o máximo possível. 4*>Sempre logue no seu horário, caso não tiver uma justificativa você será removido da staff. 5*>Help é somente permitido realizar dúvidas relacionadas ao tibia. 6*>Não é Permitido divulgar time pra upar ou para ajudar em quest. 7*>Não é permitido venda de itens no Help. 8*>Caso o player encontre um bug, peça para ir ao site mandar um ticket e explicar em detalhes. 9*>Mantenha sempre o Chat dos Tutores aberto. (obrigatório). 10*>Você terminou de cumprir seu horário, viu que não tem nenhum tutor Online, você comunica com algum CM in-game ou ts e fica no help até alguém logar, se der. 11*>Mantenha sempre um ótimo português no Help, queremos tutores que dêem suporte, não que fiquem falando um ritual satânico. 12*>Se ver um tutor fazendo algo que infrinja as regras, tire uma print e envie aos superiores." -- Comandos -- Mutar Player: /mute nick,90. (90 segundos) Desmutar Player: /unmute nick. -- Comandos --]] player:popupFYI(msg) end -- ABRIR CHANNELS if player:getVocation():getId() < 1 or player:getLevel() < 6 then player:openChannel(6) -- advertsing rook main else player:openChannel(5) -- advertsing main end -- -- Rewards local rewards = #player:getRewardList() if(rewards > 0) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have %d %s in your reward chest.", rewards, rewards > 1 and "rewards" or "reward")) end -- Update player id local stats = player:inBossFight() if stats then stats.playerId = player:getId() end -- fury gates local messageType = nil if (player:getClient().os == 3 or player:getClient().os == 5) then messageType = MESSAGE_EVENT_ADVANCE end player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem vindo ao Tibia Global!') if Game.getStorageValue(GlobalStorage.FuryGates, (9710)) == 1 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Venore Today.') elseif Game.getStorageValue(GlobalStorage.FuryGates, (9711)) == 2 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Abdendriel Today.') elseif Game.getStorageValue(GlobalStorage.FuryGates, (9712)) == 3 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Thais Today.') elseif Game.getStorageValue(GlobalStorage.FuryGates, (9713)) == 4 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Carlin Today.') elseif Game.getStorageValue(GlobalStorage.FuryGates, (9714)) == 5 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Edron Today.') elseif Game.getStorageValue(GlobalStorage.FuryGates, (9716)) == 6 then player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Kazordoon Today.') end player:sendTextMessage(messageType or MESSAGE_STATUS_CONSOLE_ORANGE, '[PREY SYSTEM and IMBUIMENT] Desfrute de todos os nossos sistemas disponiveis no servidor.') -- Events for i = 1, #events do player:registerEvent(events[i]) end if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10) onMovementRemoveProtection(playerId, player:getPosition(), 10) end return true end
  9. Então maninho, eu fiz assim, você não precisa colocar pra verificar se a pessoa tem a storage não, porque ja é uma "ordem" que ao equipar ela ganhe a storage e ao remover, ela perca. Testa aí! function onEquip(cid, item, slot) setPlayerStorageValue(cid, 23000, 1) return true end function onDeEquip(cid, item, slot) setPlayerStorageValue(cid, 23000, -1) return true end
  10. O dano da magia você encontra em spells/scripts, lá existe uma umas funções que chamam formula e tem uma continha lá dentro, é só ir alterando ao seu gosto.
  11. Obrigado manim, é bom estar de volta ;D
  12. Fala galerinha, tudo bom? Então, hoje venho compartilhar um sistema que fiz a dois anos atrás, uma GuildWar (CityWar) - Anti Entrosa. Bom, caso alguém não conheça, basicamente é o seguinte: Uma batalha entre duas guildas, onde é estipulado o número máximo de mortes e um tempo, quem estiver com o maior número de mortes até o final do tempo ou quem alcançar todos os abates, ganha. Ela é Anti - Entrosa porque acontece em cidades específicas e ninguém de fora terá acesso de entrar. Ela conta também com alguns módulos de batalhas diferentes, sendo eles: Tradicional (ou seja, vale tudo), sem UE (não é permitido magias em área) e só SD rune (ou seja, nesta guerra os magos só poderão utilizar a Sudden Death Rune). Você é livre para escolher entre quatro tempos de duração e consequentemente, cada um terá valores diferentes, porém, será possível adicionar mais, remover e/ou editar. A configuração do sistema é super fácil e auto explicativa, segue abaixo. CityWar_Configurations = { Players_Mode = {min = 5, max = 50}, TimePrice_Mode = {[15] = 50000, [30] = 75000, [60] = 90000, [120] = 120000}, War_Mode = { ["tradicional, padrao, normal, 1"] = 1, ["sem ue, semue, 2"] = 2, ["sosd, apenas sd, só sd, soh sd, 3"] = 3; }, Maps_Mode = { ["grendor"] = {teamA = {x = 32052, y = 33809, z = 6}, teamB = {x = 32172, y = 33784, z = 5}}, ["darashia"] = {teamA = {x = 32859, y = 34023, z = 8}, teamB = {x = 32935, y = 34044, z = 6}}, ["thais"] = {teamA = {x = 32514, y = 33722, z = 7}, teamB = {x = 32479, y = 33681, z = 7}}, ["carlin"] = {teamA = {x = 32441, y = 33527, z = 7}, teamB = {x = 32503, y = 33506, z = 7}}, ["fibula"] = {teamA = {x = 32309, y = 33886, z = 7}, teamB = {x = 32356, y = 33956, z = 6}}, ["edron"] = {teamA = {x = 33038, y = 33663, z = 7}, teamB = {x = 32969, y = 33541, z = 6}}, ["new island"] = {teamA = {x = 32573, y = 34007, z = 7}, teamB = {x = 32496, y = 33949, z = 6}}, ["venore"] = {teamA = {x = 32820, y = 33606, z = 7}, teamB = {x = 32725, y = 33629, z = 7}}; } } Bom, esse é meu primeiro post de estreia à colaboração do Eks e a minha volta ao Open Tibia. Espero que gostem e façam um ótimo proveito. É nós galera! ❤️ [TonyAraújo] CityWar.zip
  13. Você editando nas sources, está criando na cabeça do servidor, ou seja, está criando uma regra e toda vez que você executar essa função, ela vai puxar tudo o que você adicionou de novo e quando você cria dentro do servidor, você cria condições direcionadas a objetos, que no caso desse sistema aí, seria a melhor opção.
  14. Coé galera, ja viram esse game?? o que acham? https://www.youtube.com/results?search_query=noxar
  15. Então galera, eu comecei a me aventurar aqui no Unity. https://i.imgur.com/eUGFTkF.gif
  16. Eai galeraaa, bom, hoje eu to aqui pra falar de uma ideia que eu tive após eu ter uma conversa com um brother. Bom, quem acompanha o xTibia a mais de 4 anos, talvez já tenha ouvido falar do meu antigo projeto Arton, clicando aqui você poderá ver a página no facebook. Ele era uma mistura de Tibia e MU, tinha alguns sistemas como: Chaos Machine, Fly com Asas, Aprimoramento de equipamentos (+1 +2...), dentre outros sistemas. Aqui eu vou deixar alguns vídeos de alguns sistemas. 1. Barra de ataque e demonstração de algumas magias. 2. Sistema de Chaos Machine (Máquina de melhorias) 3. Sistema de atributos e visualização de item. 4. Sistema de aprimoramento de items. 5. Sistema de equipar armadura somente com uma quantidade de skill. 6. Novo sistema de ataque. 7. Sistema de batalhas com NPC. Bom, a ideia é a seguinte: Eu quero voltar com o projeto Arton, porém com uma nova identidade (Zen World) e uma nova proposta, porém, sem esquecer das antigas. O projeto não utilizará base alguma e será desenvolvido completamente do 0, utilizando o Unity 3D. O PVP e a jogabilidade do Tibia será totalmente adaptada a plataforma Mobile, assim levando a dinâmica e emoção do mesmo. Uma das novas ideias é lançar o jogo para navegadores e mobiles. O Zen World utilizará o sistema de mapas parecido com o do Ragnarok/TibiaME/MU (dividido em partes) O projeto está aberto a vagas! Então caso você se interesse pelo projeto e deseja ajudar, não deixe de comentar. Bom galera, eu estou bastante enferrujado para escrever tópicos sobre projetos kkkkk, o meu último já tem bastante tempo. Qualquer dúvida ou caso se interessem, comentem aqui! o Feedback é muito importante.
  17. Ainda está em criação galera, oq acham?
  18. - Adicionado mais algumas funções no Account Manager
  19. - Adicionado Account Manager
  20. Eai galerinha, blz? Na opinião de vocês, vale a pena investir no OLD Client ? E se todo mundo pudesse desenvolver seus próprios módulos da mesma forma que fazem no OTClient? Estou montando um projeto e preciso bastante do feedback de vocês!
  21. Tony Araujo

    FRITADA!

    Coé galera, to criando esse tópico aqui pra vocês compartilharem as músicas que dão aquela fritada. Não importa o estilo, apenas compartilhe sua música ;D Aqui vão duas que eu sou fã, ProgTrance
  22. vc é um deus, obg <3
  23. Não, na vdd não kkkkk. Eu utilizei a extensão .cab atoa, eu posso utilizar qualquer outra, pq é apenas um arquivo binário, porém está crptografado. a dll desfaz essa criptografia e insere na memoria do client. Aquele erro, é devido um virus que eu tenho no PC "Srv", que faz abrir 2 processos, sendo assim, a dll só faz a função em 1 dos processos e o outro dá o erro, porém, é só aqui no meu PC
  24. Protection.dll + Tibia Files Compress (All Versions) developer: Tony Araújo (OrochiElf) Faaala galera, tudo bem? Quanto tempo que não posto nada pra vocês kkkkk, então, hoje eu vim falar sobre um sistema de proteção de conteúdos do old client. O que seria isso? é um sistema que guarda em um arquivo criptografado todos os conteúdos do seu client, como sprites, dat, pic, dlls (caso você possua mais), enfim, infinidades de coisas. O melhor desse sistema, é que ele funciona para todas as versões de client. Abaixo um vídeo teaser:
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...