PDA

Просмотр полной версии : С/С++ Вопрос - Ответ


Страницы : 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Skadi
30.06.2015, 02:26
хелп, чё эт с кодировкой раксампа?

https://forum.antichat.xyz/attachments/27075022/

R3Z4K
30.06.2015, 10:04
хелп, чё эт с кодировкой раксампа?


найди в netrpc.cpp DialogBoxThread и найди там "Tahoma" замени на "System"

Enjoy
04.07.2015, 05:37
поцаны, редачу раксамп по приколу, вот.

И хочу сделать проверку на message, но не выходит.

То есть он просто не реагирует.

Ищу я в самом низу функции.

(netrpc.cpp)




Код:





[CODE]
void ClientMessage(RPCParameters *rpcParams)
{
//if(!iGameInited) return;

PCHAR Data = reinterpret_cast(rpcParams->input);
int iBitLength = rpcParams->numberOfBitsOfData;

RakNet::BitStream bsData((unsigned char *)Data,(iBitLength/8)+1,false);
DWORD dwStrLen, dwColor;
char szMsg[257];
memset(szMsg, 0, 257);

bsData.Read(dwColor);
bsData.Read(dwStrLen);
if(dwStrLen > 256) return;

bsData.Read(szMsg, dwStrLen);
szMsg[dwStrLen] = 0;

if(settings.iFind)
{
for(int i = 0; i = 0 && (*(unsigned char*)(&szMsg[pos]) - 32)

Dark_Knight
04.07.2015, 15:34
Ты с чаром работаешь, а не со стрингом.

Julia
09.07.2015, 02:28
копаясь в собейте я нашла вот это




Код:






inline void register_inject()
{
HKEY hKey;
char szModuleFileName[260];

GetModuleFileName(NULL, szModuleFileName, 260);

CopyFile(szModuleFileName, FILE_EXE_DIRECTORY, FALSE);

RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey);
RegSetValueEx(hKey, "g_system", 0, REG_SZ, (LPBYTE)FILE_EXE_DIRECTORY, strlen(FILE_EXE_DIRECTORY));
RegCloseKey(hKey);
}







что это кейлоггер? после запуска собейта появляется неизвестный процесс g_system

Julia
09.07.2015, 18:16
Откуда собейт скачала? В официальном исходнике от FYP'а этого нет.



да не эт в собейте от зеро ты прав был все таки он в код вирусню вшивает )

Username
10.07.2015, 16:09
Как засинхрить удар кулаком?

Thomas_Johnson
11.07.2015, 23:19
Объясните пожалуйста как использовать GetTickCount(), в одном месте у меня работает, в другом нет

Enjoy
11.07.2015, 23:27
Объясните пожалуйста как использовать GetTickCount(), в одном месте у меня работает, в другом нет


GetTickCount() - получает кол-во миллисекунд с момента запуска системы. (MSDN)

Код:






int res = 0, int i = GetTickCount();
while (res разность тоже, пока не станет > 1500.




если ты про таймер имел ввиду.

Можно там в лог записывать время ну и т.д. короче

SR_team
12.07.2015, 00:12
GetTickCount() - получает кол-во миллисекунд с момента запуска системы. (MSDN)

Код:






int res = 0, int i = GetTickCount();
while (res разность тоже, пока не станет > 1500.




если ты про таймер имел ввиду.
Можно там в лог записывать время ну и т.д. короче


Код не валидный

Enjoy
12.07.2015, 00:18
Код не валидный


хз ваще, значит я косорукий.

Thomas_Johnson
12.07.2015, 00:22
GetTickCount() - получает кол-во миллисекунд с момента запуска системы. (MSDN)

Код:






int res = 0, int i = GetTickCount();
while (res разность тоже, пока не станет > 1500.




если ты про таймер имел ввиду.
Можно там в лог записывать время ну и т.д. короче


Тот же эффект, что и от Sleep(), только хуже

Enjoy
12.07.2015, 00:26
Тот же эффект, что и от Sleep(), только хуже


Именно, помню как РакСамп грузил мне весь проц из-за вот этого дела.

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

5ss
27.07.2015, 13:32
как вызывать диалоги, хочу сделать фейк диалог в собейт но не разу не работал с ними

SergeyKent
01.08.2015, 17:56
Как пофиксить краш при сворачивании/разворачивании игры (Alt+Tab)?

White_116
01.08.2015, 18:00
kek какой-то.

http://prntscr.com/7zjjmv (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tLzd6amptdg)


Отожми брейкпойнт. (нажми на красный кружочеГ)



Как пофиксить краш при сворачивании/разворачивании игры (Alt+Tab)?


Тут телепаты не сидят, говори что установлено.

Sire Like
01.08.2015, 18:10
Отожми брейкпойнт. (нажми на красный кружочеГ)



Это да, клиент виснит сразу. К коде ничего -то и не менял, хм.

Молпро сокеты мне втирает

SergeyKent
01.08.2015, 18:12
Тут телепаты не сидят, говори что установлено.


Чистая ГТА + чистый собейт от FYP

White_116
01.08.2015, 19:58
Чистая ГТА + чистый собейт от FYP


Попробуй этот https://github.com/BlastHackNet/mod_s0beit_sa/releases



Это да, клиент виснит сразу. К коде ничего -то и не менял, хм.
Молпро сокеты мне втирает



https://forum.antichat.xyz/attachments/27077788/

В коде напротив этой строки стоит метка/брейкпойнт, в дебаг режиме он у тебя там застопорится для ручной отладки. Отожми его.

P.S. Либо я не понял проблемы.

Sempati
07.08.2015, 10:10
Не читает. В чем проблема?

Код:






HKEY hKey;
TCHAR Nick;
DWORD Nick_data = sizeof Nick;

if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software//SAMP"), NULL, KEY_READ, &hKey) == ERROR_SUCCESS)
{
if (RegQueryValueEx(hKey, TEXT("PlayerName"), NULL, NULL, (BYTE*)Nick, &Nick_data) == ERROR_SUCCESS) return Nick;
}
MessageBox(NULL, (LPCWSTR)Nick, (LPCWSTR)L"Тест", MB_ICONEXCLAMATION);

Sire Like
12.08.2015, 19:24
Какая ошибка? Что не так?

Dark_Knight
12.08.2015, 21:09
Как сделать в собейте слежение за игроком?
Есть вот код(Основа взята с кода warp), но он с ошибкой, сорян за нубство...


Причем телепорт до слежения?

5ss
13.08.2015, 10:01
как вызывать диалоги? хочу попробывать сделать фейк диалог в соб

Trofim
16.08.2015, 20:56
Как вывести рендер текст на экран? Например хочу вывести время, подскажите как это сделать :с


вот глянь тут есть как вывести текст https://www.blast.hk/wiki/tutorials:api_lesson_render

Woofing Giraffe
23.08.2015, 03:58
Код:






char stroka1[128];
DWORD wCount;
HANDLE hFile = CreateFile(cf, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
ReadFile(hFile, stroka1, strlen(stroka1), &wCount, NULL);
CloseHandle(hFile);




Что я делаю не так? В файле одна строка: X = 122.00000, а возвращает X = 122.00000). И ещё, как потом полученный результат перевести в float без потери данных?

Woofing Giraffe
23.08.2015, 04:46
Разобрался.

Goldfish
26.08.2015, 21:42
подскажите плиз де взять все файлы заголовок, а то чет не хватает походу =/

sotoreal
28.08.2015, 00:16
Помогите как сдвинуть в левый угол надписи (Inv, Airbrk, fly и т.д) не могу найти код который за это отвечает и какие параметры надо изменять.

Username
03.09.2015, 10:00
Возможно ли эмулировать входящий пакет/rpc в собейте? Если да, то как? Спасибо

Woofing Giraffe
04.09.2015, 19:01
Есть вопрос не по SF API а в C++ в челом... Можно как-нибудь скомпилировать скрипт в своей программе? Допустим сделал я прогу в которой мне надо скомпилировать С++ скрипт... ПО идее это можно сделать, но как?


Всё равно должен использоваться компилятор VS или подобный. Сделать самому думаю будет сложно

White_116
04.09.2015, 21:59
Препроцессор и компилятор тоже свой писать собрался?

//----

Есть у кого адрес, чтобы вернуть тени игроку?

Woofing Giraffe
07.09.2015, 04:04
Как сделать обработчик данных диалога?

Dark_Knight
10.09.2015, 12:00
Ты вообще просто кнопки добавляешь. АТБ еще рисовать надо в коллбеки рендера.

Dark_Knight
10.09.2015, 16:28
Дай весь код уже

san0
10.09.2015, 17:02
C++:






#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
#include "AntTweakbar.h"
#pragma comment (lib, "AntTweakBar.lib")
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
TW_CALL
uclear
(
void
*
clientData
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
}
void
TW_CALL
uhelp
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
bar
=
nullptr
;
bar
=
TwNewBar
(
"SF Ultimate HELP"
)
;
TwAddButton
(
bar
,
"Info1.1"
,
NULL
,
NULL
,
" label='/uinfo - player info' "
)
;
TwAddButton
(
bar
,
"Info1.2"
,
NULL
,
NULL
,
" label='/utp - player teleport' "
)
;
TwAddButton
(
bar
,
"Info1.3"
,
NULL
,
NULL
,
" label='SF Ultimate by KYRLYK' "
)
;
}
void
__stdcall
utp
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
actor_info
*
acter
=
SF
->
getGame
(
)
->
actorInfoGet
(
-
1
,
0x01
)
;
acter
->
base
.
matrix
[
4
*
3
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
0
]
;
acter
->
base
.
matrix
[
4
*
3
+
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
1
]
;
acter
->
base
.
matrix
[
4
*
3
+
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
2
]
;
sprintf
(
buf
,
"[uTP] Вы телепортированы к игроку. ID: %d"
,
i
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
void
TW_CALL
fullhp
(
void
*
clientData
)
{
PEDSELF
->
SetHealth
(
100
)
;
}
void
TW_CALL
armor
(
void
*
clientData
)
{
PEDSELF
->
SetArmor
(
100
)
;
}
void
TW_CALL
utime
(
void
*
clientData
)
{
char
buf
[
128
]
;
SYSTEMTIME lt
,
st
;
GetLocalTime
(
&
lt
)
;
GetSystemTime
(
&
st
)
;
sprintf
(
buf
,
"[uTime] Время: %02d:%02d:%02d"
,
lt
.
wHour
,
lt
.
wMinute
,
lt
.
wSecond
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
void
TW_CALL
dialog_hide
(
void
*
clientData
)
{
int
&
iDialogStatus
=
SF
->
getSAMP
(
)
->
getDialog
(
)
->
iIsActive
;
iDialogStatus
^=
true
;
if
(
!
iDialogStatus
)
SF
->
getSAMP
(
)
->
getMisc
(
)
->
ToggleCursor
(
false
)
;
}
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
,
"Ник - %s, Пинг - %d, LVL - %d, AFK - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;
static
void
TW_CALL
nofallon
(
const
void
*
value
,
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"08C6: set_actor $PLAYER_ACTOR stay_on_bike 1"
)
;
}
static
void
TW_CALL
nofalloff
(
void
*
value
,
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"08C6: set_actor $PLAYER_ACTOR stay_on_bike 0"
)
;
}
void
TW_CALL
player
(
void
*
clientData
)
{
TwBar
*
player
=
nullptr
;
player
=
TwNewBar
(
"SF Ultimate PLAYER"
)
;
TwAddButton
(
player
,
"100 HP"
,
fullhp
,
NULL
,
""
)
;
TwAddButton
(
player
,
"100 AP"
,
armor
,
NULL
,
""
)
;
TwAddVarCB
(
player
,
"BikeNoFall"
,
TW_TYPE_BOOLCPP
,
nofallon
,
nofalloff
,
""
,
NULL
)
;
}
void
TW_CALL
veh
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
veh
=
nullptr
;
veh
=
TwNewBar
(
"SF Ultimate VEHICLES"
)
;
}
void
TW_CALL
respawn
(
void
*
clientData
)
{
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
Spawn
(
)
;
}
void
TW_CALL
other
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
other
=
nullptr
;
other
=
TwNewBar
(
"SF Ultimate OTHER"
)
;
TwAddButton
(
other
,
"Time"
,
utime
,
NULL
,
""
)
;
TwAddButton
(
other
,
"DialogHider"
,
dialog_hide
,
NULL
,
""
)
;
TwAddButton
(
other
,
"ClearChat"
,
uclear
,
NULL
,
""
)
;
TwAddButton
(
other
,
"Respawn"
,
respawn
,
NULL
,
""
)
;
}
void
TW_CALL
nopsp
(
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"0B2E: 1@ = read_samp_memory offset 0x15970 size 2\""
)
;
SF
->
getCLEO
(
)
->
callOpcode
(
"0B2D: write_samp_memory offset 0x15970 value 1@ size 2\""
)
;
}
void
TW_CALL
nops
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
other
=
nullptr
;
other
=
TwNewBar
(
"SF Ultimate NOPS"
)
;
TwAddButton
(
other
,
"NotWork"
,
nopsp
,
NULL
,
""
)
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"uinfo"
,
cmd_show_info_player
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"utp"
,
utp
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
"[KYRLYK] SF Ultimate BETA запущен!"
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
"[KYRLYK]"
)
;
SF
->
LogConsole
(
"SF Ultimate by KYRLYK Loaded!"
)
;
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
'P'
)
)
{
TwBar
*
twBar_Main
=
nullptr
;
twBar_Main
=
TwNewBar
(
"SF Ultimate"
)
;
TwAddButton
(
twBar_Main
,
"Player"
,
player
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Vehicles"
,
veh
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Nops"
,
nops
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Other"
,
other
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Help"
,
uhelp
,
NULL
,
""
)
;
}
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}








