Как редактировать систему Промо кодов

Deazer

Head Developer
Staff member
Включение:
gameserver/config/services.properties
##### Сервис промо кодов #####
# Для конфигурации и промо кодов нужно редактировать файл data/promocodes.xml
# Байпас для НПЦ <a action="bypass -h scripts_services.PromoCodeService:showPromo">Активировать промо код</a>
PromoCodeServiceEnable = False
# Вызов промо кода командой .promo .promocode
PromoCodeCommandEnable = False

Местонахождение:
gameserver/data/promocodes.xml

Теперь рассмотрим разные варианты настроек:

1. Базовый
Code:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE list SYSTEM "promocodes.dtd">
<list>
    <code name="HELLO" limitByUser="false">
        <date from="12:00 12.12.2012" to="12:00 13.13.2013" /> <!-- format HH:mm dd.MM.yyyy -->
        <item id="57" count="212" /> <!-- Min: 1 Max: 2147483647 -->
        <exp val="11" /> <!-- Min: 1 Max: 2147483647 -->
        <sp val="111" /> <!-- Min: 1 Max: 2147483647 -->
        <addLevel val="1" /> <!-- Min: 1 Max: 80 -->
    </code>
</list>

name="HELLO" - сам промо код который вы будете распространять и который будет вводить игрок
limitByUser="false" - если выставить в True тогда промо код будет действовать на аккаунты которые вы вручную добавите в таблицу promocode_users
date from="12:00 12.12.2012" to="12:00 13.13.2013" - время с которого начинает действовать промо код и когда завершиться
<item id="57" count="212" /> Предмет который будет выдан
<exp val="11" /> Сколько будет начислено Exp
<sp val="111" /> Сколько будет начислено SP
<addLevel val="1" /> Сколько будет добавлено к текущему уровню
2. Расширенный
Code:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE list SYSTEM "promocodes.dtd">
<list>
    <code name="HELLO" limitByUser="false" limit="100">
        <date from="12:00 12.12.2012" to="12:00 13.13.2013" /> <!-- format HH:mm dd.MM.yyyy -->
        <item id="57" count="212" /> <!-- Min: 1 Max: 2147483647 -->
        <exp val="11" /> <!-- Min: 1 Max: 2147483647 -->
        <sp val="111" /> <!-- Min: 1 Max: 2147483647 -->
        <setLevelval="80" /> <!-- Min: 1 Max: 80 -->
    </code>
</list>
<code name="HELLO" limitByUser="false" limit="100"> при таком условии данный промо код смогут игроки использовать только 100 раз суммарно, на разных аккаунтах. 1 аккаунт может его использовать только 1 раз.
<code name="HELLO" limitByUser="false" limit="100" minLevel="76"> при таком условии данный промо код смогут игроки достигшие 76 и более уровня.
<setLevelval="80" /> - при таком параметре не будет надбавляться уровень, а сразу устанавливать указанный. Допустим игрок ввел код и у него был 1 уровень, он станет 80 уровня.
<item id="7575" count="1" enchant="3"/> - Теперь пример с выдачей заточенного оружия. В данном варианте будет выдан Draconic Bow с заточкой +3
 
Last edited:
<code name="HELLO" в базу само будет добавлять или самому надо вписывать ?
 
проверки по ip или hwid от накрутки будет?
и вызов команды из КБ тоже рассмотри пожалуйста
 
проверки по ip или hwid от накрутки будет?
и вызов команды из КБ тоже рассмотри пожалуйста
да из откуда угодно, hwid ip завтра уже сделаю
 
Что я сделал не так , не понимаю
Включил в конфиге все, настроил как написано, но в итоге при вводе промо пишет сервис отключен
 
опять в xml, промокоды должны быть динамичными как по мне, что бы можно было в режиме реального времени ими рулить, а не во время рестартов
 
опять в xml, промокоды должны быть динамичными как по мне, что бы можно было в режиме реального времени ими рулить, а не во время рестартов
выведу в конфиги релоад, чего сразу серчаете.
 
Что я сделал не так , не понимаю
Включил в конфиге все, настроил как написано, но в итоге при вводе промо пишет сервис отключен
Ага косякнул чуток, обновись, сейчас на репу залью
 
выведу в конфиги релоад, чего сразу серчаете.
да не, просто прикинул ситуацию захотелось в телегу в рандомный момент выкинуть промик на 1 человека кто первый успеет, вот рестарт нужен и тд для этого)
а так в целом спасибо за новшества)
 
Ага косякнул чуток, обновись, сейчас на репу залью
Так то показывает что работает, но при вводе кода клиент стопорится и критует , снова в игру захожу пишет вы ввели уже код
 
Так то показывает что работает, но при вводе кода клиент стопорится и критует , снова в игру захожу пишет вы ввели уже код
уже выяснили что в HTML ты не силен :) Проблема не актуальна
 
Добавил возможность проверять HWID и IP
Пример:
<code name="HELLO" limitByHWID="true">
<code name="HELLO" limitByIP="true">
 
Добавил возможность проверять HWID и IP
Пример:
<code name="HELLO" limitByHWID="true">
<code name="HELLO" limitByIP="true">
Возможно ли добавить ограничение по lvl? Например, промо-код можно использовать только после 76 уровня.
 
Возможно ли добавить ограничение по lvl? Например, промо-код можно использовать только после 76 уровня.
Сделал, лежит на репозитории. Гайд обновил
 
Back
Top