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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • 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.