Страница 144 из 144 ПерваяПервая ... 4494134142143144
Показано с 1,431 по 1,436 из 1436

Тема: Помощь с скриптами (RGSS)

  1. #1431
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    чот решил снова к мукеру вернуться и вдруг, проблема реализации
    Спойлер дб с персами выглядит так:
    PHP код:
    module Charaters
      Names 
    = ["Name_1","Name_2"]
      
    Name_1 = {
        :
    idle       =>  13,
        :
    walk_f     =>   0,
        :
    walk_b     =>   0,
        :
    run_f      =>   0,
        :
    run_b      =>   0,
        :
    sit        =>   0
      
    }
      
    Name_2 = {
        :
    idle       =>  13,
        :
    walk_f     =>   0,
        :
    walk_b     =>   0,
        :
    run_f      =>   0,
        :
    run_b      =>   0,
        :
    sit        =>   0
      
    }
    end 
    Спойлер class Sprite_Character < Sprite_Base:
    PHP код:
    class Sprite_Character Sprite_Base

    ....................................................................................

      
    def set_character_bitmap
        
    if Charaters::Names.include?(@actor.name)
          
    self.bitmap Cache.character(@actor.name "/Idle")
          @
    cw bitmap.width Charaters::Name_1[:idle]
          @
    ch bitmap.height
          
    @fps 5
          
    @index 0
        
    else
          
    self.bitmap Cache.character(@character_name)
          
    sign = @character_name[/^[\!\$]./]
          if 
    sign && sign.include?('$')
            @
    cw bitmap.width 3
            
    @ch bitmap.height 4
          
    else
            @
    cw bitmap.width 12
            
    @ch bitmap.height 8
          end
        end
        self
    .ox = @cw 2
        self
    .oy = @ch
      end

      def update_src_rect
        
    if Charaters::Names.include?(@actor.name)
          @
    fps += 1
          
    if @fps 5
            
    @fps 0
            
    @index += 1
            
    @index if @index >= Charaters::Name_1[:idle]
            
    sx = @index * @cw
            sy 
    0
            self
    .src_rect.set(sx sy, @cw, @ch)
          
    end
        
    else
          if @
    tile_id == 0
            index 
    = @character.character_index
            pattern 
    = @character.pattern ? @character.pattern 1
            sx 
    = (index pattern) * @cw
            sy 
    = (index + (@character.direction 2) / 2) * @ch
            self
    .src_rect.set(sx sy, @cw, @ch)
          
    end
        end
      end

    ....................................................................................

      
    end
    end 

    self.bitmap = Cache.character(@actor.name + "/Idle") - использую как тест вариант, "/Idle" будет переменной.
    Charaters::Name_1[:idle]
    Name_1 и [:idle] - как это реализовать в виде переменных?
    или есть какой-то другой вариант?
    также при движении персонажа спрайт дублируется, хотя и анимацию проигрывается нормально
    Последний раз редактировалось HopeBree; 27.03.2018 в 21:38.

  2. #1432
    Местный Аватар для АндрейЕ
    Информация о пользователе
    Регистрация
    24.05.2014
    Адрес
    Тольятти
    Сообщений
    225
    Репутация: 32 Добавить или отнять репутацию

    По умолчанию

    Помогите пожалуйста отредактировать небольшой скрипт:

    Спойлер Скрипт:

    PHP код:
    module INACTION 
       
      SWITCH_ID 
    5    # ID переключателя, при котором вызов ивента возможен 
      
    COMMON_EVENT 1  # ID ивента 
      
    STAY_TIME 60   # Время вызова ивента после не активности 
      
    REPEAT true     # Повторять ивент после его завершения через STAY_TIME 
       
    end 

    class Sprite_Character Sprite_Base 
      alias inaction_initialize initialize 
      def initialize
    (viewportcharacter nil
        @
    standtime 
        inaction_initialize
    (viewportcharacter
      
    end 
       
      alias inaction_update update 
      def update 
        inaction_update 
        
    return move if $game_player.moving
        return if 
    $game_switches[INACTION::SWITCH_ID] == true 
        
    @standtime += 1
        
        inaction 
    if @standtime == INACTION::STAY_TIME 
         $game_variables
    [15] = @standtime
      end  
       
      def move 
        
    @standtime 
       
      end 
       
      def inaction 
        $game_temp
    .reserve_common_event(INACTION::COMMON_EVENT
        @
    standtime if INACTION::REPEAT 
        
      end 
    end 


    Этот скрипт если не ошибаюсь HopeBree

    Нужно чтобы при простое героя 60кадров включался 5 переключатель. Когда персонаж движется выключался.
    Или если с ожиданием кадров сложно, то можно без него. Главное чтобы переключатель включался-выключался.

    У меня мозгов хватило только вставить строчку $game_variables[15] = @standtime и в общем событие поставить ветвление на переменной. Но минус в том что значение переменной постоянно скачет от 1 до 60

  3. #1433
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,089
    Записей в дневнике
    6
    Репутация: 124 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от АндрейЕ Посмотреть сообщение
    Помогите пожалуйста отредактировать небольшой скрипт:

    Спойлер Скрипт:

    PHP код:
    module INACTION 
       
      SWITCH_ID 
    5    # ID переключателя, при котором вызов ивента возможен 
      
    COMMON_EVENT 1  # ID ивента 
      
    STAY_TIME 60   # Время вызова ивента после не активности 
      
    REPEAT true     # Повторять ивент после его завершения через STAY_TIME 
       
    end 

    class Sprite_Character Sprite_Base 
      alias inaction_initialize initialize 
      def initialize
    (viewportcharacter nil
        @
    standtime 
        inaction_initialize
    (viewportcharacter
      
    end 
       
      alias inaction_update update 
      def update 
        inaction_update 
        
    return move if $game_player.moving
        return if 
    $game_switches[INACTION::SWITCH_ID] == true 
        
    @standtime += 1
        
        inaction 
    if @standtime == INACTION::STAY_TIME 
         $game_variables
    [15] = @standtime
      end  
       
      def move 
        
    @standtime 
       
      end 
       
      def inaction 
        $game_temp
    .reserve_common_event(INACTION::COMMON_EVENT
        @
    standtime if INACTION::REPEAT 
        
      end 
    end 


    Этот скрипт если не ошибаюсь HopeBree

    Нужно чтобы при простое героя 60кадров включался 5 переключатель. Когда персонаж движется выключался.
    Или если с ожиданием кадров сложно, то можно без него. Главное чтобы переключатель включался-выключался.

    У меня мозгов хватило только вставить строчку $game_variables[15] = @standtime и в общем событие поставить ветвление на переменной. Но минус в том что значение переменной постоянно скачет от 1 до 60
    А обнулять переменную когда бежишь не сможешь прописать?

  4. #1434
    Местный Аватар для АндрейЕ
    Информация о пользователе
    Регистрация
    24.05.2014
    Адрес
    Тольятти
    Сообщений
    225
    Репутация: 32 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Пётр Посмотреть сообщение
    А обнулять переменную когда бежишь не сможешь прописать?
    Это уже сложно для меня(

  5. #1435
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,089
    Записей в дневнике
    6
    Репутация: 124 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от АндрейЕ Посмотреть сообщение
    Это уже сложно для меня(
    Я конечно тот еще гений, но...
    def move
    $game_variables[15] = 0
    @standtime = 0

    end

    Но это не точно.)
    Я бы бахнул в параллельном событии всё.)
    Ставишь в условии
    $game_player.moving?
    ​и пляшешь как хочешь.)

  6. #1436
    Местный Аватар для АндрейЕ
    Информация о пользователе
    Регистрация
    24.05.2014
    Адрес
    Тольятти
    Сообщений
    225
    Репутация: 32 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Пётр Посмотреть сообщение
    Я конечно тот еще гений, но...
    def move
    $game_variables[15] = 0
    @standtime = 0

    end

    Но это не точно.)
    Я бы бахнул в параллельном событии всё.)
    Ставишь в условии
    $game_player.moving?
    ​и пляшешь как хочешь.)
    Идея с $game_player.moving? хороша! Правда появилась временами небольшая дёрганность но думаю с этим разберусь, спасибо!

Страница 144 из 144 ПерваяПервая ... 4494134142143144

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

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

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

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

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

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

Ваши права

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