Сейчас 18:14:33 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: PUVer, SirNikolas, Ty3uK  
[СТАТЬЯ]Повышение квалификации по тригерам
Gam_OverДата: Четверг, 26 Февраля 2009, 08:41:34 | Сообщение # 26
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Cancel, прочитал уже первую половину статьи, начало вообще странное. как буд то к войне готовят , с этими названиями в чем то автор прав но кому как удобнее слишком много пишем :) потом вроде начал вчитываться и как сказал автор не переходить ко вторйо пока не сделаешь первого, сделал за минуту :) тока ты там укажи в статье что потом после 12 месяца уже начинается заново. То есть потом опять первый месяцок потом второй и т.д.
Как я уже сказал нароботка первая оч легкая, вторую пока не смотрел, может мне тоже результат работы показать учителю то бишь Cancel. А то вдруг не прошел тестирование первого этапа :)
 

Gam_OverДата: Четверг, 26 Февраля 2009, 09:01:17 | Сообщение # 27
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
вот вам мой календарь

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

Прикрепления: Calendar.rar (16.1 Kb)


Сообщение отредактировал Gam_Over - Четверг, 26 Февраля 2009, 09:15:54
 

CancelДата: Четверг, 26 Февраля 2009, 10:28:01 | Сообщение # 28
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Gam_Over, статья предназначалась для пользователей более опытных в тригерах но не спецов, ты просто более высокого уровня, а первая часть введение для тех, кто массивами вообще не пользовался (есть такие)
Поменяй событие тригера отчёта даты с "каждые 3 секунды" на "время дня равно 0.00", что-бы наработка подходила для любой карты
 

Gam_OverДата: Четверг, 26 Февраля 2009, 13:00:43 | Сообщение # 29
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Cancel, но замечания вес таки некоторые учти и подправь статью, потому как она больше на урок катит :) тогда сделай этот урок очень удачным и интересным.
Quote (Cancel)
Поменяй событие тригера отчёта даты с "каждые 3 секунды" на "время дня равно 0.00", что-бы наработка подходила для любой карты

я просто в игре проверял чтобы целый игровой день не ждать :)))
 

CancelДата: Четверг, 26 Февраля 2009, 14:56:56 | Сообщение # 30
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Gam_Over)
я просто в игре проверял чтобы целый игровой день не ждать :)))

В константах поменял бы длительность суток как 1 секунда))
А если тебе интересны уроки пиши в ЛС, есть пара моих уроков на других сайтах
 

Gam_OverДата: Четверг, 26 Февраля 2009, 17:33:20 | Сообщение # 31
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Quote (Cancel)
В константах поменял бы длительность суток как 1 секунда

лень было
Quote (Cancel)
А если тебе интересны уроки пиши в ЛС, есть пара моих уроков на других сайтах

:) я говорю дополнить потому что на статью имхо не претендует никак , это урок "Знакомство с массивом и одиночный случай использования массива в цикле, который я вам чательно распишу" вот как это называется но никак не статья. Я все это умел и знаю :)
 

Light_soulДата: Четверг, 26 Февраля 2009, 18:53:51 | Сообщение # 32
1 уровень
Группа: Пользователи
Сообщений: 14
Награды: 0
Репутация: 3
Блокировки:
неплохая статейка правда я нечо не понял но еще несколько раз перечитал и чуть разобрался :)

дота и наруто РУЛЯТ!!!!!!
 

CancelДата: Пятница, 27 Февраля 2009, 04:40:58 | Сообщение # 33
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Gam_Over)
Я все это умел и знаю

Quote (Cancel)
статья предназначалась для пользователей более опытных в тригерах но не спецов, ты просто более высокого уровня

Quote (Light_soul)
неплохая статейка правда я нечо не понял но еще несколько раз перечитал и чуть разобрался
 

Gam_OverДата: Пятница, 27 Февраля 2009, 05:26:56 | Сообщение # 34
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Quote (Light_soul)
неплохая статейка правда я нечо не понял но еще несколько раз перечитал и чуть разобрался

не понял? надо пробывать дорогой мой друг все нужно делать своими руками, все!
 

MuradorДата: Пятница, 27 Февраля 2009, 17:29:39 | Сообщение # 35
Группа: Проверенные
Сообщений: 1221
Награды: 1
Репутация: 446
Блокировки:
Quote (Cancel)
статья предназначалась для пользователей более опытных в тригерах но не спецов, ты просто более высокого уровня

интересно понял бы я чегонить буть я JASS'ером
 

Gam_OverДата: Пятница, 27 Февраля 2009, 17:33:51 | Сообщение # 36
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Murador, а ты че тож ниче не понял?
 

CancelДата: Пятница, 27 Февраля 2009, 17:58:49 | Сообщение # 37
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Murador, парой я не понимаю причин твоих комментариев, для меня 80% из них с твоей стороны остаются бессмысленными
 

EnforcerДата: Понедельник, 02 Марта 2009, 22:15:40 | Сообщение # 38
Энф
Когда-то смотрел за порядком
Группа: Ветераны
Сообщений: 3127
Награды: 7
Репутация: 981
Блокировки:
Оценка:
Символов: 9314 (+2,5)
Абзацы: Присутствуют (+0,5)
Главы: Нет.
Ошибки: Есть
Стилистика: Хорошая. Смысл понятен. (+2)
Рисунки: Нет
Итого: 5 баллов.

Исправь хотя бы ошибки в орфографии. После чего я добавлю её в раздел статей.


 

CancelДата: Вторник, 03 Марта 2009, 01:36:27 | Сообщение # 39
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Ув. ELForcer, Вот исправленная версия
Ручаюсь, что автор я
Эта тема предназначена для картостроителей, обладающих тригерами на среднем уровне и предназначена для повышения их уровня. Для этого я дам пару заданий по созданию достаточно сложных тригерных наработок с подробным описанием каждого действия.
При создании тригерной наработки определитесь с названием, например если тригерная наработка предназначена для поведения камеры и вас зовут Вася, то назовите наработку VasyaKamera название не играет большой роли. Все тригеры отдельной наработки размещайте в одной категории, и назовите эту категорию VasyaKamera v1.00.
К названиям всех переменых вашей наработки добавляйте суффикс названия наработки, например к целочисленной переменой x добавьте суффикс, чтобы было название VasyaKamera_x. Также подобный суффикс добавляйте ко всем тригерам.
Для чего это нужно? чтобы при импортировании наработки в карту не было конфликтов переменных или тригеров, есть вероятность того, что переменная с таким же названием используется.
В категории с тригерами вашей наработки сделайте комментарий к тригеру с описанием наработки, именами создателей наработки и способы контактов с разработчиками, а также описания условий, при соблюдений которых другие люди могут использовать вашу наработку (например добавление вашего имени в авторы карты, куда импортирована ваша наработка).
Первым тригером делайте "VasyaKamera Start" тригер предназначен для установления начальных значений некоторых переменных наработки.
Например
Установить VasyaKamera_plavnost как 3.00
--Комментарий - установите значение этой переменой от 0.00 до 10.00, значение этой переменой влияет на плавность камеры--
И т. д.
Старайтесь использовать как можно больше настраиваемых переменных, что бы наработка была более мобильной. например если наработка предназначена для восстановления враждебных мобов, то сделайте настраиваемую переменную, которая отвечает за время восстановления мобов.
Вроде для введения всё. Вот пару заданий по созданию наработок. Создав их вы приобретёте опыт по корректному использованию массивных переменных.

Сделайте тригерную наработку, которая будет считать дату в игре. каждый день календарю будет прибавляться 1 день. В году 12 месяцев, сама сложность в том, что в каждом месяце разное количество дней.
Подсказка
Так как в некоторых месяцах разное количество дней, логично создать две массивные переменные
Calendar_name_m - массивная переменная текстовая, каждая ячейка будет содержать название месяца соответствующего индексу.
Calendar_day_in_m - массивная переменная целочисленная, каждая ячейка будет содержать количество дней в месяце, соответствующего индексу
Calendar_day - целочисленная переменная показывающая номер текущего дня
Calendar_m - целочисленная переменная показывающая номер текущего месяца
При наступлении следующего дня переменная Calendar_day должна повыситься на 1
Затем включается условие, если количество дней в текущем месяце меньше сегодняшнего дня, то установить текущий месяц на 1 больше, установить текущий день как 1.
Всю наработку можно сделать двумя тригерами
В первом тригере человек-редактор устанавливает переменные, которые устанавливаются на это значение при инициализации
А второй тригер будет делать эти вычисления
К названию всем переменным и тригеров добавляйте приставку "Calendar_" дабы при импортировании в кампанию не было конфликта тригеров и переменных.
Если что-то непонятно не бойтесь задавать вопросы через ЛС

Не переходите к дальнейшему тексту, пока не выполните первую наработку.

