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

Yayachana)

Известный
32
10
Как получить координаты объекта?
Наверное, что-то похожее, не уверен
Там скорее всего ещё проверку надо добавить на iIsListed

@:
    auto getInfo = SF->getSAMP()->getInfo()->pPools->pObject;
    for (int i = 0; i < SAMP_MAX_OBJECTS; i++)
        if (getInfo->object[i]->iModel == ID объекта)
        {
            CVector coords;
            coords.fX = getInfo->object[i]->fPos[0];
            coords.fY = getInfo->object[i]->fPos[1];
            coords.fZ = getInfo->object[i]->fPos[2];
        }
 
  • Нравится
Реакции: 0xFF

Yuriy Code

Известный
753
929
SF API.
Итак, как удалить объект по его ID? Я понимаю, звучит довольно банально. Но, я парился, но так и не смог удалить объект по его ID.
Как это сделать? Возможно, кто-нибудь из вас знает.

Пытался пробовать получать его хендл по id и т.п., но, не выходит.
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
317
675
SF API.
Итак, как удалить объект по его ID? Я понимаю, звучит довольно банально. Но, я парился, но так и не смог удалить объект по его ID.
Как это сделать? Возможно, кто-нибудь из вас знает.

Пытался пробовать получать его хендл по id и т.п., но, не выходит.
 

Yuriy Code

Известный
753
929
Так я делаю на SF API, а не на SAMP API.

Если там есть функция, кидай тут, я не буду там в коде копаться, который ты мне кинул.
 

sc6ut

неизвестный
Модератор
382
1,089
я не буду там в коде копаться, который ты мне кинул.
не пиши тогда совсем код и не проси о помощи, раз не готов своими мозгами подразкинуть, за тебя никто не собирается всё делать
Какую именно функцию?
он тебе дал ссылку на конкретную функцию BOOL CObjectPool::Delete(ID nId)
тебе даже делать ничего не надо, разве что достать object pool в сф апи понять что функция GetAddress возвращает оффсет от samp.dll
Так я делаю на SF API, а не на SAMP API.
и да для него есть своя тема чтобы не писать об этом по тыще раз в каждом сообщение
 

Yuriy Code

Известный
753
929
не пиши тогда совсем код и не проси о помощи, раз не готов своими мозгами подразкинуть, за тебя никто не собирается всё делать

он тебе дал ссылку на конкретную функцию BOOL CObjectPool::Delete(ID nId)
тебе даже делать ничего не надо, разве что достать object pool в сф апи понять что функция GetAddress возвращает оффсет от samp.dll


и да для него есть свой раздел чтобы не писать об этом по тыще раз в каждом сообщение
Что за ID функция принимает? Хендл?
1650541223288.png

Ты мне пишешь, что нужен object pool, окей, но какой элемент именно нужно использовать?
1650541281884.png
 

sc6ut

неизвестный
Модератор
382
1,089

Yuriy Code

Известный
753
929
понял тебя, сначала научись писать на с++,
Я тебя понял, считаешь, что я не умею писать не C++, хотя я просто не знаю, как работает функция в API.
Ясно, наверно сделаю просто через отлов RPC, вместо того, чтобы париться над этим.
Не знаю, зря ли я задал вопрос здесь. Возможно, найдётся человек, который лучше тебя ответит мне более понятно и подробно.
 

sc6ut

неизвестный
Модератор
382
1,089
Я тебя понял, считаешь, что я не умею писать не C++, хотя я просто не знаю, как работает функция в API.
функция в апи вызывает оригинальную функцию по адрессу, который получает из фунции GetAddress что возвращает оффсет от samp.dll, что такое ID можно посмотреть скачав проект и открыв его в любом IDE оно покажет тебе где находится typedef/using, если ты конечно знаешь что это такое. если ты это не можешь понять, то да, ты не знаешь как писать код на с++

держи функцию бро - https://wiki.blast.hk/ru/moonloader/lua/deleteObject
 
  • Нравится
Реакции: etereon

F0RQU1N and

Известный
1,307
498
Что за ID функция принимает? Хендл? Посмотреть вложение 144415
Ты мне пишешь, что нужен object pool, окей, но какой элемент именно нужно использовать?Посмотреть вложение 144416
так у тебя есть функция удаления, функция получие хэндла по иду и наоборот, что тебе ещё нужно то?
 

Yuriy Code

Известный
753
929
так у тебя есть функция удаления, функция получие хэндла по иду и наоборот, что тебе ещё нужно то?
Разно уже пробовал. Вот вариант, который просто крашит самп:
Код:
                CObject* object = GAME->GetPools()->GetObjectA((DWORD*)SF->getSAMP()->getInfo()->pPools->pObject->object[id]);
                GAME->GetPools()->RemoveObject(object);