Dzień dobry :) . Mam problem , a mianowicie chodzi o drabiny lub coś w tym stylu . Można ustawić tak , że będzie widać np. jak się wspina po linie znaczy jak się wspina to widać dość realnie ale jak jużschodzi w dół to wygląda jakby szedł bo zwykłej ścieżce czy czymś i jest to nie realne . Potrzebuje pomocy . Mogę liczyć na waszą pomoc ? Wynagrodzę "Pomógł"
nie można zrobić "realnego wspinania się" ponieważ program nie potrafi modyfikować naszych grafik więc musi zostać chodzenie zwyczajne, chyba że gdzieś wyszukasz specjalne animacje wpinania się.
Pomógł: 1 raz Dołączył: 21 Maj 2010 Posty: 236 Skąd: z nikąd
Wysłany: Czw 26 Sie, 2010 13:09
Musisz zrobić to za pomocą zablokowania drabinki i tworzenia teleportów na naciśnięcie przycisku i do tego ustawić aby postać stała tyłem.
Pozdro,
FilipsO
________________________ 89% graczy uważa, że najważniejsza jest grafika.
Jeśli należysz do pozostałych 11% wklej to do swojego podpisu.
# this is the key that you may use to
# display the id of the tile that you
# are on. You shouldn't need to use
# this, but if you would like to add
# more tiles to the "ladder tile"
# collection you can use this to find
# the id.
DEBUG_KEY = Input::F5
# this is a collection of tile ids.
# this default set is all of the "wall"
# type tiles in the RTP. If you need
# to add or remove tiles to this set
# you can use the debug window to do so.
# to add a tile id, simply type in the
# id number where noted below and add a
# comma after it. Always keep the id's
# between the two braces ('[' and ']').
# if you are using the Mack tileset, comment out
# the two lines labeled "comment out for Mack".
# you can do this by adding a '#' character
# to the beginning of the line.
TILE_IDS = [
56, 57, 58, 59, 60, 61, 62, 63,
72, 73, 74, 75, 76, 77, 78, 79,
88, 89, 90, 91, 92, 93, 94, 95,
104, 105, 106, 107, 108, 109, 110, 111,
120, 121, 122, 123, 124, 125, 126, 127,
# 152, 153, 154, 155, 156, 157, 158, 159, # <-- comment out for A�rendyll's Mack tilesets
168, 169, 170, 171, 172, 173, 174, 175,
# 184, 185, 186, 187, 188, 189, 190, 191, # <-- comment out for A�rendyll's Mack tilesets
# <-- Add id's here.
]
# set this to true if you would like to
# use a different graphic when climbing.
USE_GRAPHIC = false
# the file name of the custom graphic.
# you do not need to add the file extension,
# i.e., 'Actor1' not 'Actor1.png'.
CHARACTER_NAME = 'Actor1'
# the index of the character in the sheet.
# in an 8 character sheet, '1' is the
# top-left, '2' is the next to the right,
# and '4' is the bottom left.
CHARACTER_INDEX = 1
end
#---------------------------------------------------------------------
# * Debug class
#---------------------------------------------------------------------
class Debug
def initialize
@debug_window = nil
@frame_count = 1
end
def hide_window?
@frame_count += 1
@frame_count = 0 if @frame_count == 180
return (!@debug_window.nil?) && (@frame_count == 0)
end
def hide_window
unless @debug_window.nil?
@frame_count = 1
@debug_window.dispose
@debug_window = nil
end
end
def long_line(lines)
long = ''
lines.each { |line| long = line if line.size > long.size }
return long
end
def find_width(line)
return Bitmap.new(544, 416).text_size(line).width + 32
end
def find_height(num_lines)
return (num_lines * 24) + 32
end
def log(text, x=0, y=0)
@debug_window = Window_Base.new(x, y, find_width(text), find_height(1))
draw(text)
end
def log_lines(lines, x=0, y=0)
@debug_window =
Window_Base.new(x, y, find_width(long_line(lines)), find_height(lines.size))
draw_lines(lines)
end
def draw(text)
@debug_window.contents.draw_text(@debug_window.contents.rect, text)
end
def draw_lines(lines)
i = 0
for line in lines
@debug_window.contents.draw_text(0, i, 544, 416, text)
i += 24
end
end
end
class Scene_Title
alias :eds_debug_create_game_objects :create_game_objects unless $@
def create_game_objects
eds_debug_create_game_objects
$debugger = Debug.new
end
end
class Scene_Base
def update
$debugger.hide_window if ($debugger.hide_window? && $TEST)
end
end
class Game_Map
#--------------------------------------------------------------------------
# * DerVVulfman method L get_tile_index
#--------------------------------------------------------------------------
def tile_index(tile_id)
case tile_id
# Multi-tiled ids in Tileset 'A'
when 2048..8191; return ((tile_id - 2000) / 48) - 1
# Individual tile ids in Tileset 'A'
when 1536..1663; return(tile_id - 1408)
# Tilesets 'B' to 'E'
when 0..1023; return (tile_id + 256)
end
return 0
end
end
class Game_Player < Game_Character
def character_name=(value)
@character_name = value
end
def character_index=(value)
@character_index = value
end
alias :eds_pre_ladder_turn_left :turn_left unless $@
def turn_left
tile_index = $game_map.tile_index($game_map.data[x, y, 0])
return if Ladder_Config::TILE_IDS.include?(tile_index)
eds_pre_ladder_turn_left
end
alias :eds_pre_ladder_turn_right :turn_right unless $@
def turn_right
tile_index = $game_map.tile_index($game_map.data[x, y, 0])
return if Ladder_Config::TILE_IDS.include?(tile_index)
eds_pre_ladder_turn_right
end
#--------------------------------------------------------------------------
# * Processing of Movement via input from the Directional Buttons
#--------------------------------------------------------------------------
alias :eds_pre_ladder_move_by_input :move_by_input unless $@
def move_by_input
@move_failed = true
eds_pre_ladder_move_by_input
unless @move_failed
tile_index = $game_map.tile_index($game_map.data[x, y, 0])
if Ladder_Config::TILE_IDS.include?(tile_index)
if Ladder_Config::USE_GRAPHIC
$game_player.character_name = Ladder_Config::CHARACTER_NAME
$game_player.character_index = Ladder_Config::CHARACTER_INDEX
else
turn_up
end
else
if Ladder_Config::USE_GRAPHIC
$game_player.character_name = $game_party.members[0].character_name
$game_player.character_index = $game_party.members[0].character_index
end
end
end
end
#--------------------------------------------------------------------------
# * update
#--------------------------------------------------------------------------
alias :eds_pre_ladder_update :update unless $@
def update
eds_pre_ladder_update
if $TEST && Ladder_Config::DEBUG_KEY != nil
if Input.trigger?(Ladder_Config::DEBUG_KEY)
$debugger.hide_window
$debugger.log($game_map.tile_index($game_map.data[x, y, 0]))
end
end
end
Na samym dole twojej liny daj zdarzenie, trigger player touch, komendy:
> ruch gracza: move up, move up, move up (itd).
Na samej górze liny też daj zdarzenie, trigger znowu player touch, ale komendy:
> ruch gracza: turn up, direction fix on, move down, move down, move down (itd), turn down, direction fix off.
Wtedy schodząc z drabiny/liny character gracza będzie skierowany w górę i nie zmieni kierunku mimo ruchu. Jak sprawia ci problem postać opisowa, mogę zrobić screeny :).
@rati: Ale autor nie mówi o zmianie grafiki, tylko o złym kierunku animacji przy schodzeniu xd.
Skrypt, który podałem nie zmienia grafiki postaci, tylko robi coś podobnego co napisałeś automatycznie dla każdej drabinki w RTP (Jak inny tile to trzeba edytować i ręcznie ustawić ID drabinek w ustawieniach skryptu). A mianowicie kiedy postać wchodzi z góry na drabinkę automatycznie patrzy w górę podczas schodzenia ;) Czyli że nie trzeba ustawiać eventów dla każdej drabinki, a w efekcie zyskujemy, bo mniej lagów na mapach gdzie różnych eventów jest więcej ;)
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