Новости Релиз Of Ash and Steel состоится 6 ноября
  • 8.246
  • 12
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 11.937
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 6.240
  • 2
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...

Разное Помогите в создании опционального файла/патча для Гильдий "Арсенал"

Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.542
Реакции
903
Баллы
286
Лучшие ответы
12
#21
@blackscull, отлично! Огромное спасибо!
А в каком файле или в каких файлах в папке console после декомпиляции найти эти или другие формулы для возможного редактирования и выяснения?
Как и в каком файле нужно прописывать свои формулы и внедрять?
От чего будет зависеть урон, если ничего не прописывать?
И это так у каждого оружия своя формула?:-[
Должны же быть универсальные формулы для всего оружия того или иного типа, или нет? Или это так, но в Гильдиях не так?
 
Последнее редактирование:

blackscull

Житель города
Участник форума
Регистрация
22 Авг 2022
Сообщения
198
Реакции
156
Баллы
91
Лучшие ответы
0
#22
Сначала с помощью vdfs tools открываешь Guilds1.5_Scripts.mod находишь _WORK\DATA\SCRIPTS\_COMPILED\GOTHIC.DAT и делаешь extract, затем с помощью проги decdat открываешь этот файл и делаешь выгрузку в отдельный файл, а дальше уже в любом удобном редакторе (vs code, notepad++) поиском по тексту находишь все что нужно. Не хилый такой файл получится на 615+ тысяч строк.
 
Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.542
Реакции
903
Баллы
286
Лучшие ответы
12
#23
@blackscull, придётся видать самому рыться в папке console, чтобы отыскать.
А я то думал, что можно без этого обойтись.:'(
Уж не знаю плакать или смеяться.
В любом случае там должен быть этот файл, чтобы потом его внедрять в отредактированном виде.
И всё же, должны же быть универсальные формулы какие-то?
Ну, вот например, я ввожу в игру новый кинжал с требованием к владению и к ловкости. От чего будет зависеть его урон, если я не буду ничего редактировать в формулах?
И я уже понял то, что для того, чтобы в расчёт брался чистый урон его нужно занести/добавить в формулу к этому конкретному оружию, НО сам по себе чистый урон каким значением нужно обозначить? У него же, наверняка, нет своего идентификатора и он, наверное, состоит из длинной формулы, включающей в себя игнорирование всех возможных препятствий в виде владения ГГ, защит противника и т. д.
В общем, ладно, я пока буду делать ТО, что мне доступно и относительно просто, с формулами потом можно разобраться.
@blackscull , в качестве универсального посоха, возьму именно посох алхимика. По идее же его формула должна применяться, если я буду делать из него другие, просто меняя модели и цифры?
Блин, не, индивидуальные формулы это что-то не посильное. Можно над ними безвылазно сидеть в поисках их и баланса к ним. Эх, что-нибудь бы универсальное по всем формулам...:think:
Ладно, @blackskull, большущее спасибо за помощь!:handshake:
Как получится так сделаю, а там по факту будем разбираться потом, что и как.
На формулы я определенно не подписывался...:sweat_smile:
 
Последнее редактирование:

blackscull

Житель города
Участник форума
Регистрация
22 Авг 2022
Сообщения
198
Реакции
156
Баллы
91
Лучшие ответы
0
#24
Пример кинжала

Код:
prototype proto_itmw_mr_1h_kitchenknife(c_item) {
    name = "Кухонный нож";
    mainflag = item_kat_nf;
    flags = item_dag;
    hp = wpn_1h_dagger;
    material = mat_metal;
    value = value_kitchenknife;
    damagetotal = damage_kitchenknife;
    damagetype = dam_edge;
    range = range_kitchenknife;
    cond_atr[2] = atr_strength;
    cond_value[2] = condition_kitchenknife;
    visual = "ItMw_MR_1h_Knife_02.3DS";
    on_equip = equip_1h_dagger;
    on_unequip = unequip_1h_dagger;
    description = name;
    text[2] = name_damage;
    count[2] = damagetotal;
    text[3] = name_str_needed;
    count[3] = cond_value[2];
    text[5] = name_value;
    count[5] = value;
};

Но ты хочешь чтобы это было ловкостное оружие, значит будет
hp = wpn_1h_dex; // свойство "одноручное оружие ловкости"
flags = item_dag; // флаг "кинжал"
cond_atr[2] = atr_dexterity; // требование по ловкости


Код:
if (((heromelee.hp == wpn_1h_dex) || (heromelee.hp == wpn_2h_dex)) || (heromelee.hp == wpn_2h_spear)) {
    dexdamage = hero.attribute[atr_dexterity] - hero.attribute[atr_strength]; // из ловкости вычитается сила
    heromelee.nutrition += dexdamage; // базовый урон оружия + (ловкость - сила).
    ..
}

А также не забудем про бонус урона от специализации и максимальной выносливости


Код:
weaponskilldamage = (atr_stamina * getweaponskill(heromelee.hp)) / 1000;
heromelee.nutrition += weaponskilldamage;
А также по типу урона, смотря какой тип ты укажешь.

Код:
if (heromelee.damagetype == dam_edge) {  // режущий
    heromelee.damage[dam_index_edge] = heromelee.nutrition;
}
else if (heromelee.damagetype == dam_blunt) { // дробящий
    // ...
}
else if (heromelee.damagetype == dam_point) { 
    heromelee.nutrition -= dexdamage;  // Для колющего вычитается бонус
    heromelee.damage[dam_index_point] = heromelee.nutrition;
}
 
Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.542
Реакции
903
Баллы
286
Лучшие ответы
12
#25
@blackscull, ага, понял, пошёл менять
Вот это! Во всех кинжалах.
Потому что считал, что там должно также быть даггер, ведь это кинжал... Аргх.... Но не учёл формул. Ясно. Понятно.
А другие по урону кинжалы сделаю так тогда, чтобы скейл не пригождался. Значит помимо высоких требований надо и высокий урон прописывать, ведь скейла не будет от ловкости, не смотря на требование по ловке, если не прописывать индивидуальную формулу к этой вещи.
Или патч zRequiredAttributeDamage надо ставить? Поможет ли он? Он же вроде индивидуальные формулы не затрагивает, но добавляет скейл по требованию. Если стоит сказать требование на ловкость, то и скейл на ловкость. Вроде так, хотя может я и не понимаю и для Гильдий он неприемлим... :think:
 
Последнее редактирование:

blackscull

Житель города
Участник форума
Регистрация
22 Авг 2022
Сообщения
198
Реакции
156
Баллы
91
Лучшие ответы
0
#26
Как вариант еще проставить кинжал hp = wpn_1h_dagger, и сделать патч для функции расчета урона со своей логикой.
 
Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.542
Реакции
903
Баллы
286
Лучшие ответы
12
#27
Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.542
Реакции
903
Баллы
286
Лучшие ответы
12
#28
@blackscull, я так понимаю, если поставить hp = wpn_1h_dex, то игра будет относить это оружие к шпагам (одноручному ловкостному) и специализация будет работать шпаг с этим оружием. Нет. Это не годится. Нужно тогда искать и менять формулу урона кинжалов под ловкость, иначе всё бессмысленно.
И ещё один вопрос:
Нельзя ли прописать свою формулу для того или иного оружия, которая бы действовала напрямую и игнорировала бы все остальные формулы?
То есть, допустим, создаю новое оружие, а внизу его характеристик формула, которая должна именно для него применяться и главное игнорировать другие формулы и "общие правила", если таковые есть.:think:
Если б можно было бы такое прописать, то не пришлось бы и искать ничего.
 
Сверху Снизу