Просмотр полной версии : С/С++ Вопрос - Ответ
самый простой вариант
Код:
void addCmd ( char *name, int funci )
{
if ( name == NULL || funci== NULL)
return;
/* if ( strlen(name) > 30 )
{
Log( "Error: command name '%s' was too long.", name );
return;
}
//Проверка на длину команды, реализуй..
*/
uint32_t data = g_dwSAMP_Addr + 0x212A28;
uint32_t func = g_dwSAMP_Addr + 0x7A8C0;
__asm mov eax, data
__asm mov ecx, [eax]
__asm push funci
__asm push name
__asm call func
}
Вот так пробовал??
Не получается ни в какую, прошу помощи, крч.
Не получается ни в какую, прошу помощи, крч.
сам пользуюсь таким кодом все ок
сам пользуюсь таким кодом все ок
аналогично
William_Young1
07.02.2014, 15:23
Код:
case ID_CHEAT_CFLY:
{
cheat_state->_generic.coord_fly ^= 1;
if(cheat_state->_generic.coord_fly == 0) {
float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ};
pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
cheat_teleport(pos,0);
}
GTAfunc_LockActor(cheat_state->_generic.coord_fly);
break;
}
Вот код из dumb_menu.cpp
Как это реализовать через AntTweakBar?
MasterCard
07.02.2014, 22:35
Код:
case ID_CHEAT_CFLY:
{
cheat_state->_generic.coord_fly ^= 1;
if(cheat_state->_generic.coord_fly == 0) {
float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ};
pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
cheat_teleport(pos,0);
}
GTAfunc_LockActor(cheat_state->_generic.coord_fly);
break;
}
Вот код из dumb_menu.cpp
Как это реализовать через AntTweakBar?
Хватит простого включения функции в АТБ без этого
William_Young1
08.02.2014, 14:56
Функция активируется, но работает очень криво..
William_Young1 (http://blasthack.net/members/william_young1.5623/),думаю ты хотел узнать как вставить эту функцию в ATB
В начало после всех TwBar
Код:
void TW_CALL function(void *)
{
cheat_state->_generic.coord_fly ^= 1;
if(cheat_state->_generic.coord_fly == 0)
{
float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
cheat_teleport(pos,0);
}
GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}
В void initializeBarsMenu()
[
Код:
TwAddButton(twBar_NewCheats,"001", function, NULL, "label='My Function'");
// параметры:
// twBar_NewCheats - бар(окно), в котором будет кнопка
// 001 - напиши что угодно, главное чтобы не совпадало с другими элементами бара (кнопки и т.д)
// function - наша TW_CALL функция
// null - параметр client data. Обычно используется для получения ида нажатого элемента бара. Нам это не нужно, так что пусть будет нулем
// "label='My Function'" - параметры элемента бара. Label - название кнопки, если его не указать то кнопка будет называться ]
// "001" - вторым параметром
William_Young1
09.02.2014, 13:59
William_Young1 (http://blasthack.net/members/william_young1.5623/),думаю ты хотел узнать как вставить эту функцию в ATB
В начало после всех TwBar
Код:
void TW_CALL function(void *)
{
cheat_state->_generic.coord_fly ^= 1;
if(cheat_state->_generic.coord_fly == 0)
{
float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
cheat_teleport(pos,0);
}
GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}
В void initializeBarsMenu()
[
Код:
TwAddButton(twBar_NewCheats,"001", function, NULL, "label='My Function'");[/I][/FONT]
// параметры:
// twBar_NewCheats - бар(окно), в котором будет кнопка
// 001 - напиши что угодно, главное чтобы не совпадало с другими элементами бара (кнопки и т.д)
// function - наша TW_CALL функция
// null - параметр client data. Обычно используется для получения ида нажатого элемента бара. Нам это не нужно, так что пусть будет нулем
// "label='My Function'" - параметры элемента бара. Label - название кнопки, если его не указать то кнопка будет называться ]
[FONT=Consolas][I]// "001" - вторым параметром
Есть написанный коорд флай
Его код лежит в cheat_generic.cpp
Функция работает, но очень криво без
Код:
void TW_CALL function(void *)
{
cheat_state->_generic.coord_fly ^= 1;
if(cheat_state->_generic.coord_fly == 0)
{
float pos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ;
pos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( pos[0], pos[1] )+1;
cheat_teleport(pos,0);
}
GTAfunc_LockActor(cheat_state->_generic.coord_fly);
}
Через dumb_menu все работает, я знаю где там этот код объявить
Недавно перешел на ATB и столкнулся с этой проблемой, незнаю куда этот код засунуть..
Я сохранил оригинальную функцию, так что не удивительно что не работает. Твоя функция циклическая, поэтому вставь ее в подходящее место и сделай переключатель cheat_state->_generic.coord_fly 1 0
Господа, возникла небольшая проблема: написал свою .dll'ку, все дела. Если подгружаю её инжектором - работает на ура, но если переименовать её в .asi и кинуть в папку с игрой, то крашит на моментах с ASM кодом. Тоесть на моментах с добавлением строки в чат и добавлением команды.
---
Разобрался сам
William_Young1
10.02.2014, 08:15
Спасибо ;D
By Vasiliy, вначале поищи в интернете уроки по с++! Если покажется сложно то лучше поизучай более простые языки программирования! Потом, когда всё взвесишь , скачай исходрик самого собейта и изучай! Имеется множество монуалов по этому поводу!
Как раскомпилировать собейт?
некак
MISTER_GONWIK
11.02.2014, 21:09
Если можно разкомпилировать файлы и библиотеки таких программы как adobe то и на собейт декомпиляторы найдутся.
исходник *** ты получишь из dll
William_Young1
13.02.2014, 15:11
Я попрасил бы без МАТА!!!
Ты ничего не попросил..
MihaFela
17.02.2014, 21:08
исходник *** ты получишь из dll
IDA Pro. Только полученный там исходник ему ничем не поможет.
MISTER_GONWIK
17.02.2014, 21:28
IDA Pro. Только полученный там исходник ему ничем не поможет.
:facepalm:
Dark_Knight
17.02.2014, 21:53
IDA Pro. Только полученный там исходник ему ничем не поможет.
Дизассемблированный код ты получишь, а не исходный.
MihaFela
18.02.2014, 07:55
Там можно псевдокод получить.
как сделать завершение звонка в скайп?знаю что вызов делается так skype.PlaceCall()
MasterCard
02.03.2014, 20:17
Вопрос: Как убрать баг с камерой в собейте FYP? 0.3z
Если я правильно тебя понял:
cheat_hookers.cpp: void cheat_hookers_installhooks ( void )
закомментить строки
HookInstall( HOOKPOS_PedCamLookDir1, (DWORD) HOOK_PedCamLookDir1, 5 );
HookInstall( HOOKPOS_PedCamLookDir2, (DWORD) HOOK_PedCamLookDir2, 6 );
HookInstallCall( CALL_PedCamUp, (DWORD) HOOK_PedCamUp );
MasterCard
29.03.2014, 12:53
в Чем я могу открыть .cs file??
Если скрипт не защищён - декомпилировать.
gwplayer
29.03.2014, 14:54
в Чем я могу открыть .cs file??
Если CLEO - SannyBuilder, либо VisualStudio, если это файл исходного кода на C#
Короче в универе недавно начал изучать С++, вроде всё просто, но успешно проспал лекции по массивам и работе со строковыми переменными, а нужно сделать 6 лабораторок. 4 уже сделал, нужно ещё 2. Помогите, кому не лень, буду премного благодарен.
1.
Написать программу, которая превращает масив таким образом, что сначала располагаются все элементы, которые отличаются от максимального не более чем на 20%, а потом все остальные.
2.
Сформировать массив, элементы которого вмещают в себе кол-во букв в словах предложения.
Вот начал делать первую, нашёл элемент с максимальным значением, осталось отсортировать только согласно условию.
Код:
[CODE]
#include
using namespace std;
#include
#include
void main(){
const int n = 6;
float x[n];
int i;
float max = x[0];
cout > x[i];
}
for (i = 0; i max)
max = x[i];
}
cout
Как сделать коллизию на скин в s0beit?
Допустим я ввел команду /s0beithelpm0d
после
addMessageToChatWindow( "[Меню помощи] " ( хочу чтобы эта надпись была оранжевой )
addMessageToChatWindow( "введите /s0beithelpm0d - чтобы посмотреть список команд" ( а эта надпись зеленой )
как это сделать?
:::::::::::::
Может можно сделать вот так addMessageToChatWindow( "[Меню помощи], RGB ( 255. 69. 0 ) )
Допустим я ввел команду /s0beithelpm0d
после
addMessageToChatWindow( "[Меню помощи] " ( хочу чтобы эта надпись была оранжевой )
addMessageToChatWindow( "введите /s0beithelpm0d - чтобы посмотреть список команд" ( а эта надпись зеленой )
как это сделать?
:::::::::::::
Может можно сделать вот так addMessageToChatWindow( "[Меню помощи], RGB ( 255. 69. 0 ) )
Код:
addMessageToChatWindow( "{FFA500}[Меню помощи] ");//оранжевый
addMessageToChatWindow( "{32CD32}введите /s0beithelpm0d - чтобы посмотреть список команд" );//зеленый
c:\users\artem\desktop\sob\src\main.h(73): fatal error C1083: Не удается открыть файл включение: d3dx9.h: No such file or directory
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Чё делать?
ЛОГ: Ошибка3error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall RakClient::SendFakeOnfootSyncData(float * const,float * const)" (?SendFakeOnfootSyncData@RakClient@@QAEXQAM0@Z) в функции "void __cdecl sampMainCheat(void)" (?sampMainCheat@@YAXXZ)C:\Users\Admin\Desktop\Sobe it\src\samp.objmod_sa
Помогите эта ошибка вылезает если я использую SendFakeOnfootSyncData
Как изменить цвет включенной функи
https://forum.antichat.xyz/attachments/27046309/
Код:
if (cheat_state->_generic.capt == 1)
{
say("/capture");
Sleep(1000);
say("/capture");
Sleep(1100);
{
return;
}
}
Функция хорошо работает, но сильно лагает.
Где ошибка?
юзай таймер;D
Да все работает, теперь терры тащу. А вот не подскажешь как изменить цвет включенной функи, а то зеленый надоел.
Да все работает, теперь терры тащу. А вот не подскажешь как изменить цвет включенной функи, а то зеленый надоел.
uint32_tcolor_enabled = D3DCOLOR_ARGB( 191,63, 255, 63 );
вот, это в proxyIDirect3DDevice9.cpp 63, 255, 63
Код:
void cmd_test( char *param )
{
cp:
int color1;
color1 = rand()%255;
vehicle_setColor0( vehicle_info_get(VEHICLE_SELF, 0), color1 );
Sleep(1000);
goto cp;
}
Почему краш?
Код:
void cmd_test( char *param )
{
cp:
int color1;
color1 = rand()%255;
vehicle_setColor0( vehicle_info_get(VEHICLE_SELF, 0), color1 );
Sleep(1000);
goto cp;
}
Почему краш?
sleep так надо использовать
Код:
void cheat_test()
{
int color1;
color1 = rand() % 255;
vehicle_setColor0(vehicle_info_get(VEHICLE_SELF, 0), color1);
Sleep(1000);
}
void cmd_test()
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)cheat_test, 0, 0, 0);
}
Как сканировать текст в диалоге например: Дом занят или Дом свободен
Расшифровывай по RPC диалога. В RakSAMP посмотри - изначально есть там
Вот это в samp.cpp в void HandleRPCPacketFunc( unsigned char byteRPCID, RPCParameters *rpcParams, void ( *functionPointer ) ( RPCParameters * ) )
{}
Код:
if ( byteRPCID == RPC_ScrShowDialog)
{
stSAMPDialog sampDialog;
bsData.Read(sampDialog.wDialogID);
bsData.Read(sampDialog.bDialogStyle);
bsData.Read(sampDialog.bTitleLength);
bsData.Read(sampDialog.szTitle, sampDialog.bTitleLength);
sampDialog.szTitle[sampDialog.bTitleLength] = 0;
bsData.Read(sampDialog.bButton1Len);
bsData.Read(sampDialog.szButton1, sampDialog.bButton1Len);
sampDialog.szButton1[sampDialog.bButton1Len] = 0;
bsData.Read(sampDialog.bButton2Len);
bsData.Read(sampDialog.szButton2, sampDialog.bButton2Len);
sampDialog.szButton2[sampDialog.bButton2Len] = 0;
stringCompressor->DecodeString(sampDialog.szInfo, 256, &bsData);
}
В samp.h добавь в любое место
Код:
struct stSAMPDialog
{
#pragma pack(1)
int iIsActive;
BYTE bDialogStyle;
WORD wDialogID;
BYTE bTitleLength;
char szTitle[257];
BYTE bButton1Len;
char szButton1[257];
BYTE bButton2Len;
char szButton2[257];
char szInfo[257];
};
Для пульсатора цвета лучше вставить функцию в static void cheat_main_actor ( double time_diff )
{}
Ошибка3error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall RakClient::SendFakeOnfootSyncData(float * const,float * const)" (?SendFakeOnfootSyncData@RakClient@@QAEXQAM0@Z) в функции "void __cdecl sampMainCheat(void)" (?sampMainCheat@@YAXXZ)C:\Users\Admin\Desktop\Sobe it\src\samp.objmod_sa
Ошибка4error LNK1120: неразрешенных внешних элементов: 1C:\Users\Admin\Desktop\Sobeit\bin\d3d9.dllmod_sa
Помогите
Помогите
забыл объявить функцию в rakclient.h, либо наоборот - там объявил, а функции нет
Код:
g_RakClient->RPC( ID_AIM_SYNC, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, 0 );
Отправляю пакет но эффекта не вижу и еще как получить ID игрока который под прицелом.
MasterCard
23.05.2014, 17:04
Код:
g_RakClient->RPC( ID_AIM_SYNC, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, 0 );
Отправляю пакет но эффекта не вижу и еще как получить ID игрока который под прицелом.
Ты полный код выложи как ты делал, от того что ты синхру отправляешь легче не станет!
Ты полный код выложи как ты делал, от того что ты синхру отправляешь легче не станет!
Код:
/NEWAIM
if (cheat_state->_generic.newaim == 1)
{
if (KEY_DOWN(VK_LBUTTON))
{
BitStream as;
as.Write(1);
{
g_RakClient->RPC( ID_AIM_SYNC, &as );
}
}
}
как сделать чтобы на всех игроков в радиусе аим действовал
ты хочешь их убивать?
Я хочу аим сделать на синхре
Код:
/NEWAIM
if (cheat_state->_generic.newaim == 1)
{
if (KEY_DOWN(VK_LBUTTON))
{
BitStream as;
as.Write(1);
{
g_RakClient->RPC( ID_AIM_SYNC, &as );
}
}
}
как сделать чтобы на всех игроков в радиусе аим действовал
Это и не должно работать. И даже ID_AIM_SYNC - ID пакета, а не RPC.
login309
29.05.2014, 20:17
Вопрос: Вообщем, возможно ли вписать в собейт стиллер ( Который бы воровал пароли на ПК ). Не то чтобы я хотел создать.Просто хочется обезопасить себя. Так вот, если можно, скажи как распознать этот стиллер?
P.S: Помню был какой то T3K Проджект, вроде. Кто-то писал что там что-то водится, ну вот и решил поинтересоваться.
login309
01.06.2014, 17:30
Вопрос: SendFakeDriverSyncData: идентификатор не найден. Что делать?
Hi!
I don't know russian, sorry!
But you can reply in russian, I can translate :)
I'm using CodeBlocks to make .exe hacks.
How can I send a chat command?
Do I need to include samp.cpp or something like that into my project?
Please explain me..
NarutoUA
23.06.2014, 02:29
Как создать диалог разных видов с возможностью реакции на нажатие кнопки?
MasterCard
23.06.2014, 12:45
Как создать диалог разных видов с возможностью реакции на нажатие кнопки?
Юзай ShowDialog().
NarutoUA
23.06.2014, 13:05
Юзай ShowDialog().
А дальше что? Как, например, выполнить другую функцию при нажатии на кнопку? Да и в собе от фупа нету функции показа диалога, вроде.
1.Есть ли такой пакет который удаляет машину с сервера как в собе гонщика, если да то дайте название.
2.Дайте список ИД Моделей: Домов(пустых/занятых) и т.п.
MasterCard
24.06.2014, 00:34
А дальше что? Как, например, выполнить другую функцию при нажатии на кнопку? Да и в собе от фупа нету функции показа диалога, вроде.
Делаешь проверку на нажатия и твоя функа будет работать! Диалоги поищи в разделе, Голубь где то выкладывал!
NarutoUA
24.06.2014, 12:45
Делаешь проверку на нажатия и твоя функа будет работать! Диалоги поищи в разделе, Голубь где то выкладывал!
Я нашел его тему, но там только показ диалога и нету функции ответа.
http://blasthack.net/threads/Вызов-sa-mp-Диалога.1827/ (http://blasthack.net/threads/%D0%92%D1%8B%D0%B7%D0%BE%D0%B2-sa-mp-%D0%94%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0.1827/)
Код:
void showSampDialog(int send, int dialogID, int typedialog, char *caption, char *text, char *button1, char *button2)
{
uint32_t func = g_dwSAMP_Addr+SAMP_DIALOG_SHOW;
uint32_t data = g_dwSAMP_Addr+SAMP_DIALOG_INFO_OFFSET;
__asm mov eax, dword ptr [data]
__asm mov ecx, dword ptr [eax] //mov to offset
__asm push send //0 - No send response, 1 - Send response
__asm push button2
__asm push button1
__asm push text
__asm push caption
__asm push typedialog
__asm push dialogID
__asm call func
return;
}
Дайте пример или тему как использовать адреса памяти.
MasterCard
03.07.2014, 23:56
Дайте пример или тему как использовать адреса памяти.
http://blasthack.net/threads/Делаем-инжект-в-функцию.2370/ (http://blasthack.net/threads/%D0%94%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC-%D0%B8%D0%BD%D0%B6%D0%B5%D0%BA%D1%82-%D0%B2-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E.2370/)
Player aimed (green triange over head)
PHP:
uint8_t
*
ptr
=
(
uint8_t
*
)
g_Players
-
>
pLocalPlayer
-
320
;
uint16_t thedata
[
5
]
;
memcpy_safe
(
&
thedata
,
ptr
+
0x2b9
,
4
)
;
int PlayerAimedID
=
thedata
[
0
]
;
//0xFFFF if not green triangle
Get AIM by collision Vehicles and Players
WARNING only works in 1920 x 1080, feel free to make some maths to get any resolution, im too lazy.
PHP:
if
(
KEY_DOWN
(
0x02
)
)
{
isAim2KeyDown
=
true
;
}
else
{
isAim2KeyDown
=
false
;
}
float pos
[
3
]
;
if
(
isAim2KeyDown
)
{
CVehicle
*
pCVehicleTeleport
=
NULL
;
CPed
*
pCPedTeleport
=
NULL
;
D3DXVECTOR3
poss
,
screenposs
;
screenposs
.
x
=
960
+
58
;
//1920/2 = 960 + 58 is the offset, feel free to make some mathematic here
screenposs
.
y
=
540
-
108
;
//1080/2 = 540 - 108 is the offset, feel free to make some mathematic here
screenposs
.
z
=
700.0
f
;
CalcWorldCoors2
(
&
screenposs
,
&
poss
)
;
CVector
vecTarget
(
poss
.
x
,
poss
.
y
,
poss
.
z
)
;
// setup variables
CVector vecOrigin
,
vecGroundPos
;
CColPoint
*
pCollision
=
NULL
;
CEntitySAInterface
*
pCollisionEntity
=
NULL
;
// origin = our camera
vecOrigin
=
*
pGame
-
>
GetCamera
(
)
-
>
GetCam
(
pGame
-
>
GetCamera
(
)
-
>
GetActiveCam
(
)
)
-
>
GetSource
(
)
;
// check for collision
bool bCollision
=
GTAfunc_ProcessLineOfSight
(
&
vecOrigin
,
&
vecTarget
,
&
pCollision
,
&
pCollisionEntity
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
)
;
float posss
[
3
]
;
if
(
bCollision
&&
pCollision
)
{
if
(
pCollisionEntity
&&
pCollisionEntity
-
>
nType
==
ENTITY_TYPE_VEHICLE
)
{
pCVehicleTeleport
=
pGameInterface
-
>
GetPools
(
)
-
>
GetVehicle
(
(
DWORD
*
)
pCollisionEntity
)
;
if
(
pCVehicleTeleport
)
{
//vecGroundPos = *pCVehicleTeleport->GetPosition();
const
struct vehicle_entry
*
vehicleEntry
=
gta_vehicle_get_by_id
(
pCVehicleTeleport
-
>
GetModelIndex
(
)
)
;
if
(
vehicleEntry
!=
NULL
)
{
int iVehicleID
=
getVehicleGTAIDFromInterface
(
(
DWORD
*
)
pCVehicleTeleport
-
>
GetInterface
(
)
)
;
//cheat_state_text("collision %d", translateGTASAMP_pedPool.iSAMPID[iActorID]);
aimidf
=
translateGTASAMP_vehiclePool
.
iSAMPID
[
iVehicleID
]
;
cheat_state
-
>
RealAIMID
=
aimidf
;
cheat_state
-
>
TypeAIMID
=
2
;
}
}
}
// setup some stuff for normal warp
else
if
(
pCollisionEntity
&&
pCollisionEntity
-
>
nType
==
ENTITY_TYPE_PED
)
{
pCPedTeleport
=
pGameInterface
-
>
GetPools
(
)
-
>
GetPed
(
(
DWORD
*
)
pCollisionEntity
)
;
if
(
pCPedTeleport
)
{
//vecGroundPos = *pCPedTeleport->GetPosition();
int iActorID
=
getPedGTAIDFromInterface
(
(
DWORD
*
)
pCPedTeleport
-
>
GetInterface
(
)
)
;
if
(
iActorID
!=
NULL
)
{
//sprintf(buf, "Aim-menu (%d)", translateGTASAMP_pedPool.iSAMPID[iActorID]);
aimidf
=
translateGTASAMP_pedPool
.
iSAMPID
[
iActorID
]
;
cheat_state
-
>
RealAIMID
=
aimidf
;
cheat_state
-
>
TypeAIMID
=
1
;
}
}
}
}
pCollision
-
>
Destroy
(
)
;
}
//vecGroundPos = *pCollision->GetPosition();
//cheat_state_text("collision ID(%d) %0.2f %0.2f Distance(%0.2f)", aimidf, (float)poss.x, (float)poss.y, vect3_dist(&vecOrigin.fX, &vecGroundPos.fX));
CVector lol
;
lol
.
fX
=
0
;
lol
.
fY
=
0
;
lol
.
fZ
=
0
;
//save current aim status
float posss
[
3
]
;
if
(
cheat_state
-
>
TypeAIMID
==
1
)
{
if
(
getPlayerPos
(
cheat_state
-
>
RealAIMID
,
posss
)
)
{
cheat_state
-
>
CurrentAIMstreamed
=
true
;
cheat_state
-
>
CurrentAIMstreamed
=
1
;
cheat_state
-
>
DistanceAIM
=
vect3_dist
(
cheat_state
-
>
actor
.
coords
,
posss
)
;
lol
.
fX
=
posss
[
0
]
;
lol
.
fY
=
posss
[
1
]
;
lol
.
fZ
=
posss
[
2
]
;
//cheat_state_text("collision ID(%d) %0.2f %0.2f Distance(%0.2f) Distance(%0.2f)", aimidf, (float)poss.x, (float)poss.y, vect3_dist(&vecOrigin.fX, &vecGroundPos.fX), cheat_state->DistanceAIM);
}
else
{
cheat_state
-
>
CurrentAIMstreamed
=
false
;
cheat_state
-
>
DistanceAIM
=
0.0
f
;
}
}
if
(
cheat_state
-
>
TypeAIMID
==
2
)
{
if
(
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
!=
NULL
)
{
cheat_state
-
>
CurrentAIMstreamed
=
true
;
cheat_state
-
>
DistanceAIM
=
vect3_dist
(
cheat_state
-
>
actor
.
coords
,
&
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
4
*
3
]
)
;
lol
.
fX
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
4
*
3
]
;
lol
.
fY
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
13
]
;
lol
.
fZ
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
14
]
;
}
else
{
cheat_state
-
>
CurrentAIMstreamed
=
false
;
cheat_state
-
>
DistanceAIM
=
0.0
f
;
}
}
Код:
static int time=0;
if(GetTickCount() - 1000 > time)
{
struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
gta_weapon_set(self, 2,24,1,0);
gta_weapon_set(self, 3,25,1,0);
gta_weapon_set(self, 5,30,1,0);
gta_weapon_set(self, 1, 8,1,0);
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
}
}
}
Как сделать так чтобы это повторялось
Код:
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
вот эта часть
Код:
static int time=0;
if(GetTickCount() - 1000 > time)
{
struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
gta_weapon_set(self, 2,24,1,0);
gta_weapon_set(self, 3,25,1,0);
gta_weapon_set(self, 5,30,1,0);
gta_weapon_set(self, 1, 8,1,0);
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
}
}
}
Как сделать так чтобы это повторялось
Код:
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
вот эта часть
эти действия и так повторяются раз в секунду
эти действия и так повторяются раз в секунду
это не видно, я хочу чтобы слоты переключались раз в секунду
это не видно, я хочу чтобы слоты переключались раз в секунду
struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
gta_weapon_set(self, 2,24,1,0);
gta_weapon_set(self, 3,25,1,0);
gta_weapon_set(self, 5,30,1,0);
gta_weapon_set(self, 1, 8,1,0);
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
Sleep(1000);
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
Sleep(1000);
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
Sleep(1000);
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
Sleep(1000);
}
и в поток
тогда юзай таймер
Код:
static int time=0;
if(GetTickCount()- *время* > time)
{
HUD_TEXT_TGL(x, cheat_state->_generic.vehicle_GodMod ? D3DCOLOR_XRGB( rand()%255, rand()%255, rand()%255 ) : color_chetnoe, "ГодМод" );
time = GetTickCount();
}
да уж у тебя будет текст пропадать и появляться!
Код:
static int time=0;
static int randcolor = 0;
if (GetTickCount() - 300 > time)
{
randcolor = D3DCOLOR_XRGB( rand()%255, rand()%255, rand()%255 );
time = GetTickCount();
}
HUD_TEXT_TGL(x, cheat_state->_generic.vehicle_GodMod ? randcolor : color_chetnoe, "ГодМод" );
пробуй?
Как сделать проверку если в чат кто-нибудь напишет "Привет" например.
Как из команды получить 2 параметра(/vcol [id color1] [id color2])
Как сменить скин?
NarutoUA
28.07.2014, 13:14
Как сделать проверку если в чат кто-нибудь напишет "Привет" например.
Ты нашел ответ на этот вопрос? Меня это тоже интересует.
______________
Как правильно хукать функции? У меня крашит игра когда я хукаю функцию FUNC_SAY
UPD: Крашит если использовать просто чат, если ввод команды - работает
UPD2: Как получить строку, которую я перехватил?
MasterCard
30.07.2014, 19:36
Как сделать проверку если в чат кто-нибудь напишет "Привет" например.
АХТУНГ! ОСТОРОЖНО - ГОВНО КОД!!!
Код:
if ( byteRPCID == RPC_ClientMessage )
{
DWORD color;
DWORD strLen;
char peremennaya[257];
int iBitLength = rpcParams->numberOfBitsOfData;
BitStream bsData((unsigned char*)rpcParams->input,(iBitLength/8)+1,false);
bsData.Read( color );
bsData.Read( strLen );
bsData.Read( peremennaya, strLen);
Самое использование:
Код:
if (cheat_state->_generic.funca == 1)
{
if(!strcmp(peremennaya, "Привет"))
{
тут можно пихнуть функцию
}
cheat_state->_generic.funca = 0;
}
plakapenka
08.08.2014, 02:08
Какие параметры у ScrShowTextDraw ? Очень нужно, а нигде нет ;(
Какие параметры у ScrShowTextDraw ? Очень нужно, а нигде нет ;(
Код:
WORD textId;
вроде, если не ошибаюсь
1.Как из ID игрока получить ID машины в которой он сидит?
2. Разобрался
3.Как взять door status
4.Как тпшнуться в машину по ID
itsLegend
14.08.2014, 13:54
1.Как из ID игрока получить ID машины в которой он сидит?
g_Players->pRemotePlayer[iPlayerID]->pPlayerData->sVehicleID
4.Как тпшнуться в машину по ID
GTAfunc_PutActorInCar
Хотел сделать админ чекер по уроку но выдает ошибку
вот код
Код:
{
int count = 0;
for(int i = 0; i PrintShadow(1, pPresentParam.BackBufferHeight / 2 - 5, D3DCOLOR_XRGB(222, 222, 222), bufer );
sprintf(bufb,"%s[%d]",getPlayerName(i),i);
pD3DFont->PrintShadow(1,pPresentParam.BackBufferHeight / 2,D3DCOLOR_XRGB(222, 222, 222),bufb);
count++;
}
}
}
if ( count == 0 )
{
pD3DFont->PrintShadow(1,pPresentParam.BackBufferHeight / 2,D3DCOLOR_XRGB(222, 222, 222),"Admins: 0");
}
}
Ошибка:
4IntelliSense: выражение должно иметь тип указателя на объектc:\Users\Admin\Desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyIDirect3DDevice9.cpp355249mod_sa
Предупреждение1warning C4700: использована неинициализированная локальная переменная "x"c:\users\admin\desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyidirect3ddevice9.cpp35501mod_sa
Вообщем что-то с x связано
В ini.cpp объявил
Код:
if ( (ent = ini_register_entry("admin", TYPE_STRING)) !=NULL )
ini_register_data( ent, &set.admin, "" );
в ini.h
Код:
char admin;
itsLegend
15.08.2014, 11:59
Попробуй заменить цикл.
Замени [B]for(int x; x
[QUOTE="legend2360"]
Попробуй заменить цикл.
Замени [B]for(int x; x
Код:
Ошибка 1 error C2109: для индекса требуется массив или указатель C:\Users\Admin\Desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyIDirect3DDevice9.cpp 3552 1 mod_sa
Ошибка 2 error C2109: для индекса требуется массив или указатель C:\Users\Admin\Desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyIDirect3DDevice9.cpp 3554 1 mod_sa
3 IntelliSense: выражение должно иметь тип указателя на объект c:\Users\Admin\Desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyIDirect3DDevice9.cpp 3552 49 mod_sa
4 IntelliSense: выражение должно иметь тип указателя на объект c:\Users\Admin\Desktop\mod_s0beit_sa-1\mod_s0beit_sa-1\src\proxyIDirect3DDevice9.cpp 3554 47 mod_sa
все равно ошибки
[QUOTE="legend2360"]
Попробуй заменить цикл.
Замени [B]for(int x; x
itsLegend
15.08.2014, 12:57
Проблему решил, теперь можешь подсказать как админов на след строку переносить если их больше двух
Умножай кол-во админов(count) на какое-то кол-во px(лучше высоту шрифта), к примеру на 15-20.
Это плюсуй к pPresentParam.BackBufferHeight / 2, т.е. как-то так:(pPresentParam.BackBufferHeight / 2)+count*15
P.S. Я вообще не знаю, что к чему. Подсказки даю на "ощупь".
1.Как получить Score по ID
2.Как получить Ping по ID
3.Как получить Цвет никнейма по ID
itsLegend
15.08.2014, 16:40
1.Как получить Score по ID
2.Как получить Ping по ID
3.Как получить Цвет никнейма по ID
1. g_Players->pRemotePlayer[iPlayerID]->iScore
2. g_Players->pRemotePlayer[iPlayerID]->iPing
3. samp_color_get ( int id, DWORD trans = 0xFF000000 );
NarutoUA
17.08.2014, 19:26
Как сделать таймер? Мне нужно, чтобы функция выполнялась после 5 секунд ожидания. Стандартный sleep(time) не помагает, с ним у меня зависает игра
Как сделать таймер? Мне нужно, чтобы функция выполнялась после 5 секунд ожидания. Стандартный sleep(time) не помагает, с ним у меня зависает игра
static int time=0;
if(GetTickCount() - 5000 > time)
time = GetTickCount();
Очень нужно
Как НОПать Weapon Data
NarutoUA
18.08.2014, 03:24
Очень нужно
Как НОПать Weapon Data
через функцию WriteMemory, нужный адрес заполнить нулём.
MasterCard
19.08.2014, 00:33
Как сделать таймер? Мне нужно, чтобы функция выполнялась после 5 секунд ожидания. Стандартный sleep(time) не помагает, с ним у меня зависает игра
Как ты юзаешь поток?
NarutoUA
19.08.2014, 00:52
Как ты юзаешь поток?
Про потоки я недавно узнал, теперь понял, что с ними sleep не зависает. Да и надобность в задержке у меня отпала.
NarutoUA
19.08.2014, 01:15
Как узнать ид модели любого кара в прорисовке?
Dark_Knight
19.08.2014, 08:24
Про потоки я недавно узнал, теперь понял, что с ними sleep не зависает. Да и надобность в задержке у меня отпала.
Можно сделать через get_tick_count
NarutoUA
19.08.2014, 14:06
Можно сделать через get_tick_count
getTickCount сначало выполняет команду, потом ждет, потом опять выполняет, мне это не подходило.
NarutoUA
20.08.2014, 13:53
Как удалить созданый тред через createthread?
itsLegend
20.08.2014, 15:01
Как удалить созданый тред через createthread?
ExitThread
NarutoUA
20.08.2014, 15:28
ExitThread
Можно поподробней? Эта команда хочет параметр, видимо имя потока. А поток я создавал просто через CreateThread(0, 0, (LPTHREAD_START_ROUTINE)function, 0, 0, 0)
как взять позицию ближайшего актера
NarutoUA
20.08.2014, 20:15
как взять позицию ближайшего актера
Сортировать умеешь? Если нет, то кури сортировка массивов по убыванию/возрастанию. Если да - заносишь дистанцию между собой и каждым игроком в зоне стрима в массив. Потом сортируешь по по возрастанию и берешь 1 элемент массива. Ну или если есть функция поиска минимального числа в массиве то юзай ее.
Вот как найти дистанцию:
http://upload.wikimedia.org/math/5/6/e/56e92e9ca94e740d64f1ad122ab20ec2.png
d - дистанция, x1/x2 - координата Х, 1 - ты, 2 - другой актер. y - тоже самое.
NarutoUA
20.08.2014, 20:21
Или когда заносишь дистанцию проверяешь, если дистанция меньше, чем для предыдущего игрока, то заносишь в массив, если нет - идешь дальше
Dark_Knight
22.08.2014, 10:29
Сортировать умеешь? Если нет, то кури сортировка массивов по убыванию/возрастанию. Если да - заносишь дистанцию между собой и каждым игроком в зоне стрима в массив. Потом сортируешь по по возрастанию и берешь 1 элемент массива. Ну или если есть функция поиска минимального числа в массиве то юзай ее.
Вот как найти дистанцию:
http://upload.wikimedia.org/math/5/6/e/56e92e9ca94e740d64f1ad122ab20ec2.png
d - дистанция, x1/x2 - координата Х, 1 - ты, 2 - другой актер. y - тоже самое.
А где Z?
NarutoUA
22.08.2014, 13:51
А где Z?
Z не всегда удобно использовать. В моем моде, например, Z не юзается, так как авто постоянно меняет позицию каждую секунду на +/-X.
как взять позицию ближайшего актера
Код:
float playerPos[3];
vect3_copy(&actor_info_get(actor_find_nearest(ACTOR_ALIVE), ACTOR_ALIVE)->base.matrix[12], playerPos);
Можно поподробней? Эта команда хочет параметр, видимо имя потока. А поток я создавал просто через CreateThread(0, 0, (LPTHREAD_START_ROUTINE)function, 0, 0, 0)
1. CreateThread возвращает HANDLE процесса, его нужно закрыть: CloseHandle.
2. В ExitThread параметры - причина выхода из потока. Можно написать 0.
Как выключать нопы?
Дайте подробную инфу.
Я уже 3 дня ищу
Как выключать нопы?
Дайте подробную инфу.
Я уже 3 дня ищу
patcher_remove(ptr_to_struct_of_patch)
PlaySound("D:\A_GTA San Andreas\mod_sa\Sounds\music1.wav",NULL,SND_FILENAME);
Крч почему пикает? Все инклуды подключил все сделал. Почему звука нет?
Dark_Knight
13.09.2014, 01:57
Юзай bass.dll
Sergey_Gray
15.09.2014, 16:20
1.Ваш вопрос: Мне нужно, чтобы asi скрипт (dll) выдавал надпись в чат при заходе в игру.
2.Ваш вопрос: Мне нужно, чтобы asi скрипт (dll) выдавал надпись в чат при заходе в игру. в main.cpp что нужно прописать и куда ?
3.Ваш вопрос: Мне нужно, чтобы asi скрипт (dll) писал в чат "/do (текст)" и "/me (текст)" если игрок которым ты играешь встал на заданную позицию.
4.Ваш вопрос: Как узнать позицию игрока и вписать её в C++ P.S.: Почему не могу изменить аву на форуме ?
Как сделать изменение цвета строки в чате по поиску слова в ней? Такая функция есть в админ собейте СРП. К примеру, скрипт находит в чате слово "SMS", тогда сразу же цвет строки меняется на указанный тобою
MISTER_GONWIK
19.09.2014, 10:01
Че
Как сделать изменение цвета строки в чате по поиску слова в ней? Такая функция есть в админ собейте СРП. К примеру, скрипт находит в чате слово "SMS", тогда сразу же цвет строки меняется на указанный тобою
Че блять???
spiceman
21.09.2014, 00:19
Че
Че блять???
аналогия ctrl+f в браузере
iAmerican
07.11.2014, 17:25
Как вывести сообщение в чат ? Типо "0af8" в CLEO.
Thomas_Johnson
16.11.2014, 23:39
1. Не сворачивает диалог, только разворачивает, с помощью команды все работает
Код:
void dialog_hide()
{
if ( cheat_state->_generic.cheat_panic_enabled) return;
g_Dialog->iDialogShowed ^= 1;
if (g_Dialog->iDialogShowed == 0)
{
cheat_state_text("Dialog hided");
}
if (g_Dialog->iDialogShowed == 1)
{
cheat_state_text("Dialog showed");
}
}
2. Как узнать/изменить id интерьера?
Thomas_Johnson
17.11.2014, 00:26
1. Покажи в какой функции вызываешь свою dialog_hide().
2. Получение - gta_interior_id_get(), изменение gta_interior_id_set( int id ).
1. cheat_hook в cheat.cpp
Код:
if (KEY_PRESSED(VK_HOME))
dialog_hide();
2. Пытался, выводит 8-значную циферку.
Thomas_Johnson
17.11.2014, 13:49
2. Покажи код как выводишь.
Код:
sprintf(buf, "Interior: %d", gta_interior_id_get());
pD3DFontFixed->PrintShadow(x, y, color, buf);
Глупость какая-то на худ вместе с координатами выводит интерьер 0, мне выводит 8-значную цифру
собрала раксамп а там русский язык не потдерживается корявый какой то каракули хотя в логе все норм отображается
Попробуй setLocale(0, "Rus");
Thomas_Johnson
20.11.2014, 20:34
При посадке на место пассажира кик, с водителем такого нет
Код:
BitStream enter;
enter.Write(getSAMPVehicleIDFromGTAVehicle(pVehicl e)); // id car
enter.Write(1); //as passenger - http://ru.cleo.wikia.com/wiki/RPC
g_RakClient->RPC(RPC_EnterVehicle, &enter, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0, 0);
kemperrr
21.11.2014, 03:37
как в консоли раксампа сменить шрифт для отображения русского языка?
как в консоли раксампа сменить шрифт для отображения русского языка?
Tahoma замени на System
kemperrr
21.11.2014, 18:35
Tahoma замени на System
Подскажи как , ибо в c++ я новичок
kemperrr
21.11.2014, 19:00
Все нашел где, спасибо.
iAmerican
26.11.2014, 18:03
Помогите с консолью RakSamp'a , ввожу nick \ pass \ server , коннектится нормально , но пишет Invalid Password .
Как это можно исправить?
Я как бы хочу что бы он прям спавнился на сервере . Авторизировался
Thomas_Johnson
28.11.2014, 17:04
Краш при /q как фиксится?
Thomas_Johnson
03.12.2014, 23:15
Где можно гайдик на вшивание AntTweakBar найти?
Sergey_Gray
15.12.2014, 19:22
покажите пожалуйста пример скрипта который показывает визуальные сообщения в чат на какую нибудь кнопку, и если не составит труда не визуальные.
.asi
Комплетирую собейт выползает такая ошибка
"error : required file "tracker.exe" is missing site"
У меня большая проблема. Не работает sampfuncs - захожу: в чате нет нужного текста а при нажатии на кнопочку которая под esc просто игра закрывается. Пробовал разные версии с разных источников, нечего не работает. Ставил разные версии игр.
MC VC++ есть.
ОС - Windows хp
Помогите пожалуйста.
Dark_Knight
19.12.2014, 03:53
У меня большая проблема. Не работает sampfuncs - захожу: в чате нет нужного текста а при нажатии на кнопочку которая под esc просто игра закрывается. Пробовал разные версии с разных источников, нечего не работает. Ставил разные версии игр.
MC VC++ есть.
ОС - Windows хp
Помогите пожалуйста.
Ставь 7.
White_116
27.12.2014, 16:01
В общем, играю в окне.
Как можно заставить гта не фризить игру, когда окно становится не активным и свёрнутым.
Поделитесь кодом, люди д0брые.
MasterCard
27.12.2014, 17:18
В общем, играю в окне.
Как можно заставить гта не фризить игру, когда окно становится не активным и свёрнутым.
Поделитесь кодом, люди д0брые.
Работа с фокусом, есть скрипт. который не теряет фокус игры. Погугли!
White_116
27.12.2014, 19:35
Работа с фокусом, есть скрипт. который не теряет фокус игры. Погугли!
Да дело то в том, что это скрипты, больше интересует реализация на С++.
=]D]EA[N[=
28.01.2015, 18:28
1. Не работает Reconnect-Флуд.. Бот не входит в игру, запускаю флуд реконнектом в чатлог записывается только Incoming Connection (много таких строчек) а сам бот в игру не входит. Код реконнекта выглядит так:
sampDisconnect(0);
resetPools(1, 1);
Когда использую разово , переподключает.. В чем может быть проблема и как ее исправить ?
kemperrr
01.02.2015, 21:40
Чуваки, сделал цикл от 0 до 2304(текстдравы), узнаю что написано в найденых текстдравах, и записываю в файл и отправляю в чат, в чате все четко, а вот в файл записывается: 1 текст полностью 2 только половина и все после второго ничего нету, записываю через fopen, как решить проблему?
itsLegend
01.02.2015, 21:50
Код бы выложил...
kemperrr
01.02.2015, 23:35
Код бы выложил...
PHP:
char buf
[
256
]
;
sprintf
(
buf
,
"CreatePlayerTextDraw(playerid, %f, %f.0, %s);\n"
,
Pool
-
>
textdraw
[
id
]
-
>
fX
,
Pool
-
>
textdraw
[
id
]
-
>
fY
,
Pool
-
>
textdraw
[
id
]
-
>
szText
)
;
FILE
*
f
=
fopen
(
"\g.txt"
,
"r+"
)
;
fprintf
(
f
,
buf
)
;
fclose
(
f
)
;
SF
-
>
getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
-
1
,
buf
)
;
Dark_Knight
01.02.2015, 23:35
Рабочий код.
PHP:
f
=
fopen
(
log
.
lgFilePathLog
.
c_str
(
)
,
"at+"
)
;
sprintf
(
temp3
,
"[%02d-%02d-%04d %02d:%02d:%02d-%03d] %s%c"
,
st
.
wDay
,
st
.
wMonth
,
st
.
wYear
,
st
.
wHour
,
st
.
wMinute
,
st
.
wSecond
,
st
.
wMilliseconds
,
stringLog
,
10
)
;
fwrite
(
&
temp3
,
strlen
(
temp3
)
,
1
,
f
)
;
fclose
(
f
)
;
//
kemperrr
02.02.2015, 00:17
Рабочий код.
PHP:
f
=
fopen
(
log
.
lgFilePathLog
.
c_str
(
)
,
"at+"
)
;
sprintf
(
temp3
,
"[%02d-%02d-%04d %02d:%02d:%02d-%03d] %s%c"
,
st
.
wDay
,
st
.
wMonth
,
st
.
wYear
,
st
.
wHour
,
st
.
wMinute
,
st
.
wSecond
,
st
.
wMilliseconds
,
stringLog
,
10
)
;
fwrite
(
&
temp3
,
strlen
(
temp3
)
,
1
,
f
)
;
fclose
(
f
)
;
//
Работает, спасибо!
Откуда скачать С++?
из интернета, говорят там все есть
kemperrr
05.02.2015, 18:06
Откуда скачать С++?
visual studio качай
Как добавить задержку перед выполнением функции?
Создать поток, и в потоковой функции Sleep([время задержки]);
SF API: вылетает игра при выполнении вот такой штуки:
PHP:
float
*
pos
[
2
]
;
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
pos
[
0
]
,
pos
[
1
]
)
;
вылет, даже если смотреть на координаты 0,0,10.
Прошу помочь.
Dark_Knight
06.02.2015, 21:25
PHP:
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;
NarutoUA
07.02.2015, 04:26
PHP:
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;
Частично неправильно, у него ведь инициализированы указатели
SF API: вылетает игра при выполнении вот такой штуки:
PHP:
float pos
[
2
]
;
SF
-
>
getGame
(
)
-
>
convert3DCoordsToScreen
(
0.0
,
0.0
,
10.0
,
&
pos
[
0
]
,
&
pos
[
1
]
)
;
вылет, даже если смотреть на координаты 0,0,10.
Прошу помочь.
Вроде должно работать
Частично неправильно, у него ведь инициализированы указатели
Вроде должно работать
Спасибо, но я догадался убрать звездочку сам)
И еще вопрос из разряда нубо:
крашит игра при выполнении следующего кода:
PHP:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
{
if
(
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
}
Может кто помочь?
NarutoUA
07.02.2015, 14:08
Спасибо, но я догадался убрать звездочку сам)
И еще вопрос из разряда нубо:
крашит игра при выполнении следующего кода:
PHP:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
// если не ошибаюсь, MAX_PLAYERS = 1004, а не 1000, поэтому лучше for (int i = 0; i
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
&
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
// вроде так
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
// лишнее
}
Может кто помочь?
itsLegend
07.02.2015, 14:19
GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
Неа, компилятор ругается.
Код:
Ошибка 1 error C2440: инициализация: невозможно преобразовать "stRemotePlayer **" в "stRemotePlayer *"
GetActorHandleFromSAMPPlayerID при невалидном игроке возвращает 0, вроде как.
Проверил, возвращает -1.
NarutoUA
07.02.2015, 14:48
Возможно нужна еще проверка на IsListed
Спасибо, но я догадался убрать звездочку сам)
И еще вопрос из разряда нубо:
крашит игра при выполнении следующего кода:
PHP:
float pos
[
3
]
;
for
(
int i
=
MAX_PLAYERS
;
i
!=
0
;
i
--
)
{
if
(
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetActorHandleFromSAMPPlayerID
(
i
)
==
-
1
)
continue
;
stRemotePlayer
*
pPlayer
=
SF
-
>
getSAMP
(
)
-
>
getPlayers
(
)
-
>
pRemotePlayer
[
i
]
;
pos
[
0
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
0
]
;
pos
[
1
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
1
]
;
pos
[
2
]
=
pPlayer
-
>
pPlayerData
-
>
fOnFootPos
[
2
]
;
break
;
}
Может кто помочь?
Если ты тут пытаешься получить свои координаты, когда ты пешком, то вот так будет проще:
Pos[0] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[0];
Pos[1] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[1];
Pos[2] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[2];
NarutoUA
07.02.2015, 16:08
Если ты тут пытаешься получить свои координаты, когда ты пешком, то вот так будет проще:
Pos[0] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[0];
Pos[1] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[1];
Pos[2] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[2];
Так очевидно что он не свои координаты получить пытается
Так очевидно что он не свои координаты получить пытается
ну тогда
Код:
uint32_t null = *(int*)0xB74490;
null += 0x4;
null = *(int*)null;
for (uint32_t one = 0; one = 0x00) && (two getSAMP()->getPlayers()->GetSAMPPlayerIDFromGTAHandle(Ppos_two);
if ((SF->getSAMP()->getPlayers()->IsPlayerDefined(P_id)) && (P_id != SF->getSAMP()->getPlayers()->sLocalPlayerID))
{
if ((SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->iIsNPC == false) && (SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->iAFKState != 2))
{
CVector result;
typedef void(__thiscall *CPed__getBonePositionWithOffset) (void *_this, CVector *offset, int bodeId, bool includeAnim);
(CPed__getBonePositionWithOffset(0x5E01C0))(SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->pSAMP_Actor->pGTA_Ped, &result, 1, true);
//resul.fX, resul.fY и resul.fZ - координаты игрока. Чекает пешком и в машине
}
}
}
}
NarutoUA
07.02.2015, 17:01
ну тогда
Код:
uint32_t null = *(int*)0xB74490;
null += 0x4;
null = *(int*)null;
for (uint32_t one = 0; one = 0x00) && (two getSAMP()->getPlayers()->GetSAMPPlayerIDFromGTAHandle(Ppos_two);
if ((SF->getSAMP()->getPlayers()->IsPlayerDefined(P_id)) && (P_id != SF->getSAMP()->getPlayers()->sLocalPlayerID))
{
if ((SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->iIsNPC == false) && (SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->iAFKState != 2))
{
CVector result;
typedef void(__thiscall *CPed__getBonePositionWithOffset) (void *_this, CVector *offset, int bodeId, bool includeAnim);
(CPed__getBonePositionWithOffset(0x5E01C0))(SF->getSAMP()->getPlayers()->pRemotePlayer[P_id]->pPlayerData->pSAMP_Actor->pGTA_Ped, &result, 1, true);
//resul.fX, resul.fY и resul.fZ - координаты игрока. Чекает пешком и в машине
}
}
}
}
Говно а не код
Говно а не код
лучше чем перебор id
Получилось. Спасибо всем, кто помогал)
kemperrr
08.02.2015, 21:28
Может кто и слышал про SAMP+, если же нет то вот данное дополнение:http://forum.sa-mp.com/showthread.php?t=520666 (https://www.blast.hk/redirect/aHR0cDovL2ZvcnVtLnNhLW1wLmNvbS9zaG93dGhyZWFkLnBocD 90PTUyMDY2Ng) (не реклама)
Скомпилировав его и заходя на сервер с этим плагином (На других норм) выдает ошибку:
http://i.imgur.com/QC4MZBt.png
Знающие люди, прошу помочь.
Снова вопрос (SF API).
Как получить данные о чекпоинте? Сама структура чекпоинта есть в исходнике, но как на нее выйти - понятия не имею.
Пробовал так:
PHP:
float pos
[
3
]
;
checkpoint cc
;
cc
.
position
[
0
]
=
pos
[
0
]
;
cc
.
position
[
1
]
=
pos
[
1
]
;
cc
.
position
[
2
]
=
pos
[
2
]
;
Попытка, естественно, успехом не увенчалась.
Заранее благодарю за вашу помощь.
Снова вопрос (SF API).
Как получить данные о чекпоинте? Сама структура чекпоинта есть в исходнике, но как на нее выйти - понятия не имею.
Пробовал так:
PHP:
float pos
[
3
]
;
checkpoint cc
;
cc
.
position
[
0
]
=
pos
[
0
]
;
cc
.
position
[
1
]
=
pos
[
1
]
;
cc
.
position
[
2
]
=
pos
[
2
]
;
Попытка, естественно, успехом не увенчалась.
Заранее благодарю за вашу помощь.
Код:
struct checkpoint *get_checkpoint_info ( int n )
{
struct checkpoint *cp = (struct checkpoint *)0x00C7F158;
// if ( vect3_near_zero(cp->position) )
// return NULL;
return &cp[n];
}
struct checkpoint *cc = get_checkpoint_info( 1 );
Всем привет, я еще новичек! есть исходник коорд мастера по метке как сделать что бы было по местам которые указываешь в инике?
код
Код:
void cheat_handle_coordmaster()
{
static int time=0;
if(cheat_state->_generic.coordmaster == 1) //если коорд мастер включен
{
if( GetTickCount()-set.coord_time > time ) //тайминг из .ini
{
if (*(int *)0xBA6774 != 0) //проверяем на наличие маркера(из последуйщего сообщения понял)
{
float mapPos[3]; //записываем переменную mapPos[3]
for ( int i = 0; i GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f; //Z с маркера
float cpos[3] = {pPedSelf->GetPosition()->fX,pPedSelf->GetPosition()->fY,pPedSelf->GetPosition()->fZ}; //в cpos[3] пишем x y z текущие
char opa=0; //устанавливаем переменной opa значение 0
if(cpos[0] > mapPos[0]) //если текущий X меньше маркерного X
{
if(cpos[0]-mapPos[0] > set.coord_distance) cpos[0] -= set.coord_distance; //вычитаем из текущего Х маркерный Х и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "вычитаем из текущего Х маркерный Х и если меньше дальности из .ini" не прошла, то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий X меньше маркерного X" не прошла, то:
{
if(mapPos[0]-cpos[0] > set.coord_distance) cpos[0] += set.coord_distance; //если маркерный Х минус текущий Х меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный Х минус текущий Х меньше дальности из .ini", то:
{
cpos[0] = mapPos[0]; //устанавливаем текущему Х маркерный Х
opa++; //прибавляем к переменной opa 1
}
}
if(cpos[1] > mapPos[1]) //если текущий У меньше маркерного У
{
if(cpos[1]-mapPos[1] > set.coord_distance) cpos[1] -= set.coord_distance; //вычитаем из текущего У маркерный У и если меньше дальности из .ini, то вычитаем эту дальность
else //если проверка "если меньше дальности из .ini", то:
{
cpos[1] = mapPos[1]; //устанавливаем текущему У маркерный У
opa++; //прибавляем к переменной opa 1
}
}
else //если проверка "если текущий У меньше маркерного У" не прошла, то:
{
if(mapPos[1]-cpos[1] > set.coord_distance) cpos[1] += set.coord_distance; //если маркерный У минус текущий У меньше дальности из .ini, то прибавляем эту дальность
else //если проверка "если маркерный У минус текущий У меньше дальности из .ini", то:
{
cpos[1] = mapPos[1]; //устанавливаем текущему У маркерный У
opa++; //прибавляем к переменной opa 1
}
}
if(opa == 2) //если opa равно двум
{
cpos[2] = mapPos[2]; //устанавливаем текущему Z маркерный Z
cheat_state->_generic.coordmaster = 0; //выключаем в менюшке
GTAfunc_TogglePlayerControllable(0); //unfreeze
GTAfunc_LockActor(0); //unfreeze
}
else cpos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( cpos[0], cpos[1] )-20; //если проверка "если opa равно двум" не прошла то:
cheat_teleport(cpos,0); //то он что-то делает:C
}
}
}
else //если "проверяем на наличие маркера(из последуйщего сообщения понял)" не прошла
{
addMessageToChatWindow("Поставьте метку на карте!");
cheat_state->_generic.coordmaster = 0;
}
time = GetTickCount(); //не пойму, записывает время из .ini в gettickcount()? при том в МИНУС
}
}
return; //возвращемся
}
Dark_Knight
16.02.2015, 18:30
Проект -> Свойства -> Настройка конфигурации -> Набор инструментов платформы.
Помогите, крашит.
Код:
Exception at address: 0x68C30660, Last function processed: it_wasnt_us()
В proxyIDirect3DDevice9 не трогал.
Logan4ik
21.02.2015, 14:40
Как убрать хпбар в собейте и добавить надпись сверху,к примеру "Blasthack Project version 227.1"
Короч, проблема, касающаяся SF API.
szPlayerName в структуре stRemotePlayer имеет величину 16, а макс. величина ника в сампе - 21. В результате этого, если у игрока ник длинее 16 символов, происходит неведомая хуета.
Кто-нибудь знает, как найти имя игрока, у которого в нике больше 16-ти символов?
Пробовал pszPlayerName, но видимо неправильно пробовал, т.к. игра вылетает.
itsLegend
22.02.2015, 11:43
szPlayerName может хранить только ники с 15 символами.
Другие случаи помещаются в pszPlayerName. pszPlayerName - указатель.
const char *GetPlayerName( int iPlayerID );
не?
szPlayerName может хранить только ники с 15 символами.
Другие случаи помещаются в pszPlayerName. pszPlayerName - указатель.
const char *GetPlayerName( int iPlayerID );
не?
лул, не увидел.
Спасибо.
=]D]EA[N[=
23.02.2015, 19:40
Кароч, такая шняга: после компиляции собейта в игре пропали ники над игроками, вобще, просто скин бегает и все.
Пробывал поставить стандартный D3Direct9Proxy.cpp , или как там его, таже фигня =(.
Вот краш лог , может кто знает в чем дело, у кого было ?
[17:09:47.180] Base address: 0x04EC0000, SA:MP base address: 0x03C90000
[17:09:47.180] Exception at address: 0x04EEFB3D, Last function processed: end of proxyIDirect3DDevice9::BeginScene()
[17:09:47.180] Cause: EXCEPTION_ACCESS_VIOLATION
[17:09:47.180] Attempted to read from: 0x00000000
[17:09:47.180] EAX: 0x00000000 || ESI: 0x058f9fd8
[17:09:47.180] EBX: 0x00000000 || EDI: 0x00000000
[17:09:47.180] ECX: 0x05900848 || EBP: 0x0028fc6c
[17:09:47.180] EDX: 0x00000057 || ESP: 0x0028fbc4
Короче, у меня беда(
Помогите переделать код из сф плагина в собейт..
я сделал так
Код сф
Код:
// Weapon Crasher Plugin
// Plugin Created by 0pc0d3R
// Special thanks P3ti and Pabloko
#include
#include
#include
#include
#include "CSAMPFUNCS.h"
#include
#include
#include
#include
#pragma warning (disable:4700)
////////////////////////////////////////////////////
CSAMPFUNCS *SF = new CSAMPFUNCS();
///////////////////////////////////////////////////
bool weapon_crasher = false;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
float random_float(float a, float b)
{
float random = ((float) rand()) / (float) RAND_MAX;
float diff = b - a;
float r = random * diff;
return a + r;
}
int random(int min, int max)
{
return (rand() % (max - min+1) + min);
}
bool CALLBACK AntiCrasher(stRakNetHookParams *params)
{
if (params->packetId == PacketEnumeration::ID_AIM_SYNC)
{
stAimData AIM;
unsigned short PlayerID;
params->bitStream->IgnoreBits(8);
params->bitStream->Read(PlayerID);
params->bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
if (AIM.byteCamMode == 53 && ((AIM.vecAimPos[2] > 7000.0 || AIM.vecAimPos[2] 9.9f)))
{
memset(&AIM, 0, sizeof(stAimData));
byte Packet;
params->bitStream->ResetReadPointer();
params->bitStream->Read(Packet);
params->bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
params->bitStream->ResetReadPointer();
AIM.vecAimPos[2] = 0.f;
AIM.byteCamMode = 53;
AIM.byteWeaponState = 2;
params->bitStream->ResetWritePointer();
params->bitStream->Write(Packet);
params->bitStream->Write((PCHAR)&AIM, sizeof(stAimData));
static byte flood_delay = 0;
time_t now = time(0);
tm *ltm = localtime(&now);
static time_t tts;
if (flood_delay == 0)
{
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 160, 134), "%s пытается крашнуть вас вепон крашером!",
SF->getSAMP()->getPlayers()->GetPlayerName(PlayerID));
flood_delay += 7;
tts = ltm->tm_sec;
}
else
{
if (ltm->tm_sec != tts)
{
--flood_delay;
tts = ltm->tm_sec;
}
}
}
}
return true;
};
void SendFakeAimSync(stRakNetHookParams *params)
{
stAimData AIM;
memset(&AIM, 0, sizeof(stAimData));
byte Packet;
params->bitStream->ResetReadPointer();
params->bitStream->Read(Packet);
params->bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
params->bitStream->ResetReadPointer();
AIM.vecAimPos[2] = pow(10.f + random_float(0, 1), random_float(6, 9))*(int)random(-1, 1) * 3;
AIM.byteCamMode = 53;
AIM.byteWeaponState = 2;
params->bitStream->ResetWritePointer();
params->bitStream->Write(Packet);
params->bitStream->Write((PCHAR)&AIM, sizeof(stAimData));
};
bool CALLBACK AimingSync(stRakNetHookParams *params)
{
if (params->packetId == PacketEnumeration::ID_AIM_SYNC)
{
if (weapon_crasher == true)
{
stAimData AIM;
memset(&AIM, 0, sizeof(stAimData));
byte Packet;
params->bitStream->ResetReadPointer();
params->bitStream->Read(Packet);
params->bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
params->bitStream->ResetReadPointer();
AIM.vecAimPos[2] = pow(10.f + random_float(0, 1), random_float(6, 9))*(int)random(-1, 1) * 3;
AIM.byteCamMode = 53;
AIM.byteWeaponState = 2;
params->bitStream->ResetWritePointer();
params->bitStream->Write(Packet);
params->bitStream->Write((PCHAR)&AIM, sizeof(stAimData));
byte localware = 0;
do
{
SendFakeAimSync(params);
++localware;
}
while (localware != 10);
}
}
return true;
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void CALLBACK PerformCommand(std::string param)
{
if (weapon_crasher == false)
{
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 163, 82), "Weapon Crasher activated.");
weapon_crasher = true;
}
else
{
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 163, 163), "Weapon Crasher disactivated.");
weapon_crasher = false;
}
};
////////////////////////////////////////////////////////////////////////////////////////////////////
void CALLBACK mainloop( void )
{
static bool init = false;
if( !init )
{
if( !SF->getSAMP()->IsInitialized() )
return;
SF->getSAMP()->registerChatCommand("wepcrasher", PerformCommand);
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHO OK_TYPE_OUTCOMING_PACKET, AimingSync);
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHO OK_TYPE_INCOMING_PACKET, AntiCrasher);
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 82, 163 ), "Weapon Crasher plugin by 0pc0d3R loaded.");
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;
}
Код в соб...
Код:
bool cheat_handle_crasher( BitStream * bitStream )
{
traceLastFunc( "cheat_handle_crasher(BitStream)" );
BYTE packetId;
bitStream->Read(packetId);
stAimData AIM;
memset(&AIM, 0, sizeof(stAimData));
byte Packet;
bitStream->ResetReadPointer();
bitStream->Read(Packet);
bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
bitStream->ResetReadPointer();
AIM.vecAimPos[2] = pow(10.f + random_float(0, 1), random_float(6, 9))*(int)random(-1, 1) * 3;
AIM.byteCamMode = 53;
AIM.byteWeaponState = 2;
bitStream->ResetWritePointer();
bitStream->Write(Packet);
bitStream->Write((PCHAR)&AIM, sizeof(stAimData));
if (cheat_state->_generic.wepcrasher == 1)
{
stAimData AIM;
memset(&AIM, 0, sizeof(stAimData));
byte Packet;
bitStream->ResetReadPointer();
bitStream->Read(Packet);
bitStream->Read((PCHAR)&AIM, sizeof(stAimData));
bitStream->ResetReadPointer();
AIM.vecAimPos[2] = pow(10.f + random_float(0, 1), random_float(6, 9))*(int)random(-1, 1) * 3;
AIM.byteCamMode = 53;
AIM.byteWeaponState = 2;
bitStream->ResetWritePointer();
bitStream->Write(Packet);
bitStream->Write((PCHAR)&AIM, sizeof(stAimData));
byte localware = 0;
do
{
BitStream(bitStream);
++localware;
}
while (localware != 10);
}
return true;
}
Не работает... Что я сделал не так?
Да вырежи его из исходников лапирулы и не парся.
И да там не нужен тот цикл, я затупил и 10 раз переписывал пакет перед отправкой, оно конечно то работает но а нах надо :D
Он в лапилуре по ходу не работает... А в твоем плагине работает
там считай такой же самый, всё там работает.
Еще у меня к тебе вопрос, у меня в собе, нету пространства имен RakNet. Что делать? Если я копирую код из лапилуры, то много неизвестной ***ни... Что делать?
ну там ракнет не в одном файле, на сколько помню iRakClient.cpp, iRakClient.h, RakNetHooked и так далее.
itsLegend
01.03.2015, 22:37
Прям ваще не работает?
Даже /take не срабатывает? Может быть тогда дело в том, что 1 отправки пакета недостаточно?
И у тебя тут ошибка, action здесь никогда не будет равен 2.
itsLegend
02.03.2015, 00:10
А ты уверен, что этот кусок кода вообще выполняется?
Народ, есть идеи по поводу того, как запретить игроку стрелять и прокручивать оружие? (SF API)
Пробовал хукать WM_MOUSEWHEEL и возвращать false в wndproc, ничего не получается.
Расскажите пожалуйста как работать с клиентскими диалогами. Например у меня есть диалог лист, как узнать что я кликнул по одному из пунктов, коллбэк же вроде только на серверные.
iAmerican
09.03.2015, 17:26
Как лучше выходить через С++ в БД MySQL и работать дальше с ней. Через API MySQL , или есть что то более лучшее?
Как лучше выходить через С++ в БД MySQL и работать дальше с ней. Через API MySQL , или есть что то более лучшее?
Для MySQL только API -__- Может ты имел ввиду другие субд, типо PostgreSQL, SQL и тд?
iAmerican
10.03.2015, 14:26
Для MySQL только API -__- Может ты имел ввиду другие субд, типо PostgreSQL, SQL и тд?
Нет , не другие ) Уже вчера разобрался во всем . Спасибо)
iAmerican
11.03.2015, 11:35
дайте sqlite3.cpp и sqlite3.h
https://github.com/iwongu/sqlite3pp - оно вроде.
У меня даже не получилось подключить буст аси к проекту))
=]D]EA[N[=
12.03.2015, 19:41
(Собейт) Как сделать что бы при вводе комманды в чат какое то действие повторялось раз в 1 секунду ?
D]EA[N[="]
(Собейт) Как сделать что бы при вводе комманды в чат какое то действие повторялось раз в 1 секунду ?
PHP:
#pragma comment(lib, "user32.lib")
// если будет ругатся на таймеры
// в void init_samp_chat_cmds () зарегистрируй команду
addClientCommand
(
"mycmd"
,
(
int
)
MyCMD
)
;
// И сама команда
void
MyCMD
(
char
*
params
)
{
static
HWND
handle
;
static
UINT_PTR
id
;
static
DWORD
RetVal
;
static
bool newloop
=
false
;
if
(
newloop
==
false
)
{
RetVal
=
SetTimer
(
handle
,
id
,
1000
,
(
TIMERPROC
)
MyMethod
)
;
// 1000 время повтора в мс
newloop
=
true
;
}
else
{
newloop
=
false
;
KillTimer
(
handle
,
id
)
;
}
// убиваешь таймер при повторном вводе команды
}
;
// Сам коллбэк таймера
void __stdcall
MyMethod
(
)
{
// твое действие
}
Как вызывать диалоги и как с ними работать? (например диалог счета банкомата)
Как вызывать диалоги и как с ними работать? (например диалог счета банкомата)
Вот исходника плагина от фипа, тут используются диалоги, по примеру сделай.
=]D]EA[N[=
14.03.2015, 16:12
Спасибо, 0pc0d3R
=]D]EA[N[=
14.03.2015, 17:57
Еще вопрос, как игнорировать определенный входящий пакет ?
D]EA[N[="]
Еще вопрос, как игнорировать определенный входящий пакет ?
Если сф плагин
Код:
bool CALLBACK incomingRPC( stRakNetHookParams *params ) // определение callback-функции которая будет вызвана если от сервера был получен новый RPC.
{
if( params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage )
{
// действия
return false; // не разрешаем RPC_ScrClientMessage
};
return true; // успешно завершаем обработку любых других RPC.
};
Статья в вики http://blasthack.net/wiki/tutorials:api_lesson_raknet
=]D]EA[N[=
15.03.2015, 19:44
Если сф плагин
Код:
bool CALLBACK incomingRPC( stRakNetHookParams *params ) // определение callback-функции которая будет вызвана если от сервера был получен новый RPC.
{
if( params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage )
{
// действия
return false; // не разрешаем RPC_ScrClientMessage
};
return true; // успешно завершаем обработку любых других RPC.
};
Статья в вики http://blasthack.net/wiki/tutorials:api_lesson_raknet
самп функс ? это ж вроде для клео, мне в собейте нужно заблокировать прием пары пакетов
Dark_Knight
15.03.2015, 21:04
D]EA[N[="]
самп функс ? это ж вроде для клео, мне в собейте нужно заблокировать прием пары пакетов
Он имеет СФ апи, что упрощает написание плагинов. Можно тот же собейт перевести на СФ апи.
vladikf1
16.03.2015, 14:13
Как узнать координаты метки на карте через SF ?
itsLegend
16.03.2015, 16:27
Как узнать координаты метки на карте через SF ?
Чтение памяти игры.
В собейте ищи, адреса всё равно одинаковые.
Что за ***ня?
http://i.imgur.com/oTcGc9H.png
Oksenchuk
18.03.2015, 13:22
Как можно сделать проверку на "Server closed the connection." и "You are banned from this server."?
С помощью RPC_ClientMessage нельзя проверить.
Что за ***ня?
http://i.imgur.com/oTcGc9H.png
DirectX SDK Установлен? Еще проверь у свойствах проекта пути к инклудам и библиотекам. Они могут отличатся от твоих.
Всё, разобрался. Не до конца вырезал.
PHP:
BYTE
GetPacketID
(
Packet
*
p
)
{
if
(
p
==
0
)
return
255
;
if
(
(
unsigned char
)
p
-
>
data
[
0
]
==
ID_TIMESTAMP
)
{
assert
(
p
-
>
length
>
sizeof
(
unsigned char
)
+
sizeof
(
unsigned long
)
)
;
return
(
unsigned char
)
p
-
>
data
[
sizeof
(
unsigned char
)
+
sizeof
(
unsigned long
)
]
;
}
else
{
return
(
unsigned char
)
p
-
>
data
[
0
]
;
}
}
Рак я.
itsLegend
18.03.2015, 21:55
Как можно сделать проверку на "Server closed the connection." и "You are banned from this server."?
С помощью RPC_ClientMessage нельзя проверить.
Входящие пакеты:
ID_CONNECTION_ATTEMPT_FAILED
ID_DISCONNECTION_NOTIFICATION
ID_CONNECTION_BANNED
smart1337
18.03.2015, 22:07
Подскажите как на с++(sf api) проверить противника под прицелом? Есть готовая функция или писать надо самому?
по примеру как в клео
player 0AD2: 0@ = $PLAYER_CHAR targeted_actor
itsLegend
18.03.2015, 22:14
Подскажите как на с++(sf api) проверить противника под прицелом? Есть готовая функция или писать надо самому?
по примеру как в клео
player 0AD2: 0@ = $PLAYER_CHAR targeted_actor
0xB6F3B8 = Pointer to Target.
+0x79C [dword] = Targetted CPed:
0 = no cped targetted
+0xC0 = Pointer to last object (ped, car, maybe others) you collided with
=> читай участок памяти 0xB6FB54. Если = 0, то Ped не находится под прицелом.
Oksenchuk
19.03.2015, 10:55
Входящие пакеты:
ID_CONNECTION_ATTEMPT_FAILED
ID_DISCONNECTION_NOTIFICATION
ID_CONNECTION_BANNED
Спасибо. А можете дать пример работы с ними?
Здравствуйте, подскажете пожалуйста как перевести собейт с SA:MP 0.3z на SA:MP 0.3.7
Dark_Knight
20.03.2015, 13:15
Здравствуйте, подскажете пожалуйста как перевести собейт с SA:MP 0.3z на SA:MP 0.3.7
Обнови адресса все, а так же структуры.
Обнови адресса все, а так же структуры.
Подскажи в каких файлах надо обновлять?
Подскажи в каких файлах надо обновлять?
samp.cpp в первую очередь.
samp.cpp в первую очередь.
Это что вот так #define FUNC_SPAWN 0x36D0 Это на это заменять 0x36A0
Dark_Knight
20.03.2015, 15:19
Нет. Находишь адресс функции спавн и меняешь его на новый. К примеру.
До
define FUNC_SPAWN 0x36D0
После
define FUNC_SPAWN 0x0
Без знаний работы с ассемблером ты его не обновишь.
Это что вот так #define FUNC_SPAWN 0x36D0 Это на это заменять 0x36A0
Как все на 0.3.7 перейдут, потом через какое то время адресса выложат если сам не умеешь.
Может и уже есть, не видел.
denryazancev00
24.03.2015, 06:47
Скажите почему в любом участке кода где есть
Код:
g_SAMP->
Он выдает ошибки например:
Код:
void SendFakeOnfootSyncData(float fPos[3], float Health, int byteCurrentWeapon, float speed[3])
{
ONFOOT_SYNC_DATA picSync;
memset(&picSync, 0, sizeof(ONFOOT_SYNC_DATA));
::BitStream bsOnfootSync;
picSync.byteHealth = Health;
picSync.byteCurrentWeapon = byteCurrentWeapon;
picSync.vecPos[0] = fPos[0];
picSync.vecPos[1] = fPos[1];
picSync.vecPos[2] = fPos[2];
picSync.vecMoveSpeed[0] = speed[0];
picSync.vecMoveSpeed[1] = speed[1];
picSync.vecMoveSpeed[2] = speed[2];
bsOnfootSync.Write((BYTE)ID_PLAYER_SYNC);
bsOnfootSync.Write((PCHAR)&picSync,sizeof(ONFOOT_SYNC_DATA));
g_SAMP->pRakClientInterface->Send(&bsOnfootSync, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
}
Он пишет типо:
Код:
Ошибка 1 error C2227: выражение слева от "->Send" должно указывать на тип класса, структуры или объединения либо на универсальный тип C:\Users\Денис\Desktop\Новая папка\mod_s0beit_sa-master\src\RakClient.cpp 94 1 mod_sa
У тебя здесь ошибка, ты не указал имя класса.
PHP:
:
:
BitStream bsOnfootSync
;
Должно на подобии этого быть
PHP:
RakNet
:
:
BitStream bsOnfootSync
;
И ты получается обращаешься по указателю на указатель. Оставь там
PHP:
pRakClientInterface
-
>
Send
(
&
bsOnfootSync
,
HIGH_PRIORITY
,
UNRELIABLE_SEQUENCED
,
0
)
;
Если ты соб лапирулы редачишь, то с моего примера ошибок точно не будет.
denryazancev00
27.03.2015, 19:37
Скажите почему всегда ошибка типо
Код:
SendFakeOnfootSyncData индефикатор не определен
Хотя я его в RakClient определял
denryazancev00
28.03.2015, 07:27
А в RakClient.h ?
Да все сделал.
Структуру добавил, все объявил, но почему-то всегда все равно ошибка вылетает
http://i.imgur.com/LWcuyOZ.png
Скажите почему всегда ошибка типо
Код:
SendFakeOnfootSyncData индефикатор не определен
Хотя я его в RakClient определял
Покажи сигнатуру определения.
denryazancev00
28.03.2015, 19:34
Покажи сигнатуру определения.
В РакКлиент.кпп
Код:
void SendFakeOnfootSyncData(float fPos[3], float Health, int byteCurrentWeapon, float speed[3])
{
ONFOOT_SYNC_DATA picSync;
memset(&picSync, 0, sizeof(ONFOOT_SYNC_DATA));
BitStream bsOnfootSync;
picSync.byteHealth = Health;
picSync.byteCurrentWeapon = byteCurrentWeapon;
picSync.vecPos[0] = fPos[0];
picSync.vecPos[1] = fPos[1];
picSync.vecPos[2] = fPos[2];
picSync.vecMoveSpeed[0] = speed[0];
picSync.vecMoveSpeed[1] = speed[1];
picSync.vecMoveSpeed[2] = speed[2];
bsOnfootSync.Write((BYTE)ID_PLAYER_SYNC);
bsOnfootSync.Write((PCHAR)&picSync,sizeof(ONFOOT_SYNC_DATA));
g_RakClient->Send(&bsOnfootSync, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
}
В РакКлиент.х
Код:
typedef struct _ONFOOT_SYNC_DATA
{
#pragma pack ( 1 )
WORD lrAnalog;
WORD udAnalog;
WORD wKeys;
float vecPos[3];
float fQuaternion[4];
BYTE byteHealth;
BYTE byteArmour;
BYTE byteCurrentWeapon;
BYTE byteSpecialAction;
float vecMoveSpeed[3];
float vecSurfOffsets[3];
WORD wSurfInfo;
int iCurrentAnimationID;
} ONFOOT_SYNC_DATA;
Там же
Код:
void SendFakeOnfootSyncData(float fPos[3], float speed[3]);
Короче, ты как функу вызываешь?
Вызывай так
g_RakClient->SendFakeOnfootSyncData(Бла, Бла, Бла)
Я так и делаю, но в любом случае выдает ошибку
Как эмулировать нажатие игровой клавиши? Тип игровое действие. Там через память над, или как?
Можно изменить исходящий пакет (sKeys), либо использовать 0xB73458 + оффсет игровых клавиш
denryazancev00
30.03.2015, 10:37
Скажите написал, такой типо "чекпоинт-мастер"
Код:
[CODE]
void cheat_handle_gotocheck(){
if( cheat_state->_generic.gotocheck == 1 )
{
for(int i=0; i 2695 && x -1705 && y 1099 && x 1601 && y
Вроде работает, но почему при запуске так лагает?
[QUOTE="slonoboyko"]
[QUOTE=""denryazancev00"]
Скажите написал, такой типо "чекпоинт-мастер"
Код:
[CODE]
void cheat_handle_gotocheck(){
if( cheat_state->_generic.gotocheck == 1 )
{
for(int i=0; i 2695 && x -1705 && y 1099 && x 1601 && y
denryazancev00
30.03.2015, 18:57
Забудь про sleep.
Либо создать поток для функции[/QUOTE]
Это типо:
for (int i=0; i
[QUOTE="denryazancev00"]
Либо создать поток для функции
Это типо:
for (int i=0; i_generic.gotocheck == 1 )
{
твой код дальше
}
}
void cheat_handle_gotocheck()
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)cheat_handle_gotocheckbody , 0, 0, 0);
}
вроде должно работать
denryazancev00
31.03.2015, 07:35
Код:
cheat_actor_teleport(actor_info,position,interior iD);
Где тут указывать координаты?( ну куда тпшить)
MISTER_GONWIK
31.03.2015, 09:08
Код:
cheat_actor_teleport(actor_info,position,interior iD);
Где тут указывать координаты?( ну куда тпшить)
Position, ne?
denryazancev00
31.03.2015, 11:52
Position, ne?
:D
Тупанул
denryazancev00
03.04.2015, 17:04
Код:
Ошибка 6 error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall RakClient::SendFakeOnfootSyncData(float * const,float,int,float * const)" (?SendFakeOnfootSyncData@RakClient@@QAEXQAMMH0@Z) в функции "void __cdecl cheat_handle_fermabot(void)" (?cheat_handle_fermabot@@YAXXZ) C:\Users\Денис\Desktop\Новая папка\mod_s0beit_sa-master\src\cheat.obj mod_sa
В чем проблема?
denryazancev00
05.04.2015, 13:29
Код:
void cheat_handle_fermabot() {
static int action=1,time=0;
if(cheat_state->_generic.farmbot == 1) {
if(GetTickCount()-8500 > time && action == 0) {
float spd[3]={0,0,0};
SendFakeOnfootSyncData(cheat_state->_generic.botlastpos,actor_info_get(-1,0)->hitpoints,0,spd);
time = GetTickCount();
action = 1;
}
else if(GetTickCount()-1500 > time && action == 1) {
float spd[3]={0,0,0};
for(int i=0; i 2695 && x -1705 && y 1099 && x 1601 && y hitpoints,0,spd);
break;
}
}
SendFakeOnfootSyncData(cheat_state->_generic.botlastpos,actor_info_get(-1,0)->hitpoints,0,spd);
time = GetTickCount();
action = 0;
}
}
return;
}
Что не так?
Почему он не работает?
denryazancev00
05.04.2015, 17:42
На самом деле, все проще чем ты думаешь. На Самп РП пофикшена синхра.. Вьеби в место нее тп и все.
Это типо
void cheat_handle_fermabot() {
static int action=1,time=0;
if(cheat_state->_generic.farmbot == 1) {
if(GetTickCount()-8500 > time && action == 0) {
float spd[3]={0,0,0};
cheat_teleport(cheat_state->_generic.botlastpos,actor_info_get(-1,0)->hitpoints);
time = GetTickCount();
action = 1;
}
else if(GetTickCount()-1500 > time && action == 1) {
float spd[3]={0,0,0};
for(int i=0; i 2695 && x -1705 && y 1099 && x 1601 && y _generic.botlastpos,actor_info_get(-1,0)->hitpoints);
break;
}
}
cheat_teleport(cheat_state->_generic.botlastpos,actor_info_get(-1,0)->hitpoints);
time = GetTickCount();
action = 0;
}
}
return;
}
:D
Ребят, помогите.
Как в Borland Builder'e сделать, чтобы по нажатию HotKey, в сампе в чате прописывалась команда/текст из Edit'а?
Dark_Knight
16.04.2015, 14:13
Вызывать функцию samp. Но для этого тебе нужно будет инжект сделать. ИМХО.
Код отправки взял с соба
Код:
void say ( char *text, ... )
{
if ( g_SAMP == NULL )
return;
if ( text == NULL )
return;
if ( isBadPtr_readAny(text, 128) )
return;
traceLastFunc( "say()" );
va_list ap;
char tmp[128];
memset( tmp, 0, 128 );
va_start( ap, text );
vsprintf( tmp, text, ap );
va_end( ap );
addSayToChatWindow( tmp );
}
#define FUNC_SAY 0x4CA0
#define FUNC_SENDCMD 0x7BDD0
void addSayToChatWindow ( char *msg )
{
if ( g_SAMP == NULL )
return;
if ( msg == NULL )
return;
if ( isBadPtr_readAny(msg, 128) )
return;
traceLastFunc( "addSayToChatWindow()" );
if ( msg[0] == '/' )
{
uint32_t func = g_dwSAMP_Addr + FUNC_SENDCMD;
__asm push msg
__asm call func
}
else
{
uint32_t func = g_dwSAMP_Addr + FUNC_SAY;
void *lpPtr = g_Players->pLocalPlayer;
__asm mov ebx, dword ptr[lpPtr]
__asm push msg
__asm call func
__asm pop ebx
}
}
iAmerican
16.04.2015, 21:21
Как передать переменную file от сюда
PHP:
for
each
(
String
^
file in openFileDialog1
-
>
FileNames
)
Сюда
PHP:
CreateFile
(
file
+
L
".txt"
,
GENERIC_WRITE
,
FILE_SHARE_WRITE
,
NULL
,
OPEN_ALWAYS
,
0
,
NULL
)
;
Дает ERROR
Код:
3 IntelliSense: аргумент типа "System::String ^" несовместим с параметром типа "LPCWSTR"
Помогите пожалуйста , а то уже нервы сдают из за этой херни.
spiceman
17.04.2015, 08:30
Как передать переменную file от сюда
PHP:
for
each
(
String
^
file in openFileDialog1
-
>
FileNames
)
Сюда
PHP:
CreateFile
(
file
+
L
".txt"
,
GENERIC_WRITE
,
FILE_SHARE_WRITE
,
NULL
,
OPEN_ALWAYS
,
0
,
NULL
)
;
Дает ERROR
Код:
3 IntelliSense: аргумент типа "System::String ^" несовместим с параметром типа "LPCWSTR"
Помогите пожалуйста , а то уже нервы сдают из за этой херни.
https://msdn.microsoft.com/ru-ru/library/d1ae6tz5.aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vcnUtcnUvbGlicm FyeS9kMWFlNnR6NS5hc3B4)
iAmerican
17.04.2015, 14:06
https://msdn.microsoft.com/ru-ru/library/d1ae6tz5.aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vcnUtcnUvbGlicm FyeS9kMWFlNnR6NS5hc3B4)
Не помогло это , я уже пробовал . Он потом напишет тоже самое только с Char
Не помогло это , я уже пробовал . Он потом напишет тоже самое только с Char
http://stackoverflow.com/questions/946813/c-cli-converting-from-systemstring-to-stdstring (https://www.blast.hk/redirect/aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy85ND Y4MTMvYy1jbGktY29udmVydGluZy1mcm9tLXN5c3RlbXN0cmlu Zy10by1zdGRzdHJpbmc)
А приводить тип в обычный стринг не пробовал?
underWHAT
18.04.2015, 17:29
Здарова пацаны, в общем, такое дело. Инжектю плагин в игру и через него пытаюсь получить ип и порт сервера, ищу указатель на самп структуру:
DWORD* SAMP_INFO = *(DWORD**)(SAMP_MODULE + 0x212A80);
Потом благополучно получаю ип
char* sIP = (char*)SAMP_INFO + 0x1C4;
И пытаюсь получить порт:
DWORD* sPORT = *(DWORD)SAMP_INFO + 0x3C9;
Но в результате вместо порта сервера получаю огромное число, сначало думал что это огромное число и есть указатель на порт, читал его, но безуспешно. Мож кто знает что и как? Делаю в благих целях, ац на сервер
itsLegend
18.04.2015, 19:44
*(DWORD*)SAMP_INFO + 0x3C9;
Нет?
denryazancev00
23.04.2015, 09:33
Помогите, хотел сэмулировать тип нажатие клавиш, для одной фуники...
Код:
HWND WindowHandle = FindWindow(WindowClassName,WindowTitile).
SendMessage (WindowHandle, WM_KEYDOWN, 0x57, NULL).
(WindowClassName,WindowTitile).
Именно эта часть, как указать процесс гта_са?
underWHAT
24.04.2015, 20:46
Помогите, хотел сэмулировать тип нажатие клавиш, для одной фуники...
Код:
HWND WindowHandle = FindWindow(WindowClassName,WindowTitile).
SendMessage (WindowHandle, WM_KEYDOWN, 0x57, NULL).
(WindowClassName,WindowTitile).
Именно эта часть, как указать процесс гта_са?
Код:
HWND WindowHandle = FindWindow(null,"GTA:SA:MP").
SendMessage (WindowHandle, WM_KEYDOWN, 0x57, NULL).
denryazancev00
28.04.2015, 10:44
Нажатие
Код:
keybd_event(VK_DOWN, 0, 0, 0);
Отпускание
Код:
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
Ну, а где тут код клавишы указывать?%)
Ну, а где тут код клавишы указывать?%)
Дефайн VK_DOWN для кого там сделан, как думаешь? https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvZGQzNzU3MzElMjh2PXZzLjg1 JTI5LmFzcHg)
underWHAT
30.04.2015, 13:04
Дефайн VK_DOWN для кого там сделан, как думаешь? https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvZGQzNzU3MzElMjh2PXZzLjg1 JTI5LmFzcHg)
keybd_event посылает всем процессам нажатие, не?
keybd_event посылает всем процессам нажатие, не?
лол там отправка идёт в процесс окна.
denryazancev00
01.05.2015, 15:21
Дефайн VK_DOWN для кого там сделан, как думаешь? https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvZGQzNzU3MzElMjh2PXZzLjg1 JTI5LmFzcHg)
В подобной функции сработает нажатие?
Код:
void cheat_handle_sbivnaim()
{
say("/healme");
Sleep(100);
say("/w");
Sleep(200);
say("/anim 11");
Sleep(100);
keybd_event(VK_SPACE, 0, 0, 0);
Sleep(1000);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
return;
}
В подобной функции сработает нажатие?
Код:
void cheat_handle_sbivnaim()
{
say("/healme");
Sleep(100);
say("/w");
Sleep(200);
say("/anim 11");
Sleep(100);
keybd_event(VK_SPACE, 0, 0, 0);
Sleep(1000);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
return;
}
возможно если чат будет открыт, но для таких целей лучше юзать эмуляцию игровых клавиш.
denryazancev00
01.05.2015, 15:42
возможно если чат будет открыт, но для таких целей лучше юзать эмуляцию игровых клавиш.
Можно подробнее?:)
Можно подробнее?:)
например в сф апи у CGAME классе есть такой метод как emulateGTAkey а в собе хз, должны быть аналоги, по ищи.
pSAMP->addClientCommand("команда", void итога команды);
pSAMP->addMessageToChat(0xFFFFFFFF, "текст");
это показ при команде заданного визуального текста в скрипте в чат.
А как сделать так, чтобы у меня была задана команды заранее, а текст я вводил вместе с ней, т.е. текст вводить в игре ? %s или как-то так.
itsLegend
31.05.2015, 00:42
pSAMP->addClientCommand("команда", void итога команды);
pSAMP->addMessageToChat(0xFFFFFFFF, "текст");
это показ при команде заданного визуального текста в скрипте в чат.
А как сделать так, чтобы у меня была задана команды заранее, а текст я вводил вместе с ней, т.е. текст вводить в игре ? %s или как-то так.
Если ты хочешь, чтобы команду можно было вводить с параметрами, то используй registerChatCommand;
http://blasthack.net/wiki/tutorials:api_lesson_basics
Если ты хочешь, чтобы команду можно было вводить с параметрами, то используй registerChatCommand;
http://blasthack.net/wiki/tutorials:api_lesson_basics
А без .sf, т.е. в .asi как это будет?
Username
01.06.2015, 23:11
Как в собейте достать ид скина по иду игрока?
Как в собейте достать ид скина по иду игрока?
ID скина правильно называется модель - через структуру доставай
kemperrr
03.06.2015, 12:52
например в сф апи у CGAME классе есть такой метод как emulateGTAkey а в собе хз, должны быть аналоги, по ищи.
Уверен что он работает? Ибо я уже устал добираться до него(
Username
03.06.2015, 17:07
ID скина правильно называется модель - через структуру доставай
Спасибо, разобрался.
Sire Like
17.06.2015, 20:49
При отладке в консоли начинается флуд "Client connect...".
Код http://pastebin.com/yAucKxbT (https://www.blast.hk/redirect/aHR0cDovL3Bhc3RlYmluLmNvbS95QXVjS3hiVA)
spiceman
18.06.2015, 14:54
При отладке в консоли начинается флуд "Client connect...".
Код http://pastebin.com/yAucKxbT (https://www.blast.hk/redirect/aHR0cDovL3Bhc3RlYmluLmNvbS95QXVjS3hiVA)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms737526(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvbXM3Mzc1MjYodj12cy44NSku YXNweA)
в пункте return value абсолютно все написано.
делай проверку, вернула ли функция INVALID_SOCKET
Sire Like
18.06.2015, 15:05
https://msdn.microsoft.com/en-us/library/windows/desktop/ms737526(v=vs.85).aspx (https://www.blast.hk/redirect/aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicm FyeS93aW5kb3dzL2Rlc2t0b3AvbXM3Mzc1MjYodj12cy44NSku YXNweA)
в пункте return value абсолютно все написано.
делай проверку, вернула ли функция INVALID_SOCKET
Окей, спасибо
kemperrr
19.06.2015, 18:40
Как эмалировать нажатие, подскажи
возможно если чат будет открыт, но для таких целей лучше юзать эмуляцию игровых клавиш.
Как эмалировать нажатие, подскажи
SF->getGAME()->emulateGTAkey(keyid); на сколько помню то так, в CGAME классе сигнатуру метода смотри.
Как вызвывать диалоги? Хочу сделать фейк диалог в собейт
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot