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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Больше одного предмета брать нельзя (ХЭЛП)
Больше одного предмета брать нельзя
I_NE_znau_svoi_loginДата: Четверг, 04 Февраля 2010, 14:59:15 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Блокировки:
Как сделать так чтобы нельзя было брать два предмета.Например я сделал много мечей (они отображаются на герое) но когда я беру больше 1-го то получается каша в руке.Как избежать такого. прошу помогите. :(
 

АртымарДата: Четверг, 04 Февраля 2010, 16:10:23 | Сообщение # 2
5 уровень
Группа: Заблокированные
Сообщений: 130
Награды: 0
Репутация: 53
Блокировки:
Первый тригер
События
Боевая единица - A unit получает предмет
Условия
(Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить)
Действия
Set item = (Item+1)
If (All Conditions are True) then do (Then Actions) else do (Alse Actions)
Если - условия
Item больше один
То-действия
Герой - Drop (Item being manipulated) from (hero manipulated item)
Игра - Display to (Player group ((Owner of (hero manipulated item)))) the text: (Напиши сюда текст который ты хочешь показать когда это произойдёт)
Иначе - действия
Второй тригер
События
Боевая единица - A unit теряет предмет
Условия
(Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить)
Действия
Set item = (Item -1)


Это я(один из оленей)
 

FkoFFДата: Четверг, 04 Февраля 2010, 17:25:28 | Сообщение # 3
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (Артымар)
События Боевая единица - A unit получает предмет Условия (Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить) Действия Set item = (Item+1) If (All Conditions are True) then do (Then Actions) else do (Alse Actions) Если - условия Item больше один То-действия Герой - Drop (Item being manipulated) from (hero manipulated item) Игра - Display to (Player group ((Owner of (hero manipulated item)))) the text: (Напиши сюда текст который ты хочешь показать когда это произойдёт) Иначе - действия Второй тригер События Боевая единица - A unit теряет предмет Условия (Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить) Действия Set item = (Item -1)

кошмарное изобретение велосипеда.

Cобытие:
Generic Unit получает предмет
Условие:
Тип предмета (предмет которым манипулируют) равен "Шлем"
Действие:
For each integer A from 1 to 6 do multiplie actions:
if\then\else
If:
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен тип (предмета которым манипулируют)
Предмет в слоте [Integer A] у (герой манипулирующий предметом) не равен (предмет которым манипулируют)
Then:
выкинуть (предмет которым манипулируют) у (герой, манипулирующий предметом).
Else:
ничего не делать.

Естественно, если предметов одного типа много то следуюет в ифзен добавить через OR (any conditions true)
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен "шлем 2"
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен "шлем 3"
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен "шлем 4"
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен "шлем 5"

и естественно так же через "Or (any conditions are true)" добавить :
Тип предмета (предмет которым манипулируют) равен "Шлем 2"
Тип предмета (предмет которым манипулируют) равен "Шлем 3"
Тип предмета (предмет которым манипулируют) равен "Шлем 4"
Тип предмета (предмет которым манипулируют) равен "Шлем 5"

и никаких переменных ненадо.


 

Ghost-akgensДата: Четверг, 04 Февраля 2010, 18:20:06 | Сообщение # 4
1 уровень
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 1
Блокировки:
Quote (Артымар)
Первый тригер
События
Боевая единица - A unit получает предмет
Условия
(Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить)
Действия
Set item = (Item+1)
If (All Conditions are True) then do (Then Actions) else do (Alse Actions)
Если - условия
Item больше один
То-действия
Герой - Drop (Item being manipulated) from (hero manipulated item)
Игра - Display to (Player group ((Owner of (hero manipulated item)))) the text: (Напиши сюда текст который ты хочешь показать когда это произойдёт)
Иначе - действия
Второй тригер
События
Боевая единица - A unit теряет предмет
Условия
(Item of (Item being manipulated)) равно Усиливающие (Или любой другой класс который ты хочешь поставить)
Действия
Set item = (Item -1)

Кстати я так же делал :) но в чем прикол и этот тригер не совершенен :)

Добавлено (04-02-2010, 18:14)
---------------------------------------------

Quote (FkoFF)
Cобытие:
Generic Unit получает предмет
Условие:
Тип предмета (предмет которым манипулируют) равен "Шлем"
Действие:
For each integer A from 1 to 6 do multiplie actions:
if\then\else
If:
Тип предмета в слоте [Integer A] у (герой манипулирующий предметом) равен тип и тыры пыры

Ну эт триг я вообще не понимаю...

Добавлено (04-02-2010, 18:18)
---------------------------------------------
Советую к Тригеру Артымара добавить целочисленную :)
Item[Player namber of triger unit] = 1 а не плюс 1 или минус 1 :) а то какт сомнения будут

Эт для всех игроков буит :) я те эт на всякий пожарный если ты буш делать Item_01, Item_02 и т.д... Ток Масив 12 ставь :)

Добавлено (04-02-2010, 18:20)
---------------------------------------------
В 1 триге Item[Player namber of triger unit] = 1

Во 2 триге Item[Player namber of triger unit] = 0

 

FkoFFДата: Четверг, 04 Февраля 2010, 18:26:05 | Сообщение # 5
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (Ghost-akgens)
Ну эт триг я вообще не понимаю...

Объясняю популярно, спецом для тех кто "не шарит".
Во превых, для начала, ознакомьтесь с таким явлением как "циклы". Если вы знаете что это то читайте ниже.

С событием вопросов нет,
условие:
тип предмета, который подобрал юнит: БОТИНКИ
действие:
для каждого числа А с 1 до 6
Если\то\иначе:
Если:
тип предмета в слоте [A]* у героя который подобрал ботинки РАВЕН типу предмета которым манипулируют (БОТИНКАМ)
предмет в слоте [A]* не является предметом которым манипулируют.
то:
выкинуть предмет которым манипулируют.

Теперь разжуем.:

[A]* - значение текущего периода цикла [A]
Проверка идет следующим образом:
Каждый слот инвентаря проверяется на наличие такого же предмета - как тот, который мы подобрали.
Если в слоте инвентаря есть предмет, такой же как предмет которым манипулируют и это не предмет которым манипулируют - то выкинуть предмет которым манипулируют. Все очень просто. А массивы такому простому триггеру пойдут только во вред.

Quote (Ghost-akgens)
Советую

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


 

DoctorGesterДата: Пятница, 05 Февраля 2010, 00:32:55 | Сообщение # 6
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Тебе не кажется, что integer a тоже переменная? И что он может повлиять на работу других тригеров? В любом случае лучше создать отдельную целочисленную для этого трига дабы избежать конфликта
 

I_NE_znau_svoi_loginДата: Пятница, 05 Февраля 2010, 07:59:28 | Сообщение # 7
1 уровень
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Блокировки:
СПС всем кто обратил внимание на этот вопрос!!!
 

FkoFFДата: Пятница, 05 Февраля 2010, 11:50:06 | Сообщение # 8
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (DoctorGester)
Тебе не кажется, что integer a тоже переменная? И что он может повлиять на работу других тригеров? В любом случае лучше создать отдельную целочисленную для этого трига дабы избежать конфликта

Iteger A это не переменная ) это, как я уже писал, период цикла. Она не вызывает конфликтов с другими дриггерами. Может вызвать тоьлко в том случае если пользоваться этой функцией для присвоения переменных, как пример - через цикл создавать юнитов и каждого из них записывать в цикл как Unit[12+A] в итоге юниты будут (в зависимости от начального периода цикла) Unit[12] Unit[13] Unit[14]
А сам Integer A это индекс а не переменная . )


 

MTTДата: Пятница, 05 Февраля 2010, 13:52:22 | Сообщение # 9
9 уровень
Группа: Пользователи
Сообщений: 941
Награды: 0
Репутация: 81
Блокировки:
FkoFF,
Integer A можно рассматривать как локальную переменную
Цикл в цикле с одним и темже оператором (Integer A) Работает без проблем.
Были бы в ГУИ локальные переменные, можно было бы не юзать массивы во многих случаях.
 

FkoFFДата: Пятница, 05 Февраля 2010, 14:14:32 | Сообщение # 10
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (MTT)
Integer A можно рассматривать как локальную переменную Цикл в цикле с одним и темже оператором (Integer A) Работает без проблем. Были бы в ГУИ локальные переменные, можно было бы не юзать массивы во многих случаях.

все верно )


 

DragoNДата: Пятница, 05 Февраля 2010, 15:36:22 | Сообщение # 11
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
ответ получен - замок

El Psy Congroo
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Больше одного предмета брать нельзя (ХЭЛП)
  • Страница 1 из 1
  • 1
Поиск:

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