Вторая наработка будет сложнее
тригерная наработка системы репутаций.
Описание простое, но сама наработка не столь проста
она будет показывать значение репутации героя
resp_x - целочисленная переменная, настраиваемая при инициализации, показывающая количество значений репутаций (например - 4)
resp_tex - массивная переменная типа строка, настраиваемая при инициализации, каждая ячейка её содержит название значений репутации
Например
resp_tex(1) = неизвестный
resp_tex(2) = знаменитый
resp_tex(3) = великий
resp_tex(4) = легендарный
resp_znach - массивная целочисленная, показывающая требуемое значение репутации героя для перехода на следующую ступень репутации
Например
resp_znach(1) = 400
resp_znach(2) = 1200
resp_znach(3) = 3500
resp_znach(4) = 10000
Целочисленные переменные, связанные с показателями репутации героя
resp_pleer - показывает количество играющих героев (это для того, что бы наработку можно было легко использовать в других наших проектах, в том числе мультиплеерных) в кампании будет стоять значение 1
resp_pleer_namber - массивная переменная игрок, в каждой ячейке указывается номер играющего игрока
(resp_pleer_namber(1) = Игрок 1 (красный)
resp_pleer_hero - массивная переменная боевая единица, в каждой ячейке указывается играбельный герой игрока
resp_hero_r - массивная переменная показывает балы репутации героя каждого игрока
resp_hero_znach - массивная переменная, показывающая ступень репутации героя (от 1 до resp_x)

Должны присутствовать 2 тригера, в одном редактор устанавливает значения переменных при инициализации, другой тригер без события (он запускается другими тригерами при изменении значения репутации)
С первым всё понятно, вот описание второго
Вначале идёт цикл А от 1 до количества играющих игроков (resp_pleer)
В цикле А вставляем ещё один цикл B от 1 до количества значений репутаций (resp_x)
В нём проверяем соответствует ли балы репутаций игрока (resp_pleer_namber(A)) диапазону от минимально значения репутации данной ступени до максимального.
If resp_hero_r(А) больше (resp_znach(B-1) + 1) AND resp_hero_x(А) меньше или равно resp_znach(B) then set resp_hero_znach(А) = B

Более подробное описание наработки, если первое описание вы не поняли

начнём с цикла B
Допустим что вычисляется репутация игрока Resp_pleer_namber(1) то есть игрока 1
Его репутация, допустим, равна resp_pleer_r(1) = 1380

Далее запускается цикл
Цикл B от 1 до количества значений репутаций (resp_x)
--То есть B от 1 до 4--
И так, первый шаг цикла, B = 1
Проверяется условие того, что репутация игрока 1 (resp_pleer_r(1)) находится в диапазоне значений первой ступени репутации
Макс. значение это resp_znach(B) так как B=1, значит максимальное значение диапазона resp_znach(1) что равно 400
Мин. значение данной ступени – то максимальное значение предыдущей плюс 1
То есть resp_znach(B-1) + 1. так как B=1, то B-1 = 0, а resp_znach(0) = 0. Таким образом настраивается resp_znach(B-1) + 1 = 0 + 1 = 1.
У нас вышел диапазон от 1 до 400
Условие проверяет, чтобы значение репутации игрока было в этом диапазоне,
Если да (resp_znach(B) < resp_pleer_r(1) > resp_znach(B-1) + 1) если да, то степень репутации игрока resp_hero_znach(1) устанавливается как B, то есть как 1, но это не так, потому ничего не происходит
Но resp_hero_znach(1) = 1380, это больше максимального значения ступени, потому идёт следующий шаг

И так B = 2
Макс. значение это resp_znach(B) так как B=2, значит максимальное значение диапазона resp_znach(2) что равно 1200
Мин. значение данной ступени – то максимальное значение предыдущей плюс 1
То есть resp_znach(B-1) + 1. так как B=2, то B-1 = 1, а resp_znach(1) = 400. Таким образом настраивается resp_znach(B-1) + 1 = 400 + 1 = 401
У нас вышел диапазон от 401 до 1200
Условие проверяет, чтобы значение репутации игрока было в этом диапазоне,
Если да (resp_znach(B) < resp_pleer_r(1) > resp_znach(B-1) + 1) если да, то степень репутации игрока resp_hero_znach(1) устанавливается как B, то есть как 2, но это не так, потому ничего не происходит
Но resp_hero_znach(1) = 1380, это больше максимального значения ступени (1200), потому идёт следующий шаг

И так B = 3
Макс. значение это resp_znach(B) так как B=3, значит максимальное значение диапазона resp_znach(3) что равно 3500
Мин. значение данной ступени – то максимальное значение предыдущей плюс 1
То есть resp_znach(B-1) + 1. так как B=3, то B-1 = 2, а resp_znach(1) = 1200. Таким образом настраивается resp_znach(B-1) + 1 = 1200 + 1 = 1201
У нас вышел диапазон от 1201 до 3500
Условие проверяет, чтобы значение репутации игрока было в этом диапазоне,
Если да (resp_znach(B) < resp_pleer_r(1) > resp_znach(B-1) + 1) если да, то степень репутации игрока resp_hero_znach(1) устанавливается как B, то есть как 3
resp_hero_znach(1) = 1380, это входит в диапазон от 1201 до 3500,
Потому resp_hero_znach(1) устанавливается как 3

На практике это означает, что если игрок заработал1380 очков репутации, то он на 3 ступени известности, он (resp_tex(3) + «герой») что значит «Великий герой»

Теперь цикл А, этот цикл высчитывает ступень репутации для каждого играющего игрока
Вот пример
Играет три игрока
Игрок 1
Игрок 4
Игрок 5
Устанавливаются переменные
resp_pleer_namber(1) = Игрок 1 (красный)
resp_pleer_namber(2) = Игрок 4 (фиолетовый)
resp_pleer_namber(3) = Игрок 5 (желтый)
resp_pleer = 3 (количество играющих игроков)
У героя первого игрока resp_hero_znach(1) = 500
У героя второго игрока resp_hero_znach(2) = 200
У героя второго игрока resp_hero_znach(3) = 155

Второй триггер
Цикл А от 1 до resp_pleer
То есть от 1 до 3
Там проверяется какому диапазону подходит resp_hero_znach(А)

Получается триггер
For integer A от 1 до resp_pleer
For integer B от 1 до resp_x
If resp_hero_r(А) больше (resp_znach(B-1) + 1) AND resp_hero_x(А) меньше или равно resp_znach(B) then set resp_hero_znach(А) = B
Next B
Next A

Этот тригер покажет, что игрок красный знаменитый, а игроки фиолетовый и жёлтый неизвестные

На этом пока всё. Надеюсь, мой урок вам поможет. И последнее, если вы будете использовать наработку репутаций, то вставьте моё имя в список авторов карты и в описание наработки репутаций благодарность Cancel'у c моим почтовым ящиком для связи.
Если вы сделали эти две наработки, то теперь вы можете делать более корректные тригеры))

 

LoireДата: Вторник, 15 Сентября 2009, 10:28:47 | Сообщение # 40
100 уровень
ту зе мун говно пацаны
Группа: Проверенные
Сообщений: 2632
Награды: 1
Репутация: 1337
Блокировки:
Cancel, не плохо,спасибо.
 

windrunnerДата: Вторник, 15 Сентября 2009, 13:50:30 | Сообщение # 41
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
xD ето на джассе моно написать и 1 триг=)
и репу ИМХО моно покороче


И в правду мир сошел с ума...
И до тех пор пока нас не обесточат
Пока не догорит аварийных фонарей заряд
Мы будем жечь тут электричество что есть мочи
Русский мапмейкинг - бессмысленный и беспощадный.xD
 

KartohaДата: Вторник, 15 Сентября 2009, 15:23:10 | Сообщение # 42
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Cancel, второй пример я непонял, в нём переменная
Quote (Cancel)
resp_tex

вообще нигде не используется кроме инициализации :
resp_tex(1) = неизвестный
resp_tex(2) = знаменитый
resp_tex(3) = великий
resp_tex(4) = легендарный
также, когда я сделал циклы и всё что у тебя написанно, я незнаю как вывести на экран, у кого какой ранг(переменную resp_text), объясни пожалуйста.
 

windrunnerДата: Вторник, 15 Сентября 2009, 15:30:55 | Сообщение # 43
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
тут твой выбор есть пара вариантов к примеру по нажатию команды -rep выводится информация
Или мультибордом


И в правду мир сошел с ума...
И до тех пор пока нас не обесточат
Пока не догорит аварийных фонарей заряд
Мы будем жечь тут электричество что есть мочи
Русский мапмейкинг - бессмысленный и беспощадный.xD
 

KartohaДата: Вторник, 15 Сентября 2009, 16:14:45 | Сообщение # 44
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Quote (windrunner)
тут твой выбор есть пара вариантов к примеру по нажатию команды -rep выводится информация
Или мультибордом
Ну это ежу понятно!!!
Я спрашиваю действие, т.е. что показывать и с каким индексом.
 

vladykaДата: Воскресенье, 27 Сентября 2009, 23:55:10 | Сообщение # 45
~~
Группа: СуперМодераторы
Сообщений: 3096
Награды: 7
Репутация: 4244
Блокировки:
Quote
M@]{c, эта работа предназначена для того, что бы тригерщик наловчился с массивами, что бы не пришлось делать по десять тригеров на каждый случай как сделал это ты.

Ну у меня на карте 3 игрока и 2 сборных предметы и вот для этих предметов у меня 6 тригеров в одной категории и они не большие меня как устраивает
 

  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz