Предметы
|
|
SunCreep | Дата: Среда, 01 Июня 2011, 16:53:54 | Сообщение # 1 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Пфф,вопрос глупый,но увы: Как соединить 2 одинаковых предмета в один. Ну у меня есть предмет - "одна часть ключа".Когда у героя станет 2 таких предмета,то удалить оба и дать предмет "две части ключа". Я пока писал подумал,может можно как то установить,что если у героя есть предмет этого типа в инвентаре установить х=х+1,и если х=2 то делать.Хотя это как то геморно звучит...
|
|
|
|
MrReverse | Дата: Среда, 01 Июня 2011, 17:03:06 | Сообщение # 2 |
9 уровень
Группа: КоМодераторы
Сообщений: 1162
Награды: 1
Репутация: 737
Блокировки:
| SunCreep, я конечно в этом плохо шарю, а нельзя сделать это крафтом?
|
|
|
|
Deadly-man | Дата: Среда, 01 Июня 2011, 17:10:26 | Сообщение # 3 |
7 уровень
Группа: Заблокированные
Сообщений: 279
Награды: 0
Репутация: 26
Блокировки:
| SunCreep, с: A unit Получает предмет у: Matching unit has Одна часть ключа у: Item beign manipulated равно Одна часть ключа д: Герой - Create Ключ for Triggering Unit
Я ПОРВАЛ ФОРУМ!
|
|
|
|
romaN-1998 | Дата: Среда, 01 Июня 2011, 17:15:46 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| я недавно сделал такую систему:
Юнит получает предмет ------------------------------------ Item being manipulated = Часть ключа ------------------------------------- Set i = i + 1 set item[i] = Item being manipulated Если i = 2 то дропнуть item[1] у Triggering Unit, удалить последний дропнутый предмет, дропнуть item[2] у Triggering Unit, удалить последний дрпонутый предмет, создать и дать КЛЮЧ Triggering Unit, set i = 0
Триггер 2:
Юнит теряет предмет ------------------------------ Item being manipulated = Часть ключа --------------------------------- set i = 0
i = целочисленная
|
|
|
|
SunCreep | Дата: Среда, 01 Июня 2011, 17:16:05 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| У меня русские триггеры)) Quote (Deadly-man) Matching unit has Это что за юнит,я только его не понял)
|
|
|
|
Deadly-man | Дата: Среда, 01 Июня 2011, 17:17:12 | Сообщение # 6 |
7 уровень
Группа: Заблокированные
Сообщений: 279
Награды: 0
Репутация: 26
Блокировки:
| SunCreep, походу что-то вроде "проверяемый юнит"
Я ПОРВАЛ ФОРУМ!
|
|
|
|
SunCreep | Дата: Среда, 01 Июня 2011, 17:17:41 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| romaN-1998, ну в общем то о чём я и говорил в правильном формате)) Добавлено (01-06-2011, 17:17) --------------------------------------------- Deadly-man, совпадающий мб?
|
|
|
|
Gr0m | Дата: Среда, 01 Июня 2011, 17:18:00 | Сообщение # 8 |
8 уровень
Группа: Проверенные
Сообщений: 729
Награды: 0
Репутация: 249
Блокировки:
| (-_-)
|
|
|
|
romaN-1998 | Дата: Среда, 01 Июня 2011, 17:19:06 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| Quote (SunCreep) Deadly-man, совпадающий мб? да. но моя система тоже норм, а его вроде с багами, test pls.Добавлено (01-06-2011, 17:19) --------------------------------------------- Gr0m, лолчто? вообще посты не смотришь?
|
|
|
|
Deadly-man | Дата: Среда, 01 Июня 2011, 17:22:06 | Сообщение # 10 |
7 уровень
Группа: Заблокированные
Сообщений: 279
Награды: 0
Репутация: 26
Блокировки:
| ой, да точно, багнутая. У тебя потом ключи будут вечно появляться и игра вылетит
Я ПОРВАЛ ФОРУМ!
|
|
|
|
Gr0m | Дата: Среда, 01 Июня 2011, 17:25:04 | Сообщение # 11 |
8 уровень
Группа: Проверенные
Сообщений: 729
Награды: 0
Репутация: 249
Блокировки:
| Ах да тупанул чет... просто добавить массивы нужно
|
|
|
|
SirNikolas | Дата: Среда, 01 Июня 2011, 17:41:11 | Сообщение # 12 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Какие массивы? Это делается вот так:
Действия: Установить Boolean = Нет Для каждого (Целое Integer), от 1 до 6, делать (Действия) _Если __(Тип предмета (Предмет, переносимый (Переключающий юнит) в слоте Integer)) = Одна часть ключа _То __Если ___Boolean = Да __То ___Предмет - Удалить (Предмет, переносимый (Переключающий юнит) в слоте Integer) ___Предмет - Удалить (Переносимый (Переключающий юнит) предмет типа Одна часть ключа) ___Герой - Создать предмет типа Ключ и дать его (Переключающий юнит) ___Пропустить последующие действия __Иначе ___Установить Boolean = Да
Это если сборный предмет собирается из двух одинаковых. Если из трех и более, надо не логической, а целочисленной.
Сообщение отредактировал SirNikolas - Среда, 01 Июня 2011, 17:42:39 |
|
|
|
Gr0m | Дата: Среда, 01 Июня 2011, 17:52:51 | Сообщение # 13 |
8 уровень
Группа: Проверенные
Сообщений: 729
Награды: 0
Репутация: 249
Блокировки:
| SirNikolas, А если в одно и тоже время 2 героя возьмут предмет? криво будет
|
|
|
|
SirNikolas | Дата: Среда, 01 Июня 2011, 17:56:51 | Сообщение # 14 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Gr0m, даже если дать предметы действительно одновременно, в разных потоках, все равно ничего криво не будет, т. к. скорость выполнения данного алгоритма никак не сравнима со скоростью запуска второго потока.
|
|
|
|
DeadJass | Дата: Среда, 01 Июня 2011, 21:33:05 | Сообщение # 15 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| На форуме есть наработка по этому. Если нужно дам ссылку
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
SunCreep | Дата: Четверг, 02 Июня 2011, 21:16:36 | Сообщение # 16 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| SirNikolas, хм.Каждый следующий предмет Одна часть ключа,сразу же превращается в Две части ключа,даже если нет части.Это потому,что переменная уже равна "да".А как её снова установить на "нет"?Эта наработка на 1 героя,или она глобальна?
|
|
|
|
FkoFF | Дата: Четверг, 02 Июня 2011, 21:40:12 | Сообщение # 17 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| SunCreep,
local unit u=GetManipulatingUnit() local item i=GetManipulatedItem() local integer id=GetItemTypeId(i) local integer int=1 loop exitwhen int>6 if GetItemTypeId(UnitItemInSlot(u,int))==i and UnitItemInSlot(u,int)!=i then call UnitRemoveItemFromSlot(u,int) call RemoveItem(i) call UnitAddItemById(u,newitemrawcode) set int=6 endif set int=int+1 endloop set i=null set u=null
|
|
|
|
SunCreep | Дата: Четверг, 02 Июня 2011, 22:39:27 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| FkoFF, где среди этого всего тип поднятого и полученного предмета?Вернее я так понял там не указан тип,в место него там:"ItemById(u,newitemrawcode)".Что это,как работает,как установить определённый тип.
|
|
|
|
SirNikolas | Дата: Пятница, 03 Июня 2011, 07:08:50 | Сообщение # 19 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (SunCreep) Каждый следующий предмет "Одна часть ключа" сразу же превращается в "Две части ключа", даже если нет части. Это потому, что переменная уже равна "Да". Quote (SirNikolas) Действия:
Установить Boolean = Нет
Для каждого (Целое Integer), от 1 до 6, делать (Действия) _Если __(Тип предмета (Предмет, переносимый (Переключающий юнит) в слоте Integer)) = Одна часть ключа _То __Если ___Boolean = Да __То ___Предмет - Удалить (Предмет, переносимый (Переключающий юнит) в слоте Integer) ___Предмет - Удалить (Переносимый (Переключающий юнит) предмет типа Одна часть ключа) ___Герой - Создать предмет типа Ключ и дать его (Переключающий юнит) ___Пропустить последующие действия __Иначе ___Установить Boolean = Да
|
|
|
|
t0s | Дата: Пятница, 03 Июня 2011, 08:03:08 | Сообщение # 20 |
7 уровень
Группа: Проверенные
Сообщений: 443
Награды: 0
Репутация: 219
Блокировки:
| SunCreep, Code Событие - Юнит получает предмет Условие - ИЛИ - Любое ксловие - истина: Предмет который подобрали(начали манипулировать) = Тетива Предмет который подобрали(начали манипулировать) = Палка Действия: Если(Условия)/То(Действия)/Иначе(Действия): Если: Предмет который подобрали(начали манипулировать) = Тетива Предмет который подобрали(начали манипулировать) = Палка Тогда: Удалить предмет у героя, который подобрал (начал манипулировать) предметом = Тетива Удалить предмет у героя, который подобрал (начал манипулировать) предметом = Палка Создать Плохой лук на позиция героя, который подобрал предмет Дать предмет герою, который подобрал предмет. Иначе: ------(Ничего)
|
|
|
|
FkoFF | Дата: Пятница, 03 Июня 2011, 08:05:10 | Сообщение # 21 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| t0s, самый страшный и тупой способ который только существует. Правда сам таким пользовался, было дело с год-полтора назад.
|
|
|
|
SirNikolas | Дата: Пятница, 03 Июня 2011, 08:06:42 | Сообщение # 22 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| t0s, во-первых, спрашивалось про сборку из двух одинаковых предметов, а во-вторых, твой способ попросту не работает. Добавлено (03-06-2011, 08:06) ---------------------------------------------
Quote (t0s) Если: Предмет который подобрали(начали манипулировать) = Тетива Предмет который подобрали(начали манипулировать) = Палка Это условие выполнится, только если обе переменные будут указывать на один предмет. Кстати, надо не через переменные, а через типы.
|
|
|
|
t0s | Дата: Пятница, 03 Июня 2011, 08:12:21 | Сообщение # 23 |
7 уровень
Группа: Проверенные
Сообщений: 443
Награды: 0
Репутация: 219
Блокировки:
| Это типа у тебя тетива и палка. Из них собирается лук. Добавлено (03-06-2011, 08:12) ---------------------------------------------
Quote (SirNikolas) про сборку из двух одинаковых предметов Понятно Quote (SirNikolas) твой способ попросту не работает хмм...
|
|
|
|
SirNikolas | Дата: Пятница, 03 Июня 2011, 08:12:54 | Сообщение # 24 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (t0s) Это типа у тебя тетива и палка. То, что ты написал - это не типы "Тетива" и "Палка". Это переменные.
|
|
|
|
t0s | Дата: Пятница, 03 Июня 2011, 08:22:31 | Сообщение # 25 |
7 уровень
Группа: Проверенные
Сообщений: 443
Награды: 0
Репутация: 219
Блокировки:
| Это из статьи Floppy.
|
|
|
|