Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: Уроки от DK

  1. #11

    По умолчанию

    Домашнее задание

    Скачайте плагин и попробуйте разобраться, что он делает, как устроен и напишите свои комментарии к коду. Затем скиньте мне. Если что-то не получится, то ничего страшного. Будем разбираться вместе!

  2. #12
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    У меня вот вопрос. Ладно окно я кое как создал и даже впихнул его в меню нарисовал даже иконку часов.
    А вот как заставить по вот такой формуле показать системное время игры ?
    this.drawText(????, 10, 2, width, 'right');
    какое значение-выражение надо прописать?



  3. #13

    По умолчанию

    Цитата Сообщение от Темный Посмотреть сообщение
    У меня вот вопрос. Ладно окно я кое как создал и даже впихнул его в меню нарисовал даже иконку часов.
    А вот как заставить по вот такой формуле показать системное время игры ?
    this.drawText(????, 10, 2, width, 'right');
    какое значение-выражение надо прописать?
    Системная дата и время получаются с помощью new Date().
    О какой формуле идет речь ? Не очень понял.
    Время можно вывести так:
    var date = new Date();
    this.drawText(date.getHours() + ':' + date.getMinutes(), 10, 2, width, 'right');
    Будет выведен час и минуты

  4. #14
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Не все оказалось проще вот так я сделал this.drawText($gameSystem.playtimeText(), 10, 1, width, 'right');
    Спойлер Тык:

    Теперь мучаюсь с подпилкой стандартной Scene_File;
    Ограничил число слотов записи до 6 и пытаюсь добавить вывод название локации в windows_filelist.
    вроде название впихнул, но когда пытаюсь загрузить идет ошибка(



  5. #15

    По умолчанию

    Цитата Сообщение от Темный Посмотреть сообщение
    Не все оказалось проще вот так я сделал this.drawText($gameSystem.playtimeText(), 10, 1, width, 'right');
    Спойлер Тык:

    Теперь мучаюсь с подпилкой стандартной Scene_File;
    Ограничил число слотов записи до 6 и пытаюсь добавить вывод название локации в windows_filelist.
    вроде название впихнул, но когда пытаюсь загрузить идет ошибка(
    Я думал имелось в виду не игровое время, а именно системное. Какая именно ошибка ?

  6. #16
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Я ковыряю вот это окно пытаюсь вставить название локации в file_list.
    Ошибка выдаться при попытке загрузки.
    Спойлер тык:
    Код:
    //-----------------------------------------------------------------------------
    // Window_SavefileList
    //
    // The window for selecting a save file on the save and load screens.
    
    function Window_SavefileList() {
        this.initialize.apply(this, arguments);
    }
    
    Window_SavefileList.prototype = Object.create(Window_Selectable.prototype);
    Window_SavefileList.prototype.constructor = Window_SavefileList;
    
    Window_SavefileList.prototype.initialize = function(x, y, width, height) {
        Window_Selectable.prototype.initialize.call(this, x, y, width, height);
        this.activate();
        this._mode = null;
    };
    
    Window_SavefileList.prototype.setMode = function(mode) {
        this._mode = mode;
    };
    
    Window_SavefileList.prototype.maxItems = function() {
        return 6;//DataManager.maxSavefiles();
    };
    
    Window_SavefileList.prototype.maxVisibleItems = function() {
        return 6;
    };
    
    Window_SavefileList.prototype.itemHeight = function() {
        var innerHeight = this.height - this.padding * 2 ;
        return Math.floor(innerHeight / this.maxVisibleItems());
    };
    
    Window_SavefileList.prototype.drawItem = function(index) {
        var id = index + 1;
        var valid = DataManager.isThisGameFile(id);
        var info = DataManager.loadSavefileInfo(id);
        var rect = this.itemRectForText(index);
        var icon=235;
    
        this.resetTextColor();
        if (this._mode === 'load') {
            this.changePaintOpacity(valid);
        }
        this.drawIcon(icon,  rect.x+10, rect.y+28);
        this.drawFileId(id, rect.x, rect.y+25);
        
        if (info) {
            this.changePaintOpacity(valid);
            this.drawContents(info, rect, valid);
            this.changePaintOpacity(true);
        }
    };
    
    Window_SavefileList.prototype.drawFileId = function(id, x, y) {
        
        
        this.drawText(TextManager.file + ' ' + id, x+45, y, 180);
        
    };
    
    Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
        var bottom = rect.y + rect.height;
        if (rect.width >= 420) {
            this.drawGameTitle(info, rect.x + 192, rect.y, rect.width - 192);
            this.drawText($gameMap.displayName(),x+500,y);
       
       if (valid) {
                this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
            }
        }
        var lineHeight = this.lineHeight();
        var y2 = bottom - lineHeight;
        if (y2 >= lineHeight) {
            this.drawPlaytime(info, rect.x, y2, rect.width);
        }
    };
    
    Window_SavefileList.prototype.drawGameTitle = function(info, x, y, width) {
        if (info.title) {
            this.drawText(info.title, x, y, width);
        }
    };
    
    Window_SavefileList.prototype.drawPartyCharacters = function(info, x, y) {
        if (info.characters) {
            for (var i = 0; i < info.characters.length; i++) {
                var data = info.characters[i];
                this.drawCharacter(data[0], data[1], x + i * 48, y);
            }
        }
    };
    
    Window_SavefileList.prototype.drawPlaytime = function(info, x, y, width) {
        if (info.playtime) {
            this.drawText(info.playtime, x, y, width, 'right');
        }
    };
    
    Window_SavefileList.prototype.playOkSound = function() {
    };

    строчку которую я добавил ты сразу найдешь ( this.drawText($gameMap.displayName(),x+500,y);
    Спойлер Тык:


    Должно получиться типо этого если бы не ошибка.
    Последний раз редактировалось Темный; 17.05.2016 в 19:10.



  7. #17

    По умолчанию

    Цитата Сообщение от Темный Посмотреть сообщение
    Я ковыряю вот это окно пытаюсь вставить название локации в file_list.
    Ошибка выдаться при попытке загрузки.
    Спойлер тык:
    Код:
    //-----------------------------------------------------------------------------
    // Window_SavefileList
    //
    // The window for selecting a save file on the save and load screens.
    
    function Window_SavefileList() {
        this.initialize.apply(this, arguments);
    }
    
    Window_SavefileList.prototype = Object.create(Window_Selectable.prototype);
    Window_SavefileList.prototype.constructor = Window_SavefileList;
    
    Window_SavefileList.prototype.initialize = function(x, y, width, height) {
        Window_Selectable.prototype.initialize.call(this, x, y, width, height);
        this.activate();
        this._mode = null;
    };
    
    Window_SavefileList.prototype.setMode = function(mode) {
        this._mode = mode;
    };
    
    Window_SavefileList.prototype.maxItems = function() {
        return 6;//DataManager.maxSavefiles();
    };
    
    Window_SavefileList.prototype.maxVisibleItems = function() {
        return 6;
    };
    
    Window_SavefileList.prototype.itemHeight = function() {
        var innerHeight = this.height - this.padding * 2 ;
        return Math.floor(innerHeight / this.maxVisibleItems());
    };
    
    Window_SavefileList.prototype.drawItem = function(index) {
        var id = index + 1;
        var valid = DataManager.isThisGameFile(id);
        var info = DataManager.loadSavefileInfo(id);
        var rect = this.itemRectForText(index);
        var icon=235;
    
        this.resetTextColor();
        if (this._mode === 'load') {
            this.changePaintOpacity(valid);
        }
        this.drawIcon(icon,  rect.x+10, rect.y+28);
        this.drawFileId(id, rect.x, rect.y+25);
        
        if (info) {
            this.changePaintOpacity(valid);
            this.drawContents(info, rect, valid);
            this.changePaintOpacity(true);
        }
    };
    
    Window_SavefileList.prototype.drawFileId = function(id, x, y) {
        
        
        this.drawText(TextManager.file + ' ' + id, x+45, y, 180);
        
    };
    
    Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
        var bottom = rect.y + rect.height;
        if (rect.width >= 420) {
            this.drawGameTitle(info, rect.x + 192, rect.y, rect.width - 192);
            this.drawText($gameMap.displayName(),x+500,y);
       
       if (valid) {
                this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
            }
        }
        var lineHeight = this.lineHeight();
        var y2 = bottom - lineHeight;
        if (y2 >= lineHeight) {
            this.drawPlaytime(info, rect.x, y2, rect.width);
        }
    };
    
    Window_SavefileList.prototype.drawGameTitle = function(info, x, y, width) {
        if (info.title) {
            this.drawText(info.title, x, y, width);
        }
    };
    
    Window_SavefileList.prototype.drawPartyCharacters = function(info, x, y) {
        if (info.characters) {
            for (var i = 0; i < info.characters.length; i++) {
                var data = info.characters[i];
                this.drawCharacter(data[0], data[1], x + i * 48, y);
            }
        }
    };
    
    Window_SavefileList.prototype.drawPlaytime = function(info, x, y, width) {
        if (info.playtime) {
            this.drawText(info.playtime, x, y, width, 'right');
        }
    };
    
    Window_SavefileList.prototype.playOkSound = function() {
    };

    строчку которую я добавил ты сразу найдешь ( this.drawText($gameMap.displayName(),x+500,y);
    Спойлер Тык:


    Должно получиться типо этого если бы не ошибка.
    Когда ты запускаешь игру и пытаешься загрузиться, в этот момент еще не созданы игровые данные (в частности $gameMap), поэтому ты получаешь ошибку. Насколько я помню, то по стандарту отображается название игры в файле сохранения/загрузки и это название сохраняется в отдельный файл global, который можно найти в папке save. Покопай в эту сторону.

  8. #18
    Хранитель Аватар для Темный
    Информация о пользователе
    Регистрация
    13.05.2011
    Сообщений
    2,449
    Записей в дневнике
    20
    Репутация: 50 Добавить или отнять репутацию

    По умолчанию

    Спасибо попробую.



  9. #19
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,081
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Спасибо попробую.
    Я весь вечер убил. Мне тоже надо было название локации, но название я хранил изначально в обычной переменной. А она подгружается позже и при загрузки на титульном не было. Сначала свою глобальную пытался создать. В итоге решение оказалось в двух строчках.

    В rpg_managers находим кусок и вставляем одну строку.
    PHP код:

    DataManager
    .makeSavefileInfo = function() {
        var 
    info = {};
        
    info.globalId   this._globalId;
        
    info.title      $dataSystem.gameTitle;
        
    info.characters $gameParty.charactersForSavefile();
        
    info.faces      $gameParty.facesForSavefile();
        
    info.playtime   $gameSystem.playtimeText();
        
    info.rolf       $gameVariables.value(4); - у меня переменная 4. 
        info
    .timestamp  Date.now();
        return 
    info;
    }; 
    Все теперь у нас глобальная переменная сохраняет, из переменной 4. А название я вывожу уже в rpg_windows в Window_SavefileList.prototype

    PHP код:

    this
    .drawText(info.rolf410y+38width); 

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Уроки от DK