Как работает RPC приоритет и где подробнее изучить?

  • Автор темы deleted-user-182194
  • Дата начала
D

deleted-user-182194

Гость
Автор темы
Версия MoonLoader
.027.0-preview
Как работает RPC приоритет и где подробнее изучить?
 
Решение
Оооо ну мне как раз таки нужно это чтобы ускорить получение пикапов


Мне же чтобы изменить приоритет достаточно так сделать?

Код:
function onSendRpc(id, bs, priority)
    sampAddChatMessage("sended Rpc", -1)
    print("RPC sended ------------------ RPC sended")
    print(id)
    priority = 0
    print("priority: " .. priority)
    print("RPC sended ------------------ RPC sended")
end
Если честно хз, поскольку не знаю, передается ли указатель на приоритет или просто значение. @FYP возможно точно ответит на этот вопрос. Если передается только значение, то можно немного на костылить (можно написать и полноценный хук, но в этом возможно нет нужды)

Lua:
function onSendRpc(id, bs, priority, reliability...

atomlin

Известный
586
442
C++:
/// These enumerations are used to describe when packets are delivered.
enum PacketPriority
{
    SYSTEM_PRIORITY,   /// \internal Used by RakNet to send above-high priority messages.
    HIGH_PRIORITY,   /// High priority messages are send before medium priority messages.
    MEDIUM_PRIORITY,   /// Medium priority messages are send before low priority messages.
    LOW_PRIORITY,   /// Low priority messages are only sent when no other messages are waiting.
    NUMBER_OF_PRIORITIES
};

/// These enumerations are used to describe how packets are delivered.
/// \note  Note to self: I write this with 3 bits in the stream.  If I add more remember to change that
enum PacketReliability
{
    UNRELIABLE = 6,   /// Same as regular UDP, except that it will also discard duplicate datagrams.  RakNet adds (6 to 17) + 21 bits of overhead, 16 of which is used to detect duplicate packets and 6 to 17 of which is used for message length.
    UNRELIABLE_SEQUENCED,  /// Regular UDP with a sequence counter.  Out of order messages will be discarded.  This adds an additional 13 bits on top what is used for UNRELIABLE.
    RELIABLE,   /// The message is sent reliably, but not necessarily in any order.  Same overhead as UNRELIABLE.
    RELIABLE_ORDERED,   /// This message is reliable and will arrive in the order you sent it.  Messages will be delayed while waiting for out of order messages.  Same overhead as UNRELIABLE_SEQUENCED.
    RELIABLE_SEQUENCED /// This message is reliable and will arrive in the sequence you sent it.  Out or order messages will be dropped.  Same overhead as UNRELIABLE_SEQUENCED.
};

 

whyega52

Eblang головного мозга
Модератор
2,870
2,852
D

deleted-user-182194

Гость
Автор темы
C++:
/// These enumerations are used to describe when packets are delivered.
enum PacketPriority
{
    SYSTEM_PRIORITY,   /// \internal Used by RakNet to send above-high priority messages.
    HIGH_PRIORITY,   /// High priority messages are send before medium priority messages.
    MEDIUM_PRIORITY,   /// Medium priority messages are send before low priority messages.
    LOW_PRIORITY,   /// Low priority messages are only sent when no other messages are waiting.
    NUMBER_OF_PRIORITIES
};

/// These enumerations are used to describe how packets are delivered.
/// \note  Note to self: I write this with 3 bits in the stream.  If I add more remember to change that
enum PacketReliability
{
    UNRELIABLE = 6,   /// Same as regular UDP, except that it will also discard duplicate datagrams.  RakNet adds (6 to 17) + 21 bits of overhead, 16 of which is used to detect duplicate packets and 6 to 17 of which is used for message length.
    UNRELIABLE_SEQUENCED,  /// Regular UDP with a sequence counter.  Out of order messages will be discarded.  This adds an additional 13 bits on top what is used for UNRELIABLE.
    RELIABLE,   /// The message is sent reliably, but not necessarily in any order.  Same overhead as UNRELIABLE.
    RELIABLE_ORDERED,   /// This message is reliable and will arrive in the order you sent it.  Messages will be delayed while waiting for out of order messages.  Same overhead as UNRELIABLE_SEQUENCED.
    RELIABLE_SEQUENCED /// This message is reliable and will arrive in the sequence you sent it.  Out or order messages will be dropped.  Same overhead as UNRELIABLE_SEQUENCED.
};

Есть ли какой-нибудь список где можно посмотреть приоритеты на разные рпс сампа?
 

XRLM

Против ветра рождённый
Модератор
1,582
1,200
  • Клоун
Реакции: AnWu и Air_Official

XRLM

Против ветра рождённый
Модератор
1,582
1,200
  • Клоун
Реакции: AnWu и Air_Official

whyega52

Eblang головного мозга
Модератор
2,870
2,852
D

deleted-user-182194

Гость
Автор темы
Только путем анализа исходящего трафика, но в целом самп-серверу пох какой приоритет будет
Если я выставлю приоритет абсолютно всему лоу, а тому что мне нужно на самое высокое толку не будет?
 
D

deleted-user-182194

Гость
Автор темы
твой пакет (рпц) отправится раньше всех)
Оооо ну мне как раз таки нужно это чтобы ускорить получение пикапов

