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

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

Ответ
 
prog

offline
Опыт: 32,865
Активность:
DaeDR, надоест возиться с ф-циями из AI или понадобятся и другие данные кроме стоимости - добро пожаловать ко мне в бетатестеры. Моя утилита специализируется именно на доступе из кода к данным по объектам. Естественно все происходит на этапе сохранения карты, а чтобы иметь доступ к этим данным во время игры их достаточно положить в ту или иную разновидность базы. Я предпочитаю хештаблицы, но никто не мешает использовать vjass или собственные конструкции на массивах.
Старый 30.03.2012, 19:23
Parez

offline
Опыт: 1,307
Активность:
Цитата:
Ничего не получилось (даже через обычный WE).
WE говорит, что такой функции нет. Даже когда импортировал common.ai, ничего не изменилось.
Есть еще варианты, как перенести нативки из common.ai в WE?
DaeDR добавил:
Решил проблему: внес в common.j нативки из common.ai и импортировал common.j в карту(путь: Scripts\common.j). Вес пострадал, но оно того стоит.


Как-то странно... Ведь ты и так, и так импортируешь одни и те же функции. А может стоит попробовать изменить расширение common.ai на common.j и импортировать? По сути же расширение ничего не меняет в данном случае, функции же одни и те же..

А с объявлением интерфейсов ф-ций в коде карты тоже не получилось?

p.s.
Никто так и не ответил на мой вопрос:
Цитата:
Эти функции (GetUpgradeGoldCost и GetUpgradeWoodCost) возвращают стоимость исследования первого уровня или как?
Старый 30.03.2012, 21:46
prog

offline
Опыт: 32,865
Активность:
Parez, фиг их знает как они будут работать вне контекста AI. В AI они возвращают стоимость для текущего уровня исследования. Подозреваю что в мультиплеерее попытка вызывать эти ф-ции вне ai будет вызывать десинк. В лучшем случае будет возвращен первый уровень или нулевое значение. В худшем - десинк или непредсказуемые данные.
Старый 30.03.2012, 22:18
Parez

offline
Опыт: 1,307
Активность:
Ясно. А у меня чё-то даже не получается сделать, как сделал ты. Всё ошибку выдаёт - "Отсутствует корректный список аргументов". Мб я чё не так пишу..
Код:
function Trig_zx_Actions takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), I2S(GetUpgradeGoldCost('Rhgb')) )
endfunction

//===========================================================================
function InitTrig_zx takes nothing returns nothing
    set gg_trg_zx = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_zx, 1.00 )
    call TriggerAddAction( gg_trg_zx, function Trig_zx_Actions )
endfunction

Отредактировано Parez, 31.03.2012 в 15:23.
Старый 30.03.2012, 22:21
prog

offline
Опыт: 32,865
Активность:
Parez, call лишний
Старый 30.03.2012, 22:23
Parez

offline
Опыт: 1,307
Активность:
Блин, я с этим джассом с ума сойду)
Убрал call - теперь другая ошибка: Отсутствует название
Старый 30.03.2012, 22:48
prog

offline
Опыт: 32,865
Активность:
Parez, где убрал то? ну и главное - импортировал ли ты нативку?
Старый 30.03.2012, 23:28
DaeDR

offline
Опыт: 8,074
Активность:
Parez, импортируй вот это в карту с именем "Scripts\common.j".
Прикрепленные файлы
Тип файла: rar common.rar (21.9 Кбайт, 2 просмотров )
Старый 30.03.2012, 23:29
Parez

offline
Опыт: 1,307
Активность:
Parez, где убрал то? ну и главное - импортировал ли ты нативку?
Parez, импортируй вот это в карту с именем "Scripts\common.j".
Блин, ну вы меня совсем за дебила держите) Всё именно так и сделал. И если я не убрал call в посте, это не значит, что я не убрал его в карте. Это ведь можно делать в обычном редакторе или надо обязательно JNGP юзать?
В AI они возвращают стоимость для текущего уровня исследования.
Так для каждого игрока же свой уровень исследования, а ф-ция не требует передачи в неё ни аргумента уровня, ни номера игрока..
Старый 31.03.2012, 15:23
prog

offline
Опыт: 32,865
Активность:
Parez:
Так для каждого игрока же свой уровень исследования, а ф-ция не требует передачи в неё ни аргумента уровня, ни номера игрока.
Напоминаю что AI код работает по своим собственным правилам, немного отличающимся от общих правил для jass-кода. AI код знает для какого игрока он выполняется, пэтому у функций, разработанных для AI и нет необходимости в получении номера игрока.
Parez:
И если я не убрал call в посте, это не значит, что я не убрал его в карте.
Я имел ввиду что там два места, где можно убрать call, вот и хотел уточнить какой именно ты убрал.
Старый 31.03.2012, 15:44
Parez

offline
Опыт: 1,307
Активность:
Цитата:
Напоминаю что AI код работает по своим собственным правилам, немного отличающимся от общих правил для jass-кода. AI код знает для какого игрока он выполняется, пэтому у функций, разработанных для AI и нет необходимости в получении номера игрока.


А выполнять эти функции можно обычным образом? Или как-то по-особенному?

Цитата:
Я имел ввиду что там два места, где можно убрать call, вот и хотел уточнить какой именно ты убрал.

Тогда извиняюсь, не так понял. А где ещё надо убрать (пост отредактировал - теперь видно, где я убрал call)?
Старый 31.03.2012, 16:11
prog

offline
Опыт: 32,865
Активность:
Parez, я не знаю, у дока спроси - импортировать его идея была. Я этим не заморачиваюсь и делаю базу данных в подобных случаях. За то что указал на эти функции, не посмотрев что они из AI я уже извинился.
Старый 31.03.2012, 19:23
Parez

offline
Опыт: 1,307
Активность:
Цитата:
Сообщение от DaeDR
~Hellfim, Да, JNGP мешает. Сейчас попробую импортирвать

__DaeDR добавил:__
Ничего не получилось (даже через обычный WE).
WE говорит, что такой функции нет. Даже когда импортировал common.ai, ничего не изменилось.

Есть еще варианты, как перенести нативки из common.ai в WE?

__DaeDR добавил:__
Решил проблему: внес в common.j нативки из common.ai и импортировал common.j в карту(путь: Scripts\common.j). Вес пострадал, но оно того стоит.


А можешь скинуть то, что у тебя получилось? Что-то у меня не получается...
Старый 02.04.2012, 16:43
DaeDR

offline
Опыт: 8,074
Активность:
Parez, карта-пример
Прикрепленные файлы
Тип файла: w3x Costs.w3x (46.4 Кбайт, 9 просмотров )
Старый 02.04.2012, 17:53
Parez

offline
Опыт: 1,307
Активность:
Спасибо большое. То, что нужно.
Старый 02.04.2012, 18:23
prog

offline
Опыт: 32,865
Активность:
А с улучшениями работает? Для юнитов то все просто - они у всех игроков одинаково стоят и не имеют уровней.
Старый 02.04.2012, 19:43
DaeDR

offline
Опыт: 8,074
Активность:
prog, нет. Вар вылетает с фаталом
Старый 02.04.2012, 19:53
prog

offline
Опыт: 32,865
Активность:
DaeDR, что и следовало доказать. Для улучшений только базу собирать. Добро пожаловать.
Кстати, интересная мысль - надо проверить у всех ли вылетит вар, если вызвать эту ф-цию в локальном коде. И будут ли десинки в локальной сети, если вылетит только один игрок.
Старый 02.04.2012, 20:00
DaeDR

offline
Опыт: 8,074
Активность:
И еще, после парочки экспериментов перестал работать ai(даже стандартный). При сохранении карты через JNGP ai просто бездействовал или редактор зависал. Пришлось все переустанавливать.
Используйте совмещение common.ai и .j с осторожностью. Будет крит, пиши пропало
Старый 03.04.2012, 07:30
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
DaeDR, просто не надо фигнёй заниматься и всё норм будет...
Базу данных лень делать, ну надо искать функцию которая все проблемы решит, но увы такой функции нет)
Старый 03.04.2012, 07:36
Ответ

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

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

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

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



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