Как работать с баффером и делать Премиум баффы

Data Location:
NPC id по умолчанию - 40010
Диалоги- gameserver\data\html-en\mods\buffer
XML схема с баффами, уровнями, наборами и стоимостью - gameserver\data\buff_templates.xml

Теперь рассмотрим сам buff_templates.xml формат:

Пример:

Code:
<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>

menuId - ID on which we address a buffer
target - whom buff, BUFF_PLAYER or BUFF_PET
consume - id and quantity of items.
produce - here is stored buff or schemes of buffs.
Example:
Code:
<consume>
<item id="57" amount="200000" /> снимаем 200000 adena
<item id="4037" amount="0" /> для премиума при 0 просто проверяем наличие предмета в инвентаре
</consume>
Если мы хотим снимать предметы от определенного уровня то:
Code:
<consume>
<item id="57" amount="200000" from_level="20"/> Таким образом чар до 20того будет баффатся бесплатно
</consume>
Если мы хотим баффать сет чарам с минимальным уровнем к примеру от 51:
Code:
<template menuId="126" target="BUFF_PLAYER" minLevel="51">
    <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>

Так же вы можете использовать несколько предметов в листе из которых будет вбираться первый из существующих в инвентаре - удобно для премиум аккаунтов с разной длительностью.
Пример:
Code:
  <consume anyFirst="true">
  <item id="6673" amount="0" />
  <item id="4037" amount="0" />
  </consume>

Проверка на наличие премиум аккаунта у игрока:
Code:
<template menuId="124" target="BUFF_PLAYER">
    <consume>
        <item id="57" amount="600000" is_premium_required="true"/>
    </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>

produce - здесь указываются сами баффы и их уровни
Example:
Code:
<produce>
<skill id="1068" level="1" />
</produce>

Множество баффов

Code:
<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>

Пример для добавления в XML и диалога:

2. Кнопка, с которой мы добавляем диалог
<a action="bypass -h scripts_services.Buffer:act ask=200&reply=1">Fighter 1 lvl</a>

Теперь подробно:
ask=200 - Это menuId к Баффу с XML или сету баффов
&reply=1 - на какую страничку будет возврат. В нашем случаи будет возвращено на 1.htm
_____________________________________________________________
<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>
 
Last edited:
Code:
# Пример : 3600 ( 1 час + базовое время)
AltNpcBufferEffectTime = 0
3600 - это 1 час, у тебя же стоит "0", а это значит "0 + базовое время", т.е. как было 20 мин, так и осталось.
Что касается ПА:
AltNpcPremiumBufferEffectMul = 3. - т.е. 0*3=0 - простая математика)
все настроил. нужно было просто 1200 написать. У простых будет 20 мин, у ПА 60 мин
Тут не добавляется базовое, а выставляется просто базовое время
 
Last edited:
Т.е. мне нужно в место 0 поставить 1?
Мне нужно от баффера 20 мин для людей без ПА и 60 для людей с ПА
______________
# Множитель времени для баффов при наличии Премиум Аккаунта (AltNpcBufferEffectTime * AltNpcPremiumBufferEffectMul)
# Пример : AltNpcPremiumBufferEffectMul = 1.2 +20% к времени AltNpcBufferEffectTime для Премиум Аккаунта
AltNpcPremiumBufferEffectMul = 3.
________________


AltNpcPremiumBufferEffectMul = 3 ставишь, получаешь стандартное время без према(20 мин) и умножение на 3 с премом(60 мин), если поставишь 4 в значение, получишь 80 минут с приёмом соответственно.
 
Два отельных html сепарируешь и этого более чем
Получается, чтобы сделать для ПА баф за Адену, а для игроков без ПА за ФА, нужно сделать дубликат всех страниц с префиксом -pa и дублировать бафы в buff_templates?
Или можно как то только 1 страницу сделать с префиксом -pa?
 
Last edited:
Получается, чтобы сделать для ПА баф за Адену, а для игроков без ПА за ФА, нужно сделать дубликат всех страниц с премиксом -pa и дублировать бафы в buff_templates?
Da
 
Подскажите, при включенной настройке:

Code:
# При включении для владельцев премиум аккаунта будет отображается ХТМЛ с префиксом -pa.htm
# Example: for normal player npc-40010.htm, for premium npc-40010-pa.htm
AltNpcBufferPremiumHtmlPrefix = True

Как сделать чтоб обращение с данным префиксом, шло только к нужной странице с премиум баффом ? А не ко всем страницам баффа. Плодить ещё кучу хтмл ради префикса "-pa" для всех страниц не особо хочется.
 
Подскажите, при включенной настройке:

Code:
# При включении для владельцев премиум аккаунта будет отображается ХТМЛ с префиксом -pa.htm
# Example: for normal player npc-40010.htm, for premium npc-40010-pa.htm
AltNpcBufferPremiumHtmlPrefix = True