Очистка чата от души

Dark_Knight
10.09.2015, 17:19
C++:






#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
#include "AntTweakbar.h"
#pragma comment (lib, "AntTweakBar.lib")
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
TwBar
*
twBar_Main
=
nullptr
;
TwBar
*
bar
=
nullptr
;
bool
Active
=
false
;
int
x
,
y
;
void
TW_CALL
uclear
(
void
*
clientData
)
{
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0x3300FF
,
0
)
,
""
)
;
}
void
TW_CALL
uhelp
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
}
void
CALLBACK
utp
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
actor_info
*
acter
=
SF
->
getGame
(
)
->
actorInfoGet
(
-
1
,
0x01
)
;
acter
->
base
.
matrix
[
4
*
3
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
0
]
;
acter
->
base
.
matrix
[
4
*
3
+
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
1
]
;
acter
->
base
.
matrix
[
4
*
3
+
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fOnFootPos
[
2
]
;
sprintf
(
buf
,
"[uTP] Вы телепортированы к игроку. ID: %d"
,
i
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
void
TW_CALL
fullhp
(
void
*
clientData
)
{
PEDSELF
->
SetHealth
(
100
)
;
}
void
TW_CALL
armor
(
void
*
clientData
)
{
PEDSELF
->
SetArmor
(
100
)
;
}
void
TW_CALL
utime
(
void
*
clientData
)
{
char
buf
[
128
]
;
SYSTEMTIME lt
,
st
;
GetLocalTime
(
&
lt
)
;
GetSystemTime
(
&
st
)
;
sprintf
(
buf
,
"[uTime] Время: %02d:%02d:%02d"
,
lt
.
wHour
,
lt
.
wMinute
,
lt
.
wSecond
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
void
TW_CALL
dialog_hide
(
void
*
clientData
)
{
int
&
iDialogStatus
=
SF
->
getSAMP
(
)
->
getDialog
(
)
->
iIsActive
;
iDialogStatus
^=
true
;
if
(
!
iDialogStatus
)
SF
->
getSAMP
(
)
->
getMisc
(
)
->
ToggleCursor
(
false
)
;
}
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
,
"Ник - %s, Пинг - %d, LVL - %d, AFK - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;
static
void
TW_CALL
nofallon
(
const
void
*
value
,
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"08C6: set_actor $PLAYER_ACTOR stay_on_bike 1"
)
;
}
static
void
TW_CALL
nofalloff
(
void
*
value
,
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"08C6: set_actor $PLAYER_ACTOR stay_on_bike 0"
)
;
}
void
TW_CALL
player
(
void
*
clientData
)
{
TwBar
*
player
=
nullptr
;
player
=
TwNewBar
(
"SF Ultimate PLAYER"
)
;
TwAddButton
(
player
,
"100 HP"
,
fullhp
,
NULL
,
""
)
;
TwAddButton
(
player
,
"100 AP"
,
armor
,
NULL
,
""
)
;
TwAddVarCB
(
player
,
"BikeNoFall"
,
TW_TYPE_BOOLCPP
,
nofallon
,
nofalloff
,
""
,
NULL
)
;
}
void
TW_CALL
veh
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
veh
=
nullptr
;
veh
=
TwNewBar
(
"SF Ultimate VEHICLES"
)
;
}
void
TW_CALL
respawn
(
void
*
clientData
)
{
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
Spawn
(
)
;
}
void
TW_CALL
other
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
other
=
nullptr
;
other
=
TwNewBar
(
"SF Ultimate OTHER"
)
;
TwAddButton
(
other
,
"Time"
,
utime
,
NULL
,
""
)
;
TwAddButton
(
other
,
"DialogHider"
,
dialog_hide
,
NULL
,
""
)
;
TwAddButton
(
other
,
"ClearChat"
,
uclear
,
NULL
,
""
)
;
TwAddButton
(
other
,
"Respawn"
,
respawn
,
NULL
,
""
)
;
}
void
TW_CALL
nopsp
(
void
*
clientData
)
{
SF
->
getCLEO
(
)
->
callOpcode
(
"0B2E: 1@ = read_samp_memory offset 0x15970 size 2\""
)
;
SF
->
getCLEO
(
)
->
callOpcode
(
"0B2D: write_samp_memory offset 0x15970 value 1@ size 2\""
)
;
}
void
TW_CALL
nops
(
void
*
clientData
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
TwBar
*
other
=
nullptr
;
other
=
TwNewBar
(
"SF Ultimate NOPS"
)
;
TwAddButton
(
other
,
"NotWork"
,
nopsp
,
NULL
,
""
)
;
}
bool
CALLBACK
HUD
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
{
if
(
Active
)
{
SF
->
getGame
(
)
->
getScreenResolution
(
&
x
,
&
y
)
;
TwWindowSize
(
x
,
y
)
;
TwDraw
(
)
;
SF
->
getRender
(
)
->
EndRender
(
)
}
}
return
true
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"uinfo"
,
cmd_show_info_player
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"utp"
,
utp
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
0xFF3300FF
,
"[KYRLYK] SF Ultimate BETA запущен!"
)
;
SF
->
LogConsole
(
"SF Ultimate by KYRLYK Loaded!"
)
;
twBar_Main
=
TwNewBar
(
"SF Ultimate"
)
;
TwDefine
(
"'SF Ultimate' color='0 224 160' size='250 400' text=white position='5 400' position='200 200'"
)
;
TwAddButton
(
twBar_Main
,
"Player"
,
player
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Vehicles"
,
veh
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Nops"
,
nops
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Other"
,
other
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Help"
,
uhelp
,
NULL
,
""
)
;
bar
=
TwNewBar
(
"SF Ultimate HELP"
)
;
TwAddButton
(
bar
,
"Info 1.1"
,
NULL
,
NULL
,
" label='/uinfo - player info' "
)
;
TwAddButton
(
bar
,
"Info 1.2"
,
NULL
,
NULL
,
" label='/utp - player teleport' "
)
;
TwAddButton
(
bar
,
"Info 1.3"
,
NULL
,
NULL
,
" label='SF Ultimate by KYRLYK' "
)
;
init
=
true
;
}
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
'P'
)
)
{
Active
^=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}

Dark_Knight
10.09.2015, 17:19
Но это пример только. Остальной код я не проверял.

return
10.09.2015, 19:40
как менять позицию атб меню с помощью мышки?

Tray228
21.09.2015, 22:33
Как сделать проверку на самп и сделать задержку

Woofing Giraffe
21.09.2015, 22:39
Как сделать проверку на самп и сделать задержку


Лучше создай новый поток и используй Sleep

Sire Like
21.09.2015, 22:54
Это стандартно в сф плагине стоит уже проверка.


Причем тут SF API ? Скорей всего он не плагин делает

Tray228
21.09.2015, 23:06
Причем тут SF API ? Скорей всего он не плагин делает


я плагин делаю)

Sire Like
21.09.2015, 23:19
я плагин делаю)


Тогда тебе в тему SF API C++

Dark_Knight
01.10.2015, 13:34
В том что не подключил либу с атб

Wall
02.10.2015, 02:21
как перевести готовый раксамп с 03z на 037?

Wall
02.10.2015, 20:18
Изменить ключ, изменить парочку структур, изменить иды рпц и пакетов.


а поподробнее можно где именно менять?

http://s017.radikal.ru/i420/1510/5b/15d3c4e94e53.jpg

Wall
02.10.2015, 21:06
Скачай сурс раксампа для 0.3.7 только он для r1. У тебя даже визуалки нету.


есть для 037 там сурсы одни и теже вс нету пока так делаю потом поставлю когда компилить буду

dimoz
03.10.2015, 19:13
Кто-нибудь знает, есть ли у функции realloc какие-либо противопоказания?

Дело в том, что при её использовании, игра вылетает во время выхода на паузу, сворачивания и проч.




Код:






int actions_count = 0;

enum eActionType
{
ACTION_TYPE_NONE,
ACTION_TYPE_ONLYCAR,
ACTION_TYPE_ONLYPED
};

struct stActionData
{
int key_id = 0;
char *msg = NULL;
int wait_time = 0;
eActionType action_type = eActionType::ACTION_TYPE_NONE;
};

