<--ADV-->



     No avatar



  18.05.2012
  Привет Гость!

  А вы уже зарегистрировались?   [Зачем?]
  История сайта
  Группа: Прохожие
  Ваш IP: 38.107.179.232
Навигация
Главная страница Читы для CSS Читы для CS 1.6 Шаблоны для uCoz SEO блог Форум Пользовательские карты Друзья сайта Ты PRO? Пользовательские префабы Доп. файлы for Valve Hammer Поиск Правила проведения CW REVOLUTiON CSM SourceSDK SP4 Скачать Css v34 Скачать Counter Strike Source v61 Учебник по картостроению для CSS Новости Архив файлов [Список] Архив статей   [Список] Архив видео    [Список]
Форма входа
E-mail:
Пароль:
Опрос
Раньше ели редьку с квасом да попёрдывали басом

Ответов: 178
Статистика
Онлайн всего: 5
Гостей: 4
Пользователей: 1
Fokir

Зарег. на сайте
Всего: 1372
Новых за месяц: 33
Новых за неделю: 8
Новых вчера: 2
Новых сегодня: 3
» Из них
Админы сайта: 1
Модераторов: 0
Проверенных: 8
Обычных юзеров: 1363
» По полу
Парней: 1338
Девушек: 33
Комментарии: 513
Форум: 206/1441
Новости: 56
Файлы: 1008
Статей: 379
Видео: 91
Тесты: 1






Скачать все для CS - CSfile.org
Траст. Анализ сайта seo.virtes.ru
Главная » Файлы » Другое » Статейки


Кодовый замок
  Разместил: SEKTANT · Просмотров: 935 ·
Категория: Статейки

Автор не я,а вроде как JOHN,если конечно он сам её не стянул)

Итак, существенно более простой, понятный, и в то же время более функциональный и удобный кодовый замок.
На его осмысление ушло минут 15-20, т.к. я не курю, то ничего не выкурил, но исписал примерно 5 квадратных сантиметров белой бумаги простым карандашом :)

Реализация долго не рождалась, но это скорей от того, что я первый раз юзал math_counter.

1. Что же мы сделаем?
О, это будет то, что надо. Мы сделаем такой замок, в который можно относительно удобно задавать любой код, числами в десятичном виде, т.е. как мы и привыкли, и пока этот код не будет натыкан кнопками, или еще каким-нибудь известным лишь Вам способом, замочек не пошлет свой заветный аутпут дверке, и та не откроется. Или не дверке а супер-мега-механизму. Все зависит от Вашей фантазии...
При желании можно будет снабдить замочек автоматическим случайным кодом, и тогда злобные игроки проходя вашу карту 2 раз, не смогут почитать солюшен, или вспомнить что код был 123. Код изменится. Но для этого варианта придется сделать и нечто, что этот код отобразит(об этом позже).
При желании Вы можете заменить цифры таинственными знаками, лишь бы сами не запутались в них :). Тогда рекомендую расположить знаки так, чтобы Вы четко ориентировались какой знак - какая цифра. Тогда в уме можно будет прикинуть какой нужно поставить код, чтобы сработала комбинация из мега-таинственных знаков.
Если это то, что Вам нужно, то потрудитесь освоить следующий раздел. Он проще чем кажется. Если я достаточно понятно изъясняюсь, уйдет минут 15-20.
2. Сам замок, и как он работает.
В этом разделе мы создадим полностью рабочий кодовый замок с фиксированным кодом(который Вы придумаете) и с одним ограничением - код не должен начинаться с нуля. Он уже будет работать, и если окажется что это было тяжело, и Вам дальше не захочется читать, можно будет его полноценно использовать на своих картах.

Для начала создадим математику и логику.
Это еньтитьки math_counter и logic_compare.
math_counter обзовем (name) math_counter1
logic_compare обзовем logic_compare1.
Да, вот так бесхитростно, и понятно :) .

Счетчик - math_counter будет выступать в роли элемента который поймет что мы натыкали. Т.е. если мы набираем 3845095, то это число и будет текущим значением данного счетчика.
Элемент сравнения чисел - logic_compare будет сравнивать заданное ему число, с тем что мы натыкали счетчику с помощью кнопок.

Кнопки создаются очень просто. Делаете брашик по размерам кнопки(1-4 юнита примерно) конвертируете его в еньтитьку func_button.

Кнопка первая, образ для остальных:

Name button1 (разумеется нужно будет для всех кнопок переделать цифру)

Аутпут1:
My output named - OnPressed (когда нажимается)
Target entities named - math_counter1 (цель аутпута - счетчик)
Via this input - Multiply (что мы ему делаем - умножаем
With a parameter override of - 10 (на сколько - на десять :) )

Аутпут2:
Скопируйте первый аутпут, и измените два последних значения для простоты.
My output named - OnPressed
Target entities named - math_counter1
Via this input - Add (а здесь - прибавляем)
With a parameter override of - 1 (прибавляем значение нажатой кнопки)
After a delay in seconds of 0.01 (чтобы прибавлялось после умножения). В принципе у меня работало и без этого параметра, просто если есть 2 аутпута в одно и то же время, они могут выполниться в разной последовательности. А в нашей ситуации это до неузнаваемости изменит код, так что лучше перестраховаться.

Предпоследний параметр - единица, зависит от кнопки(там написано "а здесь - прибавляем"). Он здесь единица лишь потому, что кнопка первая.
На второй кнопке имя и этот параметр будут уже соответственно button2 и 2. И так далее до нуля.

Если хотите хоть какую-нибудь текстуру, а своей пока нет(нормальных текстур цифр в оригинальной халфе нет), можно использовать sprites/numbers. Для тренировки более чем подойдет.

На данном этапе, нужно настроить свою первую кнопку чтобы она правильно "нажималась" в нужном направлении, и возвращалась с необходимой скоростью. Чтобы потом все 12 кнопок не переделывать.
Как вариант:
--
Move Direction - поверните белую полоску в ту сторону, в которую бы вы хотели чтобы кнопка двигалась относительно вида сверху.
Speed - 200
Lip - 1
Delay before reset - 0.1
--
Это нужно лишь для того, чтобы они быстро нажимались, и быстро "отпускались" .

Вот че у меня вышло:

Теперь создадим еще одну кнопку, для сброса набора. Можно ее при желании переделать заодно для ввода натыканного кнопками числа, но это уже по желанию.
Name - reset
Аутпут:
My output named - OnPressed
Target entities named - math_counter
Via this input - SetValue
With a parameter override of - 0

Она просто обнуляет наш счетчик.
Без этой кнопки один раз ошибившись, мы больше никогда не сможем открыть замок.
Настроим драгоценную логику.
math_counter
Name - math_counter1
Initial value - 0
Minimum Legal Value - 0
Maximum Legal Value - Число которое больше Вашего кода. Оно нужно чтобы дать возможность счетчику так много уметь считать, но при этом не особенно напрягаться когда какой-нибудь талант решит набрать такое число, чтобы игра сглючила и открыла ему замок. Ох и долго ему предстоит этим заниматься, учитывая что при достижении максимума наш счетчик больше не прибавит ни единицы...

Аутпут:
My output named - OutValue
Target entities named - logic_compare
Via this input - SetValueCompare
With a parameter override of - <none>

logic_compare
Name - logic_compare
Initial value - 0
Compare value - Ваш код(тот самый код ради которого все и делалось!).

My output named - OnEqualTo
Target entities named -Имя Вашей двери или чего там у Вас.
Via this input - Unlock если это закрытая дверь.

Если хотите чтобы дверь еще и открылась сама, то через некоторое время после Unlock'а хотя бы одну сотую секунды, сделайте еще один аутпут который ее будет Open.

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

