Pomógł: 16 razy Dołączył: 05 Lis 2009 Posty: 359 Skąd: spytaj innych
Wysłany: Sob 05 Maj, 2012 15: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:
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
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