Другое С/С++ Вопрос - Ответ

DZONE

Известный
185
200
Как получить fontsize? samp-api
 
Последнее редактирование:

F0RQU1N and

Известный
1,297
500
Как получить fontsize? samp-api
GetIntValue("fontsize")
1691284556365.png
 

sizeoftrickster

Известный
Проверенный
139
587
Всем привет! Подскажите пожалуйста, есть ли способ узнать, была ли нажата клавиша без использования: wndproc hook -> uMsg -> wParam
Имеется одна функция(ниже), которая позволяет это узнать, но там ебануться какая задержка. Например: зажал клавишу D(Move Right) на +-400 мс, и только спустя это количество времени функция(ниже) выдала 128, т.е. клавиша была нажата.
Аналогично с хуком wndproc, там необходимо минимальное нажатие клавиши, а не зажатие
C++:
enum KeysNum
{
    Right = 0x0
}; // enum KeysNum

BYTE GetGameKey( KeysNum key ) {
    return *reinterpret_cast<BYTE*>( 0xB73458 + key );
}

if ( GetGameKey( KeysNum::Right ) == 0x000080 ) {
    // ...
}
 
D

deleted-user-486881

Гость
1. Мой вопрос: Как вывести в чат SAMP`a 0.3.7 R3 сообщение?
 

Digger Man52

52NGG
1,113
983
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

F0RQU1N and

Известный
1,297
500
Всем привет! Подскажите пожалуйста, есть ли способ узнать, была ли нажата клавиша без использования: wndproc hook -> uMsg -> wParam
Имеется одна функция(ниже), которая позволяет это узнать, но там ебануться какая задержка. Например: зажал клавишу D(Move Right) на +-400 мс, и только спустя это количество времени функция(ниже) выдала 128, т.е. клавиша была нажата.
Аналогично с хуком wndproc, там необходимо минимальное нажатие клавиши, а не зажатие
C++:
enum KeysNum
{
    Right = 0x0
}; // enum KeysNum

BYTE GetGameKey( KeysNum key ) {
    return *reinterpret_cast<BYTE*>( 0xB73458 + key );
}

if ( GetGameKey( KeysNum::Right ) == 0x000080 ) {
    // ...
}
а почему бы и не юзать хук? это же тебе не дота где каждый хук/патч лишний детект
 
  • Нравится
Реакции: Z3roKwq

NightWallkeR

Участник
30
8
Приветствую Вас дорогие форумчани.
Недавно начал изучать SF API, и столкнулся по написанию рендера на какой либо объект ( допустим даже ВХ на шахту АРЗ ).
Могли бы Вы предоставить какой либо пример кода, или хотя бы функцию которая рисует полоски к заданному объекту.
Заранее спасибо.
 

Z3roKwq

Известный
291
154
Приветствую Вас дорогие форумчани.
Недавно начал изучать SF API, и столкнулся по написанию рендера на какой либо объект ( допустим даже ВХ на шахту АРЗ ).
Могли бы Вы предоставить какой либо пример кода, или хотя бы функцию которая рисует полоски к заданному объекту.
Заранее спасибо.

https://www.blast.hk/threads/43800/
Код не лучший, но как пример пойдёт :)
 

zheluk!

Новичок
7
0
глупый вопрос но, как изменить центр тяжести для машины через plugin sdk
Если не сложно дайте пример : )
 

_doomsday_

Известный
15
3
В тексте встречаются неопределённые символы:
1692274729551.png


Как удалить их из строки?
 

вайега52

Налуашил состояние
Модератор
2,980
3,097
В тексте встречаются неопределённые символы:
Посмотреть вложение 212134

Как удалить их из строки?
не шарю, как это красиво оформить в C++, но в теории кастуй строку в int и отсеивай лишние байты, отталкиваясь от ASCII
C++:
#include <iostream>

int main()
{
    const char* str = "hello";
    int number = (*(int*)str);
    unsigned char* bytes = reinterpret_cast<unsigned char*>(&number);

    for (int i = 0; i < sizeof(number); i++) { // знаю, что дерьмо-код, но не помню, как правильно пройтись по массиву
        // тут проверяешь байт на валидность
        std::cout << static_cast<int>(bytes[i]) << " ";
    }  
}
1692277602449.png

C++:
#include <iostream>
#include <cstring>

int main()
{
    const std::string str = "hello";
    unsigned char bytes[str.size() + 1];

    std::memcpy(bytes, str.c_str(), str.size() + 1);

    for (std::size_t i = 0; i < str.size(); i++) {
        std::cout << static_cast<unsigned int>(bytes[i]) << " ";
    }

    return 0;
}
 
Последнее редактирование:
  • Нравится
Реакции: _doomsday_ и Digger Man52