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

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:
<template menuId="126" target="BUFF_PLAYER" minLevel="51">
В данном реализовано давать бафф с 51 лвла.
Есть ли реализация до какого лвла выдавать бафф?
Пробовал подставить maxLevel="51" - ошибка
Нет. Только у ньюби баффера такое реализовано. Создай таску.
<item id="57" amount="200000" from_level="20"/> Таким образом чар до 20того будет баффатся бесплатно
Он это и написал. Перечитай его сообщение.
 
<item id="57" amount="200000" from_level="20"/> Таким образом чар до 20того будет баффатся бесплатно
Наверно я не правильно выразился, нужно чтобы после 51 лвла к примеру, нельзя было баффнуться.
 
Code:
<template menuId="126" target="BUFF_PLAYER" minLevel="51">
    <consume>
        <item id="9999" amount="1" />
    </consume>
    <produce>
        <skill id="1068" level="3" />
        <skill id="1040" level="3" />
        <skill id="1086" level="2" />
    </produce>
</template>
А если поставить итем 9999 который игрок нигде не сможет взять?
Будет до 51 получать бафф за адену, а уже после не сможет, поскольку у него не будет этого итема?
 
Code:
<template menuId="126" target="BUFF_PLAYER" minLevel="51">
    <consume>
        <item id="9999" amount="1" />
    </consume>
    <produce>
        <skill id="1068" level="3" />
        <skill id="1040" level="3" />
        <skill id="1086" level="2" />
    </produce>
</template>
А если поставить итем 9999 который игрок нигде не сможет взять?
Будет до 51 получать бафф за адену, а уже после не сможет, поскольку у него не будет этого итема?
На первое время сойдёт, но лучше сделать таску:)
 
Возможно ли как нибудь сделать статус премиум баффа отдельно от ПА?
 
Возможно ли как нибудь сделать статус премиум баффа отдельно от ПА?
Сделай итем за донат, привяжи к его наличию в инвентаре баф и все
 
Сделай итем за донат, привяжи к его наличию в инвентаре баф и все
У меня так и сделано, просто хотелось бы просто сервис сделать, без итема
 
У меня так и сделано, просто хотелось бы просто сервис сделать, без итема
Создай тикет на репизитории если хочешь без итема
 
Я что то не найду Клинса в меню баффера
Получил Raid Curse, прилетел в город но так и остался стоять под Curse
Пошел искать Cleanse в меню баффера - не нашел... плохо искал?
 
buff_templates в данном файле я указал клинс

<produce>
<skill id="1409" level="1" />
<!-- Cleanse -->
</produce>
 
Я что то не найду Клинса в меню баффера
Получил Raid Curse, прилетел в город но так и остался стоять под Curse
Пошел искать Cleanse в меню баффера - не нашел... плохо искал?
buff_templates в данном файле я указал клинс

<produce>
<skill id="1409" level="1" />
<!-- Cleanse -->
</produce>
Байпас для клинса:
Code:
action="bypass -h scripts_services.Buffer:act ask=-4&reply=0"
 
Я правильно понимаю, чтобы баффер мог корректно бафать питомца, нужно еще второй комплект всех страниц делать, но с ссылкой на баффы с target="BUFF_PET"?
Или есть какой-то способ попроще?
 
Я правильно понимаю, чтобы баффер мог корректно бафать питомца, нужно еще второй комплект всех страниц делать, но с ссылкой на баффы с target="BUFF_PET"?
Или есть какой-то способ попроще?
Да. Только BUFF_PET и другие menuid.
 
Ребят, ещё пару вопросов
Для рестора персонажа я использую байпас:
bypass scripts_services.Buffer:actBBS ask=-3 он направлен на персонажа.
Как сделать реген/канцел питомца? Я ж так понимаю эти минусовые ask, это дизер пилил? Для петов такие есть? Можно как-то все возможные заготовки глянуть?

Профили получается для пета тоже свои будут? т.е. из 4х профилей 1-2 еще и под пета нужно задействовать?
 
может кому пригодится
SkillDurationMod = 1040-7200;1068-7200;1035-7200;1043-7200;1077-7200;1078-7200;1085-7200;1311-7200;1032-7200;1036-7200;1045-7200;1048-7200;4352-7200;4357-7200;4391-7200;4403-7200;4405-7200;1087-7200;1259-7200;1059-7200;1268-7200;4554-7200;271-7200;272-7200;273-7200;274-7200;275-7200;276-7200;277-7200;1303-7200;310-7200;311-7200;365-7200;1086-7200;1242-7200;1240-7200;364-7200;264-7200;269-7200;265-7200;363-7200;349-7200;304-7200;267-7200;266-7200;268-7200;1002-7200;1363-7200;4553-7200;1062-7200;1044-7200;1204-7200;1251-7200;1252-7200;1253-7200;1284-7200;1006-7200;1007-7200;1009-7200;1362-7200;1310-7200;1309-7200;1308-7200;1391-7200;1390-7200;1397-7200;1364-7200;1356-7200;1355-7200;1357-7200;1413-7200;1257-7200;1182-7200;1189-7200;1191-7200;1073
 
Back
Top