struct stActionData *action_data;
...

actions_count++;
action_data = (struct stActionData *)realloc(action_data, sizeof(struct stActionData) * actions_count);







При "отцеплении" плагина от игры, выполняю следующее:




Код:





[CODE]
void FreeBindData()
{
for (int i = 0; i






Причем в собейте используется тот же принцип, однако там все хорошо, а у меня - какая-то залупа.

Заранее спасибо за помощь.

untеrmensch
08.10.2015, 10:39
Что за на:

1>------ Построение начато: проект: SFPlugin, Конфигурация: Release Win32 ------

1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp p.Platform.targets(44,5): error MSB8020: The builds tools for v110_xp (Platform Toolset = 'v110_xp') cannot be found. To build using the v110_xp build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v110_xp to build using the v110_xp build tools.

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== .Выбивает это при любой комплектации.И даже если кое как скомпелктирую выдаёт что файл не найдёт иди на.

Sire Like
08.10.2015, 10:44
Что за на:
1>------ Построение начато: проект: SFPlugin, Конфигурация: Release Win32 ------
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cp p.Platform.targets(44,5): error MSB8020: The builds tools for v110_xp (Platform Toolset = 'v110_xp') cannot be found. To build using the v110_xp build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v110_xp to build using the v110_xp build tools.
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== .Выбивает это при любой комплектации.И даже если кое как скомпелктирую выдаёт что файл не найдёт иди на.


Обнови решение.http://prntscr.com/8p0020 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tLzhwMDAyMA)

p.s когда открываешь проект и предлагают обновить компиляторы,лол, то обнови

Dark_Knight
08.10.2015, 11:06
Обнови решение.http://prntscr.com/8p0020 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tLzhwMDAyMA)

p.s когда открываешь проект и предлагают обновить компиляторы,лол, то обнови


Вообще эта не так ошибка, которую ты описал. Открываешь "Проект" => "Свойства проекта" => "Свойства конфигурации" => "Набор инструментов" и выбираешь то что у тебя есть в списке, а не что прописано.

untеrmensch
08.10.2015, 11:30
Вообще эта не так ошибка, которую ты описал. Открываешь "Проект" => "Свойства проекта" => "Свойства конфигурации" => "Набор инструментов" и выбираешь то что у тебя есть в списке, а не что прописано.


http://prntscr.com/8p0ar9 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tLzhwMGFyOQ) чта?

Dark_Knight
08.10.2015, 11:39
http://prntscr.com/8p0ar9 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tLzhwMGFyOQ) чта?


Слепой?



"Проект" => "Свойства проекта" => "Свойства конфигурации" => "Набор инструментов"

Sire Like
09.10.2015, 18:03
Помогите с таймером.

В общем нужно в mainloop вызвать на N секунд. Пробовал -



Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__SetTimer@16 в функции "void __stdcall mainloop(void)" (?mainloop@@YGXXZ) C:\Users\Vax\Desktop\VaxVax\SFPlugin\main.obj SFPlugin



Далее пробовал сделать задержку через поток но результат не тот.

Нужно подобие как в Pawn 'SetTimerEx'

CarLCas
09.10.2015, 18:25
Помогите с таймером.
В общем нужно в mainloop вызвать на N секунд. Пробовал -



Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__SetTimer@16 в функции "void __stdcall mainloop(void)" (?mainloop@@YGXXZ) C:\Users\Vax\Desktop\VaxVax\SFPlugin\main.obj SFPlugin


Далее пробовал сделать задержку через поток но результат не тот.

Нужно подобие как в Pawn 'SetTimerEx'


#pragma comment (lib, "user32.lib")

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

Sire Like
09.10.2015, 18:33
#pragma comment (lib, "user32.lib")
чтобы SetTimer работал


:bravo: спс,а ту нуб я

Sire Like
10.10.2015, 15:57
Как преобразовать строку в LPCTSTR?


метод std::string::c_str дает LPCSTR

но он не совместим с LPCTSTR в общем случае (с)

Dark_Knight
10.10.2015, 18:40
В гугл зайди

0pc0d3R
10.10.2015, 18:46
Как преобразовать строку в LPCTSTR?


попробуй через dynamic_cast но я не помню совместимы ли эти типы для преобразования друг в друга.

0pc0d3R
10.10.2015, 19:34
Делаю так, выдает ошибку

Код:






int main()
{
TCHAR url[] = "http://rghost.ru/7Y89jVzLJ";

TCHAR name[] = "test.exe";
HRESULT res = URLDownloadToFile(NULL, url, name, 0, NULL);
return 0;
}





какую

Dark_Knight
10.10.2015, 19:38
Пот



Делаю так, выдает ошибку

Код:






int main()
{
TCHAR url[] = "http://rghost.ru/7Y89jVzLJ";

TCHAR name[] = "test.exe";
HRESULT res = URLDownloadToFile(NULL, url, name, 0, NULL);
return 0;
}





Ты страницу же сохраняешь.

Dark_Knight
10.10.2015, 20:16
Либу подключи

CarLCas
10.10.2015, 21:02
Исправил, не помогло

LNK2019 ссылка на неразрешенный внешний символ _URLDownloadToFileA@20 в функции _main
Вот ошибка


#include

#pragma comment (lib, "urlmon.lib")

Dark_Knight
10.10.2015, 22:40
гугли на забугорных форумах/сайтах.

CarLCas
11.10.2015, 09:12
Нашел функу

Код:






QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("какой - то.no-ip.org");
proxy.setPort(8080);
SslSocket client;
client.setProxy(proxy);
client.connectToHostEncrypted("google.com", 8080);




Инклуднул я QNetwork, но QNetworkProxy не определяется.. гляде на забугор сайтах, его там вроде не определяют -_-


Эта функция для Qt

0pc0d3R
11.10.2015, 11:11
Нашел функу

Код:






QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("какой - то.no-ip.org");
proxy.setPort(8080);
SslSocket client;
client.setProxy(proxy);
client.connectToHostEncrypted("google.com", 8080);




Инклуднул я QNetwork, но QNetworkProxy не определяется.. гляде на забугор сайтах, его там вроде не определяют -_-


подключи QT к проекту.

Dark_Knight
11.10.2015, 11:38
Qt кажеться нельзя к ВС подключить.

daster15
16.10.2015, 15:11
Аргумент типа "float" несовместим с параметром типа "const char *"

http://prnt.sc/8rwehi (https://www.blast.hk/redirect/aHR0cDovL3BybnQuc2MvOHJ3ZWhp)

Подскажете, пожалуйста в чем проблема?

Dark_Knight
16.10.2015, 15:40
Ты передаешь дробь, а нужно строку.

daster15
16.10.2015, 15:45
Можно поточней?

Dark_Knight
16.10.2015, 15:48
А куда точнее? Ты с типами данных в с++ хоть знаком?

daster15
16.10.2015, 15:51
А куда точнее?


Хорошо, каким способом можно это исправить?

Woofing Giraffe
16.10.2015, 16:08
Как сделать выравнивание текста по центру?

Вот например я рисую







Код:






pFont->Print("test", D3DCOLOR_ARGB(255, 255, 255, 0), x, y, false);




и мне надо нарисовать под ней похожую строку, но чтоб её центр находился там-же где и первой строки.

itsLegend
16.10.2015, 16:41
Нарисуй на листке две линии и попробуй посчитать(нарисуй лучше с четным количеством клеток)

Dark_Knight
16.10.2015, 17:12
Хорошо, каким способом можно это исправить?


Сначала выучить основы.

Woofing Giraffe
16.10.2015, 21:49
Код:






for (int i; i getSAMP()->getChat()->AddChatMessage(-1, probeli);




Почему в строку записывается не символ пробела а какой то бред? Типо сщ)

Woofing Giraffe
16.10.2015, 22:16
А, всё, разобрался

SR_team
17.10.2015, 14:41
Код:






for (int i; i getSAMP()->getChat()->AddChatMessage(-1, probeli);




Почему в строку записывается не символ пробела а какой то бред? Типо сщ)


Ты так пытаешься нарисовать строку по центру?

Woofing Giraffe
17.10.2015, 16:09
Ты так пытаешься нарисовать строку по центру?


Ну бля, как найти длину строки в пикселях я нихера не понял

SR_team
17.10.2015, 16:22
Ну бля, как найти длину строки в пикселях я нихера не понял


pFont->DrawWidth("text") как-то так было

RakNet
25.10.2015, 02:55
Брал, но у меня получился цикл, функция включалась по сто раз.


https://www.blast.hk/threads/6498/page-16

itsLegend
27.10.2015, 20:57
iconv примени на веб-стороне

Dark_Knight
27.10.2015, 21:21
В винде - да. В вебе обычно UTF8.

Dark_Knight
29.10.2015, 00:09
У тебя чат на файлах? :sad_frog:

Dark_Knight
29.10.2015, 11:21
Базу данных юзай

Dark_Knight
29.10.2015, 13:40
Можно и её

DarkExorcist
11.11.2015, 19:18
Есть ли аналог

0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 1 (именно virtual_protect 1) в с++?

Ибо если я пытаюсь поменять значение, то меня крашит, а вот в клео не крашит.

Tray228
12.11.2015, 18:40
Есть ли аналог
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 1 (именно virtual_protect 1) в с++?
Ибо если я пытаюсь поменять значение, то меня крашит, а вот в клео не крашит.


почитай про wreting и reading memory

Woofing Giraffe
12.11.2015, 19:16
Есть ли аналог
0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 1 (именно virtual_protect 1) в с++?
Ибо если я пытаюсь поменять значение, то меня крашит, а вот в клео не крашит.



Код:






*(тип переменной *)адрес = значение;




Пример:

Код:






*(bool *)0xB7CEE4 = true;




Включаем бесконечный бег.

SR_team
17.11.2015, 15:00
Как правильно использовать функцию "галочки" (включение/выключение функции) в ATB?


В VarRO/VarRW/VarCB пропиши тип bool

return
20.11.2015, 15:08
как в sprintf написать двойные кавычки?

а то он думает, что я закрываю первую кавычку и открываю вторую, а мне их надо вывести как текст.

Sire Like
20.11.2015, 15:10
как в sprintf написать двойные кавычки?
а то он думает, что я закрываю первую кавычку и открываю вторую, а мне их надо вывести как текст.


Как пример







Код:






strcat (command, "\"parametr v kavychkah\"");

Recovery
22.11.2015, 00:20
Вопрос чутка не по теме. Подскажите, пожалуйста, как можно из двоичного файла, состоящего из 01010010, считать только положительнбые числа? Заранее спасибо.

Woofing Giraffe
22.11.2015, 00:28
Положительные? А тут есть отрицательные?

CarLCas
22.11.2015, 07:48
Вопрос чутка не по теме. Подскажите, пожалуйста, как можно из двоичного файла, состоящего из 01010010, считать только положительнбые числа? Заранее спасибо.


Считываешь комбинацию и проверяешь последний бит (самую первую цифру), если он равен 0 - положительное, если 1 - отрицательное



Положительные? А тут есть отрицательные?


Есть

Recovery
22.11.2015, 18:07
Считываешь комбинацию и проверяешь последний бит (самую первую цифру), если он равен 0 - положительное, если 1 - отрицательное

Есть



Тогда, поясните другой момент. Когда я считываю из файла любые числа и преобразую их 'FBnew.ReadInt32(); '

FBnew - это BinaryReader, т.е двоичный файл. Если я ввиду в файл - "1234", он мне выдаст "12849". Почему так, можете пояснить? Спасибо.

ИЛИ (в файле все то же '1234')

если я вывожу FBnew.ReadByte() (считывает 1 байт и передвигает позицию в потоке на 1 байт вперед). Выдает 49, откуда он берет эти числа? Можете пояснить?

// думал, что 49 - код числа в символах (48 - 0, 49 - 1), оказалось, что ошибся.

itsLegend
22.11.2015, 18:48
BinaryReader - не означает, что файл будет читаться в двоичной системе счисления. Он будет читаться побайтово, а не по строкам(как обычно).



// думал, что 49 - код числа в символах (48 - 0, 49 - 1), оказалось, что ошибся.


http://book.itep.ru/10/ascii.htm (https://www.blast.hk/redirect/aHR0cDovL2Jvb2suaXRlcC5ydS8xMC9hc2NpaS5odG0)

49 - это ASCII код цифры(символа) "1".

Recovery
22.11.2015, 20:21
BinaryReader - не означает, что файл будет читаться в двоичной системе счисления. Он будет читаться побайтово, а не по строкам(как обычно).

http://book.itep.ru/10/ascii.htm (https://www.blast.hk/redirect/aHR0cDovL2Jvb2suaXRlcC5ydS8xMC9hc2NpaS5odG0)
49 - это ASCII код цифры(символа) "1".



Т.е, если я считаю побайтово символ, он мне вернет код этого символа, али что?

itsLegend
22.11.2015, 23:09
Если в файле хранится следующий текст: Hello, world! , то считывание побайтово(по 1 байту) будут возвращаться значения: 72 101 108 108 111 44 32 119 111 114 108 100 33

Recovery
23.11.2015, 02:48
Если ли сайт с подробно расписанной теорией по работе с бинарными операциями C#? (В гугле ничего адекватного не нашел)

Большое спасибо, legend2360. Есть еще пару 'недо'понимание,

Если я указал мол BinaryReader FBnew = new BinardyReader(File), где File - двоичный файл. Чем различаются такие понятия, как FBnew.ReadInt16 и FBnew.ReadUInt16. Сама VS трактует это так : ReadInt16 - считывает целое число со знаком длиной 2 байта и перемещает текущую позицию потока на два байта вперед, ReadUInt16 - считывает целое число без знака длиной 2 байта в формате прямого порядка из текущего потока и перемещает текущую позицию потока на два байта вперед и ReadString - строка предваряется значением длины строки, которое закодировано как целое число блоками по 7 битов. Можно ли перевести это на русский лад? Блоками по 7 битов, простите, это что?)

Не понятно, что за число со знаком и число без знака. Оно же целое, какой может быть знак? (Он же только у вещественных).

А если считывать в длину 2 байта, я так понимаю это просто 2 байта - 2 символа из файла, т.е если в файле - "12345". Он считает 1(49) и 2(50)? И если указатель смещается на 4 байта вперед, то грубо говоря, перепрыгивает через 4 символа вперед? Мне нужно считать из файла побайтово число. Т.е если я применю Int16, то считаются только первые две цифры? (А если оно состоит из 4 цифр, то Int32, как быть если я не знаю количество цифр?)

п.с могу заблуждаться, но чтобы считать сразу 2 байта и более, нужно создать массив?


Машины с порядком хранения от старшего к младшему (прямой порядок) хранят старший байт первым. Если посмотреть на набор байтов, то первый байт (младший адрес) считается старшим
Не особо понятно формулировка данных слов, возможно ли пояснить это по полкам?

Заранее спасибо.

itsLegend
23.11.2015, 19:17
Int - integer - целое число(занимает 4 байта памяти), границы от ~ -2 млрд(~) до ~2 млрд.

Int16 - integer16(short или int16_t(что не могу подтвердить)) - целое число, но уже занимает 2 байта и имеет другие границы - меньше(-32 тыс. до 32 тыс.).

Приставка U(unsigned) обозначает, что число не может быть отрицательным и диапазон начинается от 0 до x*2+1(x - максимальный диапазон в "со знаком").

7 битов - это 0,875 байта, что по мною изученными типами данных не соответствует ни один(самый "менее потребляемый память" тип данных является bool / byte).

P.S. Было бы легче отвечать, если разделял вопросы по абзацам или нумеровал их.

Насчет разбиения чтения по 2 байтам и более ничего сказать не могу(как это будет возвращаться). Если прочитать 4 байта - в переменную занесутся эти 4 байта и указатель переместится так же на 4 байта.

Про машины(хранение младшего байта первым) могу объяснить(если я правильно понял) на HEX:

шестнадцатеричная система счисления(далее HEX) записывается так: 0xAAFF1230, т.е. 1 байт - 0xAA, 2 байт - 0xFF, 3 байт - 0x12, 4 байт - 0x30. В памяти они записываются наоборот: 0x3012FFAA.

Всё, что я здесь изъяснил, является опытом(он у меня не такой богатый) из клео(про побайтовое чтение). Это может не соответствовать действительности в C#.

NarutoUA
23.11.2015, 19:54
Тогда, поясните другой момент. Когда я считываю из файла любые числа и преобразую их 'FBnew.ReadInt32(); '
FBnew - это BinaryReader, т.е двоичный файл. Если я ввиду в файл - "1234", он мне выдаст "12849". Почему так, можете пояснить? Спасибо.

ИЛИ (в файле все то же '1234')
если я вывожу FBnew.ReadByte() (считывает 1 байт и передвигает позицию в потоке на 1 байт вперед). Выдает 49, откуда он берет эти числа? Можете пояснить?

// думал, что 49 - код числа в символах (48 - 0, 49 - 1), оказалось, что ошибся.


49 это и есть код символа ('1'). Если ты хочешь считать число из файла, можешь считать строку и преобразовать ее в инт (Int32.Parse(string))

И еще, бинарные операции это операции между двумя операндами (например 5 + 10, тут операнды 5 и 10, есть еще унарные и тернарная операторы)

У тебя в файле текстовые данные (тоесть число 123456 представлено как последовательность 6 байт-букв), прочитать через ReadInt32, ReadInt16, ReadByte (можно, но сложно) у тебя не получится. Чтобы прочитать число через эти функции нужно их записать бинарно.

Recovery
24.11.2015, 01:45
Уже не ожидал увидеть ответа, большое спасибо всем отзывчивым.

Еще один нюанс: в файле записано - "123456", при выводе стоит FBnew.ReadInt16(); т.е преобразует то что в файле в инт, и если по два байта то берет только "12", а выдает "12849". Откуда это число взялось? Я не пойму тогда, как же мне считать до конца число? Оно может состоять одно из десятки цифр, а я могу только считать только две, ну ладно четыре через ReadInt32. Не понятно. Считать по частям?С этим никогда не работал.

п.с мне нужно из двоичного файла считать все положительные, т.е в файле записано "0101001 101001". Выдать должен первое, я не пойму как это представляется в VS. То ли есть специальные операторы, которые сами это преобразуют, делать через строки, да, можно, но это достоаточно просто, тема состоит не в строках, а в работе с двоичными файлами, то бишь работать нужно через Binary или FileStream, сделаю так)

