Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Kurs skryptowania #1
Autor Wiadomość
PaKiTos 




Preferowany:
RPG Maker 2003

Ranga RM:
2 gry

Pomógł: 16 razy
Dołączył: 05 Lis 2009
Posty: 359
Skąd: spytaj innych
  Wysłany: Sob 05 Maj, 2012 14:25
Kurs skryptowania #1
Witam ;-) Skoro tutaj jesteś, zapewne chcesz się nauczyć skryptować. Skryptowanie nie jest takie trudne, gdy się je opanuje. No ale dobra, przejdźmy do poradnika.

Ta część poradnika nauczy cię:

  • Usuwać komendy walki
  • Kontrolować widoczność komend walki za pomocą przełącznika


Zaczynamy!
Uruchamiamy Rpg Makera VX Ace, otwieramy nasz projekt testowy i naciskamy F11. Widzimy listę różnych windowów, scenesów i innych nieznanych rzeczy. Chcemy zablokować niektóre komendy walki. W tym celu musimy poszukać Window_ActorCommand.
PODPOWIEDŹ!
Spoiler:

Szukaj w pobliżu windowów związanych z walką.


Naszym oczom ukazuje się kod:
Spoiler:

Kod:
class Window_ActorCommand < Window_Command
  def initialize
    super(0, 0)
    self.openness = 0
    deactivate
    @actor = nil
  end
  def window_width
    return 128
  end
  def visible_line_number
    return 4
  end
  def make_command_list
    return unless @actor
    add_attack_command
    add_skill_commands
    add_guard_command
    add_item_command
  end
  def add_attack_command
    add_command(Vocab::attack, :attack, @actor.attack_usable?)
  end
  def add_skill_commands
    @actor.added_skill_types.sort.each do |stype_id|
      name = $data_system.skill_types[stype_id]
      add_command(name, :skill, true, stype_id)
    end
  end
  def add_guard_command
    add_command(Vocab::guard, :guard, @actor.guard_usable?)
  end
  def add_item_command
    add_command(Vocab::item, :item)
  end
  def setup(actor)
    @actor = actor
    clear_command_list
    make_command_list
    refresh
    select(0)
    activate
    open
  end
end


Odpowiada on za komendy postaci w walce, np. atak, obrona, przedmioty... Jeśli na przykład nie chcemy mieć w swojej grze komendy obrony, kasujemy linijkę tworzącą ją. Najpierw musimy znaleźć taki kawałek kodu:
Kod:
  def make_command_list
    return unless @actor
    add_attack_command
    add_skill_commands
    add_guard_command
    add_item_command

Jeśli znasz się na angielskim, łatwo się domyślisz, co do czego służy.
PODPOWIEDŹ!
Spoiler:

attack = atak, skill = zdolność, guard = obrona, item = przedmiot


Czas usunąć komendę obrony. W tym celu usuwamy taki oto kawałek kodu:
Kod:
add_guard_command

Jeśli wszystko zrobiliśmy dobrze i uruchomimy grę, zauważymy brak komendy obrony podczas walki. Ale usunięcie komendy to połowa sukcesu, teraz nauczmy się kontrolować jej widoczność przełącznikiem.
Interesuje nas teraz komenda ataku. Chcemy kontrolować jej widoczność przełącznikiem nr. 1. W tym celu użyjmy warunku (if).
Przełącznik może być włączony(true) albo wyłączony(false). Użyjmy tej wiedzy dla kontrolowania komendy. Nad kawałkiem kodu:
Kod:
add_attack_command

dodajmy warunek:
Kod:
if $game_switches[1] == true

Nie zadziała, bo zapomnieliśmy zakoczyć warunek słówkiem end.
A więc pod linijką dodającą komendę ataku dodajemy jeszcze jedną. Wpisujemy do niej tylko słówko end.
Jeśli wszystko poszło pomyślnie, komenda ataku zostanie ukryta dopóki nie włączymy przełącznika nr. 1.
Nasz kod powinien wyglądać tak:
Spoiler:

Kod:
class Window_ActorCommand < Window_Command
  def initialize
    super(0, 0)
    self.openness = 0
    deactivate
    @actor = nil
  end
  def window_width
    return 128
  end
  def visible_line_number
    return 4
  end
  def make_command_list
    return unless @actor
    if $game_switches[1] == true
    add_attack_command
    end
    add_skill_commands
    add_item_command
  end
  def add_attack_command
    add_command(Vocab::attack, :attack, @actor.attack_usable?)
  end
  def add_skill_commands
    @actor.added_skill_types.sort.each do |stype_id|
      name = $data_system.skill_types[stype_id]
      add_command(name, :skill, true, stype_id)
    end
  end
  def add_guard_command
    add_command(Vocab::guard, :guard, @actor.guard_usable?)
  end
  def add_item_command
    add_command(Vocab::item, :item)
  end
  def setup(actor)
    @actor = actor
    clear_command_list
    make_command_list
    refresh
    select(0)
    activate
    open
  end
end


ĆWICZENIE!
Spoiler:

Zmień skrypt w taki sposób, żeby przełącznik nr. 2 kontrolował widocznością komendy Przedmioty.


Nie dawać na inne strony bez pozwolenia!
________________________
po co to kopiujesz? ;d
Spoiler:

Fakty:
1.Widzisz mój podpis
2.Jesteś w internecie
3.Czytasz
4.Siedzisz przy komputerze
5.Jesteś na UltimaForum
6.Twój nick to Gość


kiedys tu bylo fajniej... coz gospoda rma forever
chwala tym ktorzy nadal robia w 2k
 
 
sled 




Preferowany:
RPG Maker VXAce

Pomógł: 7 razy
Dołączył: 23 Kwi 2010
Posty: 93
Skąd: Inowrocław
Wysłany: Nie 06 Maj, 2012 09:04
Fajny poradnik-przyda się początkującym ;-) Tym bardziej że są to dosłownie podstawy w ruby
 
 
AvenCrazy 




Preferowany:
RPG Maker VX

Dołączył: 27 Lip 2011
Posty: 6
Wysłany: Wto 29 Maj, 2012 23:09
Cytat:
Skryptowanie nie jest takie trudne, gdy się je opanuje.


Cpt. Obvious on duty :D

Całkiem fajny poradnik, na pewno się przyda, kiedy w końcu zabiorę się za jakiś projekt.
 
 
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
Wysłany: Wto 17 Lip, 2012 09:55
Może w końcu napisze jakiś skrypt sam ^^
________________________



 
 
 
makerowiec64 




Preferowany:
RPG Maker 95

Pomógł: 2 razy
Dołączył: 02 Wrz 2012
Posty: 181
Skąd: się tu wziąłem?
Wysłany: Nie 18 Lis, 2012 20:21
Bardzo fajne!Jako że jestem zielony jak ogórek w skryptowaniu to się przyda.
Proszę...rób kolejne części.Dałbym ci pomógł,ale niestety nie mogę...
________________________
99 % świrów czyta mój podpis z ręką na myszce.
Nie odchylaj ręki - jest już za późno :haha:

Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
 
 
 
filiotef 




Preferowany:
RPG Maker VXAce

Dołączył: 08 Lip 2011
Posty: 29
Wysłany: Nie 21 Kwi, 2013 20:33
Świetny poradnik :zeby:
Zrobisz kolejne części :?:
________________________

 
 
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