mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
245 lines
6.4 KiB
Ruby
245 lines
6.4 KiB
Ruby
# #===============================================================================
|
|
# # Klein Footprints / WolfPP for Pokémon Essentials
|
|
# # Give credits if you're using this!
|
|
# # http://kleinstudio.deviantart.com
|
|
# #
|
|
# # bo4p5687 update (v.19)
|
|
# #===============================================================================
|
|
#
|
|
# # Fix event comment
|
|
# def pbEventCommentInput(*args)
|
|
# parameters = []
|
|
# list = *args[0].list # Event or event page
|
|
# elements = *args[1] # Number of elements
|
|
# trigger = *args[2] # Trigger
|
|
# return nil if list == nil
|
|
# return nil unless list.is_a?(Array)
|
|
# for item in list
|
|
# next unless item.code == 108 || item.code == 408
|
|
# if item.parameters[0] == trigger[0]
|
|
# start = list.index(item) + 1
|
|
# finish = start + elements[0]
|
|
# for id in start...finish
|
|
# next if !list[id]
|
|
# parameters.push(list[id].parameters[0])
|
|
# end
|
|
# return parameters
|
|
# end
|
|
# end
|
|
# return nil
|
|
# end
|
|
#
|
|
# module FootprintVariables
|
|
# # If you set pokemon here, they doesn't have footprints
|
|
# FOLLOWING_DONT_WALK = [
|
|
# # Example:
|
|
# # 12,15,17
|
|
# ]
|
|
#
|
|
# # Set here the terrain tag for footprints, 3 is sand
|
|
# TERRAIN_FOOT = 3
|
|
#
|
|
# # Initial opacity for footprints
|
|
# FOOT_OPACITY = 62
|
|
#
|
|
# # Delay velocity
|
|
# FOOT_DELAY = 1.1
|
|
#
|
|
# def self.get_new_id
|
|
# newId = 1
|
|
# while !$game_map.events[newId].nil? do
|
|
# break if $game_map.events[newId].erased
|
|
# newId += 1
|
|
# end
|
|
# return newId
|
|
# end
|
|
#
|
|
# def self.show(event, position)
|
|
# if event != $game_player
|
|
# return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/")
|
|
# return if pbEventCommentInput(event, 0, "NoFoot")
|
|
# if $Trainer.party.length > 0
|
|
# return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") &&
|
|
# (FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle))
|
|
# end
|
|
# end
|
|
# character_sprites = $scene.spriteset.character_sprites
|
|
# viewport = $scene.spriteset.viewport1
|
|
# footsprites = $scene.spriteset.footsprites
|
|
# nid = self.get_new_id
|
|
# rpgEvent = RPG::Event.new(position[0], position[1])
|
|
# rpgEvent.id = nid
|
|
# fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
|
|
# eventsprite = Sprite_Character.new(viewport, fev)
|
|
# character_sprites.push(eventsprite)
|
|
# footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event == $game_player)))
|
|
# end
|
|
#
|
|
# end
|
|
#
|
|
# class Game_Event < Game_Character
|
|
# attr_reader :erased
|
|
# end
|
|
#
|
|
# class Sprite_Character
|
|
# alias old_initialize_foot initialize
|
|
#
|
|
# def initialize(viewport, character = nil)
|
|
# old_initialize_foot(viewport, character)
|
|
# @disposed = false
|
|
# end
|
|
#
|
|
# alias old_update_foot update
|
|
#
|
|
# def update
|
|
# return if @disposed
|
|
# old_update_foot
|
|
# end
|
|
#
|
|
# alias old_dispose_foot dispose
|
|
#
|
|
# def dispose
|
|
# old_dispose_foot
|
|
# @disposed = true
|
|
# end
|
|
# end
|
|
#
|
|
# class Spriteset_Map
|
|
# attr_accessor :character_sprites
|
|
# attr_accessor :footsprites
|
|
#
|
|
# alias old_initialize initialize
|
|
#
|
|
# def initialize(map = nil)
|
|
# begin
|
|
# old_initialize(map) if map != nil
|
|
# @footsprites = []
|
|
# rescue
|
|
# return
|
|
# end
|
|
# end
|
|
#
|
|
# def viewport1
|
|
# return @@viewport1
|
|
# end
|
|
#
|
|
# def putFootprint(event, pos)
|
|
# return FootprintVariables.show(event, pos)
|
|
# end
|
|
#
|
|
# alias old_dispose dispose
|
|
#
|
|
# def dispose
|
|
# old_dispose
|
|
# @footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil?
|
|
# @footsprites.clear
|
|
# end
|
|
#
|
|
# alias old_update update
|
|
#
|
|
# def update
|
|
# old_update
|
|
# return if @footsprites.nil?
|
|
# @footsprites.each { |sprite| sprite.update }
|
|
# end
|
|
# end
|
|
#
|
|
# class Scene_Map
|
|
# def spriteset?
|
|
# return !@spritesets.nil?
|
|
# end
|
|
# end
|
|
#
|
|
# class Game_Character
|
|
#
|
|
# def get_last_pos
|
|
# case direction
|
|
# when 2 then
|
|
# return [@x, @y - 1, direction] # Move down
|
|
# when 4 then
|
|
# return [@x + 1, @y, direction] # Move left
|
|
# when 6 then
|
|
# return [@x - 1, @y, direction] # Move right
|
|
# when 8 then
|
|
# return [@x, @y + 1, direction] # Move up
|
|
# end
|
|
# return false
|
|
# end
|
|
#
|
|
# def foot_prints?
|
|
# return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset?
|
|
# end
|
|
#
|
|
# alias leave_tile_footprints triggerLeaveTile
|
|
#
|
|
# def triggerLeaveTile
|
|
# leave_tile_footprints
|
|
# $scene.spriteset.putFootprint(self, get_last_pos) if foot_prints?
|
|
# end
|
|
#
|
|
# end
|
|
#
|
|
# class Footsprite
|
|
# def initialize(sprite, event, viewport, map, direction, nid, chardata, player)
|
|
# return if $scene.is_a?(PokemonLoad_Scene) || $scene.is_a?(PokemonLoadScreen)
|
|
# @rsprite = sprite
|
|
# # Sprite
|
|
# @sprite = Sprite.new(viewport)
|
|
# file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png"
|
|
# @sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file)
|
|
# # Set position
|
|
# @realwidth = @sprite.bitmap.width / 4
|
|
# @sprite.src_rect.width = @realwidth
|
|
# @opacity = FootprintVariables::FOOT_OPACITY
|
|
# setFootset(direction)
|
|
# # Values
|
|
# @map = map
|
|
# @event = event
|
|
# @disposed = false
|
|
# @eventid = nid
|
|
# @viewport = viewport
|
|
# @chardata = chardata
|
|
# update
|
|
# end
|
|
#
|
|
# def setFootset(direction)
|
|
# @sprite.src_rect.x =
|
|
# case direction
|
|
# when 2 then
|
|
# 0 # Move down
|
|
# when 4 then
|
|
# @realwidth * 3 # Move left
|
|
# when 6 then
|
|
# @realwidth * 2 # Move right
|
|
# when 8 then
|
|
# @realwidth # Move up
|
|
# end
|
|
# @sprite.opacity = @opacity
|
|
# end
|
|
#
|
|
# def dispose
|
|
# return if @disposed
|
|
# @disposed = true
|
|
# @event.erase
|
|
# (0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite }
|
|
# @rsprite.dispose
|
|
# @sprite.dispose
|
|
# @sprite = nil
|
|
# end
|
|
#
|
|
# def update
|
|
# return if @disposed
|
|
# x = @rsprite.x - @rsprite.ox
|
|
# y = @rsprite.y - @rsprite.oy
|
|
# width = @rsprite.src_rect.width
|
|
# height = @rsprite.src_rect.height
|
|
# @sprite.x = x + width / 2
|
|
# @sprite.y = y + height
|
|
# @sprite.ox = @realwidth / 2
|
|
# @sprite.oy = @sprite.bitmap.height
|
|
# @sprite.z = @rsprite.z - 2
|
|
# @opacity -= FootprintVariables::FOOT_DELAY
|
|
# @sprite.opacity = @opacity
|
|
# dispose if @sprite.opacity <= 0
|
|
# end
|
|
# end |