Caixa de Ferramentas dos Eventos (Eventer's Toolbox)
por Hevendor
Introdução: por Hevendor
Este script não é voltado para noobs, se você for um, feche a janela do navegador.
Se lembra de quando você precisava usar variáveis com as coordenadas do
herói e com as coordenadas dos eventos apenas para verificar onde seus
eventos estavam, ou onde suas pedras estavam, etc.?
Não precisa mais! Puzzles de empurrar pedras? Agora é fácil!
Como usar:
Use
cada um dos comandos onde você quiser, entretanto eles foram feitos com
o propósito de usar nos eventos condicionais. Como por exemplo:
<> Condição: $game_map.event_standing_coords?(8, 1, 3)
<> Faz alguma coisa se o evento [008] estiver nas coordenadas 1,3
Exceção:
<> Faz alguma outra coisa se o evento [008] não estiver nas coordenadas 1,3
FIM
e também:
<> Condição: Script: $game_map.standing_on_tile?(5, 13)
<> Faz alguma coisa se você estiver nas coordenadas 5,13
Exceção:
<> Faz alguma outra coisa se você não estiver nas coordenadas 5,13
FIM
Você também pode usar os comandos abaixo:
Comandos:
- # $game_map.standing_on_tile?(x, y)
- $game_map.standing_on_event?(id)
- $game_map.adjacent_tile?(x, y, standing)
- se standing = false, verifica apenas se você está adjacente
- se standing = true, verifica se você está adjacente ou em cima da coordenada
- $game_map.cross_adjacent_event?(id, n)
onde (n) é o raio da cruz. Para verificar se o herói está adjacente ao
evento, use n=1.
- $game_map.event_adjacent_event?(id, id2, n)
onde (n) é o raio da cruz. Para verificar se os eventos estão diretamente
adjacentes, use n=1.
- $game_map.event_standing_coords?(id, x, y)
[/list]
Screenshots:
Não perceptivel por screenshots ¯\_(ツ)_/¯
Demo
Caso surgir dúvidas de como utilizar os script, eu anexo uma pequena demonstração.
Script
- Código:
#==============================================================================
# * Caixa de Ferramentas dos Eventos (Eventer's Toolbox)
#------------------------------------------------------------------------------
# * Alguns comandos para tornar a programação de eventos mais fácil.
# 10-03-2008 (dd-mm-yyyy) © Hevendor of rmxp.org
# Version 0.2.2
# Latest update: N/A
# Tradução e uma pequena correção: br_lemes
#==============================================================================
#==============================================================================
# * INSTRUÇÕES
# Se lembra de quando você precisava usar variáveis com as coordenadas do
# herói e com as coordenadas dos eventos apenas para verificar onde seus
# eventos estavam, ou onde suas pedras estavam, etc.?
# Não precisa mais! Puzzles de empurrar pedras? Agora é fácil!
# Use cada um destes comando onde você quiser, entretanto eles foram feito com
# o propósito de usar nos eventos condicionais. Como por exemplo:
# <> Condição: Script: $game_map.standing_on_tile?(5, 13)
# <> Faz alguma coisa se você estiver nas coordenadas 5,13
# : Exceção:
# <> Faz alguma outra coisa se você não estiver nas coordenadas 5,13
# : FIM
#------------------------------------------------------------------------------
# * COMMANDS
# $game_map.standing_on_tile?(x, y)
# - verifica se o herói está nas coordenadas (x, y) do mapa
#
# $game_map.standing_on_event?(id)
# - verifica se o herói está no evento (id)
#
# $game_map.adjacent_tile?(x, y, standing)
# - verifica se o herói está adjacente às coordenadas (x, y)
# - se standing = false, verifica apenas se você está adjacente
# - se standing = true, verifica se você está adjacente ou em cima da coordenada
#
# $game_map.cross_adjacent_event?(id, n)
# - verifica se o herói está num raio em cruz do evento (id),
# onde (n) é o raio da cruz. Para verificar se o herói está adjacente ao
# evento, use n=1.
#
# $game_map.event_adjacent_event?(id, id2, n)
# - verifica se o evento (id) está num raio em cruz do evento (id2),
# onde (n) é o raio da cruz. Para verificar se os eventos estão diretamente
# adjacentes, use n=1.
#
# $game_map.event_standing_coords?(id, x, y)
# - verifica se o evento (id) está nas coordenadas (x, y) do mapa
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :px
attr_accessor :py
#--------------------------------------------------------------------------
# * Alias Definitions
#--------------------------------------------------------------------------
alias hev_rmvx_toolbox_initialize initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
hev_rmvx_toolbox_initialize
@px = 0
@py = 0
end
#--------------------------------------------------------------------------
# * Player standing on map coords (x, y)?
#--------------------------------------------------------------------------
def standing_on_tile?(x, y)
if $game_player.x == x and $game_player.y == y
return true
else
return false
end
end
#--------------------------------------------------------------------------
# * Player standing on event (id)?
#--------------------------------------------------------------------------
def standing_on_event?(id)
if $game_player.x == @events[id].x && $game_player.y == @events[id].y
return true
else
return false
end
end
#--------------------------------------------------------------------------
# * Is player adjacent (or standing on) to tile (x, y)?
#--------------------------------------------------------------------------
def adjacent_tile?(x, y, standing)
@px = $game_player.x
@py = $game_player.y
if standing = false
if (@px != x && @py != y) || (@px == x && @py == y)
return false
end
end
if standing = true
if (@px != x && @py != y)
return false
end
end
if @px < x
if (x - @px) <= 1
return true
end
end
if @px > x
if (@px - x) <= 1
return true
end
end
if @py > y
if (@py - y) <= 1
return true
end
end
if @py < y
if (y - @py) <= 1
return true
end
end
end
#--------------------------------------------------------------------------
# * Is player (n) tiles adjacent to event (id) [in a cross pattern]?
#--------------------------------------------------------------------------
def cross_adjacent_event?(id, n)
@px = $game_player.x
@py = $game_player.y
if (@px != @events[id].x && @py != @events[id].y) || (@px == @events[id].x && @py == @events[id].y)
return false
end
if @px < @events[id].x
if (@events[id].x - @px) <= n
return true
end
end
if @px > @events[id].x
if (@px - @events[id].x) <= n
return true
end
end
if @py > @events[id].y
if (@py - @events[id].y) <= n
return true
end
end
if @py < @events[id].y
if (@events[id].y - @py) <= n
return true
end
end
end
#--------------------------------------------------------------------------
# * Is event (id) adjacent to event (id2?)
#--------------------------------------------------------------------------
def event_adjacent_event?(id, id2, n)
if @events[id].x != @events[id2].x && @events[id].y != @events[id2].y
return false
end
if @events[id].x == @events[id2].x && @events[id].y == @events[id2].y
return false
end
if @events[id].x < @events[id2].x
if (@events[id2].x - @events[id].x) <= n
return true
end
end
if @events[id].x > @events[id2].x
if (@events[id].x - @events[id2].x) <= n
return true
end
end
if @events[id].y > @events[id2].y
if (@events[id].y - @events[id2].y) <= n
return true
end
end
if @events[id].y < @events[id2].y
if (@events[id2].y - @events[id].y) <= n
return true
end
end
end
#--------------------------------------------------------------------------
# * Is event (id) standing on map coords. (x, y)?
#--------------------------------------------------------------------------
def event_standing_coords?(id, x, y)
if @events[id].x == x && @events[id].y == y
return true
else
return false
end
end
end
Versão do Victor Sant:
- Código:
#==============================================================================
# * Caixa de Ferramentas dos Eventos (Eventer's Toolbox)
#------------------------------------------------------------------------------
# * Alguns comandos para tornar a programação de eventos mais fácil.
# 10-03-2008 (dd-mm-yyyy) © Hevendor of rmxp.org
# Version 0.2.2
# Latest update: N/A
# Tradução e uma pequena correção: br_lemes
#==============================================================================
#==============================================================================
# * INSTRUÇÕES
# Se lembra de quando você precisava usar variáveis com as coordenadas do
# herói e com as coordenadas dos eventos apenas para verificar onde seus
# eventos estavam, ou onde suas pedras estavam, etc.?
# Não precisa mais! Puzzles de empurrar pedras? Agora é fácil!
# Use cada um destes comando onde você quiser, entretanto eles foram feito com
# o propósito de usar nos eventos condicionais. Como por exemplo:
# <> Condição: Script: $game_map.standing_on_tile?(5, 13)
# <> Faz alguma coisa se você estiver nas coordenadas 5,13
# : Exceção:
# <> Faz alguma outra coisa se você não estiver nas coordenadas 5,13
# : FIM
#------------------------------------------------------------------------------
# * COMMANDS
# $game_map.standing_on_tile?(x, y)
# - verifica se o herói está nas coordenadas (x, y) do mapa
#
# $game_map.standing_on_event?(id)
# - verifica se o herói está no evento (id)
#
# $game_map.adjacent_tile?(x, y, standing)
# - verifica se o herói está adjacente às coordenadas (x, y)
# - se standing = false, verifica apenas se você está adjacente
# - se standing = true, verifica se você está adjacente ou em cima da coordenada
#
# $game_map.cross_adjacent_event?(id, n)
# - verifica se o herói está num raio em cruz do evento (id),
# onde (n) é o raio da cruz. Para verificar se o herói está adjacente ao
# evento, use n=1.
#
# $game_map.event_adjacent_event?(id, id2, n)
# - verifica se o evento (id) está num raio em cruz do evento (id2),
# onde (n) é o raio da cruz. Para verificar se os eventos estão diretamente
# adjacentes, use n=1.
#
# $game_map.event_standing_coords?(id, x, y)
# - verifica se o evento (id) está nas coordenadas (x, y) do mapa
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# * Player standing on map coords (x, y)?
#--------------------------------------------------------------------------
def standing_on_tile?(x, y)
$game_player.x == x && $game_player.y == y
end
#--------------------------------------------------------------------------
# * Player standing on event (id)?
#--------------------------------------------------------------------------
def standing_on_event?(id)
$game_player.x == ev[id].x && $game_player.y == ev[id].y
end
#--------------------------------------------------------------------------
# * Is player adjacent (or standing on) to tile (x, y)?
#--------------------------------------------------------------------------
def adjacent_tile?(x, y, standing)
px = $game_player.x
py = $game_player.y
return false if !standing && ((px != x && py != y) || (px == x && py == y))
return false if standing && px != x && py != y
return true if px < x && x - px <= 1
return true if px > x && px - x <= 1
return true if py > y && py - y <= 1
return true if py < y && y - py <= 1
end
#--------------------------------------------------------------------------
# * Is player (n) tiles adjacent to event (id) [in a cross pattern]?
#--------------------------------------------------------------------------
def cross_adjacent_event?(id, n)
px = $game_player.x
py = $game_player.y
ev = @events
return false if px != ev[id].x && py != ev[id].y
return false if px == ev[id].x && py == ev[id].y
return true if px < ev[id].x && ev[id].x - px <= n
return true if px > ev[id].x && px - ev[id].x <= n
return true if py > ev[id].y && py - ev[id].y <= n
return true if py < ev[id].y && ev[id].y - py <= n
end
#--------------------------------------------------------------------------
# * Is event (id) adjacent to event (id2?)
#--------------------------------------------------------------------------
def event_adjacent_event?(id, id2, n)
ev = @events
return false if ev[id].x != ev[id2].x && ev[id].y != ev[id2].y
return false if ev[id].x == ev[id2].x && ev[id].y == ev[id2].y
return true if ev[id].x < ev[id2].x && ev[id2].x - ev[id].x <= n
return true if ev[id].x > ev[id2].x && ev[id].x - ev[id2].x <= n
return true if ev[id].y > ev[id2].y && ev[id].y - ev[id2].y <= n
return true if ev[id].y < ev[id2].y && ev[id2].y - ev[id].y <= n
end
#--------------------------------------------------------------------------
# * Is event (id) standing on map coords. (x, y)?
#--------------------------------------------------------------------------
def event_standing_coords?(id, x, y)
ev[id].x == x && ev[id].y == y
end
end
Créditos e Agradecimentos
- Feito por Hevendor de rmxp.org
- Tradução e pequena correção por br_lemes