Как сделать подсчёт триггеров, юнитов и т.д при удалении или добавление функции или объекта выполнять проверку?

Принятый ответ

я понял что не так xd
biridius, facepalm)))))))
сорян, всю неделю не высыпался

вот с рб:
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
1
5 лет назад
0
biridius:
я думаю автору нужен счетчик утечек киньте ссылку кто-нить
либо он хочет удостовериться что удаление/добавление объекта выполнено во время игры, и для этого ему нужен счетчик
Подсчет триггеров и объектов я хотел использовать против читеров от вставки чит паков и т.д
0
18
5 лет назад
0
Если без РБ, то можно с cJass или Lua перехватить вызов и засунуть туда счётчик триггеров
cJass
integer trigCounter = 0;
define CreateTrigger() = CreateTriggerB()
//!nocjass
library trgCounter
	function CreateTriggerB takes nothing returns trigger
		set i = i+1
		return CreateTrigger()
	endfunction
endlibrary
//!endnocjass
На lua не знаю, у NazarPunk поинтересуйтесь
lua только на 1.31 версии варкрафта

А потом надо просто создать простейший триггер с событием "С начала игры прошло 0.00 секунд"
и поставить условие проверки переменной trigCounter, если не равно заданному значению (которое при релизе карты вами проверяется) - то дропнуть варкрафт с помощью вызова одной функции (фатал делать небезопасно, т.к ближе к новым версиям их постоянно чинят)
дроп варкрафта
function DropWar3 takes nothing returns nothing
call ExecuteFunc("DropWar3")
endfunction
0
28
5 лет назад
0
Hodor, правда, если люди смогли встроить чит в карту, то что им мешает изменить эту проверку?
0
1
5 лет назад
0
чет не сохраняет
Загруженные файлы
0
18
5 лет назад
Отредактирован Hodor
0
PT153:
Hodor, правда, если люди смогли встроить чит в карту, то что им мешает изменить эту проверку?
по моей скромной статистике, многие вставляют чит-пак по инструкции)
да и те кто знает JASS редко занимаются такой фигней

express07, подождите, я чуть накосячил с кодом)))
код
integer trigCounter = 0;
define CreateTrigger() = CreateTriggerB()
//!nocjass
library trgCounter
	function CreateTriggerB takes nothing returns trigger
		set trigCounter = trigCounter+1
		return CreateTrigger()
	endfunction
endlibrary
//!endnocjass
3
21
5 лет назад
3
если кто-то вставляет чит непосредственно в .j файл карты, то никакие дефайны не помогут тк они же отслеживаются при сохранении карты с джассхелпером
0
18
5 лет назад
0
biridius, так а кто говорит о дефайнах в .j?)
С дефайном делается перехват CreateTrigger на другую функцию где ведется подсчет
Таким образом считается кол-во триггеров в карте при инициализации
0
1
5 лет назад
Отредактирован express07
0
Hodor:
biridius, так а кто говорит о дефайнах в .j?)
С дефайном делается перехват CreateTrigger на другую функцию где ведется подсчет
Таким образом считается кол-во триггеров в карте при инициализации
Проверил чит пак работает) сработает если выпилить триггер целиком,еще читал что с помощью хендлов как то проверить можно или на рб.
Загруженные файлы
0
18
5 лет назад
Отредактирован Hodor
0
я понял что не так xd
biridius, facepalm)))))))
сорян, всю неделю не высыпался

вот с рб:
Принятый ответ
1
32
5 лет назад
Отредактирован quq_CCCP
1
Ну все ваши проверки по большей части вырезаются на раз-два, от читеров не спасают не капли.
Более менее надежный способ - мемхак, можно проверять и длифнну функций и таблицы строк, кол-во обьектов пересчитать, а еще можно распоковать читору на комп вирус и отучить его ломать чужие карты. Если вы больной на голову программист - можно сделать как айкап, вся логика карты в 1 длл, скрипт карты практически пуст, в нем только хак на запуск длл, длл проверяет контрольные суммы архива, поэтому все модификации сразу идут лесом, но реализация овер сложная. Тема шарпркрафта так и не взлетела.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.