Есть ли у кого-нибудь список того, как BLIZZARD оформляет задания (quest'ы) в игре?
Например:
|cffffcc00ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО|r
Убейте smb.
|cff32CD32ПОДСКАЗКА:|r
...
|cff87CEEBНОВЫЙ ВИД ВОЙСК|r
...
И всё в этом духе. Смотрел эту статью xgm.guru/p/wc3/donotforget, но там не всё есть.

Принятый ответ

ScopteRectuS, что мешает распаковать из war3.mpq / war3x.mpq / war3xlocal.mpq карты кампаний из архивной папки Campaings, и открыть через WE карты этих кампаний, чтобы посмотреть как оформляет Метелица.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
27
7 лет назад
Отредактирован MpW
3
У меня нет списка, так сделай свой. Не понимаю, обязательно делать как было у близзард 3? главное, чтоб красиво, быстро и удобно было, без излишевств. Если так надо перерой весь варкрафт 3, потом скинь на сайт.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО"
"|n" - перенос на другую строку. Эта фишка может не везде работать, например в описаний баффов. Но здесь пригодится, должно сработать по идее.
Если "|n" не работает, ну мало ли там, вот в описаний итемов и юнитов работает норм. так введи два сообщения последовательно: Сначало одно сообщение, потом другое. Второе на следующую строку перенесет. И будет тебе два как одно.
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
Ну нужно иметь набор готовых строк. Короче базу данных. При конкретных ситуациях выдавай соответствующее сообщение. Я тоже хотел бы иметь этот набор
вот где полезны штуки, так вот здесь
Вот например, для игроков эти штуки пригодятся, в мультибордах или в оповещениях при убийствах и др.
1
21
7 лет назад
1
Steal nerves:
У меня нет списка, так сделай свой. Не понимаю, обязательно делать как было у близзард 3? главное, чтоб красиво, быстро и удобно было, без излишевств. Если так надо перерой весь варкрафт 3, потом скинь на сайт.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО"
"|n" - перенос на другую строку. Эта фишка может не везде работать, например в описаний баффов. Но здесь пригодится, должно сработать по идее.
Если "|n" не работает, ну мало ли там, вот в описаний итемов и юнитов работает норм. так введи два сообщения последовательно: Сначало одно сообщение, потом другое. Второе на следующую строку перенесет. И будет тебе два как одно.
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
Ну нужно иметь набор готовых строк. Короче базу данных. При конкретных ситуациях выдавай соответствующее сообщение. Я тоже хотел бы иметь этот набор
вот где полезны штуки, так вот здесь
Вот например, для игроков эти штуки пригодятся, в мультибордах или в оповещениях при убийствах и др.
Я уже сделал функцию, но там еще много не доделано.
function QuestMessage takes player p, integer messageType, string message returns nothing
        if (messageType == bj_QUESTMESSAGE_DISCOVERED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUEST, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUEST, "|cffffcc00ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО|r")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUEST, message)
            call StartSound(bj_questDiscoveredSound)
            call FlashQuestDialogButton()

        elseif (messageType == bj_QUESTMESSAGE_UPDATED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTUPDATE, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTUPDATE, "|cffffcc00ОСНОВНОЕ ЗАДАНИЕ ИЗМЕНИЛОСЬ|r")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTUPDATE, message)
            call StartSound(bj_questUpdatedSound)
            call FlashQuestDialogButton()

        elseif (messageType == bj_QUESTMESSAGE_COMPLETED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTDONE, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTDONE, "|cffffcc00ОСНОВНОЕ ЗАДАНИЕ ВЫПОЛНЕНО|r")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTDONE, message)
            call StartSound(bj_questCompletedSound)
            call FlashQuestDialogButton()

        elseif (messageType == bj_QUESTMESSAGE_FAILED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTFAILED, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTFAILED, "|cffffcc00ОСНОВНОЕ ЗАДАНИЕ ПРОВАЛЕНО|r")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTFAILED, message)
            call StartSound(bj_questFailedSound)
            call FlashQuestDialogButton()

        elseif (messageType == bj_QUESTMESSAGE_REQUIREMENT) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_QUESTREQUIREMENT, message)

        elseif (messageType == bj_QUESTMESSAGE_MISSIONFAILED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_MISSIONFAILED, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_MISSIONFAILED, message)
            call StartSound(bj_questFailedSound)

        elseif (messageType == bj_QUESTMESSAGE_HINT) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_HINT, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_HINT, "|cff32CD32КРАТКАЯ ПОДСКАЗКА:|r" + message)
            call StartSound(bj_questHintSound)

        elseif (messageType == bj_QUESTMESSAGE_ALWAYSHINT) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_ALWAYSHINT, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_ALWAYSHINT, "|cff32CD32ПОДСКАЗКА:|r" + message)
            call StartSound(bj_questHintSound)

        elseif (messageType == bj_QUESTMESSAGE_SECRET) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_SECRET, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_SECRET, message)
            call StartSound(bj_questSecretSound)

        elseif (messageType == bj_QUESTMESSAGE_UNITACQUIRED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_UNITACQUIRED, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_UNITACQUIRED, message)
            call StartSound(bj_questHintSound)

        elseif (messageType == bj_QUESTMESSAGE_UNITAVAILABLE) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_UNITAVAILABLE, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_UNITAVAILABLE, "|cff87CEEBНОВЫЙ ВИД ВОЙСК|r")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_UNITAVAILABLE, message)
            call StartSound(bj_questHintSound)

        elseif (messageType == bj_QUESTMESSAGE_ITEMACQUIRED) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_ITEMACQUIRED, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_ITEMACQUIRED, message)
            call StartSound(bj_questItemAcquiredSound)

        elseif (messageType == bj_QUESTMESSAGE_WARNING) then
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_WARNING, " ")
            call DisplayTimedTextToPlayer(p, 0, 0, bj_TEXT_DELAY_WARNING, message)
            call StartSound(bj_questWarningSound)
        endif
    endfunction