Как сделать чтоб обращение с данным префиксом, шло только к нужной странице с премиум баффом ? А не ко всем страницам баффа. Плодить ещё кучу хтмл ради префикса "-pa" для всех страниц не особо хочется.
Линковать байпассы к нужным
 
Линковать байпассы к нужным

Можно пример ? Потому как на странице с прем баффом (с префиксом), линки и так указаны без префикса:

Code:
value="Настроить" action="bypass -h scripts_services.Buffer:act reply=Buffer-p1"
value="Профили" action="bypass -h scripts_services.Buffer:act reply=Buffer-p2"
value="Сонги" action="bypass -h scripts_services.Buffer:act reply=3"
 
может ктото подсказать?
добавил маляру/флу в бафере "<td align=left><img src=icon.skill4037 width=25 height=25></td><td align=left><a action="bypass -h scripts_services.Buffer:act ask=4554&reply=9999">Malaria</a></td>"

но он почемуто неработает, в гс ошибка
 

Attachments

  • маляра.webp
    маляра.webp
    6.2 KB · Views: 7
В том то и дело что они там по стандарту есть
MenuId ? Проверь мб ты не туда смотришь. Это не ид скила
<template menuId="200"
Теперь подробно:
ask=200 - Это menuId к Баффу с XML или сету баффов
&reply=1 - на какую страничку будет возврат. В нашем случаи будет возвращено на 1.htm
 
в buff_templates.xml добавил

<template menuId="9999" target="BUFF_PLAYER">
<consume>
<item id="57" amount="400" />
</consume>
<produce>
<skill id="4553" level="10" />
<skill id="4554" level="10" />
</produce>
</template>


байпасы "bypass -h scripts_services.Buffer:act ask=4554&reply=9999"
"bypass -h scripts_services.Buffer:act ask=4553&reply=9999"

все бафы работаеют кроме Маляри и флу, никак понять немогу в чем причина
 
Last edited:
народ, непойму че за прикол, щяс вот допер в чем дело
бафф "Revenge" и все остальные

<td align=left><img src=icon.skill1284 width=25 height=25></td><td align=left><a action="bypass -h scripts_services.Buffer:act ask=67&reply=9999">Revenge</a></td>

ид у бафа ask=67 и он работа и бафает и при этом откуда-то тянец цену 25000, в buff_templates.xml его нету, только непонимаю с какого перепуга в "Revenge" такой ид, если у него должен быть ид 1284
если вписываю ид 1284
<td align=left><img src=icon.skill1284 width=25 height=25></td><td align=left><a action="bypass -h scripts_services.Buffer:act ask=1284&reply=9999">Revenge</a></td>

б'ёт ошибку в гс
[00:23:29] WARN Buffer: Unknown menuId "1284" used.

придпологаю что из заетого у меня неработает
<template menuId=
 
народ, непойму че за прикол, щяс вот допер в чем дело
бафф "Revenge" и все остальные

<td align=left><img src=icon.skill1284 width=25 height=25></td><td align=left><a action="bypass -h scripts_services.Buffer:act ask=67&reply=9999">Revenge</a></td>

ид у бафа ask=67 и он работа и бафает и при этом откуда-то тянец цену 25000, в buff_templates.xml его нету, только непонимаю с какого перепуга в "Revenge" такой ид, если у него должен быть ид 1284
если вписываю ид 1284
<td align=left><img src=icon.skill1284 width=25 height=25></td><td align=left><a action="bypass -h scripts_services.Buffer:act ask=1284&reply=9999">Revenge</a></td>

б'ёт ошибку в гс
[00:23:29] WARN Buffer: Unknown menuId "1284" used.

придпологаю что из заетого у меня неработает
<template menuId=
Тебе даже ошибка говорит что отсутствует menuId "1284", ask=67 сюда не вписывается ID самого скила тебе уже писали же об этом.

<template menuId="67" target="BUFF_PLAYER"> menuId="67" этот id ты и вписываешь в htm, ни какой другой и темболее id скилла! А именно только menuId="67" должно получится ask=67 в htm, давай еще раз: строка ask=67 - означает id из файла buff_templates.xml <template menuId="67" target="BUFF_PLAYER">
<consume>
<item id="57" amount="25000" /> Вот тут ты редактируешь цену бафа, id="57" - это ид адены, amount="25000" это необходимое кол-во (цена)
</consume>
<produce>
<skill id="1284" level="3" /> Вот это уже ID скилла (бафа который будет наложен на перса)
</produce>
</template>
 
Last edited:
Всем привет. Ребят подскажите, куда копать... Подрубил buff-pa.htm, открываю в Альт+Б страницу, нажимаю, например, на чанты и страница становится пустой... Куда копать?
 
Всем привет. Ребят подскажите, куда копать... Подрубил buff-pa.htm, открываю в Альт+Б страницу, нажимаю, например, на чанты и страница становится пустой... Куда копать?
Настраивать buff-pa.htm
 
Back
Top