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

  #1  
Старый 08.08.2018, 12:33
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

Введение

API предоставляет возможность использовать готовые функции плагина SAMPFUNCS в своих собственных плагинах. Вам больше не придется самому искать адреса для вызова функций из памяти, вам больше не придется вручную перехватывать вызов функций RakNet'а и D3DDevice. Парой кликов мыши происходит регистрация своей функции, которая будет вызвана SF в нужный момент.

Основные возможности

На данный момент реализован доступ к пяти основным классам:

CGame — получение статусов нажатий клавиш, позиций курсора, эмуляция клавиш в игре, конвертация игровых координат, регистрация своей функции обработки нажатий клавиш и т.д.

CSAMP — самый объёмный класс. Предоставляет такие функции как: получение статуса инициализации клиента, работа со всеми структурами и данными (Players, Vehicles, Chat, Dialog, DeathList и другие), готовые функции отправки некоторых данных серверу, регистрация клиентской команды в чате.

CCLEO — на данный момент поддерживается регистрация собственных опкодов, а в будущих версиях будет добавлена возможность выполнения всех опкодов Cleo с привычным синтаксисом из SB.

CRakNet — отправка пакетов, регистрация callback-функций для чтения отсылаемых/полученных данных, получение названия пакета и RPC по ID, кодирование/декодирование строк.

CRender — позволяет создавать собственные шрифты и текстуры, рендер примитивов, регистрация callback-функций на всю таблицу методов Direct3D Device.

Начало работы

Для работы .sf плагинов требуется:
  1. Скачать последнюю версию плагина SAMPFUNCS.
  2. Из архива с плагином извлечь и разархивировать SFPlugin.zip. Это настроенный проект, готовый к работе с API.
  3. Скомпилированный .sf плагин положить в папку GTA San Andreas\SAMPFUNCS.
Пример

В качестве первого примера будет показана простая функция показа информации об игроке в чат.

Для этого открываем скачанный проект и заходим в файл main.cpp.

Перед функцией mainloop вставляем этот код:

C++:





Код:
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
sprintf
(
buf
,
"Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
iIsNPC
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;


Затем в функции mainloop внутри условного блока if( !init ) перед операцией init = true; вставляем:

C++:





Код:
SF
->
getSAMP
(
)
->
registerChatCommand
(
"showinfo"
,
cmd_show_info_player
)
;


Компилируем, закидываем в папку SAMPFUNCS полученный .sf плагин ( в папке bin ) и заходим в игру.

Пишем в чат /showinfo и получаем примерно следующее:



На этом урок окончен, в следующих примерах будут разобраны подробно каждый из классов API.

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



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.