Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#4426
Старый 24.07.2017, 21:44
  #4426
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 510
Выставка наград
Регистрация: 08.09.2013
Сообщения: 510
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Как сделать так что бы появление обновления квеста стало видно игроку без знания методики "зайти в задания и посмотреть что там изменилось"
Так можно же показать отлетающее сообщение "Квест такой-то обновился" или что-нибудь более подробное.
Неа все анимации есть. Полней комплект плюс три вида разговора и много еще чего
Ну, я на самом деле в свой редактор заглянул, и конкретно у героя Аларика видел только 2 анимации, так что не знаю, может это от версии игры зависит.
Кстати, оцените сам скрипт
Если нужна критика, я бы:
- избегал "магических" чисел (4 вместо названия ресурса).
- вынес повторяющиеся строковые константы в переменные, чтобы в случае изменения достаточно было поменять в одном месте (если игрок всегда под номером 1 и имеет одного главного героя)
	player_id = PLAYER_1;
player_hero = 'Markel2';
- заменил некрасивую конструкцию с выдачей ресурсов на функцию
	function SetRes(res, num)
  local curr_num = GetPlayerResource(player_id, res);
  SetPlayerResource(player_id, res, curr_num + num, player_hero);
end
- если планируется много эффектов, вынес бы их неудобоваримые названия в отдельную таблицу, вот кусочек из "Пути героя" (реально там забито гораздо больше эффектов):
	-- список эффектов для PlayVisualEffect
effects_table =
{
  ['Haste']                  = 'Spells/Haste', -- ветерок
  ['StoneSkin']              = 'Spells/StoneSkin', -- каменная стена вокруг
  ['Bless']                  = 'Spells/Bless', -- свет с небес
  ['DeflectArrows']          = 'Spells/DeflectArrows', -- что-то вроде щита сбоку
  ['Dispel']                 = 'Spells/Dispel', -- магический туман, заканчивающийся взрывом
  ['Dispel_fail']            = 'Spells/Dispel_fail', -- магический туман без взрыва
};

function GetEffectName(id)
  return '/Effects/_(Effect)/'..effects_table[id]..'.xdb#xpointer(/Effect)'
end

PlayVisualEffect(GetEffectName('Dispel'), ...);
Jack_of_shadows вне форума
Ответить с цитированием