Ogłoszenie
Administracja Forum
Zamknięty przez: Agumon Sob 27 Lis, 2010 13:43
Status bohatera
Autor
Wiadomość
Agumon
Preferowany:
Ranga RM:
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda ĹlÄ
ska
Wysłany: Pon 01 Lis, 2010 18:10
Status bohatera
Witam prosiĹbym o skrypt ktĂłry modyfikuje mi status w grze. A wiÄc o co chodzi. No to tak zamieszczam screena:
Menu miaĹo by tak wyglÄ
daÄ po klikniÄciu w status i wybraniu jakiegoĹ gracza.
A teraz szczegĂłĹy:
Obrazek: Takie jakie by miaĹ imiÄ gracz to pod takÄ
nazwÄ
by trzeba go byĹo wstawiÄ do pictures Ĺźeby siÄ wyĹwietliĹ.
ImiÄ: ImiÄ bohatera
Klasa: Wojownik, Mag itp. ( WyĹwietlaĹa by siÄ klasa postaci)
Poziom: (To wiadomo)
Charakter: No to tak to by siÄ wyĹwietlaĹo w zaleĹźnoĹci od zmiennej np. zmienna 0001: by wynosiĹa -40 to byĹ by charakter zĹy a jeĹli by miaĹa np. 0 to by byĹ charakter normalne. OczywiĹcie moĹźna by to byĹo zmieniaÄ.
Paski hp i mp.: Tu teĹź wiadomo tak jak ki statusy siĹa obrona itp.
Ekwipunek: Taki jaki jest aktualni zaĹoĹźony.
Pasek EXP TeĹź wiadomo.
Aha bardzo prosiĹ bym Ĺźeby moĹźna byĹo zmieniaÄ kolor, czcionki a takĹźe ich poĹoĹźenie.
PS: To nie jest to co z tego tematu: http://www.ultimateam.pl/viewtopic.php?t=3309
PoniewaĹź tamto byĹo do jednego gracza a to jest do tylu ile ich jest w druĹźynie.
PS2: czcionka to Comic Sans MS
________________________
Sabikku
Nagrody:
Ranga RM:
Pomógł: 73 razy Dołączył: 04 Kwi 2010 Posty: 428
Wysłany: Pią 26 Lis, 2010 19:47
Kod: module Vocab
T_IMIE = "ImiÄ: "
T_KLASA = "Klasa: "
T_POZIOM = "Poziom: "
T_CHARAKTER = "Charakter: "
T_EXP = "EXP"
end
T_NAZWA_CZCIONKI = "Comic Sans MS"
T_WIELKOSC_CZCIONKI = 22
T_KURSYWA = true
T_POGRUBIENIE = true
T_WSPOLRZEDNE = {}
T_WSPOLRZEDNE[:imie] = [+0, +0]
T_WSPOLRZEDNE[:charakter] = [+0, +0]
T_WSPOLRZEDNE[:klasa] = [+0, +0]
T_WSPOLRZEDNE[:poziom] = [+0, +0]
T_WSPOLRZEDNE[:statystyki] = [+0, +0]
T_WSPOLRZEDNE[:ekwipunek] = [+0, +0]
T_WSPOLRZEDNE[:hp] = [+0, +0]
T_WSPOLRZEDNE[:mp] = [+0, +0]
T_WSPOLRZEDNE[:obrazek] = [+0, +0]
T_WSPOLRZEDNE[:exp] = [+0, +0]
T_ZLY = "ZĹy"
T_NEUTRALNY = "Neutralny"
T_DOBRY = "Dobry"
T_CHARAKTER_NUMER_ZMIENNEJ = 1
T_CHARAKTER_ZLY = -100..-50
T_CHARAKTER_DOBRY = 50..100
# ===========================================================================
class Game_Actor < Game_Battler
attr_reader :exp_list
end
# ===========================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 544, 416)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.bold = T_POGRUBIENIE
self.contents.font.italic = T_KURSYWA
self.contents.font.name = (T_NAZWA_CZCIONKI == "" ? Font.default_name : T_NAZWA_CZCIONKI)
self.contents.font.size = (T_WIELKOSC_CZCIONKI <= 0 ? Font.default_size : T_WIELKOSC_CZCIONKI)
# ImiÄ.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:imie][0], T_WSPOLRZEDNE[:imie][1], 181, 32, Vocab::T_IMIE, 0)
w = self.contents.text_size(Vocab::T_IMIE).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:imie][0]+w, T_WSPOLRZEDNE[:imie][1], 181, 32, @actor.name, 0)
# Charakter.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:charakter][0], T_WSPOLRZEDNE[:charakter][1]+32, 181, 32, Vocab::T_CHARAKTER, 0)
w = self.contents.text_size(Vocab::T_CHARAKTER).width
self.contents.font.color = normal_color
l = $game_variables[T_CHARAKTER_NUMER_ZMIENNEJ]
if T_CHARAKTER_DOBRY.include?(l)
ch = T_DOBRY
elsif T_CHARAKTER_ZLY.include?(l)
ch = T_ZLY
else
ch = T_NEUTRALNY
end
self.contents.draw_text(T_WSPOLRZEDNE[:charakter][0]+w, T_WSPOLRZEDNE[:charakter][1]+32, 181, 32, ch, 0)
# Klasa.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:klasa][0]+181,T_WSPOLRZEDNE[:klasa][1], 181, 32, Vocab::T_KLASA, 0)
w = self.contents.text_size(Vocab::T_KLASA).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:klasa][0]+181+w,T_WSPOLRZEDNE[:klasa][1], 181, 32, @actor.class.name, 0)
# Poziom.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:poziom][0]+363,T_WSPOLRZEDNE[:poziom][1], 181, 32, Vocab::T_POZIOM, 0)
w = self.contents.text_size(Vocab::T_POZIOM).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:poziom][0]+363+w,T_WSPOLRZEDNE[:poziom][1], 181, 32, @actor.level, 0)
# Statystyki.
draw_parameters(T_WSPOLRZEDNE[:statystyki][0]+288, T_WSPOLRZEDNE[:statystyki][1]+64)
# Ekwipunek.
draw_equipments(T_WSPOLRZEDNE[:ekwipunek][0]+288, T_WSPOLRZEDNE[:ekwipunek][1]+192)
# Hp / sp.
draw_actor_hp(@actor, T_WSPOLRZEDNE[:hp][0]+151, T_WSPOLRZEDNE[:hp][1]+64)
draw_actor_mp(@actor, T_WSPOLRZEDNE[:mp][0]+121, T_WSPOLRZEDNE[:mp][1]+96)
# Picture.
p = Cache.picture('Bohater '+@actor.id.to_s)
self.contents.blt(T_WSPOLRZEDNE[:obrazek][0]+120-p.width/2, T_WSPOLRZEDNE[:obrazek][1]+self.contents.height-p.height, p, Rect.new(0,0,p.width,p.height))
# Exp.
draw_exp_info(T_WSPOLRZEDNE[:exp][0]+288, T_WSPOLRZEDNE[:exp][1]+self.contents.height-48)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_parameters(x, y)
draw_actor_parameter(@actor, x, y + WLH * 0, 0)
draw_actor_parameter(@actor, x, y + WLH * 1, 1)
draw_actor_parameter(@actor, x, y + WLH * 2, 2)
draw_actor_parameter(@actor, x, y + WLH * 3, 3)
end
#--------------------------------------------------------------------------
# * Draw Equipment
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_equipments(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
for i in 0..4
draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
end
end
#--------------------------------------------------------------------------
# * Draw Experience Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.exp_s
s2 = @actor.next_rest_exp_s
s_next = sprintf(Vocab::ExpNext, Vocab::level)
self.contents.font.color = normal_color
gw = 120 * @actor.exp_s.to_i / [@actor.next_rest_exp_s.to_i, 1].max
gc1 = Color.new(213, 0, 213)
gc2 = Color.new(35, 35, 78)
self.contents.fill_rect(x, y+18, 120, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y+18, gw, 6, gc1, gc2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::T_EXP)
end
end
# ===========================================================================
Obrazki - Bohater 1, Bohater 2 itd. Ustawienia na poczÄ
tku skryptu.
Agumon
Preferowany:
Ranga RM:
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda ĹlÄ
ska
Wysłany: Pią 26 Lis, 2010 20:33
A mĂłgĹ byĹ napisaÄ jak siÄ tym obsĹuĹźyÄ?? Chodzi o charakter dobry zĹy itp. I czy jeszcze da siÄ je dodawaÄ.
@Edit:
Jest problem z expem. Nie wyĹwietla siÄ ile zostaĹo do nastÄpnego lvla
________________________
Czeliosss
Ranga RM:
Pomógł: 49 razy Dołączył: 02 Lis 2009 Posty: 661 Skąd: Wa-wa
Wysłany: Pią 26 Lis, 2010 21:14
Ĺťeby obsĹugiwaÄ siÄ charakterem to musisz operowaÄ tÄ
zmiennÄ
:
Cytat: T_CHARAKTER_NUMER_ZMIENNEJ = 1
Zamiast 1 dasz innÄ
zmiennÄ
. Jak zmienna bÄdzie na - to charakter jest zĹy, jak na + to dobry a jak zero to neutralny.
________________________ ...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...
Nie pisaÄ, bo nie odpiszÄ.
Agumon
Preferowany:
Ranga RM:
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda ĹlÄ
ska
Wysłany: Pią 26 Lis, 2010 21:24
Czeliosss napisał/a: Zamiast 1 dasz innÄ
zmiennÄ
. Jak zmienna bÄdzie na - to charakter jest zĹy, jak na + to dobry a jak zero to neutralny.
No tak tylko mi chodziĹo Ĺźebym mĂłgĹ sobie te charaktery dodawaÄ. Np poczÄ
tkowo byĹ by zly i dobry. Potem by mnie coĹ naszĹo i dodaĹbym diabelski a na koĹcu daĹ bym Anielski.
________________________
Sabikku
Nagrody:
Ranga RM:
Pomógł: 73 razy Dołączył: 04 Kwi 2010 Posty: 428
Wysłany: Pią 26 Lis, 2010 22:53
O expie caĹkiem zapomniaĹem, a co do charakteru - zrozumiaĹem, Ĺźe chcesz tylko 3. PrzerobiĹem wiÄc, ich iloĹÄ jest dowolna; dodaĹem teĹź komentarze, powinieneĹ zrozumieÄ jak to konfigurowaÄ.
Ĺap.
Spoiler:
Kod: module Vocab
T_IMIE = "ImiÄ: "
T_KLASA = "Klasa: "
T_POZIOM = "Poziom: "
T_CHARAKTER = "Charakter: "
T_EXP = "EXP"
end
# Ustawienia czcionki.
T_NAZWA_CZCIONKI = "Comic Sans MS"
T_WIELKOSC_CZCIONKI = 22
T_KURSYWA = true
T_POGRUBIENIE = true
# WspĂłĹrzÄdne napisĂłw w menu. [modtyfikator x, modyfikator y]
T_WSPOLRZEDNE = {}
T_WSPOLRZEDNE[:imie] = [+0, +0]
T_WSPOLRZEDNE[:charakter] = [+0, +0]
T_WSPOLRZEDNE[:klasa] = [+0, +0]
T_WSPOLRZEDNE[:poziom] = [+0, +0]
T_WSPOLRZEDNE[:statystyki] = [+0, +0]
T_WSPOLRZEDNE[:ekwipunek] = [+0, +0]
T_WSPOLRZEDNE[:hp] = [+0, +0]
T_WSPOLRZEDNE[:mp] = [+0, +0]
T_WSPOLRZEDNE[:obrazek] = [+0, +0]
T_WSPOLRZEDNE[:exp] = [+0, +0]
# Ustawienia charakteru.
T_CHARAKTER_NUMER_ZMIENNEJ = 1 # Zmienna, wedĹug ktĂłrej mierzony bÄdzie charakter.
T_CHARAKTER = {}
# Kolejne charaktery, wedĹug wzoru: T_CHARAKTER["Nazwa"] = zakres wartoĹci zmiennej.
T_CHARAKTER["Bardzo zĹy"] = -500...-100
T_CHARAKTER["ZĹy"] = -100...-10
T_CHARAKTER["Neutralny"] = -10...10
T_CHARAKTER["Dobry"] = 10...100
T_CHARAKTER["Bardzo dobry"] = 100...500
# ===========================================================================
class Game_Actor < Game_Battler
attr_reader :exp_list
end
# ===========================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 544, 416)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.bold = T_POGRUBIENIE
self.contents.font.italic = T_KURSYWA
self.contents.font.name = (T_NAZWA_CZCIONKI == "" ? Font.default_name : T_NAZWA_CZCIONKI)
self.contents.font.size = (T_WIELKOSC_CZCIONKI <= 0 ? Font.default_size : T_WIELKOSC_CZCIONKI)
# ImiÄ.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:imie][0], T_WSPOLRZEDNE[:imie][1], 181, 32, Vocab::T_IMIE, 0)
w = self.contents.text_size(Vocab::T_IMIE).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:imie][0]+w, T_WSPOLRZEDNE[:imie][1], 181, 32, @actor.name, 0)
# Charakter.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:charakter][0], T_WSPOLRZEDNE[:charakter][1]+32, 181, 32, Vocab::T_CHARAKTER, 0)
w = self.contents.text_size(Vocab::T_CHARAKTER).width
self.contents.font.color = normal_color
l = $game_variables[T_CHARAKTER_NUMER_ZMIENNEJ]
ch = "Nieznany"
for zakres in T_CHARAKTER.values
if zakres.include?(l)
ch = T_CHARAKTER.keys[T_CHARAKTER.values.index(zakres)]
end
end
self.contents.draw_text(T_WSPOLRZEDNE[:charakter][0]+w, T_WSPOLRZEDNE[:charakter][1]+32, 181, 32, ch, 0)
# Klasa.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:klasa][0]+181,T_WSPOLRZEDNE[:klasa][1], 181, 32, Vocab::T_KLASA, 0)
w = self.contents.text_size(Vocab::T_KLASA).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:klasa][0]+181+w,T_WSPOLRZEDNE[:klasa][1], 181, 32, @actor.class.name, 0)
# Poziom.
self.contents.font.color = system_color
self.contents.draw_text(T_WSPOLRZEDNE[:poziom][0]+363,T_WSPOLRZEDNE[:poziom][1], 181, 32, Vocab::T_POZIOM, 0)
w = self.contents.text_size(Vocab::T_POZIOM).width
self.contents.font.color = normal_color
self.contents.draw_text(T_WSPOLRZEDNE[:poziom][0]+363+w,T_WSPOLRZEDNE[:poziom][1], 181, 32, @actor.level, 0)
# Statystyki.
draw_parameters(T_WSPOLRZEDNE[:statystyki][0]+288, T_WSPOLRZEDNE[:statystyki][1]+64)
# Ekwipunek.
draw_equipments(T_WSPOLRZEDNE[:ekwipunek][0]+288, T_WSPOLRZEDNE[:ekwipunek][1]+192)
# Hp / sp.
draw_actor_hp(@actor, T_WSPOLRZEDNE[:hp][0]+151, T_WSPOLRZEDNE[:hp][1]+64)
draw_actor_mp(@actor, T_WSPOLRZEDNE[:mp][0]+121, T_WSPOLRZEDNE[:mp][1]+96)
# Picture.
p = Cache.picture('Bohater '+@actor.id.to_s)
self.contents.blt(T_WSPOLRZEDNE[:obrazek][0]+120-p.width/2, T_WSPOLRZEDNE[:obrazek][1]+self.contents.height-p.height, p, Rect.new(0,0,p.width,p.height))
# Exp.
draw_exp_info(T_WSPOLRZEDNE[:exp][0]+288, T_WSPOLRZEDNE[:exp][1]+self.contents.height-48)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_parameters(x, y)
draw_actor_parameter(@actor, x, y + WLH * 0, 0)
draw_actor_parameter(@actor, x, y + WLH * 1, 1)
draw_actor_parameter(@actor, x, y + WLH * 2, 2)
draw_actor_parameter(@actor, x, y + WLH * 3, 3)
end
#--------------------------------------------------------------------------
# * Draw Equipment
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_equipments(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
for i in 0..4
draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
end
end
#--------------------------------------------------------------------------
# * Draw Experience Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.exp_s
s2 = @actor.next_rest_exp_s
s_next = sprintf(Vocab::ExpNext, Vocab::level)
self.contents.font.color = normal_color
gw = 120 * (@actor.exp - @actor.exp_list[@actor.level]) / [@actor.exp_list[@actor.level+1], 1].max
gc1 = Color.new(213, 0, 213)
gc2 = Color.new(45, 45, 88)
self.contents.fill_rect(x, y+18, 120, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y+18, gw, 6, gc1, gc2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::T_EXP)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, WLH, @actor.next_rest_exp_s, 2)
end
end
# ===========================================================================
Agumon
Preferowany:
Ranga RM:
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda ĹlÄ
ska
Wysłany: Sob 27 Lis, 2010 13:43
DziÄki Sabikku , Ĺap pomĂłgĹ.
________________________
Nie możesz pisać nowych tematówNie możesz odpowiadać w tematachNie możesz zmieniać swoich postówNie możesz usuwać swoich postówNie możesz głosować w ankietachNie możesz załączać plików na tym forumMożesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych Wersja do druku