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

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
addBlipForChar(Ped ped) без SAMPFUNCS на С++ можно сделать? Может в samp-api где-то есть такое?
 

manukhov

Известный
125
131
Как узнать какой стиль борьбы скольки байтам равен?
И чем отличается #1 от #2?
  • CPed +0x72D = [byte] Стиль борьбы #1
  • CPed +0x72E = [byte] Стиль борьбы #2
 

SR_team

like pancake
BH Team
4,802
6,473
а собирать проект мне прийдётся через visual studio?
нет. Если для VSCode нет тулзы дергающей msbuild, то сам пропишешь msbuild в PATH и будешь через встроенные кастомные сборки VSCode его дергать, или через встроенную консоль. Кстати кейс с VSCode будет даже лучше чем со студией, потому что студия хоть и поддерживает системы сборки помимо msbuild, но ходить по ссылкам ошибок и фильтровать ошибки она не умеет
 
  • Нравится
Реакции: loganhackerdff

checkdasound

Известный
Проверенный
963
410
Как узнать какой стиль борьбы скольки байтам равен?
И чем отличается #1 от #2?
  • CPed +0x72D = [byte] Стиль борьбы #1
  • CPed +0x72E = [byte] Стиль борьбы #2
Наверное, там надо писать 0/1 (off/on). А насчет стилей, скорее всего это как в одиночке, ты приходишь в одну качалку там тебе показывают один стиль, приходишь в другую, там уже кунг фу.
 

loganhackerdff

Известный
868
519
Пытаюсь сделать noradio на sf как в cleo
но у меня не всё получается
радио переключается, но при попытке переключить радио назад, оно опять переключается обратно на выкл, но начинает шипеть как
[spoiler = функции]
C++:
void StartRadio(unsigned int station)
{
    DWORD dwFunc = 0x4DBEC3;
    DWORD dwFunc2 = 0x4EB3C3;
    _asm
    {
        // We can't do this anymore as we've returned out StartRadio
        /*
        push    0
        push    station
        mov        ecx, CLASS_CAudioEngine
        call    dwFunc
        */

        // Push our arguments onto the stack
        push        0
        push        station

        // Call something, skip 3 bytes that we have our return instruction on (no arguments)
        mov         ecx, 0x8AE554
        mov         eax, dword ptr[ecx + 8]
        call        dwFunc

        // Check the return value, eventually skip
        test        al, al
        jne         skip

        mov         eax, dword ptr[esp + 4]
        mov         ecx, dword ptr[esp]

        // Push arguments to some other function
        push        0
        push        0
        push        eax
        push        ecx

        // Call it (emulate call instruction)
        mov         ecx, 8CB6F8h
        push        done
        push        ebx
        mov         bl, byte ptr[esp + 8]
        jmp         dwFunc2

        // Pop our arguments back
        done :
        pop         eax
            pop         eax

            skip :
    }
}

void ResetRadio()
{
    DWORD dwFunc = 0x4E7F80;
    _asm
    {
        mov        ecx, 0x8CB6F8
        call    dwFunc
    }
}
[/spoiler]
Это в mainloop() с проверкой на сидение в авто :
C++:
            if (g_CMenu.bNoRadio && *(byte*)0x8CB7A5 != 13)
            {
                *(byte*)0xBA679A = 13;
                *(byte*)0x8CB7A5 = 13;
                ResetRadio();
                StartRadio(13);
               
            }