Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/18/21 em todas áreas
-
The Ruby Server - Base Pokémon TFS 1.2 - 9.80
The Ruby Server - Base Pokémon TFS 1.2 - 9.80
Lucas Unknown reagiu a Leohige por uma resposta no tópico
1 pontoThe Ruby Server - Base Pokémon Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website. Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc. Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer. O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado. [+] Informações do Servidor Baseado em: TFS 1.3 Protocolo: 10.98 [+] Informações do Client Baseado em: otclient 0.6.6 [+] Informações do Website Baseado em: nenhum Desenvolvido em: PHP (por ser o mais comum na comunidade) Como contribuir? Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto. Links [+] RubyServer - GitHub https://github.com/rubyserver/rubyserver [+] RubyClient - GitHub https://github.com/rubyserver/rubyclient [+] RubyServer - Website https://rubyserver.github.io/rubyserver/ [+] RubyServer - Discord https://discord.gg/XTrZGpy Algumas Imagens1 ponto -
Thais Medieval
1 pontoCategoria: Mapa. Versão: 8.60 Créditos: Koci Anexos: Download | Scan Screenshot;1 ponto
-
(Resolvido)Skill Rate/Velocidade para upar skill
(Resolvido)Skill Rate/Velocidade para upar skill
Gabrielxxxxx reagiu a Yamili por uma resposta no tópico
1 pontoQual servidor ou website você utiliza como base? TFS 0.4 8.60 Olá a todos, eu gostaria de deixar bem (bastante) difícil para os jogadores uparem as skills (Do fist ao shield) nos valores mais baixos (Do 0 ao 25), o que ocorre é que não consigo deixar mais difícil de upar do que alguns segundos (Uns 2% da barrinha de skill a cada hit) para upar 1 skill level (Nos valores mais baixos, como upar do skill level 1 para o 2). Tem alguma forma de dificultar (mais ainda) a velocidade de up da skill nos valores mais baixos? Informações extras: Eu testei de várias formas e percebi que o mínimo de rate skill que dá pra colocar é 1x (Seja no config.lua ou em script de skills por stages). No vocations.xml do meu servidor a linha: <skill fist="1.5" club="1.5" sword="1.5" axe="1.5" distance="1.5" shielding="1.5" fishing="1.5" experience="2.0"/> Que serve para definir a velocidade com que a skill vai upar tem o valor minimo de "1.0", abaixo disso não upa (No meu servidor quanto menor o número, menor a velocidade que vai upar a skill). Tendo isso em mente eu testei com rate skill 1x no config e com skill fist="1.0" na tag das vocations (Que foi o mais lento que consegui colocar para upar nos níveis mais baixos das skills) mas ainda assim não é lento o suficiente para mim. O script de stages que eu estava usando para alguns testes era o: Eu reparei que esse script pega o valor do skill rate definido no config.lua e multiplica pelo valor definido no script, e como no magic level dá pra colocar valores como 0.3x (deixando assim extremamente difícil de upar) eu tentei fazer o mesmo com as skills e não tive sucesso. Nesse script dá para colocar um limite de skill level (Que vai setar a rate skill para 0x) e reparei que quanto mais perto de chegar no limite, mais difícil de upar fica (Do modo que eu quero para os valores baixos). Minhas dúvidas: É possível ajustar esse script para fazer a velocidade do up ser sempre igual a velocidade de quando está chegando no limite de skill? (Se é que esta diminuição está sendo aplicada por este script) Qual a função que faz essa velocidade diminuir perto do limite de skill? (O que está fazendo ela diminuir?) É possível de alguma forma abaixar o rate de skills para 0.X? É possível dificultar, extremamente, para upar as skills nos valores mais baixos? (Seja por script ou pela source) Ps: Sou bem leigo se tratando de scripts e tals, então me desculpem se não consegui me expressar bem. Perdão se eu não estiver na área correta, não estou acostumado com fóruns ainda. Obrigado a todos que tentarem me ajudar, peço perdão pelo texto enorme ? é justamente para evitar algumas dúvidas sobre o que eu estou tentando fazer. Caso ainda tenham dúvidas sobre algo que eu disse, me perguntem. E caso exista algum tópico sobre algo relacionado ao que eu quero, por favor, me mostrem. Não achei nada parecido sobre isso ? ! :EDIT: ! - :!Duvida solucionada!: Como o @Naze me guiou ao caminho de onde fica a formula na source, eu resolvi fazer alguns testes para entender melhor como funcionava. A formula é: (skillBase[skill] * std::pow(skillMultipliers[skill], (level - 11))); E entendi que é baseskill × multiplier do vocations ^(level da skill - 11), com os valores do meus servidor ficariam: 50 x 1.0 ^ (level - 11) (Onde com rate skill 1x cada hit upava cerca de 2% da barra de skill, o que me levou a crer que eram os hits necessário para upar) Então eu resolvi testar essa baseskill e aumentei para 100, o que resultou em 1% da barra por hit. (Que no caso a cada +50 de skill base = [ -0,5% para upar a skill ao dar um hit]) E seguindo isso consigo ajustar certinho a dificuldade que quero para upar skill. Se essa alteração na baseskill pode acarretar em algum problema me avisem, por favor (Pois não entendo muito de programação). Mas caso não acarrete em nenhum problema, funcionou perfeitamente para o que eu queria então. Para quem quer fazer o mesmo (Dificultar para upar a skill nos níveis mais baixos [como do skill level 0 ao 1]) está ai. Duvida encerrada! Rep++ @Naze Por me ajudar ^-^ ajudou muito mesmo, de coração, agradeço.1 ponto -
ElfBot - Bypass auto-target
1 pontoHeyo, pra quem está interessado em jogar com auto-target do ElfBot em servidores protegidos, fiz duas versões de .dll para uso, enjoy. Vou disponibilizar duas versões no tópico: uma dll com o fix do win10 incluso e outra sem. (diferença simples, uma pro windows 10 outra não) Obs: Faça um backup da sua .dll pra caso queira jogar em servidores sem proteção, pois a dll desse tópico só funciona com servidores protegidos. Tutorial: É só pegar a dll, renomear pra elfbot.dll e substituir a principal na pasta do ElfBot. Normal: elfbot - auto-target.dll Windows 10: elfbot - win10fix + auto-target.dll [Scan] Windows 10: https://www.virustotal.com/gui/file/912861d7a76f32aa79adaef0149f570d1dbde3b06d31b6e3a36d1cf13a633c2b/detection Normal: https://www.virustotal.com/gui/file/8195de400e9e6736cb29eb7de0b8cbd4669417fe8a1ce3ab5e9e3030b257df8a/detection1 ponto
-
(Resolvido)Ajuda com esse script efeito quando player logar [SCRIPT]
coloca o efeito 01 ponto
-
(Resolvido)Ajuda com esse script efeito quando player logar [SCRIPT]
@KR33 editei o meu último comentário com o a correção do código, agora está funcionando 100%.1 ponto
-
Lottery system com limitação a trainers
Justamente, por isso a adaptação... usa o código lá do global events assim: local config = { lottery_hour = "2 hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message) rewards_id = {2494, 2472, 2514, 2160}, -- ID dos Itens Sorteados na Loteria crystal_counts = 10, -- Usado somente se a rewards_id for crystal coin (ID: 2160). website = "yes", -- Only if you have php scripts and table `lottery` in your database! days = { "Monday-08:00", "Monday-13:00", "Monday-19:30", "Tuesday-08:00", "Tuesday-13:00", "Tuesday-19:30", "Wednesday-08:00", "Wednesday-13:00", "Wednesday-19:30", "Thursday-08:00", "Thursday-13:00", "Thursday-19:30", "Friday-01:22", "Friday-13:00", "Friday-19:30", "Saturday-21:27", "Saturday-21:28", "Saturday-21:29", "Sunday-08:00", "Sunday-13:00", "Sunday-19:30" } } local function getPlayerWorldId(cid) if not(isPlayer(cid)) then return false end local pid = getPlayerGUID(cid) local worldPlayer = 0 local result_plr = db.getResult("SELECT * FROM `players` WHERE `id` = "..pid..";") if(result_plr:getID() ~= -1) then worldPlayer = tonumber(result_plr:getDataInt("world_id")) result_plr:free() return worldPlayer end return false end local function getOnlineParticipants() local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() and getPlayerStorageValue(pid, 281822) <= os.time() then table.insert(players, pid) end end if #players > 0 then return players end return false end function onThink(cid, interval) if table.find(config.days, os.date("%A-%H:%M")) then if(getWorldCreatures(o) <= 0)then return true end local query = db.query or db.executeQuery local random_item = config.rewards_id[math.random(1, #config.rewards_id)] local item_name = getItemNameById(random_item) local data = os.date("%d/%m/%Y - %H:%M:%S") local online = getOnlineParticipants() if online then local winner = online[math.random(1, #online)] local world = tonumber(getPlayerWorldId(winner)) if(random_item == 2160) then doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24) doPlayerAddItem(winner, random_item, config.crystal_counts) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .." " .. getItemNameById(random_item) .. "s! Congratulations! (Next lottery in " .. config.lottery_hour .. ")") else doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " ..getItemNameById(random_item) .. "! Congratulations! (Next lottery in " .. config.lottery_hour .. ")") doPlayerAddItem(winner, random_item, 1) end if(config.website == "yes") then query("INSERT INTO `lottery` (`name`, `item`, `world_id`, `item_name`, `date`) VALUES ('".. getCreatureName(winner).."', '".. random_item .."', '".. world .."', '".. item_name .."', '".. data .."');") end else print("Ninguem OnLine pra ganhar na loteria") end end return true end e o script que eu te passei vc coloca em creaturescript lotrainer.lua function onLogin(cid) registerCreatureEvent(cid, "LoterryTreiner") setPlayerStorageValue(cid, 281822, 0) return true end function onCombat(cid, target) local treiners = {"Trainer", "Training Monk"} -- nome dos trainera do seu ot if isPlayer(cid) and isMonster(target) and isInArray(treiners, getCreatureName(target)) then setPlayerStorageValue(cid, 281822, os.time()+15) end return true end TAG no xml <event type="login" name="LoterryLogin" event="script" value="lotrainer.lua"/> <event type="combat" name="LoterryTreiner" event="script" value="lotrainer.lua"/>1 ponto
-
(Resolvido)Ajuda com esse script efeito quando player logar [SCRIPT]
local tabela_infos = { [0] = { Effect = 123, Storage = 259005, text = "Shinobi", color = COLOR_GREEN, efeito = 1}, -- ## [valor da storage] ## -- [1] = { Effect = 123, Storage = 259005, text = "Genin", color = COLOR_DARKBROWN, efeito = 2}, -- ## [valor da storage] ## -- [2] = { Effect = 123, Storage = 259005, text = "Chunin", color = COLOR_YELLOW, efeito = 2}, -- ## [valor da storage] ## -- [3] = { Effect = 123, Storage = 259005, text = "Jounin", color = COLOR_LIGHTGREEN, efeito = 2}, -- ## [valor da storage] ## -- [4] = { Effect = 123, Storage = 259005, text = "Akatsuki", color = COLOR_DARKRED, efeito = 2}, -- ## [valor da storage] ## -- [5] = { Effect = 123, Storage = 259005, text = "Captao A.", color = COLOR_WHITE, efeito = 2}, -- ## [valor da storage] ## -- [6] = { Effect = 123, Storage = 259005, text = "Anbu", color = COLOR_RED, efeito = 2} -- ## [valor da storage] ## -- } function onLogin(cid) for value, dados in pairs(tabela_infos) do if getPlayerStorageValue(cid, dados.Storage) == value then doSendMagicEffect(getPlayerPosition(cid), dados.efeito) doSendAnimatedText(getPlayerPosition(cid), dados.text, dados.color) end end return true end agora em login.lua, cole isto acima do registerCreatureEvent if getPlayerStorageValue(cid, 259005) == -1 then setPlayerStorageValue(cid, 259005, 0) end e agora junto com registerCreatureEvent cole isto. registerCreatureEvent(cid, "efeito") e agora em creaturescript.xml <event type="login" name="efeito" event="script" value="efeito.lua"/> Este gif é para lhe mostrar como ficou, eu já configurei tudo para você, não precisa alterar nada além de efeito e text. OBS: O ISTO É APENAS UMA ILUSTRAÇÃO, OU SEJA SE O PLAYER LOGAR NÃO IRA TROCAR O TEXTO SE ELE TIVER COM O VALOR DE SHINOBI. @KR331 ponto
-
Lottery system com limitação a trainers
troca a função la do sistema por essa: local function getOnlineParticipants() local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() and getPlayerStorageValue(pid, 281822) <= os.time() then table.insert(players, pid) end end if #players > 0 then return players end return false end e no creaturescript: function onLogin(cid) registerCreatureEvent(cid, "LoterryTreiner") setPlayerStorageValue(cid, 281822, 0) return true end function onCombat(cid, target) local treiners = {"Trainer", "Training Monk"} -- nome dos trainera do seu ot if isPlayer(cid) and isMonster(target) and isInArray(treiners, getCreatureName(target)) then setPlayerStorageValue(cid, 281822, os.time()+15) end return true end1 ponto
Líderes está configurado para São Paulo/GMT-03:00