Share Pacote de Mods Customizados para Lucera Classic IL PTS

Julio Prado

Vagabond
Olá, comunidade!


Estou disponibilizando um pacote de melhorias customizadas para servidores baseados na Lucera Classic IL PTS (Interlude PTS clean).
Esse pacote traz funcionalidades úteis, práticas e prontas para integrar em seu projeto com facilidade.




Conteúdo do Arquivo:​


  • ✅ ExtMods.ext.jar → Coloque na raiz da pasta gameserver/
  • ✅ Arquivos XML → Devem ser colocados em gameserver/data/custom/



⚙️ Funcionalidades Incluídas​


1. Conversão de Adena por Item​


Permite ao jogador converter adena por outro item com custo e recompensa configuráveis via XML.
voiced command .autogold

Exemplo de configuração:


XML:
<?xml version='1.0' encoding='utf-8'?>
<list>
    <config adenaCost="10000" itemId="4037" itemCount="5" />
</list>




2. Sistema de Recompensas Aleatórias​


Entrega uma recompensa aleatória baseada em chance individual para cada item.
Voiced Command .roulette .spin

Trecho de configuração XML:


xml
XML:
<list>

    <config useAdena="true" adenaCost="10000" itemId="4037" itemCount="5" />
 
    <item id="57" count="1000000" enchant="0" chance="50000"/> <!-- 50% chance -->
    <item id="6392" count="5" enchant="0" chance="30000"/> <!-- 30% chance -->
    <item id="6622" count="1" enchant="0" chance="10000"/> <!-- 10% chance -->
    <item id="3481" count="1" enchant="0" chance="10000"/> <!-- 10% chance -->
</list>

✅ Suporte para adena ou item como custo
✅ Chance personalizada por item
✅ Flexível para eventos ou sistema de baús




3. Evento Automático com Spawns Customizados​


Sistema de evento automático com monstros específicos, executado em dias e horários definidos via XML.


Exemplo de configuração:


xml
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Configuração do evento Party Farm
  Este evento ocorre em determinados dias e horários configurados abaixo.
  Quando o horário for atingido, uma mensagem será enviada aos jogadores,
  e os monstros serão invocados após o tempo de preparação definido.
-->

<partyfarm>
    <event name="partyfarm">
        <!-- Ativa ou desativa este evento -->
        <enabled>true</enabled>

        <!-- Duração total do evento em minutos (após o tempo de preparação) -->
        <duration>30</duration>

        <!-- Tempo de preparação em minutos após o aviso antes de iniciar o evento -->
        <preparation>5</preparation>

        <!-- Dias da semana em que o evento pode ocorrer:
             0 = Domingo, 1 = Segunda, ..., 6 = Sábado.
             Neste exemplo: Segunda (1), Quarta (3) e Sexta-feira (5) -->
        <days>6,3,5</days>

        <!-- Horários do dia em que o evento pode iniciar (formato 24h: HH:mm).
             O sistema verifica a cada segundo se um desses horários foi atingido. -->
        <times>
            <time>06:10</time>
            <time>15:00</time>
            <time>17:20</time>
            <time>21:15</time>
        </times>
     
        <!-- Lista de spawns que serão invocados na zona durante o evento.
             Cada spawn define o npcId, a quantidade e as coordenadas (x, y, z). -->
        <spawns>
            <!-- 5 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="1186" count="5" x="-82408" y="246784" z="-3644" />

            <!-- 3 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="1186" count="3" x="-82762" y="247279" z="-3573" />
        </spawns>
    </event>
</partyfarm>

✅ Suporte a múltiplos horários
✅ Controle completo por XML
✅ Spawns com localização e quantidade configuráveis




Como Instalar​


  1. Copie ExtMods.ext.jar para a raiz da pasta gameserver/
  2. Coloque os arquivos XML em gameserver/data/custom/
  3. Reinicie o servidor



✅ Compatibilidade​


  • ✔️ Testado em: Lucera Classic IL PTS (clean)
  • ❌ Não compatível diretamente com aCis, Mobius ou outros forks sem adaptação



Dúvidas ou Sugestões?​


Fique à vontade para comentar no tópico ou me enviar uma mensagem direta.
Estou aberto a feedbacks e possíveis melhorias para futuras versões.




Anexo​








Espero que essas ferramentas ajudem na evolução e profissionalização do seu servidor!
Boa sorte com o seu projeto!
 

Attachments

Last edited:
Notas de Atualização - Sistema AutoGold & Party Farm


AutoGold (Comando .autogold)
  • Mantido o comportamento anterior: tarefa executada a cada 10 segundos.
  • Adquire a quantidade de Adena configurada automaticamente.
  • Entrega o item configurado com a quantidade correta, de forma automática.

Novos comandos adicionados:

.deposit
  • Permite converter a quantidade de Adena configurada no XML em um item (ex: Gold Bar).
  • Ideal para jogadores armazenarem valor em forma de item.

.withdrawn
  • Reverte a operação: consome o item e devolve a Adena equivalente.
  • Proteções implementadas para evitar duplicação e erros.

Evento Party Farm
Novos comandos:
  • .register – Registra o jogador no evento Party Farm.
  • .unregister – Cancela a inscrição.

️ O sistema conta com:
  • Proteções contra duplicações/abusos.
  • Anúncios automáticos com dias e horários configurados.
  • Controle de tempo para início e execução.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Configuração do evento Party Farm
  Este evento ocorre em determinados dias e horários configurados abaixo.
  Quando o horário for atingido, uma mensagem será enviada aos jogadores,
  e os monstros serão invocados após o tempo de preparação definido.
-->

<partyfarm>
    <event name="partyfarm">
        <!-- Ativa ou desativa este evento -->
        <enabled>true</enabled>

        <!-- Duração total do evento em minutos (após o tempo de preparação) -->
        <duration>2</duration>

        <!-- Tempo de preparação em minutos após o aviso antes de iniciar o evento -->
        <preparation>2</preparation>

        <!-- Dias da semana em que o evento pode ocorrer:
             0 = Domingo, 1 = Segunda, ..., 6 = Sábado.
             Neste exemplo: Segunda (1), Quarta (3) e Sexta-feira (5) -->
        <days>0,3,5</days>

        <!-- Horários do dia em que o evento pode iniciar (formato 24h: HH:mm).
             O sistema verifica a cada segundo se um desses horários foi atingido. -->
        <times>
            <time>01:42</time>
            <time>15:00</time>
            <time>17:20</time>
            <time>21:15</time>
        </times>
       
        <!-- Lista de spawns que serão invocados na zona durante o evento.
             Cada spawn define o npcId, a quantidade e as coordenadas (x, y, z). -->
        <spawns>
            <!-- 5 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="35" x="-82408" y="246784" z="-3644" />

            <!-- 3 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="20" x="-82762" y="247279" z="-3573" />
        </spawns>
       
        <teleports>
            <teleport x="-82762" y="247279" z="-3573" />
            <teleport x="-82408" y="246784" z="-3644" />
        </teleports>
    </event>
</partyfarm>
1749963615423-webp.6333
 

Attachments

  • 1749963615423.webp
    1749963615423.webp
    11.6 KB · Views: 175
Last edited:
Notas de Atualização - Sistema AutoGold & Party Farm


AutoGold (Comando .autogold)
  • Mantido o comportamento anterior: tarefa executada a cada 10 segundos.
  • Adquire a quantidade de Adena configurada automaticamente.
  • Entrega o item configurado com a quantidade correta, de forma automática.

Novos comandos adicionados:

.deposit
  • Permite converter a quantidade de Adena configurada no XML em um item (ex: Gold Bar).
  • Ideal para jogadores armazenarem valor em forma de item.

.withdrawn
  • Reverte a operação: consome o item e devolve a Adena equivalente.
  • Proteções implementadas para evitar duplicação e erros.

Evento Party Farm
Novos comandos:
  • .register – Registra o jogador no evento Party Farm.
  • .unregister – Cancela a inscrição.

️ O sistema conta com:
  • Proteções contra duplicações/abusos.
  • Anúncios automáticos com dias e horários configurados.
  • Controle de tempo para início e execução.

XML:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Configuração do evento Party Farm
  Este evento ocorre em determinados dias e horários configurados abaixo.
  Quando o horário for atingido, uma mensagem será enviada aos jogadores,
  e os monstros serão invocados após o tempo de preparação definido.
-->

<partyfarm>
    <event name="partyfarm">
        <!-- Ativa ou desativa este evento -->
        <enabled>true</enabled>

        <!-- Duração total do evento em minutos (após o tempo de preparação) -->
        <duration>2</duration>

        <!-- Tempo de preparação em minutos após o aviso antes de iniciar o evento -->
        <preparation>2</preparation>

        <!-- Dias da semana em que o evento pode ocorrer:
             0 = Domingo, 1 = Segunda, ..., 6 = Sábado.
             Neste exemplo: Segunda (1), Quarta (3) e Sexta-feira (5) -->
        <days>0,3,5</days>

        <!-- Horários do dia em que o evento pode iniciar (formato 24h: HH:mm).
             O sistema verifica a cada segundo se um desses horários foi atingido. -->
        <times>
            <time>01:42</time>
            <time>15:00</time>
            <time>17:20</time>
            <time>21:15</time>
        </times>
      
        <!-- Lista de spawns que serão invocados na zona durante o evento.
             Cada spawn define o npcId, a quantidade e as coordenadas (x, y, z). -->
        <spawns>
            <!-- 5 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="35" x="-82408" y="246784" z="-3644" />

            <!-- 3 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="20" x="-82762" y="247279" z="-3573" />
        </spawns>
      
        <teleports>
            <teleport x="-82762" y="247279" z="-3573" />
            <teleport x="-82408" y="246784" z="-3644" />
        </teleports>
    </event>
</partyfarm>
1749963615423-webp.6333

now it's much nicer and seems to be working better, good job, I'll let you know if I find anything else
 
party farm can be done with existing stuff too you just replicate for different times and you can have a different party farm zone each time. What is the difference with your script maybe I dont understand something?
<zone name="[Party_Dungeon_Imperial]" type="fun" >
<set name="enabled" val="false" />
<set name="zoneBuffs" val="1323:1" />
<set name="cronZoneEnablePattern" val="34 05 * * *" />
<set name="cronZoneDisablePattern" val="00 00 * * *" />
<set name="cronZoneEnableBroadcastSpawnEvent" val="[Dungeon_Imperial]" />
<set name="cronZoneDisableBroadcastDespawnEvent" val="[Dungeon_Imperial]" />
<set name="cronZoneEnableAnnounceCustomMessage" val="voicedcommandhandlers.PartyDungeon.Enabled" />
<set name="cronZoneDisableAnnounceCustomMessage" val="voicedcommandhandlers.PartyDungeon.Disabled" />
<set name="playerMinLevel" val="68" />
<set name="playerMaxLevel" val="81" />
<set name="playerLevelLimitBackLoc" val="82614 148059 -3472" />
<polygon>
 
party farm can be done with existing stuff too you just replicate for different times and you can have a different party farm zone each time. What is the difference with your script maybe I dont understand something?
<zone name="[Party_Dungeon_Imperial]" type="fun" >
<set name="enabled" val="false" />
<set name="zoneBuffs" val="1323:1" />
<set name="cronZoneEnablePattern" val="34 05 * * *" />
<set name="cronZoneDisablePattern" val="00 00 * * *" />
<set name="cronZoneEnableBroadcastSpawnEvent" val="[Dungeon_Imperial]" />
<set name="cronZoneDisableBroadcastDespawnEvent" val="[Dungeon_Imperial]" />
<set name="cronZoneEnableAnnounceCustomMessage" val="voicedcommandhandlers.PartyDungeon.Enabled" />
<set name="cronZoneDisableAnnounceCustomMessage" val="voicedcommandhandlers.PartyDungeon.Disabled" />
<set name="playerMinLevel" val="68" />
<set name="playerMaxLevel" val="81" />
<set name="playerLevelLimitBackLoc" val="82614 148059 -3472" />
<polygon>
I don't know the Lucera package, I'm just creating personalized mods that people ask, don't create me if I did something wrong I'm here to learn and create custom mods using my knowledge that I have.

You can use the original Lucera system, but I like my models more than the original package
 
I don't know the Lucera package, I'm just creating personalized mods that people ask, don't create me if I did something wrong I'm here to learn and create custom mods using my knowledge that I have.

You can use the original Lucera system, but I like my models more than the original package
I dont judge you bro or criticize you. I respect everyone that shares something I was just asking if you include something extra that is not possible with current files.
 
I dont judge you bro or criticize you. I respect everyone that shares something I was just asking if you include something extra that is not possible with current files.
Yes I found it better to create a separate party because I want to create an event engine so that it can be used by people on their packages, I'm working on a TVT similar event he will have 2 points divided by the winning team, with more death points, is to face a boss and his mini, is a losing team back to town and does not participate in raidboss

XML:
<?xml version="1.0" encoding="UTF-8"?>

<battles>
    <event>

        <enabled>true</enabled>

        <duration>60</duration>

        <preparation>5</preparation>

        <days>0,3,5</days>

        <times>
            <time>05:30</time>
            <time>15:00</time>
            <time>17:20</time>
            <time>21:15</time>
        </times>
        
        <teams>
            <team name="Red">
                <base x="-86580" y="240578" z="-3731" />
                <npcs>
                    <npc type="Buffer" npcId="30598" enabled="true" />
                    <npc type="GmShop" npcId="30002" enabled="false" />
                </npcs>
            </team>
            <team name="Blue">
                <base x="-87001" y="240047" z="-3696" />
                <npcs>
                    <npc type="Buffer" npcId="30598" enabled="true" />
                    <npc type="GmShop" npcId="30002" enabled="false" />
                </npcs>
            </team>
        </teams>

        <boss id="29001"> <!-- Antharas por exemplo -->
            <minions>
                <minion id="29002" x="10000" y="20000" z="-3000" />
                <minion id="29003" x="10100" y="20100" z="-3000" />
            </minions>
        </boss>
    </event>
</battles>
 
boa noite irmao esse comando .registre teleporta o jogador para arena como se fosse um tvt ?
sim exatamente mano, ele faz isso, mais na próxima atualização o comando .register <eventname>

então vamos fazer algo assim .register partyfarm ou .register kingsfall

eu ainda estou trabalhando no eventos personalizados a ideia do Kings Fall e fazer um evento com Times "Azul" e "Vermelho" e qual time fizer mais pontos de Morte fica para enfrentar o raidboss
 
sim exatamente mano, ele faz isso, mais na próxima atualização o comando .register <eventname>

então vamos fazer algo assim .register partyfarm ou .register kingsfall

eu ainda estou trabalhando no eventos personalizados a ideia do Kings Fall e fazer um evento com Times "Azul" e "Vermelho" e qual time fizer mais pontos de Morte fica para enfrentar o raidbosstop
top em irmao eu to usando o party farm original da lucera mais vou micra pra esse seu logo lgoo voce podia adiconar uma restriçao por quando jogdo tiver com menos de 5 na pt ele volta pra cidade o party fartm ta ficando muito massa mano essa parte de register ficar massa pq o cara nao precisa ir na gk
 
top em irmao eu to usando o party farm original da lucera mais vou micra pra esse seu logo lgoo voce podia adiconar uma restriçao por quando jogdo tiver com menos de 5 na pt ele volta pra cidade o party fartm ta ficando muito massa mano essa parte de register ficar massa pq o cara nao precisa ir na gk
um comando de registro e muito bom, se você ver que existe a mensagem quando voce entra no servidor e o evento ja esta rolando ele deixa voce digitar o comando e te leva para o teleport mais próximo
 
um comando de registro e muito bom, se você ver que existe a mensagem quando voce entra no servidor e o evento ja esta rolando ele deixa voce digitar o comando e te leva para o teleport mais próximo
acho que ficar mais top se ficar igual o tvt colocar o comando ai depois de um tempo voce e levado pra zona
 
PT
Ná data de ontem eu estava pensando, é se nos fizemos uma engine para comportar todos os eventos e os fakesplayers então resolvi criar um sistema chave para esse esquema tara tudo pronto na proxima atualização deste mesmo topico, já foi testando o sitema em versão interlude, e classic funcionando muito bem, tanto os eventos quantos os phantom.

Em algumas horas vou compartilhar a versão com todos, vou criar os movimentos, e attacks deles primeiro e assim posso liberar uma versão para todos .

EN
Yesterday I was thinking, it is if we made an Engine to hold all the events and the Fakeplayers so I decided to create a key system for this scheme all ready in the next update of this same topic, was already testing the site in interlude version, and classic working very well, both events and Phantom
In a few hours I will share the version with everyone, I will create their movements, and attacks first so I can release a version for everyone.




Mais FOTOS:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Configuração do evento Party Farm
  Este evento ocorre em determinados dias e horários configurados abaixo.
  Quando o horário for atingido, uma mensagem será enviada aos jogadores,
  e os monstros serão invocados após o tempo de preparação definido.
-->

<partyfarm>
    <event name="partyfarm">
        <!-- Ativa ou desativa este evento -->
        <enabled>true</enabled>

        <!-- Duração total do evento em minutos (após o tempo de preparação) -->
        <duration>55</duration>

        <!-- Tempo de preparação em minutos após o aviso antes de iniciar o evento -->
        <preparation>1</preparation>

        <!-- Dias da semana em que o evento pode ocorrer:
             0 = Domingo, 1 = Segunda, ..., 6 = Sábado.
             Neste exemplo: Segunda (1), Quarta (3) e Sexta-feira (5) -->
        <days>1,3,5</days>

        <!-- Horários do dia em que o evento pode iniciar (formato 24h: HH:mm).
             O sistema verifica a cada segundo se um desses horários foi atingido. -->
        <times>
            <time>22:15</time>
            <time>15:00</time>
            <time>17:20</time>
            <time>21:15</time>
        </times>
       
        <!--

            Configurações da Party Zone (Zona de Farm em Grupo)
   
            - minMemberCount:
            Número mínimo de membros necessários na party para entrar na zona.
            Se for 0, qualquer jogador pode entrar individualmente, sem necessidade de estar em uma party.
   
            - HwidCheck:
            Ativa ou desativa a verificação de jogadores com o mesmo HWID e IP dentro da zona.
            true  = se outro jogador com o mesmo HWID/IP já estiver na zona, o novo será removido.
            false = desativa a verificação; múltiplos personagens do mesmo HWID/IP poderão entrar.
   
            - punishFullPartyOnHwid:
            Define o comportamento da punição quando for detectado um jogador duplicado (mesmo HWID/IP).
            true  = toda a party do jogador será expulsa da zona.
            false = apenas o jogador duplicado será expulso.
       
        -->
         <settings>
             <setting minMemberCount="0" HwidCheck="false" punishFullPartyOnHwid="false" minMembersLevel="2" />
         </settings>
       
        <messages>
            <message onPrepare="[PartyFarm]: The event will start in 5 minutes Prepare your party!"/>
            <message onPrepare="[PartyFarm]: Registration open! Use .register partyfarm to participate."/>
           
            <message onStart="[PartyFarm]: The event has begun! The monsters have been summoned!"/>
            <message onStart="[PartyFarm]: The event ends in 55 minutes."/>
           
            <message onEnd="[PartyFarm]: The event has ended. Thank you for participating!"/>
        </messages>


        <!-- Lista de spawns que serão invocados na zona durante o evento.
             Cada spawn define o npcId, a quantidade e as coordenadas (x, y, z). -->
        <spawns>
            <!-- 5 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="35" x="-82408" y="246784" z="-3644" respawnDelay="0" />

            <!-- 3 monstros do npcId 1186 serão invocados nessas coordenadas -->
            <spawn npcId="20432" count="20" x="-82762" y="247279" z="-3573" respawnDelay="0" />
        </spawns>
       
        <players>
            <player key="need_party">You need to be in a party to register for Party Farm.</player>
            <player key="need_leader">Only the party leader can register the group for Party Farm.</player>
            <player key="not_enough_members">Your party must have at least %members% members to register for Party Farm.</player>
            <player key="not_enough_level">All party members must be at least level %level% to register for Party Farm.</player>
            <player key="already_registered">Your party is already registered for Party Farm.</player>
            <player key="registered_success">Your party has been registered for the Party Farm event.</player>
            <player key="teleport_success">Teleported to Party Farm event.</player>
            <player key="cannot_teleport_members">Your party doesn't meet the minimum member requirement %members% to teleport.</player>
            <player key="solo_not_enough_level">Your player does not meet the minimum level %level% requirement to register to Party Farm.</player>
            <player key="solo_already_registered">Your player is already registered for Party Farm.</player>
            <player key="solo_registered_success">Your player has been registered for the Party Farm event.</player>
           
            <player key="zone_already_represented">You are already represented by another character in this zone!</player>
            <player key="zone_insufficient_members">You need at least %members% members in your party to enter this zone.</player>
           
            <player key="enter_live_with_time">Party Farm is live! Started at %start%h. Remaining time: %minutes% minute(s).</player>
            <player key="enter_live_no_time">Party Farm is live! Started at %start%h.</player>
            <player key="enter_register_open">Registration is now OPEN! Use .register to join the partyfarm. Type .unregister to leave.</player>

            <player key="countdown">Time remaining:</player>          
        </players>
       
        <teleports>
            <teleport x="-82762" y="247279" z="-3573" />
            <teleport x="-82408" y="246784" z="-3644" />
        </teleports>
    </event>
