ASI ForceHealthyComponents — Не ломающиеся компоненты т/с

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Автор темы
Всефорумный модератор
2,633
2,482
Версия SA-MP
  1. Любая


ForceHealthyComponents — Не ломающиеся компоненты т/с​


Плагин не даёт компонентам машины отваливаться при повреждениях. Не является читом, не даёт никаких преимуществ кроме эстетического удовольствия.

Исходный код:
rtdhook* hook;

char __fastcall ApplyDamage(void* ptr, void* edx, void* dm_comp,
    int compId, float intensity, float a5)
{
    if (compId == 1) // Let's break wheels
        return reinterpret_cast<char(__thiscall*)(void*, void*, int, float, float)>(hook->trampoline)
            (ptr, dm_comp, compId, intensity, a5);
    return 0;
}

int main()
{
    hook = new rtdhook(0x6C24B0, reinterpret_cast<DWORD>(&ApplyDamage));
    hook->install();
    return 0;
}

На Lua. Обратите внимание, что он не ломает и колёса!!!:
function main()
    local memory = require 'memory'
    memory.copy(0x6C24B0, memory.strptr("\xc2\x10\x00"), 3, true)
end
 

Вложения

  • ForceHealthyComponents.asi
    10 KB · Просмотры: 3,076

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Автор темы
Всефорумный модератор
2,633
2,482
Визуалка
0x55 0x8B 0x6C
Lua:
memory.copy(0x6C24B0, memory.strptr("\x55\x8b\x6c"), 3, true)
Наконец-то, а то лень было комп запускать
Вариант с луа использовать не стоит, имхо, а то он по сути является читом, поскольку колёса не пробиваются
 

_raz0r

t.me/sssecretway | ТГК: t.me/razor_code
Модератор
1,888
3,047
Визуалка

Наконец-то, а то лень было комп запускать
Вариант с луа использовать не стоит, имхо, а то он по сути является читом, поскольку колёса не пробиваются
можно попробовать в самой функции поставить нопы на:
CAutomobile::SetDoorDamage();
CDamageManager::SetLightStatus();
CAutomobile::SetPanelDamage
CAutomobile::SetBumperDamage

при этом оставив функцию: CDamageManager::ProgressWheelDamage не тронутой
 

SR_team

like pancake
BH Team
4,719
6,362
Эти C программисты заебали! Или пишите код который компилируется компилятором C или используйте плюсовый __thiscall, где через регистры передается только указатель на объект, и нет никакого EDX, который вам не нужен и который не используется в оригинальном коде игры
 
  • Ха-ха
Реакции: user390868

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Автор темы
Всефорумный модератор
2,633
2,482
Эти C программисты заебали! Или пишите код который компилируется компилятором C или используйте плюсовый __thiscall, где через регистры передается только указатель на объект, и нет никакого EDX, который вам не нужен и который не используется в оригинальном коде игры
Этот сртим заебал! Не понимает что мсвс не позволяет объявлять функцию thiscall и приходится выкручиваться через fastcall, а поскольку fastcall то edx используется для выравнивания!
 
  • Ха-ха
Реакции: user390868

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Автор темы
Всефорумный модератор
2,633
2,482
проверь на VisualStudio 2012, мне кажется, я юзал __thiscall функции для хуков
Не хочу, нет столько времени и желания
Можно накостылить и сделать всё-таки функцию thiscall (через пустую структуру и функцию в нём), но я воздержусь от этой затеи.
Скорее всего мсвс2015 и выше не позволяют на ровном месте зискалл делать.
 
  • Нравится
Реакции: kin4stat

wD.D159

Известный
Друг
446
479
А как-то можно это применить не к своему авто, а ко всем авто? Например что бы защитится от флуда компонентов авто.
 

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Автор темы
Всефорумный модератор
2,633
2,482
А как-то можно это применить не к своему авто, а ко всем авто? Например что бы защитится от флуда компонентов авто.
Оно применяется ко всем авто
Скрины чего, подумай прежде чем писать
 

wD.D159

Известный
Друг
446
479
Оно применяется ко всем авто

Скрины чего, подумай прежде чем писать
Однако не защищает от скрипта с флудом компонентов.
1614194039276.png