SC21 Lua Прочее StreamOut - NPC трафик для вашего сампа

Конкурс SA:MP Coder 2021

GrishaMazzlov

https://t.me/RealCashFlow101
Друг
1,778
934
уже давно деньги синхронизируются на сервере, даже если бабки падать с педов будут их тебе не начислит, такая хуйня последний раз работала на всяких дрифтах на 0.3с без античитов
Речь была о сыром МОБИЛЬНОМ сампе.
 

Use[R]

Известный
1,265
402
UP Ещё проблемка небольшая, я этот скрипт юзаю когда чего-то ждать нужно, так вот, весь тир кильнул и они не спавнятся до тех пор, пока по новой не заставишь их появляться два раза введя /streamout

Можно сделать проверку, если прям долго не спавнятся, то скрипт автоматически перезагружаться будет

Ещё можно для атмосферы сделать неосязаемых NPC в транспорте, трафик как в одиночке

А ещё чтоб обычные NPC не застывали на месте, когда ты в транспорте находишься, а тоже ходили они, но тоже как неосязаемые, а то странно немного, все резко тормозят)

А также можно сделать, если в зоне стрима 2-3 челика или больше с активированным скриптом, то NPC спавнятся в одинаковых местах, было бы прикольно)
 
Последнее редактирование:
  • Нравится
Реакции: Letovv

БеzликиЙ

Автор темы
Автор темы
Проверенный
802
455
А ещё чтоб обычные NPC не застывали на месте, когда ты в транспорте находишься, а тоже ходили они, но тоже как неосязаемые, а то странно немного, все резко тормозят)
если я делаю их неосязаемыми, у них отключаются мозги и они начинают идти на месте - фича движка (или баг сампа).
А также можно сделать, если в зоне стрима 2-3 челика или больше с активированным скриптом, то NPC спавнятся в одинаковых местах, было бы прикольно)
для этого нужен сервак для синхронизации всех этих данных, а у меня и так денег нет
 

etereon

MQ-Team
Проверенный
327
851
Лучшим способом реализации было бы просто убрать патчи сампа с адресов, которые отвечают за спавн педов, а не создавать очередной Lua скрипт с миллионом потоков и проверок
 
  • Нравится
Реакции: MrCreepTon

Use[R]

Известный
1,265
402
если я делаю их неосязаемыми, у них отключаются мозги и они начинают идти на месте - фича движка (или баг сампа).

для этого нужен сервак для синхронизации всех этих данных, а у меня и так денег нет
Нельзя лайк и дизлайк поставить, первое понял, но всё же если получится как-то всё же пофиксить, будет хорошо)

Со вторым соглы, если бабки на это нужны, то забудь что я предложил выше, это того не стоит
 

БеzликиЙ

Автор темы
Автор темы
Проверенный
802
455
Лучшим способом реализации было бы просто убрать патчи сампа с адресов, которые отвечают за спавн педов, а не создавать очередной Lua скрипт с миллионом потоков и проверок
... вот только адресов я этих, увы, не знаю 🤷‍♂️ так что костыли и велосипеды! к тому же, этих педов можно в каком-то смысле контроллировать, типа, отбирать у них оружие, чинить проблемы с ними и всё такое.
 

MrCreepTon

Неизвестный
Всефорумный модератор
2,203
4,985
... вот только адресов я этих, увы, не знаю 🤷‍♂️ так что костыли и велосипеды! к тому же, этих педов можно в каком-то смысле контроллировать, типа, отбирать у них оружие, чинить проблемы с ними и всё такое.
gta sa idb
 

KrasavaPlayer

Участник
31
1
Какие вообще зависимости? Я все поставил, но не работает. В чем может быть проблема? В 1 раз просто ставлю Lua скрипты.
 

БеzликиЙ

Автор темы
Автор темы
Проверенный
802
455
Какие вообще зависимости? Я все поставил, но не работает. В чем может быть проблема? В 1 раз просто ставлю Lua скрипты.
понятия не имею. тут только что был твой лог, но он пропал, так что хз 🤷‍♂️
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,653
2,535
Фикс краша при врезании в педов со скорости:
  • Проблема: крашит при врезании в педов
  • Причина: Игра пытается убить персонажа при врезании тачкой на высокой скорости. Краш происходит из-за какого-то хука сампа, калкор поставил хук на BlendAnimation и что-то выполняет там до гташки, а потом вызывает оригинальную функцию. Снятие хука не помогает.
  • Решение: Нопать функцию KillPedWithCar, работе сампа это не помешает, ведь педов в сампе убивает сам самп, а не игра. Но на локального игрока всё-таки будет влиять, поэтому у нас два подхода к решению:
    • Подход к решению номер один: ноп функции на луа. Проблема: мы (локальный игрок) будем неуязвимы к попыткам сбить нас с машины.
      • Lua:
        memory.copy(0x5F0360, memory.strptr("\xc2\x0c\x00"), 3, true)
    • Подход к решению номер два: хук функции на плюсах. Позже проверка на локального игрока. Проблема: теперь разработка состоит из двух файлов: самого скрипта и аси файла.
      • C++:
        rtdhook* hook;
        
        void __fastcall CPed__KillPedWithCar(uintptr_t ped, void*, void* entity, float arg4, bool a4)
        {
            int pedType = *reinterpret_cast<int*>(ped + 0x598);
        
            if (!pedType || pedType == 1) // If ped is PLAYER_PED
                reinterpret_cast<void(__thiscall*)(uintptr_t, void*, float, bool)>(hook->getTrampoline())(ped, entity, arg4, a4);
        }
        
        hook = new rtdhook(0x5f0360, &CPed__KillPedWithCar, 8);
        hook->install();



1624013176865.png
 

Вложения

  • DontKillPedBotsByCar.asi
    10 KB · Просмотры: 43