Античит для синглплеера

Added by , published
Алгоритмы, Наработки и Способности
Способ реализации:
Lua
Тип:
Наработка
Версия Warcraft:
1.33+
Простая и лёгкая система, позволяющая поймать за руку игрока, использующего оригинальные чит-коды в одиночной игре. И также просто и легко обнаруживается в коде карты.

Принцип работы

Для работы системы используются три триггера. Первые два отслеживают события TEXT_CHANGED и ENTER для фрейма типа Edit Box, третий триггер — вспомогательный, он нужен для перерегистрации событий фрейма для основных триггеров при загрузке сохраненной игры (иначе фрейм ивенты будут потеряны). Весь текст, введённый игроком, сравнивается с содержимым таблицы чит-кодов, и найденное совпадение расценивается как ввод чит-кода.

Установка

  1. Переключить карту в режим Lua, если ещё не.
  2. Вставить код в карту.
  3. Вызвать метод AntiCheat.init().

Настройка и управление

  1. Свойство AntiCheat.debug = true/false используется для включения/отключения сообщений.
  2. Реакция на ввод чита вынесена в функцию AntiCheat.punish(cheat), и может быть изменена по желанию пользователя. Функция принимает строку с обнаруженным чит-кодом.
  3. Список отслеживаемых чит-кодов хранится в таблице AnitCheat.list, и может быть измененён при необходимости.
  4. Функция AntiCheat.setEnable(true/false) позвоялет включать/отключать детект во время игры при необходимости.

Код

Раскрыть
--[[
    Simple and easy system that allows you to catch a player who using cheat codes in a single player game.

    Configuration:
    — Use the AntiCheat.debug boolean property to enable/disable debug messages (enabled by default).

    — You can change AntiCheat.punish(cheat) function to your liking to create any reaction to entering a cheat code.
    This function takes a cheat code string as an argument, which allows you to customize the reaction for each cheat code.

    — The AntiCheat.list table stores a list of cheat codes, you can remove any from there or add something if necessary.

    Control:
    — To initialize the system, you need to call the AntiCheat.init() method.
    I would not recommend calling this function too early, since the code must access some default frames that may not have time to initialize, which will lead to a game crash.
    I took this problem into account and tried to make it more secure by adding a delay timer and checking for access to frames.
    After that, I injected the function into main() without any problems in my tests, but I still think I should warn you about it.

    — To destroy the system, you can call the AntiCheat.destroy() function.

    — To temporarily disable the system, you can use the AntiCheat.setEnable(false) function.
    Accordingly, to enable triggers later, you should call AntiCheat.setEnable(true).
--]]

AntiCheat = {}
AntiCheat.debug = true

function AntiCheat.punish(cheat)
    -- You can add any reaction to entering a cheat code to this function
    -- In this example, the player gets defeat

    AntiCheat.displayMessage(cheat)
    CustomDefeatBJ(GetLocalPlayer(), "Good luck next time!")
end

AntiCheat.list = { -- Table of known cheat codes in Warcraft 3
    "whosyourdaddy", -- All units and buildings gain full invulnerability, units will be able to 1-hit kill any opponent or enemy structure (does not effect friendly fire)
    "iseedeadpeople", -- Full map is revealed, fog of war disabled
    "allyourbasearebelongtous", -- Instantly win the current mission
    "somebodysetupthebomb", -- Instantly lose the current mission
    "thereisnospoon", -- All units gain infinite mana
    "greedisgood", -- Instantly obtain set number of lumber and gold
    "keysersoze", -- Instantly obtain set number of gold
    "leafittome", -- Instantly obtain set number of lumber
    "iocanepowder", -- Enables fast acting death/decay of bodies
    "pointbreak", -- Disables food limit for creating new units
    "sharpandshiny", -- Instantly grants all upgrades
    "synergy", -- Unlocks the full tech tree
    "whoisjohngalt", -- Enables faster research time for upgrades
    "warpten", -- Enables faster building times
    "thedudeabides", -- Enables faster spell cooldown times
    "riseandshine", -- Sets time of day to morning
    "lightsout", -- Sets time of day to evening
    "daylightsavings", -- Switches from day to night, halts or restarts the flow of the day/night cycle
    "strengthandhonor", -- Disables game over screen after losing objectives in campaign mode
    "itvexesme", -- Disables victory conditions
    "motherland", -- Selects a mission number for the chosen race to warp to
    "tenthleveltaurenchieftan", -- Plays a special music track "Power of the Horde"
    -- Source: https://www.ign.com/wikis/warcraft-3/PC_Cheats_and_Secrets_-_List_of_Warcraft_3_Cheat_Codes
}

