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

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

Ответ
 
J64_

offline
Опыт: 4,724
Активность:
бинарный поиск(типо) версус хештэйбл
люди/нелюди добрые/злые скажите
как реализовать такие массивы:
""strcut xunit{
xunit array items[50]
real array stats[100]
}""
хотел бы так сделать но количество инстансов мне очень важна.
""strcut xunit[8190]{
xunit array items[50]
real array stats[100]
}""
не предлагать. виджасс криво это делает
так вот, лучше:
бинарным поиском+стопитьсот массивов:
    if i<=4{
        if i<=2{
            if i==1{var1=data}
            else{var2=data}
        }else{
            if i==3{var3=data}
            else{var4=data}
        }
    }else{
      ...
    }
или хешем:
    SaveInteger(Table,id,i,data)
?
Из личных наблюдений: второй вариант лагает при инитиализации в отличии от первого...
просто у меня всяких стопватчей и прочих фентефлющек нету...
Старый 31.05.2011, 12:53
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
Попробуйте сформировать вопрос повторно, в понятной для людей формы. При изложении не пренебрегайте правилами русского языка и уделите особое внимание правильности построения предложений.
Старый 02.06.2011, 14:31
DioD

offline
Опыт: 45,184
Активность:
а теперь по русски что тебе надо и самое главное зачем.
2д бездонные массивы не делаются без колдунства в принципе, по причинам ограничений джаса
Старый 02.06.2011, 20:48
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Цитата:
Сообщение от AdamanTX
виджасс криво это делает

не криво. По другому ни как
Старый 02.06.2011, 22:34
J64_

offline
Опыт: 4,724
Активность:
DioD:
а теперь по русски что тебе надо и самое главное зачем.
для каждого юнита(xunit) мне нужно хранить:
около 40 итемов(xunit){вызывается при пике/дропе итема}
около 100 статов(real){очень часто вызывается}
около 50 баффов(xbuff)
структура xunit поделена так:
1..2048 - обычные юниты
2049..5120 - дамми юниты
5121..8191 - хранилища данных
почему? Потому что каждый из них использует переменные другого.
alexprey:
не криво. По другому ни как
докажи :о
Старый 03.06.2011, 14:59
DioD

offline
Опыт: 45,184
Активность:
ну и что мешает хранить на каждый юнит 200 слотов последовательно "хвостиком"?
вообще не понимаю проблему, каждый юнит забивает 200 слотов массива, в первом слоте серии хранится указатель на юнита * -1 для идентефикации.
0 = -1
200 = -2
400 = -3
600 = -4
800 = -5
хотя лично я вижу лишь нубские школоло попытки выделится из толпы системой "100500 статов ни у кого такой нет" которая не нужна в принципе.
метаданные 31-63 слота + самоидентефикатор позволяет тянуть 32 дополнительных параметра без кеша и прочих веселых вещей.
Старый 03.06.2011, 15:42
Ответ

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

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

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

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



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