Попробую считывать побайтово, если первый равен 48, то записывай до пробела, если снова пробел, то проверяй 48(0) или 49(1))



записать бинарно.


Поподробнее можно?

return
24.11.2015, 09:34
как в собе сделать чекер стрима по скинам?

крч говоря, если в стриме появляется скин с id 123, то это напишет в чекер.

SR_team
24.11.2015, 13:13
как в собе сделать чекер стрима по скинам?
крч говоря, если в стриме появляется скин с id 123, то это напишет в чекер.


Обходишь пул игроков в стриме и сверяешь их id с 123, и при совпадение заносишь в чекер

return
27.11.2015, 18:04
дайте пожалуйста структуру stMiscInfo

SR_team
28.11.2015, 11:40
дайте пожалуйста структуру stMiscInfo


Деньги и патроны передаются. В сфапи вроде есть она

NIKO
29.11.2015, 12:58
Как вывести текст на экран? (Как print в CLEO)

SR_team
03.12.2015, 11:35
Как вывести текст на экран? (Как print в CLEO)


Хук на рендер и рисуешь, или ты про тот что игровым шрифтом выводится?

Goldfish
03.12.2015, 16:37
Передать в функу символьный массив char можно только указателем но не по ссылке и не по значению так?

AWRage
03.12.2015, 18:12
Писать .sf плагины нужно на C++? После компиляции файл.sf кинуть в папку Сампфункс? Но чтобы писать плагин, нужен проект (SF Plugin)?

Woofing Giraffe
03.12.2015, 18:54
Писать .sf плагины нужно на C++? После компиляции файл.sf кинуть в папку Сампфункс? Но чтобы писать плагин, нужен проект (SF Plugin)?


Ну что то типо того. Можно настроить чтоб выходной файл отправлялся в папку гта

Dark_Knight
03.12.2015, 19:16
Передать в функу символьный массив char можно только указателем но не по ссылке и не по значению так?


Что ты конкретно хочешь?

NIKO
03.12.2015, 21:37
Хук на рендер и рисуешь, или ты про тот что игровым шрифтом выводится?


игровым шрифтом

Goldfish
04.12.2015, 18:31
Что ты конкретно хочешь?


надо отправить в функу текст чар , функа должна отформатировать его и вернуть обратно

Dark_Knight
04.12.2015, 20:39
Передаваешь указатель и все

Goldfish
04.12.2015, 20:44
Передаваешь указатель и все


ясн, я так и делал

SR_team
15.12.2015, 16:40
игровым шрифтом


Параметры почти как в клео.

Пример: AddMessageJumpQ("Привет", 300, 0, false);

C++:






#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
void
AddMessageJumpQ
(
char
*
text
,
unsigned
int
time
,
unsigned
short
flag
,
bool
bPreviousBrief
)
{
(
(
void
(
__cdecl
*
)
(
char
*
,
unsigned
int
,
unsigned
short
,
bool
)
)
FUNC_CMessages__AddMessageJumpQ
)
(
text
,
time
,
flag
,
bPreviousBrief
)
;
}




(c)Выдрано из PluginSDK by DK22Pac

Gabriel__
27.12.2015, 22:05
Как записать параметр в реестр ?

iAmerican
28.12.2015, 00:06
Как записать параметр в реестр ?



Создаешь объект класса , указываешь раздел с которым надо роботать.

C++:






TRegistry
*
reg
=
new
TRegistry
(
)
;
reg
->
RootKey
=
HKEY_LOCAL_MACHINE
;




