Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
Grizzly12345

Обработка данных Excel\Pivot\Python\Rcon

Привет!
Подключил обработку данных к Dayz

По шагам отрабатываются Python коды
1. Выключается сервер

2. Копируются

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Изменено пользователем Grizzly12345 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
6 часов назад, Grizzly12345 сказал:

Пример: 
Excel выгружает в текстовый файл на выбор: Имя игроков\ID\Uin 
Условие выгрузки - Если игрок не заходил на сервер больше  трех часов и вышел не около выданной точки респы

Нужно перенести игроков к точке респы или убить их - что бы появились на точке респы

только скриптовать сервермодом, ибо я хз как вы собрались через rcon игрока убивать, такого нет. А единственный вариант дать комманду игре извне - написать сервермодом соответствующий функционал

6 часов назад, Grizzly12345 сказал:

Код питон должен считывать из текстового файла названия игроков и выполнять Rcon команду на сервере (телепорт или Kill), как это сделать?
(Код на питоне напишу сам, какой софт нужен для коннекта с Rcon?)

Возможно нужно использовать не Rcon а  какой то другой способ....
Надеюсь на совет

уж не знаю от слова совсем ничего на питоне, но что-то мне подсказывает, что вам проще какой-то web-сервер поднять, и написать сервермод-обработчик ваших web-запросов-ответов по входящим с игры данным на web-сервер и считанному результату обращения, выполняющий то что вам надо. Как - изучайте Rest API в игре. Ну а на web тут уж без понятия, я не знаток этих языков, но думается мне php вам в помощь. Сможете ли завязать его на питон то лучше наверно гуглить под ситуацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

Dart отправляет команды на сервер и находится не в игре
Вот подобного плана код подошел бы идеально, но он не работает:

import rcon

# Параметры RCON
rcon_host = "localhost"  # IP-адрес сервера DayZ
rcon_port = 2303  # порт сервера RCON
rcon_password = "password"  # пароль RCON

# Параметры игрока и нового места респавна
player_name = "PlayerName"  # имя игрока
new_respawn_pos = "1000 0 1000"  # новая позиция респавна

# Соединяемся с сервером RCON
rcon_client = rcon.Rcon((rcon_host, rcon_port), rcon_password)
rcon_client.connect()

# Переносим игрока на новую позицию с помощью команды #teleport
response = rcon_client("teleport %s %s" % (player_name, new_respawn_pos))

# Выполняем операцию респавна с помощью команды #spawn
response = rcon_client("spawn %s" % player_name)

# Закрываем соединение
rcon_client.disconnect()
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
8 минут назад, Grizzly12345 сказал:

Dart отправляет команды на сервер и находится не в игре
Вот подобного плана код подошел бы идеально, но он не работает:

import rcon

# Параметры RCON
rcon_host = "localhost"  # IP-адрес сервера DayZ
rcon_port = 2303  # порт сервера RCON
rcon_password = "password"  # пароль RCON

# Параметры игрока и нового места респавна
player_name = "PlayerName"  # имя игрока
new_respawn_pos = "1000 0 1000"  # новая позиция респавна

# Соединяемся с сервером RCON
rcon_client = rcon.Rcon((rcon_host, rcon_port), rcon_password)
rcon_client.connect()

# Переносим игрока на новую позицию с помощью команды #teleport
response = rcon_client("teleport %s %s" % (player_name, new_respawn_pos))

# Выполняем операцию респавна с помощью команды #spawn
response = rcon_client("spawn %s" % player_name)

# Закрываем соединение
rcon_client.disconnect()
 

как бы вы не хотели это, dart, как и любой другой RCON клиент, работает на battleye античите и его протоколах исполнения, и исключительно на коммандах, которые battleye поддерживает. Об этих коммандах можете сами ознакомиться на официальном сайте античита, это не секретная информация, а общедоступная. И Я могу вам с уверенностью в 1000 процентов сказать, что команду телепорта игрока, спавна предмета вы через RCON Battleye не отправите, поскольку данный протокол античита игры такой команды не знает. Через RCON Battleye вы можете лишь отправить сообщение кому-либо или всем, кикнуть, забанить, получить список игроков. И ничего иного.

Так что если вы хотите сделать что-то кроме названного выше через RCON - вам надо писать что-то свое. Стандартный протокол античита игры это не умеет.

 

Изменено пользователем 123new (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, 123new сказал:

как бы вы не хотели это, dart, как и любой другой RCON клиент, работает на battleye античите и его протоколах исполнения, и исключительно на коммандах, которые battleye поддерживает. Об этих коммандах можете сами ознакомиться на официальном сайте античита, это не секретная информация, а общедоступная. И Я могу вам с уверенностью в 1000 процентов сказать, что команду телепорта игрока, спавна предмета вы через RCON Battleye не отправите, поскольку данный протокол античита игры такой команды не знает. Через RCON Battleye вы можете лишь отправить сообщение кому-либо или всем, кикнуть, забанить, получить список игроков. И ничего иного.

Так что если вы хотите сделать что-то кроме названного выше через RCON - вам надо писать что-то свое. Стандартный протокол античита игры это не умеет.

 

Возможно сделать вайп игрока, что бы данные о его местонахождении стерлись? 
В папке Profiles или еще где то, не заходя в игру

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
38 минут назад, Grizzly12345 сказал:

Возможно сделать вайп игрока, что бы данные о его местонахождении стерлись? 
В папке Profiles или еще где то, не заходя в игру

база данных сервера - формат sqlite (почитайте в интернете что это) - хранится в mpmissions в storage. Конкретно база данных игроков - в файле players.db. Можно открыть его, найти в табличке players нужного игрока по его BIS ID и выставить alive 0 ему. Что-то иное с игроком не сделать т.к. все остальные данные игрока идут в серианизованном едином потоке бинарных данных, их ни поглядеть нормально, ни изменить никак.  А из-за формата базы данных и определенных ограничений на возможность записи параллельно с работой сервера могут возникать другие сложности (об этом читайте, как уже сказал, в сети, чисто с форматом связано).

Альтернативы нет,  только если писать свой серверный мод или взламывать систему central hive полноцйенной базы данных, о которой мы ничего не знаем, кроме того что она полноценная и хранится у авторов игры где-то на защищенном web сервере (т.е. прямо таки полноценная какая-то).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вот код который делает вайп игроков, если они записаны в текстовом файле
В моем случае этот код переделываю, что бы вместо текстового файла использовалась колонка в базе Excel

import sqlite3
import os

# Путь к базе данных
db_path = "C:/gameservers/gs7403/players.db"

# Полный путь к файлу deleted.txt
deleted_path = os.path.join("C:/gameservers/gs7403", "deleted.txt")

# Считываем UID из файла в список
with open(deleted_path, "r") as f:
    uids = [line.strip() for line in f]

# Открываем соединение с базой данных
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

# Удаляем записи с указанными UID из таблицы Players
for uid in uids:
    cursor.execute("DELETE FROM Players WHERE UID=?", (uid,))

# Фиксируем изменения в базе данных
conn.commit()

# Закрываем соединение с базой данных
conn.close()

Итого:
Обработка данных может раздать точки респы автоматически ( при входе в триггерную зону или при выполнении условия)

Обработка данных может сделать вайп игрока исходя из логики прописанной в excel ( точка респы у игрока при этом не удаляется, ее подгружает excel)

В моем случае работает так:
Точка респы для кепок на радио зенит ( там база на которую "вертолет" привозит выживших) 
В 8 крупных городах, при входе в церковь - меняется точка респавна - у церкви, и повязка на руку цвета города
Если игрок убивает другого игрока с той же повязкой что у него - точка респы обнуляется ( или другая логика которую можно представить)
При условии что игрок выходит из игры дальше "300" метров от точки респавна и не заходит в игру дольше трех часов - делается вайп при рестарте
 

Таким образом мы делим игроков на команды, а персонаж не может ждать игрока в лесу, пока тот не появится на сервере снова
Игра в режиме вышел из города - вернулся

 

Спасибо за советы



 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Следующие моды на пути к подключению:
Trader plus
 

За монету приобрел мод который отправляет на ПК игрока текстовый файл который можно заполнять и возвращает обратно ( напишу программу меню на файл или меню прямо в игре)
Excel загружает выбор игрока


При выполнении условия в игре появляется трейдер. Игрок может указывать количество товара которое может купить, количество товара которое нельзя продавать, цену продажи и цену покупки
В моем случае трейдер будет менять сырьевые товары на продукты производства каждый рестарт (имитируя крафт)
Так же трейдер будет списывать товары жизнедеятельности даже когда игрок не в игре, в противном случае игроки города потеряют точку респы, пока еда на трейдере не появится


Таким образом потребление товаров будет большое, что бы разгрузить FPS и не напрягать игроков постоянным переносом товара в инвентарь - объединил товары по типам производства в оптовые ящики
В одном ящике сразу несколько однотипных товаров которые являются сырьем и производятся одинаковым способом
Ищу способ сделать распаковывающиеся ящики согласно списку, как в этом моде (https://steamcommunity.com/sharedfiles/filedetails/?id=2883656045&searchtext=сухпай)
На основе данного перечня оптовых товаров будет основана экономика городов, пока игрок не в игре - персонаж работает на выбранном месте работы (покупая лицензию на работу у трейдера)
Загрузить товары с производства в грузовик можно будет очень быстро, а при взломе трейдера - товары выпадут с помощью Trigger spawn и не перегрузят FPS
Буду рад любым советам или  предложениям
По результату отпишусь


image.png.db86ccb0e5dd59b26d186b12c6d643ae.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@Grizzly12345 

3 часа назад, Grizzly12345 сказал:

распаковывающиеся ящики согласно списку


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Трейдер мод к обработке данных подключил
Делаю на каждую деревню возможность поставить трейдера

Ищу кто может показать как моды паковать и скорректировать скрипт отправленный выше
Программы установил
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка