Jump to content



Como trabalhar com Buffers comum e premium


Kelvin

Recommended Posts

  • L2JBr ADM

ID do NPC: 40010
HTML: Gameserver\data\html-en\mods\buffer
XML: Gameserver\data\buff_templates.xml

O arquivo XML é o local onde você configura level, valores, condições e assim por diante.

Vamos considerar a XML e seus buff_templates.xml formato:

Exemplo:

<template menuId="200" target="BUFF_PLAYER">
 <consume>
  <item id="57" amount="200000" />
 </consume>
 <produce>
  <skill id="1068" level="3" />
  <skill id="1040" level="3" />
  <skill id="1086" level="2" />
  <skill id="1204" level="2" />
  <skill id="1077" level="3" />
  <skill id="1242" level="2" />
  <skill id="1268" level="4" />
 </produce>
</template>

Vamos entender estas tags:

MenuId - É o ID que vamos criar um alvo de buffer, seja para BUFF_PLAYER ou BUFF_PET.
Consume - ID e quantidade dos itens para dar o buff.
Produce - São os valores com ID e nível dos buffs que serão entregues ao chamar esse MenuID.

<consume>
 <item id="57" amount="200000" /> 
 <item id="4037" amount="0" />
</consume>

No exemplo acima coloquei para o item cobrado ser 200000 adenas. 
Dica: pode criar ou usar uma moeda existente para ser um "coin de buff" ou semelhante. Em amount se o valor for igual a 0 ele não vai consumir ao entregar o buff. Ou você pode colocar um consumo se for uma moeda recorrente. 

Além disso, você pode usar vários itens na planilha (buff_templates.dtd) a partir dos quais o primeiro dos existentes no inventário será consumido - é conveniente para contas premium com níveis diferentes. Exemplo:

<consume anyFirst="true">
  <item id="6673" amount="0" />
  <item id="4037" amount="0" />
</consume>

----

Recaptulando, a função produce é onde será armazenamento o buff ou o esquema de buffs que você deseja entregar para aquele ID.

Entrega apenas 1 buff:

<produce>
 <skill id="1068" level="1" /> -> Entrega apenas 1 buff 
</produce>

Entrega vários buffs:

<produce>
 <skill id="1068" level="3" />
 <skill id="1040" level="3" />
 <skill id="1086" level="2" />
 <skill id="1204" level="2" />
 <skill id="1077" level="3" />
 <skill id="1242" level="2" />
 <skill id="1268" level="4" />
</produce>

Se você quiser limitar um buff para ser entregue apenas em um determinado level use a variável from_level, o player precisa ter 200000 e é necessário ter precisamente o level 20 no exemplo abaixo, veja:

<consume>
 <item id="57" amount="200000" from_level="20"/> 
</consume>

Para exigir um nível mínimo e ser livre para todos os subsequentes podemos usar a variável minLevel na tag do template:

<template menuId="126" target="BUFF_PLAYER" minLevel="51"> -> Level minimo necessário para receber o buff.
 <consume>
  <item id="57" amount="200000" />
 </consume>
 <produce>
  <skill id="1068" level="3" />
  <skill id="1040" level="3" />
  <skill id="1086" level="2" />
 </produce>
</template>


Veja um exemplo de como adicionar um esquema de buff a um dialogo html localizado em \Gameserver\data\html-en\mods\buffer\1.html

O dialogo vamos encontrar a ação assim:
<a action="bypass -h scripts_services.Buffer:act ask=200&reply=1">Fighter 1 lvl</a>

Vamos entender:
ask=200 - É o ID que inserimos no campo MenuID, portanto, esse botão vai char o buff(s) que você colocou nesse template com as condições internas que você aprendeu neste guia. 

&reply=1 - É a pagina de retorno, o player clica, ganha o buff e retorna. Neste exemplo o replay é 1, voltara para a 1.html. Você pode criar htmls adicionais de sucesso para buff ou qualquer coisa que sua criatividade permita.

 

GG, você entende o básico de como trabalhar com o buff.

Link to comment
Share on other sites

  • Kelvin pinned this topic
    <template menuId="105" target="BUFF_PLAYER">
        <consume is_premium_required="true">
            <item id="57" amount="25000" />
        </consume>
        <produce>
		<skill id="4699" level="1" />
        </produce>
    </template>

No caso para um buff especifico, ser usado somente por premium, seria assim?

Red Legion

Link to comment
Share on other sites

Em 05/02/2021 at 04:05, Jeeffruan disse:
    <template menuId="105" target="BUFF_PLAYER">
        <consume is_premium_required="true">
            <item id="57" amount="25000" />
        </consume>
        <produce>
		<skill id="4699" level="1" />
        </produce>
    </template>

No caso para um buff especifico, ser usado somente por premium, seria assim?

me auto  corrigindo..

 

<template menuId="124" target="BUFF_PLAYER">
    <consume>
        <item id="57" amount="600000" is_premium_required="true"/>
    </consume>

 

Red Legion

Link to comment
Share on other sites

  • L2JBr ADM
4 horas atrás, Jeeffruan disse:

me auto  corrigindo..

 

<template menuId="124" target="BUFF_PLAYER">
    <consume>
        <item id="57" amount="600000" is_premium_required="true"/>
    </consume>

 

Correto, você pode definir 0 adenas pra free, menos itens para premium, entre outros. 

O Buff desse menu ID ai no caso precisa ter status premium e ter 600000 adenas.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Join now

    Be part of the largest and oldest communities about Lineage2 in Latin America.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.