Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   [Piercing Blow] PROTOCOL_BASE_GET_SYSTEM_INFO_ACK (https://forum.zone-game.info/showthread.php?t=41036)

Boris2105 13.07.2016 21:53

PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
А вот можно сюда привязать настройки из Game сервера?
Или надо все таки создать config game server в common?

 
            WriteC(2);
            WriteD(1);
            WriteB(IPAddress.Parse("127.0.0.1").GetAddressBytes());
            WriteH(39191);
            WriteC(6);
            WriteH(5000);
            WriteD(1);
            for (int i = 0; i < 10; i++)
                WriteC(0x1);
 
Code: C#

PROGRAMMATOR 13.07.2016 22:32

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Естественно, это должен быть конфиг игрового сервера.
Где будет находиться конфиг - не важно.

P.S. У меня например, конфиг передаётся в сервер авторизации при регистрации игрового сервера.

Boris2105 13.07.2016 23:09

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 415176)
Естественно, это должен быть конфиг игрового сервера.
Где будет находиться конфиг - не важно.

P.S. У меня например, конфиг передаётся в сервер авторизации при регистрации игрового сервера.

а как мне этот конфиг взять из game сервера и использовать в login сервер?

Sojang 13.07.2016 23:52

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от Boris2105 (Сообщение 415177)
а как мне этот конфиг взять из game сервера и использовать в login сервер?

WCF

Boris2105 29.01.2018 01:13

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Почему то показывается лишь один канал нормально, остальные нефига, в чем мб ошибка?
DbContext:
Свернуть ↑Развернуть ↓

ServerModel:
Свернуть ↑Развернуть ↓

PROTOCOL_BASE_GET_SYSTEM_INFO_ACK:
Свернуть ↑Развернуть ↓

https://pp.userapi.com/c840639/v8406...tVLIEljg3c.jpg

Awiion 29.01.2018 14:36

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Этот пакет уже на 101% разобран.

Первый сервер это (ПредКоннект).

Hide:
Свернуть ↑Развернуть ↓


Вообще, не понимаю, зачем так делать.
Если серверов может быть больше 2х.
Не проще ли, при авторизации сервера, регистрировать гс.

Boris2105 29.01.2018 14:50

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от Awiion (Сообщение 429933)
Этот пакет уже на 101% разобран.

Первый сервер это (ПредКоннект).

Hide:
Свернуть ↑Развернуть ↓


Вообще, не понимаю, зачем так делать.
Если серверов может быть больше 2х.
Не проще ли, при авторизации сервера, регистрировать гс.

проблема в каналах их не показывает кроме первого

PROGRAMMATOR 29.01.2018 17:33

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Так а что у тебя тут _server.Channels, проверял количество и типы?

Boris2105 29.01.2018 19:46

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429940)
Так а что у тебя тут _server.Channels, проверял количество и типы?

а как проверить?

PROGRAMMATOR 29.01.2018 20:10

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Бряк и в дебагере глянь, или логом выведи.


Boris2105 29.01.2018 21:23

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429946)
Бряк и в дебагере глянь, или логом выведи.


почему то только один канал вызывает
https://pp.userapi.com/c840523/v8405...rHQG0wIXT4.jpg

PROGRAMMATOR 29.01.2018 21:30

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Ну вот. Теперь ищи причину, почему только 1 запись.

Boris2105 29.01.2018 22:03

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429948)
Ну вот. Теперь ищи причину, почему только 1 запись.

нашел ошибку
req:
Свернуть ↑Развернуть ↓

PROGRAMMATOR 29.01.2018 22:54

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Юзай Include и First, в теме по EF я тебе давал пример.

Boris2105 30.01.2018 16:00

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429950)
Юзай Include и First, в теме по EF я тебе давал пример.

Вот так реализовал , но возник вопрос
Теперь каждый раз когда нужен channel надо в req пакете так прописывать или можно как то по другому реализовать ?
 
                var channel = context.servers.Include(x => x.Channels)
                    .FirstOrDefault();
 
Code: C#

PROGRAMMATOR 30.01.2018 23:01

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Я не совсем понимаю для чего тебе выборка 1 сервера для этого пакета. FirstOrDefault вернёт просто первую запись в таблице или null если таблица пуста, а тебе нужен список. Ну и var channel это всё же "server" включая каналы (связь one to many).

А так да, можешь хоть каждый раз дёргать, а можешь выбрать один раз все сервера и получать их из этого списка, тем более, что выборка в GET_CHANNEL_LIST по индексу, а не по Id.

Boris2105 30.01.2018 23:13

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429962)
Я не совсем понимаю для чего тебе выборка 1 сервера для этого пакета. FirstOrDefault вернёт просто первую запись в таблице или null если таблица пуста, а тебе нужен список. Ну и var channel это всё же "server" включая каналы (связь one to many).

А так да, можешь хоть каждый раз дёргать, а можешь выбрать один раз все сервера и получать их из этого списка, тем более, что выборка в GET_CHANNEL_LIST по индексу, а не по Id.

первую часть я понял , не совсем понял про var channel
ну я не много не понял как например мне использовать в PROTOCOL_BASE_SELECT_CHANNEL_REQ , если не снова дергать

PROGRAMMATOR 30.01.2018 23:51

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от Boris2105 (Сообщение 429963)
не совсем понял про var channel

Это о названии переменной.

Выбрать один раз. Например, в Program создать статичное свойство:

public static List<GameServer> GameServers { get; set; }
 
Code: C#

И при запуске сервера получаем список всех известных серверов.

Program.GameServers = await _gameservers.GetAsync();
 
Code: C#

Всё, Program.GameServers будет содержать сервера.

Конечно, это можно вынести в отдельный класс, Holder, Manager...

Boris2105 31.01.2018 20:26

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429962)
Я не совсем понимаю для чего тебе выборка 1 сервера для этого пакета. FirstOrDefault вернёт просто первую запись в таблице или null если таблица пуста, а тебе нужен список. Ну и var channel это всё же "server" включая каналы (связь one to many).

А так да, можешь хоть каждый раз дёргать, а можешь выбрать один раз все сервера и получать их из этого списка, тем более, что выборка в GET_CHANNEL_LIST по индексу, а не по Id.

про "var channel" еще такой вопрос , ты имеешь ввиду переименовать лучше или как то проще можно использовать , раз это тоже сервер?

PROGRAMMATOR 31.01.2018 21:14

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
CoolStoryBob var server.

Boris2105 31.01.2018 21:42

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429971)
CoolStoryBob var server.

но ты же говорил Include использовать, в примерах нашел такой способ

PROGRAMMATOR 31.01.2018 22:15

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Ой всё. kappa

class Server
{
    // ...
 
    public ICollection<Channel> Channels { get; set; }
}
 
class Channel
{
    // ...
 
    public int ServerId { get; set; }
 
    public Server Server { get; set; }
}
 
Code: C#

Это СЕРВЕР включая каналы, а не канал:

var server = context.Servers
    .Include(x => x.Channels)
    .FirstOrDeafult();
 
Code: C#

Boris2105 01.02.2018 12:31

Re: PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
 
Вот этого бы хватило) но все равно спасибо за объяснение
Я понял что и там , и там вызывал server и не было смысла разделять его на два, тк вызываю одно и тоже
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 429976)
var server = context.Servers
    .Include(x => x.Channels)
    .FirstOrDeafult();
 
Code: C#



Текущее время: 22:30. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot