[mod_sa] Fake SMS (samp-rp)

Статус
В этой теме нельзя размещать новые ответы.

Pr0C

Известный
Автор темы
40
11
Здравствуйте. В этом уроке я расскажу как сделать в собейте с AntTweakBar функцию отправки фейковой смски (кто не знает, смску видно только вам). Сейчас толку от этой функции на самп-рп мало, так как раздел с жалобами Администрация самп-рп прикрыла, но все же, кому-то может пригодится. Приступим.
Открываем samp.cpp и в конец добавляем:
Код:
void faketext ( D3DCOLOR color, const char *text, ... )
{
    if( g_SAMP != NULL )
    {
        va_list ap;
        if ( text == NULL )
        return;
 
        char    tmp[512];
        memset( tmp, 0, 512 );
 
        va_start( ap, text );
        vsnprintf( tmp, sizeof(tmp)-1, text, ap );
        va_end( ap );
 
        addToChatWindow( tmp, color );
    }
}
Это у нас функция для вывода в чат цветного текста. Теперь ее нужно объявить. В конец samp.h добавляем:
Код:
void faketext ( D3DCOLOR color, const char *text, ... );

Теперь можно приступить к созданию меню для отправки фейковой смс. Открываем файл new_menu.h и ищем в нем extern TwBar *twBar_Main; После добавляем:
Код:
extern TwBar *twBar_FakeText;

Теперь в файле new_menu.cpp находим TwBar *twBar_Main; и после него добавляем:
Код:
TwBar *twBar_FakeText;

Дальше находим
Код:
void TW_CALL cheatsMenuLinker(void *)
{
    if(TwIsBarMinimized(twBar_SPCheats))
        TwMaximizeBar(twBar_SPCheats);
    else
        TwMinimizeBar(twBar_SPCheats);
}
И перед ним вставляем:
Код:
void TW_CALL fakeTextMenuLinker(void *)
{
    if(TwIsBarMinimized(twBar_FakeText))
        TwMaximizeBar(twBar_FakeText);
    else
        TwMinimizeBar(twBar_FakeText);
}
Теперь, если у вас в собейте, уже есть свое меню, то просто, чуть ниже него добавляем:
Код:
iMainMenuPosX = (pPresentParam.BackBufferWidth / 2) - (405 / 2) - 175;
    iMainMenuPosY = (pPresentParam.BackBufferHeight / 2) - (235 / 2) - 175;
    TwAddButton(twBar_Main, "Fake Text", fakeTextMenuLinker, NULL, " label='Fake Text' ");
    sprintf(menuParameters," Cheats label='Fake Text' color='0 0 150' position='%d %d' size='405 350' fontsize='2' ", iMainMenuPosX, iMainMenuPosY);
    TwDefine(menuParameters);

Если же у вас нету своего раздела, то ищем строчку:
Код:
TwAddButton(twBar_Main, "GTA", NULL, NULL, NULL);
И перед ней вставляем тот же код:
Код:
iMainMenuPosX = (pPresentParam.BackBufferWidth / 2) - (405 / 2) - 175;
    iMainMenuPosY = (pPresentParam.BackBufferHeight / 2) - (235 / 2) - 175;
    TwAddButton(twBar_Main, "Fake Text", fakeTextMenuLinker, NULL, " label='Fake Text' ");
    sprintf(menuParameters," Cheats label='Fake Text' color='0 0 150' position='%d %d' size='405 350' fontsize='2' ", iMainMenuPosX, iMainMenuPosY);
    TwDefine(menuParameters);

Дальше, спускаемся вниз и находим вот такие строчки:
Код:
// CHEATS
    // Cheats -> Vehicle upgrades
Перед ними вставляем:
Код:
iMainMenuPosX = (pPresentParam.BackBufferWidth / 2) - (405 / 2) - 125;
    iMainMenuPosY = (pPresentParam.BackBufferHeight / 2) - (235 / 2) - 125;
    TwAddButton(twBar_FakeText, "Fake SMS", NULL, NULL, NULL);
    TwAddVarRW(twBar_FakeText, "Sender", TW_TYPE_CSSTRING(24), &fakesms_sender, "");
    TwAddVarRW(twBar_FakeText, "Text", TW_TYPE_CSSTRING(124), &fakesms_text, "");
    TwAddVarRW(twBar_FakeText, "Sender ID", TW_TYPE_INT32, &fakesms_id, " min=0 max=1000 keyIncr=z keyDecr=Z ");
    TwAddButton(twBar_FakeText, "Send SMS", fakeTextSMS, NULL, " label='Send SMS' ");

Теперь находим:
Код:
// MENU FUNCTIONS
И после вставляем:
Код:
char fakesms_sender[24] = "Pr0C", fakesms_text[124] = "Заходите на BlastHack.Net. У нас вы найдете все, что нужно настоящему читеру";
int fakesms_id = 7;
void TW_CALL fakeTextSMS(void *)
{
    char sms[200];
    snprintf(sms, sizeof(sms), "SMS: %s. Отправитель: %s[%d]", fakesms_text, fakesms_sender, fakesms_id);
    faketext(D3DCOLOR_XRGB(255, 255, 0), sms);
}

И теперь открываем файл proxyIDirect3DDevice9.cpp Находим там строчку:
Код:
twBar_SPCheats = TwNewBarMinimized("Cheats");
И перед ней вставляем:
Код:
twBar_FakeText = TwNewBarMinimized("Fake Text");

Это мой первый урок по C++, а так же это первая написанная мною функция для собейта, так что строго не судите, а лучше указывайте на ошибки :)

P.S. В меню, в поле для ввода текста смс, вводятся крякозябры, но в смс текст выводится правильно.

image.png
 
  • Нравится
Реакции: WEB

MasterCard

Известный
83
7
Можно немного упростить написание кода ;D
Но всё же молодец :)
 
Статус
В этой теме нельзя размещать новые ответы.