</partyfarm>

Engine XML

XML:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
    <engine name="LUCERA_ENGINE">
        <set enable="true" />
        <set panelGui="true" />
    </engine>
    <engine name="PARTYFARM_ENGINE">
        <set enable="true" />
        <set panelGui="true" />
    </engine>
    <engine name="PHANTOM_ENGINE">
        <set enable="true" />
        <set panelGui="true" />
        <set permission="true" />
        <set purchased="true" />
        <set username="DEMO" />
        <set key="DEMO" />
    </engine>
</settings>
 
funcionar em interlude tambem viu galera e funcionar bem tava testando aqui ta top d mais viu slk
 
Olá, acho que encontrei um problema no sistema do party farme

Todos os mobs nascem de uma só vez, um proximo do outro, e quando mata todos eles, eles nao nascem outra vez, mesmo que o evento ainda nao terminou

ele é assim mesmo ou eu configurei errado?

O sistema de .autogold funcionou perfeito, obrigado!
 
Olá, acho que encontrei um problema no sistema do party farme

Todos os mobs nascem de uma só vez, um proximo do outro, e quando mata todos eles, eles nao nascem outra vez, mesmo que o evento ainda nao terminou

ele é assim mesmo ou eu configurei errado?

O sistema de .autogold funcionou perfeito, obrigado!
ele e assim mesmo estou preste a lançar a versão v3 já com os phantom players para todos
tem que baixar os 2 ?
apenas as ultima versão e que a primeira foi atualizada para v2 agora quero terminar a v3 ja com os phantom

ira mudar o party farm como disse acima mais tive um aniversario para participar e atrasou a atualização
 
Back
Top