Новая система фантомов повторяющие действия игроков

Суть: Новая система фантомов временно работает только для мирных зон и дублирует действия игроков, тем самым более качественно эмулирует онлайн.

Конфиг: gameserver\config\altrecbots.properties
Содержание:
# Включить ли систему ботов повторяющиеся действия игроков
BotsEnabled = False

# Использование выделенного экзекютера. В противном случае будет использоваться внутренний игрового сервреа.
UseDedicatedExecutor = True
DedicatedExecutorThreads = 1
DedicatedScheduledThreads = 2

# Свойства записи действий игрока.
# Последовательность действий игрока является источником действий, которые будет анимировать бот.

# Автоматическая запись начинается с того, что игрок появляется в мирной зоне в нормальном состоянии
# и заканчивается тем, что игрок покидает зону или переходит в неживое состояние (например, частный магазин).
# Записываются только самые эффективные действия: базовое движение, экипировка/снятие предметов, использование навыков, смена класса и т.д.
# Включить автоматическую запись.
AutoRecordPlayerActions = True
# Минимальный/максимальный уровень игроков для автоматической записи.
AutoRecordMinLvl = 10
AutoRecordMaxLvl = 78

# Игнорировать благородных/героев/GM игроков для записи действий
AutoRecordIgnoreNoble = False
AutoRecordIgnoreHero = True
AutoRecordIgnoreGM = False
# Игнорировать игрока в этих зонах
AutoRecordIgnoreZones = [gludin_port1];[glludin_port2];[giran_port1];[giran_port2]
# Игнорировать телепортацию, если игрок телепортируется из одной мирной зоны в другую.
# В противном случае создайте новую последовательность действий.
AutoRecordIgnorePeaceTeleport = True

# Минимальное количество действий для записи
PlayerRecordMinSequenceLength = 10
# Максимальное количество записываемых действий
PlayerRecordMaxSequenceLength = 500
# Минимальное время для записи действий (milliseconds)
PlayerRecordMinSequenceDuration = 10000
# Максимальное время для записи действий (milliseconds)
PlayerRecordMaxSequenceDuration = 600000

# Создайте новую запись последовательности действий снова.
# Один игрок может пораждать множество записей, в противном случаи - только одну.
AutoRecordNewSequence = True

# Воспроизведения последовательности действий
# Циклическое воспроизведение действий. Телепортирует обратно в исходное место и повторяет.
LoopPlayback = False

# Максимальное время жизни бота
PlaybackBotTTL = 600000

# Интервал ожидания перед деспауном
BotsUnspawnIntervalMin = 5000
BotsUnspawnIntervalMax = 15000
# Интервал ожидания после появления в мире
BotsFirstActionMin = 5000
BotsFirstActionMax = 15000

# Реакция на предложение боту вступить в клан, пати или обмен
BotAcceptRequestChances = PARTY:10;CLAN:15;TRADE:40
BotDenyRequestChances = PARTY:10;CLAN:15;TRADE:40

# Стартовый титул бота
InitialBotsTitle =
# Шанс того что бот выставит себе другой титул (делает только нобл бот)
IndividualBotTitleChance = 30

# Визуальное ограничение заточки предметов
BotItemEnchantAnimateLimit = 10

# Радиус рандомизации позиции появления бота
PlaybackSpawnPosRandomRadius = 128
# Не воспроизводит действия игроков с этими id предметорв (разделитель ,)
PlaybackIgnoredItemIds =

# Стартовые предметы ботов
# По умолчанию: SS/BSS
BotAdditionalInventoryItems = 5789:100,1835:100,1463:100,1464:100,1465:100, 1466:100, 1467:100, 5790:100, 2509:100, 2510:100, 2511:100, 2512:100, 2513:100, 2514:100

# Появление бота с определенным модификатором вероятности идентификатора класса
# <classId1>:<mod1>;<classId2>:<mod2>...
# где <classIdN> - базовый класс id
# <mod1> - 0 - не будет заспаунен вообще, 0.5 - половина, 1 стандартное, 2 - x2, ...
# Default: пустой - равная вероятность для всех.
PlaybackClassIdProbabilityMod =

# Вероятность в процентах того, что бот что-то скажет.
BotTalkChance = 0
BotTalkChanceShout = 0
# Время повторного использования фразы.
PhraseReuseTime = 1000

# Имя учетной записи всех ботов (аккаунт)
BotAccountName = bot_account

