Pomógł: 9 razy Dołączył: 28 Mar 2010 Posty: 173 Skąd: Warszawa
Wysłany: Wto 13 Lip, 2010 18:51
Obrazek nie wygląda zbyt zachęcająco do dodania do swojej gry lecz napewno jest inaczej niż myśle i to wygląda troche lepiej , mam nadzieje że tak właśnie jest i może dodam ten skrypcik do mojej nowej gry którą robie .
ehm no chodzi o to ze jak wlacze tą twoją mapę już w grze to nie wiem jak zrobić żeby ten kursorek był w innym miejscu poniewaz wzielem swoj obrazek. I tak pewnie nie zrozumiesz o co chodzi jak jutro będę na drugim kompie wrzucę ci demko w którym będzie wszystko pokazane
class Game_System
attr_accessor :known_places, :last_place
# Initialize. --------------------------------------------------
alias sab_initialize initialize
def initialize
sab_initialize
@known_places=KNOWN_PLACES
@last_place=FIRST_PLACE
end
end
class Window_Command
# Getting command content --------------------------------------
def get_command(index=@index)
if index==:all then
return @commands
else
return @commands[index]
end
end
end
class Interpreter
# Learning a place. --------------------------------------------
def learn(string)
if PLACES.include?(string)
$game_system.known_places[PLACES.index(string)]=true
end
end
# Setting a current place --------------------------------------
def set_place(string)
$game_system.last_place=string
end
end
class Scene_Save < Scene_File
alias sab_write_save_data write_save_data
def write_save_data(file)
sab_write_save_data(file)
file=File.open('mapinfo '+make_filename(@file_index).to_s, "w")
Marshal.dump($game_system.known_places, file)
Marshal.dump($game_system.last_place, file)
file.close
end
end
class Scene_Load < Scene_File
alias sab_read_save_data read_save_data
def read_save_data(file)
sab_read_save_data(file)
file=File.open('mapinfo '+make_filename(@file_index).to_s, "r")
$game_system.known_places = Marshal.load(file)
$game_system.last_place = Marshal.load(file)
file.close
end
end
# ================================================================
# ACTUAL SCRIPT
# ================================================================
class Scene_WorldMap
attr_reader :command_window
# Main. --------------------------------------------------------
def main
# Bgm/bgs fade out.
$game_system.bgm_fade(2)
$game_system.bgs_fade(2)
# Command window place settings.
places=[]
for i in 0...PLACES.size
if $game_system.known_places[i]
places << PLACES[i]
end
end
# Windows.
@command_window=Window_Command.new(192, places) # Command window.
@command_window.opacity=COMMAND_WINDOW_OPACITY
if COMMAND_WINDOW_BOTTOM_ALING
@command_window.y=480-@command_window.height
end
@command_window.index = $game_system.last_place=="" ? 0 : @command_window.get_command(:all).index($game_system.last_place)
@bg_window=Window_WorldMap.new # Background.
@bg_window.z-=10
check_command_window_position
# Settings.
Graphics.transition
# Main loop.
while $scene==self
Graphics.update
Input.update
update
end
# Disposing.
Graphics.freeze
@command_window.dispose
@bg_window.dispose
end
# Update. ------------------------------------------------------
def update
@command_window.update
@bg_window.refresh
# Moving command_window.
check_command_window_position
# Checking keyboard.
if Input.trigger?(Input::C)
return_to_map
elsif Input.trigger?(Input::B)
return_to_map
end
end
# Returning to the actual map ----------------------------------
def return_to_map
$game_system.se_play($data_system.cancel_se)
# Teleport - old place.
$scene=Scene_Map.new
# Playing map bgm/bgs.
$game_map.autoplay
end
# Checking command_window position. ----------------------------
def check_command_window_position
x, y = @bg_window.cursor_position
if x >= 320
@command_window.x=0
else
@command_window.x=640-@command_window.width
end
end
end
# Refresh. -----------------------------------------------------
def refresh
# Cursor fading.
if @cursor_fading
@cursor_opacity=[@cursor_opacity+6, 180].min
if @cursor_opacity==180
@cursor_fading=false
end
else
@cursor_opacity=[@cursor_opacity-6, 100].max
if @cursor_opacity==100
@cursor_fading=true
end
end
# Map drawing.
self.contents.clear
self.contents.blt(16, 16, RPG::Cache.picture(MAP_NAME), Rect.new(0, 0, 640, 480), 255)
# Actual index cursor drawing.
p=COORDINATES[PLACES.index($scene.command_window.get_command)]
x=p[0]; y=p[1]
self.contents.blt(x, y, RPG::Cache.picture(CURSOR_NAME), Rect.new(0, 0, 32, 32), @cursor_opacity)
# Actual player place cursor drawing.
p=COORDINATES[PLACES.index($game_system.last_place)]
x=p[0]; y=p[1]
self.contents.blt(x, y, RPG::Cache.picture(CURSOR_NAME), Rect.new(0, 0, 32, 32), 200)
end
# Getting cursor_x ---------------------------------------------
def cursor_position
p=COORDINATES[PLACES.index($game_system.last_place)]
return p[0], p[1]
end
end
Da się jakoś inaczej zrobić żeby podczas rozgrywki dodawać nowe lokacje do mapy, oczywiście bez potrzeby bawienia się w przełączniki tylko dzięki wywołaniom skryptu??
________________________ Pomogłem? Daj
Rock & Dubstep & Electro House
Stwórz równoległe zdarzenie, wrzuć do niego warunek naciśnięcia przycisku; kiedy warunek będzie spełniony, wywołaj przeniesienie na mapę świata.
Ofc w ten sposób możesz użyć tylko kilku podstawowych przycisków (A - Z/Shift, B - X/Esc/Ins, C - C/Enter/spacja, X - A, Y - S, Z - D, L - Q, R - W). Jeśli chcesz tego swojego M, musisz poszukać skryptu poszerzającego obsługę klawiatury.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum