RolePlay-S

RolePlay-S 0.4.7

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
А кстати, почему round(-1) ???
Это ведь округление до десятков?
Тогда любая экспа которая меньше 5 - будет нулем? Тебе это точно надо?
Но фишка optain в том что там пузырёк сообщения с числом.
Так что лучше чтоб там gain_exp был абсолютным, а расчет был до пузырька. И пузырек уже показывал число после расчетов.
а, вот почему он мне 3000к показывает -__- Понял, спасибо!))
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
а, ну это для красоты,)) и у меня там где-то есть .min и .max, так что все нормально. Хм... но раз теперь это еще и для секс-опыта, то и правда, наверное нужно убирать.

В общем! я потестировал и ошибок было всего несколько, но у меня почету-то не режется опыт выданный через optain_exp, то есть если optain_exp(3000) то он дает ровно 3000.
Ruby:
def optain_exp(temp_exp)

        player_level = $game_player.actor.level

        temp_exp *= 0.2 * (7.00 / (0.45 + Math.exp(-0.1 * (player_level - 25))) - 0.5)

        SndLib.sys_LvUp

        $game_map.popup(0,"EXP+#{(temp_exp).round(-1)}",0,0)

        $game_player.actor.gain_exp(temp_exp,1)

end

Вот это было сделано?
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Ruby:
def optain_exp(temp_exp)

        player_level = $game_player.actor.level

        temp_exp *= 0.2 * (7.00 / (0.45 + Math.exp(-0.1 * (player_level - 25))) - 0.5)

        SndLib.sys_LvUp

        $game_map.popup(0,"EXP+#{(temp_exp).round(-1)}",0,0)

        $game_player.actor.gain_exp(temp_exp,1)

end

Вот это было сделано?
ага я вынес формулу другой модуль, поправил round(-1) местами, нужно понять где он нужен, а где нет, и сейчас буду тестить.
Спасибо большое за помощь!)) после теста отдыхать буду, чет засиделся.))
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
а, вот почему он мне 3000к показывает -__- Понял, спасибо!))
Ну и можно точно так же, optain_exp сделать настраиваемым…
Чтоб по умолчанию было вот это, но можно было и абсолютку делать. Мало ли…
Чисто по методу gain_exp. (Только тут без alias… Потому что тогда будет расхождение между пузырьком и реальным числом…)
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Ruby:
def optain_exp(temp_exp, mult=nil)
        if mult == nil
            player_level = $game_player.actor.level
            temp_exp *= 0.2 * (7.00 / (0.45 + Math.exp(-0.1 * (player_level - 25))) - 0.5)
        else
            temp_exp *= mult.to_f
        end
            SndLib.sys_LvUp
            $game_map.popup(0,"EXP+#{(temp_exp).round(-1)}",0,0)
            $game_player.actor.gain_exp_role_play(temp_exp) # Или $game_player.actor.gain_exp(temp_exp,1)
end
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
В общем, ты изначально хотел заменить почти все добавления опыта.
Но проще на самом деле заменить само добавление опыта.
Чем ближе к «центру кода», там на большее количество вещей влияет один символ кода. Batch - это листья. А def gain_exp - ствол.
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Ну и можно точно так же, optain_exp сделать настраиваемым…
Чтоб по умолчанию было вот это, но можно было и абсолютку делать. Мало ли…
Чисто по методу gain_exp. (Только тут без alias… Потому что тогда будет расхождение между пузырьком и реальным числом…)
хотел сделать sigmoid_exp(temp_exp) в отдельном модуле, но теперь его то optain_exp не видит, то gain_exp, то ли еще что... блин, а хотел побыстрому доделать... надо что-то другое попробовать.

1730596934418.png
 

AleDerXan

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

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
В общем, ты изначально хотел заменить почти все добавления опыта.
Но проще на самом деле заменить само добавление опыта.
Чем ближе к «центру кода», там на большее количество вещей влияет один символ кода. Batch - это листья. А def gain_exp - ствол.
делал что мог с тем что имел, знания и опыт это не то, что можно взять с полки и овладеть за часок другой -__-
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
делал что мог с тем что имел, знания и опыт это не то, что можно взять с полки и овладеть за часок другой -__-
Ну, у меня еще с пайтона есть привычка... (У меня там тоже не то чтоб большой опыт, а руби я начал ковырять нормально только пару месяцев назад…)
Вижу код функции… И вижу что она что-то вызывает чтоб оно что-то сделало…
Надо пойти поглядеть, что оно делает, это что-то.
А если «оно что-то» вызывает еще что-то…
Нужно поглядеть и на него.
Тут как расследование. Идти надо по цепочке, и смотреть. А в случае мододельства, выбирать из всей цепочки те места, куда удобнее прицепиться через alias_method, или какие лучше переписать, чтоб сделать минимум, а получить максимум.
В одних случаях, если нужно изменить что-то конкретное — идем в самый конец. А если нужно поменять что-то глобально то поближе к началу идти надо. И все делать так, чтоб сделать минимум вмешательства, и получить максимум результата.
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
На этапе gain_exp…
Можно было сделать ветку…
И чтоб добавлялась экспа как обычно, но добавлялась и какая-нибудь другая экспа (сделать еще одну стату для экспы_номер_два) с нужными коэффициентами...
И сделать свой optain_exp… Который бы давал чисто боевой опыт… И вызывать его там и сям…
И эта другая экспа могла решать в тех или иных функциях уже для твоего мода…
Например сделать общий уровень Лоны, и Боевой Уровень Лоны (еще одна стата………)… Порезать очки черт даваемые за общий уровень, и повысить даваемые за Боевой Уровень…
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Ну, у меня еще с пайтона есть привычка... (У меня там тоже не то чтоб большой опыт, а руби я начал ковырять нормально только пару месяцев назад…)
Вижу код функции… И вижу что она что-то вызывает чтоб оно что-то сделало…
Надо пойти поглядеть, что оно делает, это что-то.
А если «оно что-то» вызывает еще что-то…
Нужно поглядеть и на него.
Тут как расследование. Идти надо по цепочке, и смотреть. А в случае мододельства, выбирать из всей цепочки те места, куда удобнее прицепиться через alias_method, или какие лучше переписать, чтоб сделать минимум, а получить максимум.
В одних случаях, если нужно изменить что-то конкретное — идем в самый конец. А если нужно поменять что-то глобально то поближе к началу идти надо. И все делать так, чтоб сделать минимум вмешательства, и получить максимум результата.
ага, у тебя пайтон, у меня фотошоп!))) я вот так сейчас делаю:
Ruby:
    def optain_exp(temp_exp)
        $game_player.actor.gain_exp(temp_exp)
    end

class Game_Actor < Game_Battler

    alias_method(:gain_exp_role_play, :gain_exp)
 
    def gain_exp(exp, mult=true)
        if mult == true
            player_level = $game_player.actor.level
            exp = (exp*0.2) * (7.00 / (0.45 + Math.exp(-0.1 * (player_level - 25))) - 0.5)
            exp = exp.round(-1)
            if exp > 100
                SndLib.sys_LvUp
                $game_map.popup(0,"EXP+#{(exp)}",0,0)
            end
        else
            exp = exp*mult.to_f
        end
        gain_exp_role_play(exp)
    end
end
 
Сверху Снизу