Другое SAMPFUNCS | API C++

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как проверить что в переменной именно число
 

kawa operand

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

kawa operand

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

kawa operand

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

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите как юзать в API.
CLEO:
0AD4: 0@ = scan_string 0@ format "%d" 1@
 

mrdiimax

Известный
566
79
Подскажите как юзать в API.
CLEO:
0AD4: 0@ = scan_string 0@ format "%d" 1@
Не обязательно через sscanf,через regex проще ..
  1. #include <iostream>
  2. #include <regex>
  3. #include <string>


  4. int main() {
  5. std::string str = "Alexey_Orev[228]: q 123213123";
  6. std::regex Reg(R"(^(.+)\[(\d+)\]: (.+)$)");
  7. std::smatch results;
  8. if(std::regex_match(str, results, Reg)){
  9. std::cout << results[1].str().c_str() << ": " << results[3].str().c_str();
  10. }
  11. else
  12. std::cout << "Совпадений не найдено";
  13. return 0;
  14. }
 
  • Нравится
Реакции: LaRossa

Vandal™

Известный
55
4
Что не так? И с тем, и с другим крашит.
C++:
memset((void*)(SF->getSAMP()->getSAMPAddr() + 0x9D9D0), 0x5051FF15, 4);//1 var.
*(DWORD*)(SF->getSAMP()->getSAMPAddr() + 0x9D9D0) = 0x5051FF15;//2var
P.S брал отсюда.
{$CLEO .cs}
0662: printstring "FPS UNLOCK 0.3.7 BY EXPORT"
0AA2: 3@ = load_library "SAMP.DLL"

:FPSUnlock
wait 0
if not 3@ == 0
else_jump @EndThread
3@ += 0x9D9D0
0A8C: write_memory 3@ size 4 value 0x5051FF15 virtual_protect 1

:EndThread
0A93: end_custom_thread
 
Последнее редактирование:

Vandal™

Известный
55
4
Запись в read-only память
По сути я проблему решил. Но загвоздка в том, что стандартный лимит FPS 60 кадров не убирается даже с CLEO версией. ХЗ в чем беда.
А на будущее, какой из вариантов правильнее?
C++:
DWORD UnlockFPS = SF->getSAMP()->getSAMPAddr() + 0x9D9D0;
VirtualProtect((void*)UnlockFPS, 4, 0x5051FF15, &UnlockFPS);
// or
VirtualProtect((void*)UnlockFPS, 4, 0x5051FF15, NULL);
 

BlackKnigga

Известный
BH Team
922
445
По сути я проблему решил. Но загвоздка в том, что стандартный лимит FPS 60 кадров не убирается даже с CLEO версией. ХЗ в чем беда.
А на будущее, какой из вариантов правильнее?
C++:
DWORD UnlockFPS = SF->getSAMP()->getSAMPAddr() + 0x9D9D0;
VirtualProtect((void*)UnlockFPS, 4, 0x5051FF15, &UnlockFPS);
// or
VirtualProtect((void*)UnlockFPS, 4, 0x5051FF15, NULL);
VirtualProtect function (Windows)(https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa366898(v=vs.85).aspx)
Неправильно снимаешь. VirtualProtect не пишет за тебя в память
 

Vandal™

Известный
55
4
C++:
void GTAfunc_LockActor(bool boolLock);
void GTAfunc_LockActor(bool boolLock)
{
    DWORD *actor = (DWORD *)PEDSELF->GetInterface();

    if(actor)
    {
        if(boolLock)
        {
            _asm
            {
                mov ebx, dword ptr [actor]
                add ebx, 64
                or dword ptr [ebx], 0x2000
            }
        }
        else
        {
            _asm
            {
                mov ebx, dword ptr [actor]
                add ebx, 64
                and dword ptr [ebx], 0xFFFFDFFF
            }
        }
    }
}

У кого есть аналог для машины? (Зафризить позицию)
 

jenekbueno

Известный
157
69
Ребят, там крашит игру если выгружать плагин таким макаром
SF->unloadPlugin(SF->getGame()->getPluginInfo()->getPluginName().c_str());