HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #211  
Старый 11.07.2015, 22:51
Enjoy
Участник форума
Регистрация: 13.07.2014
Сообщений: 164
С нами: 6227977

Репутация: 83
По умолчанию

короче не стал доебывать в чате со своими нубскими вопросами, вот один из них.

Благодаря Фипу получилось сделать, чтобы обрабатывались действия с anttweakbar.

Теперь хук не дает закрыть меню/двинуться с места, посмотрел в SFGAME че можно сделать, но не увидел нихера.

(mainloop)

Цитата:
Сообщение от Спойлер  


Код:





Код:
void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;

        if (!SF->getSAMP()->IsInitialized())
            return;

        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, present);
        SF->getGame()->registerWndProcCallback(SFGame::HIGH_CB_PRIORITY, hookmsg);

        init = true;
    }

    if (SF->getGame()->isKeyPressed(0x7A))
    {
        TwInit(TW_DIRECT3D9, SF->getRender()->getD3DDevice());
        MenuState ^= true;
        if (MenuState)
            SF->getSAMP()->getMisc()->ToggleCursor(3, true);
        else
        {
            SF->getSAMP()->getMisc()->ToggleCursor(false);
            TwTerminate();
        }
    }

}


(hookmsg и MessageProc)

Цитата:
Сообщение от Спойлер  


Код:





Код:
LRESULT CALLBACK MessageProc(HWND wnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    if (TwEventWin(wnd, msg, wParam, lParam))
        return 0;

    switch (msg)
    {
    case WM_CHAR:
        if (wParam == VK_ESCAPE)
            PostQuitMessage(0);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    default:
        return DefWindowProc(wnd, msg, wParam, lParam);
    }
}

bool __stdcall hookmsg(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    return MessageProc(hwnd, uMsg, wParam, lParam);
}


 
Ответить с цитированием

  #212  
Старый 12.07.2015, 00:20
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

bool __stdcall hookmsg(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

return !TwEventWin(hwnd, uMsg, wParam, lParam);

}

этого достаточно.
 
Ответить с цитированием

  #213  
Старый 12.07.2015, 22:49
kemperrr
Участник форума
Регистрация: 04.02.2014
Сообщений: 104
С нами: 6456767

Репутация: 68
По умолчанию

FYP, эмуляцию игровых клавиш запилил?
 
Ответить с цитированием

  #214  
Старый 13.07.2015, 02:08
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Как эмулировать нажатие клавиши? Функция emulateGTAKey не работает, как я понял. Через callOpcode не получилось (я никогда не работал с опкодами). Может, есть какое-то решение?
 
Ответить с цитированием

  #215  
Старый 13.07.2015, 02:43
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Ещё вопрос. Можно ли как-то "поставить на паузу", не выходя в меню, из скрипта? Чтобы сервер думал, что игрок на паузе, но скрипт всё равно работал?
 
Ответить с цитированием

  #216  
Старый 13.07.2015, 21:46
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

И вдогонку. Как получить координаты чекпоинта?
 
Ответить с цитированием

  #217  
Старый 14.07.2015, 16:14
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Написал такую функцию для отправки сообщений в чат. Но отправляет не то. В чат выводится пустое сообщение. Как правильно отправлять данный пакет?

Код:





Код:
void sendTextToChat( string text )
{
    BitStream bsClass; // объявляем объект класса BitStream, в котором хранятся пакетные данные.
    bsClass.Write( text.size() );
    bsClass.Write( text.c_str() );
    SF->getRakNet()->SendRPC( RPC_Chat, &bsClass );    // отправляем RPC
};
 
Ответить с цитированием

  #218  
Старый 14.07.2015, 17:45
urShadow
Новичок
Регистрация: 09.03.2013
Сообщений: 21
С нами: 6934813

Репутация: 0
По умолчанию

Код:





Код:
void sendTextToChat( string text )
{
BitStream bsClass; // объявляем объект класса BitStream, в котором хранятся пакетные данные.
bsClass.Write( (byte)text.length() );
bsClass.Write( text.c_str(), text.length() );
SF->getRakNet()->SendRPC( RPC_Chat, &bsClass ); // отправляем RPC
};
 
Ответить с цитированием

  #219  
Старый 14.07.2015, 21:32
Harch
Познающий
Регистрация: 08.07.2015
Сообщений: 40
С нами: 5709574

Репутация: 0
По умолчанию

Спасибо огромное! А остальные вопросы не подскажешь?

Ещё дополнительно вопрос - как понять, что персонаж находится именно в поезде? Не просто в машине.
 
Ответить с цитированием

  #220  
Старый 16.07.2015, 04:16
Enjoy
Участник форума
Регистрация: 13.07.2014
Сообщений: 164
С нами: 6227977

Репутация: 83
По умолчанию

Цитата:
Сообщение от urShadow  

Код:





Код:
void sendTextToChat( string text )
{
BitStream bsClass; // объявляем объект класса BitStream, в котором хранятся пакетные данные.
bsClass.Write( (byte)text.length() );
bsClass.Write( text.c_str(), text.length() );
SF->getRakNet()->SendRPC( RPC_Chat, &bsClass ); // отправляем RPC
};

Можно так кстати

Код:





Код:
SF->getSAMP()->getInput()->pszDefaultCMD("text");


Но я не нашел как сендить серверные команды.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.