Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Lightbulb 
Защита карты на сервере от кражи
Сообщение #1073810
Сервер CSS.
Не всегда удается защитить карту от кражи и запуск на другом сервере.. Даже всеми известными способами защитить геометрию и дизайн карты весьма проблематично.. но моя тема направлена на защиту логики на карте..

Например берется любая карта и встраивается туда какая-нибудь зверская логика, которая вкорне может изменить геймплей на карте.. Те же минигейм карты..

В основе защиты лежит идея перенаправления части сигналов логики на самом сервере (роутинг), которая лежит на сервере в виде cfg файла.. При запуске карты на другом сервере логика не будет работать.. А если декомпилить, то восстановить работоспособность карты будет почти не возможно без cfg "файла-ключа". К тому же некоторые злодеи при краже карт любят вырезать энтитю point_servercommand, в таком случае карта в двойне не будет работать...

Существует 2 уровня защиты логики:
1) Перенаправление аутпутов;
2) Создание части логических энтитей скриптовым путем.

Логические элементы на карте взаимодействуют с собой с помощью 1/0 связей (аутпутов). Задача защиты в том чтобы перенаправить эти аутпуты на сервер (обращение к cfg файлу), а с него идет аутпут на последующие энтити на карте..

Пример:

На карте кнопка, лампочка (light_01) и дверь func_movelinear (door_01).
При нажатии кнопки- открывается дверь.
Когда полностью открылась дверь- выключить свет.


Всего 2 аутпута.. их нужно защитить.

Создаем в папке конфигов на сервере файл logic.cfg
Ставим logic_auto и point_servercommand (ServCommand). Аутпут между ними:
OnMapSpawn -> ServCommand -> Command : exec logic -запускаем наш конфиг с логикой.

В аутпутах кнопки пишем:
OnPressed -> ServCommand -> Command : +DO (Типа Door Open. Пишем любое свое сокращение, только без пробелов и символов.. )

В аутпутах двери пишем:
OnFullyOpen -> ServCommand -> Command : +LO (Light Off)

Теперь пишем в конфиге:

code:
alias +DO "ent_fire doot_01 open"
alias +LO "ent_fire light_01 TurnOff"


Вся логика выполняется конфигом, по этому ее никто не стырит.. Гыгы.
Особенно если на некоторых картах сотни (и даже тысячи) элементов логики, защита может быть очень полезной..

Задержки во время такого перенаправления думаю почти исключены..

Как вам идея..?

PS. О втором уровне не пишу т. к. он намного геморней.. да и шанс багов больше...

К тому же есть возможность управления процессами на карте без перезапуска сервера и тем более без переделывания карты...

Поправил Stridemann 21-07-2012 в 23:54

Old Post 21-07-2012 23:48
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #1073821
Есть что защищать?
Есть от кого защищать?
Были попытки кражи?
Оно того стоит?

Когда защищаешь диплои, первый вопрос на который ты должен сам себе ответить - "зачем я это всё делал?". Иными словами нужно обосновать целесообразность. Начать нужно было с этого. Нужно ли вообще это всё кому-то?
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 22-07-2012 07:42
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KorDen
(Senior Member)

Зарегистрирован: Jul 2010
Проживает: /
Написал: 1729 сообщений

Оценка: 27 Votes 27 чел.

Сообщение #1073822
Кстати да, идея не плохая, а особенно реально реализовать изменение действий, например по голосованию...
Есть еще один вариант, более заморочный - например часть логики обрабатывать будет плагин SM, тогда можно и не такое сделать... Ведь например, я беру чисто тупой пример - у меня на сервере стоит плагин Blocker Passes - смысл в том, чтобы например когда в команде меньше N человек, то блокировался на "дасте" плент Б, и так далее. Но если поиграться с настройками этого плагина и немного этот плагин изменить, то от количества игроков может вообще вся карта перестраиваться... Это я к тому, что можно часть каких-то ключевых объектов/энтитей/... вообще ставить на карту плагинами, тем самым даже делая на одной карте разное. Например сейчас с помощью все того же мною пеерписанного плагина Blocker Passes, совместно с плагином CronJob (выполнение заданий по расписанию), делаю "мегадаст" сервер - стоит карта de_dust2_unlimited, но при определенном колиестве игроков блокируются дополнительные проходы и она становится обычным de_dust2 (можно еще подобрать точно материалы, тогда вообще отличий не будет видно), когда игроков вообще мало, карта становится похожа на de_dust2_2x2, плюс еще думаю, а нельзя ли сделать, чтобы карта становилась "ночной" (de_dust2_night).

Тут есть еще один плюс - так как все генерируется сервером, то игрокам получается скачивается толкьо базовая карта, причем еще без изменения карты может быть вообще координально меняться карта, например, вопрос к мапперам и в частности к Страйду (я в хаммере не особо смыслю) - а можно ли например сделать, чтобы при помощи того же ent_fire например от состояния какого-то элемента зависили точки респауна команды? Тогда можно будет вообще сделать как в TF2 этапы, только немного по другому: в одной карте объединить de_dust2 и de_dust (а еще может туда cs_office какой-нибудь запихнуть?) и будет получаться, что карта меняется без смены карты на серве!
Old Post 22-07-2012 07:57
KorDen отсутствует Посмотреть данные 'KorDen' Отправить Приватное Сообщение для 'KorDen' Найти другие сообщения 'KorDen' Добавить KorDen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #1073828
Игорь
+, самому первым именно этот вопрос и пришел в голову
Страдаем паранойей, пытаясь защититься от мнимой угрозы, при этом до создания контента, который действительно стоило бы защищать от кого-то - как до луны..
Old Post 22-07-2012 08:59
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KorDen
(Senior Member)

Зарегистрирован: Jul 2010
Проживает: /
Написал: 1729 сообщений

Оценка: 27 Votes 27 чел.

Сообщение #1073833
Цитата:
Оригинальное сообщение от Stone
Игорь
+, самому первым именно этот вопрос и пришел в голову
Страдаем паранойей, пытаясь защититься от мнимой угрозы, при этом до создания контента, который действительно стоило бы защищать от кого-то - как до луны..

Здесь имеется больше ввиду защита от "школоты", которая часто выкладывает карты под "своими", и прочее подобное. Те, кто знает и умеет, вполне могут разобраться, поиграв на сервере и поняв что за что отвечает, и потом, обычно такие люди уважают чужие труды
Old Post 22-07-2012 11:09
KorDen отсутствует Посмотреть данные 'KorDen' Отправить Приватное Сообщение для 'KorDen' Найти другие сообщения 'KorDen' Добавить KorDen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1073845
Цитата:
Оригинальное сообщение от FishMan
Есть что защищать?

Да, уникальные полностью готовые ГОТОВЫЕ и запакованные 4 карты (на днях будет 5-я)

Цитата:
Оригинальное сообщение от FishMan
Есть от кого защищать?

Как сказал KorDen "от "школоты", соглашусь с ним..


Цитата:
Оригинальное сообщение от FishMan
Были попытки кражи?

Публично карты не выпускал, но были, не у меня..

Цитата:
Оригинальное сообщение от FishMan
Оно того стоит? Нужно ли вообще это всё кому-то?

Я вот тоже подумал.. У меня есть карты, запущу на своем сервере.. И нафиг мне вообще думать что кто-то где-то стырит и будет юзать в своих целях.. Даже находил плюсы в этом.. Я сделал карту, пусть она принесет пользу не только моему серверу..
НО. Главный администратор серверов захотел чтобы я поставил защиту и карта работала ТОЛЬКО на наших элитных серверах SN-team.. Главный админ захотел.. +со своей стороны я тоже вижу плюсы в защите (от школоты).. Так что...


Цитата:
Оригинальное сообщение от Stone
Страдаем паранойей, пытаясь защититься от мнимой угрозы, при этом до создания контента, который действительно стоило бы защищать от кого-то - как до луны..

В карте 400 метров контента.. Вот почему-то его я не собираюсь защитить.. оО


Если я например беру какую-то карту, например de_dust2, добавляю кучу логики которая действительно добавляет хорошего геймплей, при этом мне не нужно парится чтобы защитить саму карту.. а только логику...


Цитата:
Оригинальное сообщение от KorDen
вопрос к мапперам и в частности к Страйду (я в хаммере не особо смыслю) - а можно ли например сделать, чтобы при помощи того же ent_fire например от состояния какого-то элемента зависили точки респауна команды? Тогда можно будет вообще сделать как в TF2 этапы, только немного по другому: в одной карте объединить de_dust2 и de_dust (а еще может туда cs_office какой-нибудь запихнуть?) и будет получаться, что карта меняется без смены карты на серве!

Первое. Карты РАЗНЫЕ по дизайну объеденить ПОЧТИ НЕ ВОЗМОЖНО. Например офис и даст, в которых цвет амбиента в одной синий, в другой желтый..
Второе. Ограничения компилятора не дадут объеденить карты..
Я в своей практике уже объеденял даст1 и даст2.. Даже скажу больше, я это делал на слабом 2Ghz нетбуке..

А насчет смены спавнов.. Да, я это могу сделать маппингом.. Нужно сделать просто Spawn manager (я его так назвал). Распределитель игроков.. Теоретически можно сделал систему выбора точки спавна как в батлфилде..
Я тут еще один вид геймплея придумал.. Захват территории.. Когда команда захватывает территорию, то точки спавна команды сдвигаются вперед вместе с захватом.. К тому же можно выбрать точку спавна..

