ГлавнаяБлогКарты Warcraft 3Гайды для первой ДотыГайды для Доты 2 [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: XOPYC  
Сборка артефактов с наличием 2>= одинаковых предметов
Дата: Воскресенье, 29.05.2011, 00:54 | Сообщение # 1
Лейтенант
Проверенные
Сообщений: 78
Награды: 0
Репутация: 5
Доработанная сборка
- теперь всё работает корректно
- упрощена система подсчёта (теперь нет нужды обнулять каунт)
- добавлена проверка правильности подсчёта колец
- подробности по эксплуатации в первом посте и в комментариях к триггерам
- не буду против, если добавите моё имя в титры при использовании наработки :D

Скачать.


Клара у Карла наклала в кораллы, а Карл у Клары наклал в кларнет.
 
Дата: Понедельник, 20.06.2011, 16:35 | Сообщение # 2
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Уж извини Кит, но буду тебя критиковать.
Похоже не зря все-таки ты рельефщик, а я триггерщик.

1) Зачем разделял на 2 триггера? Не суть как важно, но имхо лишняя работа.

2) Этот подсчет кол-ва предметов... он не считает кол-во предметов, он считает кол-во колец у бородатого мужика. Можно было сделать событие - юнит получает предмет (без указания юнита), далее задать переменную - тип предмета и вписать в него тип подобранного предмета. Вот тогда! Вот тогда твой триггер будет считать сколько юнит имеет при себе поднятых предметов и далее от этого плясать.

3) Оба твоих триггера стартуют при одинаковом событии. Если честно, то я вообще не понимаю, как они ещё и корректно работают??? Дело в том, что эти 2 триггера стартуют ОДНОВРЕМЕННО и слава Инносу первый успевает присвоить что-то в каунт переменную, прежде чем второй проверит условие. Нонсенс, но пашет.
Скорее всего, дело в расположении триггера, но выигрыш тут тысячные секунды, сделать первый триггер чуть длиннее и калапс.

4) Зачем ты запихал внутри второго триггера условие про "если каунт не равно 0, то удалить предмет кольцо". Если каунт равен нулю, то триггер вообще не сработает, а значит, что условие бессмысленно.

Вообще ни разу не видел, чтоб сборка была из 2+ предметов т.е. 3 кольца или 4 например.
Поэтому лично я перед проверкой инвентаря на нужные вещи - удаляю предмет и проверяю не каждый слот, а только героя на наличие кольца, если кольцо есть то удаляем второе кольцо и ещё чо там надо и даем сборный арт, если нет, то пересоздаем предмет. Только тут важно отключить триггер при его начале и включить при завершении.
Иначе получится бесконечный цикл. Так же если собранный таким образом артефакт является так же предметом для сборки другого из двух собранных, то необходимо вписать условия его сборки в этом же триггере ниже.

Критикой я хотел тебе показать твои ошибки, чтоб в следующих наработках ты мыслил более глобально :)


Сообщение отредактировал DonLaonda - Понедельник, 20.06.2011, 16:39
 
Дата: Среда, 22.06.2011, 07:26 | Сообщение # 3
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Ещё забыл написать, что первый триггер можно было написать в одно условие и 1 цикл, вместо 6ти условий.
 
Дата: Среда, 22.06.2011, 20:10 | Сообщение # 4
Лейтенант
Проверенные
Сообщений: 78
Награды: 0
Репутация: 5
DonLaonda, не бывать мне триггерщиком :D
а если по делу:
1) Мне лично удобней и понятней, когда всё разделённо и ненагромождённо. (сразу понятно - этот триггер считает, а этот - создает предмет)

2) Ну так мне как раз кольца и нужны. Я не случайно в комментариях указал про массивную переменную: если нам нужно было бы считать не только кольца, то я юзал бы массив с другим индексом. Кстати, меня осенило. Надо доделать триггер подсчета и тогда будет всё ок.

3) Так условия у них же разные, а триггер выполняется при нужных условиях.

4)Если я добавлю просто два раза подряд действие на удаление кольца, то триггер всё-равно удаляет только одно кольцо. Поэтому дальше я заставляю проверять, не равен ли каунт нулю (зная при этом, что он и так не равен нулю)и если не равен, то выполнить действие, а затем приравнять нулю. Там же в комментах это всё написано.

В общем, ждите обновлённую версию :D


Клара у Карла наклала в кораллы, а Карл у Клары наклал в кларнет.
 
Дата: Среда, 22.06.2011, 20:21 | Сообщение # 5
Лейтенант
Проверенные
Сообщений: 78
Награды: 0
Репутация: 5
Quote (DonLaonda)
Вообще ни разу не видел, чтоб сборка была из 2+ предметов т.е. 3 кольца или 4 например.


эммм... Ну, например, вантус в доте)


Клара у Карла наклала в кораллы, а Карл у Клары наклал в кларнет.
 
Дата: Среда, 22.06.2011, 21:01 | Сообщение # 6
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Quote (Cete)
1) Мне лично удобней и понятней, когда всё разделённо и ненагромождённо. (сразу понятно - этот триггер считает, а этот - создает предмет)


Поверь мой друг, если ты будешь триггерщиком или делать свою мапу хотя бы малую рпг. То у тебя нарастет столько триггеров, что ты уже точно ничего не поймешь. Веник хранить в развязанном виде бессмысленно, но для конкретной наработки, что бы именно разобраться нубам я думаю ты молодец, что так сделал. Разделил так сказать основные части трига, к тому же, если ты понял мою мысль во втором пункте, то на основе первого триггера можно написать функцию подсчета свою... например на жасс и выполнять её одной строкой уже. Ну или просто крутить их, организовывая вхождения из этого триггера в сборочные.

Quote (Cete)
3) Так условия у них же разные, а триггер выполняется при нужных условиях.

>_< перечитай и подумай :)
[off]Подскажу: предмет ты подбираешь 1 раз, а не 1 раз для подсчета, а потом для сборки.[/off]

Quote (Cete)
4)Если я добавлю просто два раза подряд действие на удаление кольца, то триггер всё-равно удаляет только одно кольцо.

Я тоже как то сидел однажды, кажется систему крафта делал для Forest. Взбесили меня триггеры мочи нет... думаю ну чо за тупые этот варик делали.. ну туууупыыыееееее... захожу в википедию, набираю Blizzard - американцы нах... ну тут сразу всё понятно. Я читаю о них статью и осознаю что она не интересная. Напоролся на пункт "интересные-факты", прочитал - обманули гады!
И решил добавить пункт "Некоторые Российские программисты считают, что Blizzard enterteinment - ГОВНОКОДЕРЫ!"

Но в википедию это не добавилось :(((

Как я понимаю, второе удаление наступает раньше чем первое удаление заканчивается, я избегаю эту проблему удаляя предмет сразу при поднятии.
Quote (Cete)
В общем, ждите обновлённую версию

Не перестарайся) помни что понятность для новичков выше всякой там правильности, глобальности и не лагучести.
 
Дата: Четверг, 23.06.2011, 14:12 | Сообщение # 7
Лейтенант
Проверенные
Сообщений: 78
Награды: 0
Репутация: 5
Доработанная сборка
- теперь всё работает корректно
- упрощена система подсчёта (теперь нет нужды обнулять каунт)
- добавлена проверка правильности подсчёта колец
- подробности по эксплуатации в первом посте и в комментариях к триггерам
- не буду против, если добавите моё имя в титры при использовании наработки :D

P.S. просьба к модераторам перенести эту писанину вместе с файлом в первый пост.

Скачать.
Прикрепления: 6192844.w3x (24.2 Kb)


Клара у Карла наклала в кораллы, а Карл у Клары наклал в кларнет.

Сообщение отредактировал Cete - Четверг, 23.06.2011, 14:12
 
Дата: Четверг, 23.06.2011, 15:08 | Сообщение # 8
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Боже мой мы все умрем...

Да-да снова есть проблемы:
Не глобально, но для сингла обучения пойдет.

Нафиг тебе триггер с включением и выключением О_О

Удалил его нафиг и действия по включению/выключению триггеров и всё нормально работает.

Сокротил код с 6 строк до 1 молодец, для сингла с небольшим количеством артов самое то.
 
Дата: Четверг, 23.06.2011, 15:15 | Сообщение # 9
Лейтенант
Проверенные
Сообщений: 78
Награды: 0
Репутация: 5
DonLaonda,
странно =/ у меня просто иногда арт собирался с одним кольцом... или вообще без них :Q


Клара у Карла наклала в кораллы, а Карл у Клары наклал в кларнет.
 
Дата: Четверг, 23.06.2011, 15:19 | Сообщение # 10
Генералиссимус
Ньюсмейкер
Сообщений: 2438
Награды: 8
Репутация: 85
Quote (Cete)
странно =/ у меня просто иногда арт собирался с одним кольцом... или вообще без них

Мистика... у тебя под окном коноплю не жгут? :)

Скорее всего это из-за одного и того же события "юнит - подобрал предмет"

Организуй подсчет в том же триггере, где и сборку.

Т.е. внутрь триггера +1 ставь условия сборки далее по коду, а -1 оставь внешним.
В таком случае даже сожженная под окном конопля не заставит собираться предмет при 1ом кольце или без.


Сообщение отредактировал DonLaonda - Четверг, 23.06.2011, 15:21
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: