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

  #1  
Старый 26.09.2025, 20:15
RedHolms
Постоянный
Регистрация: 04.06.2020
Сообщений: 620
С нами: 3127813

Репутация: 133


По умолчанию


Библиотека для работы с сампом, которая реализует незаметную для разработчика поддержку версий сампа. Добавлять новые версии крайне легко, достаточно добавить таблицу оффсетов в массив (
Код:
src/offsets.cpp
).

Небольшой пример:

Example:





Код:
auto
netGame
=
SAMP
::
NetGame
(
)
;
if
(
netGame
)
{
if
(
netGame
->
rakClient
&&
netGame
->
rakClient
->
IsConnected
(
)
)
netGame
->
rakClient
->
Disconnect
(
0
)
;
netGame
->
~
CNetGame
(
)
;
}


Как видим, чтобы получить RakClientInterface мы не вызываем функции, а просто берём поле. Реализовано это через properties (экслюзив для MSVC). Некоторых это может оттолкнуть, но учитывая, что почти всё на винде к сожалению билдится MSVC, огромных проблем в данном подходе я не вижу (в теории Clang тоже это реализует, но я не проверял)

Функции и поля далеко не все, и поддержка версий только R1 и R3-1, т.к. эта либа позаимствована(вырезана) из проекта, где всё добавлялось по мере необходимости. Буду дополнять, что можете делать и вы, создавая пул реквесты.

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

Также изначально была идея некого хака языка, сделав так, чтобы все структуры сразу содержали референсы, которые мы будем заменять через замену памяти
В будущем есть идея расширить библиотеку, добавив в неё свои хуки, ивенты и т.д.

btw. хз занято ли имя SAMP-SDK, может кто-то уже делал библиотеку с таким названием, но я не видел
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.