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

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

Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.574
Реакции
912
Баллы
286
Лучшие ответы
12
#61
добавляется обычный урон
Обычный ни к чему мне не нужен, ведь я сам могу прописать любой обычный урон.
В том-то и дело, что мне просто нужна к оружию прибавка чистого урона равного требованию к владению и больше ничего, владение равно 19 - прибавка чистого урона равна 19, владение равно 100 - прибавка чистого урона равна 100. Если не это, то другое не надо.
Вам нужно поменять местами строчки требования и урона, чтобы вначале шло требование.
А вот за это огромный респект!!!:thumbsup:
Знать бы раньше. Теперь буду заново менять готовые ветки я же не знал об этом. Или не буду пока менять. Поменяю потом для второй версии, надо хоть эту доделать. Если это менять, то мне надо вместе с этим заново выстраивать и переделывать ВСЕ СХЕМЫ УРОНА и менять более чем в сотне экземпляров оружия порядок местами уже на данный момент, а планируется ещё столько же! Это УЖАС!
Если ещё есть какие-то такие или подобные для вас открытые, а для меня тайные знания, то прошу поделиться! Это очень важно!!!
--- Добавлено: ---

Если хотите добавить урон, игнорирующий защиты (т.е. напрямую снимающий жизнь), то его нужно делать по-другому.
Можете детально написать КАК?
 
Последнее редактирование:
Автор
Автор
rioris1995

rioris1995

Рыцарь
Участник форума
Регистрация
31 Дек 2017
Сообщения
2.574
Реакции
912
Баллы
286
Лучшие ответы
12
#62
добавляется обычный урон, который учитыват защиты цели
Лучше удалить эту функцию, она же не нужна вообще, она будет только путать, сбивать с толку и игрока, и меня как разработчика этого сабмода. Если у меня урон стоит обычный 9, то он и должен быть 9, а не 29. Короче это надо удалить, оно совсем ни к чему.

У меня вопрос ещё один к вам. Если, я не буду переделывать ветки, чтоб они были под стат, то могу ли я рекомендовать патч zRequiredAttributeDamage для тех, кто хочет, чтобы шёл скейл от стата? (Хотя тот баланс, который у меня сейчас этого не предполагает)
И ещё в довесок вопрос, если я всё же переделаю уже готовые ветки под скалирование от требуемого стата, то будет ли тогда это как-то влиять на игру при СНК? А конкретно, какой стат будет прибавлять оружие при ударами им, прописанное по такому переделанному типу, то есть, когда требования окажутся над уроном? Я думаю, что тоже самое, что и до изменений, то есть кинжалы - силу, боевые посохи, жезлы - тоже и т. д. Я прав?
 

Mr_Roman

Гвардеец
Участник форума
Регистрация
29 Ноя 2017
Сообщения
1.269
Реакции
492
Баллы
206
Лучшие ответы
16
#63
@rioris1995, может уже поздно, но как руки дошли.
Код:
// =====================================================================
// УНИВЕРСАЛЬНАЯ СИСТЕМА ЧИСТОГО УРОНА (УРОН = ВЛАДЕНИЮ)
// =====================================================================

// 1. СПИСОК ОРУЖИЯ
// Функция проверки: входит ли оружие в список "чистых"
func int Npc_IsPureDamageWeapon(var C_Item ItMw)
{
    var int weaponInstance;
    weaponInstance = Hlp_GetInstanceID(ItMw);

    // Перечисляем все инстанции через || (ИЛИ)
    // Просто добавляй новую строку перед закрывающей скобкой
    if (weaponInstance == ITMW_1H_VLK_DAGGER)     // Кинжал
    || (weaponInstance == ITMW_NAGELKNUEPPEL)     // Палка с шипами
//  || (weaponInstance == ITMW_1H_SPECIAL_SWORD) // Новый меч (пример)
//  || (weaponInstance == PALKA_UBIVALKA)   // типа посох (пример)
    {
        return TRUE;
    };

    return FALSE;
};

// 2. РАСЧЕТ ЗНАЧЕНИЯ УРОНА
// Автоматически выбирает нужный талант (Одноручное или Двуручное)

func int DMG_GetPureDamageValue(var C_Npc attacker, var C_Item itm)
{
    var int talentPercent;

    // Оставляем здесь ТОЛЬКО флаги двуручного оружия
    if (itm.flags & ITEM_2HD_SWD) || (itm.flags & ITEM_2HD_AXE) /// не все. надо дописать... лень..
    {
        talentPercent = attacker.HitChance[NPC_TALENT_2H]; // Берем % двуручника
    }
    else
    {
        // Кинжалы (ITEM_DAG) и одноручные мечи (ITEM_SWD) попадут сюда автоматически
        talentPercent = attacker.HitChance[NPC_TALENT_1H]; // Берем % одноручника
    };

    
    return talentPercent;
};

// 3. ГЛАВНЫЙ ХУК УРОНА (OnDamage_Hit)
func int OnDamage_Hit(var int damageTotal)
{
    // Проверяем: атакующий (self) — это герой (hero)
    // И в руках оружие из нашего "чистого" списка
    if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero)) && (Npc_IsPureDamageWeapon(item) == TRUE)
    {
        var int pureBonus;
        // Берем навык владения именно у героя
        pureBonus = DMG_GetPureDamageValue(hero, item);
        
        var int finalTotal;
        finalTotal = damageTotal + pureBonus;

        // Запись в консоль для теста.
        Hlp_PrintConsole(Str_Format("НАНЕСЁННЫЙ УРОН: Базовый %i + Чистый %i = %i", damageTotal, pureBonus, finalTotal));
        
        return finalTotal;
    };   
    
    return damageTotal;
};
Написано на базе плагина OnDamage_Hit от Гратта и на основе инструкций для него от MW 7 с соседнего сайта. Я ещё тот писатель, так что знатоки не судите строго) Сам плагин уже встроен в мод. Дополнительно ничего пихать не надо. На нём паладинские пухи висят. Поаккуратней с ними) Я их вроде бы доделал, но не дотестил. И в мод так и ушло.
Ни и сам файл присабачу, на всякий
--- Добавлено: ---

По идее, сюда ещё и массу оружия можно прикрутить, но я уже не лез. Здесь можешь поизучать.
--- Добавлено: ---

Тестил с Кинжалом и Палкой с шипами и с уровнем владения 44 на чёрном тролле. У тролля вроде иммун к дробящему от палки, пишет "оружие не эффективно", но дамаг идёт 45 (44 чистого от владения + 1 базовый (минималка как бы)). Вот должна ли эта минималка наносить урон мобам с имуном - я хз. Но по идее и урона 0 нету.
--- Добавлено: ---

Блин. Писал после ночной смены и только сейчас задумался "а нафига такой дамаг нужен?" Либо я недопонял, что автор хочет... Это же вторая специализация получилась. Со старта притом. М-да..
--- Добавлено: ---

мля.. и файл не удалить...
 

Вложения

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

blackscull

Наемник
Пользователь VIP
Тестировщик
Участник форума
Регистрация
19 Ноя 2013
Сообщения
865
Реакции
125
Баллы
155
Лучшие ответы
1
#64
Зато будет
PALKA_UBIVALKA :S
 

Mr_Roman

Гвардеец
Участник форума
Регистрация
29 Ноя 2017
Сообщения
1.269
Реакции
492
Баллы
206
Лучшие ответы
16
#65
Посмотрел сейчас Грубый двуручник, дамаг 70 реж (без этой своей писанины), сила 100, владение 5. Удар по чёрному троллю проходит, но урона нет (при 1000 силе и 5 владения - урон 82). То есть нулевой урон всё-таки есть? Кто объяснит? Или как он называется? Мне для интереса просто :)
Если прописать его в OnDamage то урон становится 6 - 5 от владения и 1 непонятно откуда. Я думал это базовый минимальный, но походу нет. Где-то ещё что-то есть...
--- Добавлено: ---

Вроде нашёл, вроде исправил :)
 
Последнее редактирование:

Mr_Roman

Гвардеец
Участник форума
Регистрация
29 Ноя 2017
Сообщения
1.269
Реакции
492
Баллы
206
Лучшие ответы
16
#66
раз не удалить, так хоть поправлю
Код:
// 3. ГЛАВНЫЙ ХУК УРОНА (OnDamage_Hit)
func int OnDamage_Hit(var int damageTotal)
{
    // Проверяем: атакующий — герой и в руках наше "чистое" оружие
    if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero)) && (Npc_IsPureDamageWeapon(item) == TRUE)
    {
        var int pureBonus;
        // Берем навык владения именно у героя
        pureBonus = DMG_GetPureDamageValue(hero, item);
        
        var int baseDmg;
        baseDmg = damageTotal;

        // Обнуляем минимальный урон движка
        // Если броня не пробита (damageTotal <= 1), считаем базовый урон за 0
        if (baseDmg <= 1)
        {
            baseDmg = 0;
        };

        var int finalTotal;
        finalTotal = baseDmg + pureBonus;

        // Добивание
        if (victim.attribute[ATR_HITPOINTS] <= finalTotal)
        {
            // Если цель не бессмертна по сюжету
            if (victim.flags != NPC_FLAG_IMMORTAL)
            {
                victim.attribute[ATR_HITPOINTS] = 0; // Принудительно в 0
                B_KillNpc(victim); // Вызываем стандартную смерть
            };
        };

        // Отладка в консоль
        Hlp_PrintConsole(Str_Format("НАНЕСЁННЫЙ УРОН: Базовый %i + Чистый %i = %i", baseDmg, pureBonus, finalTotal));
        
        return finalTotal;
    };   
    
    return damageTotal;
};
 

Abdylbek

Труженик
Участник форума
Регистрация
5 Май 2023
Сообщения
265
Реакции
138
Баллы
56
Лучшие ответы
13
#67
Чувствую автор придёт и будет опять кричать что это не то:D. Я так понял ему нужно чтоб чистый урон был таким, какое требование владения на оружии, а то действительно выйдет так, что условной палкой с шипами с хорошим владением можно прилично наваливать.
Я без снк не играл, но мне кажется там можно будет по-быстрому за очки взять владение и благодаря этому патчу разваливать с первых часов игры(но я не знаю сколько стоит владение и само оружие, да и требование силы может приличное), тогда хотя б сделать чист.ур=владение/2. А на снк наверное адекватнее будет, если конечно будет на нём работать
 

Mr_Roman

Гвардеец
Участник форума
Регистрация
29 Ноя 2017
Сообщения
1.269
Реакции
492
Баллы
206
Лучшие ответы
16
#68
Последнее редактирование:

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.871
Реакции
6.566
Баллы
976
Лучшие ответы
422
#69
Если ещё есть какие-то такие или подобные для вас открытые, а для меня тайные знания, то прошу поделиться! Это очень важно!!!
Занимайтесь плотно модом 10 лет - и обрящете ))
Я же не знаю, что вам пригодится. Изучайте скрипты, по аналогии пробуйте. А потом и экспериментировать сможете.

То есть нулевой урон всё-таки есть? Кто объяснит? Или как он называется? Мне для интереса просто (...)
и 1 непонятно откуда. Я думал это базовый минимальный, но походу нет. Где-то ещё что-то есть...
Есть минимальный урон, который задается в скриптах.
В оригинале он вроде 5 единиц, т.е. даже если ГГ не хватает силы + урона оружия пробить защиты монстра, монстр получит -5hp с каждым ударом.
В Гильдиях минимальный урон меняется по главам, с 1 до 17 (вроде). Несколько раз правил, так что не помню текущий вариант. Тем более, он отличается на разных уровнях сложности.

тогда хотя б сделать чист.ур=владение/2. А на снк наверное адекватнее будет, если конечно будет на нём работать
Баланс - самое сложное в допиливании (когда все остальное готово).
Сделать имбовое оружие для первой главы каждый сможет. А выстроить баланс, чтобы было интересно играть до Ирдората - не в каждом моде получается.
Я застрял в Гильдиях на драконах ДР. И пока не добавлю все запланированные локации, дальше не получится продвинуться, потому что каждая новая лока это огромный дисбаланс прокачки.

Перечитал всю ветку, как проспался. Дошло...
Не переживайте. Не вы первый так попали.
Но обвинят игроки в любом случае меня.
 
Сверху Снизу