Для начала то, что я успел реализовать.
1. Одна из проблем Арканума - это то, что спутники "съедают" опыт, который начисляется при ударах по противнику. Можно отключить опыт при ударе в ехе-шнике (https://forums.arcanumclub.org/index.php?showtopic=11493), однако возникает другая проблема.
На данный момент опыт за убийство начисляется следующим образом:
- опыт за урон берется из xp_critter.mes. Этот опыт пропадает, если урон наносят спутники. Его-то и отключает вышеозначенная правка в ехе-шнике;
- дополнительно 20% от этого числа дается ГГ за убийство. Причем независимо от того, кто убил врага (ГГ или спутники). На это значение не влияет правка xp_critter.mes. Вероятно, оно захардкожено.
Таким образом, отключив опыт в ехе-шнике, ГГ остается с 1/6 опыта.
Так вот. Я решил отключить опыт и одновременно в 6 раз урезать значения в xp_quest.mes и xp_level.mes. Таким образом, решается проблема с теряемым опытом, и сохраняется динамика оригинала (ну, в теории - я ещё не тестил ).
Сразу ещё один момент по опыту. Мне не очень нравилось ограничение на 50 получаемых уровней, ибо не логично. Но с другой стороны я понимал, что такова идея разработчиков, поскольку самые серьёзные враги имеют 50-й уровень. Поэтому я изменил динамику получения уровней после 50-го:
- для уровня 51-53 требуется в 2 раза больше опыта;
- 54-55 - в 3 раза;
- 56-58 - в 4 раза;
- 59-60 - в 5 раз;
- 61 и выше - в 6 раз.
Таким образом, по-прежнему можно подняться выше 50-го уровня, но сделать это будет гораздо сложнее (особенно на высокой сложности, где опыта даётся на 25% меньше).
2. Ещё одна проблема оригинала - стрелкам совсем не нужно восприятие (обучение на эксперта в огнестреле сводит бонусы от восприятия на нет). Поэтому я решил немного подправить это дело, и заодно сделать оружие более разнообразным и интересным, введя "плавающий" бонус к вероятности крита в зависимости от восприятия. Для некоторого оружия берется 0,5 от восприятия, для некоторого - полное значение, а для оптики - 1,5 значения. Вот пример скрипта:
0. stat stat_perception of Triggerer: store in Local 0
1. IF Local 0 <= 19
THEN goto line 2
ELSE Local 0 = Local 0 + 5
2. Counter 0 = Local 0
3. IF Local 0 == 0
THEN return and RUN default
4. give Triggerer the effect 300 with cause 5
5. Local 0 = Local 0 - 1
6. goto line 3
7. Local 0 = Counter 0
8. IF Local 0 == 0
THEN return and RUN default
9. remove from Triggerer the effect 300
10. Local 0 = Local 0 - 1
11. goto line 8
Все скрипты написаны и есть в архиве.
3. По поводу палиц и молотов. В игре есть скрытый модификатор брони: для урона по усталости (выносливости?) берется только 0,75 от damage resista. К примеру:
а. Оружие наносит 100 очков урона и 100 очков урона по усталости.
б. Противник имеет 50% DR.
в. В итоге мы нанесём 50 очков урона и 62 очка усталости. По-моему так, если я ничего не забыл.
Поэтому самая очевидная бронебойность для палиц и молотов - высокий урон по выносливости. Но это просто мысли вслух - к одной цели можно прийти разными путями. :wink:
4. Во взрывчатке самая напрашивающаяся правка - обмен Fire Obstruction и Stun Grenade. Если только ты не включил Fire Obstruction в какие-нибудь новые вкусные схемы.
Теперь то, что реализовать пока не успел.
По поводу бронебойности. Насколько я помню, основная проблема скриптов в том, что при уроне через скрипт не начисляется опыт (или я ошибаюсь?). Поэтому я хотел реализовать бронебойность через заклинание. Вот пример такого решения:
{0}{AoE: Tgt_Obj_T_Critter}
{1}{Info: aggressive}
{3}{No_Stack: 0, ItemTriggers: Parent_Dmgs_Opponent_W_Item | Target_Attacker}
{4}{AI_Offensive: 1}
{5}{[Begin], Type: Effect, 154, Add, Count: 25}
{6}{[Begin], AoE: Tgt_Obj_T_Critter, ItemTriggers: Parent_Dmgs_Opponent_W_Item | Target_Attacker, Type: Damage, DmgType: Dmg_Normal, Dmg: 12-27}
{8}{[Begin], AoE: Tgt_Obj_T_Critter, ItemTriggers: Parent_Dmgs_Opponent_W_Item | Target_Attacker, Type: Damage, DmgType: Dmg_Magic, Dmg: 8-20}
{9}{[End], Type: Effect, 154, Remove, Count: 25}
Трудности возникли в другом: когда я вписываю это заклинание вместо транквилизаторного ружья (для теста), оно работает. Когда я вставляю его в пустые слоты (97, 128 и прочие номера заклинаний) - не хочет. Видимо, из-за спасброска. Пока не разобрался. Выкладываю здесь - если пригодится, можешь без зазрения совести брать и пользоваться.
Вроде пока всё. Если что вспомню - отпишу. Ещё раз спасибо за проделанный труд!
PS Классные схемы придумал! Теперь я смогу реализовать свою давнишнюю мечту - нарядиться в Tesla Trooper-а в Аркануме.