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