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

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

Закрытая тема
 
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт: 80,259
Активность:
Защита карты от редактирования
Лет несколько назад мне попадались карты, весьма интересно защищённые от редактирования. Они открывались, можно было вносить изменения в триггеры\объекты\ландшафт, но при попытке сохранить карту World Editor вылетал с фатальной ошибкой. Так как тогда мне это совершенно не было нужно, то я и внимания не обратил. А теперь вот понадобился именно такой способ закрыть карту. А карты те я к сожалению то ли у себя не сохранил, то ли удалил за ненадобностью.
Если кто-то знает, как делается такая защита, большая просьба помочь. Заранее спасибо.
Старый 08.11.2011, 09:19
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
После компиляции добавить в war3map.j код, который вызывает крит при сохранении.
К сожалению, такой код у меня никогда не оставался, ибо критовало =)
Имхо делается именно так
Старый 08.11.2011, 09:39
JaBeN_Симфер

offline
Опыт: 20,050
Активность:
Clamp, ухаха :)
Trok-Ferot, Widgetizer 1.93 + WC3 Map Optimizer 4.9 (Vexorian). В папке Widgetizer надо заменить файлы более новыми, из mpq своего вара.
Старый 08.11.2011, 17:21
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Цитата:
Сообщение от JaBeN_Симфер
Widgetizer 1.93 + WC3 Map Optimizer 4.9 (Vexorian).

крит при запуске карты, а надо при сохранении
Старый 08.11.2011, 17:31
JaBeN_Симфер

offline
Опыт: 20,050
Активность:
Clamp, может у кого-то в блокнотике записан такой код, но я недооцениваю такую защиту.
Старый 08.11.2011, 17:51
SITX
Finally
offline
Опыт: 4,541
Активность:
Эм, читал где-то на форуме, что если в карте заменить .w3g на этот же файл из другой карты, то при сохранении триггеры путаются и фаталит.
Старый 09.11.2011, 00:47
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт: 80,259
Активность:
Всё вышеизложенное не работает, к сожалению. Есть ли ещё варианты?
Старый 24.12.2011, 01:26
Jko_0

offline
Опыт: 1,407
Активность:
Создай Erorr строчку в мапе открытой Txt, будет мешать открыть и сохранять.И в варике пойдет
Старый 24.12.2011, 12:02
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт: 80,259
Активность:
Jko_0, мне нужен способ, который мешает сохранить, но не мешает открыть, о чём и написано в первом сообщении темы.
Старый 24.12.2011, 21:09
Hanabishi
COOL STATUS
offline
Опыт: отключен
Мешать сохранить, кажется, нельзя, т.к. эдитор ребилдит архив при сохранении => если мапу открыл, то и сохранит. Хотя может там баг какой на это дело есть хз.
Другое дело, можно вручную прогнать war3map.j через векса и заменить, далее заменить war3map.wtg на аналогичный из пустой/левой карты. Тогда при попытке сохранения весь код утеряется и карта станет неработоспособной.
Hanabishi добавил:
А декор и импорт защищать не имеет смысла, т.к. всё равно легко депротектится\достаётся.
Старый 24.12.2011, 21:22
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Раньше был хитропопый баг с заменой wtg файла: добавлялось в редакторе триггеров что-то наподобие
function Crash takes nothing returns nothing
loop
if GetExpiredTimer()==null then
endfunction
это с вызовом при инициализации сохраняли, эдитор крашился, wtg файл из такой версии извлекали из временной папочки и пихали в оригинал. Итог - при попытке сохранения эдитор крашится, но в самой игре всё работает.
Сейчас эдитор с горем пополам, но не давится такой конструкцией. Не фаталит, возможно - дело в патчах
FellGuard добавил:
похоже, это был единственный способ. Т.е. надо придумать код, который гарантировано вызовет краш.
Старый 24.12.2011, 21:27
Doc

offline
Опыт: 63,163
Активность:
FellGuard, у меня эдитор крашился от очень длинной строки в кастом скрипте, хотя и не знаю, поможет ли это.
Старый 24.12.2011, 21:34
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
о, шикарно, надо проверить, спасибо
FellGuard добавил:
поможет - по аналогии с ф-ей Crash
Старый 24.12.2011, 21:35
JaBeN_Симфер

offline
Опыт: 20,050
Активность:
от очень длинной строки в кастом скрипте
Наверное имеется в виду, что вся строка от начала и до конца имеет очень много символов, а где она находится не важно, т.е. можно заменить war3map.j с длинной строкой в любой, даже не вызываемой функции.
Старый 24.12.2011, 22:13
Proffy

offline
Опыт: 127
Активность:
для версий 1.24 и ранее можно попробовать использовать вот это :
(код писал не я)
Using this system will report any modification to the map script. Combined with map optimisation it will effectively stop people from using a modified version of your map, as it disables all GUI trigger functionality and all JASS triggers (with the exception of libraries, for technical reasons) on detection of modification.
It is recommended that all functioning vJASS code is writeen within scopes (with the exception of systems) in order for them to be disabled on modification detection.
» anti cp
((код jass
scope AntiCP initializer Init
****************************************************************************************

| Anti-CheatPack System v1.00 by Coleen |

Using this system will report any modification to the map script. Combined with map
optimisation it will effectively stop people from using a modified version of your
map, as it disables all GUI trigger functionality and all JASS triggers (with the
exception of libraries, for technical reasons) on detection of modification.

It is recommended that all functioning vJASS code is writeen within scopes (with the
exception of systems) in order for them to be disabled on modification detection.


Implementation Instructions:

1. Create a blank disabled trigger named AntiCPConfig, convert to custom text
2. Copy/Paste the AntiCPConfig library into the blank trigger
3. Click the name of your map in the left-hand panel in the trigger editor
4. Copy/Paste the AntiCP scope into the Custom Text section
NB: The scope MUST be at the VERY top of the custom text section, and
NOT in a blank trigger
5. Follow the instructions in the AntiCPConfig library
6. Set the HANDLE_COUNT variable below to the output of the library
7. Configure other constants below
8. Set ENABLED = true
9. Save your map and enjoy

NB: Every time you save a final version run the AntiCPConfig library again
as the handle count has probably changed
NB: When modifying your map set ENABLED = false, and set it to true again
when a final version is saved

****************************************************************************************
globals
Output of AntiCPConfig library
private constant integer HANDLE_COUNT = 0
System enabled or disabled
private constant boolean ENABLED = false
Disable triggers initializers on detection?
private constant boolean TRIGGER_DISABLE = false
Show a message to players if modification is detected?
private constant boolean SHOW_TEXT = true
Text to display when SHOW_TEXT = true
If SHOW_TEXT = false it is recommended that this string be emptied (i.e. = "")
private constant string DISP_TEXT = "This map has been modified. Please delete it and redownload from a trusted source."
endglobals
private function T2I takes trigger t returns integer
return t
return 0
endfunction

private function Init takes nothing returns nothing
local integer i
local trigger t = CreateTrigger()
if (T2I(t) - 1048584) != HANDLE_COUNT and ENABLED then
if SHOW_TEXT then
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS, DISP_TEXT)
endif
if TRIGGER_DISABLE then
set i = i
endif
endif
call DestroyTrigger(t)
set t = null
endfunction

endscope
))
» anti cp config
((код jass
library AntiCPConfig initializer Init requires
****************************************************************************

| Anti-CheatPack Configuration Functions by Coleen |

Configuration Instructions:

1. Uncomment the 'requires' line above these instructions
2. Add in the name of every library in your map separated by ,
NB: If you have no vJASS libraries in your map ignore these two steps
3. Enable this trigger
4. Save your map
5. Click 'Test Map' and write down the number that is displayed
once the game starts (Handle Count: ...)
6. Exit the game
7. Disable this library
8. Keep this library within your map
9. Repeat these instruction every time you save a final version

****************************************************************************
private function T2I takes trigger t returns integer
return t
return 0
endfunction

private function Init takes nothing returns nothing
local trigger t = CreateTrigger()
call BJDebugMsg("Handle Count: " + I2S(T2I(t) - 1048584))
call DestroyTrigger(t)
endfunction

endlibrary
))

Отредактировано Proffy, 25.12.2011 в 21:54.
Старый 25.12.2011, 21:44
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Proffy, не будет пахать на 1.24+
Старый 25.12.2011, 21:50
Doc

offline
Опыт: 63,163
Активность:
JaBeN_Симфер, я имел в виду не кастом код, а конкретно гуишный кастомскрипт.
Doc добавил:
alexprey, угу а про GetHandleId() слышал?
Старый 25.12.2011, 21:53
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Doc, слышал, но он то юзает RB
Старый 25.12.2011, 21:56
Diazzz
Допустимый статус
offline
Опыт: 13,797
Активность:
У меня карта отказалась сохраняться когда в гуи было условие слишком длинное. Не знаю как описать...
Ну вот было у меня Если, то если. И в каждое если я постоянно добавлял чтото новое. Понадабовлял туда штук 80 "Иначе", и карта сфаталила при попытке сохранить.
Если:
Блабла
То
Блабла
Иначе1
_ Если:
_ Блабла
_ То
_ Блабла
_ Иначе2
__ Если:
__ Блабла
__ То
__ Блабла
__ Иначе3
__ ...
____ Если:
____ Блабла
____ То
____ Блабла
____ Иначе100500
Может просто редактор корявый у меня, а может действительно поможет не дать сохранить карту.
Старый 25.12.2011, 21:58
Doc

offline
Опыт: 63,163
Активность:
И по-твоему, замена невозможна?
Я к тому, что это глупый спор, РБ свободно переводится на 1.24 заменой функций.
Старый 25.12.2011, 21:59
Закрытая тема

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

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

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

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



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