RolePlay-S

RolePlay-S 0.4.7

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Оставь места для стрелок. Чтоб листать. В общем, уголки.
Я примерно представляю как это сделать.
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Оставь места для стрелок. Чтоб листать. В общем, уголки.
Я примерно представляю как это сделать.
А ты не знаешь, как переписывать картинки и текст игры, без манипуляций с копирование rb и json -файлов?

Это по идеи, что-то вроде того, что нужно просканировать папку мода с картинками, и есть они отличаются от игровых, то заменить их. Но это ж не хеш, зх как с этим работать.
 
Последнее редактирование:

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
Ruby:
class Bitmap
    alias_method :alias_draw_text_corsys, :draw_text unless method_defined?(:alias_draw_text_corsys)
    def draw_text(*args)
        # bmp.draw_text(157+8,47,300,60,$game_text["DataTitle:#{$game_player.actor.record_lona_title}"],0)
        # bmp.draw_text(157+8,24+85    ,160,60,    "#{$game_text["menu:main_stats/persona"]} : #{GetText.lona_persona}",0)
    
        if args == [157+8,48+85    ,160,60,    "#{$game_text["menu:main_stats/exp_need"]} : #{$game_player.actor.exp - $game_player.actor.exp_for_level($game_player.actor.level)} : #{$game_player.actor.exp_for_level($game_player.actor.level + 1) - $game_player.actor.exp_for_level($game_player.actor.level)}",0]
            args = [157+8,48+85    ,160,60,    "#{$game_text_mod_corsys["menu_add:stats/will"]} : #{$game_player.actor.will.round(0)}",0]
    
        elsif args == [157+8,36+85    ,160,60,    "#{$game_text["menu:main_stats/level"]} : #{$game_player.actor.level}",0] && $game_player.actor.stat["Arousal_Power"].to_i != 0
            args = [157+8,36+85    ,160,60,    "#{$game_text_mod_corsys["menu_add:stats/Arousal_Power"]} : #{$game_player.actor.stat["Arousal_Power"].to_i}",0]
    
        elsif args == [ 407, 274, 112, 13, ":   #{$game_player.actor.sex_vag_atk}"]
            args = [ 407, 274, 112, 13, ":  #{$game_player.actor.sex_vag_atk.to_i}"]
    
        elsif args == [ 567, 274, 112, 13, ":   #{$game_player.actor.sex_anal_atk}"]
            args = [ 567, 274, 112, 13, ":  #{$game_player.actor.sex_anal_atk.to_i}"]
    
        elsif args == [ 407, 304, 112, 13, ":   #{$game_player.actor.sex_mouth_atk}"]
            args = [ 407, 304, 112, 13, ":  #{$game_player.actor.sex_mouth_atk.to_i}"]
    
        elsif args == [ 567, 304, 112, 13, ":   #{$game_player.actor.sex_limbs_atk}"]
            args = [ 567, 304, 112, 13, ":  #{$game_player.actor.sex_limbs_atk.to_i}"]
        end
    
        alias_draw_text_corsys(*args)
    end
end

Это позволит заменять выборочно вывод текста. Главное увидеть где и как он выводится, и использовать правильные условия для замены.

Ruby:
class << Bitmap
    alias_method :alias_new_transparent, :new unless method_defined?(:alias_new_transparent)
    def new(*args)
        modPath = "#{$trnsmod_modFolder}/"
        defultPath = args[0]
        args[0] = modPath+defultPath if args[0][0, 8] == "Graphics"
        alias_new_transparent(*args)
        rescue
        args[0] = defultPath
        alias_new_transparent(*args)
    end
end
А вот это делает папку Graphics в папке мода - такой, будто все, что в ней, скопировано с заменой в папку Graphics игры. Или не с заменой, а с добавлением. И можно ссылаться на файл графики будто в игре, даже если в файлах игры его нету, мод все равно сначала проверит есть ли такой файл в папке мода.
 
