С Днём России!
  • 1.777
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 571
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 725
  • 4
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...

Возвращение 2.0 Создаем калькулятор прокачки ГГ

noctyurn94

Житель города
Участник форума
Регистрация
19 Май 2012
Сообщения
177
Реакции
93
Баллы
41
Лучшие ответы
0
#1
Создаем калькулятор прокачки ГГ и подбираем для него информацию

Так как появилось продвижение работ, выделил относящиеся к обсуждению посты в отдельную тему. - Alex1

UPD 18.01.17 04:09 версия 2.4 бета
  • Возможность автоматического расчета основных характеристик ГГ в плане затрат ЛП
  • Учет с автоподсчетом основных характеристик, навыков, умений
  • более менее приведено в божеский вид+добавил мини инструкцию

Необходимая информация по ЛП:
  1. Изготовление яда
  2. использование яда
  3. делать отравленные стрелы и болты
  4. владение орочьим оружием

Вопросы:
  1. Демонология качается как круги магии?
  2. Магическая мощь - 1 руна=1 мощи?
  3. "ловец душ" с мора уларту требует лп?
  4. реген кассии "неутомимость" требует лп?

Очень нужны отзывы, критика, советы
 

Вложения

Последнее редактирование модератором:

InFleX

Рыцарь
Команда форума
Модератор раздела
Редактор раздела
Участник форума
Регистрация
25 Мар 2016
Сообщения
2.631
Реакции
806
Баллы
270
Лучшие ответы
58
#2
@noctyurn94, у меня была идея замутить что-то типа этого, но в самой игре. Т.е. сделать базу квестов по главам. И в игре чтобы отображалось (допустим 40 квестов в первой главе выполнено 27 из 40, провалено 5 и так для каждой главы.) Но с программированием под Готику не знаком вобще (да и фиг знает реализуемо ли это), поэтому делаю просто как отдельную прогу, в которой отмечаешь галочками сам пройденные квесты. Мне это нужно, например, для ведения учета кв, где сколько экспы потерял и т.д. Ну и что-то наподобии достижений, как сейчас есть. Для легенды, когда дорог каждый лп, самое то. ну и плюс будешь знать стоит ли тебе оставаться ещё в этой главе (в случае зачистки территорий) или нет.)
 

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.542
Реакции
6.117
Баллы
976
Лучшие ответы
418
#3
@zaborik, в игре нет строгих регламентов оформления, так что какое-то задание можно начать и выполнить в 1 главе, а можно не начинать до 5. Точнее, таких заданий большинство.
В разных модах (балансных и прочих) могут быть изменения или перетасовка квестов. Например, квесты убийц проходятся в другом порядке, чем в В1. И опыт ГГ получает за их выполнение другой.

Кроме того, в некоторых заданиях награда зависит от главы, когда их сдают. Если сдалть в первой, ГГ получит 100 опыта, если в третьей - 300.

Так что для внутриигровой программы подобного типа нужно изменить оформление квестов.
 

kiko.-_-

Командор
Участник форума
Регистрация
12 Янв 2013
Сообщения
3.268
Реакции
519
Баллы
360
Лучшие ответы
9
#4
Кроме того, в некоторых заданиях награда зависит от главы, когда их сдают. Если сдалть в первой, ГГ получит 100 опыта, если в третьей - 300.
только не понятно зачем такое нужно.



-буду искать инфу по ЛП на каждый отдельно взятый навык т.е. охота не в общем 42, а более конкретно итп
if(talent == NPC_TALENT_TAKEANIMALTROPHY)
{
if(skill == TROPHY_Teeth)
{
kosten = 3;
}
else if(skill == TROPHY_Claws)
{
kosten = 3;
}
else if(skill == TROPHY_Fur)
{
kosten = 5;
}
else if(skill == TROPHY_Heart)
{
kosten = 5;
}
else if(skill == TROPHY_ShadowHorn)
{
kosten = 5;
}
else if(skill == TROPHY_FireTongue)
{
kosten = 5;
}
else if(skill == TROPHY_BFWing)
{
kosten = 1;
}
else if(skill == TROPHY_BFSting)
{
kosten = 1;
}
else if(skill == TROPHY_Mandibles)
{
kosten = 1;
}
else if(skill == TROPHY_CrawlerPlate)
{
kosten = 3;
}
else if(skill == TROPHY_DrgSnapperHorn)
{
kosten = 5;
}
else if(skill == TROPHY_DragonScale)
{
kosten = 10;
}
else if(skill == TROPHY_DragonBlood)
{
kosten = 10;
}
else if(skill == TROPHY_ReptileSkin)
{
kosten = 3;
};
};

P.S. чет призыв Тразеге не сработал.
Или есть какая-то инфа по этому поводу?
 

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.542
Реакции
6.117
Баллы
976
Лучшие ответы
418
#5
только не понятно зачем такое нужно.
Где-то делали скрытую дополнительную награду. Где-то копи-пастом ставили награду из соседнего диалога.

А так, с каждой главой награда за те же задания растет со времен Г1.
 

InFleX

Рыцарь
Команда форума
Модератор раздела
Редактор раздела
Участник форума
Регистрация
25 Мар 2016
Сообщения
2.631
Реакции
806
Баллы
270
Лучшие ответы
58
#6
@Alex1, ну я за основу взял эту тему. Тут как раз по главам примерно и расписаны квесты. Что то типа Выберите главу>Выберите квестодателя>выберите вариант решения квеста > Отобразить список квестов в текущей главе, посмотреть непройденные, посмотреть выполненные за 1 главу. Да, есть дневник, но там нету информации о том, если выбран альтернативный путь решения квеста. В общем делаю под себя, если нужно кому то выложу, как закончу (хотя сомневаюсь что кому то надо). Кроме того ориентир хард-легенда, где тяжело именно вначале, в то что один и тот же квест можно сдать позже - как то не эффективно уже прокаченным.
p.s. понятно что есть альтернативы с сдачей в последущих главах, но я беру ориентир именно по теме с квестами. Что возможно сдать в 1 главе, то и сдается и т.п.
p.s.s. грубо говоря это будет тот же хэндбук квестов что и в теме адепта, но с возможностью отслеживать собственные решения. Да и запустить программу удобней, чем шарится по форумам.
 
Последнее редактирование модератором:

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.542
Реакции
6.117
Баллы
976
Лучшие ответы
418
#7
@zaborik, это нужно. Сейчас как раз подтягиваются не просто игроки, а программисты, которые могут помочь прикладными прогами для В2, или даже для любых модов на Готику.

Пока описания квестов собираются в Ексель - это удобно и просто.
В будущем, можно попробовать сделать оболочку для выбора мода, а дальше как ты пишешь: глава, квестодатель (билд) и т.д.
Это также можно объединить с ГВЕ, чтобы по любой сохранке видеть прогресс выполнения заданий.
 

InFleX

Рыцарь
Команда форума
Модератор раздела
Редактор раздела
Участник форума
Регистрация
25 Мар 2016
Сообщения
2.631
Реакции
806
Баллы
270
Лучшие ответы
58
#8
@Alex1, ну если говорите что нужно, тогда сделаем :) Ничего обещать не буду, поскольку пишу для себя, но на крайняк выложу сорцы, если кто захочет доделывать. (пишу на паскале(делфи7) с подкл базой данных, для запоминания выбора).
 
Автор
Автор
N

noctyurn94

Житель города
Участник форума
Регистрация
19 Май 2012
Сообщения
177
Реакции
93
Баллы
41
Лучшие ответы
0
#9
UPD 17.01.17 22:00
  • Возможность автоматического расчета основных характеристик ГГ в плане затрат ЛП
  • Учет с автоподсчетом основных характеристик, навыков, умений

