Я вот не пойму, куда близзарды смотрели. Решил я значит делать РПГ карту для игры по сети, сделал героев, спеллы, врагов и сюжет. Стал делать квесты и в результате, квест который даётся 1 игроку виден в отделе заданий Абсолютно всем игрокам.
Как сделать так, что бы в отделе заданий, каждый квест был виден только определённому игроку, тому, который его взял?

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

Для карты, которую я прикрепил нужен JNGP. Для 1 игрока задание показывается, а для других нет.
Загруженные файлы
0
19
6 лет назад
0
Похожие вопросы:

ответ
Master113, добавить через "Новое условие" оператор "или" (Там два разных варианта, удобнее "or, multiple conditions" ("или, несколько условий" - как-то так)), туда поместить сравнения для каждого юнита. (Условие "или" будет выполняться, если выполнится хотя бы 1 условие внутри. Для оператора "и" - должны выполняться все условия внутри. Стандартный раздел триггера "Условия" действует как "и").
ответ
ТЬФУ! Никто, начиная с меня, JASS читать не умеет!
call SetAbilityCD (GetSpellAbilityId(), i, GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) * percent)
на русский переводится как:
  • Задать перезарядку способности (Кастуемая способность, уровень i, получить перезарядку способности юнита на ТЕКУЩЕМ УРОВНЕ СПОСОБНОСТИ ЮНИТА и умножить на нашу переменную)
