Страница 72 из 147 ПерваяПервая ... 2262707172737482122 ... ПоследняяПоследняя
Показано с 711 по 720 из 1470

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

  1. #711
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Это можно сделать на командах для любого количества фреймов.
    Принцип: при нажатии на стрелку Х ивент последовательно меняется столько раз, сколько тебе надо, Между надо вставлять маленькие паузы, чтобы общая пауза как раз укладывалась в шаг между клетками ( а то ивент перейдет, а ноги будут еще шевелиться ). Замена изображения ивента - это очень просто. Остальное - надо потренироваться. ))

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  2. #712
    Местный Аватар для SethNsk
    Информация о пользователе
    Регистрация
    25.03.2010
    Сообщений
    243
    Записей в дневнике
    7
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Валера Посмотреть сообщение
    Это можно сделать на командах для любого количества фреймов.
    Принцип: при нажатии на стрелку Х ивент последовательно меняется столько раз, сколько тебе надо, Между надо вставлять маленькие паузы, чтобы общая пауза как раз укладывалась в шаг между клетками ( а то ивент перейдет, а ноги будут еще шевелиться ). Замена изображения ивента - это очень просто. Остальное - надо потренироваться. ))
    А проще нельзя?.. А то в Икспи для этого пару цифр в скриптах поменять, и все...

  3. #713
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    А это - к сприптерам. Я по старинке предпочитаю. ))

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  4. #714
    Местный Аватар для SethNsk
    Информация о пользователе
    Регистрация
    25.03.2010
    Сообщений
    243
    Записей в дневнике
    7
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Ладно, другой вопрос...
    Помогите в скрипте разобраться, а то я англицкого не знаю...
    Спойлер Вот!:
    Код HTML:
    #===============================================================================
    # [VXA] Pathfinding
    #-------------------------------------------------------------------------------
    # Version: 1.0
    # Author: cozziekuns (rmrk)
    # Last Date Updated: 12/31/2011 (MM/DD/YYYY)
    #===============================================================================
    # Description:
    #-------------------------------------------------------------------------------
    # This script allows you to move any character to another tile using the  
    # shortest path possible. It takes a significantly longer time on large maps.
    #===============================================================================
    # Updates
    # ------------------------------------------------------------------------------
    # o 12/31/2011 - Started Script 
    #===============================================================================
    # To-do List
    #------------------------------------------------------------------------------- 
    # o Allow for dynamic recalculation if one wants to repeat the pathfinding 
    #   process for any reason.
    #===============================================================================
    # Instructions
    #-------------------------------------------------------------------------------
    # To use, create a move route event and as a script command use: 
    #
    # find_path(target_x, target_y)
    #
    # Additionally, one can force a path through a script using the following call:
    # 
    # force_path(target_x, target_y)
    #
    # There is a known bug that is present in Modern Algebra's script regarding the 
    # recalculation of a path once found. Since some of this script is simply
    # a convert from his VX version (only the algorithm is different by being
    # slightly slower and sloppier :P), the bug is also found in this script.
    #===============================================================================
    
    #==============================================================================
    # ** Game_Map
    #==============================================================================
    
    class Game_Map
      
      def find_path(target_x, target_y, sx, sy, passable, char)
        path = []
        max_elements = width * height + 2
        checked_items = 0
        @open_list_items = 0
        @open_list = Table.new(max_elements)
        @nodes = Table.new(max_elements, 2)
        open = Table.new(width, height)
        closed = Table.new(width, height)
        parent = Table.new(width, height, 3)
        @f_cost = Table.new(width, height)
        @open_list[0] = 0
        @nodes[0, 0] = sx
        @nodes[0, 1] = sy
        next_point = [sx, sy]
        closed[sx, sy] = 1
        loop do
          next_point = delete_from_heap if not next_point == [sx, sy]
          return path if next_point.nil?
          open[next_point[0], next_point[1]] = 0
          closed[next_point[0], next_point[1]] = 2 if not next_point == [sx, sy]
          parent_x, parent_y = next_point[0], next_point[1]
          for i in 1..4
            x, y = case i * 2 
            when 2; [parent_x, parent_y + 1]
            when 4; [parent_x - 1, parent_y]
            when 6; [parent_x + 1, parent_y]
            when 8; [parent_x, parent_y - 1]
            end
            next if closed[x, y] == 2
            next unless char.passable?(parent_x, parent_y, i * 2) 
            if not open[x, y] == 1
              open[x, y] = 1
              parent[x, y, 0] = parent_x
              parent[x, y, 1] = parent_y
              parent[x, y, 2] = parent[parent_x, parent_y, 2] + 10
              g = parent[x, y, 2] + 10
              h = ((target_x - x).abs + (target_y - y).abs) * 10
              @f_cost[x, y] = g 
              checked_items += 1
              @open_list_items += 1
              @nodes[checked_items, 0] = x
              @nodes[checked_items, 1] = y
              add_to_heap(checked_items)
            else
              old_g = parent[x, y, 2] + 10
              new_g = parent[parent_x, parent_y, 2] + 20
              next if old_g < new_g
              parent[x, y, 0] = parent_x
              parent[x, y, 1] = parent_y
              parent[x, y, 2] = new_g
              g = parent[x, y, 2] + 10
              h = ((target_x - x).abs + (target_y - y).abs) * 10
              @f_cost[x, y] = g 
            end
          end
          next_point = nil
          break if closed[target_x, target_y] == 2
        end    
        path_x, path_y = target_x, target_y    
        loop do   
          parent_x = parent[path_x, path_y, 0]
          parent_y = parent[path_x, path_y, 1]
          if path_x < parent_x
            code = 2
          elsif path_x > parent_x
            code = 3
          else
            code = path_y < parent_y ? 4 : 1
          end      
          path.push(RPG::MoveCommand.new(code))
          path_x, path_y = parent_x, parent_y      
          break if path_x == sx and path_y == sy
        end
        return path
      end
      
      def add_to_heap(value)
        m = @open_list_items
        @open_list[m] = value
        while m != 1
          if fcost(@open_list[m]) < fcost(@open_list[m / 2])
            temp = @open_list[m / 2]
            @open_list[m / 2] = @open_list[m]
            @open_list[m] = temp
            m /= 2
          else
            break
          end
        end
      end
      
      def delete_from_heap
        next_point = @open_list[0]
        @open_list[0] = @open_list[@open_list_items]
        @open_list_items -= 1
        v = 1
        loop do
          u = v
          w = 2 * u
          if w + 1 <= @open_list_items
            v = w if fcost(@open_list[u - 1]) >= fcost(@open_list[w - 1])
            v = w + 1 if fcost(@open_list[v - 1]) >= fcost(@open_list[w]) 
          elsif w <= @open_list_items
            v = w if fcost(@open_list[u - 1]) >= fcost(@open_list[w - 1])
          end
          if u != v
            temp = @open_list[u - 1]
            @open_list[u - 1] = @open_list[v - 1]
            @open_list[v - 1] = temp 
          else
            break
          end
        end
        return @nodes[next_point, 0], @nodes[next_point, 1]
      end
      
      def fcost(point)
        x = @nodes[point, 0]
        y = @nodes[point, 1]
        return @f_cost[x, y]
      end
      
    end
    
    #==============================================================================
    # ** Game_CharacterBase
    #==============================================================================
    
    class Game_CharacterBase
    
      def find_path(target_x, target_y)
        path = $game_map.find_path(target_x, target_y, @x, @y, false, self)
        @move_route.list.delete_at(@move_route_index)
        path.each { |i| @move_route.list.insert(@move_route_index, i) }
        @move_route_index -= 1
      end
      
      def force_path(target_x, target_y)
        path = $game_map.find_path(target_x, target_y, @x, @y, false, self)
        path.reverse!
        path.push (RPG::MoveCommand.new(0))
        move_route = RPG::MoveRoute.new
        move_route.list = path
        move_route.repeat = false
        force_move_route(move_route)
      end
      
      def count_iterations(target_x, target_y)
        path = $game_map.find_path(target_x, target_y, @x, @y, true, self)
        return path.size
      end
      
    end

  5. #715
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Перевод сильно вольный, но старался максимально сохранить смысл))

    Описание:
    Этот скрипт позволяет передвигать евент наиболее коротким путем в любую точку карты

    Инструкция:
    Для использования создайте move route(евент с заданным путем) евент и используйте скриптовую команду:
    find_path(target_x, target_y)
    Так же можно принудительно запустить через команду
    force_path(target_x, target_y)
    (Прим меня: я так понял из кода - свойство move route выставит сам скрипт тогда).
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  6. #716
    Местный Аватар для SethNsk
    Информация о пользователе
    Регистрация
    25.03.2010
    Сообщений
    243
    Записей в дневнике
    7
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Спасибо, но я уже с другим разобрался...

    Следующий вопрос...
    Помогите, пожалуйста, разобраться как использовать этот скрипт:
    Спойлер В игре::

    Спойлер В событии::

    Спойлер В скрипте::
    PHP код:
    =begin
    More Choices
    by Fomar0153
    Version 1.0
    ----------------------
    Notes
    ----------------------
    No requirements
    Allows you to have more than four choices
    ----------------------
    Instructions
    ----------------------
    Edit the method more_choice and then use the call in 
    a choice option
    .
    ----------------------
    Known bugs
    ----------------------
    None
    =end
    class Game_Interpreter
      
    #--------------------------------------------------------------------------
      # ● Edit Here
      # when handle
      #   $game_message.choices.push("a choice")
      #--------------------------------------------------------------------------
      
    def more_choice(p)
        case 
    p
        when 
    "Pizza Topping"
          
    $game_message.choices.push("Ham & Pineapple")
          
    $game_message.choices.push("Meat Feast")
          
    $game_message.choices.push("Chocolate")
          
    $game_message.choices.push("BBQ")
          
    $game_message.choices.push("Diamonds")
          
    $game_message.choices.push("Spicy Chicken")
          
    $game_message.choices.push("Garlic")
        else
          
    $game_message.choices.push(p)
        
    end
      end
      
    #--------------------------------------------------------------------------
      # ● Long Choices - Don't edit this bit
      #--------------------------------------------------------------------------
      
    def setup_choices(params)
        for 
    s in params[0]
          
    more_choice(s)
        
    end
        $game_message
    .choice_cancel_type params[1]
        
    $game_message.choice_proc Proc.new {|n| @branch[@indent] = }
      
    end
    end

    class Window_ChoiceList Window_Command
      
    #--------------------------------------------------------------------------
      # ● Feel free to change the 1 to another variable that you'd prefer
      #--------------------------------------------------------------------------
      
    alias mc_call_ok_handler call_ok_handler
      def call_ok_handler
        $game_variables
    [1] = index
        mc_call_ok_handler
      end
    end 

  7. #717
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Пишешь в опциях выбора "Выбор Васи Пупкина" (как заглавие)
    А в скрипте исправляешь на:
    def more_choice(p)
    case p
    when "Выбор Васи Пупкина"
    $game_message.choices.push("Ham & Pineapple")
    $game_message.choices.push("Meat Feast")
    $game_message.choices.push("Chocolate")
    $game_message.choices.push("BBQ")
    $game_message.choices.push("Diamonds")
    $game_message.choices.push("Spicy Chicken")
    $game_message.choices.push("Garlic")
    else
    $game_message.choices.push(p)
    end
    end
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  8. #718
    Маститый Аватар для Bullet S.D.
    Информация о пользователе
    Регистрация
    27.01.2009
    Адрес
    Москва
    Сообщений
    1,360
    Записей в дневнике
    9
    Репутация: 74 Добавить или отнять репутацию

    По умолчанию

    Требуется убрать границы в текстблоке. Они урезают буквы в словах. Использую Universal Message System v1.30 by Ccoa
    Спойлер Проекты Dark Rise INC.:

  9. #719
    Маститый Аватар для Andrew
    Информация о пользователе
    Регистрация
    08.02.2011
    Адрес
    Беларусь, Витебск
    Сообщений
    1,049
    Записей в дневнике
    3
    Репутация: 30 Добавить или отнять репутацию

    По умолчанию

    Помоему Equilibrium Keeper делал такой, но я не помню точно.


  10. #720
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,348
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    А кто-нибудь знает, как сделать движение панорам на ХР? Я помню, что это делается каким-то очень простым способом. Но вот не знаю, настолько ли просто это сделать именно так, как мне нужно... А нужно вот что:
    Предположим, у нас в наборе тайлов задана какая-то панорама, и вот на карте мы её видим в неподвижном виде. Затем нужно сделать так, чтобы эта панорама начала медленно двигаться (скажем, справа налево), а затем - двигаться ещё быстрее, затем ещё, и ещё, и вот она у нас уже такая "летит". При этом, нужно сделать так, чтобы картинка, использующаяся в панораме, могла быть заменена на другую. Вот это, наверное, сложнее всего сделать, потому что это задаётся в тайл-сете... Но, наверное ведь можно? Далее, нужно сделать так, чтобы панорама таким-же способом замедлялась, и снова становилась неподвижной. Вообщем, это должно выглядеть как движение окружающего мира за окнами транспортного средства.

Страница 72 из 147 ПерваяПервая ... 2262707172737482122 ... ПоследняяПоследняя

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

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

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

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

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

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

Ваши права

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