Long = 2 # Odległość skoku (liczba - jedna kratka w tilsecie)
UseVariable = false # Odległość skoku jest wyznaczana przez zmienną
VariableID = 1 # ID powyższej zmiennej
Cooldown = 30 # Odstęp między skokami, czyli po jakim czasie można ponownie
# skoczyć (w klatkach animacji)
end
class Game_Player
alias ojsinitialize initialize
attr_accessor :jump_cooldown
def initialize
ojsinitialize
@jump_cooldown = OJS::Cooldown
end
def jump_direction
direcao = []
if OJS::UseVariable
long = $game_variables[OJS::VariableID]
else
long = OJS::Long
end
case @direction
when 2 # Para Trás / Back
direcao[0] = 0; direcao[1] = 1
when 4 # Esquerda / Left
direcao[0] = -1; direcao[1] = 0
when 6 # Direita / Rigth
direcao[0] = 1; direcao[1] = 0
when 8 # Frente / Up
direcao[0] = 0; direcao[1] = -1
end
direcao[0] = direcao[0] * long; direcao[1] = direcao[1] * long
return direcao
end
def jump_higth_pass?
dire = jump_direction
to_verify = []
case @direction
when 2
to_verify = [@x, @y]
when 4
to_verify = [@x - 1, @y - 1]
when 6
to_verify = [@x + 1, @y - 1]
when 8
to_verify = [@x, @y - 2]
end
id = $game_map.data[to_verify[0], to_verify[1], 2]
return false if id == nil
pass = $game_map.passages[id]
if pass == 22
return false
end
return true
end
def event_passable?(x, y)
for event in $game_map.events_xy(x, y)
return false if event == nil
pass = event.page.priority_type
return false if pass == 1
end
return true
end
def jump_foward
if @jump_cooldown == 30
@jump_cooldown = 0
direcao = jump_direction
jump(direcao[0], direcao[1])
end
end
end
class Scene_Map
alias ojsupdate update
def update
ojsupdate
unless $game_message.visible
update_jump_player
end
unless $game_player.jump_cooldown == 30
$game_player.jump_cooldown += 1
end
end
def update_jump_player
player = $game_player
direct = player.jump_direction
x = player.x + direct[0]
y = player.y + direct[1]
if $game_switches[OJS::OnOffSwitch] == true
if player.map_passable?(x, y) && player.jump_higth_pass? && player.event_passable?(x, y)
if Input.trigger?(OJS::Input)
$game_player.jump_foward
$game_party.steps += OJS::Long
end
elsif Input.trigger?(OJS::Input)
if OJS::Sound == true
Sound.play_buzzer
end
end
end
end
end
class Game_Party
attr_accessor :steps
end
class Game_Map
attr_reader :map
end
class Game_Event < Game_Character
attr_reader :event
attr_reader :page
end
Demo
Screenshot
niepotrzebne
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Czw 12 Lis, 2009 00:57
W takim razie w demie otwórz plik Game.rvproj za pomocą notatnika i zmień wersję z 1.02 na 1.00 (chyba że to już problem polskiej wersji - po prostu dopasuj wersję dema do swojego mejkera) Powinno wtedy Tobie demo odpalić, bez problemu będziesz mógł podejrzeć projekt
PS A co do CTRL - wspomnianą przez Ciebie funkcję ma tylko w teście gry. Normalnie w grze przez ściany przechodzić nie można.
nie zaraz zobacze a moze byc ten blad przez to ze mam skrypt walka w czasie rzeczywistym ??
[ Dodano: Pon 15 Lut, 2010 15:12 ]
tam nie moge tego zobaczyc bo tam nie ma skryptu z walka w czasie rzeczywistym ;/
[ Dodano: Pon 15 Lut, 2010 15:23 ]
to co poradzisz Sobie z tym ??
[ Dodano: Pon 15 Lut, 2010 15:50 ]
ayena i jeszcze chcialbym dodac ze on sie tylko nieraz wyswietla nie zawsze ale najczesciej po zabiciu kolesi z charatkters o nazwie Evil ;/
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