Rower a system pływania
Aktualny czas: 16-10-19, 09:18 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Odpowiedz 
[XP] Rower a system pływania
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #1
Rower a system pływania

Witajcie.
Korzystam z skryptu na pływanie w tłumaczeniu Ayene i pojawił się pewien problem. Otóż jeden z testujących moją grę zauważył, że jest on niekompatybilny z systemem roweru zrobionego na zdarzeniach. Chodzi o to, że postać zamiast wchodzić do wody w grafice do tego przewidzianej, jeździ sobie na wodzie rowerem. Próbowałem to naprawić poprzez zrobienie dwóch grafik z dodatkiem "-SWIM" jednej kiedy postać w momencie wchodzenia do wody jest już na rowerze (PostaćBike-SWIM) i drugą zwykłą, kiedy tylko chodzi (Postać-SWIM). Przyniosło to połowiczny rezultat, gdyż owszem, postać na rowerze weszła do wody i uzyskała grafikę pływającą. Niestety przy wyjściu z wody miała prędkość przewidzianą dla roweru, a grafikę pieszego. Niestety wyjście z wody w tym skrypcie, a nie zrobione na zdarzeniach, toteż nie wiem, co jest nie tak.
Oto skrypt:
#--------------------------------------------------------------------------
# System Pływania
# Autorzy: Amaranth & MCgamer
# Tłumaczenie i poprawki: Ayene
#--------------------------------------------------------------------------
# Instalacja: Umieść skrypt nad Main
#--------------------------------------------------------------------------
# Grafikę postaci pływającej umieść w folderze Graphics/Characters.
# Nazwa pliku to nazwa grafiki domyślnej postaci + '-SWIM'.
# Przykładowo:
# Gdy postać ma przyporządkowaną grafikę o nazwie Aurora,
# to nazwa pliku z animacją pływania powinna być Aurora-SWIM
#--------------------------------------------------------------------------
# true / false
BLOKADA_MENU = true  # <- wyłącza możliwość wejścia do menu podczas pływania
BLOKADA_ZAPISU = true # <- wyłącza możliwość zapisu gry podczas pływania

#--------------------------------------------------------------------------
# Game_Map
#--------------------------------------------------------------------------
class Game_Map
  def terrain_tag(x, y)
    if @map_id != 0
      for i in [2, 1, 0]
        tile_id = data[x, y, i]
        if tile_id == nil
          return 0
        elsif tile_id > 0
          return @terrain_tags[tile_id]
        end
      end
    end
    return 0
  end
end

#--------------------------------------------------------------------------
# Grafika pływaka
#--------------------------------------------------------------------------
$swimmers = []
graphics = []
graphics = Dir.entries("Graphics/Characters")

for file in graphics
  if file.include?('-SWIM')    
    file.gsub!(/-SWIM.*/){||''}    
    $swimmers << file
  end
end

class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :in_water                  
end
#--------------------------------------------------------------------------
# Game_Character
#--------------------------------------------------------------------------
class Game_Character
  def moving?
    check_terrain_type()        
    return (@real_x != @x * 128 or @real_y != @y * 128)    
  end
  def check_terrain_type()
    @terrain = $game_map.terrain_tag(@x, @y)    
    name = @character_name
    swim = name.match("-SWIM")
    enter_water(swim) if @terrain == 3
    exit_water(swim) if @terrain != 3
  end  
  def enter_water(swim)
    $game_temp.in_water = true
    if swim == nil and $swimmers.include?(@character_name)            
      @character_name += "-SWIM"
      $game_system.menu_disabled = BLOKADA_MENU
      $game_system.save_disabled = BLOKADA_ZAPISU        
      Audio.se_play("Audio/SE/127-Water02", 50, 100)    
      @step_anime = true
      $game_map.refresh
      return true      
    end
  end
  def exit_water(swim)
    @step_anime = false
    $game_system.menu_disabled = false
    $game_system.save_disabled = false
    $game_temp.in_water = false
    if swim != nil      
      @character_name = @character_name.chomp("-SWIM")    
      $game_map.refresh      
    end
  end
end
Z góry dziękuję, jakby ktoś był w stanie mi tutaj pomóc, bo to trochę głupie wychodzić z wody, być pieszym, a mieć prędkość roweru. Przy czym preferowałbym nie blokować, nawet jak się da, wchodzenia do wody, kiedy jest się na rowerze.
Miłego dnia.
12-09-19 11:14
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.