0
29
7 лет назад
0
ScopteRectuS, что мешает распаковать из war3.mpq / war3x.mpq / war3xlocal.mpq карты кампаний из архивной папки Campaings, и открыть через WE карты этих кампаний, чтобы посмотреть как оформляет Метелица.
Принятый ответ
0
21
7 лет назад
0
KingMaximax, я собирался это сделать, если никто тут не ответит.
Там куча карт, открывать каждую и вникать для меня сложно. К тому же там все триггеры написаны на GUI, а это очень сложно понимать, потому-что он тупо не читабелен. Миллион кликов мышью, чтобы открыть то, открыть это... Вот если бы там было написано на JASS....
0
17
7 лет назад
0
ScopteRectuS:
KingMaximax, я собирался это сделать, если никто тут не ответит.
Там куча карт, открывать каждую и вникать для меня сложно. К тому же там все триггеры написаны на GUI, а это очень сложно понимать, потому-что он тупо не читабелен. Миллион кликов мышью, чтобы открыть то, открыть это... Вот если бы там было написано на JASS....
Гуи самое простое что есть в триггерах и они самые читабельные и понятные. Темболее гуи же можно переобразовать в джасс
0
28
7 лет назад
0
Гуи самое простое что есть в триггерах и они самые читабельные и понятные.
да нифига
джасс намного проще понять(если не полный быдлокод)
+ в джасс доступен поиск по тексту
а вот в гуи из за кучи костылей и долбаных окошек очень долго разбираться
единственная сложность джасса в том что его надо учить в то время как в гуи можно пытаться и так работать
0
16
7 лет назад
0
Чтобы разбираться в жассе. достаточно базового инглиша, а у большинства с этим проблемы. Вот и сидят вечно на гуи.
0
28
7 лет назад
Отредактирован nvc123
0
DracoL1ch, кроме инглиша нужна ещё базовая логика и здравый смысл
а вот с этим у очень многих проблемы
а потом задают вопросы типа "почему когда складываю 2 и 2 не получается 5"
а им такие же советуют "добавь условие if(2+2==4){return 5}"
0
17
7 лет назад
0
nvc123:
DracoL1ch, кроме инглиша нужна ещё базовая логика и здравый смысл
а вот с этим у очень многих проблемы
а потом задают вопросы типа "почему когда складываю 2 и 2 не получается 5"
а им такие же советуют "добавь условие if(2+2==4){return 5}"
Не спасибо, я обычный человек, который занимается учебой, где науки тоже н из простых, и насиловать свой мозг програмированием уж точно не хочу,
0
28
7 лет назад
0
и насиловать свой мозг програмированием уж точно не хочу
поэтому мы будем насиловать свой мозг гуи окошками и радоваться тому что мы не учили джасс
т.к. умножение мы не учили
ведь джасс это 1 раз 2 часа посидеть поучить а на гуи 100500 раз но по 1 часу каждый раз
а 2>1, поэтому лучше гуи
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.