Вопросы

qqaaalll
Новичок

Проблема изложена в названии темы.

 

Код из мода

public OnIncomingPacket(playerid, packetid, BitStream:bs)
{
    new data[100], string[100], byteNameLen;

    BS_IgnoreBits(bs, 8);
    BS_ReadValue(bs, PR_STRING, data);

    /* format(string, 10, "%d", packetid);
    SendClientMessage(playerid, -1, string); */

    switch(packetid)
    {
        case PACKET_TEST:
        {
            format(string, 100, "Received %d packet: %s len: %s", packetid, data, byteNameLen);
            SendClientMessage(playerid, -1, string);
            return 1;
        }
    }
    return 1;
}

Код из .lua

PACKET_CUSTOM = 251
PACKET_DATA = "78"
COLOR = 0x00BFFF

function main()

    if not isSampLoaded() or not isSampfuncsLoaded() then
        return
    end

    while not isSampAvailable() do
        wait(100)
    end

    sampAddChatMessage("Скрипт загружен", COLOR)

    while true do

        wait(0)
        if isKeyJustPressed(0x42) then

            bs = raknetNewBitStream()
            raknetBitStreamWriteInt8(bs, PACKET_CUSTOM)
            raknetBitStreamWriteString(bs, PACKET_DATA)
            raknetSendBitStream(bs)

            sampAddChatMessage("Пакет отправлен", COLOR)

        end
    end
end

 

Если передавать число ( в моде указываю PR_INT8, new data[100] меняю на new data, в format меняю %s на %d; в .lua raknetBitStreamWriteString меняю на raknetBitStreamWriteInt8 и передаю число вторым параметром ) то всё получается, и в сампе мне приходит сообщение с цифрой которую я указал в .lua. Также заметил, что если заменить PR_STRING на PR_INT8 и передать строку, то в data записывается ASCII код первого символа из передаваемой строки, подозреваю что здесь проблема в PR_STRING.

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


Ссылка на сообщение

1 ответ на этот вопрос

  • 0
qqaaalll
Новичок

Я разобрался - нужно было в BS_ReadValue(bs, PR_STRING, data); четвёртым аргументом передать длину строки в байтах.

Её можно получить в функции BS_GetNumberOfUnreadBits(bs, <переменная в которую нужно записать байты>);

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • I'm Fine
      От I'm Fine
      Доброго времени суток! Не понимаю почему не работает CEF.
      Сервер SAMP-R3, Игра GTA:CR и накинул на неё CustomSAA2 и прочее из туториала по переносу карты CRMP на SAMP, так же поставил SAMP 0.3.7-R3.
      Файлы я закинул на Google диск ниже. В чем может быть проблема?

      https://drive.google.com/drive/folders/1GPo5f8xi0w8TUuTPvkaCArnD1rCqvfAX?usp=sharing

      Сейчас пробую установить GTA:SA и в неё закинуть файлы для карты crmp (где то читал что вроде в GTA:CR cef работать не будет)
    • watson
      От watson
      Уважаемые участники форума,

      Предлагаю вашему вниманию полностью готовый игровой проект San Andreas Multiplayer, основанный под мобильные устройства. Проект закрытого типа, в 2020 году открывался но затем потерпел крах, продаю из за того что нету времени заниматься его разработкой, личные проблемы в жизни так сказать. Проект имеет свою некую ауру и уникальность, готов отдать в хорошие руки!

      — Приватный мод для RP и бонусного сервера — два варианта под разные стили игры.
      — Полный набор интерфейсов и лаунчер с оформлением (Figma + PSD).
      — Чистая структура проекта, без багов и сторонних зависимостей.
      — Документация и структура мода понятны для доработок.

      В наличии: оформления, интерфейсы с дизайном лаунчера, различные модели + определённые текстуры и скины для мобильной игры + мод под разные стили проекта

      P.S:
      Отвечу на любые вопросы в личных сообщениях. По запросу предоставлю скриншоты.

      Цена обсуждается индивидуально, в пределах разумного — в зависимости от ваших потребностей и формата использования.
      Писать: https://vk.com/rosetta

      Жду ваших предложений!
    • king98
      От king98


      Скачать файл Мод Arizona Rp | Ariant(Old Ultra) + плагин на машины
      Продам мод Arizona Rp | Ultra + плагин на люкс машины
      Мод оптимизирован под 100+ онлайна
      Добавил новые машины+новые скины(в папке с модом есть ID)
      Исправлены баги
      Сделан худ(+работоспособность бензина)

       
      Добавил king98 Добавлено 15.05.2021 Категория Моды Автор NoName