O fórum teve que ser recriado do zero, usuários do fórum antigo precisam se cadastrar novamente e caso você seja usuário vip se identifique perante a um administrador que o status vip será reatribuído..

Welcome to L2JDream Project

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Anúncios

    • Wallz

      Suporte e Serviço Pago: Tabela de Valores!   04/03/2023

      Devido a acontecimentos recentes e para eu não parar de mexer de vez com l2j, a pedido de alguns clientes, a partir de hoje, suporte remoto, edição de dlls, edição de patches de proteção e atualizações será cobrado um valor simbólico pois por causa de alguns usuários agindo de má fé eu vou ter que parar de disponibilizar conteúdo e suporte remoto grátis Suporte Remoto: Acesso remoto AnyDesk/TeamViewer: R$40,00/hora ~ R$25,00/fração de hora (15~30 minutos) Instalação de Servidor no PC: R$60,00 (Para computador doméstico o servidor será configurado por padrão parar rodar em 127.0.0.1, pois eu não mexerei com portas de roteador) Instalação de Servidor em VPS/Dedicado: R$ 60,00 (Apenas a instalação dos programas e da pack, não inclui configurar in-game, add npc/itens custom nem qualquer outra modificação) Add Item Custom: R$80,00 cada set (armaduras/armas) sem configurar status específico. Add/Criar Moedas Custom: R$40,00 se tiver que criar textura + R$20 por moeda Add NPC/Mob Custom: R$ 40,00 cada NPC, sem configurar status ou scripts Serviços adicionais: Updates de Pack: R$29,90/mês a pack Alterações específicas de Proteção: R$95,00 Restaurar Compra (usuários antigos): R$ 35,00 Liberar Interface Custom na Proteção: R$75,00 por DLL Adicionar Logo do Server na Proteção: R$65,00 Server Health & Overview: R$ 150,00/hora de teste Launcher Compacto: R$249,99 
      PAGAMENOS APENAS VIA PIX OU PICPAY.

Wallz

Fundador
  • Total de itens

    400
  • Registro em

  • Última visita

  • Troféus

    499