Кто может вытащить из исходников скриптов информацию
Затраты лп и пороги по прокачке:
1. сила
2. ловка
3 мана
4 вынос
5 хп
6 однорук
7 двурук
8 арбалет
9 лук
10 щит
Кстати заметил, что когда прокачивал двурук до 87 пороги были 30\60\90, а потом решил вкачать арбалет и там уже на 35-40 навыка стали по 15 поинтов просить.....
 

Вложения

Последнее редактирование модератором:

kiko.-_-

Командор
Участник форума
Регистрация
12 Янв 2013
Сообщения
3.268
Реакции
519
Баллы
360
Лучшие ответы
9
#10
Кстати заметил, что когда прокачивал двурук до 87 пороги были 30\60\90, а потом решил вкачать арбалет и там уже на 35-40 навыка стали по 15 поинтов просить.....
потому что навыки владения однор./двуруч. и лук/арбалет завязаны по цене прокачки.
если прокачка одного делает цену второго после первого порога выше на единицу.

По поводу остального - сейчас.


--- Добавлено: ---

6 однорук
7 двурук
8 арбалет
9 лук
if(talent == NPC_TALENT_1H)
{
if(oth.aivar[REAL_TALENT_1H] >= 90)
{
if(oth.aivar[REAL_TALENT_1H] >= oth.aivar[REAL_TALENT_2H])
{
kosten = 4;
}
else
{
kosten = 5;
};
}
else if(oth.aivar[REAL_TALENT_1H] >= 60)
{
if(oth.aivar[REAL_TALENT_1H] >= oth.aivar[REAL_TALENT_2H])
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_TALENT_1H] >= 30)
{
if(oth.aivar[REAL_TALENT_1H] >= oth.aivar[REAL_TALENT_2H])
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};

kosten = kosten * skill;
};
if(talent == NPC_TALENT_2H)
{
if(oth.aivar[REAL_TALENT_2H] >= 90)
{
if(oth.aivar[REAL_TALENT_2H] >= oth.aivar[REAL_TALENT_1H])
{
kosten = 4;
}
else
{
kosten = 5;
};
}
else if(oth.aivar[REAL_TALENT_2H] >= 60)
{
if(oth.aivar[REAL_TALENT_2H] >= oth.aivar[REAL_TALENT_1H])
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_TALENT_2H] >= 30)
{
if(oth.aivar[REAL_TALENT_2H] >= oth.aivar[REAL_TALENT_1H])
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};

kosten = kosten * skill;
};
if(talent == NPC_TALENT_BOW)
{
if(oth.aivar[REAL_TALENT_BOW] >= 60)
{
if(oth.aivar[REAL_TALENT_BOW] >= oth.aivar[REAL_TALENT_CROSSBOW])
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_TALENT_BOW] >= 30)
{
if(oth.aivar[REAL_TALENT_BOW] >= oth.aivar[REAL_TALENT_CROSSBOW])
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};

kosten = kosten * skill;
};
if(talent == NPC_TALENT_CROSSBOW)
{
if(oth.aivar[REAL_TALENT_CROSSBOW] >= 60)
{
if(oth.aivar[REAL_TALENT_CROSSBOW] >= oth.aivar[REAL_TALENT_BOW])
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_TALENT_CROSSBOW] >= 30)
{
if(oth.aivar[REAL_TALENT_CROSSBOW] >= oth.aivar[REAL_TALENT_BOW])
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};

