СhatID 1.2 | 0.3.7 | by urShadow
|
|
SlOnOtA8iP |
Дата: Понедельник, 25.05.2015, 18:35 | Сообщение # 1
|
Боец
Сообщений: 84
Статус: Offline
|
Добавляет ID's игроков справа от ника в чате. Если ID есть изначально, то повтора не будет.
Требуется SAMPFUNCS 5.2+ Закинуть .sf файл в папку GTA San Andreas/SAMPFUNCS
Активация автоматическая.
RGHost
#include <windows.h> #include <string> #include <assert.h> #include "SAMPFUNCS_API.h" #include <boost/algorithm/string.hpp>
using namespace std;
SAMPFUNCS *SF = new SAMPFUNCS();
void addIDs( string& strMessage ) { for( int i = 0; i < SAMP_MAX_PLAYERS; i++ ) { if( SF->getSAMP()->getPlayers()->IsPlayerDefined( i ) ) { string strName = SF->getSAMP()->getPlayers()->GetPlayerName( i );
if( strMessage.find( strName ) != string::npos ) { boost::algorithm::erase_all( strMessage, "[" + to_string( i ) + "]" ); boost::algorithm::erase_all( strMessage, "(" + to_string( i ) + ")" );
boost::algorithm::replace_all( strMessage, strName, strName + "[" + to_string( i ) + "]" ); }; }; }; };
bool CALLBACK incomingRPC( stRakNetHookParams *params ) { params->bitStream->ResetReadPointer();
switch( params->packetId ) { case ScriptRPCEnumeration::RPC_ScrClientMessage: { DWORD dwColor; int iLen; char szMsg[256];
memset( szMsg, 0, sizeof( szMsg ) );
params->bitStream->ResetReadPointer(); params->bitStream->Read( dwColor ); params->bitStream->Read( iLen );
if( iLen >= sizeof( szMsg ) ) break;
params->bitStream->Read( szMsg, iLen ); params->bitStream->ResetReadPointer();
szMsg[iLen] = '\0';
string strNewLine = szMsg;
addIDs( strNewLine );
params->bitStream->ResetWritePointer(); params->bitStream->Write( dwColor ); params->bitStream->Write( (int)strNewLine.length() ); params->bitStream->Write( strNewLine.c_str(), strNewLine.length() );
break; }; case RPCEnumeration::RPC_Chat: { unsigned short playerId; BYTE byteTextLen; char szText[256];
memset( szText, 0, sizeof( szText ) );
params->bitStream->ResetReadPointer(); params->bitStream->Read( playerId ); params->bitStream->Read( byteTextLen ); params->bitStream->Read( szText, byteTextLen ); params->bitStream->ResetReadPointer();
szText[byteTextLen] = '\0';
string strNewLine = szText;
addIDs( strNewLine );
params->bitStream->ResetWritePointer(); params->bitStream->Write( playerId ); params->bitStream->Write( (BYTE)strNewLine.length() ); params->bitStream->Write( strNewLine.c_str(), strNewLine.length() );
break; }; };
params->bitStream->ResetReadPointer();
return true; };
void CALLBACK mainloop( void ) { static bool init = false; if( !init ) { if( !SF->getSAMP()->IsInitialized() ) return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_ARGB( 255, 255, 0, 0 ) , "ChatID by urShadow loaded {00ff00}| BlastHack.Net" );
SF->getRakNet()->registerRakNetCallback( RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC );
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; };
Заслужить 100 репутации [ ✔ ] Заслужить 200 репутации [ ✔ ] Пробыть на CM 100 Дней [ ✔ ] Иметь 50 постов [ ✔ ]
Сообщение отредактировал SlOnOtA8iP - Понедельник, 25.05.2015, 19:14 |
|
|
|
razor4ik |
Дата: Вторник, 26.05.2015, 08:18 | Сообщение # 2
|
BIG SELLER
Сообщений: 187
Статус: Offline
|
Был бы еще тут чистый скриншот, было бы ваще норм, но лан может потом доделает. P.S. + заслужил :3
|
|
|
|
SlOnOtA8iP |
Дата: Вторник, 26.05.2015, 22:09 | Сообщение # 3
|
Боец
Сообщений: 84
Статус: Offline
|
UP
Заслужить 100 репутации [ ✔ ] Заслужить 200 репутации [ ✔ ] Пробыть на CM 100 Дней [ ✔ ] Иметь 50 постов [ ✔ ]
|
|
|
|
persikcola |
Дата: Среда, 27.05.2015, 14:52 | Сообщение # 4
|
Советник
Сообщений: 774
Статус: Offline
|
Цитата razor4ik ( ) Был бы еще тут чистый скриншот а че за это админы напрячь могут чтоли? это же никакое не преимущество над игроками
|
|
|
|
[CM]Flambo |
Дата: Пятница, 24.07.2015, 21:44 | Сообщение # 5
|
Боец
Сообщений: 107
Статус: Offline
|
Очень полезно, возьму как приду домой, с меня +
|
|
|
|
Richard_Montgomery |
Дата: Вторник, 28.07.2015, 14:10 | Сообщение # 6
|
Боец
Сообщений: 287
Статус: Offline
|
По описанию вообще не понятно для чего. Можно по подробнее, начиная с захода на сервер
|
|
|
|
Firmeh |
Дата: Вторник, 28.07.2015, 14:12 | Сообщение # 7
|
Боец
Сообщений: 238
Статус: Offline
|
Спасибо,пригодилось,но сделай описание поподробней,не очень понятно.
|
|
|
|
Dinge |
Дата: Вторник, 28.07.2015, 14:53 | Сообщение # 8
|
Боец
Сообщений: 125
Статус: Offline
|
[b]SlOnOtA8iP, дай, пожалуйста, скрин[/b]
|
|
|
|
|
BodyToMind |
Дата: Среда, 29.07.2015, 11:51 | Сообщение # 10
|
Боец
Сообщений: 139
Статус: Offline
|
Спасибо забрал :3
[✔]100 репутации[✔] [✔]200 репутации[✔] [✔]300 репутации[✔] [✔]400 репутации[✔] [✔]500 репутации[✔] [✖]1000 репутации[✖]
|
|
|
|
[CM]Groza_Adminov |
Дата: Пятница, 31.07.2015, 14:41 | Сообщение # 11
|
Боец
Сообщений: 110
Статус: Offline
|
Вроде в собейтах это есть, но для обычных игроков подойдёт
|
|
|
|
[CM]Method |
Дата: Пятница, 31.07.2015, 21:11 | Сообщение # 12
|
old
Сообщений: 1228
Статус: Offline
|
Цитата persikcola ( ) а че за это админы напрячь могут чтоли? это же никакое не преимущество над игроками На samp-rp вроде запрещен id в чате.
|
|
|
|
[CM]Danchik228 |
Дата: Вторник, 04.08.2015, 08:51 | Сообщение # 13
|
Боец
Сообщений: 156
Статус: Offline
|
lol
0 дней на Cheat-Master.ru 03.08.2015 ----------------------------------------------------------------------- 1 ранг 10% - [Новичок] (0 Постов) √ 2 ранг 20% - [Любитель] (30 Постов) √ 3 ранг 30% - [Боец] (50 Постов) √ 4 ранг 40% - [Боец] (100 Постов) √ 5 ранг 50% - [Бывалый] (150 Постов) √ 6 ранг 60% - [Знаток] (250 Постов) √ 7 ранг 70% - [Советник] (400 Постов) ✖ 8 ранг 80% - [Авторитет] (500 Постов) ✖ 9 ранг 90% - [Легенда] (800 Постов) ✖ 10 ранг 100% - [Cheat-Master] (1500 Постов) ✖ -------------------------------------------------------------------
|
|
|
|