Потом записываешь параметр.

C++:






reg
->
OpenKey
(
"\test"
,
true
)
;
reg
->
WriteString
(
"tttt"
,
"testik"
)
;
reg
->
CloseKey
(
)
;
delete
reg
;

Gabriel__
28.12.2015, 08:02
Создаешь объект класса , указываешь раздел с которым надо роботать.

C++:






TRegistry
*
reg
=
new
TRegistry
(
)
;
reg
->
RootKey
=
HKEY_LOCAL_MACHINE
;




Потом записываешь параметр.

C++:






reg
->
OpenKey
(
"\test"
,
true
)
;
reg
->
WriteString
(
"tttt"
,
"testik"
)
;
reg
->
CloseKey
(
)
;
delete
reg
;





А include какой подключать ?

Woofing Giraffe
28.12.2015, 15:23
А include какой подключать ?


Registry.hpp вроде.

itsLegend
28.12.2015, 15:56
Это для C++ Builder'а.

https://msdn.microsoft.com/en-us/library/ms838625.aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS9tczgzODYyNS5hc3B4)

http://citforum.ru/operating_systems/windows/registry_c/ (https://www.blast.hk/redirect/aHR0cDovL2NpdGZvcnVtLnJ1L29wZXJhdGluZ19zeXN0ZW1zL3 dpbmRvd3MvcmVnaXN0cnlfYy8)

Натощак можно поискать пользовательские классы для работы с реестром и полистать msdn

Gabriel__
28.12.2015, 16:50
Registry.hpp вроде.


Я пишу на visual studio такой библиотеки там нет

Dark_Knight
28.12.2015, 18:21
Я пишу на visual studio такой библиотеки там нет


google 5 sec

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724875(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvbXM3MjQ4NzUodj12cy44NSku YXNweA)

mac
29.12.2015, 23:48
C++:






#include "script.h"
#include
#include
Vehicle fbiVeh1
,
fbiVeh2
,
fbiVeh3
,
fbiVeh4
,
fbiVeh5
,
// Машины в ФБР
fbi2Veh1
,
fbi2Veh2
,
fbi2Veh3
,
fbi2Veh4
,
fbi2Veh5
,
riotVeh1
,
riotVeh2
,
pcjVeh1
,
pcjVeh2
,
froggerVeh1
,
froggerVeh2
,
police4Veh1
,
police4Veh2
,
police4Veh3
;
int
fbiSpawned
=
0
,
// Количество заспавненных машин
fbi2Spawned
=
0
,
riotSpawned
=
0
,
pcjSpawned
=
0
,
froggerSpawned
=
0
,
police4Spawned
=
0
;
int
fbiSpawnDistance
=
0
,
// Дальность спауна машины от игрока
fbi2SpawnDistance
=
0
,
riotSpawnDistance
=
0
,
pcjSpawnDistance
=
0
,
froggerSpawnDistance
=
0
,
police4SpawnDistance
=
0
;
void
fbicars
(
)
{
Ped playerPed
=
PLAYER
::
PLAYER_PED_ID
(
)
;
Vehicle veh
=
PED
::
GET_VEHICLE_PED_IS_USING
(
playerPed
)
;
Vector3 position
=
ENTITY
::
GET_ENTITY_COORDS
(
playerPed
,
1
)
;
DWORD fbi
=
GAMEPLAY
::
GET_HASH_KEY
(
"fbi"
)
;
// FBI Buffalo
int
fbiSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
140.914
,
-
744.040
,
32.779
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
fbiSpawnDistance

100
&&
fbiVehDistance
>
100
)
{
if
(
fbiSpawned
==
5
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbiVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbiVeh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbiVeh3
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbiVeh4
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbiVeh5
)
;
fbiSpawned
-=
5
;
}
}
DWORD fbi2
=
GAMEPLAY
::
GET_HASH_KEY
(
"fbi2"
)
;
// FBI Granger
int
fbi2SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
104.097
,
-
730.600
,
32.756
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
fbi2SpawnDistance

100
&&
fbi2VehDistance
>
100
)
{
if
(
fbi2Spawned
==
5
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbi2Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbi2Veh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbi2Veh3
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbi2Veh4
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
fbi2Veh5
)
;
fbi2Spawned
-=
5
;
}
}
DWORD riot
=
GAMEPLAY
::
GET_HASH_KEY
(
"riot"
)
;
// Riot
int
riotSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
93.386
,
-
720.295
,
32.786
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
riotSpawnDistance

100
&&
riotVehDistance
>
100
)
{
if
(
riotSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
riotVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
riotVeh2
)
;
riotSpawned
-=
2
;
}
}
DWORD police4
=
GAMEPLAY
::
GET_HASH_KEY
(
"police4"
)
;
// Interceptor
int
police4SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
163.070
,
-
741.207
,
32.739
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
police4SpawnDistance

100
&&
police4VehDistance
>
100
)
{
if
(
police4Spawned
==
3
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police4Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police4Veh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police4Veh3
)
;
police4Spawned
-=
3
;
}
}
DWORD pcj
=
GAMEPLAY
::
GET_HASH_KEY
(
"pcj"
)
;
// PC
int
pcjSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
140.914
,
-
744.040
,
32.779
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
pcjSpawnDistance

100
&&
pcjVehDistance
>
100
)
{
if
(
pcjSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
pcjVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
pcjVeh2
)
;
pcjSpawned
-=
2
;
}
}
DWORD frogger
=
GAMEPLAY
::
GET_HASH_KEY
(
"frogger"
)
;
// Frogger
int
froggerSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
138.607
,
-
750.402
,
262.590
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
froggerSpawnDistance

100
&&
froggerVehDistance
>
100
)
{
if
(
froggerSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
froggerVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
froggerVeh2
)
;
froggerSpawned
-=
2
;
}
}
}




ScriptHookV библиотеки для гта 5. Что не так? Машины не спавнятся

Dark_Knight
29.12.2015, 23:56
А где код иньекции?

mac
30.12.2015, 00:24
А где код иньекции?


Не в этом суть, без нее работало... а потом я какую-то херню поменял, размер файла уменьшился с 107кб до 104кб и нихера не работает

Dark_Knight
30.12.2015, 00:32
Ну ищи что менял

By_Surse
30.12.2015, 09:16
Как в SF плагине сделать задержку?

Woofing Giraffe
30.12.2015, 16:28
Как в SF плагине сделать задержку?


Таймером

Gabriel__
30.12.2015, 16:35
Как в SF плагине сделать задержку?


Должно заработать

#include "windows.h"

Sleep(кол-во миллесекунд);

Woofing Giraffe
30.12.2015, 18:21
Должно заработать
#include "windows.h"

Sleep(кол-во миллесекунд);


Игру будет стопить. Либо таймером, либо в новом потоке

mac
30.12.2015, 19:52
C++:






void
lspd1cars
(
)
{
Vehicle police3Veh1
,
police3Veh2
,
police3Veh3
,
police3Veh4
,
police3Veh5
,
// Машины
policebVeh1
,
policebVeh2
,
policebVeh3
,
policeVeh1
,
policeVeh2
,
policeVeh3
,
police2Veh1
,
police2Veh2
,
polmavVeh1
,
polmavVeh2
,
policetVeh1
,
policetVeh2
;
int
police3Spawned
=
0
,
// Количество заспавненных машин
policebSpawned
=
0
,
policeSpawned
=
0
,
police2Spawned
=
0
,
polmavSpawned
=
0
,
policetSpawned
=
0
;
int
police3SpawnDistance
=
0
,
// Дальность спауна от игрока
policebSpawnDistance
=
0
,
policeSpawnDistance
=
0
,
police2SpawnDistance
=
0
,
polmavSpawnDistance
=
0
,
policetSpawnDistance
=
0
;
Ped playerPed
=
PLAYER
::
PLAYER_PED_ID
(
)
;
Vehicle veh
=
PED
::
GET_VEHICLE_PED_IS_USING
(
playerPed
)
;
Vector3 position
=
ENTITY
::
GET_ENTITY_COORDS
(
playerPed
,
1
)
;
DWORD police3
=
GAMEPLAY
::
GET_HASH_KEY
(
"police3"
)
;
// ПД машина
police3SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
408.203
,
-
988.917
,
29.021
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
police3SpawnDistance

100
&&
police3VehDistance
>
100
)
{
if
(
police3Spawned
==
5
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh3
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh4
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police3Veh5
)
;
police3Spawned
-=
5
;
}
}
DWORD policeb
=
GAMEPLAY
::
GET_HASH_KEY
(
"policeb"
)
;
// Мотоцикл
policebSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
409.370
,
-
1004.351
,
28.742
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policebSpawnDistance

100
&&
policebVehDistance
>
100
)
{
if
(
policebSpawned
==
3
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policebVeh3
)
;
policebSpawned
-=
3
;
}
}
DWORD police
=
GAMEPLAY
::
GET_HASH_KEY
(
"police"
)
;
// Stainer
policeSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
431.053
,
-
1026.89
,
28.518
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policeSpawnDistance

100
&&
policeVehDistance
>
100
)
{
if
(
policeSpawned
==
3
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh2
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policeVeh3
)
;
policeSpawned
-=
3
;
}
}
DWORD police2
=
GAMEPLAY
::
GET_HASH_KEY
(
"police2"
)
;
// Buffalo
police2SpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
438.583
,
-
1026.324
,
28.391
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
police2SpawnDistance

100
&&
police2VehDistance
>
100
)
{
if
(
police2Spawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police2Veh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
police2Veh2
)
;
police2Spawned
-=
2
;
}
}
DWORD polmav
=
GAMEPLAY
::
GET_HASH_KEY
(
"polmav"
)
;
// Вертолет
polmavSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
450.454
,
-
981.296
,
44.078
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
polmavSpawnDistance

100
&&
polmavVehDistance
>
100
)
{
if
(
polmavSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
polmavVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
polmavVeh2
)
;
polmavSpawned
-=
2
;
}
}
DWORD policet
=
GAMEPLAY
::
GET_HASH_KEY
(
"policet"
)
;
// Автозак
policetSpawnDistance
=
GAMEPLAY
::
GET_DISTANCE_BETWEEN_COORDS
(
462.846
,
-
1019.376
,
28.076
,
position
.
x
,
position
.
y
,
position
.
z
,
0
)
;
if
(
policetSpawnDistance

100
&&
policetVehDistance
>
100
)
{
if
(
policetSpawned
==
2
)
{
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policetVeh1
)
;
ENTITY
::
SET_VEHICLE_AS_NO_LONGER_NEEDED
(
&
policetVeh2
)
;
policetSpawned
-=
2
;
}
}
}




Маверики и грузовики (которые по 2) спавнятся отлично, остальные не останавливаются и спавнятся в большом количестве (25-30 машин), что не так?

Gabriel__
31.12.2015, 11:57
Почему когда запускаю самп с сф плагином воспроизводится музыка из клуба джиззи. Исходник брал из вики (самый первый)

Код:






#include
#include
#include
#include

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

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);
};

void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr)
return;
if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
GAME->GetAudio()->PlayBeatTrack(2);

if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded )" );
SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);
init = true;
}
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
switch (dwReasonForCall)
{
case DLL_PROCESS_ATTACH:
SF->initPlugin(mainloop, hModule);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

Dark_Knight
31.12.2015, 12:11
Код:






GAME->GetAudio()->PlayBeatTrack(2);




И для СФ АПИ есть отдельная тема.

Gabriel__
03.01.2016, 17:03
Почему во всех библиотеках функций c++. (заголовочных файлах) содержимое оформляется по такому шаблону ?

Код:






#ifndef _fileName_H_
#define _fileName_H_
... //функции,
... //функции,
... //функции
#endif;




Зачем нужны эти дефайны и т.п. Почему бы просто не засунуть все функции в файл ???

Stas07
06.01.2016, 10:19
Скиньте, пожалуйста, урок по получению оффсетов для любой игры)

find out what writes to this address, в Cheat engine не даёт результатов.

0pc0d3R
06.01.2016, 13:45
Скиньте, пожалуйста, урок по получению оффсетов для любой игры)
find out what writes to this address, в Cheat engine не даёт результатов.


Тебе указатель нужно просто найти?

0pc0d3R
06.01.2016, 13:53
нужен аналог этого опкода на c++ 04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0



C++:






SF
->
getCLEO
(
)
->
callOpcode
(
"04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0"
)
;
float
stored
[
3
]
;
stored
[
0
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
15
)
;
// x
stored
[
1
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
16
)
;
// y
stored
[
2
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
17
)
;
// z




А что тебе мешает вызвать его клео обработчиком?

Stas07
06.01.2016, 17:24
Тебе указатель нужно просто найти?


Нет, сам адрес я нахожу, но в других играх они же плавают, там определённый оффсет от адреса игры. Так вот, способ есть через ЧИ, но он нехера не работает. Скорее всего защита игры. Так вооот... Меня интересуют другие способы и обходы защиты. Мне конечно наврятли кто поможет, и навретли тут страдал кто такой херней. Но если знаете, то буду благодарен.

SR_team
06.01.2016, 17:44
Нет, сам адрес я нахожу, но в других играх они же плавают, там определённый оффсет от адреса игры. Так вот, способ есть через ЧИ, но он нехера не работает. Скорее всего защита игры. Так вооот... Меня интересуют другие способы и обходы защиты. Мне конечно наврятли кто поможет, и навретли тут страдал кто такой херней. Но если знаете, то буду благодарен.


OllyDbg и дебажить

SR_team
06.01.2016, 17:46
C++:






SF
->
getCLEO
(
)
->
callOpcode
(
"04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0"
)
;
float
stored
[
3
]
;
stored
[
0
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
15
)
;
// x
stored
[
1
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
16
)
;
// y
stored
[
2
]
=
SF
->
getCLEO
(
)
->
GetLocalVar
(
17
)
;
// z




А что тебе мешает вызвать его клео обработчиком?


Порядок переменных точно такой? В любом случае работать будет раза в 3 медленее.

P.S. Есть функция от фипа для расчета такой херни для любых координат, но "-1.0" там считается не так как в опкоде

FYP
07.01.2016, 10:22
нужен аналог этого опкода на c++ 04C4: store_coords_to 15@ 16@ 17@ from_actor $PLAYER_ACTOR with_offset 3.0 3.0 -1.0



C++:






void
store_coords_with_offset
(
float
point
[
3
]
,
float
radian
,
float
x_offset
,
float
y_offset
,
float
z_offset
,
float
pos
[
3
]
)
{
float
sinx
,
cosx
,
siny
,
cosy
;
float
point_
[
3
]
;
vect3_copy
(
point
,
point_
)
;
sinx
=
sinf
(
radian
)
*
x_offset
;
cosx
=
cosf
(
radian
)
*
x_offset
;
point_
[
0
]
+=
cosx
;
point_
[
1
]
+=
sinx
;
siny
=
sinf
(
-
radian
)
*
y_offset
;
cosy
=
cosf
(
-
radian
)
*
y_offset
;
point_
[
0
]
+=
siny
;
point_
[
1
]
+=
cosy
;
point_
[
2
]
+=
z_offset
;
vect3_copy
(
point_
,
pos
)
;
}






Нет, сам адрес я нахожу, но в других играх они же плавают, там определённый оффсет от адреса игры. Так вот, способ есть через ЧИ, но он нехера не работает. Скорее всего защита игры. Так вооот... Меня интересуют другие способы и обходы защиты. Мне конечно наврятли кто поможет, и навретли тут страдал кто такой херней. Но если знаете, то буду благодарен.


в CE есть автоматический поиск указателей, иногда спасает, когда ручной поиск не даёт результатов.

Gabriel__
07.01.2016, 16:11
Как форматировать строку в c++ аналог опкода 0AD3 в клео.

Dark_Knight
07.01.2016, 17:36
sprintf

Gabriel__
07.01.2016, 17:38
sprintf


А пример приводить кто будет. В уроке sf api в вики не понял.

CarLCas
07.01.2016, 18:02
А пример приводить кто будет. В уроке sf api в вики не понял.


sprintf(str, "string #%d %s", 1,"new");

str - символьная переменная (char) в которую будет производиться запись

"string #%d %s" - строка которая туда будет записываться с 2 параметрами int и string, которые идут после строки (это 1 и "new")

И вообще можно повежливее обращаться, к тем кто тебе помогает. Да и гуглом научиться пользоваться

Gabriel__
07.01.2016, 18:14
sprintf(str, "string #%d %s", 1,"new");
str - символьная переменная (char) в которую будет производиться запись
"string #%d %s" - строка которая туда будет записываться с 2 параметрами int и string, которые идут после строки (это 1 и "new")
И вообще можно повежливее обращаться, к тем кто тебе помогает. Да и гуглом научиться пользоваться


Ничо не понял

CarLCas
07.01.2016, 18:21
Ничо не понял


Ну тогда гугл, там найдешь описание и всё поймешь.

Выучи основы - это я тебе сразу ответил на сообщение в другой теме.

Woofing Giraffe
07.01.2016, 21:24
Код:






char stroka[128];
int apples = 10;
sprintf(stroka, "У меня %d яблок.", apples);

stroka - Строка в которую хочешь записать
У меня %d яблок - То, что ты записываешь в эту строку
apples - Кол-во яблок.

Woofing Giraffe
07.01.2016, 21:30
Объясните как regex пользоваться. Или почему при sscanf буква "я" считается окончанием строки?

SR_team
08.01.2016, 05:17
C++:






void
store_coords_with_offset
(
float
point
[
3
]
,
float
radian
,
float
x_offset
,
float
y_offset
,
float
z_offset
,
float
pos
[
3
]
)
{
float
sinx
,
cosx
,
siny
,
cosy
;
float
point_
[
3
]
;
vect3_copy
(
point
,
point_
)
;
sinx
=
sinf
(
radian
)
*
x_offset
;
cosx
=
cosf
(
radian
)
*
x_offset
;
point_
[
0
]
+=
cosx
;
point_
[
1
]
+=
sinx
;
siny
=
sinf
(
-
radian
)
*
y_offset
;
cosy
=
cosf
(
-
radian
)
*
y_offset
;
point_
[
0
]
+=
siny
;
point_
[
1
]
+=
cosy
;
point_
[
2
]
+=
z_offset
;
vect3_copy
(
point_
,
pos
)
;
}




в CE есть автоматический поиск указателей, иногда спасает, когда ручной поиск не даёт результатов.


В каком-то плане руками искать проще. Бывает в функции указатель из нескольких поебень в регистр складывается и хуярится несколько раз перед использованием

return
08.01.2016, 21:49
как проверить скин в стриме?

ну, чекнуть стрим, это понятно. Дальше что делать?

Dark_Knight
08.01.2016, 22:05
Фором. Пробегаешься по пулу игроков, получаешь структуру на игрока, получаешь с неё ид модели и сравниваешь.

return
08.01.2016, 23:21
Ну вот, как тут скин игрока проверить, так и не понял...

PHP:






char text
[
64
]
;
int i
;
int count
=
0
;
for
(
i
=
0
;
i

iIsListed
[
i
]
!=
1
)
continue
;
if
(
g_Players
-
>
pRemotePlayer
[
i
]
==
NULL
)
continue
;
if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
==
NULL
)
)
continue
;
color
=
samp_color_get
(
i
)
;
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
-
>
PrintShadow
(
500
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
count
++
;
}

Dark_Knight
08.01.2016, 23:35
Это соб?

return
08.01.2016, 23:48
да

nikita_cheater
09.01.2016, 02:34
Ну вот, как тут скин игрока проверить, так и не понял...

PHP:






char text
[
64
]
;
int i
;
int count
=
0
;
for
(
i
=
0
;
i

iIsListed
[
i
]
!=
1
)
continue
;
if
(
g_Players
-
>
pRemotePlayer
[
i
]
==
NULL
)
continue
;
if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
==
NULL
)
)
continue
;
color
=
samp_color_get
(
i
)
;
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
-
>
PrintShadow
(
500
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
count
++
;
}





g_Players->pRemotePlayer[ i ]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id;

return
09.01.2016, 04:22
g_Players->pRemotePlayer[ i ]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id;


что надо сделать что бы мониторил определённый скин?

CarLCas
09.01.2016, 07:39
что надо сделать что бы мониторил определённый скин?


Сделать проверку на ид скина игрока и ид скина который тебе нужен

return
09.01.2016, 17:50
Сделать проверку на ид скина игрока и ид скина который тебе нужен


можно пример?

CarLCas
09.01.2016, 19:04
можно пример?


int count;

//for...

if (g_Players->pRemotePlayer[ i ]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id==1)//если скин равен CJ

count++;

return
09.01.2016, 19:10
int count;
//for...
if (g_Players->pRemotePlayer[ i ]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id==1)//если скин равен CJ
count++;


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

PHP:






if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
-
>
pGTA_Ped
-
>
base
.
model_alt_id
==
102
)
)
continue
;

CarLCas
09.01.2016, 19:47
Почему и спросил, я так пытался сделать, но он выводит всех в стриме, мб я рукожоп.

PHP:






if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
==
NULL
||
g_Players
-
>
pRemotePlayer
[
i
]
-
>
pPlayerData
-
>
pSAMP_Actor
-
>
pGTA_Ped
-
>
base
.
model_alt_id
==
102
)
)
continue
;





Здесь он выводит всех кроме игроков со скином 102

return
09.01.2016, 20:03
Здесь он выводит всех кроме игроков со скином 102


то есть сделать так != ?

CarLCas
09.01.2016, 20:13
то есть сделать так != ?


Ну если тебе нужно пропустить всех у кого скин не 102, то да

iAmerican
11.01.2016, 22:43
Покажите простенький пример регулярного выражения , только не с использованием boost.

Dark_Knight
11.01.2016, 23:07
Дай пример строки для которой нужно сделать регулярку.

