Gothic 2: Изменение кол-ва опыта, требуемого для уровня

Тема в разделе "Скриптинг", создана пользователем bezimyanniy, 13 мар 2018.

  1. bezimyanniy

    bezimyanniy
    New Member
    Регистрация:
    26 май 2017
    Сообщения:
    8
    Баллы:
    3
    Лучших ответов:
    0
    Назрел вопрос, где я могу найти и изменить количество опыта, нужного для уровня, а конкретно где находится что-то в роде уровневого шага, который в г2нв 500 (для каждого нового уровня нужно на 500 опыта больше - 500 для первого, 1000 для второго, 1500 для третьего итд.). Просто появилось желание его поменять и посмотреть, что из этого выйдет.
     
  2. GeorG

    GeorG
    Команда форума
    Чародей божьего бага
    Регистрация:
    31 мар 2010
    Сообщения:
    15.473
    Баллы:
    113
    Лучших ответов:
    8
    Эта функция B_GivePlayerXP, в файле ..\Story\B_Story\B_GivePlayerXP.d, следующий уровень по переменной exp_next рассчитывается (ну там все понятно в коде, смотри ниже).
    Начальное значение exp_next - 500, потом по формуле hero.exp_next = hero.exp_next + ((hero.level + 1) * 500), где hero.level уровень героя.

    Код:
    func void B_GivePlayerXP(var int add_xp)
    {
    	var string concatText;
    	if(hero.level == 0)
    	{
    		hero.exp_next = 500;
    	};
    	hero.exp = hero.exp + add_xp;
    	concatText = PRINT_XPGained;
    	concatText = ConcatStrings(concatText,IntToString(add_xp));
    	PrintScreen(concatText,-1,YPOS_XPGained,FONT_ScreenSmall,2);
    	if(hero.exp >= hero.exp_next)
    	{
    		hero.level = hero.level + 1;
    		hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);
    		hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL;
    		hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL;
    		hero.lp = hero.lp + LP_PER_LEVEL;
    		PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);
    		Snd_Play("LevelUp");
    	};
    	B_CheckLog();
    };
     
    • Like Like x 2

Поделиться этой страницей