Posts postados por Wallz


  1. Para configurar o evento TVT você precisa executar o comando //pvpevent logando no jogo.

    vfSuEg5.png

    Vamos entender os campos acima:
    *Os valores de tempo são em minutos.

    Active - On para ativar e OFF para permanecer desligado.
    Announce time - Tempo em que anunciará o inicio do evento.
    Announce reduct - Tempo após o qual a administração publicará o Anúncio
    Horário em que os eventos ocorrerão (vale a hora do vps/dedicado)

    Exemplos: 12:00;12:30;13:10;14:40
    Field Instances - São os ids das instâncias em que os players serão enviados após iniciar o evento, o padrão é 802 e 804 você pode encontrar instâncias em \gameserver\data\instances.  

    e7PA6jg.png
     

    Você pode encontrar mais opções em server_variables no banco de dados.

    2 pessoas curtiram isso

  2. Para configurar a emissão de recompensas por comprar, manter ou tomar um terrirório (Castelo/ClanHall), você precisa editar por cada território:
    Caminho: Game\data\events\siege\

    Em seguida, abra o arquivo XML com o nome de qual você deseja editar, como exemplo [1] gludio_castle.xml

    Você vai encontrar duas linhas assim:

    <!- <parameter name="on_siege_end_attacker_owned_leader_reward" value = "4037:1" /> -> Este parâmetro é responsável pela recompensa na captura do castelo.
    <!- <parameter name="on_siege_end_defender_owned_leader_reward" value = "4037:1" /> -> Este parâmetro é responsável pela recompensa enquanto segura o castelo.

    Essas linhas estão comentadas no código para não estarem ativadas. 

    Retire o comentário <!- -> da linha ou das linhas que deseja ativar.

    4037 refere-se ao ID do item e 1 a quantidade. 

    Ao final vai ter algo semelhante a isso:

    LKvp1ov.png

    Agora

    Agora é só editar os outros territórios para recompensas individuais de outros castelos e regiões.

  3. Por exemplo, pegue o rate de XP de 10x para o servidor que queremos, e por exemplo, fazer rates do level 1 ao 20 a 15x.

    Tabela de exemplo se a taxa básica for x10:
    - 1-20 = x15
    - 20-40 = x8
    - 40 -52 = x5
    - 61-76 = x10

    O caminho mais fácil é editar a skill de grade:

    <skill id="239" levels="7" name="Expertise D">
        <table name="#magicLevel">20 40 52 61 76 76 76</table>
        <table name="#power">1.15 0.8 0.5 1 1 1 1</table>
        <set name="icon" val="icon.skill0239"/>
        <set name="magicLevel" val="#magicLevel"/>
        <set name="target" val="TARGET_SELF"/>
        <set name="skillType" val="HARDCODED"/>
        <set name="operateType" val="OP_PASSIVE"/>
        <set name="canLearn" val=""/>
        <set name="isCommon" val="true"/>
        <for>
          <mul order="0x30" stat="ExpMultiplier" val="#power"/>
          <mul order="0x30" stat="SpMultiplier" val="#power"/>
        </for>
      </skill>

     

    <table name="#magicLevel">20 40 52 61 76 76 76</table> -> Intervalos de nível para cada level.
    <table name="#power">1.15 0.8 0.5 1 1 1 1</table> -> Multiplicação com base no rate padrão do servidor
    <mul order="0x30" stat="ExpMultiplier" val="#power"/> -> Inside sobre o XP.
    <mul order="0x30" stat="SpMultiplier" val="#power"/> -> Inside sobre o SP.

    Atenção: Atente a ordem do nível. 20 significa os valores do nível inicial até o 20, a casa 40 representa os levels do 21 até o 40 e assim sucessivamente. 

    O 20 é o primeiro valor de level, então no parametro #power o primeiro valor será aplicado, neste caso 1.15.

    Assim Do level 1 até o 20 o rate padrão desse servidor de exemplo é 10x mas terá uma multiplicação de 1.15 tornando-o 15x.

    1 pessoa curtiu isso

  4. Caminho: Game/config/olympiad.properties

    Muito cuidado com os valores de SeasonTimeCalcMode, SeasonStartTime, SeasonEndTime, WeaklyBonusTime, NominateTime

    Valores

    # Permitir evento de olimpíada?
    # default: true
    OlympiadEnabled = true

    # Permitir espectador para jogadores?
    # default: true
    SpectationgAllowed = true

    # Máximo de observadores para o estádio
    # default: 18
    MaxSpectatorPerStadium = 18

    # Competições
    # Tempo

    # Season time calculation mode.
    # Possible values:
    # NORMAL - Season calculates from the 1st day of current month 00:00
    # CUSTOM - Season calculates from the today date 00:00
    SeasonTimeCalcMode = CUSTOM - We declare that the Olympiad takes the starting point not from the first day of the month, but from the moment of launching the server.

     

    # The start time of the season
    # default: 2 00:00
    SeasonStartTime = 00:00 - So we say that we have validation at 00:00 and not on the 2nd day of the month at 00:00

     

    # End of season
    # default: +1:1 00:00
    SeasonEndTime = +7 00:00 - We declare that the end of the season will be 7 days after the server starts and every subsequent cycle.

    # Durante a competição
    # padrão: 18:00
    CompetitionStartTime = 18:00

    # Hora de término das competições
    # padrão: +1 00:00
    CompetitionEndTime = +1 00:00

    #  While handing out bonuses
    # default: +7 18:30
    WeaklyBonusTime = +2 18:30 We declare that bonuses will be accrued every second day from the moment of the initialization of the cycle

     

    # Time distribution of heroism
    # default: +1:1 12:00
    NominateTime = +7 12:00 - So we declare that Hero nomination will occur after 7 days of each cycle

    # Pontos no início da temporada
    # defailt: 10
    SeasonStartPoints = 18

    # Competição mínima para o herói
    # default: 15
    MinRewardableHeroComps = 9

    # Competições mínimas para tokens
    # default: 15
    MinRewardableNobleComps = 9

    # Rank
    PointSettlement = 100; 75; 55; 40 ; 30

    # itens Liquidação Por Ponto
    ItemsSettlementPerPoint = 1000

    # herói pontos de bônus
    HeroPointBonus = 300

    # semanais bônus Ponto
    WeaklyBonusPoints = 3

    # Victory Recompensa item ID
    VictoryRewardItemID = 6651

    VictoryRewardClassFreeCount = 40
    VictoryRewardClassBasedCount = 65
    VictoryRewardTeamBasedCount = 85

    MaxTotalMatches = 300
    MaxClassFreeMatches = 300
    MaxClassBaseMatches = 300
    MaxTeamBaseMatches = 300

    MinParticipantClassFree = 11
    MinParticipantClassBase = 11
    MinParticipantTeamBase = 6

    Isso é tudo - temos tudo configurado para 7 dias de um ciclo completo de Oly. Se você quiser qualquer outro tempo de ciclo, altere 7 dias para qualquer outro que deseje. O mínimo é um dia!

    Altere e configura os valores 1 a 1.

    Se suas alterações foram feitas após o encerramento da temporada. É necessário limpar os dados da tabela oly_seasson.


  5. Caminho: Game\data\stats\skills

    Você pode alterar o ranking de classificação navegue até a pasta de skills e procure pela skill Clan Essense (372)

      <skill id="372" levels="3" name="Clan Essence"> 
        <table name="#maxMp">1.03 1.05 1.06</table>  
        <set name="icon" val="icon.skill0372"/>  
        <set name="magicLevel" val="1"/>  
        <set name="target" val="TARGET_SELF"/>  
        <set name="skillType" val="BUFF"/>  
        <set name="operateType" val="OP_PASSIVE"/>  
        <set name="minPledgeClass" val="6"/>  
        <set name="isCommon" val="true"/>  
        <for> 
          <mul order="0x30" stat="maxMp" val="#maxMp"/> 
        </for> 
      </skill> 

    Você pode alterar o valor de minPledgeClass para 0 assim:

        <set name="minPledgeClass" val="0"/>  

    Valores de todas as classificações:

    VAGABOND - 0
    VASSAL - 1
    HEIR - 2
    KNIGHT - 3
    WISEMAN - 4
    BARON - 5
    VISCOUNT - 6
    COUNT - 7
    MARQUIS - 8

     


  6. Player Offline

    Para entregar um item a um jogador que está offline nós vamos usar uma query (comando SQL) simples no navicat ou HeidiSQL.

    No navicat acesse seu Banco de dados -> Queries -> New Query

    INSERT INTO 'items_delayed' ('owner_id', 'item_id', 'count') VALUES (12345678, 57, 1000);

    Nós entregamos ao personagem de ID 12345678 a quantidade de Mil adenas.

    Você pode saber o ID do personagem na tabela characters na coluna obj_Id.

    Player Online

    Para entregar um item a um jogador que está online vamos usar um comando admin no console (chat) do jogo. 

    Digite: //give_item <clique_no_player/nome> <item_id> <quantidade>

    Então eu posso clicar no player Fulaninho e apenas digitar //give_item 57 1000 (dei 1000 adenas para o player Fulaninho)

    Ou se não tiver com o target disponível você pode usar o comando //give_item Fulaninho 57 1000 (mesma coisa, só incluir após o comando o nick do player).

    Outros exemplos:
    Quando estiver com o target no player: 

    //give_all <item_id> <amount> - Entrega o item a todos os players do servidor.
    //give_all_by_ip <item_id> <amount> - Entrega o item a todos os players do servidor com um determinado IP.
    //give_all_by_hwid <item_id> <amount> - Da item a todos os jogadores do mundo com HWID diferente.

     


  7. Caminho: Game/data/zone/

    Vamos pegar uma zona de exemplo em Game/data/zone/peace_zone.xml

    <zone name="[primeval_peace1]" type="peace_zone" >
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
    </zone>

    Agora vamos modificar uma zona para que ao entrar nela o personagem receba Nobles Buff automaticamente. 

    <zone name="[primeval_peace1]" type="peace_zone" >
            <set name="zoneBuffs" val="1323:1" /> <!-- Nobles Buff -->
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
        </zone>

    Colocamos esse campo após o tipo da zona, sendo o formato skillid:level veja abaixo

     <set name="zoneBuffs" val="1323:1" /> <!-- Nobles Buff -->

    Se quiser adicionar mais de um buff a zona basta separar por ponto e virgula ; veja um exemplo:

       <zone name="[primeval_peace1]" type="peace_zone" >
            <set name="zoneBuffs" val="1323:1;1045:6;1047:4;1048:6" />
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
        </zone>

    Ficou no formato: skillid,level;skillid,level 

    <set name="zoneBuffs" val="1323:1;1045:6;1047:4;1048:6" />

    Vamos melhorar e incluir tempos diferentes, veja abaixo:

       <zone name="[primeval_peace1]" type="peace_zone" >
            <set name="zoneBuffs" val="1323:1/6000;1045:6/6000;1047:4/6000;1048:6/6000" />
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
        </zone>
    <set name="zoneBuffs" val="1323:1/6000;1045:6/6000;1047:4/6000;1048:6/6000" />

    O formato fica skillID,level/tempo;skillID,level/tempo;skillID,level/tempo

    Condições:
    Não funciona em Olly ou se estiver em duelo, morto, comércio ou com status de abnormal.


  8. Caminho: Game/data/zone/epic.xml

    Vamos usar o Queen Ant para servidores PvP e para personagens de level alto - evitar cair na zona e tomar Raid Curse.

    <zone name="[queen_ant_epic]" type="epic" >
            <set name="playerMinLevel" val="1" />
            <set name="playerMaxLevel" val="48" />
            <set name="playerLevelLimitBackLoc" val="-25464 172424 -4203" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
    </zone>

    Mude para 

    <zone name="[queen_ant_epic]" type="epic" >
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
    </zone>

    A restrição de level e o debuff paralyze foram retirados.

    E agora precisamos fazer o Level UP para Queen Ant e Minions e se quiser aumente status de HP, MP, Defesas, Ataque etc para evitar um boss fraco.

    Caminho: Game/data/npc/29000-29099.xml
    IDs: 29001, 29002, 29003, 29004, 29005

    1 pessoa curtiu isso

  9. A revisão possui dois tipos de Community Board, um clássico, semelhante ao do Lineage 2 original, apenas com noticias e funções básicas. E o Smart com os Mods 

    Caminho: Game/Config/Server.properties

    Para habilitar ou desativar o Community (Alt + B) na linha AllowCommunityBoard True

    # Default bypass
    BBSDefault = _bbshome
    # Para custom bbs (buffer, shop etc.) você precisa trocar _bbshome para _bbspage:index e vice-versa.
    BBSDefault = _bbspage:index

    Caminho para as HTMLS CB padrão.

    Game\data\htm-enl\scripts\services\community\

    Caminho para as HTMLS do CB Smart.

    Game\data\html-en\scripts\services\community\pages\

    Para adicionar multisells custons você precisa incluir os arquivos no caminho Game\data\multisell\pvp precisa ter um traço - exemplo Game\data\multisell\pvp\-12000.xml

    Um exemplo de botão (bypass) é 

    action="bypass _bbsmultisell:-12000;_bbspage:shop"

    Se você deseja transferir o serviço do NPC AIO 40025 para o Community Board, para isso você precisa editar o bypass, por exemplo, \data\html-en\mods\services\40025.htm você encontra o comando:

    action="bypass -h scripts_services.NickColor:list" 

    Para ser acionado no Community ficará deste jeito:

    "bypass _bbsscripts_services.NickColor:list;_bbspage:services".

     

    1 pessoa curtiu isso

  10. Existem dois modos e fazer um teleport via NPC

    1. Teleport incluso dentro da XML do NPC
    2. Script de Teleport

    1. Link de teleport dentro da XML do NPC:

    Caminho: path: Game/data/npc/

    <npc id="31964" name="Bilia" title="Gatekeeper">
        <set name="aggroRange" value="0"/>
        <set name="ai_type" value="CharacterAI"/>
        <set name="baseAtkRange" value="40"/>
        <set name="baseCON" value="43"/>
        <set name="baseCritRate" value="40"/>
        <set name="baseDEX" value="30"/>
        <set name="baseHpMax" value="2444.468"/>
        <set name="baseHpRate" value="1"/>
        <set name="baseHpReg" value="7.5"/>
        <set name="baseINT" value="21"/>
        <set name="baseMAtk" value="780"/>
        <set name="baseMAtkSpd" value="333"/>
        <set name="baseMDef" value="382"/>
        <set name="baseMEN" value="20"/>
        <set name="baseMpMax" value="1345.8"/>
        <set name="baseMpReg" value="2.7"/>
        <set name="basePAtk" value="1303"/>
        <set name="basePAtkSpd" value="253"/>
        <set name="basePDef" value="471"/>
        <set name="baseRunSpd" value="120"/>
        <set name="baseSTR" value="40"/>
        <set name="baseShldDef" value="0"/>
        <set name="baseShldRate" value="0"/>
        <set name="baseWIT" value="20"/>
        <set name="baseWalkSpd" value="50"/>
        <set name="castle_id" value="9"/>
        <set name="collision_height" value="25.0"/>
        <set name="collision_radius" value="8.0"/>
        <set name="level" value="70"/>
        <set name="rewardExp" value="0"/>
        <set name="rewardRp" value="0"/>
        <set name="rewardSp" value="0"/>
        <set name="shots" value="NONE"/>
        <set name="texture" value=""/>
        <set name="type" value="Merchant"/>
        <skills>
          <skill id="4416" level="14"/>
          <!--Humans-->
        </skills>
        <teleportlist>
          <sublist id="1">
            <target loc="43835 -47749 -792" item_id="57" price="10000" name="Gatekeeper.RuneTownship" castle_id="8"/>
            <target loc="147850 -55300 -2728" item_id="57" price="10000" name="Gatekeeper.TheTownofGoddard" castle_id="7"/>
            <target loc="146783 25808 -2008" item_id="57" price="53000" name="Gatekeeper.TheTownofAden" castle_id="5"/>
            <target loc="82971 53207 -1488" item_id="57" price="59000" name="Gatekeeper.TheTownofOren" castle_id="4"/>
            <target loc="111455 219400 -3544" item_id="57" price="100000" name="Gatekeeper.Heine" castle_id="6"/>
            <target loc="83463 148045 -3400" item_id="57" price="87000" name="Gatekeeper.TheTownofGiran" castle_id="3"/>
            <target loc="15472 142880 -2688" item_id="57" price="88000" name="Gatekeeper.TheTownofDion" castle_id="2"/>
            <target loc="-12787 122779 -3112" item_id="57" price="85000" name="Gatekeeper.TheTownofGludio" castle_id="1"/>
            <target loc="-45158 -112583 -240" item_id="57" price="13000" name="Gatekeeper.OrcVillage"/>
            <target loc="115120 -178224 -880" item_id="57" price="4400" name="Gatekeeper.DwarvenVillage"/>
            <target loc="68693 -110438 -1904" item_id="57" price="3000" name="Gatekeeper.DenofEvil"/>
            <target loc="111965 -154172 -1528" item_id="57" price="1600" name="Gatekeeper.PlunderousPlains"/>
            <target loc="113903 -108752 -848" item_id="57" price="3500" name="Gatekeeper.FrozenLabyrinth"/>
            <target loc="47692 -115745 -3744" item_id="57" price="1900" name="Gatekeeper.CryptsofDisgrace"/>
            <target loc="91280 -117152 -3928" item_id="57" price="2100" name="Gatekeeper.PavelRuins"/>
          </sublist>
          <sublist id="2">
            <target loc="-87328 142266 -3640" item_id="57" price="1000" name="Gatekeeper.GludinArena"/>
            <target loc="73579 142709 -3768" item_id="57" price="1000" name="Gatekeeper.GiranArena"/>
            <target loc="107577 -122392 -3632" item_id="57" price="1000" name="Gatekeeper.FrostLake"/>
            <target loc="44221 -114232 -2784" item_id="57" price="1000" name="Gatekeeper.CryptsofDisgrace"/>
            <target loc="121618 -141554 -1496" item_id="57" price="1000" name="Gatekeeper.SkyWagonRelic"/>
            <target loc="146440 46723 -3432" item_id="57" price="1000" name="Gatekeeper.Coliseum"/>
          </sublist>
          <sublist id="3">
            <target loc="-87328 142266 -3640" price="1" item_id="6651" name="Gatekeeper.GludinArena"/>
            <target loc="73579 142709 -3768" price="1" item_id="6651" name="Gatekeeper.GiranArena"/>
            <target loc="107577 -122392 -3632" price="1" item_id="6651" name="Gatekeeper.FrostLake"/>
            <target loc="44221 -114232 -2784" price="1" item_id="6651" name="Gatekeeper.CryptsofDisgrace"/>
            <target loc="121618 -141554 -1496" price="1" item_id="6651" name="Gatekeeper.SkyWagonRelic"/>
            <target loc="146440 46723 -3432" price="1" item_id="6651" name="Gatekeeper.Coliseum"/>
          </sublist>
        </teleportlist>
        <attributes>
          <defence attribute="fire" value="0"/>
          <defence attribute="water" value="0"/>
          <defence attribute="wind" value="0"/>
          <defence attribute="earth" value="0"/>
          <defence attribute="holy" value="0"/>
          <defence attribute="unholy" value="0"/>
        </attributes>
      </npc>

    Estrutura:
    Abre a tag de teleport<teleportlist>
    Sub-lista que separa as categorias de teleport <sublist id="1"> 2 3 4 5 etc.
    target loc= X Y Z são as coordenadas do teleport, ingame digite /loc e saiba suas coordenadas
    item_id="57" O ID do item que será consumido
    price="10000" A quantidade que será cobrada.
    name="Gatekeeper.RuneTownship"  nome de localização do teleporte localizar Game/data/strings/

     

    2. Script de teleport

    Dentro de uma html podemos inserir o seguinte parametro:

    [scripts_Util : Gatekeeper 43816 -47768 -800 50000 @ 811; Rune Township | Teleport para Rune Township (50.000 Adena).]
    scripts_Util: Gatekeeper - Parametro de chamada para Gatekeeper.
    43816 -47768 -800 50000 - XYZ Preço e valor em adena
    @ 811; Rune Township - Diálogo para reconfirmação
    | Script para um texto separador.
    Teleport to Rune Township (50.000 Adena). - Texto simples

     


  11. Caminho: Game\data\stats\skills\

    Você pode incluir parâmetro com o ID da cidade de retorno ao usar unstuck ou escape via skill. Veja o exemplo:

     <skill id="2099" levels="1" name="Escape: 5 minutes">
        <set name="magicType" val="SPECIAL"/>
        <set name="icon" val="icon.skill0000"/>
        <set name="magicLevel" val="1"/>
        <set name="hitTime" val="300000"/>
        <set name="hitCancelTime" val="500"/>
        <set name="target" val="TARGET_SELF"/>
        <set name="skillType" val="RECALL"/>
        <set name="operateType" val="OP_ACTIVE"/>
        <cond msgId="1509">
          <not>
            <player olympiad="true"/>
          </not>
        </cond>
     </skill>

    Para incluir uma coordenada precisamos incluir um parâmetro no código da skill veja:

      <skill id="2099" levels="1" name="Escape: 5 minutes">
        <set name="magicType" val="SPECIAL"/>
        <set name="icon" val="icon.skill0000"/>
        <set name="magicLevel" val="1"/>
        <set name="hitTime" val="300000"/>
        <set name="hitCancelTime" val="500"/>
        <set name="townId" val="9"/>
        <set name="target" val="TARGET_SELF"/>
        <set name="skillType" val="RECALL"/>
        <set name="operateType" val="OP_ACTIVE"/>
        <cond msgId="1509">
          <not>
            <player olympiad="true"/>
          </not>
        </cond>
      </skill>

     <set name="townId" val="9"/>

    Incluímos Town ID e o numero respectivo da cidade.

    ID de outras cidades:

    1: // Talking Island
    2: // Elven Village
    3: // Dark Elven Village
    4: // Orc Village
    5: // Dwarven Village
    6: // Town of Gludio
    7: // Gludin Village
    8: // Town of Dion
    9: // Town of Giran
    10: // Town of Oren
    11: // Town of Aden
    12: // Hunters Village
    13: // Heine
    14: // Rune Township
    15: // Town of Goddard
    16: // Town of Schuttgart
    17: // Primeval Isle
    18: // Floran Village

     


  12. Caminho: Game/data/stat/skills/1000-1099.xml

    Vamos procurar a skill de Cancellation de ID 1056
    Exemplo:

    <skill id="1056" levels="12" name="Cancellation">
        <table name="#effectPoint">455 493 530 547 564 580 595 609 622 633 644 653</table>
        <table name="#mpConsume2">35 38 41 43 44 46 48 49 51 52 53 55</table>
        <table name="#mpConsume1">9 10 11 11 11 12 12 13 13 13 14 14</table>
        <table name="#magicLevel">48 52 56 58 60 62 64 66 68 70 72 74</table>
        <set name="magicType" val="MAGIC"/>
        <set name="icon" val="icon.skill1056"/>
        <set name="reuseDelay" val="120000"/>
        <set name="magicLevel" val="#magicLevel"/>
        <set name="castRange" val="600"/>
        <set name="hitTime" val="6000"/>
        <set name="hitCancelTime" val="500"/>
        <set name="mpConsume1" val="#mpConsume1"/>
        <set name="mpConsume2" val="#mpConsume2"/>
        <set name="effectPoint" val="#effectPoint"/>
        <set name="target" val="TARGET_ONE"/>
        <set name="skillType" val="DEBUFF"/>
        <set name="operateType" val="OP_ACTIVE"/>
        <set name="reflectable" val="false"/>
        <for>
          <effect count="1" name="DispelEffects" time="0" val="0">
            <def name="dispelType" val="cancellation"/>
            <def name="cancelRate" val="25"/>
            <def name="negateCount" val="5"/>
            <def name="reApplyDelay" val="0"/> <!-- Can return buff after N seconds Cancellation -->
          </effect>
        </for>
      </skill>

    <def name="reApplyDelay" val="0"/> -> Altere o valor de 0 para a quantidade de tempo que você deseja que os buffs fiquem ausentes até que retornem.

  13. Caminho: Game/data/npc

    Na Lucera todos os dados pertencentes a um NPC (teleports, drops, skills, status, aparência etc) estão atrelados ao seu código XML.

    Então vamos usar o npc da xml 30000-30099.xml de ID 30006 a GK Roxxy

    <npc id = "30006" name = "Roxxy" title = "Gatekeeper ">
    <set name =" aggroRange "value =" 0 "/>
    <set name =" ai_type "value =" CharacterAI "/>
    <set name =" baseAtkRange "value =" 40 "/>
    <set name =" baseCON "value =" 43 "/>
    <teleportlist> Início do tag do teleporter
    <sublist id = "1"> ID da sub lista que é usada na caixa de diálogo para mostrar os teleports em 1 pagina.
    <target loc="-80684 149770 -3040" item_id="57" price="9400" name="Gatekeeper.TheVillageofGludin"/>
    <target loc="9744 15645 -4568" item_id="57" price="24000" name="Gatekeeper.DarkElvenVillage"/>
    <target loc="115120 -178224 -880" item_id="57" price="46000" name="Gatekeeper.DwarvenVillage"/>
    <target loc="46951 51550 -2976" item_id="57" price="23000" name="Gatekeeper.ElvenVillage"/>
    <target loc="-45158 -112583 -240" item_id="57" price="35000" name="Gatekeeper.OrcVillage"/>
    <target loc="-112367 234703 -3668" item_id="57" price="830" name="Gatekeeper.ElvenRuins"/>
    <target loc="-111728 244330 -3448" item_id="57" price="770" name="Gatekeeper.SingingWaterfall"/>
    <target loc="-106696 214691 -3424" item_id="57" price="1000" name="Gatekeeper.WesternTerritoryofTalkingIsland"/>
    <target loc="-99586 237637 -3568" item_id="57" price="470" name="Gatekeeper.ObeliskofVictory"/>
    </sublist>
    <sublist id = "2"> ID da sub lista que é usada na caixa de diálogo para mostrar os teleports em 1 pagina.
    <target loc = "- 87328 142266 -3640" item_id = "57" price = "1000" name = "Gatekeeper.GludinArena" />
    <target loc = "73579 142709 -3768" item_id = "57" price = "1000" name = "Gatekeeper.GiranArena" />
    <target loc = "49315 248452 -5960" item_id = "57" price = "1000" name = "Gatekeeper.ElvenRuins" />
    <target loc = "146440 46723 -3432" item_id = "57" preço = "1000" name = "Gatekeeper.Coliseum" />
    </ sublist>
    <sublist id = "3"> ID da sub lista que é usada na caixa de diálogo para mostrar os teleports em 1 pagina.
    <target loc = "- 87328 142266 -3640" price = "1" item_id = "6651" name = "Gatekeeper.GludinArena" />
    <target loc = "73579 142709 -3768" price = "1" item_id = "6651" name = "Gatekeeper.GiranArena" />
    <target loc = "49315 248452 -5960" price = "1" item_id = "6651" nome = "Gatekeeper.ElvenRuins" />
    <target loc = "146440 46723 -3432" price = "1" item_id = "6651" name = "Gatekeeper.Coliseum" />
    </sublist>
    </teleportlist> Fim da tag do teleporter

    Parâmetros:

    <sublist id = "1"> - list id
    <target
    loc = "São as coordenadas X Y Z você consegue usando /loc"
    price = "Quantidade de itens"
    item_id = "ID do Item que sera cobrtado"
    
    name = "Gatekeeper.GludinArena - a string que tem alguns dados especiais, você pode ver mais na pasta /strings "/>

    Agora vamos procurar o Dialogo da Roxy, o caminho é: 

    Game\data\html-en\teleporter

    Gatekeeper Roxxy:
    
    [npc_%objectId%_Chat 2|Ask about the Ivory Tower.]
    
    [npc_%objectId%_Teleport 1|Teleport] for this teleport a list from <sublist id = "1"> is taken, as well as an example you can put the output of sub pages with other id
    
    [npc_%objectId%_Teleport 2| <sublist id="2"> - Teleport Name]
    
    [npc_%objectId%_Teleport 3|<sublist id="3"> - Teleport Name]
    
    [npc_%objectId%_multisell 002|Exchange Dimension Diamonds.]
    
    [scripts_Util:NoblessTeleport|Noblesse Exclusive Teleport]
    
    [npc_%objectId%_Quest|Quest]
    
    Para usar teleportes personalizados sem editar os NPCs, você pode adicioná-los diretamente ao HTML:
    
    1. Exemplo de teleport grátis
    
    
    [scripts_Util:Gatekeeper X Y Z Heading|Teleport Name]
    [scripts_Util:Gatekeeper -61288 -57736 -1600 0|Move to Top of the Clock Tower.]
    
    
    2. Exemplo de teleport que remove item, é colocada a quantidade e o ID (1 1658)
    
    [scripts_Util:QuestGatekeeper X Y Z ItemCount ItemID|Teleport Name]
    [scripts_Util:QuestGatekeeper -80684 149770 -3040 1 1658|Teleport using Gatekeeper's Amulet.]

     

    1 pessoa curtiu isso

  14. Caminho: Game\data\zone

    Exemplo:

       <zone name="[queen_ant_block_class_id]" type="dummy" >
            <set name="playerClassIdsLimit" val="88;90" />
            <set name="playerClassIdsLimitBackLoc" val="-25464 172424 -4203" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Parâmetros:
    playerClassIdsLimit - Insira aqui classes para expulsar da zona. O separador é ponto e virgula (;)
    playerClassIdsLimitBackLoc - XYZ expele coordenadas da zona.


  15. Caminho: Game/data/zone/

    Vamos pegar qualquer zona padrão:
    Game/data/zone/peace_zone.xml

    <zone name="[primeval_peace1]" type="peace_zone" >
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
    </zone>

    Agora vamos limitar essa zona para que apenas 10 players consigam permanecer.

    <zone name="[primeval_peace1]" type="peace_zone" >
            <set name="restrictPlayerCapacityValue" val="10" />
            <set name="restrictPlayerCapacityBackLoc" val="-25464 172424 -4203" />
            <polygon> <!-- 원시의 섬 선착장(20_17) -->
                <coords loc="10408 -27395 -4290 -1290" />
                <coords loc="12065 -25334 -4290 -1290" />
                <coords loc="12223 -23159 -4290 -1290" />
                <coords loc="10424 -22340 -4290 -1290" />
                <coords loc="9566 -23131 -4290 -1290" />
                <coords loc="9290 -24261 -4290 -1290" />
            </polygon>
    </zone>

    Vamos entender:
    <set name="restrictPlayerCapacityValue" val="10" /> - A quantidade maxima de players que podem.
    <set name="restrictPlayerCapacityBackLoc" val="-25464 172424 -4203" /> - É a coordenada XYZ de onde o player será enviado caso não atenda a quantidade. Se você esquecer de incluir isso ele vai para a cidade mais próxima do território. 

    GM não entra na contagem e a restrição não atinge-o.

    Esta opção é ótima para limitar zergs próximos de raid boss por exemplo.

    2 pessoas curtiram isso

  16. Caminho: Game\data\zone\

    
     
     <zone name="[baium_epic_fun]" type="fun" >
            <set name="enabled" val="true" />
            <set name="playerKillReward" val="4037:100,100;57:100,80" />
            <set name="karmaPlayerKillReward" val="4037:100,100;57:100,80" />
            <set name="ZoneRewardInterval" val="1" />
            <set name="playerKillCheck" val="ip|hwid" />
            <polygon>
                <coords loc="116616 17576 10032 10232" />
                <coords loc="117064 16552 10032 10232" />
                <coords loc="117032 15592 10032 10232" />
                <coords loc="116664 14632 10032 10232" />
                <coords loc="116024 14008 10032 10232" />
                <coords loc="115128 13640 10032 10232" />
                <coords loc="114136 13624 10032 10232" />
                <coords loc="113256 13992 10032 10232" />
                <coords loc="112568 14664 10032 10232" />
                <coords loc="112216 15592 10032 10232" />
                <coords loc="112216 16552 10032 10232" />
                <coords loc="112600 17432 10032 10232" />
                <coords loc="113288 18120 10032 10232" />
                <coords loc="114152 18472 10032 10232" />
                <coords loc="115144 18488 10032 10232" />
                <coords loc="116152 18024 10032 10232" />
            </polygon>
        </zone>
     
    Vamos entender:
    playerKillReward - Parâmetro para recompensas por ponto por pvp itemID:Quantidade:Chance.
    karmaPlayerKillReward - Parâmetro para recompensas por ponto por PK, do mesmo jeito acima.
    ZoneRewardInterval - Delay entre uma recompensa e outra que o player poderá ganhar.
    playerKillCheck - Método de checagem do player, verifica IP, ID de Hardware (HWID) ou ambos. Você pode deletar esse parâmetro caso não queira.
     
    Se você procura que as recompensas sejam entregues em zonas do tipo "Fun" é preciso habilitar a variável PvPCountingInFunZone = True no arquivo presente em Game/config/pvp.properties.

  17. Os dados com respawn estão presentes no banco de dados portanto, você pode abrir uma das duas tabelas para manipular os dados.

    epic_boss_spawn - Para Grand Bosses como Baium, Antaras, Valakas.
    raidboss_status - Para Raid Bosses como Queen Ant, Zaken, Orfen, Core e os demais no mundo.

    RAID BOSS

    image.png


    Para definir o respawn do raidboss vamos usar a Queen Ant de ID 29001 noexemplo. 

     

    
     
    INSERT INTO `raidboss_status` (`id`, `current_hp`, `current_mp`, `respawn_delay`) VALUES (29001, 0, 0, 1544566860);

    1544566860 = É a data no formato TimeStamp, você pode usar esse site para definir sua data e subsituir na query acima ou no campo via gerenciador de banco de dados (Navicat ou heidiSQL). https://www.cy-pr.com/tools/time/

    EPIC BOSS

    Para regular o horário dos Epic Bosses vá até a tabela epic_boss_spawn no seu banco de dados e inclua a data do respawn, calculada da mesma forma do dos RaidBoss https://www.cy-pr.com/tools/time/.

    E altere o campo state para 3.

    image.png

    Recomendado que o servidor esteja desligado para trabalhar com isso.


  18. Você pode incluir o parâmetro abaixo em uma zona para limitar para que a players não consigam estar em party:

    <set name="noParty" val="true" />

    Exemplo:

        <zone name="[queen_ant_epic_fun]" type="fun" >
            <set name="enabled" val="true" />
            <set name="noParty" val="true" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Deixe o valor em true.

    1 pessoa curtiu isso

  19. Caminho: Game/data/zone/

    Vamos usar uma zona qualquer:

    <zone name="[queen_ant_epic]" type="epic" >
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Agora vamos inserir os parâmetros para limitar:

    <zone name="[queen_ant_epic]" type="epic" >
            <set name="restrictInsideClanCount" val="5" />
            <set name="restrictInsidePerClanPlayerCount" val="10" />
            <set name="restrictClanCapacityBackLoc" val="-25464 172424 -4203" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Se você quer restringir tanto clans quanto suas alianças é de uma maneira diferente:

      <zone name="[queen_ant_epic]" type="epic" >
            <set name="restrictInsideClanCount" val="5" />
            <set name="restrictInsidePerAlliancePlayerCount" val="10" />
            <set name="restrictClanCapacityBackLoc" val="-25464 172424 -4203" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Entenda:

    <set name="restrictInsideClanCount" val="5" /> - Este é o numero máximo de clans dentro da zona.
    <set name="restrictClanCapacityBackLoc" val="-25464 172424 -4203" /> - Coordenada de retorno para não atendes ao requisitos.
    <set name="restrictInsidePerClanPlayerCount" val="10" /> - Numero máximo de participantes de um clan.
    <set name="restrictInsidePerAlliancePlayerCount" val="10" /> - Número máximo de participantes de clans e allys em comum.

     

    1 pessoa curtiu isso

  20. Caminho: Game/data/zone

    Vamos pegar uma zona como exemplo:

       <zone name="[queen_ant_epic]" type="epic" >
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Vamos adicionar o parâmetro zoneProhibitedItemIds:

      <zone name="[queen_ant_epic]" type="epic" >
            <set name="zoneProhibitedItemIds" val="7575;6379" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    O ID presente dentro ode val="" é dos itens que você deseja proibir, no exemplo é um draconic bow e um peito draconic.

    Se o player estiver com ele o item será desequipado e o player não poderá equipar até sair de lá.


  21. Caminho: Game/data/zone

    Isso é bastante útil para limitar a quantidade de players em uma zona com o mesmo hardware ID. Dá para limitar multiboxes.

    Vamos pegar um exemplo:

       <zone name="[queen_ant_epic]" type="epic" >
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
        </zone>

    Vamos adicionar os seguintes parametros:

    <set name="uniqHwidLimit" val="1" /> -> Limita as boxes
    <set name="uniqHwidBackLoc" val="-25464 172424 -4203" /> -> Retorna o player caso exceda a quantidade exigida. 

    Exemplo:

    <zone name="[queen_ant_epic]" type="epic" >
            <set name="uniqHwidLimit" val="1" />
            <set name="uniqHwidBackLoc" val="-25464 172424 -4203" />
            <polygon>
                <coords loc="-23176 185080 -6000 -5500" />
                <coords loc="-20104 185080 -6000 -5500" />
                <coords loc="-20104 177928 -6000 -5500" />
                <coords loc="-23176 177928 -6000 -5500" />
            </polygon>
    </zone>

  22. Essa é uma função muito útil para incluir buffs e portabilidade para players, ele basicamente transforma o NPC Buffer em um item que pode ser acionado por dois cliques. Você pode usar o icone e nome que desejar, Boof of Buff, Stone of Buff, Celta Tunado, fica a seu gosto.

    Para criar o item você precisa executar o código da SQL abaixo. Você pode salvar como .sql e executar também.

    INSERT INTO `server_variables` (`name`, `value`) VALUES ('BuffItemIds', '3875');

    O caminho para edição deste item é:

    Game\data\html-en\mods\buffer\item-3875.htm

     

    2 pessoas curtiram isso

  23. Caminho: Game/data/capsule_items.xml

    Itens extraíveis são pacotes, vários itens dentro de um único que após um clique duplo ele entregara os produtos. Você pode por quantidades e % de entrega, vamos conhecer o código:

    <capsule itemId="8534"> O ID da capsula que será aberto.
    <item id="853" Item que será entregue.
    min="1" Quantidade mínima.
    max="1" Quantidade máxima.
    chance="34." /> Chance de ter o item.

    A chance total de todos os itens que estão dentro da capsula não pode exceder 100% e se for menor que % pode existir uma chance de nada sair.

    <capsule itemId="8534">
      <item id="853" min="1" max="1" chance="34." />
      <item id="916" min="1" max="1" chance="33." />
      <item id="884" min="1" max="1" chance="33." />
    </capsule>

    Você pode colocar itens condicionais para abrir estes itens, tipo uma chave..

    Exemplo:

    <capsule itemId="8534" requiredItemId="4037" requiredItemAmount="1">
    <item id="853" min="1" max="1" chance="34." />
    <item id="916" min="1" max="1" chance="33." />
    <item id="884" min="1" max="1" chance="33." />
    </capsule>

    Onde:

    requiredItemId - o item de id necessário para abrir o baú
    requiredItemAmount - o número de itens do requiredItemId para abrir o baú


    Além disso, podemos incluir itens encantados dentro.

    Exemplo:

    <capsule itemId="9000">
    <item id="6656" min="1" max="1" chance="34." enchant_min="6" enchant_max="6"/>
    <item id="6657" min="1" max="1" chance="33." enchant_min="1" enchant_max="2"/>
    <item id="6658" min="1" max="1" chance="33." enchant_min="6" enchant_max="10"/>
    </capsule>


    Onde:
    Enchant_min e Enchant_max - valor mínimo e máximo de encante do item que será entregue


  24. Para criar um book ou qualquer outro item que queira, para que, ao usar, aparecer uma opção para bufar o personagem, primeiramente precisamos criar um item para isso e em seguida adicionar uma SQL ao banco de dados:

    Exemplo de como deve ser o Item abaixo

      <etcitem id="10000" name="Book of Fighter Buff">
        <!-- [Item buffer to fighter characters] -->
        <set name="class" value="OTHER"/>
        <set name="crystal_type" value="NONE"/>
        <set name="icon" value="icon."/>
        <set name="destroyable" value="false"/>
        <set name="dropable" value="false"/>
        <set name="sellable" value="false"/>
        <set name="tradeable" value="false"/>
        <set name="stackable" value="false"/>
        <set name="type" value="OTHER"/>
      </etcitem>

    Após criar o item, precisamos adicionar a seguinte SQL a sua database:

    INSERT INTO `server_variables` (`name`, `value`) VALUES ('BuffItemIds', 'ID_DO_ITEM');

    Onde temos 'ID_DO_ITEM' adicione o ID do item que criou, no caso de nosso exemplo, o ID é 10000, então ficaria da seguinte forma:

    INSERT INTO `server_variables` (`name`, `value`) VALUES ('BuffItemIds', '10000');

    Adicione no bloco de notas e salve como .sql, após isso, execute no Navicat.

    Agora, após a variável criada e o item criado, precisamos dar vida ao item e para isso, temos que criar uma HTML ao seu gosto com o comando para que possa assim buffar, o caminho é o seguinte: gameserver\data\html-en\mods\buffer\ e dentro dessa pasta temos que salvar nossa HTML com o nome item-10000.htm porque é o ID do nosso item que configuramos lá em cima a variável, abaixo o exemplo:

    <html><body>
     

    <table bgcolor=000000>
    <tr>
    <td width=25 align="right"><button action="bypass -h scripts_services.Buffer:act ask=10000&reply=" width=32 height=32 back="icon.skill1068" fore="icon.skill1068"></td>
    <td width=185>
    <table>
    <tr><td><font color="0066CC">[ Fighter Buff ]</font></td></tr>
    <tr><td>Get Fighter Buff.</td></tr>
    </table>
    </td>
    <td width=40><img src=L2UI_CH3.tutorial_pointer width=34 height=15></td>
    </tr>
    </table>
    </html></body>

    E note que dentro dessa HTML o comando para adicionar ao botão é o seguinte: "bypass -h scripts_services.Buffer:act ask=10000&reply=" onde ask=10000 é o template que vamos configurar no próximo passo.

    Nesse passo vamos criar um template de buff, exemplo, vamos criar um template de buffs fighter, o caminho para a edição é: gameserver\data\buff_templates.xml

    Abaixo, o template:

    	<!-- Item Id -->
        <template menuId="10000" target="BUFF_PLAYER">
            <consume>
                <item id="10000" amount="1"/>
       	    </consume>
            <produce>
                <skill id="1204" level="2" />
                <skill id="1040" level="3" />
                <skill id="1068" level="3" />
                <skill id="1062" level="2" />
                <skill id="1036" level="2" />
                <skill id="1045" level="6" />
                <skill id="1086" level="2" />
                <skill id="1077" level="3" />
                <skill id="1242" level="3" />
                <skill id="1268" level="4" />
                <skill id="264" level="1" />
                <skill id="268" level="1" />
                <skill id="269" level="1" />
                <skill id="267" level="1" />
                <skill id="304" level="1" />
                <skill id="271" level="1" />
                <skill id="274" level="1" />
                <skill id="275" level="1" />
                <skill id="310" level="1" />
                <skill id="1363" level="1" />
            </produce>
        </template>

    Após abrir o arquivo, pode copiar e colar o código acima, e vamos entender como ele funciona: 

    <template menuId='10000' é o Id que vamos colocar no botão da HTML, esse que configuramos lá em cima: "bypass -h scripts_services.Buffer:act ask=10000&reply="
     

            <consume>
                <item id="10000" amount="1"/>
       	    </consume>

    Para que ao abrir o item, ele bufe e suma, precisamos CONSUMIR ELE, e é aqui onde colocamos seu ID(item id="10000") e a quantidade (amount="1") .

    Após ter feito tudo isso, basta dar um restart no servidor, criar o item e testar :)

    Abaixo a sequencia de screenshots do meu server:

    1 - Item no inventário.

    1.thumb.jpg.5ae988a100cdfb6fedee33250b96dfa7.jpg

    2 - Clicando 2x ou com botão direito em cima do item, aparece a tela de HTML que configuramos

    2.thumb.jpg.bf38aa59fb301cd618ca55a04df71c0e.jpg

    3 - Ao clicar no botão de bufar, somos bufados e o item some da bolsa :)

    3.thumb.jpg.376bb21370ea91315bede2662118b47d.jpg