(14.07.2016 12:06)igrik Wrote: [ -> ]Значит мое предположение оказалось верным, по поводу ссылки на несуществующий адрес.
Вот так работает:
igrik, теперь ошибка не вылезает, но открывается вся карта подземелья. Причем не у того, кто установил Грааль, а у того, кто этот город с Граалем захватил...

(14.07.2016 03:47)Elzivir Wrote: [ -> ]Суть загадки: куда подевалось 1 mp у Немца и почему это не коснулось Русского?
Потому что оба скрипта написаны с ошибкой:
1) Бонус специалиста действует на всю восполняемую ману, а не только на бонус от мистицизма. Это значит, что он действует и на "дефолтную" единичку. И независимо от этого специализация сама по себе восстанавливает 1 маны в день. В скрипте это всё не учитывается.
2) По адресам, редактируемым скриптом, содержится полное количество восполняемой маны, а не только бонус.
В данном конкретном случае со специалистом эти две ошибки наложились друг на друга и самоликвидировались. Так-то!
Теперь вроде всё учитывает
А причем тут бонус? Второй скрипт не содержит ошибок.
А вот первый - да, криво написан.
(14.07.2016 04:08)Elzivir Wrote: [ -> ]Кстати, если во 2-ом скрипте выставить вместо +5/+10/+20 значения +6/+11/+21, то проблемы у Немца исчезнут.
Они появятся у Русского: в этом случае он срегенит уже не 50 mp, а 52...
а как ты высчитаешь сумму, которая должна получиться?
у меня и выходит 52
9 + (((0,05*20+1)*21)+1) = 52
где 9 - бонус от первого скрипта (10-1)
20 - ур.героя
21 - бонус от второго скрипта
igrik, он высчитывает сумму "как заявлено", а не по факту.
(14.07.2016 14:23)igrik Wrote: [ -> ]А причем тут бонус? Второй скрипт не содержит ошибок.
Судя по комментариям и слов
Elzivirа, предполагается, что восстановление
увеличится на 5/10/20 очков, а не будет равно 5/10/20.
Короче, вот как должен выглядеть правильный скрипт:
один байт, а не четыре.
!!UN:Cy4/
1/?y5; получить знание
При такой схеме, специалист по мистицизму 108 уровня с параметром знания 127 будет в день восстанавливать 941 ед.маны. Хо-хо....
А при старой схеме всего 26 ед.маны
Кстати, в физмиге не точно указана формула расчета касательно мистицизма:
k*(1+0,05*N)
А по настоящему:
1+k*(1+0,05*N)
Code:
v2 = (signed __int64)((v4 * 0.05000000074505806 + 1.0) * v5) + 1;
где - v4 уровень героя
v5 - бонус от уровня навыка мистицизма
И результат округляется вниз до целого значения, т.е. 26,7 = 26
Ой, точно, спасибо. Исправил.
igrik, gamecreator, очередное большое Вам спасибо!
Остался только 1 вопрос: то, что сейчас на 20 уровне специалист по Мистицизму с Knowledge=10 регенит по 61 mp - это так и должно быть? Я рассчитывал mp так: 10mp (Knowledge) + 20mp (Expert Mysticizm) + % за специализацию (+5% именно к навыку Мистицизма за уровень героя, а не к общему числу восстанавливаемой маны), т.е. еще +20 mp. Вроде как должно выходить 50 mp...
((0,05*20+1)*(10+20))+1 = 61, так и должен
(14.07.2016 19:29)Elzivir Wrote: [ -> ]+5% именно к навыку Мистицизма за уровень героя, а не к общему числу восстанавливаемой маны
Понимаешь ли, строго говоря т.н. "бонуса Мистицизма" вообще не существует. Эффект Мистицизма заменяет стандартное восстановление. Это видно и из описания самого навыка.
Единственное, что тут может быть под вопросом - это та дополнительная единичка маны от специализации вместо округления в большую сторону. Но это стандартная механика SoD. 15 лет никто не жаловался.
Посидел тут, подумал. В принципе неплохо, что % за специализацию берется от общего кол-ва восстанавливаемой маны (Knowledge+навык). Но вот эта "дефолтная единичка" меня все равно смущает...
Слишком долго думал. Я уже успел прочитать твоё старое сообщение. Вот ответ (не тестировал):
Ну а чтобы просто единичку убрать, то вот:
gamecreator, спасибо за труд! Вот честное слово, надо мне самому начать осваивать язык erm, а то достал уже тут всех своими идеями. Что касается последнего скрипта: выдало ошибку.
На самом деле, единственное что хотелось бы исправить, так это добавление дефолтной единицы к бонусу специалистов, если это возможно. Хотя это, наверное, повлияет тогда на других героев (начнут регенить mp = (Knowledge + навык) -1...
gamecreator,
igrik, спасибо ещё раз! Всё проверил, работает! Тему "MP Regeneration" можно закрывать.