kosten = kosten * skill;
};
1. сила
2. ловка
3 мана
4 вынос
5 хп
if(attribut == ATR_STRENGTH)
{
if(oth.aivar[REAL_STRENGTH] >= 400)
{
if((oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_DEXTERITY]) && (oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 6;
}
else
{
kosten = 10;
};
}
else if(oth.aivar[REAL_STRENGTH] >= 300)
{
if((oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_DEXTERITY]) && (oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 5;
}
else
{
kosten = 8;
};
}
else if(oth.aivar[REAL_STRENGTH] >= 200)
{
if((oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_DEXTERITY]) && (oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 4;
}
else
{
kosten = 6;
};
}
else if(oth.aivar[REAL_STRENGTH] >= 100)
{
if((oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_DEXTERITY]) && (oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_STRENGTH] >= 50)
{
if((oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_DEXTERITY]) && (oth.aivar[REAL_STRENGTH] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};
};
if(attribut == ATR_DEXTERITY)
{
if(oth.aivar[REAL_DEXTERITY] >= 400)
{
if((oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 6;
}
else
{
kosten = 10;
};
}
else if(oth.aivar[REAL_DEXTERITY] >= 300)
{
if((oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 5;
}
else
{
kosten = 8;
};
}
else if(oth.aivar[REAL_DEXTERITY] >= 200)
{
if((oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 4;
}
else
{
kosten = 6;
};
}
else if(oth.aivar[REAL_DEXTERITY] >= 100)
{
if((oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_DEXTERITY] >= 50)
{
if((oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_DEXTERITY] >= oth.aivar[REAL_MANA_MAX]))
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};
};
if(attribut == ATR_MANA_MAX)
{
if(oth.aivar[REAL_MANA_MAX] >= 600)
{
if((oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_DEXTERITY]))
{
kosten = 6;
}
else
{
kosten = 10;
};
}
else if(oth.aivar[REAL_MANA_MAX] >= 400)
{
if((oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_DEXTERITY]))
{
kosten = 5;
}
else
{
kosten = 8;
};
}
else if(oth.aivar[REAL_MANA_MAX] >= 200)
{
if((oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_DEXTERITY]))
{
kosten = 4;
}
else
{
kosten = 6;
};
}
else if(oth.aivar[REAL_MANA_MAX] >= 100)
{
if((oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_DEXTERITY]))
{
kosten = 3;
}
else
{
kosten = 4;
};
}
else if(oth.aivar[REAL_MANA_MAX] >= 50)
{
if((oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_STRENGTH]) && (oth.aivar[REAL_MANA_MAX] >= oth.aivar[REAL_DEXTERITY]))
{
kosten = 2;
}
else
{
kosten = 3;
};
}
else
{
kosten = 1;
};
};
if(attribut == ATR_HITPOINTS_MAX)
{
if(oth.attribute[ATR_HITPOINTS_MAX] >= 4000)
{
kosten = 5;
}
else if(oth.attribute[ATR_HITPOINTS_MAX] >= 3000)
{
kosten = 4;
}
else if(oth.attribute[ATR_HITPOINTS_MAX] >= 2000)
{
kosten = 3;
}
else if(oth.attribute[ATR_HITPOINTS_MAX] >= 1000)
{
kosten = 2;
}
else
{
kosten = 1;
};
};

return kosten;
};

if(talent == NPC_TALENT_STAMINA)
{
if(ATR_STAMINA_MAX[0] >= 90)
{
kosten = 4;
}
else if(ATR_STAMINA_MAX[0] >= 60)
{
kosten = 3;
}
else if(ATR_STAMINA_MAX[0] >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};

kosten = kosten * skill;
"Поглощение магического урона щитом (Очки обучения: 10)";

P.S. по поводу стоимости прокачки щита:
"11. Обучение щитам после 50 сломано. При попытке обучения на 1 пункт - списывается 1lp и не прибавляется навыка владения, при попытке обучения на 5 пунктов списывается 5lp и прибавляется 2 единицы навыка владения.
"
PRINT_Shield1 = "Бой с щитом + 1 (Очки обучения: 1, Цена: 250 монет)";
const string PRINT_Shield5 = "Бой с щитом + 5 (Очки обучения: 5, Цена: 1000 монет)";
const string PRINT_Shield2 = "Бой с щитом + 1 (Очки обучения: 2, Цена: 500 монет)";
const string PRINT_Shield10 = "Бой с щитом + 5 (Очки обучения: 10, Цена: 2500 монет)";

посмотрим как ее исправят.
 
Последнее редактирование модератором:
Сверху Снизу