Другое SAMPFUNCS | API C++

NarutoUA

NarutoUA
BH Team
692
1,550
Ну на работе у меня Ubuntu+Windows, но т.к. я работаю в Ubuntu то думал и это учить там же не перегружаясь, в SAMP я иногда захожу через Wine . Дома там же 2 операционки, но т.к. дома в основном с WIndows тут проблем нет, работаю с под неё.
Что ж это у тебя за работа что ты регистрацию callback делаешь по нажатию кнопки?
 

Ice

Известный
33
3
C++:
SF->getSAMP()->getInfo()->pPools->pObject->GetObjectHandleByID(objectid)
что возвращает эта функция?

Мне надо изменить координаты и ротацию объекта. Пробовал через самп поол но не получилось, позиция там изменена но не в 3D мире.
 

TheMY3

Известный
33
8
Что ж это у тебя за работа что ты регистрацию callback делаешь по нажатию кнопки?
На вопрос можно ответить по теме? Работаю я на других языках: PHP, Python, JS. О C++ абсолютно ничего не известно, но т.к. языки похожи все чем то то и тут пытаюсь вникнуть, только C++ более низкоуровневый, и доки я ещё не читал по нему, по этому и делаю что- попало
 

FYP

Известный
Администратор
1,764
5,924
что возвращает эта функция?
scm-хендл объекта. он используется только в опкодах.
И ещё вопрос, в консоли в игре есть дебаг мод, я могу отправлять сообщения в консоль вместо вывода в чат к примеру сообщения о том что происходит?
SF->Log()
 

TheMY3

Известный
33
8
Подскажет кто где тогда можно делать регистрацию коллбека если не при нажатию на кнопку?
C++:
if (SF->getGame()->isKeyPressed('H')) // если нажата клавиша H (англ)
    {
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present); //Рисую блок
    };
Так вроде бы работает, сделал чтоб блок скрывался и показывался, но говорят выше что это так себе вариант.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Подскажет кто где тогда можно делать регистрацию коллбека если не при нажатию на кнопку?
C++:
if (SF->getGame()->isKeyPressed('H')) // если нажата клавиша H (англ)
    {
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present); //Рисую блок
    };
Так вроде бы работает, сделал чтоб блок скрывался и показывался, но говорят выше что это так себе вариант.
Один раз где угодно. Хоть после загрузки сампа, хоть во время загрузки игры, хоть по кнопке, но при этом проверять, что колбэк был зарегистрирован единожды (boolean переменную можешь ввести). После регистрации он будет вызываться постоянно, пока игра активна.
 
  • Нравится
Реакции: TheMY3

NarutoUA

NarutoUA
BH Team
692
1,550
Спасибо, теперь понял, сложно конечно так без доки что-то делать конечно, всё методом проб и ошибок делать надо :)
На вики есть 4 урока по С++ апи:
https://www.blast.hk/wiki/tutorials:list
Еще в разделе читов можно найти плагины с сурсами и там посмотреть.
 

Sire Like

Blanche Bier
Друг
487
234
Я как бы ничего не намекаю.
62ab96aecf63433db1bc29c28be7cfd5.png
 
  • Нравится
Реакции: Breakaway и 4el0ve4ik

TheMY3

Известный
33
8
Я как бы и не отрицаю что я нуб в этом деле. Для моих задач мне этого хватает с головой, если буду дальше что-то писать под SAMP и уже не будет хватать API буду учить что-то более сложнее.
 

AWRage

Активный
642
141
Обойти античит на DRP чтобы ездить на машиной для аренды не арендовав её никак нельзя? Там когда садишься в автомобиль, появляется диалог о аренде, я его сворачивал, заводил двигатель через функцию в CVehicle, но меня кикало через 5-10 метров езды.
 

TheMY3

Известный
33
8
Вопрос по чата, хочу отправить сообщение в чат чтоб все видели.
Я вот нашел метод SF->getSAMP()->getChat()->AddChatMessage(), но я так понял это сообщение вижу только я.
SF->getSAMP()->getChat()->SetChatInputText(); но он вставляет в инпут чата данные, а как их отправить в чат?

И сразу вопрос, как можно отследить какая клавиша нажата?
Вот к примеру я сделаю SF->getGame()->isKeyPressed('W') && SF->getGame()->isKeyPressed('E') в одном условном блоке, я внутри смогу как то узнать какая именно клавиша была нажата?
 

BlackKnigga

Известный
BH Team
922
446

TheMY3

Известный
33
8
Так у тебя &&, блок выполнится только при нажатии обоих клавиш.
Не так написал, имел в виду или, к примеру мне надо будет узнать какую клавишу от 1 до 0 нажал человек, чтоб не делать 10 блоков я бы хотел 1 с переменной в которой будет клавиша, если это возможно, я так понимаю это уже не API а средствами C++ надо делать?