RolePlay-S

RolePlay-S 0.4.7

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Понятно.

А $corsys_mod_name это глобальная переменная? может, для скриптов из Batсh их использовать? ну, такие переменные. Буду 47 файлов регулировать парой переменных.))
Лучше не глобальной. А $game_player.actor.stat["Имя"].
или $story_stats["Имя"]
Чтоб можно было… Скажем, при некоторых условиях чтоб коэффициенты менялись от действий игрока. Так, на будущее.
А еще потому что и $story_stats["Имя"] и $game_player.actor.stat["Имя"] — попадут в сохранение.
Но на всякий случай, используй to_f, чтоб nill стало 0.
И в самом коде игры - можешь к ним прицепить всякие функции и зависимости которые настраивают их.
 
Последнее редактирование:

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
А что вообще должно быть сделано то?
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Лучше не глобальной. А $game_player.actor.stat["Имя"].
или $story_stats["Имя"]
Чтоб можно было… Скажем, при некоторых условиях чтоб коэффициенты менялись от действий игрока. Так, на будущее.
А еще потому что и $story_stats["Имя"] и $game_player.actor.stat["Имя"] — попадут в сохранение.
Но на всякий случай, используй to_i, чтоб nill стало 0.
И в самом коде игры - можешь к ним прицепить всякие функции и зависимости которые настраивают их.
Там есть локальные переменные "tmpBouns = 1" и "tmpExp". В сотнях фалов примерно одинаковая структура. Открой несколько и посмотри. И у этих переменных в основном одно значение. Я хочу контролировать значения этих переменных в одном месте, и уже примерно представляю как это сделать через модуль.
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Там есть локальные переменные "tmpBouns = 1" и "tmpExp". В сотнях фалов примерно одинаковая структура. Открой несколько и посмотри. И у этих переменных в основном одно значение. Я хочу контролировать значения этих переменных в одном месте, и уже примерно представляю как это сделать через модуль.
Ты хочешь поправить gain_exp?
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Ты хочешь поправить gain_exp?
1730588351311.png
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
А хотя……………………
Сейчас подумаим…
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Можно вот так:
———
Код:
Ruby:
class Game_Actor < Game_Battler
    def gain_exp(exp)
        change_exp(self.exp + (exp * self.stat["Exp_Global_Modifier"] * final_exp_rate).to_i, true)
      end
end
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Или так:
Ruby:
class Game_Actor < Game_Battler
 
    alias_method(:gain_exp_role_play, :gain_exp)
 
    def gain_exp(exp)
        self.stat["Exp_Global_Modifier"] = self.stat["Exp_Global_Modifier"].to_f
        exp = exp * self.stat["Exp_Global_Modifier"]
        gain_exp_role_play(exp)
    end

end
Этот вариант даже лучше.
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Можно вот так:
———
Код:
Ruby:
class Game_Actor < Game_Battler
    def gain_exp(exp)
        change_exp(self.exp + (exp * self.stat["Exp_Global_Modifier"] * final_exp_rate).to_i, true)
      end
end
у меня в моде опыт за квесты относительный, а опыт за мобов абсолютный. Меняя gain_exp я ломал все, опыт от стамины, от квестов и от секса.
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Или так:
Ruby:
class Game_Actor < Game_Battler
 
    alias_method(:gain_exp_role_play, :gain_exp)
 
    def gain_exp(exp)
        self.stat["Exp_Global_Modifier"] = self.stat["Exp_Global_Modifier"].to_f
        exp = exp * self.stat["Exp_Global_Modifier"]
        gain_exp_role_play(exp)
    end

end
Этот вариант даже лучше.
и что он делает?
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Делает множитель динамическим.
Вот и все.
И в коде и в событиях, просто выставляй self.stat["Exp_Global_Modifier"] = любое значение
А потом возвращай когда надо.
В месте, где дается опыт абсолютный - там пусть будет равно 1, а в обычных фреймах пусть возвращается в зависимость от уровня.
То есть, во всех своих местах, где дается абсолютный опыт, путь будет

старое число = self.stat["Exp_Global_Modifier"]
self.stat["Exp_Global_Modifier"] = число
gain_exp(число абсолютного опыта)
self.stat["Exp_Global_Modifier"] = старое число
И старое число пусть обновляется в handle by step... До нормы по уровню.

Оно просто позволяет управлять коэффициентом получения опыта из любого места кода путем введения команды:
$game_player.actor.stat["Exp_Global_Modifier"] = некое число.
 
Последнее редактирование:
Сверху Снизу