-- Debug Messages
AntiCheat.success = "|c0000FF80Anti-Cheat system is enabled.|r"
AntiCheat.cancel = "|c00EDED12Not a single-player mode. Initialization of the Anti-Cheat system was canceled.|r"
AntiCheat.error = "|c00FF0000Error when trying to access Edit Box.\r\nThe Anti-Cheat system was not enabled.|r"
AntiCheat.detect = "|c00FF0000\"CHEATCODE\" cheat code detected|r"

AntiCheat.states = {}

function AntiCheat.init()
    if not ReloadGameCachesFromDisk() then
        AntiCheat.displayMessage("cancel")
        return
    end
    local saveLoadedTrigger, textChangedTrigger, textEnteredTrigger = CreateTrigger(), CreateTrigger(), CreateTrigger()
    local states, cheats, punish = AntiCheat.states, AntiCheat.list, AntiCheat.punish

    TriggerRegisterGameEvent(saveLoadedTrigger, EVENT_GAME_LOADED)
    TriggerAddCondition(saveLoadedTrigger, Condition(AntiCheat.setBoxEvents))

    TriggerAddCondition(textChangedTrigger, Condition(function()
        states[2] = states[1]
        states[1] = BlzGetTriggerFrameText()
    end))

    TriggerAddCondition(textEnteredTrigger, Condition(function()
        local enteredText = string.lower(states[2])

        for i = 1, #cheats do
            if string.find(enteredText, cheats[i]) then
                punish(cheats[i])
                break
            end
        end
    end))

    AntiCheat.triggers = {textChangedTrigger, textEnteredTrigger, saveLoadedTrigger}
    AntiCheat.setBoxEvents()
end

function AntiCheat.setBoxEvents()
    -- Event registration has been moved to a separate function,
    -- since when loading a saved game it will need to be done again.

    local t, ac = CreateTimer(), AntiCheat
    -- Accessing to the frame while the map is initializing can result in a fatal error, so delay is needed

    TimerStart(t, .2, false, function()
        local eBox = ac.getEditBox()

        if eBox then
            BlzTriggerRegisterFrameEvent(ac.triggers[1], eBox, FRAMEEVENT_EDITBOX_TEXT_CHANGED)
            BlzTriggerRegisterFrameEvent(ac.triggers[2], eBox, FRAMEEVENT_EDITBOX_ENTER)
            ac.displayMessage("success")
        else
            ac.displayMessage("error")
            ac.destroy()
        end

        DestroyTimer(t)
    end)
end

function AntiCheat.setEnable(enable)
    local triggers = AntiCheat.triggers
    if not triggers then return end

    if enable then
        EnableTrigger(triggers[2])
        return
    end
    DisableTrigger(triggers[2])
end

function AntiCheat.getEditBox()
    -- Includes frame access checks

    local nullFrame = BlzGetOriginFrame(ConvertOriginFrameType(93242), 0);
    local gameUI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0); if (gameUI == nullFrame) then return nil end

    nullFrame = BlzFrameGetChild(gameUI, 93242);
    local msgFrame = BlzFrameGetChild(gameUI, 11); if (msgFrame == nullFrame) then return nil end
    local editBox = BlzFrameGetChild(msgFrame, 1); if (editBox == nullFrame) then return nil end

    return editBox
end

function AntiCheat.displayMessage(mType)
    if AntiCheat.debug then
        if AntiCheat[mType] then
            print(AntiCheat[mType])
            return
        end

        for _, v in ipairs(AntiCheat.list) do
            if v == mType then
                local message = AntiCheat.detect:gsub("CHEATCODE", mType)
                print(message)
                return
            end
        end
    end
end

function AntiCheat.destroy()
    local triggers = AntiCheat.triggers
    if triggers then
        for _, v in ipairs(triggers) do
            DestroyTrigger(v)
        end
    end
end

Ссылки и кредиты

`
LOADING AD...
38
Так его же удалить как нефиг делать) нужна крутая обфускация
Replies (1)
24
ScorpioT1000, ну да, в таком виде наработка рассчитана на совсем уж массового игрока, не имеющего опыта в редакторе. Хотя и в этом случае можно накрутить статы через чит энжин условный. Так что юзлесс, хз зачем это на главной.
нужна крутая обфускация
Самое палевное это тупо лежащие в коде стринги с читами, надо бы их зашифровать как-то мб
21
Наконец-то ютуберы по кампаниям не будут обманывать свою аудиторию
38
Вот вам обфусцированный код
loadstring("\65\110\116\105\67\104\101\97\116\32\61\32\123\125\10\65\110\116\105\67\104\101\97\116\46\115\116\97\116\101\115\32\61\32\123\125\10\10\65\110\116\105\67\104\101\97\116\46\100\101\98\117\103\32\61\32\116\114\117\101\10\65\110\116\105\67\104\101\97\116\46\115\117\99\99\101\115\115\32\61\32\34\124\99\48\48\48\48\70\70\56\48\65\110\116\105\45\99\104\101\97\116\32\115\121\115\116\101\109\32\105\115\32\101\110\97\98\108\101\100\46\124\114\34\10\65\110\116\105\67\104\101\97\116\46\101\114\114\111\114\32\61\32\34\124\99\48\48\70\70\48\48\48\48\69\114\114\111\114\32\119\104\101\110\32\116\114\121\105\110\103\32\116\111\32\97\99\99\101\115\115\32\69\100\105\116\32\66\111\120\46\92\114\92\110\84\104\101\32\65\110\116\105\45\67\104\101\97\116\32\115\121\115\116\101\109\32\119\97\115\32\110\111\116\32\101\110\97\98\108\101\100\46\124\114\34\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\112\117\110\105\115\104\40\99\104\101\97\116\41\10\32\32\32\32\45\45\32\89\111\117\32\99\97\110\32\97\100\100\32\97\110\121\32\114\101\97\99\116\105\111\110\32\116\111\32\101\110\116\101\114\105\110\103\32\97\32\99\104\101\97\116\32\99\111\100\101\32\116\111\32\116\104\105\115\32\102\117\110\99\116\105\111\110\10\32\32\32\32\45\45\32\73\110\32\116\104\105\115\32\101\120\97\109\112\108\101\44\32\116\104\101\32\112\108\97\121\101\114\32\103\101\116\115\32\100\101\102\101\97\116\10\10\32\32\32\32\112\114\105\110\116\40\34\124\99\48\48\70\70\48\48\48\48\92\34\34\46\46\99\104\101\97\116\46\46\34\92\34\32\99\104\101\97\116\32\99\111\100\101\32\100\101\116\101\99\116\101\100\124\114\34\41\10\32\32\32\32\67\117\115\116\111\109\68\101\102\101\97\116\66\74\40\71\101\116\76\111\99\97\108\80\108\97\121\101\114\40\41\44\32\34\71\111\111\100\32\108\117\99\107\32\110\101\120\116\32\116\105\109\101\33\34\41\10\101\110\100\10\10\65\110\116\105\67\104\101\97\116\46\108\105\115\116\32\61\32\123\32\45\45\32\84\97\98\108\101\32\111\102\32\107\110\111\119\110\32\99\104\101\97\116\32\99\111\100\101\115\32\105\110\32\87\97\114\99\114\97\102\116\32\51\10\32\32\32\32\34\119\104\111\115\121\111\117\114\100\97\100\100\121\34\44\32\45\45\32\65\108\108\32\117\110\105\116\115\32\97\110\100\32\98\117\105\108\100\105\110\103\115\32\103\97\105\110\32\102\117\108\108\32\105\110\118\117\108\110\101\114\97\98\105\108\105\116\121\44\32\117\110\105\116\115\32\119\105\108\108\32\98\101\32\97\98\108\101\32\116\111\32\49\45\104\105\116\32\107\105\108\108\32\97\110\121\32\111\112\112\111\110\101\110\116\32\111\114\32\101\110\101\109\121\32\115\116\114\117\99\116\117\114\101\32\40\100\111\101\115\32\110\111\116\32\101\102\102\101\99\116\32\102\114\105\101\110\100\108\121\32\102\105\114\101\41\10\32\32\32\32\34\105\115\101\101\100\101\97\100\112\101\111\112\108\101\34\44\32\45\45\32\70\117\108\108\32\109\97\112\32\105\115\32\114\101\118\101\97\108\101\100\44\32\102\111\103\32\111\102\32\119\97\114\32\100\105\115\97\98\108\101\100\10\32\32\32\32\34\97\108\108\121\111\117\114\98\97\115\101\97\114\101\98\101\108\111\110\103\116\111\117\115\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\119\105\110\32\116\104\101\32\99\117\114\114\101\110\116\32\109\105\115\115\105\111\110\10\32\32\32\32\34\115\111\109\101\98\111\100\121\115\101\116\117\112\116\104\101\98\111\109\98\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\108\111\115\101\32\116\104\101\32\99\117\114\114\101\110\116\32\109\105\115\115\105\111\110\10\32\32\32\32\34\116\104\101\114\101\105\115\110\111\115\112\111\111\110\34\44\32\45\45\32\65\108\108\32\117\110\105\116\115\32\103\97\105\110\32\105\110\102\105\110\105\116\101\32\109\97\110\97\10\32\32\32\32\34\103\114\101\101\100\105\115\103\111\111\100\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\111\98\116\97\105\110\32\115\101\116\32\110\117\109\98\101\114\32\111\102\32\108\117\109\98\101\114\32\97\110\100\32\103\111\108\100\10\32\32\32\32\34\107\101\121\115\101\114\115\111\122\101\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\111\98\116\97\105\110\32\115\101\116\32\110\117\109\98\101\114\32\111\102\32\103\111\108\100\10\32\32\32\32\34\108\101\97\102\105\116\116\111\109\101\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\111\98\116\97\105\110\32\115\101\116\32\110\117\109\98\101\114\32\111\102\32\108\117\109\98\101\114\10\32\32\32\32\34\105\111\99\97\110\101\112\111\119\100\101\114\34\44\32\45\45\32\69\110\97\98\108\101\115\32\102\97\115\116\32\97\99\116\105\110\103\32\100\101\97\116\104\47\100\101\99\97\121\32\111\102\32\98\111\100\105\101\115\10\32\32\32\32\34\112\111\105\110\116\98\114\101\97\107\34\44\32\45\45\32\68\105\115\97\98\108\101\115\32\102\111\111\100\32\108\105\109\105\116\32\102\111\114\32\99\114\101\97\116\105\110\103\32\110\101\119\32\117\110\105\116\115\10\32\32\32\32\34\115\104\97\114\112\97\110\100\115\104\105\110\121\34\44\32\45\45\32\73\110\115\116\97\110\116\108\121\32\103\114\97\110\116\115\32\97\108\108\32\117\112\103\114\97\100\101\115\10\32\32\32\32\34\115\121\110\101\114\103\121\34\44\32\45\45\32\85\110\108\111\99\107\115\32\116\104\101\32\102\117\108\108\32\116\101\99\104\32\116\114\101\101\10\32\32\32\32\34\119\104\111\105\115\106\111\104\110\103\97\108\116\34\44\32\45\45\32\69\110\97\98\108\101\115\32\102\97\115\116\101\114\32\114\101\115\101\97\114\99\104\32\116\105\109\101\32\102\111\114\32\117\112\103\114\97\100\101\115\10\32\32\32\32\34\119\97\114\112\116\101\110\34\44\32\45\45\32\69\110\97\98\108\101\115\32\102\97\115\116\101\114\32\98\117\105\108\100\105\110\103\32\116\105\109\101\115\10\32\32\32\32\34\116\104\101\100\117\100\101\97\98\105\100\101\115\34\44\32\45\45\32\69\110\97\98\108\101\115\32\102\97\115\116\101\114\32\115\112\101\108\108\32\99\111\111\108\100\111\119\110\32\116\105\109\101\115\10\32\32\32\32\34\114\105\115\101\97\110\100\115\104\105\110\101\34\44\32\45\45\32\83\101\116\115\32\116\105\109\101\32\111\102\32\100\97\121\32\116\111\32\109\111\114\110\105\110\103\10\32\32\32\32\34\108\105\103\104\116\115\111\117\116\34\44\32\45\45\32\83\101\116\115\32\116\105\109\101\32\111\102\32\100\97\121\32\116\111\32\101\118\101\110\105\110\103\10\32\32\32\32\34\100\97\121\108\105\103\104\116\115\97\118\105\110\103\115\34\44\32\45\45\32\83\119\105\116\99\104\101\115\32\102\114\111\109\32\100\97\121\32\116\111\32\110\105\103\104\116\44\32\104\97\108\116\115\32\111\114\32\114\101\115\116\97\114\116\115\32\116\104\101\32\102\108\111\119\32\111\102\32\116\104\101\32\100\97\121\47\110\105\103\104\116\32\99\121\99\108\101\10\32\32\32\32\34\115\116\114\101\110\103\116\104\97\110\100\104\111\110\111\114\34\44\32\45\45\32\68\105\115\97\98\108\101\115\32\103\97\109\101\32\111\118\101\114\32\115\99\114\101\101\110\32\97\102\116\101\114\32\108\111\115\105\110\103\32\111\98\106\101\99\116\105\118\101\115\32\105\110\32\99\97\109\112\97\105\103\110\32\109\111\100\101\10\32\32\32\32\34\105\116\118\101\120\101\115\109\101\34\44\32\45\45\32\68\105\115\97\98\108\101\115\32\118\105\99\116\111\114\121\32\99\111\110\100\105\116\105\111\110\115\10\32\32\32\32\34\109\111\116\104\101\114\108\97\110\100\34\44\32\45\45\32\83\101\108\101\99\116\115\32\97\32\109\105\115\115\105\111\110\32\110\117\109\98\101\114\32\102\111\114\32\116\104\101\32\99\104\111\115\101\110\32\114\97\99\101\32\116\111\32\119\97\114\112\32\116\111\10\32\32\32\32\34\116\101\110\116\104\108\101\118\101\108\116\97\117\114\101\110\99\104\105\101\102\116\97\110\34\44\32\45\45\32\80\108\97\121\115\32\97\32\115\112\101\99\105\97\108\32\109\117\115\105\99\32\116\114\97\99\107\32\34\80\111\119\101\114\32\111\102\32\116\104\101\32\72\111\114\100\101\34\10\32\32\32\32\45\45\32\83\111\117\114\99\101\58\32\104\116\116\112\115\58\47\47\119\119\119\46\105\103\110\46\99\111\109\47\119\105\107\105\115\47\119\97\114\99\114\97\102\116\45\51\47\80\67\95\67\104\101\97\116\115\95\97\110\100\95\83\101\99\114\101\116\115\95\45\95\76\105\115\116\95\111\102\95\87\97\114\99\114\97\102\116\95\51\95\67\104\101\97\116\95\67\111\100\101\115\10\125\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\105\110\105\116\40\41\10\32\32\32\32\108\111\99\97\108\32\115\97\118\101\76\111\97\100\101\100\84\114\105\103\103\101\114\44\32\116\101\120\116\67\104\97\110\103\101\100\84\114\105\103\103\101\114\44\32\116\101\120\116\69\110\116\101\114\101\100\84\114\105\103\103\101\114\32\61\32\67\114\101\97\116\101\84\114\105\103\103\101\114\40\41\44\32\67\114\101\97\116\101\84\114\105\103\103\101\114\40\41\44\32\67\114\101\97\116\101\84\114\105\103\103\101\114\40\41\10\32\32\32\32\108\111\99\97\108\32\115\116\97\116\101\115\44\32\99\104\101\97\116\115\44\32\112\117\110\105\115\104\32\61\32\65\110\116\105\67\104\101\97\116\46\115\116\97\116\101\115\44\32\65\110\116\105\67\104\101\97\116\46\108\105\115\116\44\32\65\110\116\105\67\104\101\97\116\46\112\117\110\105\115\104\10\10\32\32\32\32\84\114\105\103\103\101\114\82\101\103\105\115\116\101\114\71\97\109\101\69\118\101\110\116\40\115\97\118\101\76\111\97\100\101\100\84\114\105\103\103\101\114\44\32\69\86\69\78\84\95\71\65\77\69\95\76\79\65\68\69\68\41\10\32\32\32\32\84\114\105\103\103\101\114\65\100\100\67\111\110\100\105\116\105\111\110\40\115\97\118\101\76\111\97\100\101\100\84\114\105\103\103\101\114\44\32\67\111\110\100\105\116\105\111\110\40\65\110\116\105\67\104\101\97\116\46\115\101\116\66\111\120\69\118\101\110\116\115\41\41\10\10\32\32\32\32\84\114\105\103\103\101\114\65\100\100\67\111\110\100\105\116\105\111\110\40\116\101\120\116\67\104\97\110\103\101\100\84\114\105\103\103\101\114\44\32\67\111\110\100\105\116\105\111\110\40\102\117\110\99\116\105\111\110\40\41\10\32\32\32\32\32\32\32\32\115\116\97\116\101\115\91\50\93\32\61\32\115\116\97\116\101\115\91\49\93\10\32\32\32\32\32\32\32\32\115\116\97\116\101\115\91\49\93\32\61\32\66\108\122\71\101\116\84\114\105\103\103\101\114\70\114\97\109\101\84\101\120\116\40\41\10\32\32\32\32\101\110\100\41\41\10\10\32\32\32\32\84\114\105\103\103\101\114\65\100\100\67\111\110\100\105\116\105\111\110\40\116\101\120\116\69\110\116\101\114\101\100\84\114\105\103\103\101\114\44\32\67\111\110\100\105\116\105\111\110\40\102\117\110\99\116\105\111\110\40\41\10\32\32\32\32\32\32\32\32\108\111\99\97\108\32\101\110\116\101\114\101\100\84\101\120\116\32\61\32\115\116\114\105\110\103\46\108\111\119\101\114\40\115\116\97\116\101\115\91\50\93\41\10\10\32\32\32\32\32\32\32\32\102\111\114\32\105\32\61\32\49\44\32\35\99\104\101\97\116\115\32\100\111\10\32\32\32\32\32\32\32\32\32\32\32\32\105\102\32\115\116\114\105\110\103\46\102\105\110\100\40\101\110\116\101\114\101\100\84\101\120\116\44\32\99\104\101\97\116\115\91\105\93\41\32\116\104\101\110\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\112\117\110\105\115\104\40\99\104\101\97\116\115\91\105\93\41\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\98\114\101\97\107\10\32\32\32\32\32\32\32\32\32\32\32\32\101\110\100\10\32\32\32\32\32\32\32\32\101\110\100\10\32\32\32\32\101\110\100\41\41\10\10\32\32\32\32\65\110\116\105\67\104\101\97\116\46\116\114\105\103\103\101\114\115\32\61\32\123\116\101\120\116\67\104\97\110\103\101\100\84\114\105\103\103\101\114\44\32\116\101\120\116\69\110\116\101\114\101\100\84\114\105\103\103\101\114\44\32\115\97\118\101\76\111\97\100\101\100\84\114\105\103\103\101\114\125\10\32\32\32\32\65\110\116\105\67\104\101\97\116\46\115\101\116\66\111\120\69\118\101\110\116\115\40\41\10\101\110\100\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\115\101\116\66\111\120\69\118\101\110\116\115\40\41\10\32\32\32\32\45\45\32\69\118\101\110\116\32\114\101\103\105\115\116\114\97\116\105\111\110\32\104\97\115\32\98\101\101\110\32\109\111\118\101\100\32\116\111\32\97\32\115\101\112\97\114\97\116\101\32\102\117\110\99\116\105\111\110\44\10\32\32\32\32\45\45\32\115\105\110\99\101\32\119\104\101\110\32\108\111\97\100\105\110\103\32\97\32\115\97\118\101\100\32\103\97\109\101\32\105\116\32\119\105\108\108\32\110\101\101\100\32\116\111\32\98\101\32\100\111\110\101\32\97\103\97\105\110\46\10\10\32\32\32\32\108\111\99\97\108\32\116\44\32\97\99\32\61\32\67\114\101\97\116\101\84\105\109\101\114\40\41\44\32\65\110\116\105\67\104\101\97\116\10\32\32\32\32\45\45\32\65\99\99\101\115\115\105\110\103\32\116\111\32\116\104\101\32\102\114\97\109\101\32\119\104\105\108\101\32\116\104\101\32\109\97\112\32\105\115\32\105\110\105\116\105\97\108\105\122\105\110\103\32\99\97\110\32\114\101\115\117\108\116\32\105\110\32\97\32\102\97\116\97\108\32\101\114\114\111\114\44\32\115\111\32\100\101\108\97\121\32\105\115\32\110\101\101\100\101\100\10\10\32\32\32\32\84\105\109\101\114\83\116\97\114\116\40\116\44\32\46\50\44\32\102\97\108\115\101\44\32\102\117\110\99\116\105\111\110\40\41\10\32\32\32\32\32\32\32\32\108\111\99\97\108\32\101\66\111\120\32\61\32\97\99\46\103\101\116\69\100\105\116\66\111\120\40\41\10\10\32\32\32\32\32\32\32\32\105\102\32\101\66\111\120\32\116\104\101\110\10\32\32\32\32\32\32\32\32\32\32\32\32\66\108\122\84\114\105\103\103\101\114\82\101\103\105\115\116\101\114\70\114\97\109\101\69\118\101\110\116\40\97\99\46\116\114\105\103\103\101\114\115\91\49\93\44\32\101\66\111\120\44\32\70\82\65\77\69\69\86\69\78\84\95\69\68\73\84\66\79\88\95\84\69\88\84\95\67\72\65\78\71\69\68\41\10\32\32\32\32\32\32\32\32\32\32\32\32\66\108\122\84\114\105\103\103\101\114\82\101\103\105\115\116\101\114\70\114\97\109\101\69\118\101\110\116\40\97\99\46\116\114\105\103\103\101\114\115\91\50\93\44\32\101\66\111\120\44\32\70\82\65\77\69\69\86\69\78\84\95\69\68\73\84\66\79\88\95\69\78\84\69\82\41\10\32\32\32\32\32\32\32\32\32\32\32\32\97\99\46\100\105\115\112\108\97\121\77\101\115\115\97\103\101\40\34\115\117\99\99\101\115\115\34\41\10\32\32\32\32\32\32\32\32\101\108\115\101\10\32\32\32\32\32\32\32\32\32\32\32\32\97\99\46\100\105\115\112\108\97\121\77\101\115\115\97\103\101\40\34\101\114\114\111\114\34\41\10\32\32\32\32\32\32\32\32\32\32\32\32\97\99\46\100\101\115\116\114\111\121\40\41\10\32\32\32\32\32\32\32\32\101\110\100\10\10\32\32\32\32\32\32\32\32\68\101\115\116\114\111\121\84\105\109\101\114\40\116\41\10\32\32\32\32\101\110\100\41\10\101\110\100\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\115\101\116\69\110\97\98\108\101\40\101\110\97\98\108\101\41\10\32\32\32\32\108\111\99\97\108\32\116\114\105\103\103\101\114\115\32\61\32\65\110\116\105\67\104\101\97\116\46\116\114\105\103\103\101\114\115\10\32\32\32\32\105\102\32\110\111\116\32\116\114\105\103\103\101\114\115\32\116\104\101\110\32\114\101\116\117\114\110\32\101\110\100\10\10\32\32\32\32\105\102\32\101\110\97\98\108\101\32\116\104\101\110\10\32\32\32\32\32\32\32\32\69\110\97\98\108\101\84\114\105\103\103\101\114\40\116\114\105\103\103\101\114\115\91\50\93\41\10\32\32\32\32\32\32\32\32\114\101\116\117\114\110\10\32\32\32\32\101\110\100\10\32\32\32\32\68\105\115\97\98\108\101\84\114\105\103\103\101\114\40\116\114\105\103\103\101\114\115\91\50\93\41\10\101\110\100\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\103\101\116\69\100\105\116\66\111\120\40\41\10\32\32\32\32\45\45\32\73\110\99\108\117\100\101\115\32\102\114\97\109\101\32\97\99\99\101\115\115\32\99\104\101\99\107\115\10\10\32\32\32\32\108\111\99\97\108\32\110\117\108\108\70\114\97\109\101\32\61\32\66\108\122\71\101\116\79\114\105\103\105\110\70\114\97\109\101\40\67\111\110\118\101\114\116\79\114\105\103\105\110\70\114\97\109\101\84\121\112\101\40\57\51\50\52\50\41\44\32\48\41\59\10\32\32\32\32\108\111\99\97\108\32\103\97\109\101\85\73\32\61\32\66\108\122\71\101\116\79\114\105\103\105\110\70\114\97\109\101\40\79\82\73\71\73\78\95\70\82\65\77\69\95\71\65\77\69\95\85\73\44\32\48\41\59\32\105\102\32\40\103\97\109\101\85\73\32\61\61\32\110\117\108\108\70\114\97\109\101\41\32\116\104\101\110\32\114\101\116\117\114\110\32\110\105\108\32\101\110\100\10\10\32\32\32\32\110\117\108\108\70\114\97\109\101\32\61\32\66\108\122\70\114\97\109\101\71\101\116\67\104\105\108\100\40\103\97\109\101\85\73\44\32\57\51\50\52\50\41\59\10\32\32\32\32\108\111\99\97\108\32\109\115\103\70\114\97\109\101\32\61\32\66\108\122\70\114\97\109\101\71\101\116\67\104\105\108\100\40\103\97\109\101\85\73\44\32\49\49\41\59\32\105\102\32\40\109\115\103\70\114\97\109\101\32\61\61\32\110\117\108\108\70\114\97\109\101\41\32\116\104\101\110\32\114\101\116\117\114\110\32\110\105\108\32\101\110\100\10\32\32\32\32\108\111\99\97\108\32\101\100\105\116\66\111\120\32\61\32\66\108\122\70\114\97\109\101\71\101\116\67\104\105\108\100\40\109\115\103\70\114\97\109\101\44\32\49\41\59\32\105\102\32\40\101\100\105\116\66\111\120\32\61\61\32\110\117\108\108\70\114\97\109\101\41\32\116\104\101\110\32\114\101\116\117\114\110\32\110\105\108\32\101\110\100\10\10\32\32\32\32\114\101\116\117\114\110\32\101\100\105\116\66\111\120\10\101\110\100\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\100\105\115\112\108\97\121\77\101\115\115\97\103\101\40\116\121\112\101\41\10\32\32\32\32\105\102\32\65\110\116\105\67\104\101\97\116\46\100\101\98\117\103\32\116\104\101\110\10\32\32\32\32\32\32\32\32\112\114\105\110\116\40\65\110\116\105\67\104\101\97\116\91\116\121\112\101\93\41\10\32\32\32\32\101\110\100\10\101\110\100\10\10\102\117\110\99\116\105\111\110\32\65\110\116\105\67\104\101\97\116\46\100\101\115\116\114\111\121\40\41\10\32\32\32\32\108\111\99\97\108\32\116\114\105\103\103\101\114\115\32\61\32\65\110\116\105\67\104\101\97\116\46\116\114\105\103\103\101\114\115\10\32\32\32\32\105\102\32\116\114\105\103\103\101\114\115\32\116\104\101\110\10\32\32\32\32\32\32\32\32\102\111\114\32\95\44\32\118\32\105\110\32\105\112\97\105\114\115\40\116\114\105\103\103\101\114\115\41\32\100\111\10\32\32\32\32\32\32\32\32\32\32\32\32\68\101\115\116\114\111\121\84\114\105\103\103\101\114\40\118\41\10\32\32\32\32\32\32\32\32\101\110\100\10\32\32\32\32\101\110\100\10\101\110\100\10")()
Replies (1)
24
ScorpioT1000, loadstring же вроде не работает в варкрафте
21
Можно тупой вопрос - а для чего его использовать? Если ютуберов мошенников ловить - так они могут из своих видео вырезать все детекты читов, под любым удобным предлогом. Если обычный синглплеер - так там игрок один играет, никому не вредит в катке. А какие ещё ситуации могут быть, чтоб требовалась античит система в сингле? В мультиплеер понятно, но там и читы не работают
Replies (6)
11
EugeAl, к примеру другу челленж в варкрафте устроить, и что-бы он не читерил (когда ты отвернулся) вставить эту систему
38
EugeAl, просто отключить стандартные средства читов в игре. Просто потому что они не требуются по задумке. В своей кампании я так делал, но по косвенным признакам, а не по чату.
Ты же отбираешь у юнитов стандартные абилки, убираешь ратушу в кастомках, почему не убрать читы?
21
ScorpioT1000, так ведь тут не отключение читов, а их отслеживание. Отключить читы из игры по умолчанию нельзя, разве что костыль написать на джассе, что если игрок вводит например warpten, то тут же с помощью нативки Cheat ввести чит повторно и снять эффект, аналогично с whosyourdaddy итд, или ещё как нибудь наказывать игрока.
25
ScorpioT1000, я, например, в своей карте детектил урон и если он был овердохера (при хузедадди урон выше в тысячу рвз), то заканчивал принудительно прохождение☺
38
Lord_Teo, там достаточно чтобы в скрытом месте дамми постоянно дамажил другой дамми и сверялся урон. С видимостью подобное
24
EugeAl, просто фича такая, можно добавить для разнообразия
там достаточно чтобы в скрытом месте дамми постоянно дамажил другой дамми и сверялся урон
Легендарные системы детекта на даммиках с жаром преисподней
6
Звучит странно, но интересно стало:
Используя подобную махинацию можно при этом ещё соединить триггер с убийством игрока молнией за применение команды чит-кода?)
Например: записал whosyourdaddy - смэрть от молнии.
СмЭЭЭрть(с акцентом деда)
Replies (7)
24
Vozmezdie, игрока убивать нельзя, это уголовно наказуемо.
6
Makeba, Я говорю в синглплеерном режиме...Если так не получится, тогда ладно...
38
Makeba, убить персонажа сегодня недостаточно, нужно поджечь пк игрока и устроить задымление дома?)
24
Vozmezdie, это шутка на тему, что лучше убивать таки юнита, чем игрока.
Да всё что угодно можно, почему нельзя, для этой цели наработка и создана.
6
Makeba, Я это и имел ввиду! XD
Хотелось создавать себе подобную кампанию в рпг-жанра как с Рексаром или с Сибирем РПГ(то есть Нортренд), где введение подобной команды сработает триггер где убивает ГГ и провалится миссия)
38
Vozmezdie, посмотри jc она открыта и там есть детект читов
6
ScorpioT1000, Она открыта с триггерами? 0_0
Просматривая подобные скриншоты, это пригодится другому челу...Который занимается машинимами...
The comment is deleted
24
A new version is out! Scroll to the resource
По рекомендациям хайва добавлена проверка на сингл-плеер режим и добавлено описание в шапку кода
To leave a comment please sign in to the site.