Последнее редактирование:

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
JSON:
class Bitmap
    alias_method :alias_draw_text_corsys, :draw_text unless method_defined?(:alias_draw_text_corsys)
    def draw_text(*args)
        # bmp.draw_text(157+8,47,300,60,$game_text["DataTitle:#{$game_player.actor.record_lona_title}"],0)
        # bmp.draw_text(157+8,24+85    ,160,60,    "#{$game_text["menu:main_stats/persona"]} : #{GetText.lona_persona}",0)
    
        if args == [157+8,48+85    ,160,60,    "#{$game_text["menu:main_stats/exp_need"]} : #{$game_player.actor.exp - $game_player.actor.exp_for_level($game_player.actor.level)} : #{$game_player.actor.exp_for_level($game_player.actor.level + 1) - $game_player.actor.exp_for_level($game_player.actor.level)}",0]
            args = [157+8,48+85    ,160,60,    "#{$game_text_mod_corsys["menu_add:stats/will"]} : #{$game_player.actor.will.round(0)}",0]
    
        elsif args == [157+8,36+85    ,160,60,    "#{$game_text["menu:main_stats/level"]} : #{$game_player.actor.level}",0] && $game_player.actor.stat["Arousal_Power"].to_i != 0
            args = [157+8,36+85    ,160,60,    "#{$game_text_mod_corsys["menu_add:stats/Arousal_Power"]} : #{$game_player.actor.stat["Arousal_Power"].to_i}",0]
    
        elsif args == [ 407, 274, 112, 13, ":   #{$game_player.actor.sex_vag_atk}"]
            args = [ 407, 274, 112, 13, ":  #{$game_player.actor.sex_vag_atk.to_i}"]
    
        elsif args == [ 567, 274, 112, 13, ":   #{$game_player.actor.sex_anal_atk}"]
            args = [ 567, 274, 112, 13, ":  #{$game_player.actor.sex_anal_atk.to_i}"]
    
        elsif args == [ 407, 304, 112, 13, ":   #{$game_player.actor.sex_mouth_atk}"]
            args = [ 407, 304, 112, 13, ":  #{$game_player.actor.sex_mouth_atk.to_i}"]
    
        elsif args == [ 567, 304, 112, 13, ":   #{$game_player.actor.sex_limbs_atk}"]
            args = [ 567, 304, 112, 13, ":  #{$game_player.actor.sex_limbs_atk.to_i}"]
        end
    
        alias_draw_text_corsys(*args)
    end
end

Это позволит заменять выборочно вывод текста. Главное увидеть где и как он выводится, и использовать правильные условия для замены.

JSON:
class << Bitmap
    alias_method :alias_new_transparent, :new unless method_defined?(:alias_new_transparent)
    def new(*args)
        modPath = "#{$trnsmod_modFolder}/"
        defultPath = args[0]
        args[0] = modPath+defultPath if args[0][0, 8] == "Graphics"
        alias_new_transparent(*args)
        rescue
        args[0] = defultPath
        alias_new_transparent(*args)
    end
end
А вот это делает папку Graphics в папке мода - такой, будто все, что в ней, скопировано с заменой в папку Graphics игры. Или не с заменой, а с добавлением. И можно ссылаться на файл графики будто в игре, даже если в файлах игры его нету, мод все равно сначала проверит есть ли такой файл в папке мода.
а почему json?) Надо пробовать и смотреть. У меня есть основной файл мода core.rb в котором все самое основное лежит, вроде переписывание карт и добавление скилов и оружия и пр. Этот код для замены картинок и изображений, куда лучше класть?
 

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Мне это все нужно, чтобы интерфейс перерисовать и перевод частично заменить, не меняя вообще все.
 

AleDerXan

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

NâmBờQuanh

Активный пользователь
Регистрация
25.09.2024
Темы
0
Сообщения
39
Реакции
8
Возраст
20
Tôi không thể tưởng tượng nổi 1 ngọn giáo yếu đuối có thể đâm xuyên thủng 2 người, đó là lý do tôi đã thử nhiều cách khác nhau để sửa chữa nó, và đã có kết quả, nhưng đáng buồn thay tôi lại không thể tự tạo ra 1 Missile Projectile hoàn toàn mới và phải dùng chung MissileTypical với LongBowNormal. Có ai có cách làm nào khác đơn giản hơn không, xin hãy chỉ tôi với.
 

Вложения

1000419442.jpg 1000419441.jpg 1000419443.jpg
Последнее редактирование:

Lazi Ness

Модостроитель
Автор модов
Регистрация
29.05.2024
Темы
1
Сообщения
341
Реакции
265
Json случайно воткнулся...
Нашел простенький пример:

Ruby:
    bmp_dimension=[174, 90]
    text=$game_text["menu:traits/accept"].upcase #Grab from text file
    font_size = 60

Пытаюсь понять, как привести это, к этому:
Ruby:
        if args == [157+8,48+85    ,160,60,    "#{$game_text["menu:main_stats/exp_need"]} : #{$game_player.actor.exp - $game_player.actor.exp_for_level($game_player.actor.level)} : #{$game_player.actor.exp_for_level($game_player.actor.level + 1) - $game_player.actor.exp_for_level($game_player.actor.level)}",0]
            args = [157+8,48+85    ,160,60,    "#{$game_text_mod_corsys["menu_add:stats/will"]} : #{$game_player.actor.will.round(0)}",0]
 

AleDerXan

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

AleDerXan

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

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
464
Реакции
221
Возраст
32
И!!!!!!!!!!!!
Я придумал!!!!!!!!!!!!!!!!!!!
Получилось!!!!!!!!!
Ruby:
class Text
   
    alias_method :alias_load_file_transp, :load_file unless method_defined?(:alias_load_file_transp)
   
   
    def load_file(file)
        hashh = alias_load_file_transp(file).merge(load_file_Corsys(file))
        return hashh
    end
   
    def load_file_Corsys(file)
        begin
            sth=File.read("#{$corsys_modFolder}/#{@base_folder}/#{file}.txt")
            return parse(sth.to_s.encode("utf-8"))
        rescue => ex
            # msgbox "ERROR: missing translation file #{$corsys_modFolder}/#{@base_folder}/#{file}.txt"
            return Hash.new
        end
    end

end



1730400965843.png


1730400993075.png
 
Сверху Снизу