Pomyślałem, że zmieszczę wszystko w jednym temacie.
Ragnarok icons:
Spoiler:
Info:
Są to ikony zripowane z ragnaroka. Wszystko ściągałem po kolei z tej strony, potem renamowałem (prefixy, np. 'Helmet ', 'Dagger '), a na koniec konwertowałem z .gif na .png.
Całość waży 1mb, mam nadzieję że się podoba ;). W sumie jest ~1000 ikonek.
Są tutaj wszystkie bronie i zbroje, jedzenie, questowe itemy itp.
Być może ktoś już kiedyś przystosowywał to pod rmxp =p, nie wiem.
Pierwsza część <-- bronie, zbroje itp
Druga część <-- jedzenie, kamienie itp
Sample:
Własne pracki:
Spoiler:
Naruto characters:
Spoiler:
Template by Cerulean Skye in style of Naruto PSX here.
(dwa pierwsze mają standardowe nogi, reszta nieco na styl rtp)
Wyświetlanie ikonek komend.
Spoiler:
[MOD]
Na początek trzeba stworzyć funkcje "wyswietlanie ikon" w Window_Command. A więc:
1. Wchodzimy do zakładki Window_Command.
2. Przed ostatnim 'end' wklejamy:
Kod:
def wyswietlanie_ikon
for i in 0...@commands.size
bitmap = RPG::Cache.picture("wybor " + i.to_s)
self.contents.blt(100, i*32 + 4, bitmap, Rect.new(0, 0, 24, 24))
end
end
Po kolei:
def wyswietlanie_ikon --> zaczyna funkcje wyswietlanie_ikon w Window_Command (klasie odpowiadajacej za okno wyboru)
for i in 0...@commands.size --> rozpoczyna pętlę, która powtarza się tyle razy, ile jest komend w oknie
bitmap = RPG::Cache.picture("wybor " + i.to_s) --> tworzy w pamięci rgss obrazek (picture) o nazwie "wybor numer_komendy".png/.bmp, np. dla pierwszej komendy (atak) będzie to obrazek "wybor 0" a dla drugiej komendy (obrona) będzie to obrazek "wybor 1" itp, aż do numeru 3.
self.contents.blt(100, i*32 + 4, bitmap, Rect.new(0, 0, 24, 24)) --> pokazuje obrazek o wymiarach 24x24 w miejscu x = 100, czyli po prawej stronie okienka.
2. Drugi krok. Wchodzimy do Scene_Battle 1. Odszukujemy:
Kod:
update
i pod tym wklejamy:
Kod:
@actor_command_window.wyswietlanie_ikon
Kod ten wywołuje wcześniej napisaną funkcję, czyli - tworzy obrazki ikon.
3. Klikamy 'Apply'. Koniec =].
Tak więc teraz (dla powtórzenia), podczas walki, obok nazwy 'atak' wyswietli się obrazek 'wybor 0.png', a obok nazwy 'obrona' wyswietli sie obrazek 'wybor 1.png' itp.
Przykład efektu:
\/ Dosyć zawiłe i nie za dobrze napisane, ale może się komuś przyda.
'Wjeżdżanie' okienek w walce.
Spoiler:
[MOD]
Dla okna PartyCommand (fight/escape)
1. Najpierw musimy sprawić, by przy wyświetlaniu okna pojawiało się ono 'poza' ekranem (by potem na niego 'wjechać'). W tym celu wchodzimy w Window_PartyCommand i wyszukujemy w nim:
Kod:
def initialize
super(0, 0, 640, 64)
I zamieniamy linijkę "super(0, 0, 640, 64)" na:
Kod:
super(0, -64, 640, 64)
2. Teraz samo 'wjeżdżanie' okna. Wchodzimy do Scene_Battle 2 - odnajdujemy w nim:
Kod:
def update_phase2
I pod tym wklejamy:
Kod:
if @party_command_window.y < 0
speed=5
@party_command_window.y=[@party_command_window.y+speed, 64].min
end
Dzięki temu przy każdym odświeżeniu ekranu (update) rmxp będzie sprawdzał, czy okno jest 'za' ekranem, i wprowadzał je do środka. Oczywiście liczbę 5 można zwiększyć. Dzięki funkcji .min program wybierze liczbę mniejszą z tych dwóch, więc okienko nie wyjedzie za daleko niezależnie od prędkości.
3. Teraz 'chowanie się' okna. Wchodzimy do Scene_Battle 3. Odnajdujemy w nim:
Kod:
def phase3_setup_command_window
A pod tym szukamy:
Kod:
@party_command_window.visible = false
I kasujemy to "@party_command_window.visible = false".
4. Zjeżdżamy trochę niżej (też Scene_Battle 3) do:
Kod:
def update_phase3
I pod tym wklejamy:
Kod:
if @party_command_window.y > -64
speed=5
@party_command_window.y = [@party_command_window.y-speed, -64].max
else
@party_command_window.visible = false
end
Sprawdza to przy kazdym odświeżaniu czy okno jest jeszcze na ekranie i chowa je poza niego. Liczbę 5 można zamienić na jakąkolwiek inną.
5. Klikamy 'apply'. Koniec ;)
Dla okna Actor_Command (komendy walki)
Teraz czego nas troszkę trudniejsze zadanie. Żeby niezależnie gdzie będzie okienko (a położenie zmienia się wraz ze zmianą bohatera) chowało się i wjeżdżało tak samo długo, nie użyjemy stałej liczby (użytej wcześniej w zmiennej 'speed'), tylko podzielimy pozostałą do przebycia odległość przez 2 :).
1. Wchodzimy do Scene_Battle 1 i odszukujemy:
Kod:
def main
Wklejamy pod tym:
Kod:
@docelowe_x = -160
Ta zmienna przyda się nam później, przy wsuwaniu/wysuwaniu okna.
2. Odszukujemy (dalej w Scene_Battle 1)
Kod:
def update
I wklejamy pod tym:
Kod:
if @actor_command_window.x < @docelowe_x
@actor_command_window.x = [@actor_command_window.x+(@docelowe_x-@actor_command_window.x)/2,@docelowe_x].min
elsif @actor_command_window.x > @docelowe_x
@actor_command_window.x = [@actor_command_window.x-(@actor_command_window.x-@docelowe_x)/2,@docelowe_x].max
end
if @actor_command_window.x-640 > 160
@actor_command_window.x = -160
@docelowe_x = -160
end
Kod ten sprawdza czy okno jest we właściwym miejscu - jeśli nie to przesuwa je tam gdzie trzeba. "/2" można zmienić na inną liczbę (im większa tym wolniej okno będzie się przesuwało).
3. W Scene_Battle 3 odnajdujemy:
Kod:
def phase3_setup_command_window
Kilka linijek niżej jest:
Kod:
@actor_command_window.x = @actor_index * 160
Zmieniamy te "@actor_command_window.x = @actor_index * 160" na:
Kod:
@docelowe_x = @actor_index * 160
Dzięki temu przy zmianie aktywnej postaci (i jej komend) okno przesunie się w odpowiednie miejsce, zamiast od razu się tam pojawiać.
4. W Scene_Battle 4 pod
Kod:
def start_phase4
Odszukujemy:
Kod:
@actor_command_window.visible = false
I zmieniamy to "@actor_command_window.visible = false" na
Kod:
@docelowe_x = 850
Dzięki temu po wybraniu akcji dla ostatniej postaci, okno wyjedzie poza ekran, po prawej stronie.
5. Klikamy 'apply'. Koniec ;)
Modyfikacja UMS
Spoiler:
Modyfikacja UMS, automatycznie dodająca do znaków interpunkcyjnych odpowiadające im przerwy. Skrypt może przeszkadzać przy używaniu skrótów z kropkami, ale na pewno rozmowy będą wyglądały schludniej :) (w trybie one_letter_at_time). Wkleić pod UMSem.
Kod:
#==============================================================================
# ** Interpreter (part 2)
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# * Show Text
#--------------------------------------------------------------------------
alias old_command_101 command_101
def command_101
old_command_101
$game_temp.message_text.gsub!('\'', '\'\p[1]')
$game_temp.message_text.gsub!('\"', '\"\p[2]')
$game_temp.message_text.gsub!('-', '-\p[4]')
$game_temp.message_text.gsub!(',', ',\p[5]')
$game_temp.message_text.gsub!(';', ';\p[7]')
$game_temp.message_text.gsub!('.', '.\p[10]')
$game_temp.message_text.gsub!('!', '!\p[15]')
end
end
Chmurki statusów.
Spoiler:
Zatrucie.
Ślepota.
Sen.
Ociężałość.
Cisza.
Berserk.
WT Char Maker
Spoiler:
[size=]White Ties Character Maker v1.5[/size]
Robiąc targ, karczme czy jakąkolwiek zatłoczoną lokację warto pamiętać o zróżnicowaniu charactersów npc. W rtp jest to dosyć proste, bo podstawowych charów jest dużo, nie mówiąc już o ogromie tych 'z neta'. Z WT jest odwrotnie =p, trudno nawet o recolory, więc pomyślałem że sobie to jakoś ułatwię. Powycinałem wszystkie zasoby z podstawowego WT (pasujące do template doroslego mezczyzny)+kilka_przerobek i wrzuciłem do character makera by Saphiro. Mam nadzieję że komuś się przyda
Creditsy dla:
Saphiro - za Character Maker XP
Shiro - za... white ties
Despain v1 - za jednego chara
Szalony Ivan - za jego wspaniałe charasy
Phillo - za jego wspaniałe charasy
Ewentualnie dla Sabikku, za pozbieranie, powycinanie i dopasowanie zasobów do Character Makera XP.
Uwagi:
- skończone chary najlepiej nie dawać od razu do gry , bowiem niektóre kombinacje koszul+spodni robią małe, jedno-pixelowe, niewyeliminowalne błędy, które najlepiej poprawić ręcznie;
- z bootsami trzeba trochę uważać, bo nie wszystkie do wszystkiego pasują ;
- przy shirtach z szatami/pelerynami nie dawajcie glovesów (rękawic) bo będzie brzydko;
- brody i wąsy dałem do 'ears' , bo 3 ostatnie kategorie mi nie dzialaly ^^ (w koncu to beta);
''Ewentualne błędy proszę zgłaszać na pw.
Kilka rzeczy nieco się rozjechało, ale powinno działać.
34. Nie powinno się cytować długiej na dwie strony wypowiedzi tylko po to, by dopisać "Zgadzam się!". Cytujmy jedynie krótkie fragmenty, mające przypomnieć, o co chodziło w cytowanej wypowiedzi.
Prócz krasnali (bo to przeróbki) cała reszta jest moja. Nie znajdziesz je nigdzie poza moimi postami - choć zdarzyło się kilku na zagranicznych forach podających je jako swoje zasoby. Tak czy inaczej zarzuty bezpodstawne, dopóki nie podasz konkretnego linka :).
[ Dodano: Pon 09 Sie, 2010 21:12 ]
Specyficzny Battle System stworzony przeze mnie dwa lata temu, znalazłem stary upload :). Rozwijany nie będzie na pewno, tylko mam mały sentyment, bo robiłem go pare tygodni (na zdarzeniach, tnie jak cholera).
Automatyczna zmiana grafiki podczas skakania - jeśli dla chara "xxx" znajdzie się grafika "xxx jumping", zostanie ustawiona podczas skoku. Np. dla chara "marek" będzie to "marek jumping". Brak grafiki nie wywali błędu.
Spoiler:
Kod:
# ==========================================================================
# Zmiana grafiki podczas skakania.
# ==========================================================================
class Game_Character
alias kupa_update_jump update_jump
def update_jump
kupa_update_jump
if jumping?
if @character_name == @character_name.gsub(/ jumping/, '')
if File.exist?("Graphics\\Characters\\"+@character_name.to_s+" jumping.png")
@character_name += " jumping"
end
end
else
@character_name = @character_name.gsub(/ jumping/, '')
end
end
end
Ustabilizowanie encounter rate na wszystkich mapach - na wszystkich mapach encounter rate będzie identyczny, ustawiony w skrypcie.
Spoiler:
Kod:
# ==========================================================================
# Ustabilizowanie encounter step na wszystkich mapach.
# ==========================================================================
class Game_Map
def encounter_step
return 21
end
end
Programowanie jest moją pasją. Programuję w C, C++, C#, Javie i Delphi. Jeśli czegoś porzebujesz (związanego z tymi językami), śmiało możesz pisać na PW.
Ostatnio zmieniony przez Nhadala Nie 05 Lut, 2012 09:55, w całości zmieniany 2 razy
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