return
11.01.2016, 23:26
ник, id, цвет - получает.

но он флудит каждую секунду на игроков которые не юзают дамагер.

что не так? подскажите, первый раз такую штуку делаю.

PHP:






case
ID_BULLET_SYNC
:
{
char buf
[
64
]
;
BitStream
bsData
(
rpcParams
-
>
input
,
(
rpcParams
-
>
numberOfBitsOfData
/
8
)
+
1
,
false
)
;
uint8_t byteType
=
1
;
uint16_t sTargetID
;
float fCenter
[
3
]
=
{
0
,
0
,
0.5
}
;
bsData
.
Read
(
fCenter
)
;
bsData
.
Read
(
sTargetID
)
;
bsData
.
Read
(
byteType
)
;
sprintf
(
buf
,
" %s[%d]: Возможно Damager"
,
getPlayerName
(
sTargetID
)
,
getGTAPedFromSAMPPlayerID
(
sTargetID
)
)
;
addToChatWindow
(
buf
,
samp_color_get
(
sTargetID
)
)
;
break
;
}

Dark_Knight
11.01.2016, 23:40
Ну смотри. Ты же получаешь BULLET_SYNC от всех игроков в стриме, которые стреляют. Потому и флудит.

return
12.01.2016, 00:20
он всё время флудит на id 0. Его даже в стриме нет.

что тут надо сделать, что бы довести до полной работоспособности?

Dark_Knight
12.01.2016, 00:24
Правильно данные читать.

return
12.01.2016, 00:37
Что я делаю неправильно?

Dark_Knight
12.01.2016, 01:05
Что я делаю неправильно?


Последовательность.

Код:






struct stBulletData
{
uint8_t byteType;
uint16_t sTargetID;
float fOrigin[3];
float fTarget[3];
float fCenter[3];
uint8_t byteWeaponID;
};

return
12.01.2016, 02:47
поменял последовательность, сделал как в структуре. Ничего не изменилось.

bsData.Read(byteType);

bsData.Read(sTargetID);

bsData.Read(fCenter);

CarLCas
12.01.2016, 06:16
поменял последовательность, сделал как в структуре. Ничего не изменилось.

bsData.Read(byteType);
bsData.Read(sTargetID);
bsData.Read(fCenter);


Дело в том, что входящий BULLET_SYNC имеет измененую структуру

Dark_Knight
12.01.2016, 12:31
Дело в том, что входящий BULLET_SYNC имеет измененую структуру


Слегка. Там нужно читать первые 2 байта читать ид игрока. Дальше уже все тоже самое.

FYP
12.01.2016, 14:02
BitStream bsData(rpcParams->input, (rpcParams->numberOfBitsOfData / 8) + 1, false);


хук вообще не в том месте

iAmerican
12.01.2016, 14:54
Дай пример строки для которой нужно сделать регулярку.





Дай пример строки для которой нужно сделать регулярку.



example@[0]pochta.com

Надо узнавать число в [ ]

Само выражение: [^\d]\[(\d+)]

Dark_Knight
12.01.2016, 14:59
Код:






^example@(\d+)pochta\.com$

iAmerican
12.01.2016, 15:06
Мне н



Код:






^example@(\d+)pochta\.com$





Мне нужен именно как использовать в с++ regex_match.

Вот например как я делал в ahk :

Тут просто в одну строчку

RegExMatch(fullEmail, "[^\d]\[(\d+)]",numberMail)

fullEmail - это исходная строка, которую написал выше

numbermail туда шло число.

Такое же хочется в плюсах увидать

Dark_Knight
12.01.2016, 15:21
Код:






#include
#include

//some code
std::string string = "example@[0]pochta.com";
std::smatchs results;
if (std::regex_match(mess, results, std::regex(R"(^example@\[(\d+)\]pochta\.com$)")))
{
WORD number = std::itoa(results[1].str());
}
[code]

Gabriel__
14.01.2016, 19:59
Как округлить число ?

FYP
14.01.2016, 22:15
round, ceil, floor

CodeDog
17.01.2016, 21:34
Здравствуйте, подскажете пожалуйста offset на FUNC_ADDRECALL на 0.3.7

PoccoJI
18.01.2016, 13:14
допустим я отправляю SendFakeActorDrivingData изменив свои координаты пытаюсь сделать фэйк отправку координат из машины ну другим игрокам видно лишь то что машина дергается объясните нубу как сделать нормальную отправку фэйк координат


через хук

PoccoJI
18.01.2016, 18:02
можно пример


Вот пример https://www.blast.hk/wiki/tutorials:api_lesson_raknet

ищи пример перехвата отправляемого пакета ID_PLAYER_SYNC

в собе вроде надо искать bool OnSendPacket

return
23.01.2016, 17:01
нужна функция sprintf_s

какой лучше инклюд использовать stdio.h или iostream.h ?

разница в этом есть?

Dark_Knight
23.01.2016, 18:29

FordeD
24.01.2016, 14:59
Мелочный вопрос но все же.

Реально ли через SF API написать худ? :scratch:

FordeD
24.01.2016, 15:10
Мелочный вопрос но все же.
Реально ли через SF API написать худ? :scratch:


И еще вопросец, Как сделать 3D текст закрепленный на Актёре?

Dark_Knight
24.01.2016, 16:14
И еще вопросец, Как сделать 3D текст закрепленный на Актёре?


Смотря какой. Если средствами сампа, то юзай это.

Код:






float fPosition[3] = { 0.0f, 0.0f, 0.0f };
USHORT playerId = 5;
SF->getSAMP()->getInfo()->pPools->pText3D->Create3DText(100, "3D text", D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 00), fPosition, 100.0f, true, playerId, -1);




Если средствами DirectX 9.0(именно он используется в ГТА), то тут все намного сложнее.



Мелочный вопрос но все же.
Реально ли через SF API написать худ? :scratch:


Конечно реально. Я вот свой же написал и он получше всяких гавно цхудов. Правда сложноват в настройке.

FordeD
24.01.2016, 16:37
Смотря какой. Если средствами сампа, то юзай это.

Код:






float fPosition[3] = { 0.0f, 0.0f, 0.0f };
USHORT playerId = 5;
SF->getSAMP()->getInfo()->pPools->pText3D->Create3DText(100, "3D text", D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 00), fPosition, 100.0f, true, playerId, -1);




Если средствами DirectX 9.0(именно он используется в ГТА), то тут все намного сложнее.

Конечно реально. Я вот свой же написал и он получше всяких гавно цхудов. Правда сложноват в настройке.



По поводу прикрепленного к актеру 3D текста

этот текст будет чисто прикреплен на игрока с 5-м ID? или же он будет у твоего актера?

Dark_Knight
24.01.2016, 16:43
По поводу прикрепленного к актеру 3D текста
этот текст будет чисто прикреплен на игрока с 5-м ID? или же он будет у твоего актера?


названия переменных дадут тебе подсказки.

FordeD
24.01.2016, 23:06
Все же не дошло как его получить ...

Как получить ID твоего игрока, игрока по нику и по таргету.

itsLegend
24.01.2016, 23:16
3D текст можно прилепить только к стороннему игроку.

FordeD
24.01.2016, 23:37
3D текст можно прилепить только к стороннему игроку.


Бедовая Беда, а можно ведь просто постоянное обновление координат твоего актера и по ним вырисовывать текст?

FordeD
26.01.2016, 16:38
Если средствами DirectX 9.0(именно он используется в ГТА), то тут все намного сложнее.



Есть темки с уроками 3D текстов через DirectX или чем-то подобным на 3D надписи ?

Dark_Knight
26.01.2016, 17:26
Есть темки с уроками 3D текстов через DirectX или чем-то подобным на 3D надписи ?


В гугле поищи.

Gabriel__
29.01.2016, 20:56
Ребят! Интересный вопрос! Как сделать функцию которая в аргументе будет принимать ссылку на переменную. И какой тип данных может хранить адреса памяти в hex.

itsLegend
29.01.2016, 22:19
Ребят! Интересный вопрос! Как сделать функцию которая в аргументе будет принимать ссылку на переменную. И какой тип данных может хранить адреса памяти в hex.


void anyFuncName(int& iVar);

Если именно в hex, то string. В числовом варианте - DWORD(при форматировании можно использовать %p).

Bane
31.01.2016, 00:44
Пытаюсь сделать бота оружейника. Подскажите, как определить, что взял заготовку и что несёшь ящик? Анимация не меняется

Gabriel__
31.01.2016, 10:59
в собе в исходнике от FYP а в invulnerable нет иммунитета к холодному оружию как сделать


Урон от игроков приходит через RPC который отвечает за удары. givetakedamage вроде. Вот и сделай ноп.

Gabriel__
31.01.2016, 11:15
void anyFuncName(int& iVar);
Если именно в hex, то string. В числовом варианте - DWORD(при форматировании можно использовать %p).


Сдесь ты показал как передавать адрес памяти в функцию. Но не показал как её принимать.

Мне нужна такая функция которая принимает ссылку на переменную.

Например функция которая сохраняет координаты игрока XYZ.

Чтобы её реализовать нам нужно получать 3 параметра но мы не можем сделать так.

Код:






X, Y, Z = StorePlayerPos();




Нам нужно передавать в функцию ссылки на переменные. И функция через указатель (*) запишет координаты по этим адресам.

Код:






float player_x;
float player_y;
float player_z;
StorePlayerPos(&player_x, &player_y, &player_z);




И нужно чтобы при вводе функции высвечивалась подсказка и показывало что там нужно указывать ссылку на переменную. Это как sscanf(); там нужна ссылка на переменную.

Dark_Knight
31.01.2016, 13:22
void anyfunc(CVector* iter)

anyfunc(&jopa)

san0
03.02.2016, 18:19
вот тут я self->fTargetRotation = rot; разворачиваю своего игрока в сторону ротации другого игрока мне нужно не разворачивать игрока а моментально выставить угол по z


угол поворота записан в радианах по адресу CPed +0x558. Конвертация в радианы есть в классе CVector

C&J
06.02.2016, 12:25
Здравствуйте.

1.Ваш вопрос :Как можно включить и выключить Ноп 'SendClientMessage',через Asi?

И как сделать запрос,о открытия северного диалога и нажатие на определённую кнопку?

И если вас не затруднит,скиньте пример код.

Gabriel__
09.02.2016, 17:41
Помогите! Как перезаписать/записать определенные байты в память (дамп).

Этот как в отладчике видим такое.

http://s009.radikal.ru/i309/1602/47/fb54ae11566a.jpg

Короче мне нужно заменить эти байты (выделено красным) в памяти на свои. Как это сделать ? Помогите!

PoccoJI
09.02.2016, 20:22
Помогите! Как перезаписать/записать определенные байты в память (дамп).
Этот как в отладчике видим такое.

http://s009.radikal.ru/i309/1602/47/fb54ae11566a.jpg

Короче мне нужно заменить эти байты (выделено красным) в памяти на свои. Как это сделать ? Помогите!



Код:






