Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2025!
Ждем именно вас!
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
можно кстати отдавать значение того атрибута которого не хватает
и делать проверку непосредственно по нему что бы выводить сообщения в одном месте
func int B_TeachFightTalentPercent(var C_Npc slf,var C_Npc oth,var int talent,var int percent,var int teacherMAX)
{
if...
раз этого не должно быть давайте будем гадать что же там за надписи такие. вообще именно через гадание мир познаётся. зачем знать, если можно угадать :)
я запустил игру для отчистки совести. у меня всё работает. значит остаётся sPerm_Attr_KTS_Hero_talent просто дописать и причесать.
надписи накладываются. поменяй высоту. например
PrintScreen("бла бла ",-1,22,FONT_Screen,2);
попробуй вот так прописать условие. с вероятность 98% поможет.
func int B_TeachFightTalentPercent(var C_Npc slf,var C_Npc oth,var int talent,var int percent,var int teacherMAX)
{
if...
ты должен понять где именно внутри B_TeachFightTalentPercent у тебя будет проходить проверка. в моём примере, проверка идёт в самом начале. ты же поставил где то в середине. перенеси проверку в начало убедись что функция работает корректно, доведи её до ума(сделай вывод сообщений для 2р и добавь...
тогда попробуй на 1р
func int B_TeachFightTalentPercent(var C_Npc slf,var C_Npc oth,var int talent,var int percent,var int teacherMAX)
{
if (sPerm_Attr_KTS_Hero_talent(talent,percent) == FALSE)
{
return FALSE;
};
...
в B_TeachFightTalentPercent такую проверку...
не понятна логика проверки. какие у тебя требования на прокачку 1р сила или ловкость? или и сила и ловкость? сейчас судя по твоему коду при прокачки 1р до проверка на ловкость скрипт никогда не будет доходить.
да. и так же для проверки на ловкость.
1. у них разные лимиты.
2. у Корда стоит доп условие на обучение.
то есть в таком случае ты так же проверяешь не сломал ли случайно оригинальные проверки
надписи наверное было бы логичнее вынести в отдельные константы, что бы править в одном месте...
суть не в том что оно не компилировалось. суть в том том что оно вместо данных "0" передавало. тебе надо всё это всесторонне протестить что бы убедится в том что проверки работают корректно, что проверяются именно параметры героя, а не нули или процент владения учителя ;-)
ты можешь вместо неё использовать штатную функцию PrintScreen. в твоём случае это ни на что не влияет так как у тебя речь идёт только про героя
PrintScreen("Не хватает ловкости для дальнейшего обучения",-1,-1,FONT_Screen,2);
вызов этих надписей кстати логичнее перенести в функции проверки...
KirTheSeeker, вынеси свои новые проверки типа sPerm_Attr_KTS_Hero_1H_DEX в отдельный файл и ставь этот новый в Gothic.src выше чем файл B_RaiseFightTalent. Оригинальный порядок имеющихся файлов лучше не меняй.
в B_RaiseTalentByPermBonus внимательнее. я тебе цветом отметил ошибку...
добавлю пять копеек: констант две и они в какой то степени друг друга дублирует, с той лишь разницей что AIV_VictoryXPGiven так же учитывает избиение НПС напарником ГГ, а AIV_DefeatedByPlayer только героем.
тебе надо делать эту проверку до того как будет происходить вычитание ЛП. так же сразу лучше там же прописать требования и для воровства, подкрадывания и прочего.
было
стало
oth.lp -= kosten;
if(talent == NPC_TALENT_PICKLOCK)
{
if(sPerm_DEX_KTS < 29)
{...
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.