Какого хрена тут ТЕКУЩИЙ УРОВЕНЬ, когда должен тоже быть уровень i?! Оно в цикле везде берет текущий уровень абилки вмеcто i. Т. е. если перезарядка на разных уровнях разная, это уже ппц ошибка.
Сейчас как раз фикшу эту абилу, она один хрен не до конца правильно действует, и уже тут самые разные извращения с ней получались, после выхода из вара фаталило, крч, 90% вероятности, что другие абилы Психопомпы в поряде, а фатал здесь.
Короче, вот, вроде теперь действует нормально.
Извините уж, что не под катом, мозги уже не имеют сил кат вставлять.
function BendingEffect takes nothing returns nothing
local real percent = 1.00
local real percent2 = 0.00
local integer i = 11
local integer percentchange = 0
if ( GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()) >= 1 ) and (GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) >= 1) then
УВЕЛИЧЕНИЕ НА 1%
if UnitHasBuffBJ(GetTriggerUnit(),'B0H8') == true then
set percent = 1.01
endif
НА 1% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 2%
if UnitHasBuffBJ(GetTriggerUnit(),'B0H9') == true then
set percent = 1.02
endif
НА 2% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 3%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HA') == true then
set percent = 1.03
endif
НА 3% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 4%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HB') == true then
set percent = 1.04
endif
НА 4% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 5%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HC') == true then
set percent = 1.05
endif
НА 5% - ЗАКРЫТО.
ТАЛАНТ СИЛЬНОЕ ИСКРИВЛЕНИЕ
set i = 0
set percent = percent - 1
loop
set i = i + 1
exitwhen i > 12
if ( GetUnitAbilityLevelSwapped('A281', udg_Circle[i]) == 2 ) then
set percent = percent * 2
set i = 12
endif
endloop
set percent = percent + 1
ТАЛАНТ СИЛЬНОЕ ИСКРИВЛЕНИЕ - ЗАКРЫТО.
if (percent > 1.00) then
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Psychopomp2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
loop
exitwhen i < 1
set i = i-1
ОКРУГЛЕНИЕ ДО СОТЫХ (ИНАЧЕ МОГУТ ЗАПИСАТЬСЯ ДОП. ЦИФРЫ НЕ В ТЕ ЯЧЕЙКИ)
loop
exitwhen i < 1
set i=i - 1
set percent2 = GetAbilityCD(GetSpellAbilityId(), i) * percent
set percent2 = percent2 * 100
set percentchange = R2I(percent2)
set percent2 = I2R(percentchange)
set percent2 = percent2 * 0.01
call SetAbilityCD(GetSpellAbilityId() , i , percent2)
endloop
ОКРУГЛЕНИЕ ДО СОТЫХ - ЗАКРЫТО.
endloop
else
endif
else
endif
endfunction
//////////////
Ну, короче, действует-то однозначно она уже лучше, раньше цифры высчитывались с избытком, теперь явно правильнее. Насчет фаталов время покажет... Но все равно стало лучше.
((кат ответ
Clamp, когда ты начнешь внимательно читать что я пишу!
Там грузится не то что он написал в описании задания а все строки из констант и все пути к текстурам.
Что именно грузит движок в момент открытия вкладки задания, можно прелоадом.
Вот содержимое pld файла у меня:
quest.pld
((код jass
call Preload( "war3map.w3i" )
call Preload( "war3map.wts" )
call Preload( "Maps\\Test\\WorldEditTestMap.w3x" )
call Preload( "Sound\\Interface\\GamePause.wav" )
call Preload( "Sound\\Interface\\QuestActivateWhat1.wav" )
call Preload( "UI\\Widgets\\EscMenu\\NightElf\\nightelf-options-menu-background.blp" )
call Preload( "UI\\Widgets\\EscMenu\\Human\\quest-normal-background.blp" )
call Preload( "UI\\Widgets\\EscMenu\\Human\\quest-completed-background.blp" )
call Preload( "UI\\Widgets\\EscMenu\\Human\\editbox-background.blp" )
call Preload( "UI\\Widgets\\EscMenu\\Human\\quest-failed-background.blp" )
call Preload( "ReplaceableTextures\\CommandButtons\\BTNSkeletonArcher.blp" )
call Preload( "ReplaceableTextures\\CommandButtons\\BTNSpy.blp" )
call Preload( "UI\\Widgets\\EscMenu\\NightElf\\nightelf-options-button-highlight.blp" )
call Preload( "ReplaceableTextures\\CommandButtons\\BTN_quq_CCCP.blp" )
call Preload( "ReplaceableTextures\\CommandButtons\\BTNFrostWyrm.blp" )
call Preload( "Sound\\Interface\\BigButtonClick.wav" )
call PreloadEnd( 47.8 )
))
))
ответ
Можно меню переместить за пределы экрана с помошью мемхак рендер
call EditUpperButtonBarButtonPixel(0, ANCHOR_TOPRIGHT, upperBarStartX, upperBarStartY + upperBarDeltaY*0, upperButtonWidth, upperButtonHeight)
        call EditUpperButtonBarButtonPixel(1, ANCHOR_TOPRIGHT, upperBarStartX, upperBarStartY + upperBarDeltaY*1, upperButtonWidth, upperButtonHeight)
        call EditUpperButtonBarButtonPixel(2, ANCHOR_TOPRIGHT, upperBarStartX, upperBarStartY + upperBarDeltaY*2, upperButtonWidth, upperButtonHeight)
        call EditUpperButtonBarButtonPixel(3, ANCHOR_TOPRIGHT, upperBarStartX, upperBarStartY + upperBarDeltaY*3, upperButtonWidth, upperButtonHeight)
Вот карта
пример скрин
как выглядит я все убрал меню за предел экрана
ответ
Лимита заданий-нету, проверено.

0
7
6 лет назад
0
Потребуются минимальные знания jass. Сначала ознакомься с этим. Также можешь посмотреть как делается локальный мультиборд, ибо план действия одинаков, создал - спрятал\отредактировал - показал кому надо.
5
32
6 лет назад
5
РПГ по сети, 2018 на гуях, на гуях!!! Будет "Еще одна карта".
0
29
6 лет назад
0
    Events
        Player - Player 1 (Red) types a chat message containing test as An exact match
    Conditions
    Actions
        Set Player = (Triggering player)
		Quest - Create a Required quest titled Quest 1 - Killing q... with the description long long descripti..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
        Quest - Disable (Last created quest)
        Custom script: if GetLocalPlayer() == udg_Player then
        Quest - Enable (Last created quest)
        Quest - Flash the quest dialog button
        Custom script: endif
0
15
6 лет назад
0
Для карты, которую я прикрепил нужен JNGP. Для 1 игрока задание показывается, а для других нет.
Загруженные файлы
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.