Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Otwarty przez: Yoroiookami
Pią 09 Lip, 2010 13:30
S krypt - Jump (skakanie)
Autor Wiadomość
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Pon 15 Mar, 2010 19:30
S krypt - Jump (skakanie)
Poprostu skrypt na skakanie ;] Może się komuś przyda

Autor: Huitzilopoctli
Źródoł: www.rmxp.net - Dan

Spoiler:

Kod:
# ■ Jump Script
#------------------------------------------------------------------------------
# Enables jumping around the map
# Made by: Huitzilopoctli @ rmxp.net
#------------------------------------------------------------------------------
# Press the A Input (ShiftKey) to jump
# The player will be able to jump over any passable tile, or any tile with a
# TerrainID the same as the JumpID
# The player must land on a passable tile without a solid event blocking it
# If the player can't jump the full 2 tiles, it will go 1 or, failing that, none
# To stop the player from jumping over a particular event, make the first
# command for the event a comment, containing this word: \Tall
# To create a 'tall' tile that will stop the player from jumping over it even if
# the tile below is jumpable, set the tile's id to not the JumpID or 0
#==============================================================================

#==============================================================================
# ● Customisation
#==============================================================================

JumpID = 1 # The terrain ID of the tiles which can be jumped over

#==============================================================================
# ● Game_Player
#==============================================================================

class Game_Player < Game_Character

def leap
xdir = (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
ydir = (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)

dist = 0

clear_jump = true
clear_land1 = true
e = $game_map.events[$game_map.check_event(@x + xdir, @y + ydir)]
if e
clear_jump = !(e.list[0].code == 108 && e.list[0].parameters[0] =~ "\Tall")
clear_land1 = e.through
end

clear_land2 = true
e = $game_map.events[$game_map.check_event(@x + xdir * 2, @y + ydir * 2)]
if e
clear_land2 = e.through
end

pass1 = $game_map.passable?(@x + xdir, @y + ydir, @direction)
pass2 = $game_map.passable?(@x + xdir * 2, @y + ydir * 2, @direction)

jumpid = $game_map.terrain_tag(@x + xdir, @y + ydir) == JumpID

dist = 0
if clear_jump
if clear_land2 & pass2 & (jumpid | pass1)
dist = 2
elsif clear_land1 & pass1
dist = 1
end
end

route = RPG::MoveRoute.new
route.list.clear
route.list.push(RPG::MoveCommand.new(37))
route.list.push(RPG::MoveCommand.new(14, [xdir * dist, ydir * dist]))
route.list.push(RPG::MoveCommand.new(38))
route.list.push(RPG::MoveCommand.new(0))
route.repeat = false
$route = route

Audio.se_play("Audio/SE/015-jump01")
$game_player.force_move_route(route)
end

alias update_primary update
def update
update_primary

leap if Input.trigger?(Input::A) && !moving?
end

end

 
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Pon 15 Mar, 2010 20:32
Fajny skrypt. Pozwoliłem sobie go przetłumaczyć.
Spoiler:

Kod:
#==============================================================================
# Jump Script by Dan
#------------------------------------------------------------------------------
# Temat znajduje się na stronie www.rmxp.pl
#------------------------------------------------------------------------------
# Aby skoczyć naciśnij A, czasami nie działa przycisk A, więc użyj Z.
#==============================================================================

#==============================================================================
# Konfiguracja
#==============================================================================

JumpID = 1 

#==============================================================================
#Game_Player
#==============================================================================

class Game_Player < Game_Character

def leap
xdir = (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
ydir = (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)

dist = 0

clear_jump = true
clear_land1 = true
e = $game_map.events[$game_map.check_event(@x + xdir, @y + ydir)]
if e
clear_jump = !(e.list[0].code == 108 && e.list[0].parameters[0] =~ "\Tall")
clear_land1 = e.through
end

clear_land2 = true
e = $game_map.events[$game_map.check_event(@x + xdir * 2, @y + ydir * 2)]
if e
clear_land2 = e.through
end

pass1 = $game_map.passable?(@x + xdir, @y + ydir, @direction)
pass2 = $game_map.passable?(@x + xdir * 2, @y + ydir * 2, @direction)

jumpid = $game_map.terrain_tag(@x + xdir, @y + ydir) == JumpID

dist = 0
if clear_jump
if clear_land2 & pass2 & (jumpid | pass1)
dist = 2
elsif clear_land1 & pass1
dist = 1
end
end

route = RPG::MoveRoute.new
route.list.clear
route.list.push(RPG::MoveCommand.new(37))
route.list.push(RPG::MoveCommand.new(14, [xdir * dist, ydir * dist]))
route.list.push(RPG::MoveCommand.new(38))
route.list.push(RPG::MoveCommand.new(0))
route.repeat = false
$route = route

Audio.se_play("Audio/SE/015-jump01") #Dźwięk przy skoku
$game_player.force_move_route(route)
end

alias update_primary update
def update
update_primary

leap if Input.trigger?(Input::A) && !moving?
end

end

________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
Ostatnio zmieniony przez Czeliosss Nie 18 Kwi, 2010 17:51, w całości zmieniany 2 razy  
 
 
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Pon 15 Mar, 2010 20:33
Zapomniałem dodać - skacze się shiftem ;p
________________________
Quantino
 
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Pon 15 Mar, 2010 20:41
Cytat:
skacze się shiftem
Nie tylko. [quote]Aby skoczyć naciśnij A, czasami nie działa przycisk A, więc użyj Z.
Pzdr.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
Ostatnio zmieniony przez Czeliosss Nie 18 Kwi, 2010 17:51, w całości zmieniany 1 raz  
 
 
kamcio22 



Preferowany:
RPG Maker XP

Dołączył: 21 Mar 2010
Posty: 5
Skąd: Warszawa
Wysłany: Nie 21 Mar, 2010 16:39
Mogę powiedzieć że fajne ;p, a jak można zmienić muzyczkę skoku na inną?.
________________________
Mówię poprawnie po polsku.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 21 Mar, 2010 16:41
Kod:
Audio.se_play("Audio/SE/015-jump01")

Zmień '015-jump01' na inny plik z folderu Audio/SE
________________________


 
 
 
HESEE 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 31 Mar 2010
Posty: 145
Wysłany: Pon 10 Maj, 2010 18:54
A da radę tak zrobić aby on przeskakiwał drzewo leżące?
________________________
http://www.poomoc.pl/
Kilka kliknięć a pomożesz innym!
Czy naprawdę to jest duża strata czasu?
W ten sposób pomożesz innym!

Pomagam bezinteresownie!
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pon 10 Maj, 2010 23:16
HESEE, da radę. Wystarczy, że wejdziesz w bazę danych, wybierzesz zakładkę Tilesets, znajdziesz tileset, który chcesz użyć, wciśniesz przycisk 'Terrain Tag' (ten na samym dole), ustawisz tag jakiegoś elementu na 1.
________________________


 
 
 
HESEE 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 31 Mar 2010
Posty: 145
Wysłany: Wto 11 Maj, 2010 06:21
Dzięki ty to zawsze pomożesz.
________________________
http://www.poomoc.pl/
Kilka kliknięć a pomożesz innym!
Czy naprawdę to jest duża strata czasu?
W ten sposób pomożesz innym!

Pomagam bezinteresownie!
 
 
 
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Sro 02 Cze, 2010 14:59
Fajny skrypcik, na pewno użyję!
Mały a cieszy :-)

@EDIT
użyłem :-)
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
 
 
 
