Передача данных из карты в карту
|
|
sumert | Дата: Пятница, 13 Мая 2011, 08:19:23 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Делая кампанию столкнулс с проблемой: не могу массив способностей триггерно впихнуть в кеш, чтоб записать. К тому же близардовцы пофиксили баг с RB, так что вообще не знаю, как это сделать. Хеш вроде между картами в кампании не маячит. Может кто поможет, как передать список способностей?
Сообщение отредактировал sumert - Пятница, 13 Мая 2011, 08:19:41 |
|
|
|
SunCreep | Дата: Пятница, 13 Мая 2011, 08:23:44 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| sumert, а разве в компании нет возможности создавать переносимые объекты?Если я не ошибаюсь то на вкладке редактора компании есть такая графа.
|
|
|
|
sumert | Дата: Пятница, 13 Мая 2011, 08:54:41 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| SunCreep, ты невнимательно читаешь. Специально для тебя разжую: допустим у меня есть 10 способностей, в одной карте-ролике, герой выбирает из них 5 и их нужно сохранить для другой карты. Не 10, а именно эти 5. При чем вариант, где их сразу дают герою, не рассматривается. У меня не та ситуация.Добавлено (13-05-2011, 08:54) --------------------------------------------- Так, вроде нашел способ, но загвоздка все равно такая: как в хеш-таблицу впихнуть способность? Почему-то функция all SaveAbilityHandleBJ( udg_Hash, "1","'2", udg_AgilitiSpisok[GetForLoopIndexA()] ) не работает (ключи 1 и 2 для примера сделал)
|
|
|
|
SirNikolas | Дата: Пятница, 13 Мая 2011, 14:11:56 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Между картами данные переносятся с помощью буфера (gamecache). Записывать, как я понял, тебе надо не сами способности (я вообще не понимаю, для чего это может пригодится), а их raw-коды, то есть integer.Code native StoreInteger takes gamecache gc, string parentKey, string childKey, integer value returns nothing native GetStoredInteger takes gamecache gc, string parentKey, string childKey returns integer
Сообщение отредактировал SirNikolas - Пятница, 13 Мая 2011, 14:12:30 |
|
|
|
sumert | Дата: Пятница, 13 Мая 2011, 14:25:22 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| SirNikolas, ну в общем да, коды. Они занесены в массив. Как эти коды преобразовать до типа Integer? Эти две функции... Первая записывает в буфер обмена данные Integer, вторая вытаскивает из буфера обмена этот тип. Это я знаю. А вот как код способности занести в этот буфер?
|
|
|
|
SirNikolas | Дата: Пятница, 13 Мая 2011, 15:38:24 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (sumert) Как эти коды преобразовать до типа Integer? Они и есть integer. Ты ведь говоришь про коды вроде 'A000'?
|
|
|
|
sumert | Дата: Пятница, 13 Мая 2011, 16:11:18 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Да, но не могу же я сразу в буфер обмена пихать массив способностей. Надо как-то преобразовать в тип Integer, а потом делать обратную операцию.
|
|
|
|
SirNikolas | Дата: Пятница, 13 Мая 2011, 16:33:30 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Никаких преобразований не нужно.Code local integer i = 1 loop call StoreInteger(udg_Cache, "Ability", I2S(i), udg_Ability[i]) //set udg_Ability[i] = GetStoredInteger(udg_Cache, "Ability", I2S(i)) exitwhen i == 10 set i = i + 1 endloop
|
|
|
|
sumert | Дата: Пятница, 13 Мая 2011, 16:58:25 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Эх, не получается. Пишет "Отсутствует название". Так, первое значение кэш, второе - ключ-родительский, третье ключ-потомок, четвертое сама способность, так? Если да, значит я не знаю где ошибка((Добавлено (13-05-2011, 16:58) --------------------------------------------- А, не, работает, спасибо. Я тупанул, не то имя кэша ввел. Тему можно прикрыть.
|
|
|
|