Поправил Stridemann 22-07-2012 в 17:02

Old Post 22-07-2012 15:59
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
KorDen
(Senior Member)

Зарегистрирован: Jul 2010
Проживает: /
Написал: 1729 сообщений

Оценка: 27 Votes 27 чел.

Сообщение #1073847
[offtopic]
Цитата:
Оригинальное сообщение от Stridemann
...... SN-team.. Мне деньги платят, значит он заказывает музыку..


О-ля-ля... Главные конкуренты же Сюрпрайзы отовсюду...[/offtopic]
Old Post 22-07-2012 16:28
KorDen отсутствует Посмотреть данные 'KorDen' Отправить Приватное Сообщение для 'KorDen' Найти другие сообщения 'KorDen' Добавить KorDen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1073850
Цитата:
Оригинальное сообщение от KorDen
[offtopic]

О-ля-ля... Главные конкуренты же Сюрпрайзы отовсюду...[/offtopic]

Чьи конкуренты..?
Не так выразился.. мне деньгу платят не за маппинг, а за управление сервом.. Да пофиг.. Оффтоп!


UPD. Плохие новости.. Случилось то, чего я боялся.. Я тестировал эту технологию на сервере клиента (создать карту и т. д.) А теперь запустил ее на Dedicated server.. Сервер отказывается выполнять эту команду без включенного sv_cheats 1.. Печалька..((
Мне даже не нравится идея с включением читс на 0.2 сек чтобы успеть запустить нужные команды..

Может попробовать SM плагин написать какой-то..

Поправил Stridemann 22-07-2012 в 17:38

Old Post 22-07-2012 17:02
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KorDen
(Senior Member)

Зарегистрирован: Jul 2010
Проживает: /
Написал: 1729 сообщений

Оценка: 27 Votes 27 чел.

Сообщение #1073856
Цитата:
Оригинальное сообщение от Stridemann
Не так выразился.. мне деньгу платят не за маппинг, а за управление сервом..
Ага, я в общем про SN, а не про конкретное создание карт, если по конкретнее, то про дикий DM...
Цитата:
Оригинальное сообщение от Stridemann
Может попробовать SM плагин написать какой-то..

Ну... Я например как-тов идел на jail сервере, что двери открывались на картах плагином по таймеру, так что ent_fire вполне возможно делать через плагины, там только не команда выполняется, а задается свойство...
Но это уже получится конечно геморрой относительно изменения и добавления... Хотя, если написать толковый скрипт, который будет грузить конфиг на подобие того же cfg, где например написаны начальные и конечные точки (всмысле DO и door_01 open), то это будет лучше

Поправил KorDen 22-07-2012 в 18:10

Old Post 22-07-2012 18:04
KorDen отсутствует Посмотреть данные 'KorDen' Отправить Приватное Сообщение для 'KorDen' Найти другие сообщения 'KorDen' Добавить KorDen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stridemann
(Инженер-изобретатель)

Зарегистрирован: Jun 2009
Проживает: Украина/Киев/
Написал: 2304 сообщений

Оценка: 95 Votes 95 чел.

Developer 
Сообщение #1073902
Я же помню, такая тема уже подымалась..
Только немного я изменил.. И про включение читов я еще тогда догадался..

Есть плагин позволяющий пропускать такие команды через сервер (если у админа имеется соотв. флаг). https://forums.alliedmods.net/showthread.php?p=948015 Но тут не админ, а сам сервер..
ладно, ченить можно придумать..
Old Post 24-07-2012 00:01
Stridemann отсутствует Посмотреть данные 'Stridemann' Отправить Приватное Сообщение для 'Stridemann' Найти другие сообщения 'Stridemann' Добавить Stridemann в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
KorDen
(Senior Member)

Зарегистрирован: Jul 2010
Проживает: /
Написал: 1729 сообщений

Оценка: 27 Votes 27 чел.

Сообщение #1075282
Итак, появилась одна интересная мысль, решил поискать - вот есть например https://forums.alliedmods.net/showthread.php?p=663070 - Entity Tools - можно изменять свойства энтитей.
Вот еще, меньше требований к расширениям - https://forums.alliedmods.net/showthread.php?p=1265398 - Trigger Mapentity
Сам еще не проверял, скорее всего буду проверять сразу вторую, не хочу ставить кучу расширений на сервер
В итоге для второго например вместо ent__fite надо писать sm_trigger_mapentity
Old Post 11-08-2012 15:09
KorDen отсутствует Посмотреть данные 'KorDen' Отправить Приватное Сообщение для 'KorDen' Найти другие сообщения 'KorDen' Добавить KorDen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 23:13.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены