Другое С/С++ Вопрос - Ответ

NarutoUA

NarutoUA
BH Team
692
1,537
C++:
SF->getSAMP()->getSAMPAddr() + 0xAF480 // даже представления не имею
SF->getSAMP()->getSAMPAddr() + 0x219E80
SF->getSAMP()->getSAMPAddr() + 0x219F88 // ...\GTA San Andreas User Files\SAMP\..?

На что указатели? И есть ли какая-нибудь тема с обозначениями этих указателей?
ебаать что за говнокод
 

Revalto

Известный
532
225
Кто может помочь?
upload_2017-10-20_17-56-22.png
Код:
bool CALLBACK testRPC(stRakNetHookParams *params) // определение callback-функции, которая будет вызвана, если от сервера был получен новый RPC.
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowTextDraw)
    {
        WORD ID;
        char text[256];

        params->bitStream->ResetReadPointer();
        params->bitStream->Read(ID);
        params->bitStream->SetReadOffset(0xD8);
        SF->getRakNet()->DecodeString(text, 256, params->bitStream);

        if (_house == true)
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "ID: %d | Text: %s", ID, text);
        }
    }

    return true; // успешно завершаем обработку RPC.
};
 

Blood

Известный
45
1
Тот же вопрос жму букву R, но буквы Q and E не срабатывают в игре

PHP:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <tlhelp32.h>

using namespace std;

wchar_t AdresZagolovkaOkna [500]= L"GTA:SA:MP";
HWND DeskriptorOkna;

LRESULT CALLBACK LLKeyProc(int nCode, WPARAM wParam, LPARAM lParam)
{


    if(nCode == HC_ACTION )

    {

        DWORD vk = ((LPKBDLLHOOKSTRUCT)lParam)->vkCode;

        if(vk == 0x52 &&  DeskriptorOkna)

        {
            SendMessage(DeskriptorOkna,WM_KEYDOWN, 0x45, 0);
            SendMessage(DeskriptorOkna,WM_KEYDOWN, 0x51, 0);

        }
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}



int main()
{


cout << "Invalidation of the program..." << endl;   
Sleep(1000);
   

  if (!(DeskriptorOkna= FindWindow(NULL, AdresZagolovkaOkna))){

        printf ("GTA:SA:MP Window not detected!\n" );
        getchar ();
    }
    else {
        printf ("GTA:SA:MP Window detected! | Descriptor: %x\n", DeskriptorOkna);
    }




    HHOOK hook = SetWindowsHookEx(WH_KEYBOARD_LL, LLKeyProc, GetModuleHandle(NULL), 0);
    if(hook)
    {
        while(WaitMessage())
        {
            MSG msg = {0};
            while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
            {
                if(msg.message == WM_QUIT)
                {
                    UnhookWindowsHookEx(hook);
                    return 0;
                }
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
        }
    }
    return 0;
}
 
Последнее редактирование:

Vandal™

Известный
55
4
Кто может помочь?

Код:
bool CALLBACK testRPC(stRakNetHookParams *params) // определение callback-функции, которая будет вызвана, если от сервера был получен новый RPC.
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowTextDraw)
    {
        WORD ID;
        char text[256];

        params->bitStream->ResetReadPointer();
        params->bitStream->Read(ID);
        params->bitStream->SetReadOffset(0xD8);
        SF->getRakNet()->DecodeString(text, 256, params->bitStream);

        if (_house == true)
        {
            SF->getSAMP()->getChat()->AddChatMessage(-1, "ID: %d | Text: %s", ID, text);
        }
    }

    return true; // успешно завершаем обработку RPC.
};

P.S у меня на switch(params->packetId)
C++:
case ScriptRPCEnumeration::RPC_ScrShowTextDraw:
{
    stTextDrawTransmit TXD;
    WORD TID, TLen;
    char Text[1024];
    params->bitStream->ResetReadPointer();
    params->bitStream->Read(TID);
    params->bitStream->Read((PCHAR)&TXD, sizeof(stTextDrawTransmit));// struct
    params->bitStream->Read(TLen);
    params->bitStream->Read(Text, TLen);
    Text[TLen] = '\0';
    // переводы из ARGB to RGBA. Можешь вырезать, если не нужно
    TXD.dwLetterColor = D3DCOLOR_ARGB(LOBYTE(( TXD.dwLetterColor ) >> 8), LOBYTE(( TXD.dwLetterColor ) >> 16), LOBYTE(( TXD.dwLetterColor ) >> 24), LOBYTE(TXD.dwLetterColor));
    TXD.dwBackgroundColor = D3DCOLOR_ARGB(LOBYTE(( TXD.dwBackgroundColor ) >> 8), LOBYTE(( TXD.dwBackgroundColor ) >> 16), LOBYTE(( TXD.dwBackgroundColor ) >> 24), LOBYTE(TXD.dwBackgroundColor));
    TXD.dwBoxColor = D3DCOLOR_ARGB(LOBYTE(( TXD.dwBoxColor ) >> 8), LOBYTE(( TXD.dwBoxColor ) >> 16), LOBYTE(( TXD.dwBoxColor ) >> 24), LOBYTE(TXD.dwBoxColor));
 
    /*
    -- your code --
    */
    break;
}
 
  • Нравится
Реакции: vasiliy130198

Vandal™

Известный
55
4
SF->getSAMP()->getSAMPAddr() + 0x219F88 >> Путь до папки SAMP в документах.
А как найти путь до корневой папки GTA SA с игрой?
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Код:
#include <filesystem>
namespace fs = std::experimental::filesystem;
fs::path path = fs::current_path();
std::string PathToSa = path.string();
std::cout << PathToSa.c_str();
 
  • Нравится
Реакции: Vandal™

Scr1m

Новичок
6
1
Как сделать окно с сампом активным после того как его свернуть? Чтобы допустим диалоговые окна листались? Не откажусь от кусочка кода :)
 
Последнее редактирование:

Revalto

Известный
532
225
Почему не срабатывает?

Код:
if (SF->getSAMP()->getDialog()->iIsActive == 1)
{
SF->getSAMP()->getChat()->AddChatMessage(-1, "{FF0011}[DIALOG]: {FFFFFF}Диалог найден!");
}
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Woofing Giraffe

Активный
402
49
Почему не срабатывает?

Код:
if (SF->getSAMP()->getDialog()->iIsActive == 1)
{
SF->getSAMP()->getChat()->AddChatMessage(-1, "{FF0011}[DIALOG]: {FFFFFF}Диалог найден!");
}
Может быть я ошибаюсь, но это будет работать только с локальными диалогами, не серверными
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.