твой пакет (рпц) отправится раньше всех)
Мне же чтобы изменить приоритет достаточно так сделать?

Код:
function onSendRpc(id, bs, priority)
    sampAddChatMessage("sended Rpc", -1)
    print("RPC sended ------------------ RPC sended")
    print(id)
    priority = 0
    print("priority: " .. priority)
    print("RPC sended ------------------ RPC sended")
end
 

whyega52

Eblang головного мозга
Модератор
2,870
2,852
Оооо ну мне как раз таки нужно это чтобы ускорить получение пикапов


Мне же чтобы изменить приоритет достаточно так сделать?

Код:
function onSendRpc(id, bs, priority)
    sampAddChatMessage("sended Rpc", -1)
    print("RPC sended ------------------ RPC sended")
    print(id)
    priority = 0
    print("priority: " .. priority)
    print("RPC sended ------------------ RPC sended")
end
Если честно хз, поскольку не знаю, передается ли указатель на приоритет или просто значение. @FYP возможно точно ответит на этот вопрос. Если передается только значение, то можно немного на костылить (можно написать и полноценный хук, но в этом возможно нет нужды)

Lua:
function onSendRpc(id, bs, priority, reliability, orderingChannel, timestamp)
    sampAddChatMessage("sended Rpc", -1)
    print("RPC sended ------------------ RPC sended")
    print(id)
    priority = 0
    print("priority: " .. priority)
    print("RPC sended ------------------ RPC sended")
    -- Самостояльно отправляет рпц с нужным приоритетом
    raknetSendRpcEx(id, bs, priority, reliability, orderingChannel, timestamp)
    -- Не отправляем оригинальный рпц, дабы не было дублирования
    return false
end
 
D

deleted-user-182194

Гость
Автор темы
Если честно хз, поскольку не знаю, передается ли указатель на приоритет или просто значение. @FYP возможно точно ответит на этот вопрос. Если передается только значение, то можно немного на костылить (можно написать и полноценный хук, но в этом возможно нет нужды)

Lua:
function onSendRpc(id, bs, priority, reliability, orderingChannel, timestamp)
    sampAddChatMessage("sended Rpc", -1)
    print("RPC sended ------------------ RPC sended")
    print(id)
    priority = 0
    print("priority: " .. priority)
    print("RPC sended ------------------ RPC sended")
    -- Самостояльно отправляет рпц с нужным приоритетом
    raknetSendRpcEx(id, bs, priority, reliability, orderingChannel, timestamp)
    -- Не отправляем оригинальный рпц, дабы не было дублирования
    return false
end
спасибо огромное за помощь
 
  • Нравится
Реакции: whyega52