XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ZeToX2007

offline
Опыт: 7,009
Активность:
Система антимх
Всем привет, я вернулся.
Немного предыстории: когда-то раньше хотел обезопасить свой проект от зловещих читеров, но увы, полноценную систему так написать и не удалось, прошло несколько лет от нечего делать занялся написании собственных библиотек(mix-файлы) - хаками для варика, и нарвался на буржуйских сайтах исходники мх, как выяснил у них есть свои уязвимости, поняв принцип, принял выводу, что можно написать систему варовскими силами, которая способна распознать мх у игроков как только они включили его. www.youtube.com/watch?v=BOAB1nCZvPM
Код пока не выкладываю. Но если у кого есть желания добавить его в свой проект -пишите в личку.
Старый 09.07.2012, 01:48
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
1 вопрос
если в мх будет отключен клик по невидимым юнитам это будет работать?
Старый 09.07.2012, 01:57
ZeToX2007

offline
Опыт: 7,009
Активность:
Работает при включенном и отключенном сейвклике.
Старый 09.07.2012, 02:07
YellowStar
poon
offline
Опыт: 15,144
Активность:
Принимаю в личку.
Старый 12.07.2012, 13:04
ScorpioT1000
Работаем
offline
Опыт: отключен
Кидай в личку
Старый 12.07.2012, 14:06
ZeToX2007

offline
Опыт: 7,009
Активность:
да я и суда кину.
Код:
globals
        private  constant  real   TimePick      =  1.5
        
        public   unit             ShowPickUnit
        public   unit             VisPickUnit
        
        private  integer  array   counter1
        private  unit     array   lastunit1    
        private  unit     array   lastunit2
        private  boolean  array   testr1
        private  boolean  array   testr2
        private  boolean          first = true
        
        
        private  trigger          TriggerEn1
        private  trigger          TriggerEn2
        private  timer            TimerMh
    endglobals

    function ActionSelect takes nothing returns nothing
        local unit   u = GetTriggerUnit()
        local player p = GetTriggerPlayer()
        local integer id = GetPlayerId(p)
        if u == ShowPickUnit then
            set testr1[id] = true
            set testr2[id] = true
        endif

        if u == VisPickUnit then
            if (GetPlayerController(p) == MAP_CONTROL_USER) and  (GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING ) then
            if testr1[id] == false or testr2[id] == true then
            
            
               call DisplayTextToForce( GetPlayersAll(), GetPlayerName(p)+": Возможно мх" )
              //   Тут что то делаем с мап хакером
              
              
                call SelectUnit(ShowPickUnit, false)
            endif
                set testr1[id] = false
                set testr2[id] = false
            endif
        endif
        
        if ShowPickUnit != u and VisPickUnit != u then
            set counter1[id] = counter1[id] + 1    
            if counter1[id] == 12 then
                set lastunit1[id] = u
            endif
            if counter1[id] == 11 then
                set lastunit2[id] = u
            endif
            if counter1[id] > 12 then
                set counter1[id] = 12
    
            endif
        endif
    endfunction
    
    
    function ActionDeSelect takes nothing returns nothing
        local unit   u = GetTriggerUnit()
        local player p = GetTriggerPlayer()
        local integer id = GetPlayerId(p)

        if ShowPickUnit != u and VisPickUnit != u then
            set counter1[id] = counter1[id] - 1
            if lastunit1[id] == u then
                set lastunit1[id] = null
            endif
            if lastunit2[id] == u then
                set lastunit2[id] = null
            endif
        endif
        
        if u == ShowPickUnit then
            set testr2[id] = false
        endif
        

    endfunction
    
    
    function DetectMh takes nothing returns nothing
    
        if counter1[GetPlayerId(GetTriggerPlayer())] <= 10 then
            call SelectUnit(ShowPickUnit, true)
            call SelectUnit(VisPickUnit, true)
            call SelectUnit(VisPickUnit, false)
            call SelectUnit(ShowPickUnit, false)
        else
            call DisableTrigger(TriggerEn1)
            call DisableTrigger(TriggerEn2)
            call SelectUnit(lastunit1[GetPlayerId(GetLocalPlayer())], false)
            call SelectUnit(lastunit2[GetPlayerId(GetLocalPlayer())], false)
            call SelectUnit(ShowPickUnit, true )
            call SelectUnit(VisPickUnit, true)
            call SelectUnit(VisPickUnit, false)
            call SelectUnit(ShowPickUnit, false)
            call SelectUnit(lastunit1[GetPlayerId(GetLocalPlayer())], true )
            call SelectUnit(lastunit2[GetPlayerId(GetLocalPlayer())], true )
            call EnableTrigger(TriggerEn1)
            call EnableTrigger(TriggerEn2)
        endif
    
    endfunction
    
    
    
    private function InitAntiMh takes nothing returns nothing
        local integer i = 0
        
        set ShowPickUnit = gg_unit_hpea_0000
        set VisPickUnit  = gg_unit_hpea_0067
        
        
        set TriggerEn1 = CreateTrigger()
        set TriggerEn2 = CreateTrigger()
        
        loop
        exitwhen i > 12
            call TriggerRegisterPlayerUnitEvent(TriggerEn1, Player(i), EVENT_PLAYER_UNIT_SELECTED, null)
            call TriggerRegisterPlayerUnitEvent(TriggerEn2, Player(i), EVENT_PLAYER_UNIT_DESELECTED, null)
            set  i = i + 1
        endloop
     
        call TriggerAddAction( TriggerEn1, function ActionSelect )
        call TriggerAddAction( TriggerEn2, function ActionDeSelect )
     
        set TimerMh = CreateTimer()
        
        call TimerStart(TimerMh,TimePick,true,function DetectMh)
        
        
    
    endfunction


