Сейчас 02:00:51 Суббота, 21 сентября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Передача данных из карты в карту
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)
---------------------------------------------
А, не, работает, спасибо. Я тупанул, не то имя кэша ввел. Тему можно прикрыть.

 

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

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