16 horas atrás16 h Licença Lifetime comment_1610 Estava tentando criar um evento para bônus de XP em dobro aos finais de semana, excluindo todos que estão com a mesma quantidade de resets do TOP RESET do servidor, para que eles não disparem e quem esteja atrás os alcance, mas encontrei algumas dificuldades.Não existe nenhuma forma de aumentar a EXP de um jogador específico por script/Lua. A única alavanca de EXP é global. Isso impossibilita eventos de EXP seletivos (ex.: "XP em dobro no fim de semana para todos, MENOS os primeiros do ranking de resets", pra evitar que os líderes disparem, "era o que eu estava tentando fazer").Peço uma API Lua (ou um efeito no EffectManager) que permita multiplicar a EXP de um jogador individual, com duração.O que foi testado (e não resolve)Buffs do EffectManager (addBuff) — a lista de efeitos disponíveis no servidor não tem nenhum "EXP +%". Efeitos existentes: Greater Damage/Defense/Life/Mana, Bless/Soul, Mana Shield, Critical, Infinity Arrow, BP Recovery, Seals (Ascension/Wealth/Sustenance/Life/Mana) SEALS ESTÃO SENDO EQUIPADOS COMO RING, Scrolls, Elixir of Leader, Damage Reflect, Talisman Guardian/Protection. Nenhum de experiência.addBuff(193, ...) (índice citado em docs S6 antigas como "Seal: +100% EXP") — neste 4.0 não aplica buff de EXP; ele apenas coloca um Seal como ITEM no slot do anel, e o item não dá EXP.Itens "Seal" equipados no anel — testado via /make: não aumentam a EXP neste servidor.Lua (objeto User) — não há addExperience, setExperience nem setExperienceRate. Há getReset, addBuff/removeBuff/hasBuff, etc., mas nada que mexa na taxa de EXP do jogador.Único lever existente: AddExperienceRate_AL0..AL3 em GameServerInfo - Common.dat — é global por nível de conta (VIP tier), afeta todos os jogadores daquele tier ao mesmo tempo. Não há granularidade por personagem.Qualquer uma destas opções resolveriaOpção A (preferida): uma função Lua no objeto User, por exemplo:player:setExpRate(percent) / player:addExpRate(percent, seconds) — aplica um multiplicador de EXP temporário só naquele jogador; ouplayer:addExpBuff(percent, seconds).Opção B: um efeito novo no EffectManager do tipo "EXP Rate +X%" que funcione via addBuff(indice, duracao, valor) (como os demais buffs), afetando só o jogador que recebe.Com isso, o dono do servidor consegue, por Lua, varrer os jogadores online e dar/remover o bônus de EXP conforme a regra que quiser (ex.: dar o dobro só a quem está abaixo do topo do ranking de resets). Relatório
9 horas atrás9 h Solução comment_1614 7 horas atrás, bcavalini disse:Estava tentando criar um evento para bônus de XP em dobro aos finais de semana, excluindo todos que estão com a mesma quantidade de resets do TOP RESET do servidor, para que eles não disparem e quem esteja atrás os alcance, mas encontrei algumas dificuldades.Não existe nenhuma forma de aumentar a EXP de um jogador específico por script/Lua. A única alavanca de EXP é global. Isso impossibilita eventos de EXP seletivos (ex.: "XP em dobro no fim de semana para todos, MENOS os primeiros do ranking de resets", pra evitar que os líderes disparem, "era o que eu estava tentando fazer").Peço uma API Lua (ou um efeito no EffectManager) que permita multiplicar a EXP de um jogador individual, com duração.O que foi testado (e não resolve)Buffs do EffectManager (addBuff) — a lista de efeitos disponíveis no servidor não tem nenhum "EXP +%". Efeitos existentes: Greater Damage/Defense/Life/Mana, Bless/Soul, Mana Shield, Critical, Infinity Arrow, BP Recovery, Seals (Ascension/Wealth/Sustenance/Life/Mana) SEALS ESTÃO SENDO EQUIPADOS COMO RING, Scrolls, Elixir of Leader, Damage Reflect, Talisman Guardian/Protection. Nenhum de experiência.addBuff(193, ...) (índice citado em docs S6 antigas como "Seal: +100% EXP") — neste 4.0 não aplica buff de EXP; ele apenas coloca um Seal como ITEM no slot do anel, e o item não dá EXP.Itens "Seal" equipados no anel — testado via /make: não aumentam a EXP neste servidor.Lua (objeto User) — não há addExperience, setExperience nem setExperienceRate. Há getReset, addBuff/removeBuff/hasBuff, etc., mas nada que mexa na taxa de EXP do jogador.Único lever existente: AddExperienceRate_AL0..AL3 em GameServerInfo - Common.dat — é global por nível de conta (VIP tier), afeta todos os jogadores daquele tier ao mesmo tempo. Não há granularidade por personagem.Qualquer uma destas opções resolveriaOpção A (preferida): uma função Lua no objeto User, por exemplo:player:setExpRate(percent) / player:addExpRate(percent, seconds) — aplica um multiplicador de EXP temporário só naquele jogador; ouplayer:addExpBuff(percent, seconds).Opção B: um efeito novo no EffectManager do tipo "EXP Rate +X%" que funcione via addBuff(indice, duracao, valor) (como os demais buffs), afetando só o jogador que recebe.Com isso, o dono do servidor consegue, por Lua, varrer os jogadores online e dar/remover o bônus de EXP conforme a regra que quiser (ex.: dar o dobro só a quem está abaixo do topo do ranking de resets).Boa! Esse cenário já está coberto pela API Lua Bonus, que preparamos para o próximo update. Ela permite dar EXP adicional por personagem, com duração e remoção individual.Com ela dá para montar o evento de fim de semana, aplicar +100% de EXP em quem estiver abaixo do maior número de resets e deixar todos os empatados no topo sem esse bônus. Também tem opção separada para EXP Master.Já validamos a EXP dobrando no jogo. A API estará disponível na próxima atualização. 😊 Rivify Brasil LtdaHolding de tecnologia, Software, Cloud, IAe infraestrutura digital.[email protected] • www.rivify.com.brAv. Tiradentes, 960, 9.º andar, sala 2 — LuzSão Paulo/SP — CEP 01102-000CNPJ 68.145.965/0001-06Nos acompanhem nas redes @rivifybrasil Relatório
Participe da conversa
Você pode publicar agora e se cadastrar depois. Se você tem uma conta, entre agora para publicar com sua conta.