# Стратегия спауна ботов
# Constant - статический спауне к примеру 50 ботов: BotSpawnStrategy = Constant(50)
# OnlinePercent - процент от онлайна к примеру 20%: BotSpawnStrategy = OnlinePercent(20)
BotSpawnStrategy = Constant(50)

Админ команды:
//delete_bot_record -- Использовать: //delete_bot_record <botId> | or just shift click on him
//kick_bot -- кикнуть из игры | или по шифт клику по нему можно
//bots_strategy -- изменить стратегию спауна ботов. Первая процент от онлайна, второй это константа //bots_strategy OnlinePercent 10 | //bots_strategy Constant 50
//bots_disable -- выключить ботов

SQL таблицы:
altrec_actions.sql - записи действий игрока для ботов
altrec_bots.sql - бот id. его класс, нобл или нет
altrec_items.sql - предметы которыми владеет бот
altrec_names.sql - имена ботов
altrec_phrases.sql - фразы ботов
altrec_skills.sql - скилы ботов
altrec_subclasses.sql - сабклассы ботов
altrec_title.sql - титулы
 
Last edited:
Он сказал , что сделает просто так , и тикет есть , но времени увы нет на это :(
Человек имея свои сборки и не одну "какие бы там моменты не выплывали, я считаю что она у него лучшая, как бы там ни было" занят помимо их, ещё другими делами...
По слухам, или может нет, он пилит известным серверам то что им нужно за нормальный такой кэш... отсюда и нету у него времени, и сесть одной жопой на два стула... он не может...
Поэтому остается только ждать свободного времени человека... + он не робот что бы 24\7, есть своя жизнь, как никак....а нам красавцам за 20$ пилить всё что мы себе придумали... сразу никто не будет.... так что ждемс...
 
Человек имея свои сборки и не одну "какие бы там моменты не выплывали, я считаю что она у него лучшая, как бы там ни было" занят помимо их, ещё другими делами...
По слухам, или может нет, он пилит известным серверам то что им нужно за нормальный такой кэш... отсюда и нету у него времени, и сесть одной жопой на два стула... он не может...
Поэтому остается только ждать свободного времени человека... + он не робот что бы 24\7, есть своя жизнь, как никак....а нам красавцам за 20$ пилить всё что мы себе придумали... сразу никто не будет.... так что ждемс...
Так я наоборот с тем , что сделает , просто чуть надо подождать , однозначно диз лучший!
 
Человек имея свои сборки и не одну "какие бы там моменты не выплывали, я считаю что она у него лучшая, как бы там ни было" занят помимо их, ещё другими делами...
По слухам, или может нет, он пилит известным серверам то что им нужно за нормальный такой кэш... отсюда и нету у него времени, и сесть одной жопой на два стула... он не может...
Поэтому остается только ждать свободного времени человека... + он не робот что бы 24\7, есть своя жизнь, как никак....а нам красавцам за 20$ пилить всё что мы себе придумали... сразу никто не будет.... так что ждемс...
Взять туже сборку Eternity там такие моды как Autofarm,Random Craft и т.п покупаются отдельно по желанию, и тут было бы не плохо тоже что-то подобное сделать) т.к лучше купить у самого Дизера чем непонятно кем и как написанный ext (не в обиду сказано).
 
Взять туже сборку Eternity там такие моды как Autofarm,Random Craft и т.п покупаются отдельно по желанию, и тут было бы не плохо тоже что-то подобное сделать) т.к лучше купить у самого Дизера чем непонятно кем и как написанный ext (не в обиду сказано).
Та я не собираюсь отдельно продавать это. Нужно что бы дошли руки, я и так каждый день пилю код.
 
Взять туже сборку Eternity там такие моды как Autofarm,Random Craft и т.п покупаются отдельно по желанию, и тут было бы не плохо тоже что-то подобное сделать) т.к лучше купить у самого Дизера чем непонятно кем и как написанный ext (не в обиду сказано).
Автофарм и так есть, рандом крафта в этом клиенте нет, только расширять функционал клиента
 
# Появление бота с определенным модификатором вероятности идентификатора класса
# <classId1>:<mod1>;<classId2>:<mod2>...
# где <classIdN> - базовый класс id
# <mod1> - 0 - не будет заспаунен вообще, 0.5 - половина, 1 стандартное, 2 - x2, ...
# Default: пустой - равная вероятность для всех.
PlaybackClassIdProbabilityMod =

Как пользоватся етим?
 
Back
Top