Для этого:
В аутпуте math_counter1
Via this input - SetValueCompare
Меняем на
Via this input - SetValue

И конечно делаем саму кнопку.
Name - enter
Аутпуты:
1
My output named - OnPressed
Target entities named - logic_compare1
Via this input - Compare
2
My output named - OnPressed
Target entities named - math_counter1
Via this input - SetValue
With a parameter override of - 1
Звуки
Еще очень неплохо привязать звуки на все кнопки, и какой-нибудь нехороший звук на событие когда неправильно введен код.

Для этого нужно сначала сделать ambient_generic с именем button_sound и параметром поля Sound Name - Buttons.snd3(ну или на ваш вкус), выделить кнопки(думаю можно все), и добавить им аутпут:
OnPressed - button_sound - PlaySound

Чтобы не мостить ambient_generic точно возле кнопок(чтобы звук от них шел) можно ему указать в параметре SourceEntityName имя какой-нибудь центральной кнопки. Звук будет идти оттуда.

Звук закрытого замка делается примерно так же.
Создается еще один ambient_generic, называется locked_sound, подбираете звук в поле Sound Name типа Buttons.snd40, и можно сразу указать в поле SourceEntityName источник звука.
Аутпут создается у энтити logic_compare1 и имеет примерно такой вид:
OnNotEqualTo - locked_sound - PlaySound

Вроде все. Когда я по данному мануалу, предварительно все напрочь забыв, пытался сделать все как надо, у меня ушло меньше 15 минут, при том, что я еще немного статью корректировал.
3. Коды начинающиеся с нуля
Всем хорош наш замочек, да только не умеет он всасывать комбинации начинающиеся с нуля.
Вот захотите вы 007 кодом сделать, а работать будет 7 и 00000000000000007.
В общем последующий раздел призван этот косяк исправить, и соответственно если у Вас в планах нет такой потребности, можно его не читать.
Не нашел я идеальное решение этой проблемы, но предлагаю наиболее простое и изящное.

У math_counter1 меняем Initial value на 1
Кнопке сброса в аутпуте меняем параметр
With a parameter override of тоже на 1.
И конечно logic_compare в поле Compare value куда заносится код, нужно перед кодом ставить единичку. Т.е. если код 007, пишем 1007. Набирать надо будет 007. Так можно и 0000 кодом сделать, вписав 10000 в это поле.
По моему идеально просто.





Источник:©[Неизвестен]
Уважаемый!Если наш сайт показался Вам симпатичным,помог Вам чем-то или Вам просто нечего делать - разместите нашу кнопочку у себя где-нибудь на сайте .Мы Вам будем очень благодарны.
Вид кнопки:
Все для Counter-Strike Source: Моды и скрипты для сервера, карты, модели, скины, готовые сервера, сервера на заказ и многое другое...

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Для читачков
Поиск
Список турнирных карт
Топ файлов
de_tuscan
Автор: Gresh
Просмотров: 8309
Загрузок: 3500
скачать REVOLUTiON CSM...
Автор: SEKTANT
Просмотров: 5119
Загрузок: 1561
awp_nl_dust2
Автор: SEKTANT
Просмотров: 3428
Загрузок: 1024
Генератор Админов
Автор: SEKTANT
Просмотров: 3668
Загрузок: 996
de_season
Автор: Gresh
Просмотров: 3090
Загрузок: 854
de_contra
Автор: SEKTANT
Просмотров: 3082
Загрузок: 733
de_cpl_strike
Автор: Gresh
Просмотров: 2492
Загрузок: 647
Генератор motd.txt
Автор: SEKTANT
Просмотров: 3201
Загрузок: 640
awp_india
Автор: SEKTANT
Просмотров: 2422
Загрузок: 618
css Est_Admin
Автор: SEKTANT
Просмотров: 2815
Загрузок: 513




/div>