Готовый перевод Tales of Maj'Eyal / Сказы Мадж'Эяла: tome_modules_misc
file/game/modules/tome.team/data/achievements/arena.lua.txt
newAchievement{
name = "Арена",
show = "full",
desc = [[Разблокирован режим арены.]],
}
newAchievement{
name = "Боец Арены 20",
show = "full",
desc = [[Пережить 20 волн в кампании арены.]],
}
newAchievement{
name = "Боец Арены 50",
show = "full",
desc = [[Выжить 50 волн на арене.]],
}
newAchievement{
name = "Почти Мастер Арены",
show = "full", huge=true,
desc = [[Стать новым мастером арены в режиме 30 волн.]],
}
newAchievement{
name = "Чемпион Арены",
show = "full", huge=true,
desc = [[Стать новым чемпионом арены в режиме 60 волн.]],
}
newAchievement{
name = "XXX Разрушитель",
show = "full",
desc = [[Получить ранг Разрушителя на арене.]],
}
newAchievement{
name = "Великий Мастер",
show = "full",
desc = [[Получить ранг Великого Мастера на арене.]],
}
newAchievement{
name = "Десятерых одним ударом",
show = "full",
desc = [[Убить 10 врагов одной атакой на арене.]],
}
file/game/modules/tome.team/data/achievements/donator.lua.txt
newAchievement{
name = "Бронзовый Донатор", id = "BRONZE_DONATOR",
desc = [[Пожертвовать 5 евро на Tales of Maj'Eyal.]],
no_difficulty_duplicate = true, no_chat_broadcast = true,
}
newAchievement{
name = "Серебренный Донатор", id = "SILVER_DONATOR",
desc = [[Пожертвовать 6 евро на Tales of Maj'Eyal.]],
no_difficulty_duplicate = true, no_chat_broadcast = true,
}
newAchievement{
name = "Золотой Донатор", id = "GOLD_DONATOR",
desc = [[Пожертвовать 16 евро на Tales of Maj'Eyal.]],
no_difficulty_duplicate = true, no_chat_broadcast = true,
}
newAchievement{
name = "Стралитовый Донатор", id = "STRALITE_DONATOR",
desc = [[Пожертвовать 31 евро на Tales of Maj'Eyal.]],
no_difficulty_duplicate = true, no_chat_broadcast = true,
}
newAchievement{
name = "Воратуновый Донатор", id = "VORATUN_DONATOR",
desc = [[Пожертвовать 60 евро на Tales of Maj'Eyal.]],
no_difficulty_duplicate = true, no_chat_broadcast = true,
}
file/game/modules/tome.team/data/achievements/events.lua.txt
newAchievement{
name = "Падение небес!", id = "EVENT_METEOR",
show = "name",
desc = [[Увидеть как огромный метеор упал с неба.]],
}
newAchievement{
name = "Демоническое нашествие", id = "EVENT_FEARSCAPE",
show = "name",
desc = [[Остановить демоническое нашествие закрыв портал.]],
}
newAchievement{
name = "Нашествие из Глубин", id = "EVENT_NAGA",
show = "name",
desc = [[Остановить нашествие наг закрыв портал.]],
}
newAchievement{
name = "Неупокоенный", id = "EVENT_OLDBATTLEFIELD",
show = "name",
desc = [[Потревожить старое поле боя и пережить последствия.]],
}
newAchievement{
name = "Крыса Лич", id = "EVENT_RATLICH",
show = "name", huge=true,
desc = [[Убить ужасную Крысу Лича.]],
}
newAchievement{
name = "Шашшия'Каиш", id = "EVENT_CULTISTS",
show = "name",
desc = [[Убить Шашшию'Каиш после того как она наберется сил.]],
}
newAchievement{
name = "Вестник Рока", id = "EVENT_PEDESTALS",
show = "name",
desc = [[Убить Вестников Рока.]],
}
newAchievement{
name = "Живущий!", id = "CALDIZAR",
show = "name", huge=true,
desc = [[Телепортироваться в Крепость Колдизар, далеко в пустоте меж звездами.]],
}
newAchievement{
name = "Праздник слизи", id = "SLUDGENEST100",
show = "full",
desc = [[Обнаружить 100 стен, которые превратятся в враждебных существ.]],
}
newAchievement{
name = "Убийца слизней", id = "SLUDGENEST200",
show = "full", huge=true,
desc = [[Уничтожить 200 превратившихся в слизь стен в Мерзком Гнезде]],
}
newAchievement{
name = "Безумное уничтожение слизи", id = "SLUDGENEST300",
show = "full", huge=true,
desc = [[Уничтожить 300 превратившихся в слизь стен в Мерзком Гнезде]],
}
newAchievement{
name = "Не против запаха слизи", id = "SLUDGENEST400",
show = "full", huge=true,
desc = [[Уничтожить 400 превратившихся в слизь стен в Мерзком Гнезде]],
}
newAchievement{
name = "В компании слизней", id = "SLUDGENEST500",
show = "full", huge=true,
desc = [[Уничтожить 500 превратившихся в слизь стен в Мерзком Гнезде]],
}
file/game/modules/tome.team/data/achievements/infinite-dungeon.lua.txt
newAchievement{
name = "Бесконечный x10",
show = "full",
desc = [[Пройти 10 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x20",
show = "full",
desc = [[Пройти 20 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x30",
show = "full",
desc = [[Пройти 30 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x40",
show = "full",
desc = [[Пройти 40 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x50",
show = "full",
desc = [[Пройти 50 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x60",
show = "full",
desc = [[Пройти 60 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x70",
show = "full",
desc = [[Пройти 70 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x80",
show = "full",
desc = [[Пройти 80 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x90",
show = "full",
desc = [[Пройти 90 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x100",
show = "full",
desc = [[Пройти 100 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x150",
show = "full",
desc = [[Пройти 150 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x200",
show = "full",
desc = [[Пройти 200 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x300",
show = "full",
desc = [[Пройти 300 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x400",
show = "full",
desc = [[Пройти 400 этажей бесконечного подземелья.]],
}
newAchievement{
name = "Бесконечный x500",
show = "full",
desc = [[Пройти 500 этажей бесконечного подземелья.]],
}
file/game/modules/tome.team/data/achievements/items.lua.txt
newAchievement{
name = "Охотник за Сокровищами",
image = "object/money_large.png",
show = "name",
desc = [[Накопил 1000 золотых монет.]],
can_gain = function(self, who)
return who.money >= 1000
end,
}
newAchievement{
name = "Собиратель сокровищ",
image = "object/money_large.png",
show = "name",
desc = [[Накопить 3000 золотых монет.]],
can_gain = function(self, who)
return who.money >= 3000
end,
}
newAchievement{ id = "DRAGON_GREED",
name = "Драконья Жадность",
image = "object/money_large.png",
show = "name", huge=true,
desc = [[Накопил 8000 золотых монет.]],
can_gain = function(self, who)
return who.money >= 8000
end,
}
file/game/modules/tome.team/data/achievements/kills.lua.txt
newAchievement{
name = "Слишком близко",
show = "full", huge=true,
desc = [[Убить врага имея 1 жизнь]],
}
newAchievement{
name = "Размер имеет значение",
show = "full",
desc = [[Нанести 600 очков урона одним ударом.]],
on_gain = function(_, src, personal)
if src.descriptor and (src.descriptor.subclass == "Rogue" or src.descriptor.subclass == "Shadowblade") then
game:setAllowedBuild("rogue_marauder", true)
end
end,
}
newAchievement{
name = "Размер это всё", id = "DAMAGE_1500",
show = "full", huge=true,
desc = [[Нанести свыше 1500 урона за одну атаку.]],
}
newAchievement{
name = "Чем больше тем лучше!", id = "DAMAGE_3000",
show = "full", huge=true,
desc = [[Нанести свыше 3000 урона за одну атаку.]],
}
newAchievement{
name = "Превосходящий!", id = "DAMAGE_6000",
show = "full", huge=true,
desc = [[Нанести свыше 6000 урона за одну атаку.]],
}
newAchievement{
name = "Истребитель",
show = "full",
desc = [[Убить 1000 существ.]],
mode = "player",
can_gain = function(self, who)
self.nb = (self.nb or 0) + 1
if self.nb >= 1000 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 1000"} end,
}
newAchievement{
name = "Дезинсекция",
image = "npc/vermin_worms_green_worm_mass.png",
show = "full",
desc = [[Убить 1000 размножающихся паразитов.]],
mode = "player",
can_gain = function(self, who, target)
if target:knowTalent(target.T_MULTIPLY) or target.clone_on_hit then
self.nb = (self.nb or 0) + 1
if self.nb >= 1000 then return true end
end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 1000"} end,
}
newAchievement{
name = "Разбойник",
show = "full",
desc = [[Убить 1000 гуманоидов.]],
mode = "world",
can_gain = function(self, who, target)
if target.type == "humanoid" then
self.nb = (self.nb or 0) + 1
if self.nb >= 1000 then return true end
end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 1000"} end,
on_gain = function(_, src, personal)
game:setAllowedBuild("corrupter")
game:setAllowedBuild("corrupter_reaver", true)
end,
}
newAchievement{
name = "Подлый предатель", id = "ESCORT_KILL",
image = "object/knife_stralite.png",
show = "full",
desc = [[Вместо того чтобы спасти 6 странствующих путников, вы убили их.]],
mode = "player",
can_gain = function(self, who, target)
self.nb = (self.nb or 0) + 1
if self.nb >= 6 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 6"} end,
}
newAchievement{
name = "Плохой проводник", id = "ESCORT_LOST",
show = "full",
desc = [[Вам не удалось спасти любого из странствующих путников.]],
mode = "player",
can_gain = function(self, who, target)
self.nb = (self.nb or 0) + 1
if self.nb >= 9 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 9"} end,
}
newAchievement{
name = "Рука Помощи", id = "ESCORT_SAVED",
show = "full",
desc = [[Спасти всех странствующих путников.]],
mode = "player",
can_gain = function(self, who, target)
self.nb = (self.nb or 0) + 1
if self.nb >= 9 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 9"} end,
}
newAchievement{
name = "Повелитель Земли", id = "GEOMANCER",
show = "name",
desc = [[Убить Харкор'Зуна и разблокировать Каменную магию.]],
mode = "player",
}
newAchievement{
name = "Убить Билла!", id = "KILL_BILL",
image = "object/artifact/bill_treestump.png",
show = "full", huge=true,
desc = [[Убить Билла на Болоте троллей не поднимая стартовый уровень.]],
mode = "player",
}
newAchievement{
name = "Атаматоновый!", id = "ATAMATHON",
image = "npc/atamathon.png",
show = "name", huge=true,
desc = [[Убить гигантского голема Атаматона после глупой реактиваций.]],
mode = "player",
}
newAchievement{
name = "Огромный Аппетит", id = "EAT_BOSSES",
show = "full",
desc = [[Съесть 20 боссов.]],
mode = "player",
can_gain = function(self, who, target)
if target.rank < 3.5 then return false end
self.nb = (self.nb or 0) + 1
if self.nb >= 20 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 20"} end,
}
newAchievement{
name = "Бьющий головой", id = "HEADBANG",
show = "full", huge=true,
desc = [[Забить до смерти 20 боссов.]],
mode = "player",
can_gain = function(self, who, target)
if target.rank < 3.5 then return false end
self.nb = (self.nb or 0) + 1
if self.nb >= 20 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 20"} end,
}
newAchievement{
name = "Ты в своем уме?!", id = "UBER_WYRMS_OPEN",
image = "npc/dragon_multihued_multi_hued_drake.png",
show = "name", huge=true,
desc = [[Caught the attention of overpowered greater multi-hued wyrms in Vor Armoury. Perhaps fleeing is in order.]],
mode = "player",
}
newAchievement{
name = "Я очистил комнату смерти и всё, что я получил, было это паршивое достижения!", id = "UBER_WYRMS",
image = "npc/dragon_multihued_multi_hued_drake.png",
show = "name", huge=true,
desc = [[Убить семь непобедимых драконов в "Комнате Смерти" в Оружейной Вур.]],
mode = "player",
can_gain = function(self, who)
self.nb = (self.nb or 0) + 1
if self.nb >= 7 then return true end
end,
}
newAchievement{
name = "Я крутой герой", id = "NO_DERTH_DEATH",
image = "npc/humanoid_human_human_farmer.png",
show = "name", huge=true,
desc = [[Спасти Дерт без жертв среди жителей.]],
mode = "player",
}
newAchievement{
name = "Мордобой по старинке", id = "FIRST_BOSS_URKIS",
image = "npc/humanoid_human_urkis__the_high_tempest.png",
show = "full", huge=true,
desc = [[Убить Уркиса Вестника бури, заставить его бросить жезл Возвращения.]],
mode = "player",
}
newAchievement{
name = "Оставьте в покое крутых парней", id = "FIRST_BOSS_MASTER",
image = "npc/the_master.png",
show = "full", huge=true,
desc = [[Убить Повелителя, заставить его бросить жезл Возвращения.]],
mode = "player",
}
newAchievement{
name = "Вы знаете, кто виноват", id = "FIRST_BOSS_GRAND_CORRUPTOR",
image = "npc/humanoid_shalore_grand_corruptor.png",
show = "full", huge=true,
desc = [[Убить Великого Осквернителя, заставить его бросить жезл Возвращения.]],
mode = "player",
}
newAchievement{
name = "Вы знаете, кто виноват (реприза)", id = "FIRST_BOSS_MYSSIL",
image = "npc/humanoid_halfling_protector_myssil.png",
show = "full", huge=true,
desc = [[Убить Мюссил, заставить её бросить жезл Возвращения.]],
mode = "player",
}
newAchievement{
name = "Теперь, это впечатляющее!", id = "LINANIIL_DEAD",
image = "npc/humanoid_human_linaniil_supreme_archmage.png",
show = "full", huge=true,
desc = [[Убить Линаниила, высшего архимага Анголвена.]],
mode = "player",
}
newAchievement{
name = "Страх Четвёрки", id = "SLIME_TUNNEL_BOSSES",
show = "full", huge=true,
desc = [[Убить всех четырёх боссов в Туннелях Слизи.]],
mode = "player",
can_gain = function(self, who, target)
self.nb = (self.nb or 0) + 1
if self.nb >= 4 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 4"} end,
}
newAchievement{
name = "Натренированный", id = "TRAINING_DUMMY_1000000",
show = "full", huge=true,
desc = [[Нанести один миллион урона тренировочным манекенам за одну сессию.]],
mode = "player",
}
newAchievement{
name = "Так и было задумано...", id = "AVOID_DEATH",
show = "full",
desc = [[Избежать смерти 50 раз, талантом спасающим жизнь.]],
mode = "player",
can_gain = function(self, who)
self.nb = (self.nb or 0) + 1
if self.nb >= 50 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 50"} end,
}
file/game/modules/tome.team/data/achievements/lore.lua.txt
newAchievement{
name = "Сказания о Пламенном заклинаний", id = "SPELLBLAZE_LORE",
desc = [[Прочитать восемь глав Хроники Пламенного заклинания.]],
show = "full",
mode = "player",
can_gain = function(self, who, obj)
if not game.party:knownLore("spellblaze-chronicles-1") then return false end
if not game.party:knownLore("spellblaze-chronicles-2") then return false end
if not game.party:knownLore("spellblaze-chronicles-3") then return false end
if not game.party:knownLore("spellblaze-chronicles-4") then return false end
if not game.party:knownLore("spellblaze-chronicles-5") then return false end
if not game.party:knownLore("spellblaze-chronicles-6") then return false end
if not game.party:knownLore("spellblaze-chronicles-7") then return false end
if not game.party:knownLore("spellblaze-chronicles-8") then return false end
return true
end
}
newAchievement{
name = "Легенда о Гаркуле", id = "GARKUL_LORE",
desc = [[Прочитать пять глав Легенда о Гаркуле.]],
show = "full",
mode = "player",
can_gain = function(self, who, obj)
if not game.party:knownLore("garkul-history-1") then return false end
if not game.party:knownLore("garkul-history-2") then return false end
if not game.party:knownLore("garkul-history-3") then return false end
if not game.party:knownLore("garkul-history-4") then return false end
if not game.party:knownLore("garkul-history-5") then return false end
return true
end,
on_gain = function()
game:unlockBackground("garkul", "Garkul")
end,
}
newAchievement{
name = "Иной взгляд", id = "ORC_LORE",
desc = [[Изучить 5 глав истории орков, написанных историком Хадаком.]],
show = "full",
mode = "player",
can_gain = function(self, who, obj)
if not game.party:knownLore("orc-history-1") then return false end
if not game.party:knownLore("orc-history-2") then return false end
if not game.party:knownLore("orc-history-3") then return false end
if not game.party:knownLore("orc-history-4") then return false end
if not game.party:knownLore("orc-history-5") then return false end
return true
end
}
file/game/modules/tome.team/data/achievements/player.lua.txt
newAchievement{
name = "10 уровень",
show = "full",
desc = [[Получить персонажем 10 уровень.]],
}
newAchievement{
name = "20 уровень",
show = "full",
desc = [[[Получить персонажем 20 уровень.]],
}
newAchievement{
name = "30 уровень",
show = "full",
desc = [[[Получить персонажем 30 уровень.]],
}
newAchievement{
name = "40 уровень",
show = "full", huge=true,
desc = [[[Получить персонажем 40 уровень.]],
}
newAchievement{
name = "50 уровень",
show = "full", huge=true,
desc = [[[Получить персонажем 50 уровень.]],
}
newAchievement{
name = "Неостановимый",
show = "full",
desc = [[Вернуться из мертвых.]],
}
newAchievement{
name = "Уничтожен", id = "EIDOLON_DEATH",
show = "name",
desc = [[Умереть в мире Эйдолон.]],
}
newAchievement{
name = "Глупый Тук!", id = "HALFLING_SUICIDE",
show = "name",
desc = [[Совершить самоубийство, играя за полурослика]],
can_gain = function(self, who)
if who.descriptor and who.descriptor.race == "Halfling" then return true end
end
}
newAchievement{
name = "Эмансипация", id = "EMANCIPATION",
image = "npc/alchemist_golem.png",
show = "name", huge=true,
desc = [[Убить босса големом, после смерти хозяина.]],
mode = "player",
can_gain = function(self, who, target)
local p = game.party:findMember{main=true}
if target.rank >= 3.5 and p.dead and p.descriptor.subclass == "Alchemist" and p.alchemy_golem and game.level:hasEntity(p.alchemy_golem) and not p.alchemy_golem.dead then
return true
end
end,
on_gain = function(_, src, personal)
-- game:setAllowedBuild("construct")
-- game:setAllowedBuild("construct_runic_golem", true)
end,
}
newAchievement{
name = "Заберу тебя с собой", id = "BOSS_REVENGE",
show = "full", huge=true,
desc = [[Убить босса будучи мертвым.]],
mode = "player",
can_gain = function(self, who, target)
local p = game.party:findMember{main=true}
if target.rank >= 3.5 and p.dead then
return true
end
end,
}
newAchievement{
name = "Посмотрите на меня, я играю в рогалик!", id = "SELF_CENTERED",
show = "name",
desc = [[Linked yourself in the in-game chat.]],
}
newAchievement{
name = "Не бойся меня!", id = "FEARSCAPE",
show = "full",
desc = [[Пережить Мир Ужаса!]],
}
file/game/modules/tome.team/data/achievements/quests.lua.txt
newAchievement{
name = "Первые шаги", id = "TUTORIAL_DONE",
desc = [[Завершить режим обучения ToME4.]],
tutorial = true,
no_difficulty_duplicate = true,
on_gain = function(_, src, personal)
game:setAllowedBuild("tutorial_done")
end,
}
newAchievement{
name = "Крушитель вампиров",
image = "npc/the_master.png",
show = "name", huge=true,
desc = [[Убить Повелителя в его логове, Обители ужаса.]],
}
newAchievement{
name = "Опасная тайна",
show = "name",
desc = [[Найти таинственный посох и рассказать о нем в Последней Надежде.]],
}
newAchievement{
name = "Тайный город",
show = "none",
desc = [[Узнать правду о магах.]],
}
newAchievement{
name = "Сгорел дотла", id="APPRENTICE_STAFF",
show = "none",
desc = [[Передать поглощающий посох магу ученику и посмотреть фейерверк.]],
}
newAchievement{
name = "Всему вопреки", id = "KILL_UKRUK",
show = "name", huge=true,
desc = [[Убить Укрука.]],
}
newAchievement{
name = "Сдвиги",
image = "object/artifact/orb_many_ways.png",
show = "name",
desc = [[Активировать портал используя Сферу Множества Путей.]],
on_gain = function()
game:onTickEnd(function() game.party:learnLore("first-farportal") end)
end
}
newAchievement{
name = "Гибель Разрушителя", id = "DESTROYER_BANE",
show = "name",
desc = [[Убить Голбуга Разрушителя.]],
}
newAchievement{
name = "Дивный новый мир", id = "STRANGE_NEW_WORLD",
show = "name",
desc = [[Отправляйтесь в Дальний Восток и примите участие в войне.]],
}
newAchievement{
name = "Сквозь огонь", id = "CHARRED_SCAR_SUCCESS",
show = "name",
desc = [[Промчаться сквозь огонь в Обугленный Шрам и помешать Волшебникам.]],
}
newAchievement{
name = "Оркрист", id = "ORC_PRIDE",
show = "name",
desc = [[Убить лидера орков.]],
}
newAchievement{
name = "Зло ликвидировано", id = "WIN_FULL",
show = "name", huge=true,
desc = [[Победить в игре предотвратив открытия портала пустоты.]],
}
newAchievement{
name = "Высшая леди судьбы", id = "WIN_AERYN",
show = "name", huge=true,
desc = [[Победить в игре закрыв портал пустоты принеся в жертву Аерин.]],
}
newAchievement{
name = "Солнце всё ещё сияет", id = "WIN_AERYN_SURVIVE",
show = "name", huge=true,
desc = [[Аерин выжала в последнем бою.]],
}
newAchievement{
name = "Самоотверженный", id = "WIN_SACRIFICE",
show = "name", huge=true,
desc = [[Пройти игру, закрыв портал пустоты, используя себя в качестве жертвы.]],
}
newAchievement{
name = "Триумф Пути", id = "YEEK_SACRIFICE",
show = "name", huge=true,
desc = [[Пройти игру, принеся себя в жертву, принудительно распространяя Путь на всех разумных существ в Эяле.]],
}
newAchievement{
name = "Нет Пути!", id = "YEEK_SELFLESS",
show = "name", huge=true,
desc = [[Пройти игру, закрыв портал пустоты и позволить быть убитым Айрин, помешав Пути поработить всех разумных существ в Эяле.]],
}
newAchievement{
name = "Мастер тактики", id = "SORCERER_NO_PORTAL",
show = "name", huge=true,
desc = [[Сразить двух чародеев не закрывая порталы.]],
}
newAchievement{
name = "Разрушитель портала", id = "SORCERER_ONE_PORTAL",
show = "name", huge=true,
desc = [[Сразить двух чародеев закрыв один портал.]],
}
newAchievement{
name = "Разоритель портала", id = "SORCERER_TWO_PORTAL",
show = "name", huge=true,
desc = [[Сразить двух волшебников закрыв два портала.]],
}
newAchievement{
name = "Губитель портала", id = "SORCERER_THREE_PORTAL",
show = "name", huge=true,
desc = [[Сразить двух волшебников закрыв три портала.]],
}
newAchievement{
name = "Мастер портала", id = "SORCERER_FOUR_PORTAL",
show = "name", huge=true,
desc = [[Сразить двух чародеев закрыв четыре портала.]],
}
newAchievement{
name = "Не отводи взгляд и только вперёд", id = "WIN_NEVER_WEST",
show = "full", huge=true,
desc = [[Пройти игру, не выходя из Мадж'Эяла.]],
}
newAchievement{
name = "Bikining along!", id = "WIN_BIKINI",
show = "full", huge=true,
desc = [[Победить в игре не снимая бикини.]],
}
newAchievement{
name = "Это произошло в манкини!", id = "WIN_MANKINI",
show = "full", huge=true,
desc = [[Пройти игру не снимая с себя манкини]],
}
newAchievement{
name = "Спасения потерявшегося", id = "LOST_MERCHANT_RESCUE",
show = "name",
desc = [[Спасти торговца от лорда ассасинов]],
}
newAchievement{
name = "Ядовитый", id = "LOST_MERCHANT_EVIL",
show = "name",
desc = [[Встать на сторону лорда ассасинов.]],
}
newAchievement{
name = "Истребитель создания", id = "SLASUL_DEAD",
show = "name",
desc = [[Убить Сласула.]],
}
newAchievement{
name = "Коварный ублюдок", id = "SLASUL_DEAD_PRODIGY_LEARNT",
show = "name",
desc = [[Убить Сласула, даже если вы встали на его сторону, чтобы узнать наследие Налоренского вундеркинда.]],
}
newAchievement{
name = "Flooder", id = "UKLLMSWWIK_DEAD",
show = "name",
desc = [[Победить Уллмсввика будучи выполняя его поручения.]],
}
newAchievement{
name = "Самоцвет Луны", id = "MASTER_JEWELER",
show = "name", huge=true,
desc = [[Завершить задания Мастера Ювелира Лиммира]],
}
newAchievement{
name = "Забрать проклятие", id = "CURSE_ERASER",
show = "name",
desc = [[Убить Бена Крусдара, Проклятого]],
}
newAchievement{
name = "Быстрое рассеивание проклятье", id = "CURSE_ALL",
show = "name", huge=true,
desc = [[Убить Бена Крутхдара Проклятого защитив всех лесорубов.]],
}
newAchievement{
name = "Глаз шторма", id = "EYE_OF_THE_STORM",
show = "name",
desc = [[Освободить Дерт от осады Безумной бури Уркиса.]],
}
newAchievement{
name = "Антимагия!", id = "ANTIMAGIC",
show = "name",
desc = [[Завершить антимагические тренировки в лагере Зигурат.]],
}
newAchievement{
name = "Анти-Антимагия!", id = "ANTI_ANTIMAGIC",
show = "name",
desc = [[Уничтожить лагерь Зигурата с вашими союзниками Рхалореноми.]],
}
newAchievement{
name = "Туда и обратно", id = "WEST_PORTAL",
show = "name", huge=true,
desc = [[Открыть портал в Мадж'Аэл с Далекого Востока.]],
}
newAchievement{
name = "Назад и снова туда", id = "EAST_PORTAL",
show = "name", huge=true,
desc = [[Откройте портал в Дальний Восток из Мадж'Эяла.]],
}
newAchievement{
name = "Арахнофобия", id = "SPYDRIC_INFESTATION",
show = "name",
desc = [[Уничтожить паучью угрозу.]],
}
newAchievement{
name = "Война Клонов", id = "SHADOW_CLONE",
show = "name",
desc = [[Уничтожить собственную тень.]],
}
newAchievement{
name = "Отряд", id = "NORGAN_SAVED",
show = "name",
desc = [[Сбежать из Рекнора вместе с Норганом.]],
}
newAchievement{
name = "Genocide", id = "GREATMOTHER_DEAD",
show = "name", huge=true,
desc = [[Killed the Orc Greatmother in the breeding pits, thus dealing a terrible blow to the orc race.]],
}
newAchievement{
name = "Спаситель попавших в беду девиц", id = "MELINDA_SAVED",
show = "name",
desc = [[Спасите Мелинду от её ужасной судьбы в склепе Крул'Феижана.]],
}
newAchievement{
name = "Невозможная Смерть", id = "PARADOX_NOW",
show = "name",
desc = [[Быть убитым собой из будущего.]],
on_gain = function(_, src, personal)
if world:hasAchievement("PARADOX_FUTURE") then world:gainAchievement("PARADOX_FULL", src) end
end,
}
newAchievement{
name = "Самоликвидатор", id = "PARADOX_FUTURE",
show = "name",
desc = [[Убить себя из будущего.]],
on_gain = function(_, src, personal)
if world:hasAchievement("PARADOX_NOW") then world:gainAchievement("PARADOX_FULL", src) end
end,
}
newAchievement{
name = "Парадоксология", id = "PARADOX_FULL",
show = "name",
desc = [[Убить себя из будущего и быть убитым собой из будущего.]],
}
newAchievement{
name = "Исследователь", id = "EXPLORER",
show = "name",
desc = [[Использовать Шер'Тульский портал 7 раз одним персонажем.]],
}
newAchievement{
name = "На орбите", id = "ABASHED_EXPANSE",
show = "name",
desc = [[Стабилизировать искажение пространства на орбите планеты.]],
}
newAchievement{
name = "Шаткая-ваткая временная-швременная фиговина", id = "UNHALLOWED_MORASS",
show = "name",
desc = [[Убить Королеву ткачиху и временного осквернителя.]],
}
newAchievement{
name = "Это Матрица!", id = "ABASHED_EXPANSE_NO_BLAST",
show = "full", huge=true,
desc = [[Пройти искажение пространства без получения урона. Уклоняться весело!]],
can_gain = function(self, who, zone)
if not who:isQuestStatus("start-archmage", engine.Quest.DONE) then return false end
if zone.void_blast_hits and zone.void_blast_hits == 0 then return true end
end,
}
newAchievement{
name = "Верное решение", id = "RING_BLOOD_KILL",
show = "name",
desc = [[Поступите правильно на Кровавом ринге и избавьтесь от владельца ринга.]],
}
newAchievement{
name = "Смотреть мои сны", id = "ALL_DREAMS",
show = "full",
desc = [[Поэкспериментировать и закончить все сны в Кальдере Догрота.]],
mode = "world",
can_gain = function(self, who, kind)
self[kind] = true
if self.mice and self.lost then return true end
end,
track = function(self)
return tstring{tostring(
(self.mice and 1 or 0) +
(self.lost and 1 or 0)
)," / 2"}
end,
on_gain = function(_, src, personal)
game:setAllowedBuild("psionic")
game:setAllowedBuild("psionic_solipsist", true)
end,
}
newAchievement{
name = "Иломант", id = "OOZEMANCER",
show = "name",
desc = [[Уничтожить разлагающегося иломанта.]],
}
newAchievement{
name = "Счастливица", id = "MELINDA_LUCKY",
show = "name",
desc = [[Снова спасти Мелинду и пригласить её в Крепость, чтобы исцелить.]],
}
file/game/modules/tome.team/data/achievements/talents.lua.txt
newAchievement{
name = "Пиромант",
desc = [[Разблокировать класс Архимага и нанести огнём один миллион урона.]],
show = "full",
mode = "world",
can_gain = function(self, who, dam)
self.nb = (self.nb or 0) + dam
return self.nb > 1000000 and profile.mod.allow_build.mage
end,
track = function(self) return tstring{tostring(math.floor(self.nb or 0))," / 1000000"} end,
on_gain = function(_, src, personal)
game:setAllowedBuild("mage_pyromancer", true)
local p = game.party:findMember{main=true}
if p.descriptor.subclass == "Archmage" then
if p:knowTalentType("spell/wildfire") == nil then
p:learnTalentType("spell/wildfire", false)
p:setTalentTypeMastery("spell/wildfire", 1.3)
end
end
end,
}
newAchievement{
name = "Криомант",
desc = [[Разблокировать класс Архимага и нанести холодом один миллион урона.]],
show = "full",
mode = "world",
can_gain = function(self, who, dam)
self.nb = (self.nb or 0) + dam
return self.nb > 1000000 and profile.mod.allow_build.mage
end,
track = function(self) return tstring{tostring(math.floor(self.nb or 0))," / 1000000"} end,
on_gain = function(_, src, personal)
game:setAllowedBuild("mage_cryomancer", true)
local p = game.party:findMember{main=true}
if p.descriptor.subclass == "Archmage" then
if p:knowTalentType("spell/ice") == nil then
p:learnTalentType("spell/ice", false)
p:setTalentTypeMastery("spell/ice", 1.3)
end
end
end,
}
newAchievement{
name = "Лич",
desc = [[Достигнуть своей дикой мечты о власти и вечной жизни: вы превратились в лича!]],
show = "name",
}
newAchievement{
name = "Лучший альбом!", id = "THE_CURE",
desc = [[Снять 89 положительных эффектов с врагов при помощи дезинтеграции.]],
show = "full", mode = "player",
can_gain = function(self, who)
self.nb = (self.nb or 0) + 1
if self.nb >= 89 then return true end
end,
track = function(self) return tstring{tostring(self.nb or 0)," / 89"} end,
}
file/game/modules/tome.team/data/birth/classes/adventurer.lua.txt
desc = {
"Авантюристы могут обучиться во всём понемногу, приступить к тренировкам во всём, что им удастся найти.",
"#{bold}##GOLD#Это бонусный класс за проход игры. Не сбалансирован.#WHITE##{normal}#",
}
desc = {
"Авантюристы могут обучиться во всём понемногу, приступить к тренировкам во всём, что им удастся найти.",
"#{bold}##GOLD#Это бонусный класс за проход игры. Не сбалансирован.#WHITE##{normal}#",
"Самые важные характеристики зависят от того, чем они хотят заняться.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +2 Сила, +2 Ловкость, +2 Телосложение",
"#LIGHT_BLUE# * +2 Магия, +2 Сила воли, +2 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
file/game/modules/tome.team/data/birth/classes/afflicted.lua.txt
locked_desc = "Кто-то находится в тени, одинокие, нелюбимые, никому ненужные. Какими способностями они обладают, возможно, могущественными, но их имена навеки прокляты."
desc = {
"Страдающие классы были искажены их связью со злыми силами.",
"Они могут использовать эти силы в своих интересах, но какова цена...",
}
locked_desc = "Скорбь может исходить из души, а ненависть может заполнить всё существо. Преодолейте чьё-то ненавистное проклятие и узнайте его ужасное предназначение."
desc = {
"Благодаря невежеству, жадности или глупости Проклятый исполнил какой-то тёмный замысел и теперь обречён платить за свои грехи.",
"Теперь их единственный наставник - ненависть, которую они распространяют на всё живое.",
"Черпая силу от смерти всех, с кем они сталкиваются, Проклятые становятся ужасающими бойцами.",
"Хуже того, любой, кто приближается к Проклятому, может быть сокрушён их ужасной аурой.",
"Самые важные характеристики: Сила и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +5 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +4 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
locked_desc = "В затенённых местах, в незнакомых землях ты должен пересилить себя и увидеть свою гибель."
desc = {
"Обречённые - падшие маги, которые когда-то владели мощной магией созданной посредством амбиций и тёмных сделок.",
"Лишённые своей магии тёмными силами, которые когда-то служили им, они научились использовать ненависть, которая горит в их умах.",
"Только время покажет, смогут ли они выбрать новый путь или обречены навеки.",
"Обречённый бьёт из-за завесы тьмы или множества теней.",
"Они питаются своими врагами, когда они высвобождают свой разум на всех, кто им противостоит.",
"Самые важные характеристики: Сила воли и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +4 Сила воли, +5 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
file/game/modules/tome.team/data/birth/classes/celestial.lua.txt
locked_desc = "Магия небес известна лишь немногим. Это знание осталось в прошлом востока и забыто."
desc = {
"Небесный - категория тайных пользователей, ориентированных на неземные тела.",
"Большинство черпают свои силы от солнца и лун.",
}
locked_desc = "Солнце восходит на востоке, в полной красе, но сначала вы должны отыскать его в самых тёмных местах."
desc = {
"Паладины Солнца выходцы из города Утренние Врата, последнего бастиона свободных людей в Дальнем Востоке.",
"Их образ жизни хорошо отражён их девизом: «Солнце - наш даритель, наша чистота, наша сущность. Мы несём свет в тёмные места и против нашей силы никто не устоит».",
"Они могут направить энергию солнца, поражая всех, кто стремится уничтожить их фракцию Солнечная Стена.",
"Они искусны, как в оружии с щитом так и в магии и обычно сжигают своих противников издалека, прежде чем бить их в ближнем бою.",
"Самые важные характеристики: Сила и Магия",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +5 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +4 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
locked_desc = "Баланс небесных сил - непростая задача. Могучие - это те, что стоят в сумерках, манипулируя знаниями о свете и тьме."
desc = {
"Аноритилы выходцы из города Утренние Врата, последнего бастиона свободных людей в Дальнем Востоке.",
"Их образ жизни хорошо отражён их девизом «Мы стоим между солнцем и луной, где встречаются свет и тьма. В серых сумерках мы ищем свою судьбу.»",
"Они могут направлять силу солнца и луны, сжигая и разрывая на части всех, кто стремится уничтожить их фракцию - Солнечную Стену.",
"Мастера магии солнца и луны обычно сжигают своих врагов солнечными лучами, прежде чем призывать ярость звезд.",
"Самые важные характеристики: Магия и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +6 Магия, +0 Сила воли, +3 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
file/game/modules/tome.team/data/birth/classes/chronomancer.lua.txt
locked_desc = "Некоторые не ходят прямой дорогой, как другие. Ищите скрытые пути вне нормального образа жизни."
desc = {
"Используя норы в пространственно временном континууме, Хрономанты научились вытягивать нити из других временных циклов в свои собственные.",
"Вытягивание этих нитей создаёт напряжение, и чем сильнее они тянут, тем большее напряжение возникает.",
"Они постоянно управляют этим напряжением, которое называют Парадокс, чтобы избежать или контролировать аномалии, которые они неизбежно высвобождают в окружающем их мире.",
}
locked_desc = "Рука может рукоплескать в одиночку, если она начнёт аплодировать самой себе. Ищите возможности в парадоксе."
desc = {
"Маг Парадокса изучает пространственно временную материю, учась не только покорять её, но и придавать форму и перекраивать.",
"Большинство Магов Парадокса не обладают базовыми навыками, которые другие считают само собой разумеющимися (например, общие боевые навыки), но они компенсируют это посредством контроля вселенских сил.",
"Маги Парадокса начинают со знанием всех, кроме самых сложных школ хрономании.",
"Самые важные характеристики: Магия и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +2 Телосложение",
"#LIGHT_BLUE# * +5 Магия, +2 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
locked_desc = "Мы сохраняем прошлое, чтобы защитить будущее. Руки времени охраняются рычагами войны."
desc = {
"Их жизненные линии переплетены. Временные Воители научились работать с другими своими сущностями сквозь множество временных циклов.",
"Благодаря изучению хрономантии, они сочетают стрельбу из лука и сражения с двойным оружием, плавно переходя от одного к другому.",
"Самые важные характеристики: Магия, Ловкость и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +3 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +4 Магия, +2 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
file/game/modules/tome.team/data/birth/classes/corrupted.lua.txt
locked_desc = "Тёмные мысли, чёрная кровь, мерзкие деяния... Те, кто проливает кровь своих братьев, найдут свою силу."
desc = {
"Осквернители - помеченные злом. Они, как бельмо у мира. Способствуя продвижению дел зла, они служат своим хозяевам или сами становятся хозяевами.",
}
locked_desc = "Возьми себе души врагов твоих, и силы тьмы войдут в плоть твою."
desc = {
"Похитители - ужасные враги, атакуют своих врагов с оружием в каждой руке.",
"Они могут использовать скверну зла, заражая своих врагов ужасными инфекционными заболеваниями, в то же время разрушая их черепа разрушительными боевыми приёмами.",
"Самые важные характеристики: Сила и Магия",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +4 Сила, +1 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +4 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
locked_desc = "Скверна и развращённость обладают наибольшей силой. Примите соблазны мира и станьте единым с порочностью."
desc = {
"Искажатель - страшный враг, владеющий тёмной магией, который может иссушить душу для своей цели.",
"Они могут использовать скверну зла, уничтожать души, красть жизненную силу пополняя себя.",
"Самые могущественные Искажатели могут даже применять некоторые демонические аспекты.",
"Самые важные характеристики: Магия и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +2 Телосложение",
"#LIGHT_BLUE# * +4 Магия, +3 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
file/game/modules/tome.team/data/birth/classes/mage.lua.txt
desc = {
"Маги являются обладателями тайных сил, способных бросать мощные заклинания разрушения или исцелить свои раны одной только мыслью.",
}
desc = {
"Алхимик пользуется веществами, обладающими магией.",
"Они не используют запрещённые тайные искусства, которые практикуют маги прошлого, таких извратителей природы чураются или активно преследуют после «Небесного огня».",
"Алхимик может преобразовывать самоцветы, чтобы вызвать стихийные эффекты, превратив их в шары огня, потоки кислоты и другие эффекты. Используя самоцветы, он также может усилить броню магическими эффектами, а при помощи чародейского посоха создавать стрелы энергии.",
"Хотя, как правило, они физически слабы, большинство алхимиков сопровождают магические големы, которых они строят и используют в качестве телохранителей. Эти големы порабощены воле своих хозяев и могут преумножить свою силу, когда их хозяин продвигается в мастерстве.",
"Самые важные характеристики: Магия и Телосложение",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +3 Телосложение",
"#LIGHT_BLUE# * +5 Магия, +1 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -1",
}
locked_desc = "Ненавидимые, измученные, преследуемые, скрывающиеся… Наши пути запретны, но наше дело правое. В нашей скрытой долине мы находим утешение от гнева мира, свободно изучая наше искусство. Только благодаря милосердию и дружбе вы можете заслужить доверие."
desc = {
"Архимаг посвящает всю свою жизнь изучению магии.",
"Большинство Архимагов не обладают базовыми навыками, которые другие считают само собой разумеющимися (например, общие боевые навыки), но они компенсируют это своей неограниченной магической силой.",
"Архимаги начинают со знанием многих школ магии. Однако они, как правило, отказываются иметь что-либо общее с некромантией.",
"Большинство Архимагов прошли подготовку в тайном городе Анголвен и обладают уникальным заклинанием, для телепортации к нему напрямую.",
"Самые важные характеристики: Магия и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +5 Магия, +3 Сила воли, +1 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -4",
}
locked_desc = "Путь к некромантии - воистину жуткая дорога. Прогуляйтесь с мёртвыми и выпейте их чёрное знание."
desc = {
"Хотя после «Небесного огня» к большинству магии относятся с подозрением, позор, сопутствующий чёрному искусству некромантии, существует с незапамятных времён.",
"Эти тёмные заклинатели уничтожают жизнь, играют со смертью и поднимают армии мёртвых монстров, чтобы удовлетворить свою жажду власти и преследуя свою конечную цель: вечная жизнь.",
"Самые важные характеристики: Магия и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +5 Магия, +3 Сила воли, +1 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -3",
}
file/game/modules/tome.team/data/birth/classes/none.lua.txt
desc = {
"Данное сочетание расы и класса недопустимо.",
}
desc = {
"Данное сочетание расы и класса недопустимо.",
}
file/game/modules/tome.team/data/birth/classes/psionic.lua.txt
locked_desc = "Слабость плоти может быть преодолена ментальной мощью. Ищите и сражайтесь за то, как подобрать ключ к своему разуму."
desc = {
"Псионики находят свою силу внутри себя. Их натренированный мозг может задействовать энергию из разных источников и управлять ею для получения физических эффектов.",
}
locked_desc = "Мысль может вдохновить, а может убить. После столетий угнетения, длительного срока заключения, мысль освободит нас, а мщение ударит из наших самых мрачных снов."
desc = {
"Убийца разума специализируется на прямом и жестоком применении умственных сил их ближайшего окружения.",
"Когда Убийцы разума сражаются, их чаще всего можно найти в гуще битвы по огромным всполохам энергии, вздымающимся вокруг них, и по телекинетическому оружию, которое рубит ближайших врагов со скоростью мысли.",
"Самые важные характеристики: Сила воли и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +1 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +4 Сила воли, +4 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -2",
}
locked_desc = "Некоторые считают, что мир - это коллективный сон тех, кто живёт в нём. Найдите и разбудите спящего и вам откроются возможности ваших снов."
desc = {
"Солипсист считает, что реальность податлива и есть не что иное, как коллективное видение тех, кто её переживает.",
"Они владеют знаниями созидания и уничтожения, вторгаются в сознание других и манипулируют сновидениями окружающих.",
"Это знание достаётся дорогой ценой, и Солипсист должен защищать свои мысли, чтобы он не поверил, что мир существует только в его разуме.",
"Самые важные характеристики: Сила воли и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +5 Сила воли, +4 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -4 (*special*)",
}
file/game/modules/tome.team/data/birth/classes/rogue.lua.txt
desc = {
"Бродяги - мастера уловок, они могут нанести удар из тени и заманить монстров в смертельные ловушки.",
}
desc = {
"Бродяги - мастера уловок. Бродяга может оказаться у вас за спиной и нанести вам огромный урон.",
"Бродяги обычно предпочитают кинжалы в обоих руках. Они также могут стать экспертами заманивания, обнаружении и снятии ловушек, а также их установке.",
"Самые важные характеристики: Ловкость и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +1 Сила, +3 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +5 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
desc = {
"Клинки Тьмы - это Бродяги, которых коснулся дар магии, способные убивать своими кинжалами под завесой невидимости, в то время как заклинания повышают их эффективность и живучесть.",
"Их магия врождённая и не изучается, они не восстанавливают ману естественным образом и должны использовать внешние средства перезарядки.",
"Для улучшения своего искусства они используют школы иллюзии, времени, прорицания и телепортации.",
"Самые важные характеристики: Ловкость, Хитрость и Магия",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +3 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +3 Магия, +0 Сила воли, +3 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
locked_desc = "Я не спрячусь, и я не стану красться, присоединись к моему танцу клинков, и мы увидим, кто слабее. Ломающиеся кости и треск черепов - это звуки битвы, которые делают жизнь полной!"
desc = {
"Дикая природа Мадж'Эяла не безопасное место. Дикие звери и драконы могут оказаться большой угрозой, но настоящая опасность проходит на двух ногах. Воры и разбойники, убийцы и беспринципные авантюристы, даже безумные волшебники и фанатики маго-ненавистники все несут опасность для тех, кто выходит за пределы городских стен.",
"Среди этого хаоса бродяг затесался один класс, который научился брать силой, а не ухищрениями. Благодаря изящной технике, ловким навыкам и мускулам, клинки Мародёра находят свои цели и устраняют их быстрыми приёмами. Он использует два оружия, опираясь на передовую боевую подготовку, чтобы стать наиболее эффективным в бою, и он не боится использовать грязную тактику, когда шансы не на его стороне.",
"Самые важные характеристики: Сила, Ловкость и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +4 Сила, +4 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +1 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
locked_desc = "Быстроногий и сильный бросок, подавляющий каждого врага, издалека мы противодействуем, удар и глухое падение, в переполохе схватки проливается кровь."
desc = {
"Имея возможность по максимуму использовать свою пращу, а с помощью ловких перемещений избегать и путать врагов, которые пытаются приблизиться, Застрельщик действительно превосходит других в дальнобойном оружии.",
"Застрельщик умеет пользоваться щитом также хорошо, как и пращой и его практически невозможно победить в противостоянии.",
"Самые важные характеристики: Ловкость и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +4 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +1 Сила воли, +4 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
file/game/modules/tome.team/data/birth/classes/tutorial.lua.txt
desc = {
"Опытные искатели приключений могут обучать начинающих некоторым навыкам.",
}
desc = {
"Опытные искатели приключений могут обучать начинающих некоторым навыкам.",
}
file/game/modules/tome.team/data/birth/classes/warrior.lua.txt
desc = {
"Воины тренируются во всех направлениях физической атаки. Они могут быть мощными разрушителями, владеющими большими двуручными мечами или массивными, защищёнными железом, защитниками с блестящими щитами.",
}
desc = {
"Берсерк - обладает огромным двуручным оружием разрушения и приносит боль и смерть своим врагам, рассекая их пополам.",
"Берсерк обычно забывает о самообороне концентрируясь на том, что он делает лучше всего - убивать.",
"Самые важные характеристики: Сила и Телосложение",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +5 Сила, +1 Ловкость, +3 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +3",
}
desc = {
"Бастион - специализируется в оружие с щитом и редко покидает укрытие из своих многочисленных приёмов защиты.",
"Хороший Бастион способен противостоять страшным атакам со всех сторон, защищённый щитом, а когда приходит время атакует врагов с невероятной силой.",
"Самые важные характеристики: Сила и Ловкость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +5 Сила, +2 Ловкость, +2 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +6",
}
desc = {
"Лучник - ловкий боец дальнего боя, способен дождём из стрел засыпать и прижать к земле своих врагов.",
"Опытный лучник может стрелять специальными снарядами, которые пронзают, калечат или пришпиливают противников.",
"Лучник может обращаться с любым луком или пращой.",
"Самые важные характеристики: Ловкость и Сила (при использовании луков) или Хитрость (при использовании пращи)",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +2 Сила, +5 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +2 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
desc = {
"Тайный клинок - воин, которого коснулся дар магии.",
"Их магия врождённая и не изучается, они не восстанавливают ману естественным образом и должны использовать внешние средства перезарядки.",
"Он может произносить заклинания из ограниченного набора, но обладает уникальной способностью 'направлять' свои атакующие заклинания посредством своих атак в ближнем бою.",
"Он умело владеет двуручным оружием, который носит для абсолютного разрушения.",
"Самые важные характеристики: Сила, Хитрость и Магия",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +3 Магия, +0 Сила воли, +3 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
locked_desc = "Пусть вы можете сражаться в одиночку против многих, вынужденных сражаться, пока вы не умрёте или пока не смените гнев на милость. По лужам крови вы поймёте, что пара крепких кулаков могут противостоять всему миру."
desc = {
"Разрушения Небесного огня проредили армии и оставили многих без защиты. Не каждый мог позволить себе такую роскошь, как оружие.",
"Без стали или железа бедные общины всех рас обратились к силе своего тела для защиты от тьмы.",
"Будь то ямный боец, боксер или просто любитель подраться, навыки Борца по-прежнему полезны и по сей день.",
"Многие таланты Борца позволяют получить комбо очки и использовать их на добивание, имеющее дополнительный эффект.",
"Боевые безоружные стили Борца опираются на маневренность и способность драться с обеих рук. Они не могут использовать массивные доспехи, оружие или щит.",
"Самые важные характеристики: Сила, Ловкость и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, +3 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +3 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
file/game/modules/tome.team/data/birth/classes/wilder.lua.txt
locked_desc = "Природные способности могут выходить за рамки простого навыка. Испытайте истинные силы природы, чтобы узнать о своих чудесных дарах."
desc = {
"Дикие - так или иначе, в единстве с природой. Они различаются и их столько же, как и видов стихий.",
"Они могут превращаться в существ, призывать их, испытать зов друида и т.д.",
}
locked_desc = "Не всё может исходить изнутри. Услышьте призывы природы, услышьте её зовущую силу. Посмотрите, что и извне мы можем обнаружить наши истинные сильные стороны."
desc = {
"Призыватель никогда не сражается в одиночку, всегда в состоянии призвать одного из своих многочисленных любимцев готовых сражаться на вашей стороне.",
"Вы можете призвать существ от боевой собаки до огненного дракона.",
"Самые важные характеристики: Сила воли и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +1 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +5 Сила воли, +3 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +0",
}
return "Придел призывов: "..math.floor(actor:getCun()/10)
end
locked_desc = "С глянцевой кожей, величавый, могущественный... По пути драконов мы идём, их дыхание - наше дыхание. Почувствуй биение их сердца и вкуси их пищу."
desc = {
"Драконоподражатель - боец, который научился имитировать некоторые свойства драконов.",
"Они имеют доступ к талантам, обычно принадлежащим разным видам дрейков.",
"Самые важные характеристики: Сила и Сила воли",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +5 Сила, +0 Ловкость, +1 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +3 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
locked_desc = "Магия должна уйти, магия должна исчезнуть, ничто не может противостоять слизи."
desc = {
"Слиземанты держатся обособленно от цивилизованного мира, чтобы быть в большей гармонии с природой. Чародейская сила клеймит их, а врождённая сонастройка с дикой природой позволяет им сражаться с лицами злоупотребляющих магией на равных.",
"Они могут порождать слизь, для защиты и атаки на расстоянии, а также умело использовать звёзды разума и пси-клинки.",
"Самые важные характеристики: Сила воли и Хитрость",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +5 Сила воли, +4 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# -3",
}
return "Придел призывов: "..math.floor(actor:getCun()/10)
end
locked_desc = "Шрамы «Небесного огня», возможно, начали исцеляться,\nно мало что может измениться, как чувства сторонников.\nПрирода и чародейство могут преодолеть их раскол,\nи когда дело дойдёт до этого, золото не примет чью-либо сторону..."
desc = {
"Каменные Воители - гномы, обученные как в сверхъестественном искусстве, так и в поклонении природе.",
"В то время как другие расы придерживаются в своём убеждении, что чародейство и природные силы должны противостоять, гномы нашли способ гармонично объединить их.",
"Каменные воители - бронированные бойцы, с обоеруким владением щитом, как каналом многих своих сил.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +2 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +4 Магия, +3 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# +2",
}
file/game/modules/tome.team/data/birth/descriptors.lua.txt
desc =
{
"#GOLD##{bold}#Обучение",
"#WHITE#Выберите упрощённого персонажа и начните игру с лёгкого квеста.#{normal}#",
"Весь наносимый игроку урон уменьшается на 20%",
"Все исцеления увеличиваются на 10%",
"Основные игровые достижения отключены.",
}
display_name = "Легкий"
desc =
{
"#GOLD##{bold}#Лёгкая сложность#WHITE##{normal}#",
"Облегчает прохождение игры.",
"Воспользуйтесь ей, если вы не справляетесь на более сложных уровнях",
"Весь наносимый игроку урон уменьшается на 30%",
"Все исцеления увеличиваются на 30%",
"Длительность всех пагубных эффектов понижается на 50%",
"Достижения не предоставляются.",
}
desc =
{
"#GOLD##{bold}#Средняя сложность#WHITE##{normal}#",
"Предусматривает прохождение среднего уровня.",
"В течение 2 ходов после убийства нельзя воспользоваться лестницами.",
}
desc =
{
"#GOLD##{bold}#Кошмарная сложность#WHITE##{normal}#",
"Неблагоприятные настройки игры",
"Все уровни зоны увеличены на 50%",
"Все уровни талантов существ увеличены на 30%",
"Необычные существа встречаются чаще",
"В течение 3 ходов после убийства нельзя воспользоваться лестницами.",
"Игрок также может заработать Кошмарную версию достижений в режимах Рогалика или Приключение.",
}
locked_desc = "Легкий - для слабаков! Средний - для нерешительных! Кошмарный - слишком простой! Выбирай настоящие испытания!"
desc =
{
"#GOLD##{bold}#Безумие#WHITE##{normal}#",
"Похожие на кошмар правила, с появлением случайных монстров-боссов!",
"Уровни всех врагов увеличены на 50% + 1",
"Уровни умений всех врагов увеличены на 50%",
"Увеличенное количество редких монстров, небольшой шанс встретить уникального или монстра-босса",
"Обычные боссы получают дополнительные умения.",
"Здоровье всех врагов увеличено на 20%",
"Переход между локациями невозможен в течении 5 ходов после убийства врага.",
"Возможность получать достижения данной сложности, при игре в режиме искателя приключений или одной жизни.",
}
locked_desc = "Безумие для слабых! Попробуйте по настоящему ВЫСОКУЮ сложность!"
locked_desc = "Режим исследования: Бесконечные жизни"
file/game/modules/tome.team/data/birth/races/construct.lua.txt
desc = {
"Конструкты необычные создания.",
"Наиболее распространённые конструкты - големы, лишь они могут различаться по облику, форме и способностям.",
}
desc = {
"Рунные големы созданы из твёрдого камня и оживлены при помощи тайной магии.",
"Они не могут принадлежать к какому-либо классу, но обладают многими присущими им способностями.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, -2 Ловкость, +3 Телосложение",
"#LIGHT_BLUE# * +2 Магия, +2 Сила воли, -5 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 13",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 50%",
}
print("No bikini found!")
print("No mankini found!")
file/game/modules/tome.team/data/birth/races/dwarf.lua.txt
desc = {
"Гномы скрытный народ, родом из своего подземного дома Железного Трона.",
"Они крепкая раса и известны своими шедеврами, но они не очень любимы, потому что оставляли другие расы на произвол судьбы в прошлых конфликтах.",
"Всех гномов объединяет Империя и их любовь к деньгам.",
}
desc = {
"Гномы скрытный народ, родом из своего подземного дома Железного Трона.",
"Они крепкая раса и известны своими шедеврами, но они не очень любимы, потому что оставляли другие расы на произвол судьбы в прошлых конфликтах.",
"Они обладают #GOLD#Стойкостью Гномов#WHITE#, которая позволяет им увеличить свою броню, физическую и магическую защиту на несколько ходов.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +4 Сила, -2 Ловкость, +3 Телосложение",
"#LIGHT_BLUE# * -2 Магия, +3 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 12",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 25%",
}
print("No bikini found!")
print("No mankini found!")
file/game/modules/tome.team/data/birth/races/elf.lua.txt
desc = {
"Эльфийские расы обычно так и называют - «эльфы», но это неверно.",
"Эльфы подразделяются на три отдельные расы, пусть и в родственных отношениях, из которых только две живут в текущей эпохе.",
"Обычно эльфы живут около тысячи лет, за исключением шалоров, которые при помощи волшебства могут жить вечно.",
"Их взгляд на мир сильно различается в зависимости от расы.",
}
print("No bikini found!")
print("No mankini found!")
desc = {
"Шалоры - имеют тесные связи с магией мира и в прошлом являлись прародиной многих великих магов.",
"Тем не менее, они спокойны и пытаются скрыть свою магию от мира, потому что хорошо помнят «Небесный огонь» и последовавшую за ним «Охоту на магию».",
"Их талант - #GOLD#Милость Вечных#WHITE#, который позволяет им увеличивать скорость время от времени.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * -2 Сила, +1 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +2 Магия, +3 Сила воли, +1 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 9",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 25%",
}
desc = {
"Талоры по большей части скрываются в лесах и редко оставляют их.",
"Прошли века, а они остались неизменными.",
"Их близость к природе и уединение сделали их великими защитниками естественного порядка, и они часто выступают против их двоюродных братьев шалоров.",
"Их талант - #GOLD#Гнев леса#WHITE#, который позволяет им иногда увеличить наносимый урон и повышает сопротивление урону.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +2 Сила, +3 Ловкость, +1 Телосложение",
"#LIGHT_BLUE# * -2 Магия, +1 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 11",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 35%",
}
file/game/modules/tome.team/data/birth/races/giant.lua.txt
locked_desc = "Могущественные существа, которые возвышаются над всеми, но чем они выше, тем больнее падать..."
desc = {
[[#{italic}#"Гигант"#{normal}# - это общий термин для гуманоидов, которые обычно превышают восемь футов в высоту. Их происхождение, культура и отношения с другими расами сильно отличаются, но они, как правило, живут как беженцы и изгои, избегая небольшие разумные расы, которые обычно видят в них угрозу.]],
}
locked_desc = [[Кованые в ненависти, веков давно минувших,
Сделанные для войны, которую они пережили.
Их забытая родина лежит глубоко под землёй,
Её туннели разрушены, чтобы их не нашли.
Последние грабители потерпели неудачу, но их информация нетленна;
Для начала, посмотрите, где полурослики когда-то возились с порталами...]]
desc = {
"Огры - это изменённая форма человека, созданная в эпоху перемен, как рабочие и воины для Конклава.",
"Руны даровали им магическую и физическую силу далеко за рамками обычных норм, но их зависимость от рунической магии сделала их излюбленной целью во время «Охоты на магию», заставляя их искать убежище у шалоров.",
"Их предпочтение к простым и прямым решениям дало им незаслуженную репутацию тупых животных, несмотря на их необыкновенный талант к рунам и их скромный, послушный характер.",
"Их талант - #GOLD#Ярость огра#WHITE#, который повышает шанс критического удара и силу удара, а также сопротивление к дезориентации и оглушению, когда их атаки не проходят или блокируются.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, -1 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +2 Магия, -2 Сила воли, +2 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 13",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 30%",
}
print("No bikini found!")
print("No mankini found!")
file/game/modules/tome.team/data/birth/races/halfling.lua.txt
desc = {
"Полурослики - раса очень низкого роста, редко превышающая четыре фута в высоту.",
"Они похожи на людей в том, что могут заниматься всем, что взбредёт им в голову, но всё же они преуспевают в упорядочении и изучении.",
"Армии полуросликов поставили на колени многие королевства, и они сохраняли равновесие сил с царствами людей во время эпохи перемен.",
"Полурослики проворны, удачливы и выносливы, но испытывают недостаток в силе.",
}
print("No bikini found!")
print("No mankini found!")
desc = {
"Полурослики - раса очень низкого роста, редко превышающая четыре фута в высоту.",
"Они похожи на людей в том, что могут создать всё, что взбредёт им в голову, но всё же они преуспевают в упорядочении и изучении.",
"Армии полуросликов поставили на колени многие королевства, и они сохраняли равновесие сил с царствами людей во время эпохи перемен.",
"Их талант - #GOLD#Удача малого народа#WHITE#, который позволяет им увеличить шанс критического удара и сохраняется на несколько ходов.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * -3 Сила, +3 Ловкость, +1 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +3 Хитрость",
"#LIGHT_BLUE# * +5 Удача",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 12",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 20%",
}
file/game/modules/tome.team/data/birth/races/human.lua.txt
desc = {
"Люди - одна из главных рас Мадж'Эяла наряду с полуросликами. На протяжении многих тысяч лет они сражались друг с другом, пока события и выдающиеся люди не привели к объединению народов человека и полурослика под единое правление.",
"Люди этих союзных королевств живут в мире уже более века.",
"Люди разделены на две категории: Высшие и все остальные. У Высших магия в крови, которая предоставляет более высокие атрибуты и восприятие наряду с более длительной жизнью.",
"Остальные люди одарены более быстрым обучением и мастерством. Они могут заниматься и стать тем, кем пожелают.",
}
print("No bikini found!")
print("No mankini found!")
desc = {
"Высшие - особая ветвь человечества, которые были пронизаны скрытой магией в эпоху перемен.",
"Обычно они не создают потомство с другой категорией людей, сохраняя «чистоту» крови.",
"Их талант - #GOLD#Дар Высокородных#WHITE#, который позволяет им периодически регенерировать свои раны.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +1 Сила, +1 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +1 Магия, +1 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 11",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 15%",
}
desc = {
"Корнаки - люди из северных частей союзных королевств.",
"Люди - по своей природе легко приспособляемая раса, и поэтому они получают талант #GOLD#дополнительный балл#WHITE# (другие получают только один балл на 10, 20 и 36 уровнях) и наряду с классом и #GOLD#универсальным талантом#WHITE# при создании персонажа и каждые 10 уровней.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +0 Сила, +0 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 10",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 0%",
}
file/game/modules/tome.team/data/birth/races/tutorial.lua.txt
desc = {
"Специальное расовое обучения.",
}
desc = {
"Человек, родом из северного города Дерта. Обычный такой человек, ничем не примечательный во всех отношениях.",
}
desc = {
"Человек, родом из северного города Дерта. Обычный такой человек, ничем не примечательный во всех отношениях.",
}
file/game/modules/tome.team/data/birth/races/undead.lua.txt
desc = {
"Нежить - гуманоиды (люди, эльфы, гномы, ...), которые были возвращены к жизни благодаря тёмной магии.",
"Нежить может принимать различные формы, от гулей до вампиров и личей.",
}
print("No bikini found!")
print("No mankini found!")
locked_desc = "Еле волочишь ноги, скорее укуси, учись у господина, властвуй над ночью!"
desc = {
"Гули - бессловесные, выносливые, гниющие мёртвые существа - это необходимые качества хороших бойцов.",
"Они имеют #GOLD#специальный талант гуля#WHITE# и широкий спектр способностей нежити:",
"- сильное сопротивление яду",
"- иммунитет к кровотечению",
"- сопротивление оглушению",
"- иммунитет с страху",
"- специальный талант гуля: прыжок гуля, пожирать и рыгать",
"Гниющие тела гулей также заставляют их действовать чуть более медленнее, чем большинство существ.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, +1 Ловкость, +5 Телосложение",
"#LIGHT_BLUE# * +0 Магия, -2 Сила воли, -2 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 14",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 25%",
"#GOLD#Штраф к быстродействию:#LIGHT_BLUE# -20%",
}
locked_desc = "Марширующие кости, каждый шаг, как погремушка, но слуг больше нет, мы идём на битву!"
desc = {
"Скелеты - это оживлённые кости, сильная и ловкая нежить.",
"Они имеют #GOLD#специальный талант скелета#WHITE# и широкий спектр способностей нежити:",
"- иммунитет к яду",
"- иммунитет к кровотечению",
"- иммунитет с страху",
"- не нужно дышать",
"- специальный талант скелета: костяная броня, живучие кости, повторное восстановление",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * +3 Сила, +4 Ловкость, +0 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +0 Сила воли, +0 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 12",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# 40%",
}
file/game/modules/tome.team/data/birth/races/yeek.lua.txt
locked_desc = "Одна раса, один разум, один путь. Наше угнетение закончится, и мы унаследуем Эял. Не думайте, что мы слабы - наш путь верен, и только те, кто помогает нам, увидят нашу силу."
desc = {
"Йиик - загадочная раса маленьких гуманоидов, родом с тропического острова Рел.",
"Их тело покрыто белым мехом, а их непропорциональные головы придают им смешной вид.",
"Хотя сейчас в Мадж'Эяле о них почти не слышно, они пробыли много тысяч лет в качестве тайных рабов государства полуросликов Наргол.",
"Они получили свою свободу во время эпохи Погребальных костров и с тех пор следуют «Пути» - единству умов, обеспеченное их мощной псионикой.",
}
print("No bikini found!")
print("No mankini found!")
locked_desc = "Одна раса, один разум, один путь. Наше угнетение закончится, и мы унаследуем Эял. Не думайте, что мы слабы - наш путь верен, и только те, кто помогает нам, увидят нашу силу."
desc = {
"Йиик - загадочная раса маленьких гуманоидов, родом с тропического острова Рел.",
"Хотя сейчас в Мадж'Эяле о них почти не слышно, они пробыли много тысяч лет в качестве тайных рабов государства полуросликов Наргол.",
"Они получили свою свободу во время эпохи Погребальных костров и с тех пор следуют «Пути» - единству умов, обеспеченное их мощной псионикой.",
"Их талант #GOLD#Доминирование#WHITE#, который позволяет им временно внедриться в разум небольшого существа. Когда эффект заканчивается, существо умирает.",
"Хотя Йиики не земноводные, они всё же имеют влечение к воде, что позволяет им дольше задерживать дыхание.",
"#GOLD#Модификаторы характеристик:",
"#LIGHT_BLUE# * -3 Сила, -2 Ловкость, -5 Телосложение",
"#LIGHT_BLUE# * +0 Магия, +6 Сила воли, +4 Хитрость",
"#GOLD#Жизнь с каждым уровнем:#LIGHT_BLUE# 7",
"#GOLD#Штраф по опыту:#LIGHT_BLUE# -15%",
"#GOLD#Сопротивление дезориентации:#LIGHT_BLUE# 35%",
}
file/game/modules/tome.team/data/birth/sexes.lua.txt
desc =
{
"Вы женского пола",
"В игре нет различий между женским и мужским полом.",
}
desc =
{
"Вы мужского пола",
"В игре нет различий между женским и мужским полом.",
}
file/game/modules/tome.team/data/birth/worlds.lua.txt
display_name = "Мадж'Эял: Эпоха Господства"
desc =
{
"Народ Мадж'Эяла: люди, полурослики, эльфы и гномы.",
"Весь известный нам мир уже более ста лет находится в относительном спокойствии и люди снова процветают.",
"Вы - авантюрист, жаждущий сокровищ и славы.",
"Но что скрывается в тени мира?",
}
display_name = "Бесконечное Подземелье: Вечный Спуск"
locked_desc = "Всё ниже и ниже, без передышек, не видя конца, продолжается спуск. В старых руинах, за дверью закрытой, загадку реши и судьбу там найдёшь."
desc =
{
"Играя за вашу любимую расу и класс, попытайте счастья в бесконечном подземелье.",
"Ваши навыки - это единственное ограничение того как далеко вы сможете зайти!",
"В бесконечном подземелье у вас не будет ограничений. Вы сможете получить уровень выше 50 и продолжите получать очки характеристик и талантов.",
"Каждый уровень после 50 предел характеристик будет увеличен на 1.",
"Каждые 10 уровней после 50 максимальное количество очков каждого таланта будет увеличено на 1.",
}
return "infinite-dungeon-"..(game.level.level+rng.range(1,4)) end
display_name = "Арена: Испытание Мастера"
locked_desc = "Кровь пролилась на песок, выживет только сильнейший. Докажите что достойны войти."
desc =
{
"Играйте за одинокого воина, принявшего вызов Арены!",
"Используте любую расу и класс.",
"Посмотрите как далеко сможете пройти! Сможете ли вы стать новым Повелителем Арены?",
"Если да, сразитесь со своим собственным чемпионом!",
}
file/game/modules/tome.team/data/chats/alchemist-derth.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Человек, одетый в безупречный белый атлас, открывает дверь и смотрит на вас оценивающе.*#WHITE#
Ах, авантюрист. Я только подумал, что мне понадобится новенький.]],
answers = {
{"Звучит многообещающе. И зловеще.", jump="ominous"},
{"[Уйти]"},
}
}
newChat{ id="ominous",
text = [[Да, это одновременно и многообещающе, и зловеще. Я могу вознаградить вас за ваши усилия, но они приведут вас к смертельной опасности, в которой, как я полагаю, оказались предыдущие три товарища, которые пошли по моему поручению и уже не вернутся, чтобы подтвердить.]],
answers = {
{"Что вы предлагаете?", jump="proposal"},
}
}
newChat{ id="proposal",
text = [[Добрый искатель приключений, я алхимик и довольно хороший. В этом году, впервые, великое Братство Алхимиков рассмотрит моё ходатайство о принятии в их число. Я не буду испытывать ваше терпение подробностями процесса подачи заявки, но достаточно сказать, что это изнурительно. К счастью, теперь лишь три задачи стоят между мной и принятием.]],
answers = {
{"Как я могу помочь?", jump="help"},
}
}
newChat{ id="help",
text = [[Мне нужны ингредиенты для трёх мощных микстур. Очевидно, что, поскольку я обращаюсь к вам за помощью, ни один из них не может быть найден простым хождением к местному травнику. Нет, их нужно принудительно разлучить со своими хозяевами, которые, так же очевидно, затеют драку. Мне ещё предстоит встреча с нагом, которого стоит убедить отдать его язык! Ха! Я иногда такой шутник.]],
answers = {
{"Я специализируюсь на отделении жизненно важных органов от самих монстров. Что вы предлагаете взамен?", jump="competition"},
}
}
newChat{ id="competition",
text = [[Ну, я разделю с вами плоды моих трудов! Каждую из трёх микстур я произведу в количестве, достаточном для создания трёх доз: одна для меня, одна для Братства и их треклятого испытания... и одна для вас. Я должен сказать вам, что время поджимает. Я не единственный, кого Братство пригласило в этом году, но они примут только одного претендента - первого, кто пройдёт своё испытание. Я знаю, по крайней мере, трёх других, которые яростно трудятся, чтобы занять моё законное место. Если ваше содействие поможет мне, тогда я вознагражу вас ещё своими замечательными эликсирами. У меня есть древний Lifebinding Emerald, который предоставляет великую власть над здоровьем и исцелением, когда используется должным образом. Что скажете?]],
answers = {
{"Я согласен.", jump="choice", action = function(npc, player) player:grantQuest("brotherhood-of-alchemists") end,},
{"В данный момент я не могу вам помочь."},
}
}
newChat{ id="choice",
text = [[Превосходно. Итак, у меня три эликсира, над которыми я работаю. Я обременю вас лишь один раз, так как на своей шкуре узнал опасность перегрузки мозга авантюриста. Вот ваши варианты: эликсир лисы, который делает вас такими же ловкими и хитрыми, как лиса; эликсир уклонения, который обостряет ваши естественные способности, позволяя избежать наносимого вреда или эликсир меткости, который дарует интуитивное понимание наиболее чувствительных мест врага. Что вы предпочтёте за содействие мне?]],
answers = {
{" "..e[1].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[2].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[3].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
newChat{ id="list",
text = [[Вот список недостающих мне ингредиентов. Пожалуйста, постарайтесь не потерять свою жизнь в погоне за ними. Меня больше всего расстроит, если мне придётся ждать ещё один год. О, и я полагаю, я должен сообщить вам, что у меня уже есть кучка авантюристов, которые прочёсывают неприятные места мира ради этих ингредиентов. Будете прохлаждаться и один из них получит приз, пока вас нет.]],
answers = {
{"Уже иду."},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Дверь закрыта и никто не отзывается на стук*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Алхимик открывает дверь.*#WHITE#
Ах, это опять вы.]],
answers = {
-- If not the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 1) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 2) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 3) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
-- If the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 3) end,
},
-- If the elixir got made while you were out:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 3) end,
},
--Don't let player work on multiple elixirs for the same alchemist.
--See comments in more_aid function above for all the gory detail
{"Я здесь, чтобы предложить более существенную помощь.", jump="choice",
cond = function(npc, player) return more_aid(npc, player) end,
},
{"[Уйти]"},
}
}
--Not final elixir:
newChat{ id="complete",
text = alchemist_reaction_complete(npc, player, player_loses, other_alch, other_elixir),
answers = {
{"[Отдайте ему ингредиенты]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему ингредиенты]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему ингредиенты]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
-- {"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Final elixir:
newChat{ id="totally-complete",
text = [[#LIGHT_GREEN#*Алхимик усмехается и нетерпеливо тянется за ингредиентами.*#WHITE#
Замечательно, прекрасно! Заключительный этап! Давайте их мне!]],
answers = {
{"[Отдайте ему ингредиенты]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему ингредиенты]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему ингредиенты]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
--{"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Not final elixir:
newChat{ id="complete2",
text = [[Подождите здесь, пока я проявляю своё мастерство. Я отдам ваше вознаграждение в течение часа.]],
answers = {
{"[Ждать]", jump="complete3"},
}
}
--Final Elixir:
newChat{ id="totally-complete2",
text = [[Ждите, мой добрый искатель приключений, а затем я вернусь с двумя вашими наградами! Ха-ха, наконец-то!]],
answers = {
{"[Ждать]", jump="totally-complete3"},
}
}
--Not final elixir:
newChat{ id="complete3",
text = [[#LIGHT_GREEN#*Алхимик, наконец, возвращается и вручает вам небольшой флакон из прекрасного стекла.*#WHITE#
Наслаждайтесь вашей наградой.]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:update_needed_ingredients(player)
end
},
}
}
--Final elixir:
newChat{ id="totally-complete3",
text = [[#LIGHT_GREEN#*Алхимик, наконец, возвращается с флаконом и зеленым самоцветом.*#WHITE#
Вкусите плоды своих трудов, искатель приключений. Я знаю, что я хочу. Чтобы выразить свою признательность, я назову своего первенца... э, как вас зовут? Ха-ха, да я шучу. О, меня иногда заносит, когда я в таком состоянии. Прощайте.]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
}
}
newChat{ id="choice",
text = [[Отлично. Как вы хотите мне помочь?]],
answers = {
{"The "..e[1].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"The "..e[2].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"The "..e[3].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
newChat{ id="list",
text = [[Вот список недостающих мне ингредиентов. Пожалуйста, постарайтесь не потерять свою жизнь в погоне за ними. Меня больше всего расстроит, если мне придётся ждать ещё один год.]],
answers = {
{"Уже иду."},
}
}
-- If the elixir got made while you were out:
newChat{ id="poached",
text = [[Ужасно жаль, но я уже создал эликсир без вашей помощи. У меня нет награды для вас, и нет причин, чтобы бы я это сделал.]],
answers = {
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 1) end,
action = function(npc, player)
q:remove_ingredients(player, e[1].short_name, 1)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 2) end,
action = function(npc, player)
q:remove_ingredients(player, e[2].short_name, 2)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 3) end,
action = function(npc, player)
q:remove_ingredients(player, e[3].short_name, 3)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:update_needed_ingredients(player)
end,
},
}
}
end
return "welcome"
file/game/modules/tome.team/data/chats/alchemist-elvala.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Бедно одетый эльф открывает дверь, почесывая голову в явном замешательстве.*#WHITE#
Ещё один авантюрист? Или мы встречались? Я плохо различаю людей, если они не носят яркие головные повязки. Вы должны мне помочь.]],
answers = {
{"Я действительно авантюрист. Продолжайте.", jump="ominous"},
{"[Уйти]"},
}
}
newChat{ id="ominous",
text = [[Три эликсира стоят между мной и принятием в Братство Алхимиков, разве что я уже прошёл через это. Я не совсем уверен. Но я думаю, что это так. Принесите мне ингредиенты.]],
answers = {
{"Что за эликсиры? Какие ингредиенты?", jump="proposal"},
}
}
newChat{ id="proposal",
text = [[Те, которые мне нужно получить перед тем, как другие алхимики получат их. Не могу допустить, чтобы какой-то халтурщик тайком проник в Братство.]],
answers = {
{"Вы говорите бессмыслицу.", jump="help"},
}
}
newChat{ id="help",
text = [[#LIGHT_GREEN#*Он повышает голос и размашисто жестикулирует, по-видимому, он принимает вас за идиота.*#WHITE#
Мне нужны части страшных монстров для осчастливливающего напитка. Достаньте мне эти части. Вас, скорее всего, съедят монстры и мне опять придётся повторять этот диалог ещё одному болвану.]],
answers = {
{"Я известен тем, что иногда убиваю монстров. Есть ли вознаграждение для меня?", jump="competition"},
}
}
newChat{ id="competition",
text = [[Он, наконец-то, понял! Вы получите дозу каждого эликсира, который вы поможете мне создать. И если ваша помощь поможет мне попасть в Братство, у меня лежит здесь половина эликсира неуязвимости, я вам его отдам. И без фокусов, я уже допил вторую половину.]],
answers = {
{"Я согласен", jump="choice", action = function(npc, player) player:grantQuest("brotherhood-of-alchemists") end,},
{"В данный момент я не могу вам помочь."},
}
}
newChat{ id="choice",
text = [[Мне нужны три эликсира. Я покажу вам ингредиенты на каждый. Вас интересует эликсир мистики, эликсир спасителя или эликсир мастерства?]],
answers = {
{"The "..e[1].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"The "..e[2].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"The "..e[3].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
newChat{ id="list",
text = [[Вот список частей монстра, которые мне нужны. Между прочим, у меня уже есть кучка идиотов, ищущих их, поэтому лучше всего поторопиться. Они получили фору, а я ещё не выжил из ума.]],
answers = {
{"Я заметил. Уже иду."},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Дверь закрыта и никто не отзывается на стук*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Бедно одетый эльф открывает дверь.*#WHITE#
Я вас знаю?]],
answers = {
-- If not the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 1) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 2) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 3) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
-- If the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 3) end,
},
-- If the elixir got made while you were out:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 3) end,
},
--Don't let player work on multiple elixirs for the same alchemist.
--See comments in more_aid function above for all the gory detail
{"Я здесь, чтобы предложить помощь.", jump="choice",
cond = function(npc, player) return more_aid(npc, player) end,
},
{"[Уйти]"},
}
}
--Not final elixir:
newChat{ id="complete",
text = alchemist_reaction_complete(npc, player, player_loses, other_alch, other_elixir),
answers = {
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
-- {"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Final elixir:
newChat{ id="totally-complete",
text = [[#LIGHT_GREEN#*Эльф хлопает своими, покрытыми шрамами, руками.*#WHITE#
Незаурядная работа, лакей! Готовый эликсир ждёт! О, да. Членство будет моим. И месть. О-о, да.]],
answers = {
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
--{"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Not final elixir:
newChat{ id="complete2",
text = [[Сдержите своё нетерпение, пока я готовлю. У меня будет эликсир в течение часа.]],
answers = {
{"[Ждать]", jump="complete3"},
}
}
--Final Elixir:
newChat{ id="totally-complete2",
text = [[Безупречно. Ждите здесь.]],
answers = {
{"[Ждать]", jump="totally-complete3"},
}
}
--Not final elixir:
newChat{ id="complete3",
text = [[#LIGHT_GREEN#*Эльф наконец возвращается и бросает вам небольшой флакон из прекрасного стекла.*#WHITE#
Побочные эффекты могут включать некоторую незначительную умственную неустойчивость.]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:update_needed_ingredients(player)
end
},
}
}
--Final elixir:
newChat{ id="totally-complete3",
text = [[#LIGHT_GREEN#*Алхимик, наконец, возвращается с двумя флаконами.*#WHITE#
Я понятия не имею, кто вы, но я уверен, что должен отдать их кому-то в качестве награды. Если какой-то авантюрист убьёт вас и отберёт их, тогда, видимо, вы не тот, кого я ищу.]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
}
}
newChat{ id="choice",
text = [[Какой из оставшихся эликсиров вас интересует?]],
answers = {
{" "..e[1].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[2].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[3].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
newChat{ id="list",
text = [[Вот список недостающих мне ингредиентов. Пожалуйста, внимательно следуйте инструкциям или полученный эликсир может быть более смертельным, чем один из нас надеется.]],
answers = {
{"Я ухожу."},
}
}
-- If the elixir got made while you were out:
newChat{ id="poached",
text = [[Уже выполнили. Лучше действовать быстрее в следующий раз, авантюрист.]],
answers = {
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 1) end,
action = function(npc, player)
q:remove_ingredients(player, e[1].short_name, 1)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 2) end,
action = function(npc, player)
q:remove_ingredients(player, e[2].short_name, 2)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 3) end,
action = function(npc, player)
q:remove_ingredients(player, e[3].short_name, 3)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:update_needed_ingredients(player)
end,
},
}
}
end
return "welcome"
file/game/modules/tome.team/data/chats/alchemist-golem.lua.txt
).new("Сменить вашему голему имя"
local ans = {
{"Я хочу поменять твоё снаряжение.", action=change_inven},
{"Я хочу поменять твои таланты.", action=change_talents},
{"Я хочу поменять твою тактику.", action=change_tactics},
{"Я хочу взять тебя под контроль.", action=change_control},
{"Я хочу поменять твоё имя.", cond = function() return golem.sentient_telos == 1 end, jump="name", action=function(npc, player) npc.name = "Телос Великий и Могущественный ("..npc.summoner.name..")" game.log("#ROYAL_BLUE#Голем меняет своё имя на #{bold}#%s#{normal}#.", npc.name) end},
{"Я хочу изменить твоё имя.", cond = function() return not golem.sentient_telos end, action=change_name},
{"Как ты говоришь?", cond = function() return golem.sentient_telos == 1 end, jump="how_speak"},
{"Ничего, следуй за мной."},
}
newChat{ id="how_speak",
text = [[Что толку от бессмертия, если вы не можете даже рассказать? Ни один заслуживающий уважения архимаг не собирается выдумывать какую-то аморальную схему «жизнь после смерти», без включения своего рода возможность проинформировать о своих взглядах. И, кстати, ваши методы обращения с энергией находятся на уровне моей обуви. Хотя я полагаю, что вы восполните это своими умениями по управлению големом.]],
answers = ans
}
newChat{ id="name",
text = [[Измените моё имя? Я очень счастлив называться Телосом, спасибо. Хотя я бы не отказался быть Телосом Великим и Могущественным. Вы так и сделаете. Да!]],
answers = ans
}
newChat{ id="welcome",
text = [[Я голем. Как забавно!
Ой, вам что-то нужно?]],
answers = ans
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Голем говорит монотонным голосом*#WHITE#
Да, хозяин.]],
answers = ans
}
return "welcome"
file/game/modules/tome.team/data/chats/alchemist-hermit.lua.txt
return ([[Сын ритча! Ты появился через десять минут после того, как я получил известие, что какой-то придурок уже завершил эликсиры и принят в Братство. КАКОГО ЧЕРТА ТЫ ТАК ДОЛГО? Груди Мирвении, я заберу это и изготовлю тебе твою награду, но только потому что проклятия погубят меня, если я так не сделаю. И если это будет на вкус как моча, то это лишь твоё воображение.]])
else
return ([[#LIGHT_GREEN#*Полурослик вручает вам записку, в которой говорится, «Слышал %s удалось создать %s пока вы прохлаждались. Чёрт возьми, в следующий раз спешите».*#WHITE#
Я всё ещё ни хрена не слышу. К счастью, вы не из тех, с кем интересно беседовать.]]):format(other_alch, other_elixir)
end
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Дверь закрыта и никто не отзывается на стук*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
file/game/modules/tome.team/data/chats/alchemist-last-hope.lua.txt
return ([[Пошло всё к черту. Вы опоздали. %s уже закончил. Но я полагаю, вы сделали всё возможное, поэтому я возьму это и сдержу свою часть уговора.]]):format(other_alch)
else
return ([[Отличная работа! И вы всё ещё целы, как я погляжу. Замечательно. Я чувствую то же самое, после того, как благополучно приготовлю особенно сложную микстуру. Мне пару раз чуть морду не сорвало подчистую. О, пока вас не было, маленькая птичка нащебетала мне, что %s удалось создать %s. Не дайте ему закончить раньше меня]]):format(other_alch, other_elixir)
end
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Запачканный гном в потрёпанной кольчуге открывает дверь.*#WHITE#
Скажите, вы заинтересованы в расчленении и оплате?]],
answers = {
{"Всегда", jump="ominous"},
{"[Уйти]"},
}
}
newChat{ id="ominous",
text = [[Боги свидетели, мне нравятся авантюристы. Собирался стать одним из них, когда «она» сразила меня. Под «она» я имею в виду - моя жена. Ха!]],
answers = {
{"Что вы предлагаете?", jump="proposal"},
}
}
newChat{ id="proposal",
text = [[Я предлагаю; я даю вам список частей монстра, вы пойдёте и принесёте их, затем я сделаю несколько ослепительно потрясающих настоев с упомянутыми частями монстра, и меня принимают в Братство Алхимиков.]],
answers = {
{"Похоже на план.", jump="help"},
}
}
newChat{ id="help",
text = [[Я составляю отличные планы. И настои, которые Братство, без сомнения, заставит меня называть эликсирами, когда меня примут. И я повинуюсь, потому что у них есть способы получить то, что они хотят. Итак, на чём мы остановились?]],
answers = {
{"Помочь вам попасть в какое-то Братство. Что мне за это будет?", jump="competition"},
}
}
newChat{ id="competition",
text = [[Эй, полегче. Разумеется, вы получите глоток каждого варева. Они уберают волосы с груди и, возможно, ваши веки и ногти. И, если ваша помощь окажется решающим фактором, то у меня есть настоящее удовольствие для вас: пожалуй, последний оставшийся Порок Телепатии в Мадж'Эяле.]],
answers = {
{"Я в деле.", jump="choice", action = function(npc, player) player:grantQuest("brotherhood-of-alchemists") end,},
{"В данный момент я не могу вам помочь."},
}
}
newChat{ id="choice",
text = [[И последнее. Есть ещё несколько коллег нацелившихся на то же место в Братстве, что и я. Они не собираются сидеть сложа руки, пока мы работаем, поэтому лучше всего действовать быстрее. Теперь, с чем из них вы хотите сначала помочь мне: настой Мускулов, настой Каменной кожи или Базовый настой? Или, правильней, эликсиры. Не настои. Пожалуй, лучше привыкнуть.]],
answers = {
{" "..e[1].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[2].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[3].name..".", jump="list",
cond = function(npc, player) return not game.player:hasQuest("brotherhood-of-alchemists"):isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
game.player:hasQuest("brotherhood-of-alchemists"):update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
newChat{ id="list",
text = [[Ладно, вот список. О, ещё одно. У меня есть несколько парней, которые уже охотятся за этим материалом, и у меня нет любимчиков. Один из них принесёт мне эти ингредиенты, прежде чем вы это сделаете, и вам не повезёт. Поспешите.]],
answers = {
{"Уже иду."},
}
}
newChat{ id="list",
text = [[Ладно, вот список. О, ещё одно. У меня есть несколько парней, которые уже охотятся за этим материалом, и у меня нет любимчиков. Один из них принесёт мне эти ингредиенты, прежде чем вы это сделаете, и вам не повезёт. Поспешите.
О, и ещё кое-что... если у вас есть время для другого поручения, хотя у меня нет вознаграждения за это.]],
answers = {
{"Хорошо, посмотрим, смогу ли я помочь.", jump="errand", action=function(npc, player) npc.errand_given = true end},
{"Я здесь ради прибыли, а не поручений; у меня есть список, и я буду работать над ним. Разбирайтесь со своими подработками сами.", action=function(npc, player) npc.errand_given = true end},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Дверь закрыта и никто не отзывается на стук*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Гном в кольчуге открывает дверь.*#WHITE#
Ага, мой перспективный авантюрист.]],
answers = {
-- If not the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 1) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 2) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="complete",
cond = function(npc, player) return turn_in(npc, player, 3) end,
action = function(npc, player)
q:on_turnin(player, alch_picked, e_picked, false)
end,
},
-- If the final elixir:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="totally-complete",
cond = function(npc, player) return turn_in_final(npc, player, 3) end,
},
-- If the elixir got made while you were out:
{"Я хочу отдать ингредиенты для "..e[1].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 1) end,
},
{"Я хочу отдать ингредиенты для "..e[2].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 2) end,
},
{"Я хочу отдать ингредиенты для "..e[3].name..".", jump="poached",
cond = function(npc, player) return turn_in_poached(npc, player, 3) end,
},
--Don't let player work on multiple elixirs for the same alchemist.
--See comments in more_aid function above for all the gory detail
{"Я здесь, чтобы предложить помощь.", jump="choice",
cond = function(npc, player) return more_aid(npc, player) end,
},
{"[Уйти]"},
}
}
--Not final elixir:
newChat{ id="complete",
text = alchemist_reaction_complete(npc, player, player_loses, other_alch, other_elixir),
answers = {
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему части монстра.]", jump="complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
-- {"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Final elixir:
newChat{ id="totally-complete",
text = [[#LIGHT_GREEN#*Он радостно хлопает вас по плечу.*#WHITE#
Ха-ха! Это последний! Стир и Марус, и этот проклятый отшельник пускай уткнутся мордой в одно место! Моя жена тоже так может! ДА, Я ЗНАЮ, ЧТО ТЫ МОЖЕШЬ МЕНЯ СЛЫШАТЬ. Хорошая работа, друг. Давайте их.]],
answers = {
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 1) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:remove_ingredients(player, e[1].short_name, 1)
end
},
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 2) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:remove_ingredients(player, e[2].short_name, 2)
end
},
{"[Отдайте ему части монстра]", jump="totally-complete2",
cond = function(npc, player) return give_bits(npc, player, 3) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:remove_ingredients(player, e[3].short_name, 3)
end
},
--{"Извините, кажется, мне не хватает нескольких частей. Я вернусь."},
}
}
--Not final elixir:
newChat{ id="complete2",
text = [[Дайте мне час или около того, на работу с помощью алхимии. Никуда не уходите.]],
answers = {
{"[Ждать]", jump="complete3"},
}
}
--Final Elixir:
newChat{ id="totally-complete2",
text = [[Вы мне нравитесь, я бы пригласил вас внутрь, пока вы ждёте, но здесь моя жена.]],
answers = {
{"[Ждать]", jump="totally-complete3"},
}
}
--Not final elixir:
newChat{ id="complete3",
text = [[#LIGHT_GREEN#*Гном, наконец, возвращается с флаконом.*#WHITE#
На вкус, как моча Ур'Рока, но работу свою делает.]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:update_needed_ingredients(player)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:update_needed_ingredients(player)
end
},
}
}
--Final elixir:
newChat{ id="totally-complete3",
text = [[#LIGHT_GREEN#*Гном, наконец, возвращается с флаконом и маленьким кошелём.*#WHITE#
Я положил немного хороших вещичек сюда, несмотря на это к завтрашнему утру никаких поблажек. И осторожно с Пороком Телепатии, особенно если жена откроет дверь в следующий раз, когда вы постучите. Ха!]],
answers = {
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[1].almost) and not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].full)
q:reward(player, e[1].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[2].almost) and not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].full)
q:reward(player, e[2].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
{"Спасибо. Я ухожу.",
cond = function(npc, player) return q and q:isCompleted(e[3].almost) and not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].full)
q:reward(player, e[3].id)
q:reward(player, final_reward)
q:update_needed_ingredients(player)
q:winner_is(player, alchemist_num)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.DONE)
end
},
}
}
newChat{ id="choice",
text = [[Благослови боже авантюристов. Что выбираете?]],
answers = {
{" "..e[1].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[1].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[1].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[2].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[2].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[2].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{" "..e[3].name..".", jump="list",
cond = function(npc, player) return not q:isCompleted(e[3].full) end,
action = function(npc, player)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].start)
q:update_needed_ingredients(player)
end,
on_select=function(npc, player)
local o = art_list[e[3].id]
o:identify(true)
game.tooltip_x, game.tooltip_y = 1, 1
game:tooltipDisplayAtMap(game.w, game.h, tostring(o:getDesc()))
end,
},
{"[Уйти]"},
}
}
if npc.errand_given then
newChat{ id="list",
text = [[Вот список нужных мне частей существа. Удачи в убийстве!]],
answers = {
{"Уже иду."},
}
}
else
newChat{ id="list",
text = [[Вот список нужных мне частей существа. Удачи в убийстве!
О, и ещё кое-что... если у вас есть время для другого поручения, хотя у меня нет вознаграждения за это.]],
answers = {
{"Хорошо, посмотрим, смогу ли я помочь.", jump="errand", action=function(npc, player) npc.errand_given = true end},
{"Я здесь ради прибыли, а не поручений; у меня есть список, и я буду работать над ним. Разбирайтесь со своими подработками сами.", action=function(npc, player) npc.errand_given = true end},
}
}
end
-- If the elixir got made while you were out:
newChat{ id="poached",
text = [[Хм, похоже, что пока вы отсутствовали, кому-то ещё удалось принести мне ингредиенты. У меня нет награды для вас! Сожалею об этом, но когда время дорого - первый пришёл, первый получил - единственное разумное правило.]],
answers = {
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 1) end,
action = function(npc, player)
q:remove_ingredients(player, e[1].short_name, 1)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[1].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 2) end,
action = function(npc, player)
q:remove_ingredients(player, e[2].short_name, 2)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[2].almost)
q:update_needed_ingredients(player)
end,
},
{"Мда.",
cond = function(npc, player) return empty_handed(npc, player, 3) end,
action = function(npc, player)
q:remove_ingredients(player, e[3].short_name, 3)
player:setQuestStatus("brotherhood-of-alchemists", engine.Quest.COMPLETED, e[3].almost)
q:update_needed_ingredients(player)
end,
},
}
}
end
newChat{ id="errand",
text = [[Ну, тут такое дело, одна из подруг моей жены пропала без вести. Молодой алхимик, на стадии подготовки, по имени Селия. Дело в том, что её муж умер недавно, и горе сделало её безумной. Она каждый день ходила к его могиле и однажды она не вернулась. Лично я не думаю, что она могла прожить без него; они были неразлучны. Если в ваших путешествиях появится возможность пройти мимо мавзолея на востоке и проверить... ну, вы поняли.
Странно, что смерть может сделать с людьми, как это может завладеть их разумом. Иногда они забывают это, жизнь - это важно... Посмотрите, чтобы она получила достойные похороны, отнеситесь со всем уважением, да?]],
answers = {
{"Я сделаю, что смогу.", action=function(npc, player)
game:onLevelLoad("wilderness-1", function(zone, level)
local g = game.zone:makeEntityByName(level, "terrain", "LAST_HOPE_GRAVEYARD")
local spot = level:pickSpot{type="zone-pop", subtype="last-hope-graveyard"}
game.zone:addEntity(level, g, "terrain", spot.x, spot.y)
game.nicer_tiles:updateAround(game.level, spot.x, spot.y)
game.state:locationRevealAround(spot.x, spot.y)
end)
game.log("He points out the location of the graveyard on your map.")
player:grantQuest("grave-necromancer")
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/angolwen-leader.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит высокая женщина. Её светлая кожа излучает невероятную силу через её белую мантию.*#WHITE#
Я Линаниил из Кар'Крула. Добро пожаловать в наш город, @playerdescriptor.subclass@. Что я могу для вас сделать?]],
answers = {
{"Мне нужна вся помощь, которую я могу получить, не ради меня, а для города Дерта, к северо-востоку отсюда.", jump="save-derth", cond=function(npc, player) local q = player:hasQuest("lightning-overload") return q and q:isCompleted("saved-derth") and not q:isCompleted("tempest-located") and not q:isStatus(q.DONE) end},
{"Я готов! Отправьте меня к Уркису!", jump="teleport-urkis", cond=function(npc, player) local q = player:hasQuest("lightning-overload") return q and not q:isEnded("tempest-located") and q:isCompleted("tempest-located") end},
{"Нет, ничего. Извините, что занял ваше время. Прощайте, миледи."},
}
}
newChat{ id="save-derth",
text = [[Да, мы заметили разорение, которое там произошло. Я отправила нескольких друзей, чтобы разогнать тучи, но истинная угроза не там.
Тот, кто создал эту мерзость, - Уркис, Вестник Бури, могущественный архимаг, который направляет шторма.
Несколько лет назад он стал изгоем, отделившись от Анголвена. Поначалу он оставался спокойным и поэтому мы не принимали никаких мер, но, похоже, сейчас у нас нет выбора.
Очищение небес займёт много времени. Между тем, если вы хотите, мы можем отправить вас в логово Уркиса, чтобы встретиться с ним.
Я не буду лгать вам; мы можем отправить вас туда, но это может оказаться смертельной ловушкой и у нас нет возможности, чтобы вызволить вас из его логова, так как он живёт на вершине высокого пика в горах Дайкара.]],
answers = {
{"Мне нужно подготовиться. Я скоро вернусь.", action=function(npc, player) player:setQuestStatus("lightning-overload", engine.Quest.COMPLETED, "tempest-located") end},
{"Я готов. Отправьте меня. Я не позволю нападать на хороших людей Дерта.", action=function(npc, player)
player:setQuestStatus("lightning-overload", engine.Quest.COMPLETED, "tempest-located")
player:hasQuest("lightning-overload"):teleport_urkis()
game:unlockBackground("linaniil", "Archmage Linaniil")
end},
}
}
newChat{ id="teleport-urkis",
text = [[Удачи вам. У вас есть благословение Анголвена.]],
answers = {
{"Спасибо.", action=function(npc, player)
player:hasQuest("lightning-overload"):teleport_urkis()
game:unlockBackground("linaniil", "Archmage Linaniil")
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/angolwen-staves-store.lua.txt
newChat{ id="welcome",
text = [[Добро пожаловать @playername@ в мой магазин.]],
answers = {
{"Позвольте мне посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end},
{"Мне нужна профессиональная подготовка.", jump="training"},
{"Извините, я должен идти!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/antimagic-end.lua.txt
ogretext = "\n\n#{italic}##LIGHT_GREEN#*Как только вы выпиваете зелье, ваши руны начинают гореть и исчезать со страшными мучениями, словно погружаясь сквозь кожу, кости, мышцы и сердце. Вы теряете сознание от боли, а чуть позже очнувшись, обнаруживаете, что руны пропали. Вы чувствуете себя очень плохо и всё же... очищенным.*#{normal}##WHITE#"
newChat{ id="welcome",
text = ([[Отлично! Вы по праву доказали, что никакое волшебное пламя или шторм не могут противостоять лезвию и стреле! Приходите, узнайте наши методы. Вы готовы.
#LIGHT_GREEN#*Он даёт вам зелье.*#WHITE#
Выпейте. Мы извлекаем его из очень редкого вида дрейка. Он дарует силы для борьбы и отменяет магию, вы никогда больше не сможете использовать магию.%s]]):format(ogretext),
answers = {
{"Спасибо. Я не допущу торжество магии! #LIGHT_GREEN#[вы пьёте зелье]", action=function(npc, player) player:setQuestStatus("antimagic", engine.Quest.COMPLETED) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ardhungol-end.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Когда чудовищный паук падает, вы что-то замечаете... что-то двигается в её животе, пока он не взрывается! Высокий темнокожий человек выходит из изверженных кишок, окруженный золотым светом.*#WHITE#
Солнце! Я думал, что больше никогда не увижу дружеское лицо!
Спасибо. Я Рашим, и я у тебя в долгу.
]],
answers = {
{"Меня послала ваша жена. Она беспокоилась за вас.", jump="leave"},
}
}
newChat{ id="leave",
text = [[Ах, душа моя!
Ну, теперь, когда я свободен, я создам портал к Утренним Вратам. Полагаю, я насмотрелся достаточно пауков на всю оставшуюся жизнь.]],
answers = {
{"Ведите!", action=function(npc, player) player:hasQuest("spydric-infestation"):portal_back(player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ardhungol-start.lua.txt
newChat{ id="welcome",
text = [[Доброго дня вам.]],
answers = {
{"И вам также."},
}
}
return "welcome"
end
newChat{ id="welcome",
text = [[Я слышал, что вы великий герой Запада. Не могли бы вы помочь мне, пожалуйста?]],
answers = {
{"Возможно, а что такое?", jump="quest", cond=function(npc, player) return not player:hasQuest("spydric-infestation") end},
{"У меня, к сожалению, достаточно проблем."},
}
}
newChat{ id="welcome",
text = [[Добро пожаловать обратно, @playername@.]],
answers = {
{"Ваш муж найден. Я так понимаю, он благополучно добрался домой?", jump="done", cond=function(npc, player) return player:isQuestStatus("spydric-infestation", engine.Quest.COMPLETED) end},
{"Мне нужно идти. Пока."},
}
}
newChat{ id="quest",
text = [[Мой муж, Рашим - Паладин Солнца. Его послали очистить логово пауков к северу от города Ардхунгола.
Прошло уже три дня. Он должен был вернуться. Я чувствую, что с ним случилось что-то ужасное. Пожалуйста, найдите его!
У него должен быть волшебный камень, данный Аноритилом для создания портала, но он не использовал его!]],
answers = {
{"Я посмотрю, смогу ли я его найти.", action=function(npc, player) player:grantQuest("spydric-infestation") end},
{"Пауки? Фу, извините, но он, вероятно, мёртв."},
}
}
newChat{ id="done",
text = [[Да, да, он вернулся! Он сказал, что умер бы, если бы не вы.]],
answers = {
{"Это пустяк.", action=function(npc, player)
player:setQuestStatus("spydric-infestation", engine.Quest.DONE)
world:gainAchievement("SPYDRIC_INFESTATION", game.player)
game:setAllowedBuild("divine")
game:setAllowedBuild("divine_sun_paladin", true)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/arena-start.lua.txt
newChat{ id="welcome",
text = "#LIGHT_GREEN#Перед тем, как войти, взгляните на доску рейтинга.\n"..text,
answers = {
--{"Продержаться на арене 3 раунда[DEBUG]", action=arena_3, jump="perks"},
{"Продержаться на арене (60 раундов)", action=arena_60},
{"Продержаться на арене (короткий режим, 30 раундов)", action=arena_30},
--{"Продержаться на арене так долго, сколько сможете.", action=arena_inf, jump="perks"},
{"#LIGHT_RED#[Сброс всех сохранений арены]", action=save_clear},
}
}
newChat{ id="welcome2",
text = "Что выберете?",
answers = {
{"Продержаться на арене 60 раундов", action=arena_60},
{"Продержаться на арене 30 раундов", action=arena_30},
--{"Продержаться на арене так долго, сколько сможете", action=arena_inf, jump="perks"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/arena-unlock.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Высокий, покрытый капюшоном мужчина пристально смотрит на вас*#WHITE#
Да... да... вы выглядите, как многообещающий воин...
У меня есть предложение, @playerdescriptor.race@.
Вы видите... Я агент арены. Я ищу многообещающих воинов, которые могут дать хорошее представление для нашей аудитории. Возможно, вы достаточно сильны, чтобы участвовать.
Все, что вам нужно сделать, это победить трёх моих людей и вы будете вознаграждены.
#LIGHT_GREEN#*Вы обдумываете какое-то мгновение предложение таинственного человека в капюшоне*
]],
answers = {
{"Интересно. Расскажите подробнее об этой арене.", jump="more_ex",
action = function (self, player) self.talked_to = 1 end,
cond=function(npc, player) return not profile.mod.allow_build.campaign_arena end},
{"Во мне есть сила! Что вы предлагаете?", jump="more",
action = function (self, player) self.talked_to = 1 end,
cond=function(npc, player) return profile.mod.allow_build.campaign_arena end},
{"Я не принимаю предложения от сомнительных людей в капюшоне.", jump="refuse",
action = function (self, player) self.talked_to = 1 end},
}
}
newChat{ id="more",
text = [[#LIGHT_GREEN#*Вы чувствуете, что человек улыбается из под капюшона*#WHITE#
Я могу предложить богатство и славу, и самое полезное
#YELLOW#боевой опыт#WHITE# от поединка с нашими людьми...
Так что вы думаете? Вы готовы к этому?
]],
answers = {
{"Да. Пошли!", jump="accept", action = function (self, player) self.talked_to = 2 end },
{"У меня нет времени на игры, корнак.", jump="refuse"},
}
}
newChat{ id="more_ex",
text = [[#LIGHT_GREEN#*Вы чувствуете, что человек улыбается из под капюшона*#WHITE#
Арена - это куда смельчаки приходят сражаться наперекор судьбе.
Мы всё ещё расширяемся, и нам не хватает соперников...
Это похоже на азартную игру, но вы используете навыки боя вместо денег, понимаете?
Мы на арене упорно трудимся, чтобы создать хорошее шоу, а взамен... вы получите достаточно богатства, и славу, запечатлённую в веках!
Если вы пройдёте мой маленький тест... я #LIGHT_RED#позволю вам участвовать на арене, когда вы завершите свои приключения.#WHITE#
Вы также приобретёте столь необходимый #LIGHT_RED#боевой опыт#WHITE# от поединка с нашими людьми... так, что вы думаете? Вы готовы к этому?
]],
answers = {
{"Да. Пошли!", jump="accept", action = function (self, player) self.talked_to = 2 end },
{"У меня нет времени на игры, корнак.", jump="refuse"},
}
}
newChat{ id="refuse",
text = [[#LIGHT_GREEN#*Мужчина испускает разочарованный вздох*#WHITE#
Это печально. Мы могли бы использовать кого-то вроде вас.
Вы просто того типа, который нравится аудитории. Вы могли бы стать чемпионом.
Увы, если это ваш выбор, мы больше никогда не встретимся. Однако, если вы передумаете... Я #YELLOW#задержусь в Дерте ещё немного.#WHITE# Если я всё ещё буду здесь, мы сможем заключить сделку. Подумайте об этом, @playerdescriptor.race@.
]],
answers = {
{"Посмотрим. [Уйти]"},
}
}
newChat{ id="accept",
text = [[#LIGHT_GREEN#*Мужчина улыбается в знак одобрения*#WHITE#
Отлично! Великий боец всегда готов отправиться в бой.
Вы наверняка не пожалеете, что встретили нас...
Итак, вы готовы сражаться?
]],
answers = {
{"Звучит заманчиво. Я в деле!", jump="go"},
{"Подождите. Мне нужно подготовиться.", jump="ok"},
}
}
newChat{ id="go",
text = "#LIGHT_GREEN#*Человек молча уходит, сделав вам жест следовать за ним*",
answers = {
{"[Следовать за ним]",
action = function (self, player)
self:die()
player:grantQuest("arena-unlock")
game:changeLevel(1, "arena-unlock", {direct_switch=true})
require("engine.ui.Dialog"):simpleLongPopup("Готовьтесь!", "Победить трёх врагов!", 400)
end
},
}
}
newChat{ id="win",
text = [[#LIGHT_GREEN#*Бродяга корнак выходит из тени*#WHITE#
Молодец, @playerdescriptor.race@! Я знал, что у вас есть потенциал.
#LIGHT_GREEN#*Бродяга снимает капюшон, показывая довольно молодого, но явно
#LIGHT_GREEN#закалённого в боях человека.#WHITE#
Моё имя Рей. Я работаю на арене нанимая великих бойцов, которые могут показать хорошее шоу... и не умереть от двух ударов. Вы один из них, действительно!
Я не буду удерживать вас от ваших приключений. Я тоже был там, давно.
Но мы можем сделать вас настоящим чемпионом, любимым многими и купающимся в бриллиантах.
#LIGHT_GREEN#*Когда вы вернётесь в Дерт, в общество бродяги, вы опишете свои
#LIGHT_GREEN#сражения в лесу. Он предоставляет вам большое знание к вашей технике боя (#WHITE#+2 общие очки талантов#LIGHT_GREEN#)*
#WHITE#Очень хорошо, @playername@. Мне надо идти.
Удачи в ваших приключениях, и приходите к нам, когда закончите!
]],
answers = {
{ "Я буду. Прощайте.", action = function (self, player) game:onLevelLoad("arena-unlock-1", function()
local g = game.zone:makeEntityByName(game.level, "terrain", "SAND_UP_WILDERNESS")
g.change_level = 1
g.change_zone = "town-derth"
g.name = "exit to Derth"
game.zone:addEntity(game.level, g, "terrain", player.x, player.y)
game.party:reward("Select the party member to receive the +2 generic talent points:", function(player)
player.unused_generics = player.unused_generics + 2
end)
game:setAllowedBuild("campaign_arena", true)
game.player:setQuestStatus("arena-unlock", engine.Quest.COMPLETED)
world:gainAchievement("THE_ARENA", game.player)
end) end},
}
}
newChat{ id="ok",
text = "#WHITE#Понимаю. Я буду ждать... #YELLOW#Но не долго.",
answers = {
{ "Увидимся."},
}
}
newChat{ id="back",
text = [[#LIGHT_GREEN#*Бродяга корнак приветливо улыбается*#WHITE#
Добро пожаловать, @playerdescriptor.race@. Вы пересмотрели моё щедрое предложение?
]],
answers = {
{ "Да, расскажите больше.", jump = "accept", action = function (self, player) self.talked_to = 2 end },
{ "Нет, увидимся."},
}
}
newChat{ id="back2",
text = [[
Добро пожаловать, @playerdescriptor.race@. Вы готовы идти?
]],
answers = {
{ "Пошли, корнак.", jump = "go" },
{ "Минуточку. Мне надо подготовить своё снаряение."},
}
}
return "back"
elseif npc.talked_to >= 2 then return "back2"
end
return "welcome" end
file/game/modules/tome.team/data/chats/arena.lua.txt
newChat{ id="ryal-entry",
text = [[#LIGHT_GREEN#*Гигантский костяной гигант шагает через главные ворота.
#LIGHT_GREEN#Его фигура замысловатая и остроконечная, напоминающая дрейка, но с бесчисленными
#LIGHT_GREEN#шипами вместо крыльев.
#LIGHT_GREEN#Массивная нежить смотрит на вас с непривычным... интеллектом.
#LIGHT_GREEN#Вы слышали о нем. Райл Неистовый, ваше первое препятствие!
#LIGHT_GREEN#Когда жуткое синее свечение заполняет то место, где должны быть глаза, гигантская нежить
#LIGHT_GREEN#ревёт и несколько костей летят в вашем направлении!*
]],
answers = {
{"Защищайся!"},
}
}
newChat{ id="ryal-defeat",
text = [[#LIGHT_GREEN#*После нескольких ударов нежить-гигант в конечном счёте пал жертвой
#LIGHT_GREEN#ваших атак*
#LIGHT_GREEN#Внезапно тело Райла начало восстанавливаться!
#LIGHT_GREEN#И вот он снова стоит в полный рост, вы почти ощущаете, как его лишённый эмоций череп пялится на вас
#LIGHT_GREEN#с... удовольствием.
#WHITE#Хе-хе... хорошая работа, @playerdescriptor.race@.
#LIGHT_GREEN#*Райл спокойно поворачивается к воротам и уходит, на первый взгляд невредимый*
]],
answers = {
{"Это было весело, костяной гигант!", action=entershop},
{"Что? Невредимый?", action=entershop}
}
}
newChat{ id="fryjia-entry",
text = [[#LIGHT_GREEN#*Задуло прохладой, когда молодая девушка спокойно вошла через ворота.
#LIGHT_GREEN#Она выглядит на удивление молодой, с очень бледной кожей и контрастирующими с ней
#LIGHT_GREEN#длинными чёрными волосами. Она изучает вас с мрачным спокойствием*#WHITE#
Я известна как Фрейя Град. Это всё, что вам нужно знать, @playerdescriptor.race@. Начнём.
#LIGHT_GREEN#*Пока она говорила, на арене стало холодать, а публика
#LIGHT_GREEN#начала кутаться в свои прекрасные зимние плащи*]],
answers = {
{"Ну давай!"},
}
}
newChat{ id="fryjia-defeat",
text = [[#LIGHT_GREEN#*С вашим последним ударом, Фрейя падает, не в состоянии продолжать*
#LIGHT_GREEN#*Она неуклюже встаёт, но не выглядит тяжело раненной*
#WHITE# Я... я признаю поражение.
#LIGHT_GREEN#*Аудитория в восторге кричит «О-о-о». Фрейя поворачивается к вам спиной*
#WHITE# @playerdescriptor.race@. Ты не тот, кого я ищу...
#LIGHT_GREEN#*Оставив вас в недоумении от своих слов молодая девушка
#LIGHT_GREEN#направилась к воротам. Пока она отворачивалась, вы заметили, что её глаза мокрые от слёз.
]],
answers = {
{"...", action=entershop},
{"Что... что это было?", action=entershop}
}
}
newChat{ id="riala-entry",
text = [[#LIGHT_GREEN#*Ворота открываются являя женщину человека в возрасте, одетую в малиновую мантию.
#LIGHT_GREEN#Она смотрит на вас, широко улыбаясь*
#WHITE# Какой замечательный @playerdescriptor.race@. Как уж тебя зовут, @playername@? Я так рада быть сегодня твоим соперником.
#LIGHT_GREEN#*Она тихо говорит, как бы сообщает по секрету* #WHITE#Знаешь, так мало кто посещает кроху в последнее время, такая скука.#LIGHT_GREEN#*Она хихикает*#WHITE#
Так! Я Рэла Багровая. Я прямо из Анголвена. Несмотря на «Небесный огонь», как вы знаете, люди по-прежнему наслаждаются несколькими волшебными трюками!
#LIGHT_GREEN#*Она щёлкает пальцами, и пламя начинает плясать вокруг неё!*#WHITE#
Фрейя рассказала мне о тебе, бедолага, поэтому я не буду недооценивать такого перспективного претендента #LIGHT_GREEN#*Она тепло улыбается* #WHITE#Итак, поспешим, моя радость!
Да начнётся битва!]],
answers = {
{"Давай!"},
}
}
newChat{ id="riala-defeat",
text = [[#LIGHT_GREEN#*С завершающим ударом Рэла падает... внезапно вспыхивая!
#LIGHT_GREEN#Вы смотрите на пылающий ад с понятным замешательством,
#LIGHT_GREEN#пока не слышите её голос сзади*#WHITE#
О, моя дорогуша! Это была неплохая битва, не так ли? Я уступаю тебе честь победы.
#LIGHT_GREEN#*Она вежливо кланяется*
Фрейя была права насчёт тебя: ты кажешься чемпионом в своём деле!
О, и, пожалуйста, прости её поведение. Ты поймёшь, когда встретишься с её отцом.
И если ты продолжишь сражаться, это наступит очень скоро.
Итак, это было моё развлечение, @playername@. #LIGHT_GREEN#*Она исчезает в вихре пламени*]],
answers = {
{"Я разогрелся! Что дальше?", action=entershop},
{"Здесь только я могу умереть?", action=entershop}
}
}
newChat{ id="valfren-entry",
text = [[#LIGHT_GREEN#*Вы вдруг осознаёте, что всё обратилось во мрак.
#LIGHT_GREEN#Вы оглядываетесь на поисках своего соперника. И затем замечаете его. Стоящий
#LIGHT_GREEN#прямо перед вами в массивной боевой броне со столь же массивным боевым топором.
#LIGHT_GREEN#Его не было там, ещё секунду назад. Вы отступаете назад и осматриваете его получше,
#LIGHT_GREEN#понимая, что внутри этой неуклюжей, изношенной брони - человек. Вы не можете видеть
#LIGHT_GREEN#его глаза, но вы знаете, что он пронзает душу своим взглядом*
Д... м... в...
#LIGHT_GREEN#*Вы слышите дьявольский голос, исходящий сразу отовсюду! Но... вы
#LIGHT_GREEN#ничего не можете понять! Это не похоже ни накакой язык, используемый в
#LIGHT_GREEN#Мадж'Эяле!
#LIGHT_GREEN#А потом... пронзительный, демонический рык... вы ошеломлены
#LIGHT_GREEN#сильшейшими эмоциями, овладевшими вашей душой!*
]],
answers = {
{"#LIGHT_GREEN#*Вы отважно противостоите тьме*"},
}
}
newChat{ id="valfren-defeat",
text = [[#LIGHT_GREEN#*Вы лихо наносите заключительный удар!*
#LIGHT_GREEN#*Валфрен падает и свет возвращается в этот мир.
#LIGHT_GREEN#Вы закрываете глаза на короткое мгновение, когда вы их открываете, то видите Фрейю*
Father... #LIGHT_GREEN#*Она стоит молча несколько секунд*#WHITE# Вы победили, @playerdescriptor.race@.
Вы хорошо сражаетесь. Приготовьтесь к финальной битве... если вы выиграете, мы будем к вашим услугам.
Удачи...
#LIGHT_GREEN#*После нескольких секунд дискомфорта Валфрен снова начинает двигаться.
#LIGHT_GREEN#Он встаёт и уходит с Фреей. У ворот Валфрен поворачивает к вам
#LIGHT_GREEN#голову. Вы смотрите друг на друга, а затем он поднимает взгляд
#LIGHT_GREEN#выше. Следуя за его взглядом... вы встречаетесь с чемпионом арены*
#LIGHT_GREEN#*Вот оно. Ваша цель. Ваше сердце быстро забилось, так как настало время*
#LIGHT_GREEN#*Чемпион арены горделиво улыбается*
#RED#Финальная битва начнётся, когда закроются ворота!
]],
answers = {
{"Я побью тебя, чемпион арены!", action=entershop},
{"Я стану чемпионом арены вместо тебя!", action=entershop},
{"Богатство и слава! Богатство и слава!", action=entershop},
}
}
newChat{ id="master-entry",
text = [[#LIGHT_GREEN#*Наконец, чемпион арены входит в ворота!
#LIGHT_GREEN#Публика ревёт от восторга, когда он самоуверенно смотрит вам в лицо!*
Я приветствую вас, @playerdescriptor.race@! Вы сильно и отважно сражаетесь!
А теперь... время для финальной битвы!
#LIGHT_GREEN#*Чемпион принимает боевую стойку. Зрители аплодируют!*
Как и вы, я начал из ниоткуда. Я не буду недооценивать кого-то с таким потенциалом.
#LIGHT_GREEN#*Чемпион усмехается, вы тоже встаёте в боевую стойку,
#LIGHT_GREEN#и публика также приветствует вас, заставляя вас волноваться*
Вы слышите, как публика ликует? В этом вся суть.
Добейтесь славы со всей своей мощью, @playerdescriptor.race@!!
#LIGHT_GREEN#*Чемпион ступает на песок арены*
]],
answers = {
{"Богатство и слава!!!"},
}
}
newChat{ id="master-defeat",
text = [[#LIGHT_GREEN#*После славной битвы чемпион пал!*
Ха-ха-ха. Вы сделали это, @playerdescriptor.race@...
#LIGHT_GREEN#*Чемпион арены, побеждённый, встаёт широко улыбаясь.
#LIGHT_GREEN#Чувствуя одобрение чемпиона, вы поднимаете оружие, лежащее
#LIGHT_GREEN#на залитом кровью песке.*
Люди! Сегодня у нас новый чемпион!
#LIGHT_GREEN#*Аудитория бушует и постоянно выкрикивает ваше имя*
Поздравляем, @playerdescriptor.race@. Теперь вы чемпион.
Вы должны занять своё законное место.
Лишь помните... как и я, вы падёте однажды...
Но пока это ваше место! Добро пожаловать в рай, @playerdescriptor.race@!
#LIGHT_GREEN#*Вы видите, что несколько спонсоров и военных вербовщиков приближаются к
#LIGHT_GREEN#побеждённому чемпиону, предлагая сделки и хорошие посты в армии.
#LIGHT_GREEN#Вы улыбаетесь, озарённые победой, зная, что ваша жизнь будет славной с этого момента.
#LIGHT_GREEN#Потому что, даже если вы потерпите поражение в будущем...
#LIGHT_GREEN#Вы всегда можете продать своё имя и жить на широкую ногу.
#YELLOW#ПОЗДРАВЛЯЕМ!
#YELLOW#Вы новый чемпион арены! Вы величественны и эпохальны!
#YELLOW#Вы останетесь новым чемпионом, пока кто-то не бросит вам вызов!
#YELLOW#Играя в следующий раз, вы будете сражаться с этим новым чемпионом!
]],
answers = {
{"БОГАТСТВО!!! СЛАВА!!!", action=function(npc, player) player:hasQuest("arena"):win() end},
{"Мне больше не нужно кого-либо спасать!", cond=function(npc, player) if player.female == true then return false else return true end end, action=function(npc, player) player:hasQuest("arena"):win() end},
{"Я объявляю себя победителем, ожидающим вызова!", action=function(npc, player) player:hasQuest("arena"):win() end},
{"#LIGHT_GREEN#*Броситься в пляс*", action=function(npc, player) player:hasQuest("arena"):win() end},
}
}
file/game/modules/tome.team/data/chats/artifice-mastery.lua.txt
return "welcome"
file/game/modules/tome.team/data/chats/artifice.lua.txt
return "welcome"
file/game/modules/tome.team/data/chats/assassin-lord-thieves.lua.txt
newChat{ id="welcome",
text = [[Я не общаюсь! Говорите с начальником!]],
answers = {
{"[Уйти]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/assassin-lord.lua.txt
game.log("#LIGHT_GREEN#Вы и Лорд довольно детально обсудили ваши новые взаимоотношения, включая достоинства убийства по доверенности и некоторые вспомогательные методы заманивания в западню.")
game.log("Когда вы уходите, Лорд Ассасинов говорит: «И не забывай, теперь ты принадлежишь мне».")
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит угрожающего вида человек, одетый в чёрное.*#WHITE#
Ах, незваный гость, давненько... И что нам с тобой делать? Зачем ты убил(а) моих людей?]],
answers = {
{"Мне послышались крики, а твои люди... они оказались на моём пути. Что тут происходит?", jump="what"},
{"Мне пришла в голову мысль, что здесь могут быть сокровища.", jump="greed"},
{"Извините, уже ухожу!", jump="hostile"},
}
}
newChat{ id="hostile",
text = [[Боюсь, вы никуда не уйдёте. Убить!]],
answers = {
{"[Атаковать]", action=function(npc, player) engine.Faction:setFactionReaction(player.faction, npc.faction, -100, true) end},
{"Подождите! Возможно, мы могли бы как-то договориться. Вы кажетесь практичным человеком.", jump="offer"},
}
}
newChat{ id="what",
text = [[О, так это та часть, где я рассказываю вам свой план, прежде чем вы нападёте на меня? ВЗЯТЬ ЭТОГО НАРУШИТЕЛЯ!]],
answers = {
{"[Атаковать]", action=function(npc, player) engine.Faction:setFactionReaction(player.faction, npc.faction, -100, true) end},
{"Подождите! Возможно, мы могли бы как-то договориться. Вы кажетесь практичным человеком.", jump="offer"},
}
}
newChat{ id="greed",
text = [[Боюсь, это не твой счастливый день. Торговца мы... и тебя тоже! ВЗЯТЬ ЭТОГО НАРУШИТЕЛЯ!]],
answers = {
{"[Атаковать]", action=function(npc, player) engine.Faction:setFactionReaction(player.faction, npc.faction, -100, true) end},
{"Подождите! Возможно, мы могли бы как-то договориться. Вы кажетесь практичным человеком.", jump="offer"},
}
}
newChat{ id="offer",
text = [[Ну, мне нужен кто-то, кто заменит убитых людей. У вас крепкий вид. Может быть, вы сможете работать на меня.
Вы должны будете делать для меня некоторую грязную работу и вы будете связаны со мной. Тем не менее, вы можете получать прибыль от этого предприятия, если вы так хороши, как кажетесь.
И не вздумайте меня обманывать. Это было бы... неразумно.]],
answers = {
{"Ну, я полагаю, это лучше, чем смерть.", action=evil},
{"Деньги? Я в деле!", action=evil},
{"Просто позвольте мне и торговцу уйти отсюда, и вы останетесь живы!", action=function(npc, player) engine.Faction:setFactionReaction(player.faction, npc.faction, -100, true) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/chronomancy-bias-weave.lua.txt
newChat{ id="welcome",
text = [[Какую вид аномалии вы предпочитаете?]],
answers = {
{"Физическую",
action = function()
game.level.map:particleEmitter(game.player.x, game.player.y, 1, "temporal_teleport")
return set_bias({type = "physical", chance=chance})
end,
},
{"Искажающую",
action = function()
game.level.map:particleEmitter(game.player.x, game.player.y, 1, "temporal_teleport")
return set_bias({type = "Warp", chance=chance})
end,
},
{"Временную",
action = function()
game.level.map:particleEmitter(game.player.x, game.player.y, 1, "temporal_teleport")
return set_bias({type = "temporal", chance=chance})
end,
},
{"Не важно"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/chronomancy-see-threads.lua.txt
game.logPlayer(game.player, "#PURPLE#Парадокс уже разрушил другие временные циклы!")
game.logPlayer(game.player, "#LIGHT_BLUE#Вы выбираете временной цикл и перестраиваете вселенную по своему вкусу!")
return "welcome"
file/game/modules/tome.team/data/chats/command-staff.lua.txt
print("Just started the chat, and we apparently have o.factory_settings.")
print("Just started the chat, and there's no o.factory_settings")
sentient_responses = {
default = [[Привет. Как я могу помочь вам?]],
aggressive = [[Поспешите и взорвите врагов.]],
fawning = [[О, мудрый повелитель, научите меня, как я могу лучше услужить вам.]],
penitent = [[Разрешите загладить вину, магоподобный, за, ни с чем не сравнимый, нанесённый вам вред.]],
telos = [[Вы могли бы подобрать для меня дом получше. Я был достаточно счастлив в моём старом кристалле. Эта палка пахнет подмышками.]],
telos_full = [[Трепещите перед мощью Телоса!]],
}
return [[К какому аспекту души посоха обратиться?]]
end
return [[error!]] end
sentient_responses = {
default = [[О, я когда-то был могучим мистическим проводником. Могучий и рассеянный, как выясняется. Была небольшая авария с отражающим методом вливания душ Кугалы. Короче говоря, моя душа теперь застряла в этой палке, и душа, с которой я работал... ну, я не совсем понимаю, где он. Но я надеюсь, что мы никогда не встретимся с ним.]],
aggressive = [[Аргх! Напортачил с магией душ и дурень, которого я собирался пленить навеки, упорхнул. Моё тело, как и все цели моих заклинаний, намеренно или нет, сократилось до элементарной частицы. К счастью, у меня было приготовлено вместилище в посохе и ждущее беспризорную душу, так что я не совсем исчез. Но хватит болтовни. Давай поджарим кого-нибудь.]],
fawning = [[Мой прежний хозяин, хоть и могущественный чародей, не сравнимый с вашими достижениями и вашей славой, счёл нужным посадить меня в этот прекрасный посох, чтобы помочь ему в его работе. Увы, он давно пропал, но я не отчаиваюсь, потому что я нашёл всемогущего нового хозяина.]],
penitent = [[Я часть самой сущности мира, разорванной во время «Небесного огня». Я могу просветить тех, кто несёт меня.]],
telos = [[Что толку от бессмертия, если вы не можете даже рассказать? Ни один заслуживающий уважения архимаг не собирается выдумывать какую-то аморальную схему «жизнь после смерти», без включения своего рода возможность проинформировать о своих взглядах. И, кстати, ваши методы обращения с энергией находятся на уровне моей обуви. Лучше зубрите, если не хотите умереть бездарным и забытым.]],
telos_full = [[Что толку от бессмертия, если вы не можете даже рассказать? Ни один заслуживающий уважения архимаг не собирается выдумывать какую-то аморальную схему «жизнь после смерти», без включения своего рода возможность проинформировать о своих взглядах. И, кстати, ваши методы обращения с энергией находятся на уровне моей обуви. Лучше зубрите, если не хотите умереть бездарным и забытым.]],
}
return [[ошибка!]] end
sentient_responses = {
default = [[Конечно. Что за аспект души?]],
aggressive = [[Я настоятельно рекомендую подход мага и огненной стихии. Вы не найдёте ничего лучше для превращения куска мяса в облако пара.]],
fawning = [[Я живу ради служения, хотя моё употребление здесь слова «живу», пожалуй, безответственно.]],
penitent = [[Выбирайте с умом. Силы, выходящие за рамки вашего понимания стерпят только такое вмешательство в их тщательно спланированный естественный порядок.]],
telos = [[В моё время нам не нужно было менять посох поневоле. Мы выбирали стихию и оставались с ней, клянусь богами.]],
telos_full = [[В моё время нам не нужно было менять посох поневоле. Мы выбирали стихию и оставались с ней, клянусь богами.]],
}
return [[ошибка!]] end
sentient_responses = {
default = [[Безусловно. Вы, кстати, должны быть впечатлены тем, что я могу делать такие вещи. У большинства практикующих моё искусство будут трудности с этим. Что я должен изменить?]],
aggressive = [[Ладно, если это приведёт к быстрейшему взрыванию чего-либо. Что вы хотите, чтобы я изменил?]],
}
print("(in chat's set_element) state.set_element is ", state.set_element)
answers = {
{"Как так получилось, что вы разговариваете?", cond = function() return is_sentient() and not o.no_command end, jump="how_speak"},
{"Мне бы хотелось, чтобы вы представили другой аспект души.", cond = function() return is_sentient() and not o.no_command end, jump="which_aspect"},
{"Я бы хотел(а) изменить ваши основные свойства.", cond = function() return is_sentient() and not o.no_command end,
action = function()
coroutine.resume(co, true)
local SentientWeapon = require "mod.dialogs.SentientWeapon"
local ds = SentientWeapon.new({actor=game.player, o=o})
game:registerDialog(ds)
end,
},
}
answers[#answers+1] = {"Неважно."}
newChat{ id="welcome",
text = intro(o),
answers = answers,
}
newChat{ id="welcome",
text = intro(o),
answers = aspect_answers,
}
newChat{ id="how_speak",
text = how_speak(o),
answers = {
{"Ясно.", jump="welcome"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/conclave-vault-greeting.lua.txt
newChat{ id="welcome",
template = [[#LIGHT_GREEN#*Войдя в комнату, вы встречаете двух огромных огров, стоящих на страже и моргающих, словно только что пробудившихся от долгого сна. Заметив вас, они тут же встают по стойке смирно. Тот, что справа, говорит:*#WHITE#
ТЫ! Имя, ранг и знак различия. СЕЙЧАС ЖЕ.
]],
answers = {
{"Моё что?"},
{"[Атаковать]"},
}
}
newChat{ id="nargol-scum",
template = [[#LIGHT_GREEN#*Войдя в комнату, вы встречаете двух огромных огров, стоящих на страже и моргающих, словно только что пробудившихся от долгого сна. Заметив вас, они сразу же берутся за оружие.]],
answers = {
{"[Атаковать]", action=function(npc, player) npc:doEmote("#CRIMSON#НАРГОЛЬСКАЯ МРАЗЬ! НАС АТАКУЮТ!", 120) end},
}
}
newChat{ id="conclave",
template = [[#LIGHT_GREEN#*Войдя в комнату, вы встречаете двух огромных огров, стоящих на страже и моргающих, словно только что пробудившихся от долгого сна. Заметив вас, они тут же встают по стойке смирно. Тот, что справа, говорит:*#WHITE#
Ах! Подкрепление! Не знаю, сколько времени прошло, но я найду Астелрид наверху... подожди, а где остальные? #LIGHT_GREEN#*Он хмурится.*#WHITE# Каков твой идентификационный номер?
]],
answers = {
{"Подождите! Война окончена! Прошло уже тысячи лет, Конклав больше не существует!", jump="angry-conclave"},
{"[Атаковать]"},
}
}
newChat{ id="angry-conclave",
text = [[#LIGHT_GREEN#*Они смотрят друг на друга и хмурятся, доставая своё оружие. Тот, что слева, рычит:*#WHITE#
Ложь! Конклав не мог проиграть! Я не знаю, кто ты, но мы не можем допустить свидетелей!
]],
answers = {
{"[Атаковать]"},
}
}
file/game/modules/tome.team/data/chats/corruptor-quest.lua.txt
newChat{ id="quest",
text = [[Мы оба знаем силу чародейства. Мы оба жаждем власти. Я так много знаю, так многому могу научить вас.
Это место особенное. Покров реальности здесь тонкий, безвозвратно разрушен «Небесным огнём». Мы этим пользуемся. Мы можем черпать силу, выкачивая её из этого места, чтобы улучшить себя и провозгласить господство магии!]],
answers = {
{"Мир достаточно настрадался от «Небесного огня». Магия должна служить людям, а не порабощать их. Я не стану слушать тебя!", quick_reply="Быть по сему. Умри и даруй мне свою силу!"},
{"Что вы предлагаете?", jump="quest2"},
}
}
newChat{ id="quest2",
text = [[Давайте закончим этот бессмысленный бой. Вы когда-нибудь слышали о группе людей, называемых Зигурант?
Эти скитающиеся безумцы думающие, что магии не должно быть позволено существовать! Они боятся нас, они боятся нашей силы.
Давайте объединим наши усилия и раздавим дураков!]],
answers = {
{"Магия должна восторжествовать!", jump="quest3", action=function(npc, player)
if npc:isTalentActive(npc.T_DEMON_PLANE) then npc:forceUseTalent(npc.T_DEMON_PLANE, {ignore_energy=true}) end
if player:isTalentActive(player.T_DEMON_PLANE) then player:forceUseTalent(player.T_DEMON_PLANE, {ignore_energy=true}) end
if player:hasEffect(player.EFF_DREAMSCAPE) then player:removeEffect(player.EFF_DREAMSCAPE, true) end
end},
{"Магия имеет своё предназначение. Эти люди не правы, но вы, кажется, ещё хуже.", quick_reply="Тогда вы должны оставить... ЭТОТ МИР! УМРИ!"},
}
}
newChat{ id="quest3",
text = [[Хорошо. Перед вашим... несвоевременным прибытием мы готовили нападение на главный тренировочный лагерь Зигуранта, на южном берегу моря Пояса.
Пойдёмте с нами. Давайте уничтожим их!
Я открою портал в Зигур и резня начнётся!]],
answers = {
{"Я готов(а)!", action=function(npc, player)
if game.zone.short_name ~= "mark-spellblaze" then return "quest3" end
npc:disappear()
player:grantQuest("anti-antimagic")
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/derth-attack-over.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Полурослик появляется из своего укрытия.*#WHITE#
Вы убили их всех? Теперь мы в безопасности? О, пожалуйста, скажите мне, что это был плохой сон!]],
answers = {
{"Будьте спокойны. Я расправился с этими чудовищами. Вы знаете, откуда они пришли и чего искали?", jump="quest"},
}
}
newChat{ id="quest",
text = [[Из ниоткуда! С неба!
Я не знаю. Я ухаживал за своим урожаем, за пределами города, когда услышал крики. Когда я вступил в город, я увидел тёмное облако. Эти... эти... что-то вышло из него в разрывах молний!]],
answers = {
{"Похоже, они перестали выходить. Я поищу кого-нибудь, кто мог бы помочь избавиться от этого отвратительного облака.", jump="quest2"},
}
}
newChat{ id="quest2",
text = [[Спасибо! Сегодня вы спасли многих людей!
Я слышал слухи о скрытом от всего света городе мудрых и могущественных людей где-то в горах. Может быть, они смогли бы помочь? Если они вообще существуют...
Есть ещё люди какого-то Зигура, которые утверждают, что борются с магией. Почему они не здесь?]],
answers = {
{"Вы имеете в виду Зигурант. Это как бы я.", cond=function(npc, player) return player:isQuestStatus("antimagic", engine.Quest.DONE) end, jump="zigur"},
{"Я не позволю вам пропасть.", action=function(npc, player) player:hasQuest("lightning-overload"):done_derth() end},
}
}
newChat{ id="zigur",
text = [[Ну тогда, пожалуйста, сделайте что-нибудь с этой злой магией!]],
answers = {
{"Ладно!", action=function(npc, player) player:hasQuest("lightning-overload"):done_derth() end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/dreadfell-ambush.lua.txt
newChat{ id="ambush",
text = [[#VIOLET#*Как только вы вышли из Обители ужаса, вы столкнулись с бандой орков*#LAST#
Ты! Отдай нам посох, СЕЙЧАС ЖЕ и мы гарантируем тебе лёгкую смерть!]],
answers = {
{"О чём вы говорите?", jump="what"},
{"Зачем вам он?", jump="why"},
{"#LIGHT_GREEN#[Атаковать]"},
}
}
newChat{ id="what",
text = [[Не прикидывайся глупеньким перед Укруком! В атаку!]],
answers = {
{"#LIGHT_GREEN#[Атаковать]"},
}
}
newChat{ id="why",
text = [[Это не твоя забота! В атаку!]],
answers = {
{"#LIGHT_GREEN#[Атаковать]"},
}
}
return "ambush"
file/game/modules/tome.team/data/chats/east-portal-end.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Когда вы вышли из портала, перед ним вас ждал одетый в мантию человек.*#WHITE#
Рад встрече, @playername@!
Я - Мерэнас, глашатай Анголвена. Я здесь по просьбе короля Толака, он волновался, когда вы не возвратились.
Мы наблюдали за Таннен какое-то время и были рады увидеть, что вы раскрыли его истинную сущность и остановили его. Мы благодарны и я думаю, что мы можем заплатить вам.
Мы изучили его исследования портала и если вы дадите мне компоненты, то я создам портал для вас, здесь и сейчас!]],
answers = {
{"Да, Таннен был не совсем дружественным. Я благодарю вас за вашу помощь. Вот компоненты. [вручите ему алмаз и церемониальный клинок]", action=function(npc, player) player:hasQuest("east-portal"):create_portal(npc, player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/eidolon-plane.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит, по фигуре, гуманоид, заполненный 'ничем'. Это, кажется, уставилось на вас.*#WHITE#
Я Эйдолон, и вам здесь не рады!
Независимо от того, как вы попали сюда, #{bold}#НЕ ВОЗВРАЩАЙТЕСЬ!
УБИРАЙСЯ ВОН!
#{normal}#
.]],
answers = {
{"...", action=function() game.level.data.eidolon_exit(false) end},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит, по фигуре, гуманоид, заполненный 'ничем'. Это, кажется, уставилось на вас.*#WHITE#
Я пригласил вас сюда в момент своей смерти. Я Эйдолон.
Я считаю, что вы достойны моего интереса. Я буду следить за вашими дальнейшими шагами.
Вы можете отдохнуть здесь и когда будете готовы, я отправлю вас обратно на материальный план.
Но не злоупотребляйте моей помощью. Я не ваш слуга и когда-нибудь я могу просто позволить вам умереть.
Что касается ваших вероятных вопросов, они останутся без ответа. Я помогу, но я здесь не для того, чтобы объяснять, почему.]],
answers = {
{"Спасибо. Я отдохну какое-то время."},
{"Спасибо. Я готов(а) вернуться!",
cond=function() return game.level.source_level and not game.level.source_level.no_return_from_eidolon end,
action=function() game.level.data.eidolon_exit(false) end
},
{"Спасибо, но боюсь, я всё равно не выживу, вы можете отправить меня в другое место, пожалуйста?",
cond=function() return game.level.source_level and not game.level.source_level.no_return_from_eidolon and (not game.level.source_level.data or not game.level.source_level.data.no_worldport) end,
action=function() game.level.data.eidolon_exit(true) end
},
{"Спасибо, но боюсь, я всё равно не выживу, вы можете отправить меня обратно, куда-нибудь на уровне, пожалуйста?",
cond=function() return game.level.source_zone and game.level.source_zone.infinite_dungeon end,
action=function() game.level.data.eidolon_exit("teleport") end
},
{"Спасибо, я готов(а) вернуться!",
cond=function() return not game.level.source_level or game.level.source_level.no_return_from_eidolon end,
jump="jump_error",
},
{"Спасибо, но мне надоела такая жизнь, больше не хочу, пожалуйста, отпустите меня.", jump="die"},
}
}
newChat{ id="jump_error",
text = [[Кажется потоки времени и пространства были нарушены...
Я постараюсь отправить вас в безопасное место.]],
answers = {
{"Спасибо.", action=function(npc, player) game:changeLevel(1, "wilderness") end},
}
}
newChat{ id="die",
text = [[#LIGHT_GREEN#*Оно смотрит на вас странным образом.*#WHITE#
У меня... были планы для вас, но я не могу идти против вашей воли. Знайте, что ваша судьба ждёт вас.
Вы уверены?]],
answers = {
{"Просто позвольте мне уйти, пожалуйста.", action=function(npc, player)
local src = game.player
game:getPlayer(true):die(game.player, {special_death_msg=("asked the Eidolon to let %s die in peace"):format(game.player.female and "her" or "him")})
while game.party:findSuitablePlayer() do
game.player:die(src, {special_death_msg="brought down by Eidolon"})
end
end},
{"Вообще-то нет, возможно, жить всё ещё стоит!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/elisa-orb-scrying.lua.txt
newChat{ id="id_list",
text = header..table.concat(list, "\n")..footer,
answers = { {done} }
}
newChat{ id="welcome",
text = [[Вы погружаете своё сознание в Путь и позволяете знанию втекать.]],
answers = {
{"[Видения и знания втекают в вас.]", cond=can_auto_id,
action=auto_id("", "", "[Вы мысленно благодарите Путь.]")
},
{"[Вы не получили никаких знаний.]", cond=can_not_auto_id},
}
}
newChat{ id="welcome",
text = [[Вы делаете паузу и вызываете в памяти прошлые воспоминания.]],
answers = {
{"[Видения и знания втекают в вас.]", cond=can_auto_id,
action=auto_id("", "", "[done]")
},
{"[Вы не узнали ничего нового.]", cond=can_not_auto_id},
}
}
newChat{ id="welcome",
text = [[О, привет @playername@, у вас есть что-то новое для меня?]],
answers = {
{"Да, Элиза, не могли бы вы взглянуть на эти объекты? [Показать ей предметы, которые шар не смог идентифицировать]", cond=can_auto_id,
action=auto_id("Let's see what have you got here...\n", "\n\nThat is very nice, @playername@!", "Thank you, Elisa!")
},
{"Ээ, нет... извините, я просто хотел(а) услышать дружеский голос.", jump="friend"},
{"Еще нет, сожалею!"},
}
}
newChat{ id="friend",
text = [[#LIGHT_GREEN#*Вы слышите что-то похожее на сдавленный смешок*#WHITE#
Ох, вы #{bold}#ТА-А-К#{normal}# хороши!]],
answers = {
{"Прощайте, Элиза!"},
}
}
file/game/modules/tome.team/data/chats/elisa-shop.lua.txt
newChat{ id="id_list",
text = [[Давайте посмотрим, что у вас здесь...
]]..table.concat(list, "\n")..[[
Это очень мило, @playername@!]],
answers = {
{"Спасибо, Элиза!", jump=do_quest and "quest" or nil},
}
}
newChat{ id="welcome",
text = [[Привет друг, что я могу сделать для вас?]],
answers = {
{"Не могли бы вы взглянуть на эти объекты, пожалуйста? [показать ей неопознанные предметы]", cond=can_auto_id, action=auto_id},
{"Ничего, прощайте."},
}
}
newChat{ id="quest",
text = [[Подождите, @playername@, вы кажетесь настоящим авантюристом. Может быть, мы сможем помочь друг другу.
Видите ли, мне #{bold}#НРАВИТСЯ#{normal}# изучать новые знания и находить старые артефакты, но я точно не авантюрист и меня наверняка убьют там.
Так что, возьмите эту сферу (#LIGHT_GREEN#*он даёт вам сферу предсказаний*#WHITE#). Используйте её, чтобы поговорить со мной из любой точки мира! Так вы сможете показать мне свои новые блестящие находки!
Я увижу много интересных вещей, а вы узнаете, что делают эти вещи. Мы оба выигрываем! Разве это не приятно?
О да, сфера также идентифицирует обычные предметы, пока вы её носите.]],
answers = {
{"Ого, спасибо, Элиза. Это очень приятно!", action=function(npc, player)
player:setQuestStatus("first-artifact", engine.Quest.COMPLETED)
local orb = game.zone:makeEntityByName(game.level, "object", "ORB_SCRYING")
if orb then player:addObject(player:getInven("INVEN"), orb) orb:added() orb:identify(true) end
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/escort-quest-start.lua.txt
newChat{ id="welcome",
text = text,
answers =
{
{"#LIGHT_GREEN#[Притворитесь, что помогаете, но когда наступит время используйте метод Зигуранта и сделайте из портала один лишь пшик. @npcname@ будет отправлен в Зигур, чтобы «разобраться» должным образом.]#WHITE#\nВедите. Я буду защищать вас.", action=function(npc, player)
player:hasQuest(npc.quest_id).to_zigur = true
npc.ai_state.tactic_leash = 100
game.party:addMember(npc, {
control="order",
type="escort",
title="Escort",
orders = {escort_portal=true, escort_rest=true},
})
end},
{"Уходите. Я не помогаю мерзким таинственным личностям!", action=function(npc, player)
game.player:registerEscorts("lost")
npc:disappear()
npc:removed()
player:hasQuest(npc.quest_id).abandoned = true
player:setQuestStatus(npc.quest_id, engine.Quest.FAILED)
end},
},
}
newChat{ id="welcome",
text = text,
answers =
{
{"Ведите. Я буду защищать вас.", action=function(npc, player)
npc.ai_state.tactic_leash = 100
game.party:addMember(npc, {
control="order",
type="escort",
title="Escort",
orders = {escort_portal=true, escort_rest=true},
})
end},
{"#LIGHT_GREEN#[Притворитесь, что помогаете, но когда наступит время используйте метод Зигуранта и сделайте из портала один лишь пшик. @npcname@ будет отправлен в Зигур, чтобы «разобраться» должным образом.]#WHITE#\nВедите. Я буду защищать вас.", action=function(npc, player)
player:hasQuest(npc.quest_id).to_zigur = true
npc.ai_state.tactic_leash = 100
game.party:addMember(npc, {
control="order",
type="escort",
title="Escort",
orders = {escort_portal=true, escort_rest=true},
})
end},
{"Уходите. Я не забочусь о слабых.", action=function(npc, player)
game.player:registerEscorts("lost")
npc:disappear()
npc:removed()
player:hasQuest(npc.quest_id).abandoned = true
player:setQuestStatus(npc.quest_id, engine.Quest.FAILED)
end},
},
}
newChat{ id="welcome",
text = text,
answers =
{
{"Ведите. Я буду защищать вас.", action=function(npc, player)
npc.ai_state.tactic_leash = 100
game.party:addMember(npc, {
control="order",
type="escort",
title="Escort",
orders = {escort_portal=true, escort_rest=true},
})
end},
{"Уходите. Я не забочусь о слабых.", action=function(npc, player)
game.player:registerEscorts("lost")
npc:disappear()
npc:removed()
player:hasQuest(npc.quest_id).abandoned = true
player:setQuestStatus(npc.quest_id, engine.Quest.FAILED)
end},
},
}
return "welcome"
file/game/modules/tome.team/data/chats/escort-quest.lua.txt
game.party:reward("Выберите члена отряда получающего награду:", function(player)
player.inc_stats[i] = (player.inc_stats[i] or 0) + reward.stats[i]
player:onStatChange(i, reward.stats[i])
player.changed = true
player:hasQuest(npc.quest_id).reward_message = ("improved %s by +%d"):format(npc.stats_def[i].name, reward.stats[i])
end)
answers[#answers+1] = {("[Improve %s by +%d]"):format(npc.stats_def[i].name, reward.stats[i]),
jump="done",
action=doit,
on_select=function(npc, player)
game.tooltip_x, game.tooltip_y = 1, 1
local TooltipsData = require("mod.class.interface.TooltipsData")
game:tooltipDisplayAtMap(game.w, game.h, TooltipsData["TOOLTIP_"..npc.stats_def[i].short_name:upper()])
end,
}
game.party:reward("Выберите члена отряда получающего награду:", function(player)
player:attr("combat_"..save.."resist", v)
player.changed = true
player:hasQuest(npc.quest_id).reward_message = ("improved %s save by +%d"):format(saves_name[save], v)
end)
answers[#answers+1] = {("[Improve %s save by +%d]"):format(saves_name[save], v),
jump="done",
action=doit,
on_select=function(npc, player)
game.tooltip_x, game.tooltip_y = 1, 1
local TooltipsData = require("mod.class.interface.TooltipsData")
game:tooltipDisplayAtMap(game.w, game.h, TooltipsData["TOOLTIP_"..saves_tooltips[save]:upper().."_SAVE"])
end,
}
game.party:reward("Выберите члена отряда получающего награду:", function(player)
if game.player:knowTalentType(t.type[1]) == nil then player:setTalentTypeMastery(t.type[1], 0.8) end
player:learnTalent(tid, true, level, {no_unlearn=true})
if t.hide then player.__show_special_talents = player.__show_special_talents or {} player.__show_special_talents[tid] = true end
player:hasQuest(npc.quest_id).reward_message = ("%s talent %s (+%d level(s))"):format(game.player:knowTalent(tid) and "improved" or "learnt", t.name, level)
end)
game.party:reward("Выберите члена отряда получающего награду:", function(player)
if player:knowTalentType(tt) == nil then player:setTalentTypeMastery(tt, mastery - 1 + player:getTalentTypeMastery(tt)) end
player:learnTalentType(tt, false)
player:hasQuest(npc.quest_id).reward_message = ("gained talent category %s (at mastery %0.2f)"):format(cat:capitalize().." / "..tt_def.name:capitalize(), mastery)
end)
newChat{ id="welcome",
text = reward.is_antimagic and [[В последний момент вы призываете силу природы. Портал тихо шипит и перемещает @npcname@ в Зигур.
Вы чувствуете как природа благодарит вас.]] or
[[Благодарю вас, мой друг. Не думаю, что смог бы выжить без вас.
Позвольте мне вознаградить вас:]],
answers = generate_rewards(),
}
newChat{ id="done",
text = [[Вот и всё. Прощайте!]],
answers = {
{"Спасибо"},
},
}
return "welcome"
file/game/modules/tome.team/data/chats/fallen-aeryn.lua.txt
game.logPlayer(player, "%s хватает её амулет и исчезает в вихре магической энергии.", npc.name:capitalize())
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Она лежит, почти мёртвая, у ваших ног*#WHITE#
Итак, теперь вы убьёте меня и завершите цикл разрушения?]],
answers = {
{"О чём вы говорите? Зачем вы напали на меня?", jump="what"},
{"Говори и я пощажу тебя. Зачем ты напала на меня?", jump="what"},
{"[Добить её]", action=kill},
}
}
newChat{ id="what",
text = [[Вы... вы не знаете?
Через несколько часов после того, как вы вошли в это помещение, орки напали на нас. И не только они - среди них были демоны. Нас сокрушили! Истребили!
Моей земли больше нет! Всё потому, что вы не смогли остановить их в Обугленном шраме! Вы подвели нас! Люди погибали, чтобы защитить вас, а вы не справились!
#LIGHT_GREEN#*Она начинает плакать...*#WHITE#]],
answers = {
{"Я признаю свои ошибки и хочу исправить их. Пожалуйста, дайте мне пройти. Я не могу спасти твой народ, но я могу сделать так, чтобы его гибель что-то значила!", action=spare},
{"[Добить её]", action=kill},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/gates-of-morning-main.lua.txt
newChat{ id="welcome",
text = [[Что я могу сделать для вас?]],
answers = {
{"Леди Айрин, наконец-то я дома! [рассказать ей вашу историю]", jump="return", cond=function(npc, player) return player:hasQuest("start-sunwall") and player:isQuestStatus("start-sunwall", engine.Quest.COMPLETED, "slazish") and not player:isQuestStatus("start-sunwall", engine.Quest.COMPLETED, "return") end, action=function(npc, player) player:setQuestStatus("start-sunwall", engine.Quest.COMPLETED, "return") end},
{"Расскажите мне подробнее про Утренние Врата.", jump="explain-gates", cond=function(npc, player) return player.faction ~= "sunwall" end},
{"Перед тем как попасть сюда, мне встретились члены Солнечной стены в Мадж'Эяле. Вы знаете об этом?", jump="sunwall_west", cond=function(npc, player) return game.state.found_sunwall_west and not npc.been_asked_sunwall_west end, action=function(npc, player) npc.been_asked_sunwall_west = true end},
{"Мне нужна помощь в поиске подсказок к нахождению посоха.", jump="clues", cond=function(npc, player) return game.state:isAdvanced() and not player:hasQuest("orc-pride") end},
{"Я уничтожил вождей кланов орков.", jump="prides-dead", cond=function(npc, player) return player:isQuestStatus("orc-pride", engine.Quest.COMPLETED) end},
{"Я вернулся из Обугленного шрама, куда орки забрали посох.", jump="charred-scar", cond=function(npc, player) return player:hasQuest("charred-scar") and player:hasQuest("charred-scar"):isCompleted() end},
{"Умирающий паладин дал мне эту карту. Здесь что-то о гнездящихся в ямах орках. [Расскажите ей о случившемся]", jump="orc-breeding-pits", cond=function(npc, player) return player:hasQuest("orc-breeding-pits") and player:isQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out") and not player:isQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out-done") end},
{"К сожалению, мне надо идти!"},
}
}
newChat{ id="explain-gates",
text = [[Существуют две основные группы населения - люди и эльфы.
Люди пришли сюда в эпоху Погребальных костров. Наши предки были частью экспедиции Мардропа пытающихся разузнать о судьбе земель Налорен оказавшихся под водой. Их корабль потерпел крушение, а выжившие высадились на этом континенте.
Они встретили группу эльфов, по всей видимости, туземцев и подружившись с ними основали Солнечную стену и Утренние Врата.
Затем пришла орда орков и с тех пор мы сражаемся за наше выживание.]],
answers = {
{"Спасибо, миледи.", jump="welcome"},
},
}
newChat{ id="sunwall_west",
text = [[А-а, так они выжили? Это хорошие новости...]],
answers = {
{"Продолжай.", jump="sunwall_west2"},
{"А на самом деле...", jump="sunwall_west2", cond=function(npc, player) return game.state.found_sunwall_west_died end},
},
}
newChat{ id="sunwall_west2",
text = [[Люди, которых вы видели, скорее всего, являются добровольцами ранних экспериментов Земеккиса, касающихся портала.
Он - маг, который обитает здесь, в Солнечной Стене, эксцентричный, но опытный, тот, который считает, что создание нового портала в Мадж'Эяле вполне возможно.
Помимо нескольких ранних попыток с сомнительными результатами ему больше ничего не удалось. Тем не менее, очень приятно слышать, что добровольцы его экспериментов живы, независимо от их местонахождения. В конце концов, мы все под одним небом.
Собственно... может это пойдёт вам на пользу, если встретите Земеккиса. Его наверняка бы заинтересовала Сфера Множества Путей, которой вы обладаете. Он живёт в маленьком домике, чуть севернее.]],
answers = {
{"Может я и навещу его. Спасибо.", jump="welcome"},
},
}
newChat{ id="prides-dead",
text = [[Новость действительно дошла до меня. Я с трудом верю, так долго мы воюем с ордой.
Сейчас они мертвы? Рядом только один @playerdescriptor.race@? Поистине я поражена вашей силой.
Пока вы были заняты, ложа конец деяниям орков, нам удалось узнать отдельные кусочки правды от пленного орка.
Он говорил о щите, защищающем Высокий Пик. И вроде бы контролируется «сферами власти», которые имеются в наличии у вождей кланов.
Поищите, если вы ещё не нашли их.
Он также сказал, что единственный способ взойти на Пик и деактивировать щит, через Туннели Слизи, находящиеся где-то в расположении одного из кланов, возможно, Грушнака.
]],
answers = {
{"Спасибо, миледи. Я поищу туннель и внутри этого Пика.", action=function(npc, player)
player:setQuestStatus("orc-pride", engine.Quest.DONE)
player:grantQuest("high-peak")
end},
},
}
newChat{ id="clues",
text = [[Как бы я хотела помочь, но наши силы и так рассредоточены; мы не сможем оказать вам помощь напрямую.
Но я объясню, как организована орда.
Недавно мы слышали, как орда говорит о новом хозяине или хозяевах. Они могут быть теми, кто стоит за вашим таинственным посохом.
Мы считаем, что центр их силы - Высокий Пик, в середине континента. Но он недоступен и укрыт каким-то щитом.
Вы должны исследовать оплоты орды. Возможно, вы найдёте больше информации о Высоком Пике, и любой орк, которого вы убьёте - ещё на один меньше нападут на нас.
Известные оплоты орды:
- Клан Рак'Шора, на западе южной пустыни
- Клан Горбата, в горах южной пустыни
- Клан Вура, на северо-востоке
- Клан Грушнака, на восточном склоне Высокого пика]],
-- - Группа испорченных людей живёт в Восточном порте на южном побережье; они контактируют с ордой
answers = {
{"Я разузнаю.", jump="relentless", action=function(npc, player)
player:setQuestStatus("orc-hunt", engine.Quest.DONE)
player:grantQuest("orc-pride")
game.logPlayer(game.player, "Айрин отмечает известные места на вашей карте.")
end},
},
}
newChat{ id="relentless",
text = [[Прежде чем вы уйдёте, я могу оказать вам ещё одну небольшую услугу. Ваш рассказ тронул меня, а звёзды одобряют ваше упорство. Примите их благословение и пусть ничто не остановит вас в ваших поисках.
#LIGHT_GREEN#*Она прикасается к вашему лбу прохладной рукой, и вы чувствуете прилив сил*
]],
answers = {
{"Я не допущу, чтобы остался хоть один орк.", jump="welcome", action=function(npc, player)
player:learnTalent(player.T_RELENTLESS_PURSUIT, true, 1, {no_unlearn=true})
game.logPlayer(game.player, "#VIOLET#Вы узнали талант Неустанная Погоня.")
end},
},
}
newChat{ id="charred-scar",
text = [[Я слышала об этом. Хорошие люди отдали свои жизни ради этого. Надеюсь, что это того стоило.]],
answers = {
{"Да, миледи, они замедлили орков, так что мне удалось пробраться в самое сердце вулкана. *#LIGHT_GREEN#Рассказать ей о произошедшем#WHITE#*", jump="charred-scar-success",
cond=function(npc, player) return player:isQuestStatus("charred-scar", engine.Quest.COMPLETED, "stopped") end,
},
{"Боюсь, я опоздал(а), но у меня всё же имеется некоторая ценная информация. *#LIGHT_GREEN#Рассказать ей о произошедшем#WHITE#*", jump="charred-scar-fail",
cond=function(npc, player) return player:isQuestStatus("charred-scar", engine.Quest.COMPLETED, "not-stopped") end,
},
},
}
newChat{ id="charred-scar-success",
text = [[Волшебники? Я никогда не слышала о них. Ходили слухи о новом повелителе орды, но, похоже, их два.
Спасибо вам за всё. Теперь, когда вы знаете, что искать, вы должны продолжить охоту.]],
answers = {
{"Я отомщу за ваших людей.", action=function(npc, player)
player:setQuestStatus("charred-scar", engine.Quest.DONE)
game:unlockBackground("aeryn", "High Sun Paladin Aeryn")
end}
},
}
newChat{ id="charred-scar-fail",
text = [[Волшебники? Я никогда не слышала о них. Ходили слухи о новом повелителе орды, но, похоже, их два.
Боюсь, что с той силой, которую они получили сегодня, будет ещё сложнее их остановить, но у нас нет выбора.]],
answers = {
{"Я отомщу за ваших людей.", action=function(npc, player) player:setQuestStatus("charred-scar", engine.Quest.DONE) end}
},
}
newChat{ id="orc-breeding-pits",
text = [[Ах! Это замечательно! Наконец-то луч надежды среди тьмы. Я поручу это своим элитным отрядам. Спасибо, @playername@, возьмите это в знак благодарности.]],
answers = {
{"Удачи.", action=function(npc, player)
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out-done")
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED)
for i = 1, 5 do
local ro = game.zone:makeEntity(game.level, "object", {ignore_material_restriction=true, type="gem", special=function(o) return o.material_level and o.material_level >= 5 end}, nil, true)
if ro then
ro:identify(true)
game.logPlayer(player, "Aeryn gives you: %s", ro:getName{do_color=true})
game.zone:addEntity(game.level, ro, "object")
player:addObject(player:getInven("INVEN"), ro)
end
end
end}
},
}
return "welcome"
file/game/modules/tome.team/data/chats/gates-of-morning-welcome.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит красивая женщина, одетая в сияющие золотые доспехи*#WHITE#
Стойте! Вы явно чужой! Откуда вы? Утренние Врата последний бастион свободы в этих землях, так кто же вы? Шпион?]],
answers = {
{"Миледи, я действительно чужой(ая) в этих землях. Я с запада, из Мадж'Эяла.", jump="from",
cond=function(npc, player) return player:hasQuest("strange-new-world") and player:hasQuest("strange-new-world"):isCompleted("helped-fillarel") end},
{"Извините, я ухожу!"},
}
}
newChat{ id="from",
text = [[Мадж'Эял! На протяжении многих лет мы пытались связаться с вашими людьми и всегда терпели неудачу.
В любом случае, зачем вы здесь?]],
answers = {
{"Похоже, что я застрял(а) в этих незнакомых землях. #LIGHT_GREEN#*Расскажите ей о вашей охоте за орками и о встрече с Филларелом.*#WHITE#", jump="orcs"},
{"Паладины Солнца? Что вы имеете в виду? Там, откуда я родом, мы ничего такого не знаем.", jump="sun-paladins", cond=function() return profile.mod.allow_build.divine_sun_paladin end},
}
}
newChat{ id="sun-paladins",
text = [[Мы - могущественные воины Солнечной стены, направляем силу Солнца и объединяем её с боевым обучением.
В течение сотен лет мы стоим между ордой орков и свободными людьми. Наша численность уменьшается, но мы будем стоять твердо до нашего последнего вздоха.]],
answers = {
{"Вы полны благородства, миледи.", jump="from"},
}
}
newChat{ id="orcs",
text = [[Орки! Ну, тогда это ваш счастливый день. Весь этот континент кишит орками. Они объединились в орду и, по слухам, их вожди очень сильны.
Они свободно бродят по землям, постоянно нападая на нас.
@playername@, вы помогли одному из наших. Я предоставлю вам доступ в Утренние Врата и называю вас другом Солнечной Стены.]],
answers = {
{"Спасибо, миледи.", action=function(npc, player)
world:gainAchievement("STRANGE_NEW_WORLD", game.player)
player:setQuestStatus("strange-new-world", engine.Quest.DONE)
local spot = game.level:pickSpot{type="npc", subtype="aeryn-main"}
npc:move(spot.x, spot.y, true)
npc.can_talk = "gates-of-morning-main"
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/golbug-explains.lua.txt
newChat{ id="welcome",
text = [[#VIOLET#*Открыв дверь, вы замечаете вдалеке огромного орка, покрытого как пламенем, так и льдом.*#LAST#
@playerdescriptor.race@! Тебе не следовало приходить! Тебя ждёт погибель!
Орда орков никогда, никому не уступит! У них есть сокровища, а ты ничего не сможешь сделать.]],
answers = {
{"Орда орков подчиняется хозяину? Ясно... и впрямь «орда»!", jump="mock"},
{"#LIGHT_GREEN#[Атаковать]"},
}
}
newChat{ id="mock",
text = [[Орда сама выбирает союзников. У неё нет хозяина! В АТАКУ!]],
answers = {
{"#LIGHT_GREEN#[Атаковать]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/jewelry-store.lua.txt
simplePopup("Не хватает денег", "цена "..price.." золота, вам нужно больше золота.")
simplePopup("Недостаточно денег", "Лиммиру требуется больше золота для магического золочения.")
print("Imbue third gem", gem3.name)
newChat{ id="welcome",
text = [[Добро пожаловать, @playername@, в мой магазин.]],
answers = {
{"Позвольте мне посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end, cond=function(npc, player) return npc.store and true or false end},
{"Я ищу особые украшения.", jump="jewelry"},
{"Итак, вы можете зарядить амулеты?", jump="artifact_jewelry", cond=function(npc, player) return npc.can_craft and player:hasQuest("master-jeweler") and player:isQuestStatus("master-jeweler", engine.Quest.COMPLETED, "limmir-survived") end},
{"Мне попался этот фолиант, он кажется особенным.", jump="quest", cond=function(npc, player) return npc.can_quest and player:hasQuest("master-jeweler") and player:hasQuest("master-jeweler"):has_tome(player) end},
{"Извините, мне нужно идти!"},
}
}
newChat{ id="jewelry",
text = [[Тогда вы находитесь в нужном месте, потому что я эксперт ювелир.
Если вы принесёте мне драгоценный камень и не магическое кольцо, я смогу вложить свойства камня в кольцо.
Есть небольшая плата, зависящая от уровня кольца и вам нужно кольцо того же качества, что и камень.]],
answers = {
{"Мне нужны ваши услуги.", action=imbue_ring},
{"Не сейчас, спасибо."},
}
}
newChat{ id="artifact_jewelry",
text = [[Да! Благодаря вам это место теперь свободно от скверны. Я останусь на этом острове изучать магическую ауру, и, как и было обещано, я создам для вас мощные амулеты.
Принесите мне не магический амулет и два разных драгоценных камня, и я превращу их в мощный амулет.
Это бесплатно, так как вы мне очень помогли, но я боюсь, что ритуал потребует золочения. Это будет равно примерно 390 золотым.]],
answers = {
{"Мне нужны ваши услуги.", action=artifact_imbue_amulet},
{"Не сейчас, спасибо."},
}
}
newChat{ id="quest",
text = [[#LIGHT_GREEN#*Он быстро проглядывает фолиант, выглядя при этом совершенно изумлённым.*#WHITE# Это удивительная находка! Поистине удивительная!
Благодаря этим знаниям я смогу создавать мощные амулеты. Однако для создания таких предметов требуется особое место.
Есть слухи о месте силы в южных горах. Старые легенды рассказывают о месте, где часть Зимней Луны растаяла, когда она приблизилась к солнцу и упала с неба.
На месте крушения образовалось озеро. Воды этого озера, насыщенной за века лунным светом, вполне достаточно для создания мощных артефактов!
Идите к озеру, а затем вызовите меня этим свитком. Я вернусь к изучению фолианта и жду вашего вызова.]],
answers = {
{"Посмотрим, найду ли я.", action=function(npc, player)
game.level:removeEntity(npc)
player:hasQuest("master-jeweler"):remove_tome(player)
player:hasQuest("master-jeweler"):start_search(player)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/keepsake-berethh-encounter.lua.txt
newChat{ id="berethh",
text = [[#VIOLET#*Перед вами стоит Берез. Его лицо не выражает эмоций, но его позы угрожающи.#LAST#
]],
answers = {
{"Кайлесс мёртв.", jump="response"}
}
}
newChat{ id="response",
text = [[Я не уверен, заслужили ли вы свою судьбу. Но я не могу позволить вам жить.]],
answers = {
{
"Тогда вы умрёте, как и Кайлесс. #LIGHT_GREEN#[Атаковать]#LAST#",
action=function(npc, player)
player:hasQuest("keepsake"):on_evil_choice(player)
end
},
{
"Мне нужна ваша помощь. Я хочу превозмочь своё проклятие.",
action=function(npc, player)
player:hasQuest("keepsake"):on_good_choice(player)
end,
jump="attack"
},
{
"Я не хочу убивать вас.",
jump="attack"
}
}
}
newChat{ id="attack",
text = [[#VIOLET#*Берез игнорирует ваши слова, снимает с плеча лук и готовится атаковать.*#LAST#]],
answers = {
{"#LIGHT_GREEN#[Атаковать]"},
}
}
return "berethh"
file/game/modules/tome.team/data/chats/keepsake-caravan-destroyed.lua.txt
newChat{ id="caravan",
text = [[#VIOLET#*Вы смотрите, как умирает последний член каравана и видите ненависть, что заполняет его глаза.*#LAST#
Мы должны были прикончить тебя в тот день. Ты не заслуживаешь милосердия!]],
answers = {
{
"И от меня пощады не ждите. #LIGHT_GREEN#[Добить его]#LAST#",
action=function(npc, player)
player:hasQuest("keepsake"):on_evil_choice(player)
player:hasQuest("keepsake"):on_caravan_destroyed_chat_over(player)
end
},
{
"Я сожалею. #LIGHT_GREEN#[Help him]#LAST#",
action=function(npc, player)
player:hasQuest("keepsake"):on_good_choice(player)
end,
jump="apology"
},
}
}
newChat{ id="apology",
text = [[#VIOLET#*Прежде чем вы успеваете ему помочь, он падает на землю и умирает.*#LAST#]],
answers = {
{
"...",
action=function(npc, player)
player:hasQuest("keepsake"):on_caravan_destroyed_chat_over(player)
end,
},
}
}
return "caravan"
file/game/modules/tome.team/data/chats/keepsake-kyless-death.lua.txt
newChat{ id="kyless",
text = [[#VIOLET#*Кайлесс умирает на полу. В руке у него книга.*#LAST#
Пожалуйста! Прежде чем я умру, у меня есть одна просьба. Уничтожьте книгу. Это не я. Книга вызвала всё это. Она должна быть уничтожена!]],
answers = {
{
"Сделаю. #LIGHT_GREEN#[Уничтожить книгу]#LAST#",
action=function(npc, player)
player:hasQuest("keepsake"):on_good_choice(player)
end,
jump="destroy_book"
},
{
"Извините, но мне она нужна. #LIGHT_GREEN#[Забрать книгу]#LAST#",
action=function(npc, player)
player:hasQuest("keepsake"):on_evil_choice(player)
player:hasQuest("keepsake"):on_keep_book(player)
end,
jump="keep_book"
}
}
}
newChat{ id="destroy_book",
text = [[#VIOLET#*Вы уничтожаете книгу. Когда вы завершаете, вы поднимаете взгляд и замечаете, что Кайлесс уже мёртв.*#LAST#]],
answers = {
{"Прощай, Кайлесс."},
}
}
newChat{ id="keep_book",
text = [[#VIOLET#*Вы забираете книгу себе. Когда вы завершаете, вы поднимаете взгляд и замечаете, что Кайлесс уже мёртв.*#LAST#]],
answers = {
{"Прощай, Кайлесс."},
}
}
return "kyless"
file/game/modules/tome.team/data/chats/last-hope-elder.lua.txt
newChat{ id="welcome",
text = [[Добро пожаловать, @playername@, в Последнюю Надежду. Путешественник, пожалуйста, побыстрее, поскольку моё время драгоценно.]],
answers = {
{"Мне, во время путешествий, попался странный посох (#LIGHT_GREEN#*Подробно описать его*#LAST#) Он выглядел очень старым и очень могучим. Мне не хватило смелости использовать его.", jump="found_staff", cond=function(npc, player) return player:isQuestStatus("staff-absorption", engine.Quest.PENDING) end},
{"Охота за посохом привела меня на континент, далеко на востоке, доступный только при помощи портала. Недавно, именно через такой портал меня перенесло сюда, и я за инструкциями о том, как построить аналогичный портал здесь, в Последней надежде, чтобы сделать возможным обратное путешествие. Мне кажется, что эльфы были бы рады торговле с западом.", jump="east_portal", cond=function(npc, player) local q = player:hasQuest("east-portal"); return q and not q:isCompleted("talked-elder") end},
{"Ничего, извините. До свидания!"},
}
}
newChat{ id="found_staff",
text = [[#LIGHT_GREEN#*Какое-то время он хранил молчание*#WHITE# По сути, вы правильно сделали, придя сюда.
Посох, который вы описали мне, напоминает мне артефакт огромной силы из античных времён. Могу я взглянуть на него?]],
answers = {
{"Вот. #LIGHT_GREEN#*Рассказать ему о стычке с орками*#LAST# Вы должны сохранить его. Я чувствую его силу, и было бы безопаснее, если бы он охранялся силами королевства.",
jump="given_staff", cond=function(npc, player) return game.party:findInAllPartyInventoriesBy("define_as", "STAFF_ABSORPTION") and player:isQuestStatus("staff-absorption", engine.Quest.COMPLETED, "survived-ukruk") or false end},
{"Боюсь, я потерял(а) его. #LIGHT_GREEN#*Рассказать ему о стычке с орками*",
jump="lost_staff", cond=function(npc, player) return player:isQuestStatus("staff-absorption", engine.Quest.COMPLETED, "ambush-died") end},
{"Он у меня был, но куда-то делся. Может, это из-за орков, с которыми я столкнулся(лась)...",
jump="lost_staff", fallback=true, cond=function(npc, player) return player:hasQuest("staff-absorption") end},
}
}
newChat{ id="given_staff",
text = [[Я действительно поражён вашей силой; пережить такую стычку - настоящий подвиг.
Что касается орков, это вызывает глубокую обеспокоенность. Мы не видели ни одного в течение восьмидесяти лет... могли ли они прибыть с дальнего востока?
В любом случае, ещё раз спасибо, @playername@, за вашу помощь.]],
answers = {
{"Благодарю вас, милорд.", action=function(npc, player)
local mem, o, item, inven_id = game.party:findInAllPartyInventoriesBy("define_as", "STAFF_ABSORPTION")
if mem and o then
mem:removeObject(inven_id, item, true)
o:removed()
end
player:setQuestStatus("staff-absorption", engine.Quest.DONE)
world:gainAchievement("A_DANGEROUS_SECRET", player)
end, jump="orc_hunt"},
}
}
newChat{ id="lost_staff",
text = [[Орки?! На Западе?! Это очень тревожно! Мы не видели ни одного почти восемьдесят лет. Они, должно быть, прибыли с дальнего востока...
Но не позволяйте мне беспокоить вас. Вы принесли важные новости, и вам повезло остаться в живых.]],
answers = {
{"Благодарю вас, милорд.", action=function(npc, player)
player:setQuestStatus("staff-absorption", engine.Quest.DONE)
world:gainAchievement("A_DANGEROUS_SECRET", player)
end, jump="orc_hunt"},
}
}
newChat{ id="orc_hunt",
text = [[До нас дошла молва, от гномов, о том, что орки всё ещё могут находиться в старом королевстве Рекнор, в Железном троне.
Я знаю, что вы прошли через многое, но нам нужен кто-то, кто бы исследовал и определил, есть ли здесь связь с посохом.]],
answers = {
{"Я проверю эти шахты.", action=function(npc, player)
player:grantQuest("orc-hunt")
end},
}
}
newChat{ id="east_portal",
text = [[Это удивительно! Я знаю нескольких крупных торговцев, у которых потекут слюнки при одной только мысли об открытии новых торговых путей. Но скажите мне, как ваши поиски посоха?]],
answers = {
{"Посох возвращён, а виновные убиты. Они больше не будут беспокоить нас. [Рассказать ему всю историю]", jump="east_portal_winner", cond=function(npc, player) return player:isQuestStatus("high-peak", engine.Quest.DONE) end},
{"Охота продолжается. Строительство портала окажет большую помощь в возвращении посоха.", jump="east_portal_hunt", cond=function(npc, player) return not player:isQuestStatus("high-peak", engine.Quest.DONE) end},
}
}
newChat{ id="east_portal_winner",
text = [[Отлично! Ну что ж, что касается, этого удивительного, портала, я боюсь, что люди в значительной степени забыли, что они когда-то знали о великой магии древних. Я знаю только одного человека в этих землях, который мог бы помочь вам, мудрый человек и недавно прибывший в Последнюю надежду - это Таннен. Он утверждает, что он родом из Анголвена, предполагаемого убежища для практикующих магию и мистицизм. Он прибыл всего несколько месяцев назад со сказочным богатством и уже построил свою башню в северной части города. Я мало что знаю о нём, но если ему можно верить, то это ваша единственная надежда.]],
answers = {
{"Благодарю вас.", action=function(npc, player) player:setQuestStatus("east-portal", engine.Quest.COMPLETED, "talked-elder") end},
}
}
newChat{ id="east_portal_hunt",
text = [[В таком случае давайте действовать как можно быстрее. Теперь, что касается, этого удивительного, портала, я боюсь, что люди в значительной степени забыли, что они когда-то знали о великой магии древних. Я знаю только одного человека в этих землях, который мог бы помочь вам, мудрый человек и недавно прибывший в Последнюю надежду - это Таннен. Он утверждает, что он родом из Анголвена, предполагаемого убежища для практикующих магию и мистицизм. Он прибыл всего несколько месяцев назад со сказочным богатством и уже построил свою башню в северной части города. Я мало что знаю о нём, но если ему можно верить, то это ваша единственная надежда.]],
answers = {
{"Благодарю вас.", action=function(npc, player) player:setQuestStatus("east-portal", engine.Quest.COMPLETED, "talked-elder") end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/last-hope-lost-merchant.lua.txt
newChat{ id="welcome",
text = [[Ах, мой #{italic}#добрый#{normal}# друг @playername@!
Благодаря вам я благополучно добрался до этого славного города! Я планирую в скором времени открыть модную лавку, но, поскольку я в долгу перед вами, возможно, я мог бы открыться пораньше, если вы нуждаетесь в редких товарах.]]
..((trap or poison) and ("\nBy the way, "..((trap and "during our escape I found the plans for an #YELLOW#Ambush Trap#LAST#" or "")
..(poison and (trap and " and while" or "while").. " organizing my inventory, I came across some #YELLOW#Smelly Toxin#LAST# that a colleague claimed could actually turn creatures to stone. Truly exotic!" or ".")).."\nYou would not happen to be interested, by any chance?") or "")
..((game.state:isAdvanced() and "\nО, мой друг, хорошие новости! Как я уже сказал, теперь можно заказать поистине #{italic}#уникальную#{normal}# вещь, которая будет создана только для вас и по уникально низкой цене..." or "\nя со временем планирую организовать по-настоящему уникальную услугу для самых взыскательных клиентов. Если вы вернетесь позже, когда я полностью обустроюсь, я смогу заказать для вас что-то совершенно чудесное. Разумеется, по вполне #{italic}#подходящей#{normal}# цене")),
answers = {
{"Да, пожалуйста, позвольте мне посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end},
{"Насчёт уникального предмета?", cond=function(npc, player) return game.state:isAdvanced() end, jump="unique1"},
{"Ловушка западни? Звучит не плохо.", cond=function(npc, player) return trap end, jump="trap"},
{"Вонючий токсин? И чем воняет?", cond=function(npc, player) return poison end, jump="poison"},
{"Извините, мне нужно идти!"},
}
}
newChat{ id="trap",
text = [[Знаете, я расспрашивал там и сям, и это очень редкая вещь, это хитроумное изобретение...
Но так как вы спасли меня, я готов расстаться с ним всего за 3000 золотых, настоящая сделка!]],
answers = {
{"Дороговато, но я возьму.", cond=function(npc, player) return player.money >= 3000 end, jump="traplearn"},
{"..."},
}
}
newChat{ id="traplearn",
text = [[Приятно иметь с вами дело, мой друг. Вот, пожалуйста!]],
answers = {
{"Спасибо.", action=function(npc, player)
game.state:unlockTalent(player.T_AMBUSH_TRAP, player)
player:incMoney(-3000)
end},
}
}
newChat{ id="poison",
text = [[Унгрол сказал мне, что это вещество содержит некоторые чрезвычайно редкие компоненты.
«Больше яд, чем лекарство», - сказал он. Увы, он не имел средств, чтобы купить его. С другой стороны, из-за нашего особого отношения, я позволю вам заполучить его по #{italic}#цене#{normal}# -- лишь 1500 золотых!]],
answers = {
{"Довольно дорого, но кажется полезным. Договорились!", cond=function(npc, player) return player.money >= 1500 end, jump="poisonlearn"},
{"Такие деньги... эта штука действительно воняет..."},
}
}
newChat{ id="poisonlearn",
text = [[Вот, пожалуйста. Просто убедитесь, чтобы это не попало на вас!]],
answers = {
{"Спасибо.", action=function(npc, player)
player:incMoney(-1500)
player:learnTalent(player.T_STONING_POISON, true, 1)
end},
}
}
newChat{ id="unique1",
text = [[Обычно я предлагаю эту услугу только по настоящему стоящей цене, но для вас, я готов предложить скидку в 20% - #{italic}#только#{normal}# 4000 золотых, чтобы сделать совершенно уникальную вещь по вашему выбору. Что вы скажете?]],
answers = {
{"Ну, это мизерная сумма - принимай заказ хозяин и побыстрей!", cond=function(npc, player) return player.money >= 10000 end, jump="make"},
{"Да, пожалуйста!", cond=function(npc, player) return player.money >= 4000 end, jump="make"},
{"СКОЛЬКО?! Пожалуйста, извините, мне нужно подышать свежим воздухом...", cond=function(npc, player) return player.money < 500 end},
{"Не сейчас, спасибо."},
}
}
local l = {{"Я передумал.", jump = "welcome"}}
local l = {{"Я передумал.", jump = "welcome"}}
newChat{ id="makereal",
text = [[Что бы вы хотели?]],
answers = l,
}
newChat{ id="naming",
text = "Вы хотите дать название вашей вещи?\n"..tostring(art:getTextualDesc()),
answers = {
{"Да, пожалуйста.", action=function(npc, player)
local d = require("engine.dialogs.GetText").new("Название вашей вещи", "Название", 2, 40, function(txt)
art.name = txt:removeColorCodes():gsub("#", " ")
game.log("#LIGHT_BLUE#Торговец бережно вручает вам: %s", art:getName{do_color=true})
end, function() game.log("#LIGHT_BLUE#Торговец бережно вручает вам: %s", art:getName{do_color=true}) end)
game:registerDialog(d)
end},
{"Нет, спасибо.", action=function() game.log("#LIGHT_BLUE#Торговец бережно вручает вам: %s", art:getName{do_color=true}) end},
},
}
newChat{ id="oups",
text = "Ох, извините, похоже, мы не смогли сделать вещь, которую вы просили.",
answers = {
{"О, давайте попробуем что-нибудь ещё.", jump="make"},
{"Ну, может быть, позже."},
},
}
return "makereal"
end
newChat{ id="make",
text = [[Какого рода вещь вы бы хотели?]],
answers = maker_list(),
}
newChat{ id="welcome",
text = [[*Этот магазин пока не открыт*]],
answers = {
{"[Уйти]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/last-hope-melinda-father.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Человек разговаривает с вами изнутри, дверь наполовину открыта. Его голос печален.*#WHITE#
Извините, магазин закрыт.]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Человек разговаривает с вами изнутри, дверь наполовину открыта. Его голос печален.*#WHITE#
Извините, магазин закрыт.]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[@playername@! Спаситель моей дочери!]],
answers = {
{"Привет, я только проверить, всё ли у Мелинды в порядке.", jump="reward", cond=function(npc, player) return not npc.rewarded_for_saving_melinda end, action=function(npc, player) npc.rewarded_for_saving_melinda = true end},
{"Привет, мне хотелось бы поговорить с Мелиндой, пожалуйста.", jump="rewelcome", switch_npc={name="Melinda"}, cond=function(npc, player) return ql and not ql:isCompleted("moved-in") and not ql.inlove end},
{"Привет, мне хотелось бы поговорить с Мелиндой, пожалуйста.", jump="rewelcome-love", switch_npc={name="Melinda"}, cond=function(npc, player) return ql and not ql:isCompleted("moved-in") and ql.inlove end},
{"Извините, мне нужно идти!"},
}
}
newChat{ id="reward",
text = [[Пожалуйста, примите это. Это ничто по сравнению с жизнью моего ребёнка. О, и она хотела поблагодарить вас лично. Я позову её.]],
answers = {
{"Спасибо.", jump="melinda", switch_npc={name="Melinda"}, action=function(npc, player)
local ro = game.zone:makeEntity(game.level, "object", {unique=true, not_properties={"lore"}}, nil, true)
if ro then
ro:identify(true)
game.logPlayer(player, "Отец Мелинды вручает вам: %s", ro:getName{do_color=true})
game.zone:addEntity(game.level, ro, "object")
player:addObject(player:getInven("INVEN"), ro)
game._chronoworlds = nil
end
player:grantQuest("love-melinda")
ql = player:hasQuest("love-melinda")
end},
}
}
newChat{ id="melinda",
text = [[@playername@! #LIGHT_GREEN#*Она прыгает от радости и обнимает вас, пока её отец возвращается в свой магазин.*#WHITE#]],
answers = {
{"Мне приятно, что у вас всё в порядке. Кажется, ваши шрамы отлично заживают.", jump="scars", cond=function(npc, player)
if player:attr("undead") then return false end
return true
end,},
{"Приятно вас увидеть. Берегите себя."},
}
}
newChat{ id="scars",
text = [[Да, в основном зажили, хотя мне всё ещё снятся кошмары. Такое чувство, как будто что-то всё ещё поблизости.
Ну, дурные сны всё же лучше, чем та судьба, от которой вы спасли меня!]],
answers = {
{"Я поищу способ, как помочь вам, во время своих путешествий, я постараюсь.", quick_reply="Благодарю вас, вам здесь всегда рады."},
{"Наверняка, так каковы ваши планы?", jump="plans"},
}
}
newChat{ id="rewelcome",
text = [[Привет @playername@! Теперь я чувствую себя лучше, даже становлюсь непоседливой...]],
answers = {
{"Итак, каковы ваши планы?", jump="plans"},
{"Мне пришла мысль, возможно, вы бы захотели прогуляться со мной как-нибудь...", jump="hiton", cond=function() return not ql.inlove and not ql.nolove end},
}
}
newChat{ id="rewelcome-love",
text = [[#LIGHT_GREEN#*Мелинда появляется в дверях и обнимает вас*#WHITE#
Мой друг, я так рада вас видеть!]],
answers = {
{"Я всё ещё ищу объяснение того, что произошло на пляже."},
{"О том, что произошло на пляже, мне кое-что попалось.", jump="home1", cond=function() return ql:isStatus(engine.Quest.COMPLETED, "can_come_fortress") end},
}
}
newChat{ id="plans",
text = [[Я всё ещё не знаю, мой отец не выпускает меня, пока я полностью не исцелюсь. Я всегда хотела что-то совершить.
Вот почему я оказалась в этом склепе, я хочу увидеть мир.
Мой отец дал мне немного денег, чтобы я могла устроить своё будущее. У меня есть друзья в Дерте, может быть, я открою там свой небольшой магазин.]]..(
is_am and
[[Я видела, как вы сражались с искажателями, как вы уничтожили их магию. Я хочу научиться делать то же самое, чтобы такие ужасы никогда не повторялись. Ни с кем.]]
or (is_mage and
[[А может, ну, я думаю, что могу вам доверять, я всегда тайно мечтала изучать магию. Настоящую магию, не алхимические трюки!
Я узнала о тайном месте, Анголвене, где я могла бы изучать её.]]
or [[]])),
answers = (not is_am and not is_mage) and {
{"У Дерта есть свои плюсы и минусы, но я думаю, им бы пригодилась умная девушка.", action=function() ql.wants_to = "derth" end, quick_reply="Спасибо!"},
} or {
{"У Дерта есть свои плюсы и минусы, но я думаю, им бы пригодилась умная девушка.", action=function() ql.wants_to = "derth" end, quick_reply="Спасибо!"},
{"Вы хотите присоединиться к нашему благородному крестовому походу против магии? Замечательно! Я поговорю с ними о вас.", action=function() ql.wants_to = "antimagic" end, cond=function() return is_am end, quick_reply="Это было бы очень мило!"},
{"Мне посчастливилось быть принятым людьми Анголвена, я мог бы замолвить за вас слово.", action=function() ql.wants_to = "magic" end, cond=function() return is_mage end, quick_reply="Это было бы очень мило!"},
}
}
newChat{ id="hiton",
text = [[Что?! Просто потому, что вы спасли меня от смерти, вы думаете, что это даёт вам право фамильярничать?!]],
answers = {
{"ПОЧЕМУ ЖЕНЩИН НЕ ВЛЕЧЁТ КО МНЕ, Я СЛАВНЫЙ"..(p.female and "GIRL" or "GUY")..".", quick_reply="Ух, извините, кажется, мой отец зовёт меня, увидимся.", action=function() ql.nolove = true end},
{"Всего минутку, я просто...", jump="reassurance"},
}
}
newChat{ id="reassurance",
text = [[#LIGHT_GREEN#*Она весело смотрит на вас.*#WHITE#
Шучу. Я бы с удовольствием!]],
answers = {
{"#LIGHT_GREEN#[Погулять с ней]#WHITE#Как насчёт небольшой прогулки на юг, с берега мы можем увидеть вулкан Обугленного шрама, это сказочный вид.", action=function() ql.inlove = true ql:toBeach() end},
{"Я шучу, прощайте!", quick_reply="Но... хорошо, прощайте.", action=function() ql.nolove = true end},
}
}
newChat{ id="hug",
text = [[#LIGHT_GREEN#*Вы берёте Мелинду за руки и притягиваете к себе. Теплота близости разжигает ваше сердце.*#WHITE#
Я чувствую себя в безопасности. Пожалуйста, я знаю, что ты должен уйти, но обещай, что скоро вернёшься и снова обнимешь меня.]],
answers = {
{"Думаю, мне бы это очень понравилось. #LIGHT_GREEN#[Поцеловать её]#WHITE#", action=function(npc, player) end},
{"Эта мысль будет поддерживать меня в самых тёмных местах. #LIGHT_GREEN#[Поцеловать её]#WHITE#", action=function(npc, player) player:grantQuest("love-melinda") end},
{"Ах, прошу прощения. Я думаю, вы ошибаетесь. Я только пытался вас утешить.", quick_reply="Ох, извините, я сама не своя. Тогда прощайте. Счастливого пути."},
}
}
newChat{ id="home1",
text = [[#LIGHT_GREEN#*Мелинда выглядит обеспокоенной*#WHITE#
Пожалуйста, скажите, вы можете помочь!]],
answers = {
{"Да, я так думаю. Некоторое время назад я стал владельцем особого дома...#LIGHT_GREEN#[Рассказать ей о Крепости]#WHITE#", jump="home2"},
}
}
newChat{ id="home2",
text = [[Древняя крепость мифической расы?! Как #{bold}#интересно#{normal}#!
И вы говорите, что это излечит меня?]],
answers = {
{"Крепость, похоже, думает так. Я знаю, это может звучать немного... непристойно... но вам нужно будет пожить там, по крайней мере, какое-то время.", jump="home3"},
}
}
newChat{ id="home3",
text = [[#LIGHT_GREEN#*Она весело смотрит на вас.*#WHITE#
Ну вот, план, как переспать со мной, наконец, был раскрыт!
Дурачок, я думала такие глупости мы оставили уже в прошлом, я приду, как ради здоровья, так и потому, что хочу быть с тобой.
#LIGHT_GREEN#*Она нежно целует вас*#WHITE#]],
answers = {
{"Тогда моя госпожа, не соизволите последовать за мной. #LIGHT_GREEN#[Отвести её в крепость]", action=function(npc, player)
game:changeLevel(1, "shertul-fortress", {direct_switch=true})
player:hasQuest("love-melinda"):spawnFortress(player)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/last-hope-weapon-store.lua.txt
newChat{ id="welcome",
text = [[Добро пожаловать @playername@ в мой магазин.]],
answers = {
{"Позвольте мне посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end},
{"Мне нужна боевая подготовка.", jump="training"},
{"Извините, мне нужно идти!"},
}
}
newChat{ id="training",
text = [[Я действительно могу предложить боевое обучение (категория талантов / боевая подготовка) за вознаграждение в размере 50 золотых, или основы обращения с луками и пращой (талант стрельба) за 8 золотых.]],
answers = {
{"Пожалуйста, обучите меня обращению со стандартным оружием и использованию доспехов.", action=function(npc, player)
game.logPlayer(player, "Кузнец проводит с вами некоторое время, обучая основам ношения доспехов и обращению с оружием.")
player:incMoney(-50)
player:learnTalentType("technique/combat-training", true)
player.changed = true
end, cond=function(npc, player)
if player.money < 50 then return end
if player:knowTalentType("technique/combat-training") then return end
return true
end},
{"Пожалуйста, обучите меня основам обращения с луками и пращой.", action=function(npc, player)
game.logPlayer(player, "Кузнец проводит с вами некоторое время, обучая основам обращения с луками и пращой.")
player:incMoney(-8)
player:learnTalent(player.T_SHOOT, true, nil, {no_unlearn=true})
player.changed = true
end, cond=function(npc, player)
if player.money < 8 then return end
if player:knowTalent(player.T_SHOOT) then return end
return true
end},
{"Нет, спаибо."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/limmir-valley-moon.lua.txt
newChat{ id="welcome",
text = [[У меня нет времени говорить. Это напряжённый ритуал и мы здесь не одни. Останови их!]],
answers = {
{"Я тебя не подведу!"},
{"[Уйти]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/lost-merchant.lua.txt
newChat{ id="welcome",
text = [[Пожалуйста, спаси меня! Я щедро вознагра...
*#LIGHT_GREEN#Лорд ассасинов бьёт его по лицу.#WHITE#*Заткнись!]],
answers = {
{"Извините, мне нужно идти!", action = function(npc, player) npc.can_talk = nil end},
}
}
newChat{ id="welcome2",
text = [[Пожалуйста, вытащите меня отсюда!]],
answers = {
{"Сюда, здесь выход!", action = function(npc, player) npc.can_talk = nil npc.cant_be_moved = nil end},
}
}
return "welcome"
else
return "welcome2"
end
file/game/modules/tome.team/data/chats/lumberjack-quest-done.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Бен лежит у ваших ног*#WHITE#
С... спасибо за... *кашляет* спасение меня от проклятия.
Я не... не хочу, чтобы это...
#LIGHT_GREEN#*Зайдясь в последнем приступе кашля он умирает, с улыбкой на лице, после исчезнувшего проклятия.*#WHITE#]],
answers = {
{"Покойся с миром.", action=function(npc, player) player:setQuestStatus("lumberjack-cursed", engine.Quest.COMPLETED) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/lumberjack-quest.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами человек, покрытый грязью и кровью. Он запыхался и полубезумен.*#WHITE#
ПОЖАЛУЙСТА! Вы должны помочь! #{bold}#Это#{normal}# убивает всех в моей деревне! Пожалуйста!
#LIGHT_GREEN#*Он указывает пальцем на ближайший лес.*#WHITE#]],
answers = {
{"Я схожу туда и посмотрю, что можно сделать.", action=function(npc, player) player:grantQuest("lumberjack-cursed") end},
{"Это не моя проблема. Уходите!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/mage-apprentice-quest.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит молодой человек, по виду, начинающий маг*#WHITE#
Хорошего вам дня#LIGHT_GREEN#*Он таращится на вас и обращается в бегство!*#WHITE#
Не убивайте меня, пожалуйста!]],
answers = {
{"...", action = function(npc, player) npc:die() end,
},
}
}
return "welcome"
end
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит молодой человек, по виду начинающий маг*#WHITE#
Добрый день, коллега путешественник!]],
answers = {
{"Что занесло ученика мага в такие дебри?", jump="quest", cond=function(npc, player) return not player:hasQuest("mage-apprentice") end},
{"Мне попался артефакт, на вид могущественный и с вплетёнными чарами. Может, этого будет достаточно?",
jump="unique",
cond=function(npc, player) return player:hasQuest("mage-apprentice") and player:hasQuest("mage-apprentice"):can_offer_unique(player) end,
action=function(npc, player, dialog) player:hasQuest("mage-apprentice"):collect_staff_unique(npc, player, dialog) end
},
-- Reward for non-mages: access to Angolwen
{"Теперь у вас достаточно магических предметов?",
jump="thanks",
cond=function(npc, player) return player:hasQuest("mage-apprentice") and player:hasQuest("mage-apprentice"):isCompleted() and not player:knowTalent(player.T_TELEPORT_ANGOLWEN) end,
},
-- Reward for mages: upgrade a talent mastery
{"Теперь у вас достаточно магических предметов?",
jump="thanks_mage",
cond=function(npc, player) return player:hasQuest("mage-apprentice") and player:hasQuest("mage-apprentice"):isCompleted() and player:knowTalent(player.T_TELEPORT_ANGOLWEN) end,
},
-- {"У вас есть вещи на продажу?", jump="store"},
{"Извините, мне нужно идти!"},
}
}
newChat{ id="quest",
text = [[Моя история грустная... Я не должен беспокоить вас этим.]],
answers = {
{"Это не проблема! Рассказывайте!", jump="quest2"},
{"Ладно, тогда прощайте!"},
}
}
newChat{ id="quest2",
text = [[Ну, если вы настаиваете...
Я начинающий маг, как вы могли заметить, и моя цель быть принятым народом Анголвена и научиться секретам посвящённых.]],
answers = {
{"Что за народ Анголвена?", jump="quest3", cond=function(npc, player) return player.faction ~= "angolwen" end,},
{"Ах, да, Анголвен, я зову его домом уже многие годы...", jump="quest3_mage", cond=function(npc, player) return player.faction == "angolwen" end,},
{"Ну, удачи, пока!"},
}
}
newChat{ id="quest3",
text = [[Хранители артефак... эээ, я не думаю, что должен говорить о них... сожалею...
В любом случае, я должен собрать много предметов. У меня уже есть несколько, но я всё ещё ищу артефакт, наполненный секретами. У вас его нет, я думаю... Ну, если найдёте, скажите мне, пожалуйста!]],
answers = {
{"Я буду иметь это в виду!", action=function(npc, player) player:grantQuest("mage-apprentice") end},
{"Ни в коем случае, пока!"},
}
}
newChat{ id="quest3_mage",
text = [[Надеюсь, я тоже ...
В любом случае, я должен собрать много предметов. У меня уже есть несколько, но я всё ещё ищу артефакт, наполненный секретами. У вас его нет, я думаю... Ну, если найдёте, скажите мне, пожалуйста!]],
answers = {
{"Я буду иметь это в виду!", action=function(npc, player) player:grantQuest("mage-apprentice") end},
{"Ни в коем случае, пока!"},
}
}
newChat{ id="unique",
text = [[Позвольте мне осмотреть его.
О да, мой друг, это действительно могущественный артефакт! Я думаю, что этого достаточно, чтобы завершить мой квест! Большое спасибо!]],
answers = {
{"Ну, я не могу использовать его в любом случае.", jump="welcome"},
}
}
newChat{ id="thanks",
text = [[О да! Я так рад! Я смогу вернуться в Анголв... эээ... Ну, я думаю, я могу вам рассказать; вы заслужили это за помощь мне.
Во времена тёмных лет Охоты на магию, много тысяч лет назад, Линаниил, великий маг Кор'Крула, опасалась, что магия может исчезнуть вместе с её поколением и быть потерянной для смертных, если они востребуют её снова.
Поэтому она придумала секретный план и построила секретное место, где магия будет сохранена.
Её план сработал, и группа единомышленников построила в западных горах город под названием Анголвен. #LIGHT_GREEN#*He marks it on your map, along with a portal to access it*#WHITE#
Не так много людей принимают сюда, но я договорюсь, чтобы вас пустили внутрь.]],
answers = {
{"Как такое место может сохранить в тайне так долго... Это действительно интересно. Спасибо за ваше доверие!",
action = function(npc, player)
player:hasQuest("mage-apprentice"):access_angolwen(player)
npc:die()
end,
},
}
}
newChat{ id="thanks_mage",
text = [[Я так рад! Теперь я смогу вернуться в Анголвен, и, возможно, мы встретимся там.
Пожалуйста, возьмите это кольцо, оно хорошо послужило мне.]],
answers = {
{"Спасибо, и удачи в учёбе!",
action = function(npc, player)
player:hasQuest("mage-apprentice"):ring_gift(player)
npc:die()
end,
},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/magic-store.lua.txt
simplePopup("Недостаточно денег", "Это стоит "..cost.." золотых.")
yesnoPopup("Перезарядить?", "Это будет стоить для вас "..cost.." золотых.", function(ok) if ok then
o.power = o.max_power
player:incMoney(-cost)
player.changed = true
end end)
newChat{ id="welcome",
text = [[Добро пожаловать, @playername@, в мой магазин.]],
answers = {
{"Позвольте посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end},
{"Я хочу перезарядить часть своего снаряжение.", action=recharge},
{"Извините, мне нужно идти!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/melinda-beach-end.lua.txt
newChat{ id="welcome",
text = [[Что случилось?!]],
answers = {
{"Сожалею, мне не удалось защитить вас и когда вы чуть не умерли, вы... выпустили мощную волну скверны.", jump="next1"},
}
}
newChat{ id="next1",
text = [[Но я никогда не произносила заклинаний в своей жизни!]],
answers = {
{"Вы всё ещё заражены этой... бесовской мерзостью! Зараза ещё не вся вышла!", jump="next_am", cond=function(npc, player) return player:attr("forbid_arcane") end},
{"Должно быть, какая-то бесовская зараза всё ещё внутри вас.", jump="next_notam", cond=function(npc, player) return not player:attr("forbid_arcane") end},
}
}
newChat{ id="next_am",
text = [[Это ужасно! Уверяю вас, я понятия не имела, что это случится. Вы должны мне доверять!]],
answers = {
{"Я доверяю. Знаете, Зигурант не бред фанатиков. Мы будем искать способ вылечить вас, пока вы отторгаете скверну.", jump="next2"},
}
}
newChat{ id="next_notam",
text = [[Это ужасно! Что происходит со мной?! Вы должны помочь мне!]],
answers = {
{"Ладно. Мы найдём для этого лекарство.", jump="next2"},
}
}
newChat{ id="next2",
text = [[Я очень счастливая девушка, не так ли... Это второй раз, когда вам пришлось спасти меня.]],
answers = {
{"За последние недели вы стали очень важны для меня, и мне приятно, что вы есть. Хотя, здесь не место для разговоров, пойдёмте.", jump="next3"},
}
}
newChat{ id="next3",
text = [[Вы правы, давайте убираться отсюда.]],
answers = {
{"#LIGHT_GREEN#[Вернуться к Последней Надежде]", action=function(npc, player)
game:changeLevel(1, "town-last-hope", {direct_switch=true})
player:move(25, 44, true)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/melinda-beach.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Вы проводите какое-то время вместе, расслабляясь на пляже.
Свежий воздух, песок блестит, и прибой мягко шумит.*#WHITE#
Это была прекрасная идея!
Сегодня я замечательно провёла время с тобой.
#LIGHT_GREEN#*Она с вожделением заглядывает вам в глаза.*#WHITE#]],
answers = {
{"#LIGHT_GREEN#[Приблизиться и поцеловать её]#WHITE#", action=function() game.zone.start_yaech() end, jump="firstbase"},
}
}
newChat{ id="firstbase",
text = [[Прежде чем ваши губы соприкоснулись, вы чувствуете, что что-то не так.
]],
answers = {
{"#LIGHT_GREEN#[Продолжить...]#WHITE#"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/melinda-fortress.lua.txt
newChat{ id="welcome",
text = [[Привет милый!]],
answers = {
{"#LIGHT_GREEN#[Поцеловать её]#WHITE#"},
{"Как поживаешь?", cond=isNotSet"settle", action=set"settle", jump="settle"},
}
}
newChat{ id="settle",
text = [[Хорошо, позволь мне сказать, резервуар #{bold}#жуткий#{normal}#, но этот странный дворецкий говорит, что это единственный способ.
Я тоже начинаю чувствовать себя лучше.
Однако я должна сказать, что мне скучно здесь.
Помнишь, я однажды говорила тебе ]]..dest[ql.wants_to]..[[ Может быть, мы могли бы найти способ забирать меня оттуда днём и возвращать на лечение на ночь?]],
answers = {
{"Да, думаю, мы могли бы это устроить. Тень, можно ли создать для неё портал?", jump="portal", switch_npc=butler},
}
}
newChat{ id="portal",
text = [[Да хозяин. Я сделаю это прямо сейчас.
Она сможет прийти и уйти незамеченной.]],
answers = {
{"Просто превосходно.", jump="portal2", switch_npc=melinda, action=function(npc, player)
local spot = game.level:pickSpot{type="portal-melinda", subtype="back"}
if spot then
local g = game.zone:makeEntityByName(game.level, "terrain", "TELEPORT_OUT_MELINDA")
game.zone:addEntity(game.level, g, "terrain", spot.x, spot.y)
end
end},
}
}
newChat{ id="portal2",
text = [[О, это великолепно, благодарю тебя! Моё собственное тайное логово, моей личной жизни.]],
answers = {
{"Я только хочу, чтобы ты была счастлива, я рад услужить.", jump="reward"},
}
}
newChat{ id="reward",
text = [[#LIGHT_GREEN#*Смотря чарующим взглядом она приблизилась*#WHITE#
Теперь мой милый, на чём мы остановились в последний раз?]],
answers = {
{"Моя память подводит меня, поможешь мне вспомнить? #LIGHT_GREEN#[Она игриво улыбнулась]", action=function(npc, player)
player:setQuestStatus("love-melinda", engine.Quest.COMPLETED, "portal-done")
world:gainAchievement("MELINDA_LUCKY", player)
game:setAllowedBuild("cosmetic_bikini", true)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/message-last-hope.lua.txt
newChat{ id="welcome",
text = [[Рад встрече, @playername@. Меня отправили с посланием короля Толака в Последнюю надежду.
Я шёл по телам, оставленным после вас - очень впечатляет! Нам повезло, что вы на нашей стороне.
Но достаточно разговоров, возьмите это сообщение. Я должен идти.
#LIGHT_GREEN#Он даёт вам запечатанный свиток и исчезает в тени.#LAST#]],
answers = {
{"Благодарю за смелость.", action=function(npc, player)
local o, item, inven_id = npc:findInAllInventories("Запечатанный Свиток для Последней Надежды")
if o then
npc:removeObject(inven_id, item, true)
player:addObject(player.INVEN_INVEN, o)
player:sortInven()
game.logPlayer(player, "Герольд даёт вам %s.", o:getName{do_color=true})
end
if game.level:hasEntity(npc) then game.level:removeEntity(npc) end
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/myssil.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит женщина полурослик облачённая в тёмный стальной доспех.*#WHITE#
Пройдите испытание, а потом поговорим.]],
answers = {
{"Но..."},
}
}
return "welcome"
end
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит женщина полурослик облачённая в тёмный стальной доспех.*#WHITE#
Я Заступник Мюссил. Добро пожаловать в Зигур.]],
answers = {
{"Мне нужна любая помощь, которую я смогу получить, не ради меня, а для города Дерта, что к северо-западу отсюда.", jump="save-derth", cond=function(npc, player) local q = player:hasQuest("lightning-overload") return q and q:isCompleted("saved-derth") and not q:isCompleted("tempest-entrance") and not q:isStatus(q.DONE) end},
{"Покровитель, мне удалось справиться с бурей, как вы повелели.", jump="tempest-dead", cond=function(npc, player) local q = player:hasQuest("lightning-overload") return q and q:isCompleted("tempest-entrance") and not q:isCompleted("antimagic-reward") and q:isStatus(q.DONE) end},
{"Прощайте, Покровитель."},
}
}
newChat{ id="save-derth",
text = [[Да, мы почувствовали, что скверна жутких сил исчезла. Мои люди пытаются развеять облако, но реальной угрозы там нет.
Мы знаем, что бурю послал могущественный архимаг, который может управлять штормами. Эти несчастные дураки из Анголвена не станут действовать. Всё развратили!
Так что вы должны действовать, @playername@. Я покажу вам местоположение этого мага - высоко в горах Дайкара.
Уничтожьте его.]],
answers = {
{"Вы можете рассчитывать на меня, Покровитель.", action=function(npc, player)
player:hasQuest("lightning-overload"):create_entrance()
game:unlockBackground("myssil", "Protector Myssil")
end},
}
}
newChat{ id="tempest-dead",
text = [[Что я слышу, @playername@. Вы подтверждаете свою подготовку. Ступайте, да благословит вас сила, @playername@ Зигура.
#LIGHT_GREEN#*Она касается вашей кожи. Вы чувствуете, как жизненные силы наполняют вашу сущность.*#WHITE#
Это поможет вам в ваших путешествиях. Прощайте!]],
answers = {
{"Благодарю вас, Покровитель.", action=function(npc, player)
player:hasQuest("lightning-overload"):create_entrance()
if player:knowTalentType("wild-gift/fungus") then
player:setTalentTypeMastery("wild-gift/fungus", player:getTalentTypeMastery("wild-gift/fungus") + 0.1)
elseif player:knowTalentType("wild-gift/fungus") == false then
player:learnTalentType("wild-gift/fungus", true)
else
player:learnTalentType("wild-gift/fungus", false)
end
-- Make sure a previous amulet didnt bug it out
if player:getTalentTypeMastery("wild-gift/fungus") == 0 then player:setTalentTypeMastery("wild-gift/fungus", 1) end
game.logPlayer(player, "#00FF00#You gain the fungus talents school.")
if player:knowTalentType("cunning/trapping") then
game.party:learnLore("zigur-purging-trap")
end
player:hasQuest("lightning-overload"):setStatus(engine.Quest.COMPLETED, "antimagic-reward")
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/norgan-saved.lua.txt
newChat{ id="welcome",
text = [[Спасибо, @playername@! Мы оба выжили ради благосостояния Империи. Я доставлю им новости, а потом отдохну.
Не думаю, что захочу увидеть смерть в ближайшее время.
Прощайте.]],
answers = {
{"За Империю! Берегите себя.", action=function(npc, player)
npc:disappear()
world:gainAchievement("NORGAN_SAVED", player)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/orc-breeding-pits.lua.txt
newChat{ id="next1",
text = [[Я нашла... мерзость, которую Айрин послала меня искать. Ямы для взращивания орков... Это более мерзко, чем вы можете себе представить... Они скрыты от своих лагерей, вне поля зрения всего их народа. Их матери, молодняк, все там - все уязвимы!
#LIGHT_GREEN#*Она вытаскивает карту и с некоторым усилием вкладывает её в вашу ладонь.*#WHITE#
Это может стать решением, конец войне... навсегда. Мы должны нанести удар, прежде чем подкрепление...
#LIGHT_GREEN#*Она с трудом посмотрела на вас, прилагая все свои усилия на последний умоляющий взгляд.*#WHITE#]],
answers = {
{"Я не могу это сделать... Я расскажу Айрин об этом, всё в её руках.", action=function(npc, player)
player:grantQuest("orc-breeding-pits")
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out")
end},
{"Я пойду и удостоверюсь, что в этом тщательно разобрались.", action=function(npc, player)
player:grantQuest("orc-breeding-pits")
local q = player:hasQuest("orc-breeding-pits")
q:reveal()
end},
{"Вы хотите от меня убийства матерей и детей? Это по-варварски, я не стану ничего предпринимать!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/paradoxology.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами... вы. Вы кажетесь немного старше и судя по внешнему виду вы прошли через ад.*#WHITE#
НЕТ! ТЫ НЕ МОЖЕШЬ! НЕ ХОДИ ТУДА! ТЫ... Я... ТЕБЕ НЕ СТОИТ ТУДА ИДТИ!
ЭТОГО НЕВОЗМОЖНО ИЗБЕЖАТЬ! МНЕ НАДО ОСТАНОВИТЬ ЭТО! ПОЖАЛУЙСТА, НЕ НАДО
МНЕ НАДО УБИТЬ СЕБЯ, ЧТОБЫ ЗАЩИТИТЬ СЕБЯ!
]],
answers = {
{"Что за..."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/player-inscription.lua.txt
answers[#answers+1] = {"Отмена"}
return "welcome"
file/game/modules/tome.team/data/chats/point-zero-zemekkys.lua.txt
newChat{ id="welcome",
action = function(npc, player) npc.talked_times = (npc.talked_times or 0) + 1 end,
text = [[@playername@, приятно видеть вас снова! Или это первый раз, когда мы встречаемся?]],
answers = {
{"Прощайте, Великий Хранитель."},
{"Да, это наша первая встреча.", jump="first", cond=function(npc, player) return not npc.talked_times end},
}
}
newChat{ id="first",
text = [[Для тебя, возможно, но не для меня.
Послушай, когда-нибудь ты снова встретишь меня, но я буду не таким, каким ты видишь меня сейчас. Я буду моложе.
Это очень важно: не рассказывай моему предыдущему я обо мне. Понятно?]],
answers = {
{"Я думаю так..."},
{"Да, Великий Хранитель."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/pre-charred-scar-eruan.lua.txt
newChat{ id="welcome",
text = [[@playername@, я из отряда Паладинов Солнца посланных Айрин. Мы прибыли сюда следить за орками.
Они прошли через портал и нескольких моих друзей втянуло вместе с ними.
Чуть ранее мы захватили орка. Он показал, что посох, который вы ищете, будет использован для поглощения энергии отдалённого места для тёмных ритуалов.
Если вы знаете как, вы должны пройти через портал и остановить орков.]],
answers = {
{"Думаю, я смогу задействовать портал. Не волнуйтесь!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/pre-charred-scar.lua.txt
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Внезапно в голове раздаётся голос.#WHITE#*
@playername@, это Верховный Паладин Солнца Айрин из Солнечной стены. Я общаюсь с вами при помощи силы Аноритила.
У меня есть срочная информация для вас: посох, который вы ищите, обнаружен.]],
answers = {
{"Где?!", jump="where"},
}
}
newChat{ id="where",
text = [[Один из наших патрулей заметил некоторые странные перемещения орков в южной части континента, в пустыне Эруан.
Отряд орков охранял что-то похожее на посох, о котором вы спрашивали.
Вы должны пойти туда, чтобы разобраться. Это может быть ваш единственный шанс.]],
answers = {
{"Отправляюсь, прямо сейчас!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ring-of-blood-master.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит маленькое человекоподобное существо с непропорционально большой головой.*#WHITE#
А что это у нас здесь? @playerdescriptor.race@, я полагаю, вы не туда попали.]],
answers = {
{"Похоже на то. Что здесь происходит?", jump="what"},
}
}
newChat{ id="what",
text = [[Это мой Кровавый ринг! Послушай, у тебя два варианта.
Поскольку ты не выглядишь, как раб, я предлагаю тебе заплатить за участие в игре.
Если чувствуешь, что не сможешь участвовать в невольничьих играх, боюсь, тебе придётся... исчезнуть.]],
answers = {
{"Рабы? Это неправильно! [Атаковать]", action=attack("Это твой выбор? Умри.")},
{"Игра? Мне нравится играть, а в чём дело?", jump="game"},
}
}
newChat{ id="game",
text = [[Ну, это довольно просто. Я мысленно возьму под контроль различных диких существ или рабов, пока вы используете сферу власти в другой половине комнаты, беря под контроль раба.
Затем, используя наших пешек, мы сражаемся 10 раундов. Если ваш раб выживет, вы выиграете Зов Крови.]],
answers = {
{"Что, если я проиграю?", jump="lose"},
{"Кровь, смерть без риска повредить себя? Очень весело!", jump="price"},
}
}
newChat{ id="lose",
text = [[Обычно вас приравняли бы к рабу, но, похоже, вы будете более полезны как полноценный игрок, поэтому вы можете просто попробовать ещё раз.]],
answers = {
{"Кровь, смерть без риска повредить себя? Очень весело!", jump="price"},
}
}
newChat{ id="price",
text = [[Превосходно. Ах да, пока не забыл, чтобы использовать сферу, вам нужно будет заплатить стандартный сбор в размере 150 золотых.
Я уверен, что это небольшие деньги для авантюриста вашего класса.]],
answers = {
{"150 золотых? Э-э... да, конечно.", action=function(npc) npc.can_talk = nil end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ring-of-blood-orb.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Вы кладёте руки на сферу.*#WHITE#
Вы должны дать 150 золотых, чтобы принять участие в бою.]],
answers = {
{"[Заплатить 150 золотых]", jump="pay",
cond=function(npc, player)
return player:hasQuest("ring-of-blood") and player:hasQuest("ring-of-blood"):find_master() and player.money >= 150
end,
action=function(npc, player) player:incMoney(-150) end
},
{"[Уйти]"},
}
}
newChat{ id="pay",
text = [[Пусть начнётся поединок!]],
answers = {
{"Давай!", action=function(npc, player) player:hasQuest("ring-of-blood"):start_game() end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ring-of-blood-win.lua.txt
newChat{ id="welcome",
text = [[Ну что, попробовали кровь на вкус? Понравилось? Я уверен, что да; вы из этой категории существ.
Во всяком случае, я полагаю, вы заслужили свою награду.
Вы всегда можете снова участвовать в забаве, если у вас есть лишнее золото.]],
answers = {
{"Спасибо, было весело!", action=function(npc, player) player:hasQuest("ring-of-blood"):reward(player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/sage-kitty.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами небольшой милый рыжий кот. Он выглядит голодным и смотрит на вас.*#WHITE#
Мяу-у?
]],
answers = {
{"Кис-кис!", jump="kitty"},
{"Нет времени на кошек!"},
}
}
newChat{ id="kitty",
text = [[#LIGHT_GREEN#*Он трётся о ногу и мурлычет.*#WHITE#
Мр-р-р.
]],
answers = {
{"Эй, может тебе понравятся эти вкусные на вид кишки тролля? #LIGHT_GREEN#[Скормить их ему]#WHITE#", jump="pet", cond=function(npc, player) return game.party:hasIngredient("TROLL_INTESTINE") end},
{"Прости парень, но у меня ничего нет."},
}
}
newChat{ id="pet",
text = [[#LIGHT_GREEN#*Он всё съедает и выглядит довольным. Через некоторое время он отправляется прочь. Вас не покидает чувство, что вы видите его в последний раз.*#WHITE#]],
answers = {
{"#LIGHT_GREEN#[Уйти]", action=function(npc, player)
game.state.kitty_fed = true
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-butler.lua.txt
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Существо медленно поворачивается к вам. Вы слышите грозный голос в своей голове.#WHITE#*
Добро пожаловать, создатель.]],
answers = {
{"Что ты, и что это за место?", jump="what", cond=isNotSet"what", action=set"what"},
{"Создатель? Я не твой созд...", jump="master", cond=isNotSet"master", action=set"master"},
{"Почему я понимаю тебя? Хоть слова не понятны мне.", jump="understand", cond=isNotSet"understand", action=set"understand"},
{"И что мне делать?", jump="storage", cond=isNotSet"storage", action=set"storage"},
{"Что ещё может сделать это место?", jump="energy", cond=isNotSet"energy", action=set"energy"},
{"Можно ли улучшить мой Плащ Обмана, чтобы мне не нужно было надевать его, чтобы сойти за живого?", jump="permanent-cloak",
cond=function(npc, player)
local cloak = player:findInAllInventoriesBy("define_as", "CLOAK_DECEPTION")
return not q:isCompleted("permanent-cloak") and q:isCompleted("transmo-chest") and cloak
end},
{"Ты просил меня прийти, это насчёт портала?", jump="farportal", cond=function() return q:isCompleted("farportal") and not q:isCompleted("farportal-spawn") end},
{"Ты просил меня прийти, это насчёт жезла Возвращения?", jump="recall", cond=function() return q:isCompleted("recall") and not q:isCompleted("recall-done") end},
{"Может ли мой Сундук метаморфоз автоматически извлекать драгоценные камни?", jump="transmo-gems", cond=function(npc, player) return not q:isCompleted("transmo-chest-extract-gems") and q:isCompleted("transmo-chest") and player:knowTalent(player.T_EXTRACT_GEMS) end},
{"Есть ли какое-нибудь оборудование для тренировки?", jump="training", cond=function() return not q:isCompleted("training") end},
{"Можешь ли ты использовать свою магию, чтобы изменить внешний вид моего снаряжения?", jump="shimmer", cond=function() return not q:isCompleted("shimmer") end},
{"Твоя внешность тревожит меня. Как-то ты его можешь изменить?", jump="changetile", cond=function() return q:isCompleted("recall-done") end},
{"Со мной произошло странное событие. #LIGHT_GREEN#[Рассказать ему о Мелинде]", jump="cure-melinda", cond=function() return ql and ql:isStatus(engine.Quest.COMPLETED, "saved-beach") and not ql:isStatus(engine.Quest.FAILED) and not ql:isStatus(engine.Quest.COMPLETED, "can_come_fortress") end},
{"[Уйти]"},
}
}
newChat{ id="master",
text = [[*#LIGHT_GREEN#Существо смотрит на вас.#WHITE#*
Вы обладаете жезлом контроля. Вы создатель.]],
answers = {
{"Э-э... да.", jump="welcome"},
}
}
newChat{ id="understand",
text = [[*#LIGHT_GREEN#Существо смотрит на вас.#WHITE#*
Вы создатель, у вас есть жезл. Я создан для общения с создателем.]],
answers = {
{"Э-э... хорошо.", jump="welcome"},
}
}
newChat{ id="what",
text = [[*#LIGHT_GREEN#Существо впивается в вас взглядом. Вы видите неясные образы, ныне забытой, масштабной войны.
Армии, как вы полагаете, Шер'Тула, так как они выглядят как тени.
Они сражаются с богами. Холодное оружие, магия, всё идёт в ход. Открыв охоту, они убивают или изгоняют их.
Вы видите огромные «крепости» летающие над небом Эяла; ослепительные бастионы власти, сверкающие под лучами юного солнца.
Вот уже боги избиты, повержены и мертвы. Все, кроме одного.
Затем только тьма; похоже, тень не знает, что последовало после этих событий.
Когда образы исчезают, вы качаете головой, изгоняя остатки видений.
#WHITE#*
]],
answers = {
{"Эти Шер'Тулы? Они сражались с богами?!", jump="godslayers"},
}
}
newChat{ id="godslayers",
text = [[Им пришлось. Они выковали ужасное оружие войны. Они победили.]],
answers = {
{"Но тогда где они сейчас, если они победили?", jump="where"},
}
}
newChat{ id="where",
text = [[Они ушли. Я не могу сказать вам больше.]],
answers = {
{"Но, я создатель!", jump="where"},
{"Прекрасно.", jump="welcome"},
}
}
newChat{ id="storage",
text = [[*#LIGHT_GREEN#Существо пристально смотрит на вас.#WHITE#*
Вы создатель. Вы можете использовать это место по своему усмотрению. Однако, большая часть энергии исчерпана и только некоторые комнаты пригодны для использования.
На юге вы найдёте складское помещение.]],
answers = {
{"Спасибо.", jump="welcome"},
}
}
newChat{ id="energy",
text = [[Эта «крепость» создана как передвижной плацдарм для Богоборцев, она может летать.
Она также оснащена различными устройствами: исследовательским порталом, экстренным защитным полем, внешним хранилищем...
Однако «крепость» сильно повреждена и слишком долго дремала. Её энергия почти исчерпана.
Возьмите этот Сундук метаморфоз. Он постоянно связан с порталом в «крепости». Любой предмет, который вы положите внутрь, будет отправлен в энергетическое ядро и расщеплён на элементы для использования в качестве энергии.
Однако у этой операции есть нежелательные побочные продукты - генерация металла, известного как золото. Оно бесполезно для «крепости» и, таким образом, будет отправлено вам обратно.]],
answers = {
{"Спасибо.", jump="welcome", action=function() q:spawn_transmo_chest() end, cond=function(npc, player) return not player:attr("has_transmo") end},
{"Мной уже найден такой сундук в ходе своих путешествий. Будет ли он работать?", jump="alreadychest", action=function() q:setStatus(q.COMPLETED, "transmo-chest") end, cond=function(npc, player) return player:attr("has_transmo") end},
}
}
newChat{ id="alreadychest",
text = [[Да, будет. Я настрою его на «крепость»...
Готово.]],
answers = {
{"Спасибо.", jump="welcome"},
}
}
newChat{ id="farportal",
text = [[Давным-давно Шер'Тулы использовали порталы не только для перемещения в известные места, но и для изучения новых частей мира или даже других миров.
Эта «крепость» оснащена исследовательским порталом и теперь имеет достаточно энергии, чтобы позволить одну телепортацию. Каждая телепортация приведет вас в случайную часть вселенной и затратит 45 частей энергии.
Помните, что обратный портал может находиться далеко от вашего пункта прибытия; вам нужно будет его найти. Вы можете использовать жезл, для экстренного возвращения, но он может с большой вероятностью сломать исследовательский портал навсегда.
Вы можете использовать портал, однако, будьте осторожны; я чувствую чуждое присутствие в комнате портала.]],
answers = {
{"Я это проверю, спасибо.", action=function() q:spawn_farportal_guardian() end},
}
}
newChat{ id="recall",
text = [[Жезл Возвращения, который у вас, не является артефактом Шер'Тула, но он основан на дизайне Шер'Тулов.
У «крепости» теперь достаточно энергии, чтобы его обновить. Он может быть изменён по возвращении в «крепость».]],
answers = {
{"Мне нравится и так. В любом случае спасибо."},
{"Это может оказаться весьма полезным. Да, пожалуйста, сделайте это.", action=function() q:upgrade_rod() end},
}
}
newChat{ id="training",
text = [[Да создатель, обучающее оборудование доступно на севере, но оно ещё не включено.
Для этого мне нужно использовать 50 частей энергии.]],
answers = {
{"Может быть, позже."},
{"Это может оказаться весьма полезным. Да, пожалуйста, сделайте это.", cond=function() return q.shertul_energy >= 50 end, action=function() q:open_training() end},
}
}
newChat{ id="shimmer",
text = [[Да создатель, Зеркало Отражений - это то, что вам нужно. В настоящее время оно находится в состоянии покоя, но может быть активировано.
Для этого мне нужно использовать 10 частей энергии.]]..(profile:isDonator(1) and "" or "\n#{italic}##CRIMSON#Эта функция чисто косметическая доступна только для спонсоров/закупщиков. Вы можете разблокировать комнату и осмотреть её, но вы не сможете подтвердить свой выбор.#{normal}#"),
answers = {
{"Может быть, позже."},
{"Это может оказаться весьма приятным. Да, пожалуйста, сделайте это.", cond=function() return q.shertul_energy >= 10 end, action=function() q:open_shimmer() end},
}
}
newChat{ id="transmo-gems",
text = [[Вы, кажется, овладели искусством упрощённой алхимии. Я могу изменить сундук, чтобы автоматически задействовать вашу силу, для извлечения драгоценного камня, если метаморфоза драгоценного камня нужна больше, чем энергия.
Однако, для этого мне нужно будет использовать 25 частей энергии.]],
answers = {
{"Может быть, позже."},
{"Это может оказаться весьма полезным. Да, пожалуйста, сделайте это.", cond=function() return q.shertul_energy >= 25 end, action=function() q:upgrade_transmo_gems() end},
}
}
newChat{ id="changetile",
text = [[Я могу изменить матрицу голографической проекции «крепости», чтобы удовлетворить ваши расовые вкусы. Однако это потребует 60 частей энергии.]],
answers = {
{"Можете ли вы изменить внешность на человека женского пола?", cond=function() return q.shertul_energy >= 60 end, action=function(npc, player)
q.shertul_energy = q.shertul_energy - 60
npc.replace_display = mod.class.Actor.new{
add_mos={{image = "npc/humanoid_female_sluttymaid.png", display_y=-1, display_h=2}},
-- shader = "shadow_simulacrum",
-- shader_args = { color = {0.2, 0.1, 0.8}, base = 0.5, time_factor = 500 },
}
npc:removeAllMOs()
game.level.map:updateMap(npc.x, npc.y)
game.level.map:particleEmitter(npc.x, npc.y, 1, "demon_teleport")
end},
{"Можете ли вы изменить внешность на человека мужского пола?", cond=function() return q.shertul_energy >= 60 end, action=function(npc, player)
q.shertul_energy = q.shertul_energy - 60
npc.replace_display = mod.class.Actor.new{
image = "invis.png",
add_mos={{image = "npc/humanoid_male_sluttymaid.png", display_y=-1, display_h=2}},
-- shader = "shadow_simulacrum",
-- shader_args = { color = {0.2, 0.1, 0.8}, base = 0.5, time_factor = 500 },
}
npc:removeAllMOs()
game.level.map:updateMap(npc.x, npc.y)
game.level.map:particleEmitter(npc.x, npc.y, 1, "demon_teleport")
end},
{"Пожалуйста, вернитесь к начальной внешности.", cond=function() return q.shertul_energy >= 60 end, action=function(npc, player)
q.shertul_energy = q.shertul_energy - 60
npc.replace_display = nil
npc:removeAllMOs()
game.level.map:updateMap(npc.x, npc.y)
game.level.map:particleEmitter(npc.x, npc.y, 1, "demon_teleport")
end},
{"Ну, на самом деле вы выглядите не так уж и плохо. Оставьте как есть."},
}
}
newChat{ id="permanent-cloak",
text = [[Да создатель. Я могу использовать 10 частей энергии, чтобы зачаровать ваш плащ. Когда вы его снимаете, эффект всё равно должен сохраниться.
Тем не менее, я бы предложил вам по-прежнему носить его с собой на случай, если по каким-либо причинам с вас снимется этот эффект.]],
answers = {
{"Не сейчас."},
{"Это может оказаться весьма полезным. Да, пожалуйста, сделайте это.", action=function(npc, player)
local cloak = player:findInAllInventoriesBy("define_as", "CLOAK_DECEPTION")
cloak.upgraded_cloak = true
q.shertul_energy = q.shertul_energy - 10
q:setStatus(engine.Quest.COMPLETED, "permanent-cloak")
end},
}
}
newChat{ id="cure-melinda",
text = [[Демоническая порча. Да, у меня есть способ помочь с архивами. Однако это долгий процесс, субъект должен будет жить здесь какое-то время.
Ей придётся проводить 8 часов в день в резервуаре регенерации.]],
answers = {
{"Это отличная новость! Я ей тотчас же скажу.", action=function(npc, player)
player:setQuestStatus("love-melinda", engine.Quest.COMPLETED, "can_come_fortress")
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-caldizar.lua.txt
newChat{ id="welcome",
text = [[#{italic}#Открыв дверь, вы с изумлением взираете на то, что находится за её пределами. Перед вами стоит существо с длинными, похожими на щупальца, отростками и небольшой выпуклостью вместо головы. Сильная аура власти исходит от него, отличаясь от всего, что вы когда-либо чувствовали раньше. Это может быть только Шер'Тул. Живой Шер'Тул!
Но ваше изумление пресеклось, когда Шер'Тул заметил вас, и вы чувствуете, что его нарастающая концентрация внимания обрушивается на вас, словно непреодолимая сила. Голос в голове гремит, #{normal}#]]..говорит..[[#{italic}#
Волна умственной и магической силы взрывается в вас мощью падающей звезды. Вы поднимаетесь в воздух и на каждый дюйм вашей кожи прикладывается сильное давление, угрожая раздавить вас в ничто. Вы пытаетесь оказать сопротивление на какое-то время, до тех пор...#{normal}#]],
answers = {
{"[продолжить]", jump="next", action=function(npc, player)
game:changeLevel(1, "shertul-fortress", {direct_switch=true})
local spot = game.level:pickSpot{type="spawn", subtype="farportal"} or {x=39, y=29}
game.player:move(spot.x, spot.y, true)
world:gainAchievement("CALDIZAR", game.player)
game.party:learnLore("shertul-fortress-caldizar")
end},
}
}
newChat{ id="next",
text = [[#{italic}#Вы приходите в себя рядом с вашим порталом, с пульсирующей болью в голове. На ваших щеках влага, коснувшись их, вы замечаете, что пальцы окрашены в красный цвет - вы плакали слезами крови. Тёмное и страшное воспоминание скрывается в глубине вашего разума, но чем больше вы пытаетесь вспомнить, тем труднее это становится сделать и постепенно тускнеет словно сон.#{normal}#]],
answers = {
{"[завершить]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-command-orb.lua.txt
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Эта сфера, очевидно, представляет мир Эяла в целом. Она также, вероятно, используется для управления «крепостью».
]]..(not read and [[Вы не понимаете эти надписи.#WHITE#*
#{italic}#"Рокзан крилт копру."#{normal}#]] or [[#WHITE#*#{italic}#"Вставьте жезл контроля."#{normal}#]]),
answers = {
{"[Изучить сферу]", jump="examine", cond=has_rod},
{"[Взлёт «крепости» - #LIGHT_RED#ТОЛЬКО ТЕСТОВЫЙ РЕЖИМ#LAST#]", action=function(npc, player) player:hasQuest("shertul-fortress"):fly() end, cond=function() return config.settings.cheat end},
{"[Начать церемонию обращения в лича]", cond=function(npc, player) local q = player:hasQuest("lichform") return q and q:check_lichform(player) end, action=function(npc, player) player:setQuestStatus("lichform", engine.Quest.COMPLETED) end},
{"[Оставить сферу в покое]"},
}
}
newChat{ id="examine",
text = [[*#LIGHT_GREEN#Устройство, очевидно, изготовлено из чистого кристалла. Он представляет собой очень точную карту известного мира - включая запретный южный континент.
В нём есть отверстие по размеру и форме подходящее под жезл Возвращения.#WHITE#*]],
answers = {
{"[Вставить жезл]", jump="activate"},
{"[Оставить сферу в покое]"},
}
}
newChat{ id="activate",
text = [[*#LIGHT_GREEN#Когда вы подносите жезл ближе к сфере, он начинает вибрировать.
В углу комнаты появляется тень! Вы сразу же вынимаете жезл, но тень остаётся.
Она похожа на ужасы, с которыми вы сражались, когда заходили, только менее деградировавшей.
Она выглядит почти как гуманоид, но у неё нет головы, а её конечности выглядят как щупальца. Она не кажется враждебной.#WHITE#*]],
answers = {
{"[Оставить сферу в покое]", action=function(npc, player)
player:hasQuest("shertul-fortress"):spawn_butler()
end,},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-gladium-orb.lua.txt
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Эта сфера используется для управления ареной.#WHITE#*]],
answers = {
{"[Вернуться в крепость]", action=function() game:changeLevel(1, "shertul-fortress") end},
{"[Оставить сферу в покое]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-shimmer.lua.txt
answers[#answers+1] = {"[Изменить внешний вид "..o:getName{do_color=true, no_add_name=true}.."]", action=shimmer(player, slot), jump="welcome"}
answers[#answers+1] = {"[Оставить зеркало в покое]"}
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Когда вы смотрите в зеркало, вы видите бесконечное количество чуть различающихся своих отражений. У вас закружилась голова.#WHITE#*]],
answers = answers
}
return "welcome"
file/game/modules/tome.team/data/chats/shertul-fortress-training-orb.lua.txt
GetQuantity.new("Все сопротивления", "От 0 до 100", 0, 100, function(qty)
qty = util.bound(qty, 0, 100)
for uid, e in pairs(game.level.entities) do
if e.define_as == "TRAINING_DUMMY" then e.resists.all = qty end
end
end, 1)
GetQuantity.new("Эффективность брони", "От 0 до 100", 0, 100, function(qty)
qty = util.bound(qty, 0, 100)
for uid, e in pairs(game.level.entities) do
if e.define_as == "TRAINING_DUMMY" then e.combat_armor_hardiness = qty - 30 end
end
game:registerDialog(GetQuantity.new("Броня", "От 0 до 1000", 0, 1000, function(qty)
qty = util.bound(qty, 0, 1000)
for uid, e in pairs(game.level.entities) do
if e.define_as == "TRAINING_DUMMY" then e.combat_armor = qty end
end
end, 1))
end, 1)
newChat{ id="welcome",
text = [[*#LIGHT_GREEN#Эта сфера используется для управления оборудованием для тренировки.#WHITE#*]],
answers = {
{"[Создать один тренировочный манекен]", action=dummies(1)},
{"[Создать два тренировочных манекена]", action=dummies(2)},
{"[Создать три тренировочных манекена]", action=dummies(3)},
{"[Создать пять тренировочных манекенов]", action=dummies(5)},
{"[Создать десять тренировочных манекенов]", action=dummies(10)},
{"[Заменить у манекенов доспехи]", action=armor_dummies},
{"[Изменить у манекенов сопротивляемость]", action=resist_dummies},
{"[Сброс]", action=remove_dummies},
{"[Оставить сферу в покое]"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/slasul.lua.txt
newChat{ id="welcome",
text = [[Что это? Зачем вы пришли в мой храм и убили моих последователей?
Говорите или умрите, ведь я Сласул, и вы не нарушите моих планов.]],
answers = {
{"[Атаковать]", action=attack("So be it... Die now!")},
{"Меня отправил Уклмсвик, чтобы остановить ваши безумные планы для контроля всей подводной жизни!", jump="quest"},
}
}
newChat{ id="quest",
text = [[Ясно. Значит, вас послал дракон. Полагаю, он сказал, что я сумасшедший?
Но кто из нас действительно злой? Я, стремящийся улучшить свой народ, никому не причинивший вреда, или вы, пришедший сюда, чтобы убить меня, уничтожить моих друзей и планирующий сделать то же самое со мной?
Так кто безумней?]],
answers = {
{"Ваша жалкая попытка склонить меня со стороны добра не сработает. Заплати за свои прегрешения!", action=attack("Если вы отказываетесь здраво мыслить, вы не оставляете мне выбора!")},
{"Ваши слова... тревожат. Зачем мне вас щадить?", jump="givequest"},
}
}
newChat{ id="givequest",
text = [[Щадить?#LIGHT_GREEN#*Он засмеялся.*#WHITE#
Не будьте столь поспешны в выводах, что ВЫ в состоянии оказать МНЕ прощение!
Я расскажу вам свою историю. Вы, поверхностные жители, мало знаете о нагах, но позвольте мне сказать вам следующее: наше нынешнее состояние не было нашим выбором.
Когда Налор затонул, многие из нас погибли, поэтому мы прибегли к магии этого храма. Это сработало, она спасла нас, и всё же мы прокляты. Прокляты этим видом, созданным ужасной магией.
Если вы не верите ничему другому из того, что я говорю, пожалуйста, поверьте, по крайней мере, этому: Шер'Тул скрываются, они не ушли и они не такие уж доброжелательные.
Недавно этот водный дракон, который послал вас сюда, начал засылать «представителей» для защиты храма. Я могу только представить его цели, но они явно не мирные.]],
answers = {
{"Вы не кажетесь безумным... может, Уклмсвик солгал?", jump="portal_back", action=function(npc, player) player:setQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "slasul-story") end},
{"Меня не обмануть вашей ложью! Я совершу возмездие от имени потерпевших!", action=attack("Как хотите. Это не должно было так случиться...")},
}
}
newChat{ id="portal_back",
text = [[Используйте портал, он вернёт вас в его пещеру, и спросите его правду.]],
answers = {
{"Я заставлю его заплатить за его предательство.", action=function(npc, player)
player:hasQuest("temple-of-creation"):portal_back()
for uid, e in pairs(game.level.entities) do
if e.faction == "enemies" then e.faction = "temple-of-creation" end
end
end},
}
}
newChat{ id="welcome",
text = [[Спасибо, что выслушали меня.]],
answers = {
{"Дракон лжёт, я чувствую это. Я буду придерживаться вашей версии.", jump="cause", cond=function(npc, player) return player:knowTalent(player.T_LEGACY_OF_THE_NALOREN) and not player:isQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "legacy-naloren") end},
{"Прощайте, Сласул."},
{"[Атаковать]", action=attack("Да будет так... Умри!")},
}
}
newChat{ id="cause",
text = [[Я в тайне надеялся, что вы так поступите.
Тогда давайте скрепим этот союз. Поделитесь своей жизненной силой со мной! Пока вы живы, меня не убьют!
Взамен позвольте предложить вам этот мощный трезубец.]],
answers = {
{"Я принимаю ваше предложение, мой господин.", action=function(npc, player)
local o = game.zone:makeEntityByName(game.level, "object", "LEGACY_NALOREN", true)
if o then
o:identify(true)
player:addObject(player.INVEN_INVEN, o)
npc:doEmote("LET US BE BOUND!", 150)
game.level.map:particleEmitter(npc.x, npc.y, 1, "demon_teleport")
game.level.map:particleEmitter(player.x, player.y, 1, "demon_teleport")
npc.invulnerable = 1
npc.never_anger = 1
player:setQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "legacy-naloren")
end
end},
{"Это странно звучит. Мне нужно обдумать."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/sorcerer-end.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами лежат два мёртвых волшебника.*#WHITE#
#LIGHT_GREEN#*Их тела исчезают в небольшом облаке тумана, и довольно быстро.*#WHITE#
#LIGHT_GREEN#*Вы чувствуете как Путь обращается к вам, вся раса йииков говорит с вами.*#WHITE#
Вы совершили что-то невероятное ]]..(p.female and "sister" or "brother")..[[Вы также создали уникальную возможность для расы йииков!
Энергия этих порталов невероятна, используя их, мы могли бы распространить Путь по всему Эялу, навязывая его другим расам и неся им мир и счастье, которые мы чувствуем на Пути.
Вы должны пройти через портал и добровольно пожертвовать собой. Ваше сознание сольётся с энергией порталов, распространяя Путь везде и всюду!
Даже при том, что вы умрёте, вы приблизите планету и йииков к абсолютному миру.
Путь никогда не забудет вас. Теперь идите и вершите историю!
]],
answers = {
{"#LIGHT_GREEN#[Пожертвовать собой, нести Путь к каждому разумному существу.]", action=function(npc, player)
player.no_resurrect = true
player:die(player, {special_death_msg="sacrificing "..string.his_her_self(player).." to bring the Way to all"})
player:setQuestStatus("high-peak", engine.Quest.COMPLETED, "yeek")
player:hasQuest("high-peak"):win("yeek-sacrifice")
end},
{"Но... У меня столько заслуг, я могу сделать намного больше для Пути, не жертвуя собой!", jump="yeek-unsure"},
}
}
newChat{ id="yeek-unsure",
text = [[#LIGHT_GREEN#*Вы чувствуете, как Путь завладевает вашим разумом, вашим телом.*#WHITE#
Вы сделаете, как требуется, на благо всех йииков! Путь всегда прав.
]],
answers = {
{"#LIGHT_GREEN#[Пожертвовать собой, нести Путь к каждому разумному существу.]", action=function(npc, player)
player.no_resurrect = true
player:die(player, {special_death_msg="sacrificing "..string.his_her_self(player).." to bring the Way to all"})
player:setQuestStatus("high-peak", engine.Quest.COMPLETED, "yeek")
player:hasQuest("high-peak"):win("yeek-sacrifice")
end},
{"#LIGHT_GREEN#[В последнем невероятном проявлении силы воли вы несколько секунд сопротивляетесь Пути, позволяя вам передать свои мысли Айрин.]#WHITE# Госпожа! Убейте меня #{bold}#СЕЙЧАС#{normal}#",
cond=function(npc, player) return not void_portal_open(nil, player) and aeryn_alive(npc, player) and player:getWil() >= 55 end, jump="yeek-stab"
},
}
}
newChat{ id="yeek-stab",
text = [[#LIGHT_GREEN#*Через ваш разум Айрин видит, что планирует Путь.*#WHITE#
Вы были драгоценным союзником и другом. Мир не забудет ваш последний акт самопожертвования. Клянусь.
#LIGHT_GREEN#*Сказав это, она пронзила ваше тело мощным ударом своего меча, прекращая планы Пути.*#WHITE#
]],
answers = {
{"#LIGHT_GREEN#[Спокойно умереть.]", action=function(npc, player)
player.no_resurrect = true
player:die(player, {special_death_msg="sacrificing "..string.his_her_self(player).." to stop the Way"})
player:setQuestStatus("high-peak", engine.Quest.COMPLETED, "yeek-stab")
player:hasQuest("high-peak"):win("yeek-selfless")
end},
}
}
return "welcome"
end
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами лежат два мёртвых волшебника.*#WHITE#
#LIGHT_GREEN#*Их тела исчезают в небольшом облаке тумана, и довольно быстро.*#WHITE#
Но портал Пустоты уже открыт. Он должен быть закрыт до того, как Творец сможет пройти, или всё будет напрасно!
Обыскав останки волшебников вы находите записку, объясняющую, что портал можно закрыть только принеся в жертву разумное существо.]],
answers = {
{"Айрин, я сожалею, но один из нас должен быть принесён в жертву, чтобы мир существовал дольше. #LIGHT_GREEN#[Пожертвовать Айрин во имя мира]", jump="aeryn-sacrifice", cond=aeryn_alive},
{"Я закрою его. #LIGHT_GREEN#[Пожертвовать собой во имя мира]", action=function(npc, player)
player.no_resurrect = true
player:die(player, {special_death_msg="sacrificing "..string.his_her_self(player).." for the sake of the world"})
player:hasQuest("high-peak"):win("self-sacrifice")
end},
}
}
newChat{ id="aeryn-sacrifice",
text = [[Не могу поверить, что нам удалось. Я была готова умереть, и, похоже, я умру, но, по крайней мере, я сделаю это, зная, что моя жертва не напрасна.
Пожалуйста, убедитесь, что мир в безопасности.]],
answers = {
{"Вас никогда не забудут.", action=function(npc, player)
local aeryn = aeryn_alive(npc, player)
game.level:removeEntity(aeryn, true)
player:hasQuest("high-peak"):win("aeryn-sacrifice")
end},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами лежат два мёртвых волшебника.*#WHITE#
#LIGHT_GREEN#*Их тела исчезают в некой нематериальной дымке.*#WHITE#
Вы прошли игру!
Мадж'Эял и Дальний Восток безопасны от тёмных планов волшебников и их бога.]],
answers = {
{"Айрин, вы в порядке?", jump="aeryn-ok", cond=aeryn_alive},
{"[Уйти]", action=function(npc, player) player:hasQuest("high-peak"):win("full") end},
}
}
newChat{ id="aeryn-ok",
text = [[Не могу поверить, что нам удалось. Я была готова умереть, и всё же я живу.
Возможно, я недооценила вас. Вы сделали больше, чем мы могли надеяться!]],
answers = {
{"Мы оба это сделали.", action=function(npc, player) player:hasQuest("high-peak"):win("full") end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/sorcerer-fight.lua.txt
game.logPlayer(player, "Рядом с вами Верховный Паладин Солнца Айрин!")
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Два волшебника стоят перед вами, сияющие, как солнце.*#WHITE#
Наш гость наконец-то здесь. Полагаю, вы нашли гору занимательной?]],
answers = {
{"Избавьте меня от болтовни. Я здесь, чтобы остановить вас!", jump="explain"},
{"Зачем вы делаете всё это? Вы должны помогать людям!", jump="explain"},
}
}
newChat{ id="explain",
text = [[Но мы хотим только помочь людям. Мы пришли к очевидному выводу, что простые люди просто неспособны управлять собой, всегда спорят, что-то доказывают...
Со времени последнего вторжения орков не было ни одной угрозы для их сплочения!]],
answers = {
{"Так вы решили стать сами угрозой?", jump="explain2"},
}
}
newChat{ id="explain2",
text = [[Мы? Нет, мы просто инструменты для наставника. Мы запланировали Его возвращение.]],
answers = {
{"А «Он» это... кто?", jump="explain3"},
}
}
newChat{ id="explain3",
text = [[Творец. Бог, сотворивший этот мир, Тот, кто молча смотрел, как расы сражались и жгли землю.
Тот, кто чувствовал большую скорбь в этом мире. Тот, кто теперь разрушит барьеры этого мира, чтобы переделать его к лучшему!
Посох позволил нам вытянуть достаточно энергии из этого мира, чтобы открыть портал Пустоты и вызвать Его!
Уже слишком поздно. Пока мы говорим, он идёт, это вопрос всего лишь нескольких часов!]],
answers = {
{"Я остановлю вас! Конца света наступит не сегодня!", jump="aeryn", switch_npc={name="High Sun Paladin Aeryn"}, action=aeryn_comes, cond=aeryn_alive},
{"Я остановлю вас! Мир не закончится сегодня!", cond=aeryn_dead},
}
}
newChat{ id="explain3",
text = [[Творец. Бог, сотворивший этот мир, Тот, кто молча смотрел, как расы сражались и жгли землю.
Тот, кто чувствовал большую скорбь в этом мире. Тот, кто теперь разрушит барьеры этого мира, чтобы переделать его к лучшему!
Посох позволил нам вытянуть достаточно энергии из этого мира, чтобы открыть портал Пустоты и вызвать Его!
Вы не сможете остановить нас!]],
answers = {
{"Я остановлю вас! Конца света наступит не сегодня!", jump="aeryn", switch_npc={name="High Sun Paladin Aeryn"}, action=aeryn_comes, cond=aeryn_alive},
{"Я остановлю вас! Мир не закончится сегодня!", cond=aeryn_dead},
}
}
newChat{ id="aeryn",
text = [[#LIGHT_GREEN#*Воздух завихряется рядом с вами и неожиданно появляется Верховный Паладин Солнца Айрин!*#WHITE#
Вам не придётся сражаться в одиночестве! Вместе мы или остановим их или умрём, пытаясь это сделать!]],
answers = {
{"Мне приятно, что вы рядом со мной, миледи. Давайте поохотимся на волшебников!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/tannen.lua.txt
player:findInAllInventories("Резонирующий алмаз")
player:findInAllInventories("Окровавленный рунный атам")
player:findInAllInventories("Резонирующий алмаз")
player:findInAllInventories("Окровавленный рунный атам")
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Никто не отвечает.*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Никто не отвечает. Таннен, вероятно, всё ещё занят изучением сферы.*#WHITE#]],
answers = {
{"[Уйти]"},
}
}
newChat{ id="welcome",
text = [[Чем я могу быть полезным, любезный @playerdescriptor.race@?]],
answers = {
{"[Пересказать ему историю о посохе, сфере Множества Путей и порталах.]", jump="east_portal1", cond=function(npc, player) local q = player:hasQuest("east-portal"); return q and q:isCompleted("talked-elder") and not q:isCompleted("gotoreknor") end},
{"У меня есть алмаз и атам. [Вручить ему атам и алмаз]", jump="has_material_gave_orb", cond=check_materials_gave_orb},
{"У меня есть алмаз и атам. [Вручить ему атам и алмаз]", jump="has_material_withheld_orb", cond=check_materials_withheld_orb},
{"Вороватый, кровожадный негодяй. Готовься к смерти!", jump="fake_orb_end", cond=function(npc, player) local q = player:hasQuest("east-portal"); return q and q:isCompleted("tricked-demon") end},
{"Как ваше исследование? Готовы ли мы создать портал?", jump="wait_end", cond=function(npc, player) local q = player:hasQuest("east-portal"); return q and q:isCompleted("open-telmur") end},
{"Ничего, извините. Пока!"},
}
}
newChat{ id="east_portal1",
text = [[Поразительно! Мне известно об этой сфере из древних текстов и легенд. Могу я увидеть её?]],
answers = {
{"[Показать ему сферу Множества Путей]", jump="east_portal2"},
}
}
newChat{ id="east_portal2",
text = [[Воистину, это работа великого мастера. Возможно, сама Линаниил приложила свою руку. И вы говорите, что у вас есть инструкция по её использованию?]],
answers = {
{"Да. [Показать ему небрежно написанные заметки Земеккиса]", jump="east_portal3"},
}
}
newChat{ id="east_portal3",
text = [[#LIGHT_GREEN#*Он тратит несколько минут на прочтение*#WHITE# Ага! Ясно. Я поначалу не понимал методов Земеккиса, но теперь вижу о чём они и лишь его почерк нуждается в улучшении. Мы сможем воспроизвести его работу здесь, но, как он сообщает, нам понадобится Окровавленный Рунный Атам и Резонирующий Алмаз.]],
answers = {
{"Вы знаете, где их можно найти?", jump="east_portal4"},
}
}
newChat{ id="east_portal4",
text = [[Если орки создали портал в глубине Рекнора, они должны были иметь доступ к таким предметам. И если эти предметы не могут пройти через созданный ими портал, то разумно предположить, что они всё ещё находятся в Мадж'Эяле. Я бы поискал в Рекноре, начиная возле самого портала. Возможно, после его создания, атам и алмаз остались где-то поблизости.]],
answers = {
{"Начну поиски. Спасибо.", jump="east_portal5"},
}
}
newChat{ id="east_portal5",
text = [[И ещё. Пока вы ищете, я бы подержал сферу Множества Путей у себя. Мне недостаёт мастерства, которым обладает этот хрономант Земеккис, и я получу много знаний по этой теме, если последую по его стопам.]],
answers = {
{"[Вручить ему сферу] ", action=function(npc, player) player:hasQuest("east-portal"):give_orb(player) end, jump="gave_orb"},
{"Мне пока нужна сфера.", action=function(npc, player) player:hasQuest("east-portal"):withheld_orb(player) end, jump="withheld_orb"},
}
}
newChat{ id="gave_orb",
text = [[Спасибо. Я буду относиться к ней с особой осторожностью.]],
answers = {
{"Прощайте. Я принесу атам и алмаз.", action=function(npc, player) player:hasQuest("east-portal"):setStatus(engine.Quest.COMPLETED, "gotoreknor") end},
}
}
newChat{ id="withheld_orb",
text = [[Очень хорошо. Это не к спеху. Но мне нужно будет потратить несколько дней на его изучение, прежде чем мы сможем создать ваш портал.]],
answers = {
{"Я понимаю. Я принесу атам и алмаз.", action=function(npc, player) player:hasQuest("east-portal"):setStatus(engine.Quest.COMPLETED, "gotoreknor") end},
}
}
newChat{ id="has_material_gave_orb",
text = [[Отлично. Возвращайтесь через несколько дней и у меня всё будет готово. Ах да, возьмите это. #LIGHT_GREEN#*Он вручает вам ключ*#WHITE# Он откроет вам путь к руинам Телмура, который много лет назад запечатали люди Шолтара. Если вам удастся найти в руинах материал под названием «Зеркальные и обратимые пространства вероятностей», вернитесь с ним и ваши шансы выжить, с нашими попытками с порталом, резко возрастут.]],
answers = {
{"Спасибо и прощайте.", action=function(npc, player) player:hasQuest("east-portal"):open_telmur(player) end},
}
}
newChat{ id="has_material_withheld_orb",
text = [[Отлично. Вы всё ещё готовы оставить на время сферу на моё попечение?]],
answers = {
{"Я не смею расстаться с ним. Мне жаль.", jump="no_orb_loan"},
{"Вот. Соблюдайте осторожность. Мне нужно в ближайшее время вернуться в Дальний Восток.", jump="orb_loan"},
}
}
newChat{ id="no_orb_loan",
text = [[#LIGHT_GREEN#*Старик вздыхает*#WHITE# Очень хорошо. Полагаю, я должен довольствоваться беглым ознакомлением под вашим присмотром.]],
answers = {
{"[Вручить ему сферу]", jump="no_orb_loan2"},
}
}
newChat{ id="no_orb_loan2",
text = [[Спасибо. Дайте мне пару минут. #LIGHT_GREEN#*Он начинает расхаживать взад-вперёд глядя на сферу.*#WHITE#]],
answers = {
{"[Ждать]", jump="no_orb_loan3"},
}
}
newChat{ id="no_orb_loan3",
text = [[#LIGHT_GREEN#*Он перестаёт ходить и возвращает вам сферу.*#WHITE# Я считаю, что знаю большую часть из того, что мне нужно. Но мне надо прояснить несколько деталей. Вам придётся вернуться к этому эльфийскому хрономанту и спросить его, относительно его слов: зеркальное пространство вероятности или обратимое пространство вероятности. Я боюсь предположить, какими неприятными могут быть для вас последствия.]],
answers = {
{"Я вернусь с ответом.", action=function(npc, player) player:hasQuest("east-portal"):ask_east(player) end},
}
}
newChat{ id="orb_loan",
text = [[Не бойтесь. Возвращайтесь через несколько дней и у меня всё будет готово. Ах да, возьмите это. #LIGHT_GREEN#*Он вручает вам ключ*#WHITE# Он откроет вам путь к руинам Телмура, который много лет назад запечатали люди Шолтара. Если вам удастся найти в руинах материал под названием «Зеркальные и обратимые пространства вероятностей», вернитесь с ним и ваши шансы выжить, с нашими попытками с порталом, резко возрастут.]],
answers = {
{"Спасибо и прощайте.", action=function(npc, player) player:hasQuest("east-portal"):open_telmur(player) end},
}
}
newChat{ id="fake_orb_end",
text = [[Я так не думаю. Посмотрите вниз.
#LIGHT_GREEN#*Вы замечаете, что стоите на выгравированном в полу портале.*#WHITE#]],
answers = {
{"Что за...", action=function(npc, player) player:hasQuest("east-portal"):tannen_tower(player) end},
}
}
newChat{ id="wait_end",
text = [[Я готов. Вы нет. Посмотрите вниз.
#LIGHT_GREEN#*Вы замечаете, что стоите на выгравированном в полу портале.*#WHITE#]],
answers = {
{"Что за...", action=function(npc, player) player:hasQuest("east-portal"):tannen_tower(player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/tarelion-start-archmage.lua.txt
newChat{ id="welcome",
text = [[Подождите минуту!]],
answers = {
{"Архимаг Тарелион?", jump="next1"},
}
}
newChat{ id="next1",
text = [[Да @playername@, я слышал, что вы планируете отправиться в дикие места, путешествуя по своей воле.
Это хорошо, всем нам нужно время от времени выбираться отсюда и по-настоящему помогать людям.
Скажите, может вам нужно приключение, и вы захотите помочь Анголвену?]],
answers = {
{"Возможно, что вам нужно?", jump="next2"},
}
}
newChat{ id="next2",
text = [[В период «Небесного огня» мир был разорван на части, в буквальном смысле. Часть его была вырвана из мира и брошена в пустоту меж звёзд и теперь носит название - Возмущённое пространство.
Нам удалось стабилизировать его, и теперь он вращается вокруг Эяла. Недавно мы заметили там неисправность; если мы ничего не сделаем, он рухнет на Эял, оставляя после себя большие разрушения.
Поскольку это когда-то было частью земли, которую мы хорошо знаем, мы можем телепортировать вас туда. Вам нужно будет стабилизировать три червоточины, забросав их любым заклинанием атаки.
Нестабильность также в ваших интересах, ваше заклинание фазовой двери будет полностью управляемо.
Так, как вы думаете, вы можете нам помочь?]],
answers = {
{"Да, архимаг, пошлите меня туда!", jump="teleport"},
{"Нет, простите, мне нужно идти.", jump="refuse"},
}
}
newChat{ id="teleport",
text = [[Удачи!]],
answers = {
{"[Телепортироваться]", action=function(npc, player) game:changeLevel(1, "abashed-expanse", {direct_switch=true}) end},
}
}
newChat{ id="refuse",
text = [[Ну что ж, удачи в ваших путешествиях. Теперь мне нужно найти кого-нибудь ещё, кто отправится туда.]],
answers = {
{"Пока.", action=function(npc, player) player:setQuestStatus("start-archmage", engine.Quest.FAILED) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/tarelion.lua.txt
newChat{ id="apprentice",
text = [[Ну сопляк ты и глазастый! Действительно, когда я в настроении, я иногда путешествую под маской подмастерья. Это позволяет мне пересекать незаметно земли в моих исследованиях и если я встречаюсь с теми, кого я считаю достойными и сочувствующими делу Анголвена, то так даже лучше. Это вызывает эксцентричное ликование скажу я вам!]],
answers = {
{"Да, конечно... Я пойду дальше."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/temporal-rift-end.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Высокий человек, сияющий как звезда, появляется из ниоткуда.*#WHITE#
Вы «это» тоже уничтожили? Я сожалею о своём резком тоне, когда мы впервые встретились, но ремонтировать временные потоки - это стресс.
Я не могу остаться. Мне ещё многое предстоит сделать. Но вот возьмите, это поможет вам.
#LIGHT_GREEN#*Он снова исчезает, прежде чем вы смогли ответить. Разлом открывается, к Мадж'Эялу... вы надеетесь.*#WHITE#]],
answers = {
{"Ну...", action = function(npc, player) game:onLevelLoad("temporal-rift-4", function()
local o = game.zone:makeEntityByName(game.level, "object", "RUNE_RIFT")
if o then
o:identify(true)
game.zone:addEntity(game.level, o, "object")
game.player:addObject(game.player.INVEN_INVEN, o)
game.log("Временной воитель даёт вам: %s.", o:getName{do_color=true})
end
game:setAllowedBuild("chronomancer")
game:setAllowedBuild("chronomancer_temporal_warden", true)
local g = game.zone:makeEntityByName(game.level, "terrain", "RIFT")
g.change_level = 3
g.change_zone = "daikara"
local oe = game.level.map(game.player.x, game.player.y, engine.Map.TERRAIN)
if oe:attr("temporary") and oe.old_feat then
oe.old_feat = g
else
game.zone:addEntity(game.level, g, "terrain", game.player.x, game.player.y)
end
end) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/temporal-rift-start.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Высокий человек, сияющий как звезда, появляется из ниоткуда.*#WHITE#
О нет, ещё один «авантюрист»! Вы не должны заниматься вещами, которые выше вашего понимания!
Не лезьте в дела Времени, потому что оно быстро проходит и легко нарушается!
#LIGHT_GREEN#*Он пристально смотрит на вас.*#WHITE#
Вы кажетесь способным. Помогите мне, сражайтесь с мерзостями, пока я исправляю временную последовательность. Это ваш единственный выход!]],
answers = {
{"Но что всё это...", action = function(npc, player) game:changeLevel(2) game.player:grantQuest("temporal-rift") end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/the-master-resurrect.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Мастер падает перед вами, побеждённый. Но вы видите, как в мгновение ока его облик воссоздаётся из праха, невредимый и готовый снова сражаться!*#WHITE#
Ха-ха, дурачьё! Смотри, даже смерть ничего не значит для меня; я Мастер, а ты моя игрушка, сейчас и навсегда.]],
answers = {
{"Никогда! Умри!"},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/trap-priming.lua.txt
game.logPlayer(player, "#LIGHT_BLUE#Вы не можете создать эту ловушку: %s.", unlearnable)
return "welcome"
file/game/modules/tome.team/data/chats/tutorial-start.lua.txt
newChat{ id="welcome",
text = [[Привет. Что вас интересует?]],
answers = {
{"Основы геймплея",
action = function(npc, player)
game:changeLevel(2, "tutorial")
q:choose_basic_gameplay()
player:setQuestStatus("tutorial", engine.Quest.COMPLETED, "started-basic-gameplay")
end},
{"Механика боевых характеристик",
action = function(npc, player)
game:changeLevel(3, "tutorial")
q:choose_combat_stats()
player:setQuestStatus("tutorial", engine.Quest.COMPLETED, "started-combat-stats")
end},
{"Неважно."},
{"Нет ничего, чему я могу ещё научиться?",
jump = "done",
cond = function(npc, player) return q and q:isCompleted("finished-basic-gameplay") and q:isCompleted("finished-combat-stats") end,
},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ukllmswwik.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Низкий голос @npcname@ раздаётся в пещерах*#WHITE#
Это моя территория и я не люблю незваных гостей. С какой целью вы здесь?]],
answers = {
{"Я здесь, чтобы убить тебя и забрать твои сокровища! Умри, чёртова рыба!", action=attack("УМРИ!")},
{"Я здесь случайно. Я сейчас уйду.", jump="quest"},
}
}
newChat{ id="quest",
text = [[Подождите! Вы, кажется, достойны, поэтому позвольте мне рассказать вам историю.
В эпоху Погребальных костров мир был разорван последними эффектами Небесного огня. Часть континентального шельфа Мадж'Эяла раскололась на части и опустилась в море.
Эльфы Налорена погибли... примерно так думает мир. Некоторые из них выжили; используя древнюю магию Шер'Тула, которую они сохранили для себя, они трансформировались, чтобы жить под водой.
Теперь их называют нагами. Они живут глубоко в океане между Мадж'Эялом и Дальним Востоком.
Один из них, Сласул, восстал против порядка и решил завладеть миром, как под водой, так и выше. Он нашел древний храм, вероятно оставшийся от Шер'Тулов, названный храмом Сотворения.
Он считает, что сможет использовать его для #{italic}#улучшения#{normal}# нагов.
Но он сошёл с ума, и теперь рассматривает любую другую разумную водную жизнь как угрозу, включая и меня.
Я не могу покинуть это святилище, но, может быть, вы могли бы мне помочь?
В конце концов, это был бы акт милосердия, чтобы положить конец его безумию.]],
answers = {
{"Я всё равно убью тебя и заберу твои сокровища!", action=attack("УМРИ!")},
{"Я сделаю, как вы говорите, но как мне его найти?", jump="givequest"},
{"Это кажется... неразумным. Приношу свои извинения, но я отказываюсь.", action=function(npc, player) player:grantQuest("temple-of-creation") player:setQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "drake-story") player:setQuestStatus("temple-of-creation", engine.Quest.FAILED) end},
}
}
newChat{ id="givequest",
text = [[Я могу открыть портал в своём логове, далеко в западном море, но будьте осторожны: он односторонний. Я не могу вернуть вас. Вам придётся найти свой собственный путь.]],
answers = {
{"Ладно.", action=function(npc, player) player:grantQuest("temple-of-creation") player:setQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "drake-story") end},
{"Это смертельная ловушка! Прощайте.", action=function(npc, player) player:grantQuest("temple-of-creation") player:setQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "drake-story") player:setQuestStatus("temple-of-creation", engine.Quest.FAILED) end},
}
}
newChat{ id="welcome",
text = [[Да?]],
answers = {
{"[Атаковать]", action=attack("TREACHERY!")},
{"Я хочу твои сокровища, водная тварь!", action=attack("Oh, is that so? Well, COME GET THEM!")},
{"Я разговаривал со Сласулом и он не показался враждебным или безумным.", jump="slasul_friend", cond=function(npc, player) return player:isQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "slasul-story") and not player:isQuestStatus("temple-of-creation", engine.Quest.COMPLETED, "kill-slasul") end},
{"Прощай, дракон."},
}
}
newChat{ id="slasul_friend",
text = [[#LIGHT_GREEN#*@npcname@ рычит!*#WHITE# Вы прислушались ко лжи этого безумного нага!
Вы подкуплены! НЕЧЕСТНЫ!]],
answers = {
{"[Атаковать]", action=attack("НЕ ВМЕШИВАЙСЯ В ДЕЛА ДРАКОНОВ!")},
{"#LIGHT_GREEN#*Тряся головой.*#LAST#Он поколебал моё решение! Пожалуйста, я не ваш враг.", jump="last_chance", cond=function(npc, player) return rng.percent(30 + player:getLck()) end},
}
}
newChat{ id="last_chance",
text = [[#LIGHT_GREEN#*@npcname@ успокоился!*#WHITE# Очень хорошо. Он действительно обманщик. Теперь закончите свою задачу или не возвращайтесь!]],
answers = {
{"Благодарю вас, о всемогущий."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/undead-start-game.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами человек, одетый в чёрную мантию. Кажется, он игнорирует вас.*#WHITE#
#LIGHT_GREEN#*Вы стоите внутри какого-то призывающего круга, который мешает вам двигаться.*#WHITE#
О да! Да, ещё один для моей коллекции. Да, моя коллекция. Безусловно сильный!]],
answers = {
{"[Слушать]", jump="welcome2"},
}
}
newChat{ id="welcome2",
text = [[Мощный инструмент против моих врагов. Да, да. Они все ненавидят меня, но я покажу им свою силу!
Я покажу им! ОНИ УВИДЯТ!]],
answers = {
{"Я не инструмент! ОТПУСТИ МЕНЯ!", jump="welcome3"},
}
}
newChat{ id="welcome3",
text = [[Ты не можешь разговаривать. Нельзя говорить! Ты раб, инструмент!
Ты мой! Молчи!
#LIGHT_GREEN#*Пока его рассудок где-то дрейфует, вы замечаете, что часть призывающего круга исчезает. Вы можете сбежать!*#WHITE#
]],
answers = {
{"[Атаковать]", action=function(npc, player)
local floor = game.zone:makeEntityByName(game.level, "terrain", "SUMMON_CIRCLE_BROKEN")
game.zone:addEntity(game.level, floor, "terrain", 22, 3)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/undead-start-kill.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Он падает на колени.*#WHITE#
Пожалуйста, пощади меня! Я так ничтожен. Я не остановлю тебя. Позволь мне уйти!]],
answers = {
{"Нет!", jump="welcome2"},
}
}
newChat{ id="welcome2",
text = [[Но, вы были моим... вы...
Вы нужны мне! Как вы думаете, что вы будете делать на поверхности? Все, кого вы встретите, попытаются уничтожить вас.
Вы сильны, но вы не сможете противостоять им всем!]],
answers = {
{"Так что вы предлагаете?", jump="what"},
{"[Убить его]", action=function(npc, player)
npc.die = nil
npc:doEmote("ARRGGggg... You are alone! You will be destroyed!", 60)
npc:die(player)
end},
}
}
newChat{ id="what",
text = [[Я могу дать вам плащ, который скроет вашу истинную природу!
При этом все люди будут видеть обычного человека. Вы можете заниматься своими делами.
Пожалуйста!]],
answers = {
{"Спасибо за информацию. Теперь ты умрёшь. [Убить его]", action=function(npc, player)
npc.die = nil
npc:doEmote("ARRGGggg... You are alone! You will be destroyed!", 60)
npc:die(player)
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/unremarkable-cave-bosses.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами красивая женщина-эльфийка в золотой мантии, смотрящая прямо в лицо облачённому в доспехи орку.*#WHITE#
Филларель: «Откажись от боя, орк! Ты не сможешь победить, на моей стороне сила солнца и тени Лун».
Крогар: «Ха! Прошёл всего один час, и ты уже устала, моя «леди»».
#LIGHT_GREEN#*Когда вы входите в помещение, они замечают вас.*#WHITE#
Филларель: «Ты! @playerdescriptor.race@! Помоги мне победить этого монстра или уходи!»
Крогар: «Ах, ищешь помощи? Ха. @playerdescriptor.race@, убей эту девку для меня, и я вознагражу тебя!»]],
answers = {
{"[Атаковать Крогара]", action=attack_krogar},
-- {"[Атаковать Филларель]", action=attack_fillarel, cond=function(npc, player) return not player:hasQuest("start-sunwall") and config.settings.cheat end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/unremarkable-cave-fillarel.lua.txt
newChat{ id="welcome",
text = [[Спасибо, @playername@. Я ненавижу это признавать, но вы спасли мне жизнь.]],
answers = {
{"К вашим услугам. Но могу ли я спросить, что вы делаете в этом тёмном месте?", jump="what", cond=function(npc, player) return not player:hasQuest("start-sunwall") end},
{"К вашим услугам. Меня не было несколько месяцев, но я чувствую, наконец, это моя родина!", jump="back", cond=function(npc, player) return player:hasQuest("start-sunwall") end},
}
}
newChat{ id="what",
text = [[Я - аноритил, маг Солнца и Луны; мы сражаемся со всем, что есть зло. Я был с группой паладинов Солнца; мы шли от Утренних Врат на восток.
Мои спутники... были убиты орками, и я чуть не умер. Ещё раз спасибо за вашу помощь.]],
answers = {
{"Мне было приятно. Но могу ли я попросить об одолжении для себя? Я не из этих земель. Меня доставил сюда портал, охраняемый орками глубоко под Железным троном и привезённый сюда.", action=function(npc, player) game:setAllowedBuild("divine") game:setAllowedBuild("divine_anorithil", true) end, jump="sunwall"},
}
}
newChat{ id="sunwall",
text = [[Да, я заметил, что вы не отсюда. Ваша единственная надежда - Утренние Врата, последний бастион свободы на этой территории орков. Когда вы покинете пещеры, идите на юго-восток; вы его точно не пропустите.
Скажите Верховному Паладину Солнца Айрин, что вы встретили меня. Я отправлю весточку, чтобы вас пропустили.]],
answers = {
{"Спасибо, я поговорю с Айрин.", action=function(npc, player) game.player:setQuestStatus("strange-new-world", engine.Quest.COMPLETED, "helped-fillarel") end},
}
}
newChat{ id="back",
text = [[Уходите? Подождите, это лицо... вы @playername@! Мы думали, что вы умерли после взрыва портала нага!
Благодаря вашему мужеству Утренние Врата всё ещё стоят.
Вы должны сразу идти туда.]],
answers = {
{"К сожалению, я вестник плохих новостей, орки что-то замышляют. Удачи, миледи."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/unremarkable-cave-krogar.lua.txt
newChat{ id="welcome",
text = [[@playerdescriptor.race@, вы помогли мне убить эльфийку. Клан орков благодарен вам... пока]],
answers = {
{"Я всё равно ненавижу эльфов..."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/ward.lua.txt
return "welcome"
file/game/modules/tome.team/data/chats/worldly-knowledge.lua.txt
newChat{ id="welcome",
text = [[Научиться какой категории?]],
answers = generate_rewards(),
}
return "welcome"
file/game/modules/tome.team/data/chats/yeek-wayist.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Перед вами стоит существо размером с полурослика, покрытое небольшим белым мехом и с непропорциональной головой.
Вы также замечаете, что он не держит свой большой меч. Кажется, он парит в воздухе, подчинённый его воле.*#WHITE#
Почему вы спасли меня, чужестранец? Вы не из Пути.]],
answers = {
{"Ну, вам, похоже, нужна была помощь.", jump="kindness"},
{"Чтобы перерезать тебе глотку собственными руками!", action=function(npc, player) npc:checkAngered(player, false, -200) end},
}
}
newChat{ id="kindness",
text = [[#LIGHT_GREEN#*Большой меч парит в менее агрессивной позиции. Он удивлён.*#WHITE#
Тогда, от имени Пути, я благодарю вас.]],
answers = {
{"Что за Путь, и кто вы?", jump="what"},
}
}
newChat{ id="what",
text = [[Путь - это просветление, мир и защита. Я йиик. Я прошёл через этот туннель, чтобы исследовать эту часть мира, которая была закрыта для нас на протяжении веков.]],
answers = {
{"Не могли бы вы рассказать мне больше о Пути?", jump="way", action=function(npc, player)
game.party:reward("Выберите члена команды получающего ментальный щит:", function(player)
player.combat_mentalresist = player.combat_mentalresist + 15
player:attr("confusion_immune", 0.10)
end)
game.logPlayer(player, "Контакт с последователем Пути улучшил ваши ментальные щиты. (+15 ментальная защита, +10%% сопротивление дизориентации)")
end},
-- {"Значит, вы бродите по земле в одиночку?", jump="done"},
}
}
newChat{ id="done",
text = [[Я никогда не один. Со мной - Путь.]],
answers = {
{"Тогда прощайте.", action=function(npc, player) npc:disappear() end},
}
}
newChat{ id="way",
text = [[Я не могу объяснить, но могу ненадолго показать.
#LIGHT_GREEN#*Он наклоняется к вам. Вас внезапно наполняет чувство покоя и счастья.*#WHITE#
Это Путь.]],
answers = {
{"Спасибо за это видение. Прощайте, мой друг.", action=function(npc, player)
npc:disappear()
game:setAllowedBuild("yeek", true)
end},
}
}
newChat{ id="yeek-welcome",
text = [[Слава Пути. Эта... штука... убила бы меня.]],
answers = {
{"Путь послал меня исследовать эту сторону туннеля.", jump="explore"},
}
}
newChat{ id="explore",
text = [[Да, меня тоже. Мы должны разделиться, чтобы охватить больше территории.]],
answers = {
{"Прощайте. Мы - Путь, навеки.", action=function()
game:setAllowedBuild("psionic")
game:setAllowedBuild("psionic_mindslayer", true)
end},
}
}
file/game/modules/tome.team/data/chats/zemekkys-done.lua.txt
newChat{ id="welcome",
text = [[Что? Ах, это вы, @playername@.
Я так понимаю, вы довольны порталом.]],
answers = {
{"Да, спасибо."},
{"Без разницы."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/zemekkys-start-chronomancers.lua.txt
newChat{ id="welcome",
text = [[@playername@, вас призвали служить. Обитатели ближайшего никем нечтимого болота становятся всё более беспокойными.
Вы должны пойти туда и найти причину.]],
answers = {
{"Сделаю, Великий Хранитель.", action=function() game:changeLevel(1, "unhallowed-morass") end},
{"Мне очень жаль, но я не могу сделать этого.", action=function(npc, player) player:setQuestStatus("start-point-zero", engine.Quest.FAILED) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/zemekkys.lua.txt
player:findInAllInventories("Резонирующий алмаз")
player:findInAllInventories("Окровавленный рунный атам")
player:findInAllInventories("Резонирующий алмаз")
player:findInAllInventories("Окровавленный рунный атам")
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Дверь приоткрывается и оттуда выглядывает пара диких глаз.*#WHITE#
Что вы хотите, @playerdescriptor.race@?]],
answers = {
{"Паладин Айрин сказала мне, что вы можете мне помочь. Мне нужно добраться до Мадж'Эяла.", jump="help", cond=function(npc, player) return game.state:isAdvanced() and not player:hasQuest("west-portal") end},
{"Мне попался Окровавленный рунный атам, но не было никакого Резонирующего Алмаза.", jump="athame", cond=function(npc, player) return player:hasQuest("west-portal") and player:hasQuest("west-portal"):isCompleted("athame") and not player:hasQuest("west-portal"):isCompleted("gem") end},
{"У меня есть Резонирующий алмаз.", jump="complete", cond=function(npc, player) return player:hasQuest("west-portal") and player:hasQuest("west-portal"):isCompleted("gem") end},
{"К сожалению, мне надо идти!"},
}
}
newChat{ id="help",
text = [[Фу! Цель её жизни - это тратить моё время! Мадж'Эял? Почему не Нарния или Чикаго? Просто гораздо легче отправить тебя в совершенно вымышленное место, чем в Мадж'Эял. Уходи.
#LIGHT_GREEN#*Дверь захлопывается.*#WHITE#]],
answers = {
{"Так я из Мадж'Эяла, разве нет? У меня есть магическая сфера, снятая с мёртвого орка, смотрите, и...", jump="offer"},
}
}
newChat{ id="offer",
text = [[#LIGHT_GREEN#*Дверь немного приоткрылась.*#WHITE#
Сфера говорите? Что вы использовали, чтобы попасть сюда из Мадж'Эяла? Ведь у вас нет Сферы Множества Путей! Она потеряна целую вечность назад!]],
answers = {
{"[Показать сферу]", jump="offer2"},
}
}
newChat{ id="offer2",
text = [[#LIGHT_GREEN#*Его глаза расширились.*#WHITE#
Святые небеса! Это Сфера! Может быть, мы всё-таки сможем доставить вас домой. Или отправить вас на тысячу лиг прямо вниз, в магму.]],
answers = {
{"Могу я войти?", jump="offer3"},
}
}
newChat{ id="offer3",
text = [[@playerdescriptor.race@, думаешь, я впущу какого-то грязного в мой дом со Сферой Множества Путей?
Благодарю вас, я уже предостаточно взрывался и без этой вещи в доме.
Кроме того, я не смогу вам помочь, если у вас нет Окровавленного рунного атама, чтобы выгравировать портал.
Э-э, и этот портал должен быть выгравирован на куске обработанного резонирующего мрамора.
В Утренних Вратах была плита из мрамора, которая могла бы пригодиться, но некоторое число... инцидентов, повредили её.
Чтобы всё должным образом подготовить потребуется Резонирующий алмаз. О, и я хочу 100 золотых.]],
answers = {
{"Где я могу найти всё это?", jump="quest"},
}
}
newChat{ id="quest",
text = [[100 золотых попробуйте поискать в кошельке. Что касается атама и Резонирующего алмаза, я полагаю, что у орков есть кое-что, если они готовят порталы, чтобы задействовать эту сферу. Попробуйте ограбить арсенал Вура. Так получилось, что я знаю чёрный ход. Неважно откуда.]],
answers = {
{"Спасибо.", action=function(npc, player)
player:grantQuest("west-portal")
end},
}
}
newChat{ id="athame",
text = [[Конечно, там нет Резонирующего алмаза. Что заставляет вас думать, что Бриаг оставил бы его хоть на секунду?]],
answers = {
{"Бриах?", jump="athame2"},
}
}
newChat{ id="athame2",
text = [[Бриаг - большой песчаный змей. Как вы думаете, откуда взялись Резонирующие алмазы? Они всего лишь обычные бриллианты, пока они не застрянут между чешуйками Бриага на несколько столетий и не наполнятся его жизненными ритмами. Видите ли, он спит на кладе из драгоценных камней и металлов.]],
answers = {
{"Где я могу найти логово Бриаха?", jump="athame3"},
}
}
newChat{ id="athame3",
text = [[К югу от Солнечной стены. Я отмечу место на вашей карте.]],
answers = {
{"Я вернусь с Резонирующим алмазом.", action=function(npc, player) player:hasQuest("west-portal"):wyrm_lair(player) end},
}
}
newChat{ id="complete",
text = [[Да? Вы достали атам, драгоценный камень и 100 золотых?]],
answers = {
{"[Отдать ему драгоценный камень, атам и 100 золотых]", jump="complete2", cond=check_materials, action=remove_materials},
{"Извините, кажется, мне не хватает некоторых вещей. Я вернусь."},
}
}
newChat{ id="complete2",
text = [[#LIGHT_GREEN#*Дверь открывается, и появляется бедный эльф.*#WHITE#
Мы уходим, чтобы подготовить портал!]],
answers = {
{"[Следовать за ним]", action=function(npc, player) player:hasQuest("west-portal"):create_portal(npc, player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/zigur-mindstar-store.lua.txt
newChat{ id="welcome",
text = [[Добро пожаловать @playername@ в мой магазин.]],
answers = {
{"Позвольте посмотреть ваши товары.", action=function(npc, player)
npc.store:loadup(game.level, game.zone)
npc.store:interact(player)
end},
{"Мне нужно обучение Звезде разума.", jump="training"},
{"К сожалению, мне надо идти!"},
}
}
newChat{ id="training",
text = [[Я могу научить вас умению Звезда разума (талант категории Дикий/умение Звезда разума ). Изучение основ стоит 100 золотых, в то время как более интенсивное обучение для увеличения мастерства стоит 500 золотых. Как только вы освоитесь, я смогу научить вас дополнительным навыкам за 750 золотых.]],
answers = {
{"Просто обучите меня основам (открывает категорию заблокированных талантов) - 100 золотых.", action=function(npc, player) -- Normal basic training
game.logPlayer(player, "Лавочник проводит некоторое время с вами, обучая вас основам передачи энергии посредством Звезды разума.")
player:incMoney(-100)
player:learnTalentType("wild-gift/mindstar-mastery", false)
if player:getTalentTypeMastery("wild-gift/mindstar-mastery") < 1 then
player:setTalentTypeMastery("wild-gift/mindstar-mastery", math.min(1.1, player:getTalentTypeMastery("wild-gift/mindstar-mastery") + 0.3))
game.logPlayer(player, "Он впечатлён вашей близостью к природным силам.")
end
player.changed = true
end, cond=function(npc, player)
if player.money < 100 then return end
if player:knowTalentType("wild-gift/mindstar-mastery") or player:knowTalentType("wild-gift/mindstar-mastery") == false then return end
return true
end},
{"Пожалуйста, научите меня тому, что мне нужно знать (разблокирует категорию талантов) - 500 золотых.", action=function(npc, player)
game.logPlayer(player, "Лавочник тратит много времени на обучение тонкостям направления энергии посредством Звезды разума.")
player:incMoney(-500)
player:learnTalentType("wild-gift/mindstar-mastery", true)
if player:getTalentTypeMastery("wild-gift/mindstar-mastery") < 1 then -- Special case for previously locked category (escort)
player:setTalentTypeMastery("wild-gift/mindstar-mastery", math.max(1.0, player:getTalentTypeMastery("wild-gift/mindstar-mastery") + 0.3))
end
if player:getTalentTypeMastery("wild-gift/mindstar-mastery") > 1 then
game.logPlayer(player, "Он впечатлён вашим мастерством и показывает вам несколько хитростей, чтобы справиться с более сильными потоками энергии.")
end
player.changed = true
end, cond=function(npc, player)
if player.money < 500 then return end
if player:knowTalentType("wild-gift/mindstar-mastery") then return end
return true
end},
{"Я уже достаточно опытен, но хочу быть экспертом (улучшает мастерство таланта на 0,2) - 750 золотых.", action=function(npc, player) --Enhanced intensive training
player:incMoney(-750)
player:learnTalentType("wild-gift/mindstar-mastery", true)
player:setTalentTypeMastery("wild-gift/mindstar-mastery", player:getTalentTypeMastery("wild-gift/mindstar-mastery") + 0.2)
game.logPlayer(player, ("Лавочник тратит много времени на обучение тонкостям направления энергии посредством Звезды разума%s."):format(player:getTalentTypeMastery("wild-gift/mindstar-mastery")>1 and ", and teaches you enhanced mental discipline needed to maintain powerful energy fields" or ""))
player.changed = true
end, cond=function(npc, player)
if player.money < 750 then return end
if player:knowTalentType("wild-gift/mindstar-mastery") and player:getTalentTypeMastery("wild-gift/mindstar-mastery") < 1.2 then return true end
end},
{"Нет, спасибо."},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/zigur-trainer.lua.txt
newChat{ id="welcome",
text = [[Рад встрече, друг.]],
answers = {
{"Прощайте."},
}
}
return "welcome"
end
game.logPlayer(player, "Вы больше не можете использовать %s - испорчен магией.", o:getName{do_color=true})
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Там стоит мрачного вида боец, одетый в кольчужные доспехи и большой оливковый плащ. Он не кажется враждебным, его меч в ножнах.*#WHITE#
]]..sex..[[, наша гильдия следит за вами, и мы считаем, что у вас есть потенциал.
Мы видим, что тайные искусства всегда находились в основе каждого злоключения, которые эта земля пережила, и мы также видим, что однажды они приведут к нашей гибели. Поэтому мы решили принять меры, призвав природу помочь нам сразиться с теми, кто владеет чародейством.
Мы можем обучать вас, но вам нужно доказать, что вы чисты, нетронуты потусторонними силами и готовы сражаться с ними до конца.
Вы бросите вызов магическим противникам. Если вы победите их, мы научим вас нашим методам, и вы больше никогда не сможете быть испорчены магией или использовать её.
#LIGHT_RED#Примечание: Завершение этого квеста навсегда запретит персонажу использовать заклинания или предметы, приводимые в действие тайными силами. Взамен вам будет предоставлен доступ к силе разума базирующейся на древе талантов - анти-магия, и иметь возможность разблокировать скрытые свойства во многих «разрушающих магию» предметах.]],
answers = {
{"Я пройду испытание!", cond=function(npc, player) return player.level >= 10 end, jump="testok"},
{"Я пройду испытание!", cond=function(npc, player) return player.level < 10 end, jump="testko"},
{"Мне это не интересно.", jump="ko"},
}
}
newChat{ id="ko",
text = [[Очень хорошо. Я лишь скажу, что это огорчает, но это ваш выбор. Прощайте.]],
answers = {
{"Прощайте."},
}
}
newChat{ id="testko",
text = [[Вы, кажется, нетерпеливы, но ещё слишком молоды. Возвращайтесь когда повзрослеете.]],
answers = {
{"Так и будет."},
}
}
ogretext = "\nНе беспокойтесь, хотя, Огр - мы можем заменить ваши отвратительные руны, недавно обнаруженной смесью инфузий, устранить вашу зависимость от них. Этот процесс будет... неприятным и значительно сократит вашу продолжительность жизни, но вы, наконец, будете свободны от вызывающей привыкание хватки магии!\n"
ogretext.."Мы также усилим инфузии, которые вам предоставили, чтобы заменить ваши руны - новейшая смесь должна добавить около пяти лет жизни, что первоначальная смесь забрала у вас.\n"
newChat{ id="testok",
text = ([[Очень хорошо. Прежде чем вы начнёте, мы обязательно убедимся, что никакая магия вам не поможет:
- Вы не сможете использовать заклинания или магические устройства
- Любые носимые вещи, которые подпитывались магией, будут сняты
%s
Готовы ли вы или хотите сначала подготовиться?]]):format(ogretext),
answers = {
{"Можно начинать", jump="test", action=remove_magic},
{"Мне нужно подготовиться."},
}
}
newChat{ id="test",
text = [[#VIOLET#*Вас схватили одетые в оливковые цвета двое воинов и бросили на примитивную арену!*
#LIGHT_GREEN#*Вы слышите голос бойца над вами.*#WHITE#
]]..sex..[[Ваше обучение начинается! Я хочу, чтобы вы доказали своё превосходство над магией! Бой!]],
answers = {
{"Но что... [вы замечаете, что ваш первый соперник уже здесь]", action=function(npc, player)
player:grantQuest("antimagic")
player:hasQuest("antimagic"):start_event()
end},
}
}
return "welcome"
file/game/modules/tome.team/data/chats/zoisla.lua.txt
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*Нага проходит через портал, она, кажется, высокого ранга.*#WHITE#
НЕТ! Дурачьё, портал рушится!]],
answers = {
{"И таким образом моя задача выполнена, змея!", jump="fool"},
}
}
newChat{ id="fool",
text = [[Вы не понимаете: он взорвётся!]],
answers = {
{"...", action = function(npc, player)
game:onTickEnd(function()
game.level:removeEntity(npc)
game:changeLevel(2, (rng.table{"trollmire","ruins-kor-pul","scintillating-caves","rhaloren-camp","norgos-lair","heart-gloom"}), {direct_switch=true})
local a = require("engine.Astar").new(game.level.map, player)
local sx, sy = util.findFreeGrid(player.x, player.y, 20, true, {[engine.Map.ACTOR]=true})
while not sx do
sx, sy = rng.range(0, game.level.map.w - 1), rng.range(0, game.level.map.h - 1)
if game.level.map(sx, sy, engine.Map.ACTOR) or not a:calc(player.x, player.y, sx, sy) then sx, sy = nil, nil end
end
game.zone:addEntity(game.level, npc, "actor", sx, sy)
game.level.map:particleEmitter(player.x, player.y, 1, "teleport_water")
game.level.map:particleEmitter(sx, sy, 1, "teleport_water")
game:onLevelLoad("wilderness-1", function(zone, level, data)
local list = {}
for i = 0, level.map.w - 1 do for j = 0, level.map.h - 1 do
local idx = i + j * level.map.w
if level.map.map[idx][engine.Map.TERRAIN] and level.map.map[idx][engine.Map.TERRAIN].change_zone == data.from then
list[#list+1] = {i, j}
end
end end
if #list > 0 then
game.player.wild_x, game.player.wild_y = unpack(rng.table(list))
end
end, {from=game.zone.short_name})
local chat = require("engine.Chat").new("zoisla", npc, player)
chat:invoke("kill")
end)
end},
}
}
newChat{ id="kill",
text = [[Портал случайно телепортировал нас перед взрывом.
Дурачьё! Вы обрекли нас, мы могли бы #{bold}#где угодно#{normal}#
умереть!]],
answers = {
{"...", action=function(npc, player) world:gainAchievement("SUNWALL_LOST", player) end},
}
}
return "welcome"
file/game/modules/tome.team/data/damage_types.lua.txt
print("[PROJECTOR] starting dam", type, dam)
print("[PROJECTOR] crit power reduce dam", dam)
game.logSeen(target, "%s игнорирует критический урон!", target.name:capitalize())
print("[PROJECTOR] after unseen_critical_power type/dam/range/power", type, dam, d, unseen_crit, "::", crit_power - unseen_crit, "=>", crit_power)
print("[PROJECTOR] after difficulty dam", dam)
print("[PROJECTOR] after staff accuracy damage bonus", dam)
print("[PROJECTOR] stunned dam", dam)
print("[PROJECTOR] invisible dam", dam)
print("[PROJECTOR] numbed dam", dam)
print("[PROJECTOR] generic dam", dam)
print("[PROJECTOR] after DamageType increase dam", dam + (dam * inc / 100))
print("[PROJECTOR] before inc_damage_actor_type", dam + (dam * inc / 100))
print("[PROJECTOR] after inc_damage_actor_type", dam + (dam * inc / 100))
print("[PROJECTOR] after night_terror", dam + (dam * inc / 100))
print("[PROJECTOR] after lucid_dreamer", dam + (dam * inc / 100))
print("[PROJECTOR] after mind_link", dam + (dam * inc / 100))
print("[PROJECTOR] after necrotic increase dam", dam + (dam * inc) / 100)
print("[PROJECTOR] after backstab", dam + (dam * inc / 100))
game:delayedLogDamage(src, eff.ice, dam, ("%s%d %s#LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", math.ceil(dam), DamageType:get(type).name))
game.logSeen(src, "%s заставляет ледовый блок разрушаться.", src.name:capitalize())
print("[PROJECTOR] before entity", src.type, "resists dam", dam)
print("[PROJECTOR] after entity", src.type, "resists dam", dam)
print("[PROJECTOR] expose weakness pen", exposed.bonus_pen)
print("[PROJECTOR] res", res, (100 - res) / 100, " on dam", dam)
print("[PROJECTOR] after resists dam", dam)
print("[PROJECTOR] res", res, (100 - res) / 100, " on dam", dam)
print("[PROJECTOR] after self-resists dam", dam)
print("[PROJECTOR] after flat damage armor", dam)
print("[PROJECTOR] after Roll With It dam", dam)
print("[PROJECTOR] Sanctuary (projectile) dam", dam)
print("[PROJECTOR] Sanctuary (source) dam", dam)
game.logPlayer(src, "Вы добиваете свою цель сокрушительным ударом!")
print("[PROJECTOR] final dam after static checks", dam)
print("[PROJECTOR] after absolute resistance dam", dam)
print("[PROJECTOR] final dam after hooks and callbacks", dam)
game:delayedLogDamage(src, target, dam, ("#{bold}#%s%d %s#{normal}##LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", dam, DamageType:get(type).name), true)
game:delayedLogDamage(src, target, dam, ("%s%d %s#LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", dam, DamageType:get(type).name), false)
game.logSeen(target, "%s сопротивляется ментальной атаке!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется оглушению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется безмолвию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется безмолвию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется слепящему свету!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется слепящему свету!", target.name:capitalize())
game.logSeen(target, "%s избегает ослепления чернилами!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется слепящему свету!", target.name:capitalize())
logCombat(target, "#Source# вытягивает жизнь из #Target#!")
game.logSeen(target, "%s сопротивляется магии тьмы!", target.name:capitalize())
game.logSeen(target, "%s противостоит оглушению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется обжигающему пламени!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется волне!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется кровавой волне!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется удару!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется удару!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется магии тьмы!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется удару!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется удару!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется отбрасыванию!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется устрашающему виду!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется тюрьме времени.", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(src, "#LIGHT_STEEL_BLUE#%s не может получить больше энергии на этом ходу! ", src.name:capitalize())
game.logSeen(target, "%s сопротивляется слепящему свету!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется слепоте!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется песчаной буре!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется обездвиживанию!", target.name:capitalize())
logCombat(target, "#Source# иссушает опыт из #Target#!")
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logPlayer(target, "#DARK_ORCHID#Ваш магический щит не может служить дальше и взрывается.")
game.logSeen(target, "%s сопротивляется оглушению!", target.name:capitalize())
e.desc == "Обездвижен"
game.logSeen(target, "%s сопротивляется обездвиживанию!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется отбрасыванию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется обездвиживанию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется дезориентации!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется безмолвию!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется отбрасыванию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется замораживанию!", target.name:capitalize())
game.logSeen(target, "%s не остановлен!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется оглушению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется ослеплению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется дезориентации!", target.name:capitalize())
logCombat(target, "#Source# поглощает %d жизнь из #Target#!", heal)
game.logSeen(target, "%s сопротивляется запутыванию!", target.name:capitalize())
game.logSeen(target, "%s не имеет маны, чтобы сжечь.", target.name:capitalize())
game.logSeen(target, "%s сопротивляется пагубной энергии!", target.name:capitalize())
print("Вызов духа Гаркула", x, y)
desc = [[Облачённый в массивные доспехи орк, держащий в руках огромный топор.]]
title="Дух Гаркула"
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется отбрасыванию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется оглушению!", target.name:capitalize())
game.logSeen(target, "%s отброшен назад!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется обезоруживанию!", target.name:capitalize())
print("[BounceSlime] found possible actor", actor.name, bx, by, "distance", core.fov.distance(x, y, bx, by))
game.logSeen(src, "%s сопротивляется обездвиживанию!", target.name:capitalize())
game.logSeen(src, "%s сопротивляется толканию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется оглушению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется ослеплению!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется обездвиживанию!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется дезориентации!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется ментальной атаке!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется ослепляющей вспышке!", target.name:capitalize())
game.logSeen(target, "%s сопротивляется!", target.name:capitalize())
file/game/modules/tome.team/data/factions.lua.txt
print("[FACTION] added", sn, def[1])
print("[FACTION] initial reaction", f1, f2, " => ", v)
file/game/modules/tome.team/data/ingredients.lua.txt
desc = [[Кусок кишки тролля. К счастью, тролль давно ничего не ел.]]
alchemy_text = "Просьба опорожнить его перед возвращением."
desc = [[Череп мага скелета. Глаза перестали светиться... на данный момент.]]
alchemy_text = "Если глаза всё же светятся, пожалуйста, немного постучите по нему, пока они не поблекнут. Я не допущу, чтобы ещё один ожил и посеял хаос в моей лаборатории."
desc = [[Жало ритча, всё ещё блестит от яда.]]
alchemy_text = "По возможности, сохраните как можно больше яда."
desc = [[Сердце орка. Удивительно, оно не зелёное.]]
alchemy_text = "Если вы сможете принести мне ещё бьющееся сердце орков, так даже лучше. Но по-моему вы не похожи на мастера-некроманта."
desc = [[Отрубленный язык наги. Он пахнет морской водой.]]
alchemy_text = "Наилучшие результаты достигаются с языками, никогда не замеченных в произношении мата, поэтому, если вам известны какие-либо святые наги..."
desc = [[Флакон великой демонической желчи. Даже плотно закрытый он повреждает ваши носовые пазухи.]]
alchemy_text = "Не пейте это, даже если он попросит вас."
desc = [[Как только магия, оживившая костяного гиганта исчезла, его останки рассыпались в прах. Возможно это ваше воображение, но, похоже, что прах иногда движется сам по себе.]]
alchemy_text = "Никогда не следует путать с чесночным порошком. Поверьте мне."
desc = [[Ужасно острое и всё ещё замораживает.]]
alchemy_text = "Если и есть способы устранения маленьких проблем с ядами, то эти чудодейственные быстрорастворимые пустячки помогут вам."
desc = [[Отрубленная передняя часть рыла минотавра с кольцом в носу, и всё.]]
alchemy_text = "Вам нужно найти хоть одного с кольцом, желательно дорогим."
desc = [[Густая, запекшаяся и отвратительная. Флакон на ощупь холоден.]]
alchemy_text = "Как только вы получите это, пересеките движущуюся воду на обратном пути."
desc = [[Красивая и почти непробиваемая. Отделить её от дракона, должно быть, очень тяжело.]]
alchemy_text = "Если вы считаете, что сбор образца очень сложен, попробуйте обратить его в жидкое состояние."
desc = [[Уродливый, вырванный кусок гигантского паука. Обрывки шёлка торчат из отверстия.]]
alchemy_text = "Пауки в вашем сарае не подойдут. Вы узнаете гигантского паука, когда увидите его, хотя они редко встречаются в Мадж'Эяле."
desc = [[Отрубленный конец одного из корней медового дерева. Он иногда извивается, казалось бы, не желая признавать, что он мёртв... и вообще растение.]]
alchemy_text = "Всегда крепко держите их. Эти штуки зароются обратно в землю, если вы уроните их."
desc = [[Нездорово выглядит и воняет. И на ваш взгляд вроде бы загнивает.]]
alchemy_text = "Не беспокойтесь, если растворится. Лишь бы не попало на вас."
desc = [[Скользкий, извивается и потрескивает электричеством.]]
alchemy_text = "Я знаю, знаю. Где заканчивается сам угорь и начинается его хвост? Это не имеет большого значения. Последние десять дюймов, или около того, вполне подойдёт."
desc = [[Густая, чёрная и светонепроницаемая.]]
alchemy_text = "Как бы не раздражало это вас, я обещаю, что запах, производимый им в моей лаборатории, окажется ещё более раздражающим."
desc = [[Большая и волосатая, с когтями для раздирания плоти. Она немного пахнет рыбой.]]
alchemy_text = "Вы, поди, думаете, я мог заполучить одного из них у местных охотников, но им не повезло. Не ешьте."
desc = [[Этот зуб затупился с возрастом, но по-прежнему выглядит более чем способным выполнять свою работу.]]
alchemy_text = "Ледяные змеи теряют зубы довольно часто, поэтому вам может повезти и не нужно сражаться с ними. Но одевайтесь теплее, на всякий случай."
desc = [[Крошечные язычки пламени всё ещё танцуют в этом прозрачном кристалле, хотя их жар, похоже, исчез... вы надеетесь.]]
alchemy_text = "Я слышал, что их можно найти в пещере возле Эльвала. Я также слышал, что они могут вызвать самовозгорание, поэтому не нужно объяснять, если вы вернётесь обратно ужасно обезображенным."
desc = [[Прозрачная и немного гуще воды. Она пенится при встряхивании.]]
alchemy_text = "Держите эту штуковину подальше от костра, если не хотите, чтобы я искал нового, более живого авантюриста."
desc = [[Гнилой и воняет. Время от времени он дёргается.]]
alchemy_text = "К сожалению для вас, куски, которые регулярно выпадают из упырей, не подойдут. Мне нужен свежевырезанный."
desc = [[Кусочки сухой плоти всё ещё цепляются за эту древнюю кость.]]
alchemy_text = "Это кость от мертвеца, который подвергся мумификации. На самом деле, любая часть тела подойдёт, но кости - это единственные части, которые вы наверняка найдёте, когда мумия разлетится на части от вашего удара. Я рекомендую найти ту, на которой не применены проклятия."
desc = [[Крошечный, тёмно-серый и ужасно острый. Он больше похож на камень, чем на кость.]]
alchemy_text = "Да, у песчаных червей есть зубы. Они просто очень маленькие и лучше находиться там, откуда вы сможете их видеть и останетесь живым."
desc = [[В отличие от остальной части чёрной мамбы, отрубленная голова не двигается.]]
alchemy_text = "Если вас укусят, я могу спасти вашу жизнь, если вам всё-таки удастся вернуть голову... и если это произойдёт в двух шагах от моей двери. Удачи."
desc = [[Так неприятно выглядит, как и любой выставленный на показ орган.]]
alchemy_text = "Я предлагаю не убивать снежного гиганта, протыкая его почки. Вам придётся найти другого."
desc = [[Синеватый и острый. Ваши волосы на руке встают дыбом от этого.]]
alchemy_text = "Я рекомендую отделить один из рудиментарных пальцев. Они меньше и их легче удалить, но они не притупляются от использования, поэтому будьте осторожны, не засовывайте его в себя. Ах да, и не ешьте."
desc = [[Мёртвый зелёный червь, тщательно отделённый от клубка червей.]]
alchemy_text = "Попытайтесь заполучить сколько-нибудь клубков червей перед возвращением. Надевайте перчатки."
desc = [[Непрозрачная и густая. Только разлив это в бутылки можно предотвратить её испарение в течение нескольких минут.]]
alchemy_text = "Если вы проглотите что-либо из этого, даже не думайте возвращаться сюда. Пожалуйста."
desc = [[Выглядит, как и любой другой камень, хотя он недавно был разумным и пытался вас убить.]]
alchemy_text = "Избегайте фрагментов, содержащих глаза ксорна. Вы не представляете, как это неприятно видеть свои составные части."
desc = [[Неприятно большой и острый для собачьего когтя.]]
alchemy_text = "Мои обычные сборщики ингредиентов предпочитают охотиться на варгов. Не стесняйтесь издеваться над ними на обратном пути."
desc = [[Ничем не примечательный серый пепел.]]
alchemy_text = "Они - существа чистого пламени и, вероятно, непланарного происхождения, но пепел от их сгорания обладает замечательными свойствами."
desc = [[Маленькое и налитое кровью. Его мёртвый взгляд по-прежнему обжигает кожу.]]
alchemy_text = "Злобные маленькие твари, негодники. Смело убивайте их как можно больше, хотя мне нужно просто одно неповреждённое глазное яблоко."
desc = [[С него всё ещё капает яд и потрескивает магической энергией.]]
alchemy_text = "Я потерял из-за него несколько авантюристов, но я уверен, что с вами всё будет в порядке."
desc = [[Блестяще белый, но окружённый самой тёмной магией.]]
alchemy_text = "Смотрите не проткните себя этим."
desc = [[Полупрозрачное и хрупкое на вид, но удивительно прочное.]]
alchemy_text = "Если вы раньше не встречались с жужжащими рожками, то они как осы, только гигантские и смертоносные."
desc = [[Невесомая и светящаяся, не обычная пыль.]]
alchemy_text = "Не путать с сияющими ужасами. Если вы столкнётесь с последним... ну, всегда найдутся ещё авантюристы."
file/game/modules/tome.team/data/maps/vaults/auto/greater/orc-hatred.lua.txt
game.logPlayer(actor, "Что-то в полу зловеще щёлкнуло.")
file/game/modules/tome.team/data/maps/vaults/auto/greater/paladin-vs-vampire.lua.txt
logCombat(who, "#Source# испускает тёмную энергию у ваших ног.")
game.logSeen(m, "Извращённая лава реанимирует труп %s!", who.name:capitalize())
desc = [[Человек в сияющих доспехах.]]
file/game/modules/tome.team/data/maps/vaults/auto/lesser/loot-vault.lua.txt
unided_name = "свиток"
desc = [[Маленький клочок бумаги, с надписью насмешливого тона.]]
file/game/modules/tome.team/data/maps/vaults/greater-crypt.lua.txt
game.logPlayer(actor, "Что-то в полу зловеще щёлкнуло%s", actor.lite > 0 and not actor:attr("blind") and ", and suddenly the world spins around you!" or ".")
game.logPlayer(actor, "Что-то в полу зловеще щёлкнуло%s", actor.lite > 0 and not actor:attr("blind") and ", and the crypt rearranges itself around you!" or ".")
game.logPlayer(actor, "Что-то в полу зловеще щёлкнуло.")
game.logPlayer(actor, "Что-то в полу зловеще щёлкнуло%s", actor.lite > 0 and not actor:attr("blind") and ", and the crypt rearranges itself around you!" or ".")
game.logPlayer(actor, "Что-то под вами зловеще щёлкнуло.")
file/game/modules/tome.team/data/maps/vaults/portal-vault.lua.txt
game.logPlayer(who, "#YELLOW#Портал отталкивает вас, прежде чем перейти в состояние покоя. Другая сторона, похоже, заблокирована.")
yesnoPopup("Злобный портал", "От этого портала исходит зловещая аура. Вы действительно хотите пройти?", function(ret) if ret then
game.logPlayer(who, "#YELLOW#Преодолейте интенсивное #LIGHT_BLUE#ОТТАЛКИВАЮЩЕЕ ВОЗДЕЙСТВИЕ#LAST# при прохождении Портала.")
game:playSoundNear(who, "talents/distortion")
who:move(tx, ty, true)
end end, "Teleport", "Cancel")
game.logSeen(who, "#YELLOW#Портал быстро отталкивает %s, когда %s приближается к нему.", who.name:capitalize(), who:he_she())
logCombat(nil, "#YELLOW#Портал #LIGHT_BLUE#СИЛЬНО ДЕФОРМИРУЕТСЯ#LAST# прежде чем #source# появляется из него.")
game.logPlayer(who, "#YELLOW#При использовании портала ничего не происходит.")
desc = "Странный портал ведущий куда-то."
desc = "Портал ведущий из этого места."
print("portal-vault: could not create a portal room, creating a vault door instead")
print("portal-vault: populating with theme:", theme)
file/game/modules/tome.team/data/maps/vaults/trickvault.lua.txt
game.logPlayer(actor, "#YELLOW#Мир вращается вокруг вас!")
game.logPlayer(who, "#YELLOW#Воздух оживает от ужасной магии!")
game.logPlayer(actor, "#YELLOW#Мир вращается вокруг вас!")
file/game/modules/tome.team/data/maps/zones/halfling-ruins-last.lua.txt
simplePopup("Длинный туннель", "Когда вы входите в туннель, у вас возникает странное желание вернуться назад.")
file/game/modules/tome.team/data/maps/zones/last-hope-graveyard.lua.txt
file/game/modules/tome.team/data/maps/zones/valley-moon.lua.txt
desc="Тёмный проём в горе"
file/game/modules/tome.team/data/quests/anti-antimagic.lua.txt
desc[#desc+1] = "Вы решили встать на сторону Великого Осквернителя и объединили свои силы ради штурма главной базы Зигуранта."
desc[#desc+1] = "Великий Осквернитель погиб во время атаки, прежде чем успел научить вас своим методам."
desc[#desc+1] = "Защитники Зигура были разгромлены, Зигурант разогнан и ослаблен."
desc[#desc+1] = "После этого вы обратились против Великого Осквернителя и отправили его на тот свет."
game.party:reward("Выберите члена команды получающего наговор дерева талантов:", function(player)
if who:knowTalentType("corruption/hexes") then
who:setTalentTypeMastery("corruption/hexes", who:getTalentTypeMastery("corruption/hexes") + 0.2)
elseif who:knowTalentType("corruption/hexes") == false then
who:learnTalentType("corruption/hexes", true)
else
who:learnTalentType("corruption/hexes", false)
end
end)
simplePopup("Великий Осквернитель", "#LIGHT_GREEN#Великий Осквернитель пристально смотрит на вас. Вы чувствуете, как знание втекает в ваш разум. Теперь вы можете тренировать некоторые силы скверны.")
doEmote("Победа моя!", 60)
file/game/modules/tome.team/data/quests/antimagic.lua.txt
desc[#desc+1] = "Вас пригласили присоединиться к обществу под названием Зигурант посвятившее себя противостоянию магии."
Chat.new("антимагия-завершение", {name="Зловещего вида боец"}, game.player)
game.logSeen(m, "#VIOLET#Враг вызван на арену!")
game.logSeen(m, "#VIOLET#Ещё один враг вызван на арену!")
file/game/modules/tome.team/data/quests/arena-unlock.lua.txt
desc[#desc+1] = "Вы успешно сокрушили своих противников и получили доступ к арене!"
file/game/modules/tome.team/data/quests/arena.lua.txt
desc[#desc+1] = "Ища богатство, славу и отличный бой, вы бросаете вызов арене!"
desc[#desc+1] = "Можете ли вы одолеть своих противников и стать чемпионом арены?"
).new("Победитель"
desc[#desc+1] = "#GOLD#Браво! Вы одержали победу на арене: бросьте вызов чемпиону#WHITE#"
desc[#desc+1] = "Вы мужественно сражались со всеми существами, которые арена смогла бросить на вас, и вы победили!"
desc[#desc+1] = "Слава вам, теперь вы новый чемпион и ваши будущие персонажи будут бросать вызов вам."
file/game/modules/tome.team/data/quests/brotherhood-of-alchemists.lua.txt
desc[#desc+1] = "#LIGHT_GREEN#Благодаря вашей своевременной помощи, "
desc[#desc+1] = "#RED#Вы помогли различным обитателям Мадж'Эяла в их попытках присоединиться к Братству Алхимиков, хотя вы не стали решающим фактором для каждого. В этом году новый член "
desc[#desc+1] = "#LIGHT_BLUE#Различные алхимики в Мадж'Эяле конкурируют за то, чтобы войти в великое Братство Алхимиков, и один или несколько из них заручились вашей помощью.#WHITE#"
desc[#desc+1] = "#GREEN#Вы помогли "
desc[#desc+1] = "#RED#"
desc[#desc+1] = "#SLATE#Не получив доступа к Братству Алхимиков, "
desc[#desc+1] = "#SLATE# * Требуется: один "
desc[#desc+1] = "#LIGHT_GREEN# * Вы нашли необходимое "
desc[#desc+1] = "#SLATE# * Требуется: один "
desc[#desc+1] = "#LIGHT_GREEN# * Вы нашли необходимое "
desc[#desc+1] = "#SLATE# * Требуется: один "
desc[#desc+1] = "#LIGHT_GREEN# * Вы нашли необходимое "
game.log("#VIOLET#Вы можете проверить имеющиеся у вас ингредиенты, нажав Escape и выбрав «Показать ингредиенты».")
game.logPlayer(player, "Список обновлён. Теперь необходимо:")
game.logPlayer(player, "один %s", self.needed_ingredients[l].name)
game.logPlayer(player, "Вы получаете: %s", o:getName{do_color=true})
game.logPlayer(player, "Вы получаете: %s", o:getName{do_color=true})
game.log("#CRIMSON#Ваше временное путешествие не влияет на предопределённые результаты, такие как этот.")
file/game/modules/tome.team/data/quests/charred-scar.lua.txt
desc[#desc+1] = "Вы были отправлены в Обугленный шрам, в центре которого находится огромный вулкан. В эпоху Погребальных костров он уничтожил находящиеся там древние руины Шер'Тула, поглотив большую часть их потаённой магии."
desc[#desc+1] = "Это место по-прежнему преисполнено силой, и орки намереваются впитать эту силу, используя посох Поглощения!"
desc[#desc+1] = "Каким бы ни был их план, они должны быть остановлены любой ценой."
desc[#desc+1] = "На вулкан наступают орки. Несколько Паладинов Солнца добрались сюда вместе с вами. Они будут держать линию обороны ценой своей жизни, чтобы выиграть немного времени."
desc[#desc+1] = "Почтим их жертву; не позволяйте оркам закончить свою работу!"
desc[#desc+1] = "Вы прибыли слишком поздно. Место опустошено от силы, и волшебники ушли."
desc[#desc+1] = "Используйте портал, чтобы вернуться в Дальний Восток. Вы *ДОЛЖНЫ* остановить их, чего бы это ни стоило."
desc[#desc+1] = "Вы прибыли вовремя и прервали ритуал. Волшебники отступили."
desc[#desc+1] = "Используйте портал, чтобы вернуться в Дальний Восток. Вы *ДОЛЖНЫ* остановить их, чего бы это ни стоило."
game.logPlayer(game.player, "#VIOLET#Вдалеке активируется портал. Вы слышите, как орки кричат: «Волшебники уходят! Следуем за ними!»")
game.logPlayer(game.player, "#VIOLET#Волшебники бегут через портал. Когда вы готовитесь следовать за ними, огромные Фаэросы заблокировали путь.")
file/game/modules/tome.team/data/quests/deep-bellow.lua.txt
desc[#desc+1] = "Ваш побег из Рекнора заставил ваше сердце сильно биться, а ваше стремление к богатству и власти удесятерилось."
desc[#desc+1] = "Возможно, настало время начать карьеру искателя приключений. Глубоко под горами Железного Трона лежат Ревущие глубины."
desc[#desc+1] = "Он давно запечатан, но всё же время от времени искатели приключений ищут богатства."
desc[#desc+1] = "Насколько вы знаете, ещё никто не вернулся, но вы выжили в Рекноре. Вы восхитительны."
file/game/modules/tome.team/data/quests/dreadfell.lua.txt
desc[#desc+1] = "Вы слышали, что рядом с Обугленным шрамом, на юге, находится разрушенная башня, известная как Обитель ужаса."
desc[#desc+1] = "Есть тревожные слухи о огромной нежити, и никто, кто достиг её, не вернулся."
desc[#desc+1] = "Возможно, вам следует исследовать это и найти правду, и сокровища, для себя!"
file/game/modules/tome.team/data/quests/east-portal.lua.txt
desc[#desc+1] = "Вы создали портал, чтобы вернуться в Мадж'Эял. Вы должны попытаться поговорить с кем-то из Последней Надежды о создании обратного соединения."
desc[#desc+1] = "Вы поговорили со старейшиной в Последней Надежде, который, в свою очередь, сказал вам поговорить с Танненом, который живёт на севере города."
desc[#desc+1] = "Вы отдали сферу Множества Путей для изучения Таннену, пока вы ищете атам и алмаз в Рекноре."
desc[#desc+1] = "Вы сохранили сферу Множества Путей у себя, несмотря на просьбу Таннена изучить её. Теперь вы должны найти атам и алмаз в Рекноре."
desc[#desc+1] = "Вы принесли алмаз и атам Таннену, который попросил вас проверить башню Телмура, ища документ по порталам, хотя он не уверен, что он там есть. Он попросил вас вернуться через несколько дней."
desc[#desc+1] = "Вы принесли алмаз и атам Таннену, который попросил вас связаться с Земеккисом, чтобы задать несколько деликатных вопросов."
desc[#desc+1] = "Вы принесли алмаз и атам Таннену, который попросил вас вернуться через несколько дней."
desc[#desc+1] = "Таннен обманул вас! Он заменил сферу на подделку, которая привела вас на демонический уровень. Найдите выход и отомстите!"
desc[#desc+1] = "Таннен проявил себя как подлая мразь, которой он и был на самом деле, и заточил вас в своей башне."
desc[#desc+1] = "#LIGHT_GREEN#* Портал в Дальний Восток теперь функционирует и может быть использован для возвращения.#WHITE#"
player:findInAllInventories("Сфера Множества Путей")
player:findInAllInventories("Резонирующий алмаз")
player:findInAllInventories("Окровавленный рунный атам")
game.logPlayer(game.player, "Таннен указывает местонахождение Телмура на вашей карте.")
player:findInAllInventories("Сфера Множества Путей")
simplePopup("Назад и снова туда", "В центре башни появляется портал!")
game.logPlayer(who, "#VIOLET#Вы входите в кружащийся водоворот портала и в мгновение ока вы возвращаетесь в Последнюю надежду.")
file/game/modules/tome.team/data/quests/escort-duty.lua.txt
text = [[Пожалуйста, помогите мне! Боюсь, я потерялся. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошёл через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Он ранен и выглядит уставшим.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялась. Я знаю, что есть обратный портал, оставленный здесь другом, но я не смогу продолжать путь в одиночку. Не поможете ли вы мне?]]
desc = [[Она ранена и выглядит уставшей.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялся. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошёл через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Он ранен и выглядит уставшим.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялся. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошёл через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Он ранен и выглядит уставшим.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялась. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошла через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Она ранена и выглядит уставшей.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялась. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошла через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Она ранена и выглядит уставшей.]]
text = [[Ох, но вы... ты? Я?!
Так что я была права, это не моя временная нить!
Пожалуйста, помоги мне! Боюсь, я потерялась. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошла через множество схваток, и боюсь, что я не справлюсь. Не поможешь ли ты мне? Не поможешь ли ты самой себе?]]
desc = [[Она ранена и выглядит уставшей. Она так похожа на вас и всё же совершенно другая. Странно.]]
text = [[Пожалуйста, помогите мне! Боюсь, я потерялась. Я знаю, что есть обратный портал, оставленный здесь другом, но я прошла через множество схваток, и боюсь, что я не справлюсь. Не поможете ли вы мне?]]
desc = [[Она ранена и выглядит уставшей.]]
desc[#desc+1] = "Вы благополучно сопроводили "
desc[#desc+1] = ("В качестве награды вам %s.")
desc[#desc+1] = "Вы отказались "
desc[#desc+1] = "Вы не смогли защитить "
desc[#desc+1] = "Сопровождение "
print("Placing portal at ", pos[1], pos[2])
game.logPlayer(game.player, "#LIGHT_RED#%s мёртв, квест провален!", self.name:capitalize())
g.name = (self.kind.portal or "Обратный портал")
file/game/modules/tome.team/data/quests/grave-necromancer.lua.txt
desc[#desc+1] = "Унгрол из Последней Надежды попросил вас приглядеть за подругой своей жены Селией, которая была объявлена пропавшей без вести. Она часто посещает мавзолей покойного мужа на кладбище возле Последней Надежды."
desc[#desc+1] = "Вы искали Селию на кладбище возле Последней Надежды и нашли записку. В ней Селия сообщает, что она проводит эксперименты в тёмных искусствах, пытаясь продлить свою жизнь... кроме того, она беременна."
desc[#desc+1] = "Вы обнаружили Селию в мавзолее её мужа на кладбище возле Последней Надежды. Кажется, она позволяла себе некоторые вольности с трупами."
desc[#desc+1] = "Вы упокоили душу Селии положив конец её ужасным экспериментам."
desc[#desc+1] = "Вы похоронили Селию, положив конец её неудачным экспериментам. Вы взяли её сердце, для своих собственных экспериментов. Вы не потерпите неудачу, как она."
file/game/modules/tome.team/data/quests/high-peak.lua.txt
desc[#desc+1] = "Вы победили повелителей орды орков. Теперь вы должны отправиться в самое опасное место этого мира: Высокий Пик."
desc[#desc+1] = "Найдите волшебников и остановите их, прежде чем они подомнут мир под себя."
desc[#desc+1] = "Чтобы войти вам понадобится четыре сферы власти, чтобы снять щит над пиком."
desc[#desc+1] = "Вход в пик проходит через место, называемое Туннелями Слизи, вероятно, расположенное внутри или около клана Грушнака."
desc[#desc+1] = "Вы достигли вершины Высокого Пика, вошли в святилище волшебников и уничтожили их, освободив мир от угрозы зла."
desc[#desc+1] = "Вы прошли игру!"
desc[#desc+1] = "#LIGHT_GREEN#* У вас произошла стычка с Паладином Солнца Айрин, которая обвинила вас в утрате Солнечной стены. Вы были вынуждены убить её.#LAST#"
desc[#desc+1] = "#LIGHT_GREEN#* У вас произошла стычка с Паладином Солнца Айрин, которая обвинила вас в утрате Солнечной стены, но вы пощадили её.#LAST#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы сокрушили волшебников прежде чем портал Пустоты был открыт.#LAST#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы сокрушили волшебников, и Айрин пожертвовала собой, чтобы закрыть портал Пустоты.#LAST#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы сокрушили волшебников и пожертвовали собой, чтобы закрыть портал Пустоты.#LAST#"
game.logPlayer(game.player, "#LIGHT_RED#Когда вы входите на уровень, вы слышите знакомый голос.")
game.logPlayer(game.player, "#LIGHT_RED#Падшая Паладин Солнца Айрин: «%s ВЫ ПРИНЕСЛИ ТОЛЬКО РАЗРУШЕНИЯ СОЛНЕЧНОЙ СТЕНЕ! ВЫ ПОПЛАТИТЕСЬ!»", game.player.name:upper())
desc[#desc+1] = "#GOLD#Молодец! Вы прошли Сказания о Мадж'Эяле: эпоха господства#WHITE#"
desc[#desc+1] = "Волшебники мертвы, и орда орков уничтожена благодаря вашим усилиям."
desc[#desc+1] = "Ваша жертва сработала. Ваша ментальная энергия зарядилась энергией портала. Подобно огромной ментальной волне Путь распространился с Высокого Пика на всю протяжённость Эяла."
desc[#desc+1] = "Каждое разумное существо в Эяле теперь является частью Пути. Мир и счастье обеспечено для всех."
desc[#desc+1] = "Только маги Анголвена смогли выдержать ментальный шок и, таким образом, остались единственными небезопасными людьми. Но что они могут сделать против могущества Пути?"
desc[#desc+1] = "После схватки Путь попытался превратить вас в некий сосуд, несущий Путь до каждого разумного существа."
desc[#desc+1] = "Благодаря невероятной силе воли вы сопротивлялись достаточно долго, чтобы успеть попросить Айрин убить вас."
desc[#desc+1] = "Она с грустью согласилась и пронзила вас своим мечом, позволив вам совершить последнюю жертву, которую вы могли бы сделать для всего мира."
desc[#desc+1] = "Вы предотвратили открытие портала Пустоты и, таким образом, пресекли попытку Творца осуществить приход конца света."
desc[#desc+1] = "Верховный Паладин Солнца Айрин самоотверженно пожертвовала собой, закрывая портал Пустоты и, таким образом, пресекая попытку Творца осуществить приход конца света."
desc[#desc+1] = "Вы самоотверженно жертвуете собой, закрывая портал Пустоты и, таким образом, пресекая попытку Творца осуществить приход конца света."
desc[#desc+1] = "Утренние Врата были разрушены, а Солнечная стена потерпела поражение. Последние остатки свободных людей на Дальнем Востоке, несомненно, будут уменьшаться, и вскоре на этой земле будут жить только орки."
desc[#desc+1] = "Присутствие орков в Дальнем Востоке значительно уменьшилось из-за гибели их лидеров и уничтожения волшебников. Свободные люди Солнечной стены смогут процветать и благоденствовать на этой земле."
desc[#desc+1] = "Мадж'Эял снова познает мир. Большинство его жителей никогда не узнают, что они находились на грани уничтожения, но это и значит, быть истинным героем, совершать правильные поступки, даже если об этом никто не узнает."
desc[#desc+1] = "Вы можете продолжить играть и наслаждаться миром."
file/game/modules/tome.team/data/quests/infinite-dungeon.lua.txt
desc[#desc+1] = "Вы вошли в Бесконечное Подземелье. Теперь нет пути назад."
desc[#desc+1] = "Идите вглубь, сражайтесь, побеждайте или умрите в сиянии славы!"
file/game/modules/tome.team/data/quests/keepsake.lua.txt
desc[#desc+1] = "Вы начали искать способ преодолеть проклятие, которое причиняет вам страдания."
desc[#desc+1] = "Вы нашли маленький железный жёлудь, который вы храните в качестве напоминания о своём прошлом."
desc[#desc+1] = "Вы уничтожили караван торговцев, которых вы когда-то считали своими близкими."
desc[#desc+1] = "Кайлесс, тот, кто навлёк проклятие, умер от вашей руки."
desc[#desc+1] = "Берез мёртв, пусть земля ему будет пухом."
desc[#desc+1] = "Ваше проклятие изменило железный желудь, который теперь служит жестоким напоминанием о вашем прошлом и настоящем."
desc[#desc+1] = "Вы нашли маленький железный жёлудь, который вы храните в качестве напоминания о своём прошлом."
desc[#desc+1] = "Вы уничтожили караван торговцев, которых вы когда-то считали своими близкими."
desc[#desc+1] = "Кайлесс, тот, кто навлёк проклятие, умер от вашей руки."
desc[#desc+1] = "Берез мёртв, пусть земля ему будет пухом."
desc[#desc+1] = "Ваше проклятие осквернило железный жёлудь, который теперь служит напоминанием о вашей мерзкой натуре."
desc[#desc+1] = "Вы нашли маленький железный жёлудь, который вы храните в качестве напоминания о своём прошлом."
desc[#desc+1] = "Вы уничтожили караван торговцев, которых вы когда-то считали своими близкими."
desc[#desc+1] = "Кайлесс, тот, кто навлёк проклятие, умер от вашей руки."
desc[#desc+1] = "#LIGHT_GREEN#Вам нужно найти Береза, последнего человека, который сможет вам помочь."
desc[#desc+1] = "Вы нашли маленький железный жёлудь, который вы храните в качестве напоминания о своём прошлом."
desc[#desc+1] = "Вы уничтожили караван торговцев, которых вы когда-то считали своими близкими."
desc[#desc+1] = "#LIGHT_GREEN#Ищите пещеру Кайлесса в северной части луга и прикончите его. Возможно, проклятие закончится с его гибелью."
desc[#desc+1] = "Вы нашли маленький железный жёлудь, который вы храните в качестве напоминания о своём прошлом."
desc[#desc+1] = "#LIGHT_GREEN#Откройте для себя значение жёлудя и сновидения."
desc[#desc+1] = "#LIGHT_GREEN#Возможно, вам придётся пересмотреть своё прошлое, чтобы разблокировать в нём некий скрытый секрет."
game.logPlayer(who, "#VIOLET#Пришло время узнать истинную природу вашего проклятия.")
game.logPlayer(who, "#VIOLET#Вы очутились во сне.")
game.logPlayer(who, "#VIOLET#Ваша ненависть растёт. Вы отказываетесь поддаваться смерти!")
game.logPlayer(who, "#VIOLET#Вы обнаружили маленький железный жёлудь, связь с вашим прошлым.")
game.logPlayer(who, "#VIOLET#Торговый караван из прошлого оказался в вашем сне.")
game.logPlayer(who, "#VIOLET#Вы начали охоту на Кайлесса!")
game.logPlayer(who, "#VIOLET#У вас есть указатель на вход в пещеру Кайлесса!")
game.logPlayer(who, "#VIOLET#Вы нашли вход в пещеру Кайлесса!")
game.logPlayer(who, "#VIOLET#Вы нашли вход в подземелье!")
game.logPlayer(who, "#VIOLET#Тени заметили вас!")
simplePopup("Второе подземелье", "Вы определяете эту дверь как вход во второе подземелье. С другой стороны двери раздаются шумы возни и звуки тяжёлого дыхания.")
game.logPlayer(who, "#VIOLET#Вы нашли Кайлесса. Вы должны уничтожить его.")
game.logPlayer(who, "#VIOLET#Кайлесс мёртв.")
game.logPlayer(who, "#VIOLET#Берез лежит мёртвый.")
file/game/modules/tome.team/data/quests/kryl-feijan-escape.lua.txt
desc[#desc+1] = "Вы обнаружили секту, поклоняющуюся находящемуся в склепе демону по имени Крул'Феижан."
desc[#desc+1] = "Они пытались вернуть его в мир, принеся в жертву человека."
desc[#desc+1] = "Вы сокрушили последователей и спасли женщину. Она сказала, что она дочь богатого торговца из Последней надежды."
desc[#desc+1] = "Вы не смогли защитить её, сопровождая её из склепа."
desc[#desc+1] = "Вы не смогли вовремя победить последователей; женщина разодрана на части, растущим внутри неё демоном."
file/game/modules/tome.team/data/quests/lichform.lua.txt
desc[#desc+1] = "Заботы этого бренного мира ничтожны по сравнению с вашей истинной целью - подчинить смерть."
desc[#desc+1] = "Ваши исследования раскрыли многое насчёт этой темы, но теперь вы должны подготовиться к своему славному возрождению."
desc[#desc+1] = "Вам понадобится:"
desc[#desc+1] = "#LIGHT_GREEN#* Вы достаточно опытны.#WHITE#"
desc[#desc+1] = "#SLATE#* Церемония потребует, чтобы вы были достойны, опытны и обладали определённым количеством силы#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы извлекли сердце одного из ваших коллег некромантов.#WHITE#"
desc[#desc+1] = "#SLATE#* Бьющееся сердце могущественного некроманта.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Икгур «крепости» Шер'Тула находится в предназначенном для него помещении.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Икгур имеет достаточно энергии.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Сейчас вы на пути становления личем.#WHITE#"
desc[#desc+1] = "#SLATE#* Используя сферу управления, Икгур начинает церемонию.#WHITE#"
desc[#desc+1] = "#SLATE#* Ваше логово должно накопить достаточно энергии, чтобы использовать её для вашего перерождения (40 частей энергии).#WHITE#"
desc[#desc+1] = "#SLATE#* Церемония потребует подходящего места, уединённого и с учётом направления распределения энергии#WHITE#"
simplePopup("Лич", "Секреты смерти раскрыты для вас! Талант «Лич» разблокирован!")
file/game/modules/tome.team/data/quests/lightning-overload.lua.txt
desc[#desc+1] = "Когда вы приблизились к Дерту, вы увидели огромное облако над маленьким городом."
desc[#desc+1] = "Когда вы вошли, вас встретила армия воздушных элементалей, истребляющих население."
desc[#desc+1] = " * Вы расправились с элементалями, но облако по-прежнему осталось. Вы должны найти могущественного союзника, чтобы устранить его. Ходят слухи о тайном городе в горах, на юго-западе. Вы также можете проверить фракцию Зигурант, которая подразумевает борьбу с магией."
desc[#desc+1] = " * Вы узнали, что реальная угроза исходит от мерзавца архимага Бури по имени Уркис. Маги Анголвена готовы телепортировать вас туда."
desc[#desc+1] = " * Вы узнали, что реальная угроза исходит от мерзавца архимага Бури. Вам показали секретный вход в его крепость."
desc[#desc+1] = " * С Уркисом разобрались. Окончательно."
game:unlockBackground("дерт", "Дерт")
Chat.new("derth-attack-over", {name="Испуганный полурослик"}, game.player)
simpleLongPopup("Danger...", [[Вы шагаете по малознакомой территории. Вы почти на вершине одного из самых высоких пиков.
Буря бушует над вашей головой.]], 400)
simpleLongPopup("Опасность...", "Когда вы прибыли в Дерт, вы заметили огромное тёмное облако, парящее над городом.\nВы слышите крики, идущие с городской площади.", 400)
simpleLongPopup("Чистое небо", "Похоже, Зигурант сдержали своё слово.\nДерт свободен от штормового облака.", 400)
simpleLongPopup("Чистое небо", "Похоже, маги сдержали своё слово.\nДерт свободен от штормового облака.", 400)
file/game/modules/tome.team/data/quests/lost-merchant.lua.txt
desc[#desc+1] = "Вы услышали призыв о помощи и решили разобраться..."
desc[#desc+1] = "Только чтобы обнаружить себя запертым внутри неизвестного туннельного комплекса."
game.logPlayer(who, "У ваших ног появляется лестница. Лорд говорит: «И помни, ты принадлежишь МНЕ. Я призову тебя».")
game.logPlayer(who, "#LIGHT_BLUE#Торговец благодарит вас за спасение своей жизни. Он даёт вам 8 золотых и просит вас встретиться с ним снова в Последней надежде.")
file/game/modules/tome.team/data/quests/love-melinda.lua.txt
desc[#desc+1] = "После спасения Мелинды от Крул'Феижана и культистов вы снова встретили её в Последней надежде."
desc[#desc+1] = "Мелинда была спасена от неминуемой смерти на пляже странной волной скверны."
desc[#desc+1] = "Мелинда погибла от набега отряда Йечей на пляж."
desc[#desc+1] = "Тень «крепости» сказала, что её можно вылечить."
desc[#desc+1] = "Мелинда решила пожить с вами, в вашей «крепости»."
desc[#desc+1] = "Тень «крепости» создала для неё портал, чтобы она могла свободно приходить и уходить."
desc = [[Вы спасли её из глубины логова культистов и влюбились в неё. Она переехала в «крепость», чтобы видеть вас чаще.]]
title="Мелинда"
file/game/modules/tome.team/data/quests/lumberjack-cursed.lua.txt
desc[#desc+1] = "Вы встретили полусумасшедшего лесоруба бегущего из маленькой деревушки и бормочущего что-то о неописуемом ужасе, который таится там и убивает людей."
game.logPlayer(game.player, "Он указывает на север, в сторону Рилджекского леса.")
simplePopup("Thanks", ("Остальные лесорубы собирают золото, чтобы отблагодарить вас (%0.2f)."):format(money))
simplePopup("Thanks", ("Вы спасли %s из наших, пожалуйста, примите это в качестве награды. (Они дают вам %s)"):format(self.lumberjacks_died == 0 and "all" or "most", o:getName{do_color=true}))
game.logSeen(game.player, "#LIGHT_RED#Лесоруб падает замертво на землю.")
file/game/modules/tome.team/data/quests/mage-apprentice.lua.txt
desc[#desc+1] = "Вы встретили начинающего мага, которому поручено собрать усиленный магический артефакт."
desc[#desc+1] = "Он попросил вашей помощи, вы должны отобрать то, что вам не нужно."
showInventory("Какой предмет предложить?", who:getInven("INVEN"),
function(o) return (o.power_source and o.power_source.arcane and o.unique) or (o.define_as == "STAFF_ABSORPTION")
end,
function(o, item)
-- Special handling for the staff of absorption
if o.define_as and o.define_as == "STAFF_ABSORPTION" then
game.logPlayer(who, "#LIGHT_RED#Когда ученик касается посоха, он начинает кричать, из его рта вырывается пламя. Похоже, жизнь оставила его, и в одно мгновение он рухнул на землю безжизненной оболочкой.")
who:setQuestStatus(self, self.FAILED)
game:unregisterDialog(dialog.next_dialog)
game.level.map:particleEmitter(npc.x, npc.y, 3, "fireflash", {radius=3, tx=npc.x, ty=npc.y})
world:gainAchievement("APPRENTICE_STAFF", player)
npc:die()
return false
end
self.nb_collect = self.nb_collect + 1
if self.nb_collect >= 1 then who:setQuestStatus(self, self.COMPLETED) end
who:removeObject(who:getInven("INVEN"), item)
game.log("У вас больше нет %s", o:getName{no_count=true, do_color=true})
who:sortInven(who:getInven(inven))
dialog:regen()
return false
end
)
game.logPlayer(player, "Вы получаете: %s", o:getName{do_color=true})
file/game/modules/tome.team/data/quests/master-jeweler.lua.txt
desc[#desc+1] = "Вы нашли древний фолиант о драгоценных камнях."
desc[#desc+1] = "Вы должны принести его ювелиру в Утренних Вратах."
desc[#desc+1] = "Лиммир подсказал вам искать долину Луны в южных горах."
game.logPlayer(who, "#VIOLET#Похоже, этот фолиант о возможностях драгоценных камней. Может быть, вам стоит принести его ювелиру в Утренние Врата.")
game.logPlayer(game.player, "Лиммир указывает на вход в пещеру на вашей карте. Предполагается, что это путь в долину.")
game.logPlayer(who, "Вы должны находиться возле лунного камня, чтобы вызвать Лиммира.")
game.logPlayer(who, "У вас нет свитка вызова!")
title="Лиммир (Квест)"
file/game/modules/tome.team/data/quests/orb-command.lua.txt
desc[#desc+1] = "Вы нашли сферу власти, которая, похоже, используется для открытия щита, защищающего Высокий пик."
desc[#desc+1] = "Сфер всего четыре. Чем больше их у вас окажется, тем слабее будет щит."
game.logPlayer(who, "#LIGHT_BLUE#Раздаётся громкий треск. Путь открыт.")
file/game/modules/tome.team/data/quests/orc-breeding-pits.lua.txt
desc[#desc+1] = "Вы столкнулись с умирающим паладином солнца, который рассказал вам о яме для взращивания орков, о настоящей мерзости."
desc[#desc+1] = "Вы решили проинформировать Айрин, чтобы она разобралась с этим."
desc[#desc+1] = "Айрин сказала, что отправит войско, чтобы разобраться с этим."
desc[#desc+1] = "Вы возложили на себя обязанность по их очистке и нанесению сокрушительного удара по оркам."
desc[#desc+1] = "Отвратительное задание завершено."
g.name = "Вход в яму для взращения орков"
file/game/modules/tome.team/data/quests/orc-hunt.lua.txt
desc[#desc+1] = "Старейшина из Последней Надежды отправил вас в древнее королевство гномов Рекнор, глубоко под железным троном, чтобы разобраться насчёт присутствия орков."
desc[#desc+1] = "Узнайте, связаны ли они каким-либо образом с утраченным посохом."
desc[#desc+1] = "Но будьте осторожны, даже гномы не решаются забредать в эти старые залы уже много лет."
game.logPlayer(game.player, "Старейшина отмечает на вашей карте местоположение Рекнора, к северу от западной части Железного трона.")
file/game/modules/tome.team/data/quests/orc-pride.lua.txt
desc[#desc+1] = "Разберитесь с оплотами орды."
desc[#desc+1] = "#LIGHT_GREEN#* Вы уничтожили Рак'Шора.#WHITE#"
desc[#desc+1] = "#SLATE#* Клан Рак'Шора, на западе южной пустыни.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы уничтожили Вура.#WHITE#"
desc[#desc+1] = "#SLATE#* Клан Вура, на северо-востоке.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы уничтожили Грушнака.#WHITE#"
desc[#desc+1] = "#SLATE#* Клан Грушнака, недалеко от небольшого горного хребта на северо-западе.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы уничтожили Горбата.#WHITE#"
desc[#desc+1] = "#SLATE#* Клан Горбата, в горах южной пустыни.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Все оплоты орды лежат в руинах, их лидеры уничтожены. Верховный Паладин Солнца Айрин, несомненно, будет рада новостям!#WHITE#"
file/game/modules/tome.team/data/quests/paradoxology.lua.txt
desc[#desc+1] = "Вы встретили того, кто кажется будущим вариантом вас.\n"
desc[#desc+1] = "Вы пытались убить себя, чтобы помешать вам что-то сделать или куда-то направиться... вам не совсем понятно.\n"
desc[#desc+1] = "Вы убиты вашим будущим «я», и, таким образом, это событие никогда не происходило.\n"
desc[#desc+1] = "Вы убили своё будущее «я». В будущем, вы, возможно, захотите избежать путешествия во времени к этому моменту...\n"
game.logSeen(self, "#LIGHT_BLUE#Убийство своего собственного будущего «я», кажется странным, но вы знаете, что вы можете избежать этого будущего. Просто не путешествуйте во времени.")
game.logSeen(self, "#LIGHT_BLUE#Ваше будущее «я» убивает вас! Временные потоки нарушаются парадоксом!")
game.logSeen(self, "#LIGHT_BLUE#Все эти события никогда не происходили. Помимо того, что они были, когда-то.")
game.log("Этот разрыв во времени создал парадокс. Вы не смеете войти в него; это может ухудшить ситуацию. Другой Страж исправит ваше безобразие.")
).new("пародоксология"
file/game/modules/tome.team/data/quests/pre-charred-scar.lua.txt
desc[#desc+1] = "Орки были замечены с посохом, который вы искали в бесплодной пустоши южной пустыни."
desc[#desc+1] = "Вы должны разобраться, что там происходит."
game.logPlayer(game.player, "Айрин описала, где были замечены орки.")
file/game/modules/tome.team/data/quests/rel-tunnel.lua.txt
desc[#desc+1] = "Вы должны найти путь к Мадж'Эялу через туннель на севере острова.\n"
file/game/modules/tome.team/data/quests/ring-of-blood.lua.txt
desc[#desc+1] = "Вы обнаружили посёлок работорговцев и вошли в него."
desc[#desc+1] = "Вы решили присоединиться к работорговцам и принять участие в их игре. Вы победили на Кровавом ринге!"
desc[#desc+1] = "Вы решили, что не можете позволить работорговцам продолжать свою грязную работу и уничтожили их!"
game.log("Похоже, что сфера гаснет без владельца ринга.")
game.log("#CRIMSON#Толпа кричит: «ЛУЗЕР!»")
game.log("#LIGHT_GREEN#Когда вы касаетесь сферы, ваша воля завладевает телом раба. Вы полностью контролируете его действия!")
game.log("#CRIMSON#Новый враг появляется на Кровавом ринге!")
game.log("#CRIMSON#Толпа кричит: «КРО-О-ОВЬ!»")
game.logPlayer(who, "#LIGHT_BLUE#Владелец ринга вручает вам %s.", o:getName{do_color=true})
file/game/modules/tome.team/data/quests/shertul-fortress.lua.txt
desc[#desc+1] = "Внутри Старого леса вы нашли заметки у исследователя. Он упоминал о руинах Шер'Тула, затонувших в водах озера Нур, в центре леса."
desc[#desc+1] = "С одной из записок был небольшой драгоценный камень, который выглядит как ключ."
desc[#desc+1] = "#LIGHT_GREEN#* Вы использовали ключ в руинах Нура и нашли путь в крепость старины глубокой.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Жуткая тварь мертва, путь в крепость свободен.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы активировали то, что кажется... дворецким? С помощью жезла возвращения.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы настроили Сундук метаморфоз на систему питания «крепости».#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы улучшили Сундук метаморфоз, чтобы автоматически превращать металлические предметы в драгоценные камни, прежде чем трансформировать их.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы разблокировали тренажёрный зал.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы разблокировали зал отражений.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы улучшили ваш жезл Возвращения, чтобы он перемещал вас в «крепость».#WHITE#"
desc[#desc+1] = "#SLATE#* Тень «крепости» попросила вас вернуться как можно скорее.#WHITE#"
desc[#desc+1] = "#RED#* Вы были вынуждены применить жезл, находясь в зоне исследовательского портала. В результате этого процесса портал был выведен из строя.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы вошли в помещение исследовательского портала и сокрушили ужас, скрывающийся там. Теперь вы можете использовать портал.#WHITE#"
desc[#desc+1] = "#SLATE#* Тень «крепости» попросила вас вернуться как можно скорее.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы снова активировали системы полёта «крепости». Теперь вы можете летать в своей «крепости».#WHITE#"
desc[#desc+1] = "#SLATE#* Тень «крепости» попросила вас найти Древний Сапфир Бури и 250 частей энергии, чтобы активировать системы полета в «крепости».#WHITE#"
desc[#desc+1] = ("\nТекущий уровень энергии «крепости»: #LIGHT_GREEN#%d#WHITE#.")
game:unlockBackground("«крепость»", "Илкгур, «крепость» Шер'Тула")
simpleLongPopup("Тень «крепости»", "Создатель, вы передали достаточно энергии, чтобы улучшить свой жезл Возвращения. Пожалуйста, вернитесь в «крепость».", 400)
simpleLongPopup("Тень «крепости»", "Создатель, вы передали достаточно энергии, чтобы активировать исследовательский портал.\nОднако в этом помещении, похоже, имеет место нарушение режима. Пожалуйста, вернитесь как можно скорее.", 400)
simpleLongPopup("Тень «крепости»", "Создатель, вы передали достаточно энергии для активации систем полёта.\nОднако, один управляющий кристалл сломан. Вам нужно найти #GOLD#Древний Сапфир Бури#WHITE#.", 400)
simplePopup("Тень «крепости»", "Уровень энергии слишком низок. Он должен быть не менее 15.")
game.log("#VIOLET#Ваш жезл Возвращения на мгновение ярко засветился.")
simplePopup("Тень «крепости»", "Уровень энергии слишком низок. Он должен быть не менее 25.")
game.log("#VIOLET#Ваш Сундук метаморфоз на мгновение ярко засветился.")
game.log("«Крепость» не обнаружена!")
file/game/modules/tome.team/data/quests/spydric-infestation.lua.txt
desc[#desc+1] = "Войдите в пещеры Ардхунгола и найдите Паладина Солнца Рашима."
desc[#desc+1] = "Но будьте осторожны; эти паучки не маленькие..."
desc[#desc+1] = "#LIGHT_GREEN#Вы убили Унголе в Ардхунголе и спасли Паладина Солнца."
game.logPlayer(game.player, "Она отмечает расположение Ардхунгола на вашей карте.")
game.logPlayer(who, "Портал появляется прямо под вами и Рашим проскакивает в него.")
file/game/modules/tome.team/data/quests/staff-absorption.lua.txt
desc[#desc+1] = "Глубоко в Обители ужаса вы сражаетесь и уничтожаете Повелителя, могущественного вампира."
desc[#desc+1] = "На вашем пути из Обители ужаса вы попали в засаду, устроенную группой орков."
desc[#desc+1] = "Они спрашивали о посохе."
desc[#desc+1] = "На вашем пути из Обители ужаса вы попали в засаду, устроенную группой орков и оставлены умирать."
desc[#desc+1] = "Они спрашивали о посохе и забрали его у вас."
desc[#desc+1] = "#LIGHT_GREEN#Идите сразу в Последнюю надежду, чтобы сообщить об этих событиях!"
desc[#desc+1] = "На вашем пути из Обители ужаса вы попали в засаду, устроенную группой орков."
desc[#desc+1] = "Они спрашивали о посохе и забрали его у вас."
desc[#desc+1] = "Вы ничего им не сказали и сразили их."
desc[#desc+1] = "#LIGHT_GREEN#Идите сразу в Последнюю надежду, чтобы сообщить об этих событиях!"
desc[#desc+1] = "В останках, вы обнаружили странный посох. Он излучает энергию и опасность, и вы не решаетесь использовать его сами."
desc[#desc+1] = "Вы должны принести его старейшинам Последней Надежды, на юго-востоке."
game.logPlayer(who, "#00FFFF#Вы можете чувствовать силу этого посоха, просто неся его. Он древний, и вместе с тем опасный.")
game.logPlayer(who, "#00FFFF#Его нужно показать мудрым старейшинам в Последней надежде!")
game.logPlayer(who, "#VIOLET#Покинув Обитель ужаса, вы замечаете, что окружены группой орков!")
simpleLongPopup("Засада", [[Вы очухиваетесь через несколько часов, удивляясь, что живы, но посох пропал!
#VIOLET#Идите сразу в Последнюю надежду, чтобы сообщить об этих событиях!]], 600)
Chat.new("dreadfell-ambush", {name="Укрук Свирепый"}, who)
simpleLongPopup("Засада", [[Вы удивлены, что всё ещё живы.
#VIOLET#Идите сразу в Последнюю надежду, чтобы сообщить об этих событиях!]], 600)
file/game/modules/tome.team/data/quests/start-allied.lua.txt
desc[#desc+1] = "Исследуйте пещеры под руинами Кор'Пула и Тролльмир в поисках сокровищ и славы!\n"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Тролльмир и сразили тролля Шакса.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Тролльмир и сразили тролля Прокса.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Тролльмир и узнать, что таится там и какие сокровища можно получить!#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали руины Кор'Пула и сразили одержимых.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали руины Кор'Пула и сразили Тень.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать руины Кор'Пула и узнать, что таится там и какие сокровища можно получить!#WHITE#"
file/game/modules/tome.team/data/quests/start-archmage.lua.txt
desc[#desc+1] = "Возмущённое Пространство - часть Эяла, вырванная Небесным огнём и брошенная в пустоту меж звёзд.\n"
desc[#desc+1] = "В последнее время оно начало дестабилизироваться, угрожая свалиться на Эял и уничтожить всё на своём пути.\n"
desc[#desc+1] = "Вы проникли в него и теперь должны стабилизировать три червоточины, атакуя их заклинанием.\n"
desc[#desc+1] = "Помните, что парящие острова нестабильны и могут телепортироваться случайным образом. Тем не менее, возмущения также помогают вам: ваше заклинание фазовой двери полностью контролируется, даже если оно не находится на высоком уровне.\n"
desc[#desc+1] = "#LIGHT_GREEN#* Вы исследовали Пространство и закрыли все три червоточины.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы закончили "
file/game/modules/tome.team/data/quests/start-dwarf.lua.txt
desc[#desc+1] = "Вы были частью группы гномов, посланных для расследования ситуации в королевстве Рекнор."
desc[#desc+1] = "Когда вы прибыли туда, вы не нашли ничего, кроме орков, хорошо организованных и очень сильных."
desc[#desc+1] = "Большая часть вашей команды была убита, и теперь вы и Норган (единственный оставшийся в живых, кроме вас) должны спешить обратно в Железный совет, чтобы доставить новости."
desc[#desc+1] = "Пусть ничто не остановит вас."
desc[#desc+1] = "И Норган, и вы добрались до дома."
title="Норган"
file/game/modules/tome.team/data/quests/start-point-zero.lua.txt
desc[#desc+1] = "Грешное болото - это название «зоны», окружающей Точку Отсчёта."
desc[#desc+1] = "Временные пауки, населяющие его, становятся беспокойными и начинают беспорядочно атаковать. Вам нужно выяснить, что происходит."
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали болото и уничтожили Королеву ткачиху, найдя на ней странные следы.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать болото.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы помогли защитить Точку Отсчёта.#WHITE#"
file/game/modules/tome.team/data/quests/start-shaloren.lua.txt
desc[#desc+1] = "Вы слышали, что в мерцающих пещерах лежат странные кристаллы, пропитанные энергией Небесного огня.\n"
desc[#desc+1] = "Есть также слухи о лагере отступников Шалоренов, на западе.\n"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали мерцающие пещеры и уничтожили кристалл Небесного огня.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать мерцающие пещеры.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали лагерь Ралоренов и убили Инквизитора.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать лагерь отступников Шалоренов.#WHITE#"
file/game/modules/tome.team/data/quests/start-sunwall.lua.txt
desc[#desc+1] = "Наги вторглись в болота Слассиша. Солнечная стена не может сражаться на два фронта; вам нужно остановить захватчиков, пока не стало слишком поздно.\n Найдите и уничтожьте портал захватчиков."
desc[#desc+1] = "#LIGHT_GREEN#* Вы уничтожили портал наг. Вторжение остановлено.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы вернулись в Вар'Эял, Дальний Восток, так люди с запада называют его.#WHITE#"
desc[#desc+1] = "#SLATE#* Однако вас телепортировало в отдалённый район. Вы должны найти путь к Утренним Вратам.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны остановить нагов.#WHITE#"
file/game/modules/tome.team/data/quests/start-thaloren.lua.txt
desc[#desc+1] = "Лесу Талоренов нанесён ущерб. Заражение распространяется. Говорят, что хранитель Норгос сошёл с ума.\n"
desc[#desc+1] = "На западной границе леса создана тёмная аура. Всё внутри... изменяется.\n"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали логово Норгоса и остановили вторжение Шивгорота.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали логово Норгоса и всё успокоилось.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать логово Норгоса.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Сердце Мрака и убили Сновидящего.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Сердце Мрака и убили Увядающую Тварь.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Сердце Мрака.#WHITE#"
file/game/modules/tome.team/data/quests/start-undead.lua.txt
desc[#desc+1] = "Вы возродились как нежить с некоторым количеством тёмной силы."
desc[#desc+1] = "Однако, ритуал каким-то образом не удался, и вы сохранили свой собственный разум. Вам нужно выбраться из этого тёмного места и попытаться занять достойное место в мире."
desc[#desc+1] = "Вы нашли особый плащ, который поможет вам ходить без проблем среди живых."
file/game/modules/tome.team/data/quests/start-yeek.lua.txt
desc[#desc+1] = "Вам было поручено устранить две угрозы безопасности йииков.\n"
desc[#desc+1] = "Защитите Путь и одолейте врагов.\n"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали подводную область и сразили нага-захватчика, леди Нашву.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали подводную область и сразили Мургола.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать подводное логово Мургола.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Туннели ритчей и сразили их королеву.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Туннели ритчей.#WHITE#"
game.logPlayer(game.player, "Вы должны отправиться в туннель к Мадж'Эялу и исследовать мир. Ради Пути.")
file/game/modules/tome.team/data/quests/starter-zones.lua.txt
desc[#desc+1] = "Пришло время исследовать новые места - тёмные, забытые и опасные."
desc[#desc+1] = "Старый лес находится к юго-востоку от города Дерта."
desc[#desc+1] = "Лабиринт находится к западу от Дерта."
desc[#desc+1] = "Логово песчаных червей находится далеко к западу от Дерта, недалеко от моря."
desc[#desc+1] = "Дайкара находится на восточных границах леса Талоренов."
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Старый Лес и сразили Кристаллуса.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обседовали Старый Лес и сразили Свирепого энта.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Старый Лес и выяснить, что таится там и какие сокровища можно получить!#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Лабиринт и сразили Рогатый Ужас.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Лабиринт и сразили Минотавра.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Лабиринт и выяснить, что таится там и какие сокровища можно получить!#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Логово песчаных червей и сразили их королеву.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Логово песчаных червей и узнать, что таится там и какие сокровища можно получить!#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Дайкару и сразили огромного огненного дракона, который там жил.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы обследовали Дайкару и сразили огромного ледяного дракона, который там жил.#WHITE#"
desc[#desc+1] = "#SLATE#* Вы должны обследовать Дайкару и выяснить, что таится там и какие сокровища можно получить!#WHITE#"
file/game/modules/tome.team/data/quests/strange-new-world.lua.txt
desc[#desc+1] = "Вы прибыли через портал в пещеру, возможно, в Дальний Восток."
desc[#desc+1] = "По прибытии вы встретили сражающихся эльфа и орка."
desc[#desc+1] = "Вы решили встать на сторону эльфийской леди."
desc[#desc+1] = "Вы решили встать на сторону орка."
desc[#desc+1] = "Филларель сказала вам отправиться на юго-восток и встретиться с Верховным Паладином Солнца Айрин."
desc[#desc+1] = "Крогар сказал вам отправиться на запад и найти клан Крука"
doEmote(game.player.descriptor.race.." идите на запад и найдите клан Крука!", 120)
doEmote(game.player.descriptor.race.." идите на юго-восток и расскажите Айрин, что случилось со мной!", 120)
file/game/modules/tome.team/data/quests/temple-of-creation.lua.txt
desc[#desc+1] = "Уклмсвик попросил вас забрать его портал в Храм Творца и убить Сласула, который стал безумным."
desc[#desc+1] = "Сласул рассказал вам свою историю. Теперь вы должны решить: кто из них лжёт?"
desc[#desc+1] = "Сласул связал свою жизненную силу с вашей и отдал вам взамен могущественный трезубец."
desc[#desc+1] = "#LIGHT_GREEN#* Вы убили и Уклмсвика, и Сласула, предав их обоих.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы встали на сторону Уклмсвика и убили Сласула.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы встали на сторону Сласула и убили Уклмсвика.#WHITE#"
game.logPlayer(game.player, "За Уклмсвиком открывается портал.")
game.logPlayer(game.player, "Портал ведёт в затопленную пещеру.")
file/game/modules/tome.team/data/quests/temporal-rift.lua.txt
desc[#desc+1] = "Пройдя через какую-то аномалию времени, вы встретили временного стража, который сказал вам уничтожить мерзости этой альтернативной реальности.\n"
Chat.new("temporal-rift-end", {name="Временной Воитель"}, who)
file/game/modules/tome.team/data/quests/trollmire-treasure.lua.txt
desc[#desc+1] = "Вы нашли все ключи, ведущие к спрятанному сокровищу. Должен быть путь на третьем уровне Тролльмира."
desc[#desc+1] = "Это выглядит чрезвычайно опасно, поэтому, будьте осторожны."
desc[#desc+1] = "Вы убили Билла. Его сокровище ваше по праву."
g.name = "путь к спрятанному сокровищу Тролльмира"
g.desc = "Берегитесь!"
yesnoPopup("Опасность...", "Этот путь ведёт в логово могучего тролля. Следы крови повсюду. Вы уверены?", function(ret)
if ret then game:changeLevel(4) end
end)
simplePopup("Спрятанное сокровище", "Путь к сокровищу находится на востоке. Но остерегайтесь, вероятно, там ждёт смерть.")
file/game/modules/tome.team/data/quests/tutorial-combat-stats.lua.txt
desc[#desc+1] = "Вы должны отправиться в сердце леса и убить Одинокого Волка, который атакует без разбора селян."
desc[#desc+1] = "#LIGHT_GREEN#Вы сокрушили Одинокого Волка!#WHITE#"
desc[#desc+1] = "Пройти обучающее подземелье, чтоб больше узнать об игровой механике."
).new("Обучение закончено"
).new("Основы геймплея"
).new("Механика боевых характеристик"
).new("Механика боевых характеристик"
file/game/modules/tome.team/data/quests/tutorial.lua.txt
desc[#desc+1] = "Вы должны отправиться в сердце леса и убить Одинокого Волка, который атакует без разбора жителей деревни."
).new("Обучение: Передвижение"
file/game/modules/tome.team/data/quests/void-gerlyk.lua.txt
desc[#desc+1] = "Вы уничтожили волшебников. К сожалению, портал Пустоты по-прежнему открыт; Творец идёт."
desc[#desc+1] = "Этого нельзя допустить. Спустя тысячи лет заточения в Пустоте меж звёзд, Герлик сошёл с ума от злости."
desc[#desc+1] = "Теперь вы должны закончить то, что начали Шер'Тулы. Возьмите посох Поглощения и станьте Богоборцем."
file/game/modules/tome.team/data/quests/west-portal.lua.txt
desc[#desc+1] = "Земеккис в Утренних Вратах может построить для вас портал в Мадж'Эял."
desc[#desc+1] = "#LIGHT_GREEN#* Вы нашли Окровавленный рунный атам.#WHITE#"
desc[#desc+1] = "#SLATE#* Найдите Окровавленный рунный атам.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Вы нашли Резонирующий алмаз.#WHITE#"
desc[#desc+1] = "#SLATE#* Найдите Резонирующий алмаз.#WHITE#"
desc[#desc+1] = "#LIGHT_GREEN#* Портал в Мадж'Эял теперь функционирует и может быть использован для возврата, но, как и все порталы, он работает только в одну сторону.#WHITE#"
game.logPlayer(game.player, "Земеккис указывает местоположение Арсенала Вур на вашей карте.")
game.logPlayer(game.player, "Земеккис указывает местоположение логова Бриаха на вашей карте.")
game.logPlayer(game.player, "#VIOLET#Земеккис начинает чертить руны на полу, используя атам и пыль драгоценных камней.")
game.logPlayer(game.player, "#VIOLET#Всю местность начинает трясти!")
game.logPlayer(game.player, "#VIOLET#Земеккис говорит: «Портал завершён!»")
file/game/modules/tome.team/data/quests/wild-wild-east.lua.txt
desc[#desc+1] = "Там должен быть способ, чтобы отправиться в Дальний Восток из логова Голбуга. Найдите и исследуйте неведомый Дальний Восток, ища подсказки."
file/game/modules/tome.team/data/resources.lua.txt
print("[Resources] Defining Actor Resources")
compare_fields(act1, act2, function(act) local _, chance = act:equilibriumChance() return 100-chance end, "%d%%", "%+d%%", 1, true)
return ("%d/%d (%d%%%%)"):format(act:getModifiedParadox(), act:getParadox(), chance), chance
end
compare_fields(act1, act2, function(act) return act:paradoxFailChance() end, "%d%%", "%+d%%", 1, true)
file/game/modules/tome.team/data/rooms/forest_clearing.lua.txt
print("Flooding with", #list)
print("Flooding!", x, y, "::", #q, n.x, n.y)
print("Floodfill group", i, #closed)
print("Ok floodfill", #g.list)
print("Done!")
file/game/modules/tome.team/data/rooms/greater_vault.lua.txt
print("[greater_vault] initializing auto list:")
print("generated greater_vault", vaultid)
print("greater_vault could not generate a vault")
print("[greater_vault] WARNING: replacing undefined tile for", vault.name, i, j)
file/game/modules/tome.team/data/rooms/lesser_vault.lua.txt
print("[lesser_vault] initializing auto list:")
print("generated lesser_vault", vaultid)
print("lesser_vault could not generate a vault")
print("[lesser_vault] WARNING: replacing undefined tile for", vault.name, i, j)
file/game/modules/tome.team/data/rooms/random_room.lua.txt
file/game/modules/tome.team/data/rooms/zones/prox.lua.txt
print("Prox stew at", s.x, s.y)
file/game/modules/tome.team/data/rooms/zones/zoisla.lua.txt
print("Zoisla portal at", s.x, s.y)
file/game/modules/tome.team/data/talents.lua.txt
print("[TALENTS TACTICS]")
file/game/modules/tome.team/data/timed_effects/floor.lua.txt
desc = "Ледяной Пол"
long_desc = "Идя по ледяному полу, увеличивается скорость передвижения на 20%, обеспечивая + 20% урона пронизывающим холодом и -30% сопротивления оглушению."
desc = "Источник жизни"
return ("Находясь вблизи источника жизни вы получаете регенерацию: %+0.2f жизни, %+0.2f равновесия, %+0.2f выносливости и %+0.2f пси-энергии. (Только живые создания.)"):format(eff.power, eff.equilibrium, eff.stamina, eff.psi) end
desc = "Заражённая земля"
long_desc = "Находясь на заражённой земле, уменьшается сопротивление к болезням на 60% и наделяет все атаки с 40% шанса заразить цель случайным заболеванием (может произойти только один раз за ход)."
desc = "Мерцающий камень"
long_desc = "Если цель под влиянием мерцающего камня, то следующая атака может привести к оцепенению."
desc = "Защитная аура"
return ("Находясь вблизи защитной ауры предоставляется +%d брони и на +%d физическая защита."):format(eff.armor, eff.power) end
desc = "Антимагический куст"
return ("Находясь вблизи антимагического куста предоставляется +20%% природного урона, +20%% природного сопротивления и -%d сила заклинаний."):format(eff.power) end
desc = "Некротический воздух"
long_desc = "Находясь в зоне некротического воздуха снижается на -40% исцеление. Нежить получает +15% ко всем сопротивлениям."
desc = "Воющий вихрь"
return ("Цель находится в воющем вихре, уворот от дальних повышается на +%d, точность дальних атак понижается на -%d, все летящие в вас снаряды замедляются на 30%%."):format(eff.power, eff.power) end
desc = "Гибельная аура"
long_desc = "Цель находится под воздействием гибельной ауры, урон критических ударов увеличивается на 40%, сопротивление всему урону понижается на 20%."
desc = "Лужа слизи"
long_desc = "Находясь на слизи снижается скорость передвижения на 20% и наносится 20 урона от слизи для любых существ вас атакующих."
file/game/modules/tome.team/data/timed_effects/magical.lua.txt
desc = "Теневое оцепенение"
return ("Цель теряет надежду, весь наносимый урон уменьшается на %d%%."):format(eff.reduce) end
return "#Target# получает ослабление в темноте!", "+Numbing Poison" end
return "#Target# восстанавливает свою энергию.", "-Темнота" end
desc = "Болезнь"
return ("Цель заражена болезнью, уменьшается ловкость, сила и телосложение на %d."):format(eff.reduce) end
return "#Target# страдает от ужасной болезни!" end
return "#Target# избавлен от болезни." end
desc = "Изъеденная броня"
return ("Цель была облита кислотой, снижается уровень брони %d%% (#RED#%d#LAST#)."):format(eff.pct*100 or 0, eff.reduce or 0) end
return "Броню #Target# разъедает!" end
return "Броня #Target# полностью восстановлена." end
desc = "Всплеск маны"
return ("Всплеск маны поглощает цель, регенерируя каждый ход ману на %0.2f."):format(eff.power) end
return "У #Target# всплеск маны.", "+Manasurge" end
return "У #Target# заканчивается всплеск маны.", "-Manasurge" end
desc = "Переизбыток маны"
return ("Переизбыток маны увеличивает ваш максимальный запас маны %d%%."):format(eff.power) end
return "У #Target# переизбыток маны.", "+Mana Overflow" end
return "У #Target# заканчивается переизбыток маны.", "-Mana Overflow" end
desc = "Окаменение"
return "Цель превращена в камень: она обездвижена, неспособна действовать и может быть разрушена одним ударом, наносящим более 30% от максимума жизни. Такое состояние невосприимчиво к отравлению или ранению и повышает сопротивление (+ 20%) физическое, (+ 80%) к огню и (+ 50%) к электричеству." end
return "#Target# превращается в #GREY#КАМЕНЬ#LAST#!", "+Stoned" end
return "#Target# больше не #GREY#статуя#LAST#.", "-Stoned" end
desc = "Магический шторм"
return ("Находясь в центре страшного магического шторма вы получаете +%d%% магического сопротивления."):format(eff.power) end
desc = "Земной барьер"
return ("Уменьшает физический урон, полученный от %d%%."):format(eff.power) end
return "У #Target# твердеет кожа.", "+Earthen barrier" end
return "У #Target# кожа становится нормальной.", "-Earthen barrier" end
desc = "Расплавленная кожа"
return "У #Target# кожа превращается в расплавленную лаву.", "+Molten Skin" end
return "У #Target# кожа становится нормальной.", "-Molten Skin" end
desc = "Отражающая кожа"
return ("Магическим образом возвращает %d%% какой-либо урон, нанесённый нападающим."):format(eff.power) end
return "У #Target# кожа начинает отражать.", "+Reflective Skin" end
return "У #Target# кожа становится нормальной.", "-Reflective Skin" end
return ("Уменьшает сопротивление скверне на %d%%."):format(eff.power) end
desc = "Невидимость"
return ("Улучшает/придаёт невидимость (силой %d), уменьшает наносимый урон на %d%%%s."):format(eff.power, eff.penalty*100, eff.regen and " and preventing healing and life regeneration" or "") end
return "#Target# исчезает из виду.", "+Invis" end
return "#Target# больше не невидим.", "-Invis" end
return "Улучшает органы чувств, позволяя обнаружение невидимых вещей." end
return ("Улучшает/даёт возможность видеть скрытое и невидимых существ (силой %d)."):format(eff.power) end
return "У #Target# зудят глаза." end
return "У #Target# глаза не зудят." end
desc = "Проклятие слепотой"
return ("Цель ослеплена, неспособна видеть что-либо и получает %0.2f урона тьмой каждый ход."):format(eff.dam) end
return "#Target# теряет зрение!", "+Blind" end
return "#Target# восстанавливает зрение.", "-Blind" end
return ("Цель дезориентирована, действует хаотично (с шансом %d%%), не в состоянии выполнять сложные действия и получает %0.2f урона тьмой каждый ход."):format(eff.power, eff.dam) end
return "#Target# бредёт, не зная куда!.", "+Confused" end
return "#Target# не дезориентирован.", "-Confused" end
return ("Цель излучает невероятную силу, весь урон увеличивается на %d%%."):format(eff.power) end
return "#Target# переполнен энергией.", "+Overload" end
return "#Target# кажется менее опасным.", "-Overload" end
return ("Цель задействует скрытую силу крови, увеличивая весь урон на %d%%."):format(eff.power) end
return "#Target# переполнен силой.", "+Life Tap" end
return "#Target# кажется менее опасным.", "-Life Tap" end
desc = "Магический глаз"
return ("У вас есть магический глаз, наблюдающий для вас в радиусе %d."):format(eff.radius) end
return "Магический глаз увидел существо." end
desc = "Повышение всех характеристик"
return ("Все начальные характеристики повышаются на %d."):format(eff.power) end
desc = "Отражающий щит"
return ("Цель окружена пространственным искажением, которое случайно перенаправляет (с шансом %d%%) наносимый урон другой цели (%s). Поглощает %d/%d урона перед разрушением."):format(eff.chance, eff.target and eff.target.name or "unknown", self.displacement_shield, eff.power) end
return "Пространство искажается вокруг #target#.", "+Displacement Shield" end
return "Пространство стабилизируется вокруг #target#.", "-Displacement Shield" end
desc = "Магический щит"
return ("Цель окружена магическим щитом, поглощая %d/%d урона %s перед разрушением."):format(self.damage_shield_absorb, eff.power, ((self.damage_shield_reflect and self.damage_shield_reflect > 0) and ("(reflecting %d%% back to the attacker)"):format(self.damage_shield_reflect) or "")) end
return "Создан щит вокруг #target#.", "+Shield" end
return "Щит вокруг #target# разрушен.", "-Shield" end
desc = "Мученичество"
return ("Весь наносимый цели урон также навредит %d%%."):format(eff.power) end
return "#Target# мученик.", "+Martyr" end
return "На #Target# не влияет мученичество.", "-Martyr" end
return "Аура #Target# тускнеет.", "+Dim" end
desc = "Проклятие уязвимости"
return ("Цель проклята, снижаются все сопротивления на %d%%."):format(eff.power) end
return "#Target# проклят.", "+Curse" end
return "#Target# больше не проклят.", "-Curse" end
desc = "Проклятие бессилия"
return ("Цель проклята, уменьшается весь наносимый урон на %d%%."):format(eff.power) end
return "#Target# проклят.", "+Curse" end
return "#Target# больше не проклят.", "-Curse" end
desc = "Проклятие беззащитности"
return ("Цель проклята, понижается оборона и все виды защиты на %d."):format(eff.power) end
return "#Target# проклят.", "+Curse" end
return "#Target# больше не проклят.", "-Curse" end
desc = "Проклятие смерти"
return ("Цель проклята, получая %0.2f урона от тьмы за ход и препятствуя естественной регенерации жизни."):format(eff.dam) end
return "#Target# проклят.", "+Curse" end
return "#Target# больше не проклят.", "-Curse" end
desc = "Проклятие ненависти"
return ("Цель проклята, вынуждает всех противников в радиусе 5 нападать на неё.") end
return "#Target# проклят.", "+Curse" end
return "#Target# больше не проклят.", "-Curse" end
desc = "Кровожадность"
return ("Цель находится в магическом безумии, повышается сила заклинаний на %d."):format(eff.power) end
desc = "Струя кислоты"
return ("Цель облита кислотой, получает %0.2f урона от кислоты за ход, понижается броня на %d и атака на %d."):format(eff.dam, eff.armor or 0, eff.atk) end
return "#Target# облит кислотой!" end
return "#Target# свободен от кислоты." end
desc = "Кровавая ярость"
return ("Урон скверной и кислотой увеличивается на %d%%."):format(eff.power) end
desc = "Возрождение феникса"
return "Цель возрождается к жизни." end
return "#Target# уничтожается в вспышке пламени. Остаётся только огненное яйцо.", "+Phoenix" end
return "#Target# вырывается из яйца.", "-Phoenix" end
desc = "Ураган"
return ("Цель находится в центре урагана молний, наносится каждый ход от %0.2f до %0.2f урона молнией, самому себе и всем в окружении."):format(eff.dam / 3, eff.dam) end
return "#Target# внутри урагана.", "+Hurricane" end
return "Ураган вокруг #Target# рассеивается.", "-Hurricane" end
desc = "Телепорт: Анголвен"
return "Цель ожидает возвращения в Анголвен." end
game.log("Кто-то следит за вами; вы не можете телепортироваться в Анголвен.")
game.logPlayer(self, "Вы вытащены из этого места!")
game.logPlayer(self, "Пространство дестабилизируется вокруг вас.")
desc = "Гавань времени: Точка отсчёта"
return "Цель ожидает возвращения в Точку отсчёта." end
game.log("Кто-то следит за вами; вы не можете телепортироваться в Точку отсчёта.")
game.logPlayer(self, "Вы вытащены из этого времени!")
game.logPlayer(self, "Время изменяется вокруг вас.")
return "#Target# создаёт охранный щит!", "+Premonition Shield" end
return "Охранный щит #Target# исчезает.", "-Premonition Shield" end
desc = "Разъедающий червь"
return ("Цель заражена разъедающим червём, уменьшается сопротивление скверне и кислоте на %d%%. Когда эффект закончится, червь взорвётся, нанося %d урона кислотой в окружности 4. Этот урон увеличивается на %d%% от всех повреждений, полученных во время мученичества"):format(eff.power, eff.finaldam, eff.rate*100) end
return "#Target# заражена разъедающим червём.", "+Corrosive Worm" end
return "#Target# свободна от разъедающего червя.", "-Corrosive Worm" end
desc = "Облик духа"
return ("Облик духа позволяет проходить сквозь стены (но не природные препятствия), предоставляя %d защиты и %d брони."):format(eff.def, eff.armor) end
return "#Target# становится духом.", "+Wraithform" end
return "#Target# возвращает нормальный облик.", "-Wraithform" end
desc = "Усиленное лечение"
return ("Увеличивает эффективность всего лечения, получаемого цели от %d%%."):format(eff.power * 100) end
desc = "Провидение"
return ("Цель находится под защитой, снимая один негативный эффект каждый ход."):format() end
desc = "Совокупность"
return ("Проницаемость заклинаний света и тьмы увеличена на %d%%."):format(eff.power) end
desc = "Святость"
return ("Цель защищена от эффектов безмолвия.") end
desc = "Движущиеся тени"
return ("Защита цели увеличивается на %d."):format(eff.power) end
desc = "Яркий свет"
return ("Цель получает %d позитивной энергии каждый ход."):format(eff.power) end
desc = "Охрана"
return ("Снаряды, нацеленные на цель, замедляются на %d%%."):format (eff.power) end
desc = "Повернуть время вспять"
return ("Цель возвращается в гораздо более молодое состояние, уменьшая все свои характеристики на %d."):format(eff.power) end
return "#Target# возвращается в гораздо более молодое состояние!", "+Turn Back the Clock" end
return "#Target# восстанавливает свой обычный возраст.", "-Turn Back the Clock" end
desc = "Истощение"
return ("Цель истощена, получая %0.2f темпорального урона каждый ход."):format(eff.power) end
return "#Target# истощён!", "+Wasting" end
return "#Target# не истощён.", "-Wasting" end
desc = "Предвидение"
return ("Повышается восприятие цели, увеличивая обнаружение скрытого, невидимости, защиту и точность на %d."):format(eff.power) end
return "У #Target# повышается восприятие!", "+Prescience" end
return "Восприятие #Target# становится обычным.", "-Prescience" end
desc = "Укрепление"
return ("Цель восстанавливает %d жизни каждый ход и восстанавливает таланты в два раза быстрее от обычного."):format(eff.power) end
return "#Target# в состоянии укрепления.", "+Invigorate" end
return "#Target# больше не в состоянии укрепления.", "-Invigorate" end
desc = "Сбор нитей"
return ("Сила заклинания цели увеличена на %d и будет продолжать увеличиваться на %d каждый ход."):
format(eff.cur_power or eff.power, eff.power/5) end
return "#Target# собирает энергию из других временных потоков.", "+Gather the Threads" end
return "#Target# больше не манипулирует с временными потоками.", "-Gather the Threads" end
desc = "Дефект конструкции"
return ("Сопротивление цели уменьшается на %d%%."):format(eff.power) end
return "#Target# наносится повреждение.", "+Flawed" end
return "#Target# повреждение не наносится.", "-Flawed" end
desc = "Червь маны"
return ("Цель заражена червём маны, вытягивая %0.2f маны за ход и высвобождая её в виде мистического урона на цель."):format(eff.power) end
return "#Target# заражён червём маны!", "+Manaworm" end
return "#Target# больше не заражён.", "-Manaworm" end
desc = "Всплеск нежити"
return ("Увеличивается боевая мощь, сила заклинаний, точность на %d, пробивная способность на %d и шанс критического урона на %d."):format(eff.power, eff.apr, eff.crit) end
return "#Target# охвачен тёмной энергией.", "+Undeath Surge" end
return "#Target# не охвачен тёмной энергией.", "-Undeath Surge" end
desc = "Костяной щит"
return ("Любые атаки наносят больше на %d%% если ваша жизнь снижается до %d%%."):format(eff.power, eff.power) end
return "#Target# защищён костяным щитом.", "+Bone Shield" end
return "Костяной щит #Target# разрушен.", "-Bone Shield" end
return ("Заклинания хрономантов с временем восстановления менее %d больше не требуют перезарядки."):format(eff.max_cd) end
desc = "Темпоральная дестабилизация"
return ("Цель дестабилизирована, и на %d ходов получает %0.2f темпорального урона каждый ход. Если она умрёт с действующим эффектом, она взорвётся."):format(eff.dur, eff.dam) end
return "#Target# дестабилизирован.", "+Temporal Destabilization" end
return "#Target# в стабильном состоянии.", "-Temporal Destabilization" end
desc = "Темпоральная дестабилизация"
return ("Цель дестабилизирована, и получает %0.2f темпорального урона каждый ход. Если она умрёт с действующим эффектом, она взорвётся."):format(eff.dam) end
return "#Target# дестабилизирован.", "+Temporal Destabilization" end
return "#Target# в стабильном состоянии.", "-Temporal Destabilization" end
desc = "Стремительность"
return ("Цель перемещается на %d%% быстрее."):format(eff.speed * 100 * eff.charges) end
desc = "Замедление времени"
return ("Увеличивает скорость атаки, заклинаний и разума на %d%%."):format(eff.speed * 100 * eff.charges) end
desc = "Спешка"
return ("Увеличивает общую скорость действия на %d%%."):format(eff.power * 100) end
return "#Target# ускорен.", "+Haste" end
return "#Target# не ускорен.", "-Haste" end
desc = "Прекращение бытия"
return ("Цель исчезает из реальности, её сопротивление физическому и темпоральному урону понижено на %d%%."):format(eff.power) end
return "#Target# исчезает из реальности.", "+Cease to Exist" end
desc = "Обречённость"
return ("Приближает час смерти цели, понижается коэффициент исцеления на 80%% и наносит %0.2f мистического урона за ход. Эффект прекратится, если заклинатель умрёт."):format(eff.dam) end
return "#Target# обрекается на гибель!", "+Doomed" end
return "#Target# не обрекается на гибель.", "-Doomed" end
desc = "Трупное окоченение"
return ("Цель получает на %d%% больше урона от некротических миньонов."):format(eff.power) end
return "#Target# чувствует приход смерти!", "+Rigor Mortis" end
return "#Target# освобождается из объятий смерти.", "-Rigor Mortis" end
desc = "Колесо судьбы"
return ("Оборона и защита цели увеличены на %d."):format(eff.save_bonus * eff.spin) end
return "#Target# находится под действием Колеса судьбы.", "+Spin Fate" end
return "Действие Колеса судьбы на #Target# закончилось.", "-Spin Fate" end
desc = "Заклинание шока"
return string.format("Шокирующая магия временно влияет на все сопротивления урону, понижая их на %d%%.", eff.power) end
file/game/modules/tome.team/data/timed_effects/mental.lua.txt
file/game/modules/tome.team/data/timed_effects/other.lua.txt
print("Time shield restoration field", eff.power - self.time_shield_absorb, val)
title="Призыв"
game.logPlayer(self, "Не достаточно пространства для призыва!")
desc = "Искажение реальности"
desc = "Искажение судьбы"
desc = "Возвращение"
return "Цель ждёт возврата к карте мира." end
game.logPlayer(self, "Вы вытащены из этого места!")
game.logPlayer(self, "Пространство дестабилизируется вокруг вас.")
file/game/modules/tome.team/data/timed_effects/physical.lua.txt
desc = "Гнев леса"
desc = "Героизм"
desc = "Могучие Удары"
desc = "Снижена Видимость"
desc = "Охотник"
print("---HUNTER_SPEED", self.name, "ai free to act after", turns, "turns")
print("[ATTACK]", eff.effect_id, "callbackOnMeleeAttack triggered with weapon", weapon)
desc = "Комбо"
desc = "Восстановления"
desc = "Элементальная Гармония"
desc = "Потеря баланса"
desc = "Парирование"
desc = "Парирование"
desc = "Блокирование"
desc = "блокирование"
print("[PALM CALLBACK] dam start", value)
print("[PALM CALLBACK] dam end", dam)
desc = "Контратака"
desc = "Природная Кислота"
desc = "Ярость берсерка"
file/game/modules/tome.team/data/wda/eyal.lua.txt
print("Spawned allied kingdom patrol", spot.x, spot.y, e.name)
print("Spawned hostile", spot.x, spot.y, e.name)
print("Spawned sunwall patrol", spot.x, spot.y, e.name)
print("Spawned sunwall patrol", spot.x, spot.y, e.name)
print("Spawned hostile", spot.x, spot.y, e.name)
file/game/modules/tome.team/data/zones/abashed-expanse/grids.lua.txt
file/game/modules/tome.team/data/zones/abashed-expanse/npcs.lua.txt
file/game/modules/tome.team/data/zones/abashed-expanse/objects.lua.txt
unided_name = "Крошечная черная звезда"
file/game/modules/tome.team/data/zones/abashed-expanse/zone.lua.txt
print("====== MOVING POD", table.serialize(pod,nil,true))
print("Break out of bounds")
print("Break collide")
).new("starfield"
file/game/modules/tome.team/data/zones/ancient-elven-ruins/npcs.lua.txt
file/game/modules/tome.team/data/zones/ancient-elven-ruins/objects.lua.txt
lore="ancient-elven-ruins-note-"
desc = [[Похоже на запись, оставленную великим шалоренским магом незадолго до смерти.]]
desc = [[Созданные с помощью древней магии смерти, эти повязки высасывают свет и жизнь из всего, к чему прикасаются. Любой надевший их, окажется в кошмарном заточении между жизнью и смертью.]]
desc = [[Эта корона выглядит бесполезной, но вы чувствуете, что она таит в себе древнюю магию смерти. Возможно, вы найдёте ей применение.]]
file/game/modules/tome.team/data/zones/ardhungol/grids.lua.txt
file/game/modules/tome.team/data/zones/ardhungol/npcs.lua.txt
file/game/modules/tome.team/data/zones/ardhungol/objects.lua.txt
lore="ardhungol-"
desc = [[Страница дневник.]]
lore="ardhungol-4"
file/game/modules/tome.team/data/zones/ardhungol/zone.lua.txt
file/game/modules/tome.team/data/zones/arena/npcs.lua.txt
file/game/modules/tome.team/data/zones/arena/objects.lua.txt
lore="arena-scoring"
file/game/modules/tome.team/data/zones/arena/zone.lua.txt
Chat.new("arena-start", {name="Arena mode"}, game.player, {text = level.arena.printRankings()})
file/game/modules/tome.team/data/zones/arena-unlock/npcs.lua.txt
file/game/modules/tome.team/data/zones/blighted-ruins/npcs.lua.txt
file/game/modules/tome.team/data/zones/blighted-ruins/objects.lua.txt
unided_name = "черный плащ"
lore="blighted-ruins-note-"
desc = [[Клочок бумаги, оставленный Некромантом.]]
file/game/modules/tome.team/data/zones/briagh-lair/npcs.lua.txt
file/game/modules/tome.team/data/zones/charred-scar/grids.lua.txt
file/game/modules/tome.team/data/zones/charred-scar/npcs.lua.txt
doEmote("Беги "..game.player.name.."! Мы будем держать линию!", 150)
file/game/modules/tome.team/data/zones/charred-scar/zone.lua.txt
file/game/modules/tome.team/data/zones/conclave-vault/npcs.lua.txt
file/game/modules/tome.team/data/zones/conclave-vault/objects.lua.txt
lore="conclave-vault-"
lore="conclave-vault-song"
unided_name = "огромная кувалда"
file/game/modules/tome.team/data/zones/conclave-vault/zone.lua.txt
file/game/modules/tome.team/data/zones/crypt-kryl-feijan/npcs.lua.txt
file/game/modules/tome.team/data/zones/crypt-kryl-feijan/objects.lua.txt
file/game/modules/tome.team/data/zones/crypt-kryl-feijan/zone.lua.txt
file/game/modules/tome.team/data/zones/daikara/grids.lua.txt
file/game/modules/tome.team/data/zones/daikara/npcs.lua.txt
file/game/modules/tome.team/data/zones/daikara/objects.lua.txt
lore="daikara-note-"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/daikara/zone.lua.txt
file/game/modules/tome.team/data/zones/deep-bellow/npcs.lua.txt
file/game/modules/tome.team/data/zones/deep-bellow/objects.lua.txt
lore="deep-bellow-"
desc = [[Клочок бумаги.]]
lore="adventurer-letter-6"
desc = [[Клочок бумаги.]]
lore="adventurer-letter-7"
desc = [[Клочок бумаги.]]
lore="adventurer-letter-8"
desc = [[Клочок бумаги.]]
file/game/modules/tome.team/data/zones/demon-plane/grids.lua.txt
file/game/modules/tome.team/data/zones/demon-plane/npcs.lua.txt
file/game/modules/tome.team/data/zones/demon-plane/objects.lua.txt
unided_name = "пара меняющимися сапоги"
file/game/modules/tome.team/data/zones/demon-plane-spell/grids.lua.txt
logCombat(who, "#Source# горит #Target#!")
logCombat(who, "#Source# лечится #Target#!")
file/game/modules/tome.team/data/zones/dreadfell/npcs.lua.txt
desc = [[Злобный скелет-архимаг, захвативший контроль над Обителем ужаса после смерти Повелителя.]]
print(self.name, "Placing automatic trap", x, y)
file/game/modules/tome.team/data/zones/dreadfell/objects.lua.txt
lore="dreadfell-poem-level-2"
lore="dreadfell-poem-level-5"
lore="dreadfell-poem-level-7"
lore="dreadfell-borfast-letter"
lore="dreadfell-aletta-letter"
lore="dreadfell-filio-letter"
file/game/modules/tome.team/data/zones/dreadfell/zone.lua.txt
print("Lore "..i.." on level "..lev)
file/game/modules/tome.team/data/zones/dreadfell-ambush/npcs.lua.txt
file/game/modules/tome.team/data/zones/dreadfell-ambush/objects.lua.txt
lore="ukruk-log"
file/game/modules/tome.team/data/zones/dreams/grids.lua.txt
file/game/modules/tome.team/data/zones/dreams/npcs.lua.txt
file/game/modules/tome.team/data/zones/dreams/zone.lua.txt
file/game/modules/tome.team/data/zones/eidolon-plane/npcs.lua.txt
file/game/modules/tome.team/data/zones/eidolon-plane/zone.lua.txt
).new("starfield"
).new("starfield"
file/game/modules/tome.team/data/zones/eruan/grids.lua.txt
file/game/modules/tome.team/data/zones/eruan/npcs.lua.txt
file/game/modules/tome.team/data/zones/flooded-cave/npcs.lua.txt
file/game/modules/tome.team/data/zones/gladium/grids.lua.txt
file/game/modules/tome.team/data/zones/golem-graveyard/grids.lua.txt
file/game/modules/tome.team/data/zones/golem-graveyard/npcs.lua.txt
file/game/modules/tome.team/data/zones/golem-graveyard/objects.lua.txt
file/game/modules/tome.team/data/zones/golem-graveyard/zone.lua.txt
return "FLOWER" else return "GRASS" end
file/game/modules/tome.team/data/zones/gorbat-pride/npcs.lua.txt
file/game/modules/tome.team/data/zones/gorbat-pride/objects.lua.txt
lore="gorbat-pride-note"
desc = [[Заметка.]]
file/game/modules/tome.team/data/zones/grushnak-pride/npcs.lua.txt
file/game/modules/tome.team/data/zones/grushnak-pride/objects.lua.txt
lore="grushnak-pride-note"
desc = [[Заметка.]]
lore="garkul-history-"
file/game/modules/tome.team/data/zones/grushnak-pride/zone.lua.txt
file/game/modules/tome.team/data/zones/halfling-ruins/npcs.lua.txt
doEmote("Полурослик?! УМРИ!!!!!", 70)
doEmote("Вы.. спасли меня?", 70)
file/game/modules/tome.team/data/zones/halfling-ruins/objects.lua.txt
lore="halfling-research-note-"
lore="conclave-vault-start"
file/game/modules/tome.team/data/zones/heart-gloom/npcs.lua.txt
file/game/modules/tome.team/data/zones/high-peak/grids.lua.txt
file/game/modules/tome.team/data/zones/high-peak/npcs.lua.txt
file/game/modules/tome.team/data/zones/high-peak/objects.lua.txt
lore="argoniel-1"
lore="argoniel-2"
lore="elandar-1"
lore="elandar-2"
file/game/modules/tome.team/data/zones/high-peak/zone.lua.txt
file/game/modules/tome.team/data/zones/infinite-dungeon/grids.lua.txt
file/game/modules/tome.team/data/zones/infinite-dungeon/objects.lua.txt
lore="infinite-dungeon-history-"
desc = [[Вечная охота.]]
print("[Infinite Dungeon] using zone layout #", layoutN, layout.id_layout_name)
print("[Infinite Dungeon] using variable grid set #", vgridN, vgrid.id_grids_name)
print("[Infinite Dungeon] Exit", i, "layout:", layoutN, layouts[layoutN].id_layout_name, "grids:",vgridN, vgrids[vgridN].id_grids_name)
print(("[Infinite Dungeon] alter_level_data: (%dw, %dh) %s rooms, %d enemies, layout:%s, grids:%s"):format(vx, vy, layout.nb_rooms, enemy_count, data.generator.map.id_layout_name, data.generator.map.id_grids_name))
print("[Infinite Dungeon] placed (additional) stair guard", m.name, "at", x, y)
print("[Infinite Dungeon] Added/updated Exit#", i, x, y, "layout:", ex.layoutN, ae.layout.id_layout_name, "grids:",ex.vgridN, ae.grids.id_grids_name)
print(("[Infinite Dungeon] Open space calculation: (%s, %s, %dw x %dh) space -- (open:%2.1f%%, closed:%2.1f%%)"):format(level.data.id_layout_name, level.data.id_grids_name, level.map.w, level.map.h, open, closed))
file/game/modules/tome.team/data/zones/keepsake-meadow/npcs.lua.txt
file/game/modules/tome.team/data/zones/keepsake-meadow/objects.lua.txt
lore="keepsake-banders-notes"
lore="keepsake-kyless-journal-"
file/game/modules/tome.team/data/zones/keepsake-meadow/traps.lua.txt
unided_name = "ловушка"
unided_name = "ловушка"
file/game/modules/tome.team/data/zones/lake-nur/grids.lua.txt
file/game/modules/tome.team/data/zones/lake-nur/objects.lua.txt
lore="old-forest-note-5"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/lake-nur/zone.lua.txt
file/game/modules/tome.team/data/zones/last-hope-graveyard/grids.lua.txt
lore="last-hope-graveyard-"
file/game/modules/tome.team/data/zones/last-hope-graveyard/npcs.lua.txt
file/game/modules/tome.team/data/zones/last-hope-graveyard/objects.lua.txt
lore="celia-letter"
desc = [[Письмо.]]
file/game/modules/tome.team/data/zones/last-hope-graveyard/zone.lua.txt
file/game/modules/tome.team/data/zones/mark-spellblaze/grids.lua.txt
file/game/modules/tome.team/data/zones/mark-spellblaze/npcs.lua.txt
print("Player has a total of "..has_spells.." spell levels")
file/game/modules/tome.team/data/zones/mark-spellblaze/objects.lua.txt
lore="grand-corruptor-draft"
desc = [[Письмо.]]
unided_name="пульсирующий орган"
file/game/modules/tome.team/data/zones/maze/npcs.lua.txt
file/game/modules/tome.team/data/zones/maze/objects.lua.txt
lore="maze-note-"
lore="maze-note-trap"
file/game/modules/tome.team/data/zones/murgol-lair/npcs.lua.txt
file/game/modules/tome.team/data/zones/murgol-lair/zone.lua.txt
file/game/modules/tome.team/data/zones/norgos-lair/npcs.lua.txt
desc = [[Древний медведь, охраняющий западную часть леса. Не так давно он обезумел и стал нападать на талоренских эльфов.]]
file/game/modules/tome.team/data/zones/norgos-lair/zone.lua.txt
).new("snowing"
file/game/modules/tome.team/data/zones/noxious-caldera/npcs.lua.txt
file/game/modules/tome.team/data/zones/noxious-caldera/objects.lua.txt
lore="noxious-caldera-note-"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/noxious-caldera/zone.lua.txt
file/game/modules/tome.team/data/zones/old-forest/npcs.lua.txt
file/game/modules/tome.team/data/zones/old-forest/objects.lua.txt
lore="old-forest-note-"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/old-forest/zone.lua.txt
).new("raindrops"
file/game/modules/tome.team/data/zones/orc-breeding-pit/npcs.lua.txt
file/game/modules/tome.team/data/zones/orc-breeding-pit/objects.lua.txt
lore="grushnak-pride-note"
desc = [[Заметка.]]
lore="orc-breeding-"
lore="orc-breeding-5"
file/game/modules/tome.team/data/zones/orc-breeding-pit/zone.lua.txt
file/game/modules/tome.team/data/zones/paradox-plane/grids.lua.txt
file/game/modules/tome.team/data/zones/paradox-plane/npcs.lua.txt
file/game/modules/tome.team/data/zones/paradox-plane/objects.lua.txt
file/game/modules/tome.team/data/zones/paradox-plane/zone.lua.txt
).new("starfield"
).new("starfield"
).new("temporalsnow"
file/game/modules/tome.team/data/zones/rak-shor-pride/npcs.lua.txt
file/game/modules/tome.team/data/zones/rak-shor-pride/objects.lua.txt
lore="rak-shor-pride-note"
desc = [[Заметка.]]
file/game/modules/tome.team/data/zones/reknor/grids.lua.txt
lore="iron-throne-reknor-edict"
file/game/modules/tome.team/data/zones/reknor/npcs.lua.txt
file/game/modules/tome.team/data/zones/reknor/objects.lua.txt
lore="iron-throne-profits-"
lore="iron-throne-trade-ledger"
lore="iron-throne-last-words"
file/game/modules/tome.team/data/zones/reknor-escape/npcs.lua.txt
file/game/modules/tome.team/data/zones/reknor-escape/objects.lua.txt
file/game/modules/tome.team/data/zones/reknor-escape/zone.lua.txt
file/game/modules/tome.team/data/zones/rhaloren-camp/npcs.lua.txt
file/game/modules/tome.team/data/zones/rhaloren-camp/objects.lua.txt
lore="rhaloren-note-"
desc = [[Письмо.]]
lore="rhaloren-note-5"
desc = [[Письмо.]]
file/game/modules/tome.team/data/zones/ring-of-blood/grids.lua.txt
file/game/modules/tome.team/data/zones/ring-of-blood/npcs.lua.txt
file/game/modules/tome.team/data/zones/ring-of-blood/objects.lua.txt
file/game/modules/tome.team/data/zones/ring-of-blood/zone.lua.txt
return "Slavers Compound ("..game.level.level..")" end
return "Ring of Blood"
end
file/game/modules/tome.team/data/zones/ritch-tunnels/npcs.lua.txt
file/game/modules/tome.team/data/zones/ruined-dungeon/grids.lua.txt
lore = "infinite-dungeon-4"
file/game/modules/tome.team/data/zones/ruined-dungeon/zone.lua.txt
file/game/modules/tome.team/data/zones/ruins-kor-pul/npcs.lua.txt
file/game/modules/tome.team/data/zones/ruins-kor-pul/objects.lua.txt
lore="kor-pul-note-"
desc = [[Страница из журнала, оставленная искателем приключений.]]
file/game/modules/tome.team/data/zones/sandworm-lair/npcs.lua.txt
file/game/modules/tome.team/data/zones/sandworm-lair/objects.lua.txt
lore="sandworm-note-"
unided_name="пульсирующий орган"
file/game/modules/tome.team/data/zones/sandworm-lair/zone.lua.txt
file/game/modules/tome.team/data/zones/scintillating-caves/npcs.lua.txt
file/game/modules/tome.team/data/zones/scintillating-caves/objects.lua.txt
lore="scintillating-caves-note-"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
lore="scintillating-caves-note-6"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/scintillating-caves/zone.lua.txt
file/game/modules/tome.team/data/zones/shadow-crypt/npcs.lua.txt
file/game/modules/tome.team/data/zones/shertul-fortress/grids.lua.txt
lore = "shertul-fortress-"
file/game/modules/tome.team/data/zones/shertul-fortress/npcs.lua.txt
file/game/modules/tome.team/data/zones/shertul-fortress/zone.lua.txt
file/game/modules/tome.team/data/zones/shertul-fortress-caldizar/grids.lua.txt
file/game/modules/tome.team/data/zones/shertul-fortress-caldizar/npcs.lua.txt
file/game/modules/tome.team/data/zones/shertul-fortress-caldizar/zone.lua.txt
return "Unknown Sher'Tul Fortress ("..zn..")"
else return "Unknown the Sher'Tul Fortress" end
file/game/modules/tome.team/data/zones/slazish-fen/grids.lua.txt
game.log("#VIOLET#Портал уже сломан!")
file/game/modules/tome.team/data/zones/slazish-fen/npcs.lua.txt
file/game/modules/tome.team/data/zones/slazish-fen/objects.lua.txt
lore="slazish-note-"
file/game/modules/tome.team/data/zones/slazish-fen/zone.lua.txt
return "FLOWER" else return "GRASS" end
file/game/modules/tome.team/data/zones/slime-tunnels/grids.lua.txt
file/game/modules/tome.team/data/zones/slime-tunnels/zone.lua.txt
print("Slime Tunnels generated with too few pedestals!", dragon, undead, elements, destruction)
print("Slime Tunnels generated with unreachable dragon pedestal!")
print("Slime Tunnels generated with unreachable undead pedestal!")
print("Slime Tunnels generated with unreachable elements pedestal!")
print("Slime Tunnels generated with unreachable destruction pedestal!")
file/game/modules/tome.team/data/zones/sludgenest/grids.lua.txt
file/game/modules/tome.team/data/zones/sludgenest/npcs.lua.txt
file/game/modules/tome.team/data/zones/sludgenest/zone.lua.txt
file/game/modules/tome.team/data/zones/south-beach/grids.lua.txt
file/game/modules/tome.team/data/zones/south-beach/npcs.lua.txt
file/game/modules/tome.team/data/zones/south-beach/zone.lua.txt
).new("eagle"
).new("eagle"
).new("melinda-beach"
file/game/modules/tome.team/data/zones/stellar-system-shandral/grids.lua.txt
file/game/modules/tome.team/data/zones/stellar-system-shandral/zone.lua.txt
).new("starfield"
file/game/modules/tome.team/data/zones/tannen-tower/grids.lua.txt
file/game/modules/tome.team/data/zones/tannen-tower/npcs.lua.txt
file/game/modules/tome.team/data/zones/tannen-tower/objects.lua.txt
unided_name = "парящая сфера"
use_power = { name = "активировать портал"
lore="tannen-level"
desc = [[Клочок бумаги, оставленный Танненом.]]
file/game/modules/tome.team/data/zones/tannen-tower/zone.lua.txt
file/game/modules/tome.team/data/zones/telmur/npcs.lua.txt
file/game/modules/tome.team/data/zones/telmur/objects.lua.txt
unided_name = "сломанный посох"
file/game/modules/tome.team/data/zones/telmur/zone.lua.txt
file/game/modules/tome.team/data/zones/tempest-peak/npcs.lua.txt
file/game/modules/tome.team/data/zones/temple-of-creation/npcs.lua.txt
file/game/modules/tome.team/data/zones/temple-of-creation/objects.lua.txt
unided_name = "яркая жемчужина"
lore="temple-creation-note-"
lore="temple-creation-note-4"
desc = [[Заметка.]]
file/game/modules/tome.team/data/zones/temple-of-creation/zone.lua.txt
file/game/modules/tome.team/data/zones/temporal-reprieve-talent/zone.lua.txt
).new("starfield"
).new("starfield"
file/game/modules/tome.team/data/zones/temporal-rift/grids.lua.txt
Chat.new("temporal-rift-start", {name="Временной Воитель"}, p)
file/game/modules/tome.team/data/zones/temporal-rift/npcs.lua.txt
file/game/modules/tome.team/data/zones/temporal-rift/zone.lua.txt
return "Temporal Rift"
end
).new("starfield"
).new("starfield"
).new("temporalsnow"
file/game/modules/tome.team/data/zones/thieves-tunnels/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-angolwen/npcs.lua.txt
desc = [[Высокий шалорен в мантии цвета моря, выглядящий спокойным и мирным, но от него веет огромной силой.]]
file/game/modules/tome.team/data/zones/town-angolwen/objects.lua.txt
lore="angolwen-linaniil-lecture"
lore="angolwen-tarelion-magic"
file/game/modules/tome.team/data/zones/town-derth/npcs.lua.txt
doEmote("Эй ты. Подойди сюда.", 60)
file/game/modules/tome.team/data/zones/town-derth/zone.lua.txt
).new("eagle"
).new("eagle"
file/game/modules/tome.team/data/zones/town-elvala/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-elvala/objects.lua.txt
lore="spellblaze-chronicles-"
file/game/modules/tome.team/data/zones/town-gates-of-morning/grids.lua.txt
file/game/modules/tome.team/data/zones/town-gates-of-morning/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-irkkk/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-irkkk/zone.lua.txt
).new("eagle"
).new("eagle"
file/game/modules/tome.team/data/zones/town-iron-council/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-last-hope/grids.lua.txt
file/game/modules/tome.team/data/zones/town-last-hope/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-last-hope/objects.lua.txt
lore="last-hope-foundation-note-"
lore="races-"
lore="southspar-note-"
lore="oceans-of-yeal"
file/game/modules/tome.team/data/zones/town-lumberjack-village/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-lumberjack-village/zone.lua.txt
file/game/modules/tome.team/data/zones/town-point-zero/grids.lua.txt
file/game/modules/tome.team/data/zones/town-point-zero/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-point-zero/objects.lua.txt
unided_name = "святящийся осколок"
file/game/modules/tome.team/data/zones/town-point-zero/zone.lua.txt
).new("starfield"
).new("starfield"
file/game/modules/tome.team/data/zones/town-shatur/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-zigur/grids.lua.txt
lore="zigur-post"
file/game/modules/tome.team/data/zones/town-zigur/npcs.lua.txt
file/game/modules/tome.team/data/zones/town-zigur/objects.lua.txt
lore="zigur-history"
file/game/modules/tome.team/data/zones/trollmire/npcs.lua.txt
file/game/modules/tome.team/data/zones/trollmire/objects.lua.txt
lore="trollmire-note-"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
lore="trollmire-note-3"
desc = [[Клочок бумаги, оставленный искателем приключений.]]
file/game/modules/tome.team/data/zones/trollmire/zone.lua.txt
return "BOGWATER_MISC" else return "BOGWATER" end
return "FLOWER" else return "GRASS" end
).new("raindrops"
return "FLOWER" else return "GRASS" end
).new("raindrops"
file/game/modules/tome.team/data/zones/tutorial/npcs.lua.txt
file/game/modules/tome.team/data/zones/tutorial/traps.lua.txt
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
text = "move"
text = "melee"
text = "objects"
text = "talents"
text = "levelup"
text = "terrain"
text = "tactics1"
text = "tactics2"
text = "ranged"
text = "quests"
file/game/modules/tome.team/data/zones/tutorial-combat-stats/grids.lua.txt
file/game/modules/tome.team/data/zones/tutorial-combat-stats/npcs.lua.txt
).new("Базовый игровой процесс: Завершено"
desc = [[Арахнофобия...]]
desc = [[Огромный арахнид.]]
desc = [[Огромный, лохматый арахнид.]]
file/game/modules/tome.team/data/zones/tutorial-combat-stats/objects.lua.txt
unided_name = "Сверкающий амулет."
unided_name = "Гладкое кольцо."
file/game/modules/tome.team/data/zones/tutorial-combat-stats/traps.lua.txt
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
unided_name = "tutorial"
desc = [[Обучение]]
).new("Обучение: "
text = "move"
text = "melee"
text = "objects"
text = "talents"
text = "levelup"
text = "terrain"
text = "tactics1"
text = "tactics2"
text = "ranged"
text = "quests"
text = "mechoption"
text = "mechintro"
text = "stats1"
text = "stats2"
text = "stats3"
text = "stats4"
text = "stats5"
text = "stats6"
text = "stats7"
text = "stats8"
text = "stats9"
text = "informed1"
text = "scale1"
text = "scale2"
text = "scale3"
text = "scale4"
text = "scale5"
text = "scale6"
text = "scale7"
text = "scale8"
text = "scale9"
text = "scale10"
text = "scale11"
text = "scale12"
text = "calc0"
text = "calc1"
text = "calc2"
text = "calc3"
text = "calc4"
text = "calc5"
text = "calc6"
text = "calc7"
text = "calc8"
text = "calc9"
text = "calc10"
text = "calc11"
text = "timed0"
text = "timed1"
text = "timed2"
text = "timed3"
text = "timed4"
text = "timed5"
text = "timed6"
text = "timed7"
text = "timed8"
text = "tier0"
text = "tier1"
text = "tier2"
text = "tier3"
text = "tier4"
text = "tier5"
text = "tier6"
text = "tier7"
text = "tier8"
text = "tier9"
text = "tier10"
text = "tier11"
text = "tier12"
file/game/modules/tome.team/data/zones/unhallowed-morass/grids.lua.txt
file/game/modules/tome.team/data/zones/unhallowed-morass/npcs.lua.txt
desc = [[Арахнофобия...]]
desc = [[Большой белый паук.]]
desc = [[Большой белый паук.]]
simplePopup("Королева ткачиха", "Когда вы сразили королеву, вы заметили временную нить, которая, похоже, контролировала её. Видимо, она проходит через разлом.")
file/game/modules/tome.team/data/zones/unhallowed-morass/objects.lua.txt
unided_name = "крошечная черная звезда"
file/game/modules/tome.team/data/zones/unhallowed-morass/zone.lua.txt
).new("starfield"
).new("starfield"
file/game/modules/tome.team/data/zones/unremarkable-cave/npcs.lua.txt
file/game/modules/tome.team/data/zones/valley-moon/grids.lua.txt
file/game/modules/tome.team/data/zones/valley-moon/npcs.lua.txt
file/game/modules/tome.team/data/zones/valley-moon-caverns/objects.lua.txt
lore="valley-moon-"
file/game/modules/tome.team/data/zones/void/grids.lua.txt
Chat.new("temporal-rift-start", {name="Временной Воитель"}, p)
file/game/modules/tome.team/data/zones/void/npcs.lua.txt
file/game/modules/tome.team/data/zones/void/zone.lua.txt
).new("starfield"
).new("starfield"
file/game/modules/tome.team/data/zones/vor-armoury/npcs.lua.txt
file/game/modules/tome.team/data/zones/vor-armoury/objects.lua.txt
file/game/modules/tome.team/data/zones/vor-pride/npcs.lua.txt
desc = [[Старый орк, одетый в разноцветную мантию. Ледяные осколки летают вокруг него, оставляя за собой пламенный след и вспышки молний]]
file/game/modules/tome.team/data/zones/vor-pride/objects.lua.txt
unided_name = "горящая книга"
unided_name = "ледяная книга"
lore="vor-pride-note"
desc = [[Заметка.]]
lore="orc-history-"
file/game/modules/tome.team/data/zones/wilderness/grids.lua.txt
desc = "Столица талоренов, находится под контролем Несиллы Тантаэлен"
desc = "Столица шалоренов, находится под контролем Араниона Гайаэля"
desc = "Сердце империй гномов"
file/game/modules/tome.team/data/zones/wilderness/zone.lua.txt
print("[Encounter] Immediate set", e.name, where.x, where.y)
).new("starglow"
Переведено на Нотабеноиде
http://notabenoid.org/book/63434/363812
Переводчики: marmonn, CIbeaST, nekropoll, Lord_Draconis
Medar, tolan_lord, p_zombie
Настройки
Готово:
