XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Структура в Хеш
у меня есть структура допустим
sctruct hero{
    string name
    int type
    ..........
}

затем использую её где-то
void Init(){
hero array h
h[1].name = "Имя героя какое нибудь"
h[1].type = 'H000'
}
вопрос: Можно ли сохранить в хеш целую переменную h[1] например,нужно что то типа SaveHero(hash,a,1,h[1])
или всётаки делать функцию для сохранения структуры в хеш
типа
void SaveHero(hashtable hash,int H2I,string name,int type){
 SaveString(h,H2I,1,name)
 SaveInteger(h,H2I,2,type)
}
Старый 27.12.2010, 23:38
Nekit1234007

offline
Опыт: 11,916
Активность:
Структура это инт.
((код jass
cjass
struct a {
unit hero
private static hashtable ht = InitHashtable()
private void onTimer() {
thistype this = LoadInteger(this.ht, GetHandleId(GetExpiredTimer()), 0)
Действия с героем, и чем-то ещё, из структуры, привязанной к таймеру
}
thistype new(unit u) {
thistype this = thistype.allocate()
timer t = CreateTimer()
this.hero = u
SaveInteger(this.ht, GetHandleId(t), 0, this) Сюда смотреть.
TimerStart(t, .04, true, function thistype.onTimer)
return this
}
}
vjass
struct a
unit hero
private static hashtable ht = InitHashtable()
private method onTimer takes nothing returns nothing
local thistype this = LoadInteger(this.ht, GetHandleId(GetExpiredTimer()), 0)
Действия с героем, и чем-то ещё, из структуры, привязанной к таймеру
endmethod
method new takes unit u returns thistype
local thistype this = thistype.allocate()
local timer t = CreateTimer()
set this.hero = u
call SaveInteger(this.ht, GetHandleId(t), 0, this) Сюда смотреть.
call TimerStart(t, .04, true, function thistype.onTimer)
return this
endmethod
endstruct
))

Отредактировано Nekit1234007, 30.01.2011 в 12:07.
Старый 28.12.2010, 00:01
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
отрежьте ему руки
глобальный массив и сейвить индекс - не вариант?
Старый 28.12.2010, 00:02
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Nekit1234007, спс понял
df_Hunter, ну если ты не заметил то у меня она обьявлена как локальная
Klop добавил:
ешё раз уж я тут,вопрос есть ли такое как в Делфи незнаю как в С++,оператор with
например указываем
with h[1]{
  name = "Бугага"
  type = 'H000'
}
Старый 28.12.2010, 00:15
spellwerk

offline
Опыт: 4,869
Активность:
Цитата:
Сообщение от Klop
оператор with
он нужен? чем тебя точка не устраивает?
Старый 28.12.2010, 00:16
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Spy_, это тоже самое?
Вообщем я обьясняю ситуацию,я вчера только попробовал создавать структуры поэтому я в этом щас полный валенок,откуда я мог знать что там есть this?))
Старый 28.12.2010, 00:18
spellwerk

offline
Опыт: 4,869
Активность:
Старый 28.12.2010, 00:22
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Spy_, спс почитал,но this используется в самой структуре у меня же уже в отдельной функции
Klop добавил:
аааа туплю всё дошло спс всем
Klop добавил:
тему можно закрывать
Старый 28.12.2010, 00:33
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 07:36.