ZeToX2007 добавил:
public unit ShowPickUnit
public unit VisPickUnit

это 2 юнита, их нужно самому создать, 1 на скрытом участке карты, другого на открытом.

блин, там ещё должна быть объявлена библиотека.


З.Ы. у кого нибудь есть мапхак с невозможностью выделения?
Старый 12.07.2012, 18:52
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
ZeToX2007:
З.Ы. у кого нибудь есть мапхак с невозможностью выделения?
в garena master есть включение/выключения клика по невидимым юнитам, если при выключенном клике система не робит, то в топку, я отключением обходил антимх в эвиксе
Старый 12.07.2012, 19:16
Extremator

offline
Опыт: 39,428
Активность:
хммм... сорь, не читаю всю тем целик, сразу просто задам вопрос...
А разве нельзя просто создать даммиков на карте где нить в чёрном пространстве, одного видимого, а одного невидимого...
обнести блокираторами зрения, и переодически хотя бы раз в 5-10 сек проверять, видит ли их какой либо игрок...
или хаки это обходят?
я просто не имею опыта в "общении" с ними, никогда не юзал, и как-то не тянет хД
Старый 12.07.2012, 23:37
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
хаки это обходят
Старый 13.07.2012, 00:00
abrams
Безумец
offline
Опыт: 832
Активность:
а проблем то - поставьте огромного юнита-даммика (мировое древо) в углу карты, куда невозможно добраться
при выключенном тумане войны вся карта тупо будет закрыта
Старый 15.07.2012, 14:23
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
легко обходил в гоблинах такое или где оно было, надо уметь юзать мх, что сказать
Старый 15.07.2012, 16:56
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Хочу, знать тех кто уже опробовал данную систему: Работает?
И хочу знать по какому принципу работает данная система, тоесть хочу знать каким же всетаки способом отлавливает читеров, так как не все дружат с Jass и можно будет сделать это на триггерах или в Jass триггерах, неважно...
И спрошу так:
А разве читер не ловится следующим способом:
Ставим на карту нивидимый юнит и отдаём ему приказ бродить по карте и каждые 10 минут, делаем так чтобы все игроки кликнули на этого юнита. Если ктонить СМОГ на него кликнуть, то идет проверка есть ли рядом с этим юнитом ПОДОЗРЕВАЕМЫй, если нету, то игрок МХ.
Разве это несработает?
Старый 15.07.2012, 19:50
Absol
Kicked by Эльрат
offline
Опыт: 1,872
Активность:
Цитата:
Сообщение от Xipxop
Разве это несработает?


ну так проверить же это 2 минуты работы, зачем задавать вопрос?
Старый 16.07.2012, 01:13
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Xipxop, хаков куча, от мала до велика и особенности у всех разные, вот я скачал мх для ICCUP, причём его рекламили на самом айкапе. работает, суть такова, топо видно всех юнитов как будто они в инвизе а ты с гемом, пикать нельзя...
ZeToX2007, а тут сработает эта система отлова мх, пикать нельзя, тока видно и то тока геров и руны.
Старый 16.07.2012, 07:35
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от Xipxop
Хочу, знать тех кто уже опробовал данную систему: Работает?


бывает:

Старый 16.07.2012, 11:16
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
ну и что показывает данный скрин? что тот рак забыл выключить клик по юнитам?
Старый 16.07.2012, 21:00
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от 16GB
ну и что показывает данный скрин? что тот рак забыл выключить клик по юнитам?

В некоторых мх, клик по юнитам заменен на сейвклик.
Старый 17.07.2012, 01:25
Holocauster
INRI
offline
Опыт: 4,249
Активность:
А если сделать так, чтобы юниты в тумане войны были 100% прозрачны и исчезли с миникарты (как пассивка морты в старых версиях). Так же и с инвизерами. Попытаться сделать это для каждого игрока отдельно... Хотя я скорее всего сморозил глупость.
Старый 23.07.2012, 22:11
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Holocauster, ну с прозрачностью то можно, для конкретного игрока, но только вот, нету проверки на туман войны а есть проверка видит ли игрок точку....
Дак вот, если он всё же видит, чё тогда, из прозрачного делаем непрозрачного?
Старый 24.07.2012, 05:31
Holocauster
INRI
offline
Опыт: 4,249
Активность:
Просто вот представь: мхкер врубает мх, а там юниты, что в тумане войны становятся прозрачными и с карты пропадают. Думаешь он будет с лупой искать тени, которые оставляют юниты по всей карте? Он просто забьет на это. А проверку можно сделать, скажем, по дальности видимости. Поясняю: у крипа, допустим, дальность обзора 1200 днем и 800 ночью. Так как он общий со всеми союзниками, то его включаем в триггер. Каждые 0.04 с. выбрать всех юнитов игроков с 1 по 5 и крипов, расчитать у каждого дальность обзора, сделать всех, кто вне ее прозрачными для данных игроков и убрать их с миникарты. Недочетом будет "плавный переход ночи и дня", т.к. триггерно резкий "пик" юнитов, когда юнит двигается, то туман не сразу исчезает. Но можно например расчитать это время. Гемморно но должно сработать.
Старый 24.07.2012, 10:50
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:23.