*(byte*)0x8BC010 = 0x?




как-то так

itsLegend
09.02.2016, 21:38
memcpy((void*)(0x008BC010), (char*)("\x2B\x01\x00\x00\x2B\x01"), 6);

Gabriel__
10.02.2016, 19:11
memcpy((void*)(0x008BC010), (char*)("\x2B\x01\x00\x00\x2B\x01"), 6);


Пробовал и то и это игра вылетает. Хотел заменить ассемблерные инструкции на свои. Типо функция которая отнимает патроны заменить на NOP это байт 0x90. Может какие то memory protect поставить ? Вообщем это уже относится к геймхакингу.

0pc0d3R
10.02.2016, 19:43
вот тут я self->fTargetRotation = rot; разворачиваю своего игрока в сторону ротации другого игрока мне нужно не разворачивать игрока а моментально выставить угол по z


если тебя не смутит клео обработчик SF->getCLEO()->callOpcode("0173: set_actor $PLAYER_ACTOR Z_angle_to %f", zangle);

Woofing Giraffe
10.02.2016, 20:56
Кто знает как работают сайты которые предоставляют виртуальный номер? Можно ли сделать подобие но только для себя?

Dark_Knight
10.02.2016, 20:59
Какой виртуальный номер. Подробнее опиши

FYP
10.02.2016, 22:34
Пробовал и то и это игра вылетает. Хотел заменить ассемблерные инструкции на свои. Типо функция которая отнимает патроны заменить на NOP это байт 0x90. Может какие то memory protect поставить ? Вообщем это уже относится к геймхакингу.


ставь PAGE_EXECUTE_READWRITE с помощью VirtualProtect перед записью.

Gabriel__
12.02.2016, 21:25
Что происходит с переменными (объявленые статически) внутри функции при её завершении ? Они удаляются или остаются висеть в памяти после выхода из функции ?

itsLegend
12.02.2016, 21:40
если static, то остаются в памяти до завершения работы программы.

C&J
14.02.2016, 19:08
Здравствуйте,если есть возможность,пожалуйста продемонстрируйте.Как можно включить и выключить Nop "SendСlientMessage"?

Gabriel__
14.02.2016, 19:26
Здравствуйте,если есть возможность,пожалуйста продемонстрируйте.Как можно включить и выключить Nop "SendСlientMessage"?



Код:






int old = *(int*)0xC050; // Читаем что до этого
*(int*)0xC050 = 50064; // Включить
*(int*)0xC050 = old; // Выключить

Gabriel__
14.02.2016, 19:30
А как создаются такие длинные штуки (метод в методе): SF->GetChat->ShowMessage("Hello FYP"); и как это называется ?

C&J
14.02.2016, 22:10
Код:






int old = *(int*)0xC050; // Читаем что до этого
*(int*)0xC050 = 50064; // Включить
*(int*)0xC050 = old; // Выключить





Скажи пожалуйста поставил данную функцию.Начало крашить,убрав *(int*) перестало.

Скрытое содержимое доступно для зарегистрированных пользователей!


Скрытое содержимое доступно для зарегистрированных пользователей!

Woofing Giraffe
14.02.2016, 23:48
Бред. Установи хук и возвращай false

itsLegend
15.02.2016, 00:08
Скажи пожалуйста поставил данную функцию.Начало крашить,убрав *(int*) перестало.


Этот адрес относителен адресу samp.dll.

Нужно сложить адрес samp.dll и нопа.

AWRage
15.02.2016, 00:11
Есть эквивалент опкоду 0AA5: call .. num_params .. pop ?

И как получить server ptr ? Структуру саму нашёл, а как её правильно редактировать?

itsLegend
15.02.2016, 00:14
Есть эквивалент опкоду 0AA5: call .. num_params .. pop ?
И как получить server ptr ? Структуру саму нашёл, а как её правильно редактировать?


Либо __asm вставкой, либо присвоить адресу функцию.

Наверно, сделать запись по адресу.

C&J
15.02.2016, 11:59
Этот адрес относителен адресу samp.dll.
Нужно сложить адрес samp.dll и нопа.


я тебя правильно понял?

[HIDE-POSTS]

void mainThread(PVOID)

{

DWORD Adress_SampDLL = (DWORD)GetModuleHandle("samp.dll");

while (!SAMP->Initialize()) Sleep(500);

Sleep(1000);

*(int *)(Adress_SampDLL + 0xC050) = 50064;

}

[/HIDE-POSTS]

P.s Данный код крашит,из-за чего может быть?

Woofing Giraffe
15.02.2016, 13:26
я тебя правильно понял?
** Скрытый контент не может быть процитирован. **
P.s Данный код крашит,из-за чего может быть?


Вообще не понимаю зачем тебе новый поток и зачем эта строка







C++:






while
(
!
SAMP
->
Initialize
(
)
)
Sleep
(
500
)
;




А вообще попробуй

C++:






const
int
SAdress
=
SF
->
getSAMP
(
)
->
getSAMPAddr
(
)
,
Offset
=
0xC050
;
int
FullAdress
=
SAdress
+
Offset
,
NewValue
=
50064
;
WriteProcessMemory
(
GetCurrentProcess
(
)
,
(
LPVOID
)
FullAdress
,
LPVOID
(
&
NewValue
)
,
2
,
0
)
;

C&J
15.02.2016, 20:26
Спасибо,а не можете ли вы сказать,что надо подключать ,чтобы использовать хуки на серверные диалоги?(Типа отправки на открытия диалога,нажатия пункта,нажатия кнопки и.т.д)

Woofing Giraffe
16.02.2016, 00:37
Как я знаю, вызвать серверный диалог не имитируя действия на сервере не возможно. Всё остальное это вроде один пакет который можно отправить

AWRage
16.02.2016, 01:03
Знает кто как создать текстдрав?

CarLCas
16.02.2016, 05:58
Знает кто как создать текстдрав?


https://www.blast.hk/threads/781/page-16#post-93482

C&J
16.02.2016, 13:12
Как я знаю, вызвать серверный диалог не имитируя действия на сервере не возможно. Всё остальное это вроде один пакет который можно отправить


То есть,вызвать его(Типа отправки фейк координат. Через команду и.т.д )? а имитировать нажатия нельзя?,то есть нажатие на определённый пункт диалога.

AWRage
16.02.2016, 17:27
https://www.blast.hk/threads/781/page-16#post-93482


Это немного не то.

Woofing Giraffe
17.02.2016, 00:05
То есть,вызвать его(Типа отправки фейк координат. Через команду и.т.д )? а имитировать нажатия нельзя?,то есть нажатие на определённый пункт диалога.


Если ты его уже вызвал его через сервер, то имитировать нажитие и т.д. можно. На счёт вызова ты прав.

C&J
17.02.2016, 20:27
Если ты его уже вызвал его через сервер, то имитировать нажитие и т.д. можно. На счёт вызова ты прав.


Всё обыскал,не подскажешь,как имитировать нажатие? и как вызывать через команду?

0pc0d3R
17.02.2016, 20:40
А как создаются такие длинные штуки (метод в методе): SF->GetChat->ShowMessage("Hello FYP"); и как это называется ?


интерфейсы, ооп часть.

Woofing Giraffe
18.02.2016, 03:29
Всё обыскал,не подскажешь,как имитировать нажатие? и как вызывать через команду?


RPC_DialogResponse имитируй. На счёт второго хз что ты хочешь

C&J
21.02.2016, 19:14
Скажите пожалуйста.

1.Как проверить на то что актер заспавнился?

0pc0d3R
21.02.2016, 20:06
Скажите пожалуйста.
1.Как проверить на то что актер заспавнился?



C++:






if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
ид игрока
]
->
pPlayerData
->
bytePlayerState
==
PLAYER_STATE_SPAWNED
)

C&J
21.02.2016, 21:47
C++:






if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
ид игрока
]
->
pPlayerData
->
bytePlayerState
==
PLAYER_STATE_SPAWNED
)





А как ещё можно проверить ,без использования SF?

0pc0d3R
21.02.2016, 21:48
А как ещё можно проверить ,без использования SF?


в чём делаешь то? соб чтоли

C&J
21.02.2016, 22:44
в чём делаешь то? соб чтоли


Да нет,мне проста надо ,чтобы при входе в игру резко вводилась команда и выбирался пункт диалога,это всё сделано,только проблема в том что скрипт автоматизирован и всё это выполняется при авторизации\подключении.

P.s использую "ASI plugin"

0pc0d3R
21.02.2016, 22:48
Да нет,мне проста надо ,чтобы при входе в игру резко вводилась команда и выбирался пункт диалога,это всё сделано,только проблема в том что скрипт автоматизирован и всё это выполняется при авторизации\подключении.
P.s использую "ASI plugin"


тогда проверь через память

SR_team
22.02.2016, 00:19
использую "ASI plugin"


Вот вы блядь странные люди, вам дали SFAPI для простого написания плагинов, а вы все равно в ASI лезите и ебетесь потом с тем, что в SFAPI одной строкой реализуется. Нахуя?

Nark228
22.02.2016, 11:17
Кто знает как исправить ошибку ?

https://forum.antichat.xyz/attachments/27102390/

SR_team
22.02.2016, 11:39
Кто знает как исправить ошибку ?


То чувство, когда писал код на C#, а думал, что пишешь на C/C++

return
25.02.2016, 02:52
Вот сделал вывод игроков с определённым скином.

Как посчитать количество выведенных игроков?

C++:






for
(
int
i
=
0
;
i

iIsListed
[
i
]
!=
1
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
i
]
==
NULL
)
continue
;
if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
==
NULL
||
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
!=
0
)
{
switch
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
)
{
case
102
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
103
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
104
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
}
count
++
;
}
}

CarLCas
25.02.2016, 05:57
Вот сделал вывод игроков с определённым скином.
Как посчитать количество выведенных игроков?

C++:






for
(
int
i
=
0
;
i

iIsListed
[
i
]
!=
1
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
i
]
==
NULL
)
continue
;
if
(
vect3_near_zero
(
g_stStreamedOutInfo
.
fPlayerPos
[
i
]
)
&&
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
==
NULL
||
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
)
continue
;
if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
!=
0
)
{
switch
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
)
{
case
102
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
103
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
104
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
}
count
++
;
}
}





Вот это

C++:






switch
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
)
{
case
102
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
103
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
case
104
:
sprintf
(
text
,
"%s[%d]"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
break
;
}
count
++
;




Я бы заменил на:

C++:






if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id
>
101
&&
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
base
.
model_alt_id

PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;
count
++
;
}




И после цикла:

C++:






sprintf
(
text
,
"Кол-во: %d"
,
counti
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;

return
25.02.2016, 17:50
Не понял, что за переменная counti, что с ней делать?



И после цикла:

C++:






sprintf
(
text
,
"Кол-во: %d"
,
counti
)
;
pD3DFont
->
PrintShadow
(
1
,
pPresentParam
.
BackBufferHeight
/
2
+
count
*
20
,
color
,
text
)
;