Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: [RNM] RakNet Manager 1.0.0

  1. #1
    Пользователь
    Регистрация
    15.08.2014
    Сообщений
    3
    Репутация: 14

    Звание: на пути к лучшему

    [RNM] RakNet Manager 1.0.0

    Описание:

    Плагин для SA:MP-сервера, который позволяет работать с RakNet-пакетами в PAWN. Перехват входящих/исходящих, отправка кастомных Packet/RPC.

    Скачать:

    https://github.com/urShadow/raknetmanager/releases

    Оригинальная тема: http://forum.sa-mp.com/showthread.php?t=599936

    Примеры:

    PHP код:
    #include <raknetmanager> 
    1. Отправка RPC

    PHP код:
    stock SendChatMessage(senderidmsg[])
    {
      new 
    BitStream:bs BS_New(), RPC_Chat 101;

      
    BS_WriteValue(bsRNM_INT16senderid
                        
    RNM_INT8strlen(msg), 
                        
    RNM_STRINGmsg);

      
    RNM_SendRPC(senderidRPC_Chatbs);

      
    BS_Delete(bs);

    2. Отправка пакета

    PHP код:
    stock FakeLostConnectionForPlayer(playerid)
    {
      new 
    BitStream:bs BS_New(), ID_CONNECTION_LOST 33;

      
    BS_WriteValue(bsRNM_INT8ID_CONNECTION_LOST);

      
    RNM_SendPacket(playeridbs);

      
    BS_Delete(bs);

    3. Перехват пакета со входящей синхронизации игрока пешком

    PHP код:
    new ID_PLAYER_SYNC 207;
    public 
    OnPlayerReceivedPacket(playeridpacketidBitStream:bs)
    {
        if(
    packetid == ID_PLAYER_SYNC)
        {
        new 
    lrkeysudkeyssampkeys,
        
    Float:pos[3], Float:quaternion[4],
        
    healtharmorweaponidspecialaction,
        
    Float:speed[3], Float:surfingoffsets[3],
        
    surfingvehidanimationidanimflags;

        
    BS_IgnoreBits(bs8); // packet id 1 byte
        
    BS_ReadValue(bsRNM_UINT16lrkeys,
                         
    RNM_UINT16udkeys,
                         
    RNM_UINT16sampkeys,
                         
    RNM_FLOATpos[0],
                         
    RNM_FLOATpos[1],
                         
    RNM_FLOATpos[2],
                         
    RNM_FLOATquaternion[0],
                         
    RNM_FLOATquaternion[1],
                         
    RNM_FLOATquaternion[2],
                         
    RNM_FLOATquaternion[3],
                         
    RNM_UINT8health,
                         
    RNM_UINT8armor,
                         
    RNM_UINT8weaponid,
                         
    RNM_UINT8specialaction,
                         
    RNM_FLOATspeed[0],
                         
    RNM_FLOATspeed[1],
                         
    RNM_FLOATspeed[2],
                         
    RNM_FLOATsurfingoffsets[0],
                         
    RNM_FLOATsurfingoffsets[1],
                         
    RNM_FLOATsurfingoffsets[2],
                         
    RNM_UINT16surfingvehid,
                         
    RNM_INT16animationid,
                         
    RNM_INT16animflags);

        
    printf("lrkeys %d udkeys %d sampkeys %d\n" \
               
    "pos %.2f %.2f %.2f\n" \
               
    "quaternion %.2f %.2f %.2f %.2f\n" \
               
    "health %d\n" \
               
    "armor %d\n" \
               
    "weaponid %d\n" \
               
    "specialaction %d\n" \
               
    "speed %.2f %.2f %.2f\n" \
               
    "surfingoffsets %.2f %.2f %.2f\n" \
               
    "surfingvehid %d\n" \
               
    "anim %d flags %d",
               
    lrkeysudkeyssampkeys,
               
    pos[0], pos[1], pos[2],
               
    quaternion[0], quaternion[1], quaternion[2], quaternion[3],
               
    healtharmorweaponidspecialaction,
               
    speed[0], speed[1], speed[2],
               
    surfingoffsets[0], surfingoffsets[1], surfingoffsets[2],
               
    surfingvehidanimationidanimflags
               
    );
        }
        return 
    1;

    4. Перехват входящего RPC с чат-сообщением

    PHP код:
    new RPC_Chat 101;
    public 
    OnPlayerReceivedRPC(playeridrpcidBitStream:bs)
    {
        if(
    rpcid == RPC_Chat
        {
        new 
    message[256], len;

        
    BS_ReadValue(bsRNM_UINT8len,
                        
    RNM_STRINGmessagelen);

        
    printf("chat message from player %d: %s"playeridmessage);
        }

        return 
    1;

    Native list:

    PHP код:
    native RNM_SendRPC(playeridrpcidBitStream:bs);  
    native RNM_SendPacket(playeridBitStream:bs);

    native BitStream:BS_New();
    native BS_Delete(&BitStream:bs);

    native BS_Reset(BitStream:bs);
    native BS_ResetReadPointer(BitStream:bs);
    native BS_ResetWritePointer(BitStream:bs);
    native BS_IgnoreBits(BitStream:bsbitcount);

    native BS_SetWriteOffset(BitStream:bsoffset);
    native BS_GetWriteOffset(BitStream:bs, &offset);
    native BS_SetReadOffset(BitStream:bsoffset);
    native BS_GetReadOffset(BitStream:bs, &offset);

    native BS_GetNumberOfBitsUsed(BitStream:bs, &number);
    native BS_GetNumberOfBytesUsed(BitStream:bs, &number);
    native BS_GetNumberOfUnreadBits(BitStream:bs, &number);

    native BS_WriteValue(BitStream:bs, {Float,_}:...);
    native BS_ReadValue(BitStream:bs, {Float,_}:...); 
    Callback list:

    PHP код:
    // return 0 => blocking action
    forward OnPlayerReceivedPacket(playeridpacketidBitStream:bs);
    forward OnPlayerReceivedRPC(playeridrpcidBitStream:bs);
    forward OnServerSendPacket(playeridpacketidBitStream:bs);
    forward OnServerSendRPC(playeridrpcidBitStream:bs); 
    Автор: urShadow.
    Последний раз редактировалось Zaur_Lumanov; 01.02.2016 в 12:44.

  2. 2 пользователей сказали cпасибо Zaur_Lumanov за это полезное сообщение:

    kayeezy (02.02.2016), Быдлокодер (29.05.2016)

  3. #2
    unknown2154
    Бродяга

  4. #3
    Активный пользователь
    Регистрация
    10.04.2015
    Сообщений
    418
    Репутация: 67

    Звание: скоро придёт к известности
    Что интересного можно с вашим ракнетом делать?

  5. #4
    Активный пользователь Аватар для vasyok28
    Регистрация
    11.01.2013
    Адрес
    Украина
    Возраст
    30
    Сообщений
    564
    Репутация: 96

    Звание: скоро придёт к известности
    тоже не понял что дает
    Мою подпись угнали(
    Нарушение ЕПФ: "Подпись и иже с ней" п.4 (с) TERNER

  6. #5
    Активный пользователь Аватар для kayeezy
    Регистрация
    15.11.2011
    Адрес
    LA
    Возраст
    31
    Сообщений
    482
    Репутация: 52

    Звание: скоро придёт к известности
    Даёт то о чем вы мечтать не могли

  7. #6
    Активный пользователь
    Регистрация
    10.04.2015
    Сообщений
    418
    Репутация: 67

    Звание: скоро придёт к известности
    Цитата Сообщение от kayeezy Посмотреть сообщение
    Даёт то о чем вы мечтать не могли
    Рассказывай, или пост ради поста?

  8. 1 пользователь сказал cпасибо unknown2156 за это полезное сообщение:

    TwixXtra (01.02.2016)

  9. #7
    Почетный пользователь Аватар для EvgeN 1137
    Регистрация
    10.01.2011
    Адрес
    не скажу
    Сообщений
    3,005
    Репутация: 580

    Звание: - это имя известно всем
    Штука забавная, но без конкретных готовых полезных скриптов бесполезная. Людей, разбирающихся в сетевой структуре сампа, единицы, вряд ли они будут кодить что-то под этот плагин. Так что ждём теперь скрипты/уроки/готовые решения с использованием этого плагина
    :)

  10. 1 пользователь сказал cпасибо EvgeN 1137 за это полезное сообщение:

    unknown2156 (02.02.2016)

  11. #8
    Пользователь
    Регистрация
    01.02.2016
    Сообщений
    2
    Репутация: 10

    Звание: на пути к лучшему
    Цитата Сообщение от OKStupid Посмотреть сообщение
    Что интересного можно с вашим ракнетом делать?
    Ну хотя-бы пофиксить те читы, которые не пофиксить простым павном.

  12. #9
    Активный пользователь Аватар для kayeezy
    Регистрация
    15.11.2011
    Адрес
    LA
    Возраст
    31
    Сообщений
    482
    Репутация: 52

    Звание: скоро придёт к известности
    Цитата Сообщение от EvgeN 1137 Посмотреть сообщение
    Штука забавная, но без конкретных готовых полезных скриптов бесполезная. Людей, разбирающихся в сетевой структуре сампа, единицы, вряд ли они будут кодить что-то под этот плагин. Так что ждём теперь скрипты/уроки/готовые решения с использованием этого плагина
    Тебе уроки больше всех нужны)))

  13. #10
    Пользователь
    Регистрация
    13.08.2014
    Возраст
    27
    Сообщений
    50
    Репутация: 21

    Звание: на пути к лучшему
    __
    Последний раз редактировалось STUNT; 03.04.2018 в 18:10.

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •