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

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

ScopteRectuS, что мешает распаковать из war3.mpq / war3x.mpq / war3xlocal.mpq карты кампаний из архивной папки Campaings, и открыть через WE карты этих кампаний, чтобы посмотреть как оформляет Метелица.
0
27
7 лет назад
Отредактирован MpW
0
Не совсем понял, что вы хотите. Мб вам нужно знать как генерировать текст, то можно сделать с помощью программ
Журнал сообщений можно очистить полностью, есть такая команда ClearTextMessages. Но пишут на форуме, что нельзя удалять и это что-то другое xgm.guru/forum/showthread.php?t=55086
код BJ
function ClearTextMessagesBJ takes force toForce returns nothing
    if (IsPlayerInForce(GetLocalPlayer(), toForce)) then
        // Use only local code (no net traffic) within this block to avoid desyncs.
        call ClearTextMessages()
    endif
endfunction
А вот как туда ввести, это же обычное сообщение. После оно вносится в журнал сообщений. Есть две разные нативки (одна вносит в журнал, а другая не вносит. кажется это нативка со временем не работает. возможно ошибаюсь, не помню).
нативки
native DisplayTextToPlayer takes player toPlayer, real x, real y, string message returns nothing
native DisplayTimedTextToPlayer takes player toPlayer, real x, real y, real duration, string message returns nothing
native DisplayTimedTextFromPlayer takes player toPlayer, real x, real y, real duration, string message returns nothing
0
21
7 лет назад
0
Steal nerves, я имел ввиду оформление.
допустим, когда вы получаете новое задание, сообщение "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО" будет закрашено в цвет "ffcc00" и именно в такой, а не в зеленый (00ff00) например.
И текст будет написан полностью большими (прописными) буквами, а не строчными, например.
Текст сообщения будет записан на след. строке, а не в один с "ОСНОВНОЕ ЗАДАНИЕ ПОЛУЧЕНО".
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, поэтому лучше гуи
Чтобы оставить комментарий, пожалуйста, войдите на сайт.