poko67 




Preferowany:
RPG Maker VX

Pomógł: 6 razy
Dołączył: 21 Lis 2009
Posty: 141
Wysłany: Czw 08 Lip, 2010 23:43
e można zmienić na żeby sie np na s skakało bo mi na tamtych klawiszach się menu pojawia
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pią 09 Lip, 2010 06:47
Zamień najlepiej na CTRL. W powyższym skrypcie znajdź:
Kod:
leap if Input.trigger?(Input::A) && !moving?

i zmień na:
Kod:
leap if Input.trigger?(Input::CTRL) && !moving?
________________________


 
 
 
poko67 




Preferowany:
RPG Maker VX

Pomógł: 6 razy
Dołączył: 21 Lis 2009
Posty: 141
Wysłany: Pią 09 Lip, 2010 08:35
dzięksiaki

[ Dodano: Pią 09 Lip, 2010 09:40 ]
czy da się zablokować bo jak już zmieniłem klawisz skakania na CTRL a ale jak go przytrzymam to mogem chodzić po wszytkikm...Da się to zablokować...?? :cry:
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Pią 09 Lip, 2010 10:26
# To stop the player from jumping over a particular event, make the first
# command for the event a comment, containing this word: \Tall
# To create a 'tall' tile that will stop the player from jumping over it even if
# the tile below is jumpable, set the tile's id to not the JumpID or 0


Czyli żeby zatrzymać gracza przed skakaniem nad określonymi zdarzeniami, zrób pierwszą ?komendę? dla zdarzenia jako komentarz(comment) który zawiera słowo: \Tall
Żeby stworzyć 'tall' tile który zatrzyma gracza przed skakaniem nad tym, nawet jeżeli tile poniżej jest 'skokliwy'(coś na co można wskoczyć), ustaw ID tile'a na 0

Nie pytaj, bo sam ledwo rozumiem, to chyba niestety działa tylko na wydarzenia. :<
==============================
# The player will be able to jump over any passable tile, or any tile with a
# TerrainID the same as the JumpID


Gracz będzie zdolny do skoku nad tile możliwym do przejścia, lub każdym tile który ma ustawione ID Terenu, na takie samo jakie ma ID Skoku.

Czyli jeżeli zmienisz ID terenu na inne, to chyba nie będzie mógł po tym skakać. :)


Dla mnie działa, gracz skacze pod drzewem, a nie nad nim :P
A jeżeli nie o to chodziło, to kurcze sam nie wiem...
(Z góry przepraszam za to krzywe i niezrozumiałe tłumaczenie :mrgreen: )

EDIT:
Widać też że gracz nie może skakać po przedmiotach zablokowanych(X)
 
 
poko67 




Preferowany:
RPG Maker VX

Pomógł: 6 razy
Dołączył: 21 Lis 2009
Posty: 141
Wysłany: Pią 09 Lip, 2010 12:58
w sumie dzięki za to że chciało ci się odpisać sory ale nie o to chodzi
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene