Плохо! Плохо!:  0
Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 15 из 15

Тема: Как сдвинуть изображение персонажа?

  1. #11

    По умолчанию

    Цитата Сообщение от dirge Посмотреть сообщение
    Какой именно плагин? Дай название, я попробую добавить совместимость.
    Это Янфлаевский BattleEngineCore, печаль-то в том, что там есть подобная фишка, но она вешается только на конкретного персонажа (прописывается в его описании), а с состоянием не работает((

  2. #12
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    924
    Репутация: 79 Добавить или отнять репутацию

    По умолчанию

    Странно, у меня с ним все работает так же. Возможно зависит от настроек, но тут без демки не обойтись.

    UPD:
    Хотя не, туплю, вижу, сейчас подумаю, что можно сделать.
    Последний раз редактировалось dirge; 08.09.2017 в 15:16.

  3. #13

    По умолчанию

    Вот как-то так у меня происходит (там архив с проектом): https://cloud.mail.ru/public/6WZL/mZsw8XENv
    Я сделал спец. умение "шаг назад", которое и даёт нужное состояние.
    Вот так оно выглядит у меня:
    Последний раз редактировалось Alx_Yago; 08.09.2017 в 15:55.

  4. #14
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    924
    Репутация: 79 Добавить или отнять репутацию

    По умолчанию

    Спойлер код:
    Код:
    if (Imported.YEP_BattleEngineCore == true){
    	Game_Battler.prototype.performActionEnd = function() {
    		this.setActionState('done');
    		if (this.isActor() && this.stepBackStatesIsOn()){
    		} else {
    			this.spriteReturnHome();
    		}
    	};
    
    	BattleManager.changeActor = function(newActorIndex, lastActorActionState) {
    		var lastActor = this.actor();
    		this._actorIndex = newActorIndex;
    		var newActor = this.actor();
    		if (lastActor) {
    			lastActor.setActionState(lastActorActionState);
    			if (!lastActor.stepBackStatesIsOn()){
    				console.log(lastActor)
    				lastActor.spriteReturnHome();
    			}
    		}
    		if (newActor) {
    			newActor.setActionState('inputting');
    			if (!newActor.stepBackStatesIsOn()){
    				console.log(newActor)
    				newActor.spriteStepForward();
    			}
    		}
    	};
    
    	Game_Battler.prototype.stepBackStatesIsOn = function() {
    		if ($gameSystem.isSideView() && this.battler()) {
    			return this.battler().stepBackStatesIsOn();
    		}
    	};
    
    	BattleManager.actionPerformFinish = function() {
    		this._logWindow.performActionEnd(this._subject);
    		$gameParty.aliveMembers().forEach(function(member) {
    			if (!member.stepBackStatesIsOn()){
    				console.log(member)
    				member.spriteReturnHome();
    			}
    		});
    		$gameTroop.aliveMembers().forEach(function(member) {
    		  member.spriteReturnHome();
    		});
    		return true;
    	};
    }
    
    /*Суда записать номера статусов, через запятую*/
    var Actors_stepBackStates = [3,4]
    
    Sprite_Actor.prototype.stepBackStatesIsOn = function() {
    	for (var i=0;i<Actors_stepBackStates.length;i++){
    		if (this._actor.isStateAffected(Actors_stepBackStates[i])){
    			return true
    		} 
    	}
    };
    
    Sprite_Actor.prototype.updateTargetPosition = function() {
        if (this._actor.isInputting() || this._actor.isActing()) {
            this.stepForward();
        } else if (this._actor.canMove() && BattleManager.isEscaped()) {
            this.retreat();
    	} else if (this.stepBackStatesIsOn() == true){
    		this.stepBackStates()
        } else if (!this.inHomePosition()) {
            this.stepBack();
        }
    };
    
    Sprite_Actor.prototype.stepBackStates = function() {
    	/*Сдвиг назад при наличии статуса this.startMove(x, y, duration)*/
        this.startMove(48, 0, 12);
    };

    Замени весь код, тот, что я раньше давал.
    Янфлай полностью по своему делает эти анимации... Не люблю ковыряться в чужих боевых системах по этой причине. Поэтому совместить их напряжно, нужно разбираться в том как работает система у янфлай. Увы, времени у мне на это сильно нет, потому очень грубый фикс совместимости, правда я не уверен, что из-за него у янфлай что-то не отвалиться, но вдруг все будет нормально) Пробуй в общем.
    Ставить плагин нужно ниже янфлаевских плагинов.

  5. #15

    По умолчанию

    Обалдеть, работает! Спасибо!
    Не думал, что это сложно, казалось, пишешь на правильно языке строчку: "сдвинь чувака назад", и всех делов. А тут прям возиться пришлось.

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

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

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

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

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

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

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

Ваши права

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