Jako że ostatnimi czasy zacząłem się interesować tym forum i dodatkowo potrzebuję pomocy to postanowiłem że mógłbym powrzucać trochę fajnych skryptów. Więc oglądajcie i wybierajcie. (Btw. zapewne żaden nie będzie mój, bo nie jestem pro coderem, ale jakieś drobne poprawki myślę że mogę robić w razie czego. )
Opis
Prosty skrypt pozwalający na wyświetlanie paska który pokazuje wartość zmiennej.
Autor skryptu
piejamas (znalezione na rpgmakervx.net)
Tłumaczone przeze mnie.
Screenshot
Spoiler:
Kompatybilność
Hmmmm... teoretycznie (i chyba też praktycznie) powinien chodzić ze wszystkim.
Skrypt
Spoiler:
Kod:
#===============================================================================
# Variable Gauge Display
#-------------------------------------------------------------------------------
# By piejamas
# v1.0
#===============================================================================
#
#Skrypt pozwalający wyświetlić wartość zmiennej w pasku. :D
#------------------------------------------------------------------------------
# * Tu zmieniaj :D
#------------------------------------------------------------------------------
module Gauge
#--------------------------------------------
# Variable ID
# ID zmiennej która ma być wyświetlana
VARIABLE_ID = 1
#--------------------------------------------
#--------------------------------------------
# Visible Switch
# Pasek jest widoczny jeśli ten przełącznik będzie włączony
VISIBLE_SWITCH = 1
#--------------------------------------------
#--------------------------------------------
# Ustawienie
# Czyli gdzie ma się znajdować okno ze zmienną.
X = 0
Y = 0
GAUGE_WIDTH = 120
GAUGE_HEIGHT = 6
#--------------------------------------------
#--------------------------------------------
# Gauge Max
# Maksymalna wartość która będzie wyświetlana na pasku.
GAUGE_MAX = 100
#--------------------------------------------
#--------------------------------------------
# Pokaż okno
# Pokazać okno czy też nie?
SHOW_WINDOW = true
#--------------------------------------------
#--------------------------------------------
# Text
# Tekst który będzie wyświetlany nad paskiem
TEXT = "o.o"
#--------------------------------------------
################################################################################
## Tego nie dotykaj chyba że wiesz co robisz :) ##
################################################################################
end
class Window_GaugeDisplay < Window_Base
include Gauge
#----------------------------------------------------------------------------
# * Update
#----------------------------------------------------------------------------
def update
self.visible = $game_switches[VISIBLE_SWITCH]
var = $game_variables[VARIABLE_ID]
refresh if var != @old_var
@old_var = var
end
end
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda Śląska
Wysłany: Wto 13 Lip, 2010 15:25
Ok dzięki.
[ Dodano: Wto 13 Lip, 2010 17:21 ]
Aha jeszcze jedno pytanie. Czy dało by się tak zrobić że by było 1 podłużne okienko i na nim by były 3 paski. Chodzi mi o takie coś żeby było Zmęczenie, głód i reputacja (respekt)
Agumon, znalazłem skrypt i specjalnie go spolszczyłem. Co prawda nie ma okienka, ale jak poprosisz Ayene to ci dorobi (chyba ).
Spoiler:
Kod:
=begin
================================================================================
Variable Gauges v1.1
by wltr3565
Jak to działa:
Pasek który wywołasz pokaże wartość zmiennej.
================================================================================
How to Use:
Aby pokazać pasek dla zmiennej wywołaj skrypt:
$game_system.make_new_gauge(id, color, max, x, y, width, height)
id = Id zmiennej
color = kolor paska, w tym formacie:
Color.new(czerwony, zielony, niebieski)
Max = maksymalna wartość jaką może pokazać pasek
x = pozycja x paska
y = pozycja y paska
width = szerokość paska
height = wysokość paska
Przykład:
$game_system.make_new_gauge(8, Color.new(100, 100, 100), 100, 0, 0, 50, 50)
Skrypt ten stworzy pasek dla zmiennej nr. 8 w kolorze szarym (100,100,100) o maksymalnej wartości 100, o szerokości
i wysokości 50, położony w lewym górnym rogu ekranu.
Aby zmienić pasek należy wywołać skrypt:
$game_system.gauge_list[id].cecha = nowa_wartość
id = Id zmiennej
Cecha = cecha paska (color, max, x, y, width, height)
nowa_wartość = nowa wartość wybranego elementu
Pasek może się zmieniać w czasie rzeczywistym. :)
Przykład:
$game_system.gauge_list[8].height = 416
Powyższy kod sprawi że pasek zakryje poziomo cały ekran
Aby pasek zniknął wywołaj poniższy kod:
$game_system.gauge_list[id].dispose_gauge
Dziękij temu pasek zmiennej o identyfikatorze "id" zniknie z ekranu
Przykład:
$game_system.gauge_list[8].dispose_gauge
Pasek zmiennej 8 zniknie z ekranu
================================================================================
Instalacja:
Wklej to w edytorze skryptów nad Main
================================================================================
Warunki używania:
Dodaj mnie do creditsów (wltr3565), albo nie. To twoja sprawa. Poprostu nie przywłaszczaj sobie
mojej pracy. Aczkolwiek było by miło gdybym znalazł się w creditsach (wltr3565).
================================================================================
Podziękowania:
Kuro Creator: Szef wltr3565.
================================================================================
=end
#===============================================================================
# Sprawdzanie kompatybilności
#===============================================================================
$imported = {} if $imported == nil
$imported["wltr3565's_Variable_Gauges"] = true
#===============================================================================
# Koniec sprawdzania kompatybilności
#===============================================================================
module WLTR
module VARIABLE_GAUGES
#===============================================================================
# Skonfiguruj szybkość powiększania i pomniejszania pasków. Im większa liczba,
# tym większa szybkość.
ALTER_SPEED = 3
end
end
#===============================================================================
# Dotykanie tekstu poniżej może spowodować liczne błędy. Jeśli nie znasz się na
# skryptowaniu to tego nie tykaj.
#===============================================================================
class Game_System
attr_accessor :gauge_list
alias gauges_initialize initialize
def initialize
gauges_initialize
@gauge_list = []
$gauges = []
end
def make_new_gauge(id, color, max, x, y, width, height)
@gauge_list[id] = Game_Variable_List.new(id, color, max, x, y, width, height)
end
end
class Scene_Map < Scene_Base
alias gauge_repop start
def start
gauge_repop
for i in $game_system.gauge_list
next if i == nil
i.refresh(i.id, i.color, i.max, i.x, i.y, i.width, i.height)
end
end
alias update_gauges_hud update
def update
update_gauges_hud
for i in $game_system.gauge_list
next if i == nil
i.update
end
end
alias reupdate_gauges update_transfer_player
def update_transfer_player
return unless $game_player.transfer?
reupdate_gauges
for i in $game_system.gauge_list
next if i == nil
i.refresh(i.id, i.color, i.max, i.x, i.y, i.width, i.height)
end
end
end
class Game_Variable_List
def initialize(id, color, max, x, y, width, height)
refresh(id, color, max, x, y, width, height)
end
def id
return @id
end
def id=(value)
@id = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def color
return @color
end
def color=(value)
@color = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def x
return @x
end
def x=(value)
@x = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def y
return @y
end
def y=(value)
@y = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def max
return @max
end
def max=(value)
@max = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def width
return @width
end
def width=(value)
@width = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def height
return @height
end
def height=(value)
@height = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def refresh(id, color, max, x, y, width, height)
@id = id
@color = color
@max = max
@y = y
@x = x
@width = width
@height = height
$gauges[@id] = Sprite_Variable.new(@id, @color, @max, @x, @y, @width, @height)
end
def update
return if $gauges == nil
$gauges[@id].update
end
def dispose_gauge
$gauges[@id].dispose
end
end
class Sprite_Variable < Sprite
def initialize(id, color, max, x, y, width, height)
super(Viewport.new(0, 0, 544, 416))
refresh(id, color, max, x, y, width, height)
end
def id
return @id
end
def id=(value)
@id = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def color
return @color
end
def color=(value)
@color = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def x
return @x
end
def x=(value)
@x = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def y
return @y
end
def y=(value)
@y = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def max
return @max
end
def max=(value)
@max = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def width
return @width
end
def width=(value)
@width = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def height
return @height
end
def height=(value)
@height = value
refresh(@id, @color, @max, @x, @y, @width, @height)
end
def dispose
@gauge_skin.dispose
@gauge.dispose
super
end
def update
gauge_width = @gauge.bitmap.width * $game_variables[@id] / @max
gauge_width.round
return if @gauge.disposed?
if @gauge.width < gauge_width
boost = WLTR::VARIABLE_GAUGES::ALTER_SPEED
@gauge.src_rect.width += boost
@gauge.src_rect.width = gauge_width.round if @gauge.src_rect.width > gauge_width
elsif @gauge.width > gauge_width
boost = WLTR::VARIABLE_GAUGES::ALTER_SPEED
@gauge.src_rect.width -= boost
@gauge.src_rect.width = gauge_width.round if @gauge.src_rect.width < gauge_width
end
end
end
#===============================================================================
#
# KONIEC SKRYPTU
#
#===============================================================================
Autorem skryptu jest wltr3565 (skrypt znaleziono na rpgmakervx.net), ja go tylko przetłumaczyłem.
________________________ Aktualnie:
-Robię grę w RPG Makerze VX (nie wiadomo czy ukończę )
-Zastanawiam się, czy coś takiego jak graczka istnieje i jeśli tak to czemu do %*&&^$^% nędzy żadnej nie znam
Instrukcja do tamtego skryptu:
1. Wklejasz nad Main (bla bla bla)
2. Tworzysz nowe zdarzenie
3. W zdarzeniu wybierasz wywołaj skrypt i wpisujesz:
$game_system.make_new_gauge(id, Color.new(r, g, b), max, x, y, width, height)
id - zamieniasz na numer zmiennej
Color.new(r, g, b) - wpisujesz swoje wartości, będzie to kolor paska
max - maksymalna wartość jaką może wyświetlać ten pasek
x i y - pozycja paska na ekranie (wpisz po 0 to pojawi się w lewym-górnym rogu)
width i height - szerokość i wysokość paska (czyli jego rozmiary)
4. Włączasz grę
________________________ Aktualnie:
-Robię grę w RPG Makerze VX (nie wiadomo czy ukończę )
-Zastanawiam się, czy coś takiego jak graczka istnieje i jeśli tak to czemu do %*&&^$^% nędzy żadnej nie znam
i bez zbędnych zabaw nie ma okienka i jest sam pasek + tekst
Dobra, mam problem wiem, że to prosta operacja, ale mam z nią problem, a mianowicie nie umiem przesunąć okienka. Chciałbym, aby znajdował się w prawym górnym rogu.
Cóż, już nieważne jestem wprost genialny wystarczyło zmienić położenie x na ok. 400.
________________________ Obecny projekt - Chwilowo brak
Pomógł: 6 razy Dołączył: 04 Kwi 2010 Posty: 61 Skąd: z pod wodospadu
Wysłany: Nie 15 Maj, 2011 07:53
Witam!
Wiem że odsmażam kotleta ^^ ale ten skrypt jest mi bardzo potrzebny!
zaczynajmy:
Chciałbym żeby zamiast tego napisu "Gauge" był napis "Rage".
i żeby gdy ten pasek jest pełen np. zmienna równa się 10
to żeby pokazała się animacja, postać zmieniła wygląd, a statystyki podniosły się
o 20 w górę ;]
Wiem że dużo wymagam ale mam nadzieje że jakoś mi pomożecie
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 15 Maj, 2011 10:36
By usunąć tekst, wystarczy edytować fragment konfiguracji:
Kod:
TEXT = "o.o"
Co zaś tyczy się podniesienia statystyk itd., możesz przecież otrzymać ten sam efekt ustawiając common event. Za pomocą poleceń ustaw, że jeśli wybrana zmienna równa jest tyle i tyle, to wyświetla się animacja, zmienia się wygląd postaci i podnoszą się jej statystyki.
odświeżam temat mysłem w płynie z dużą dawką wody :D ok mam pytanko . Czy dało by się ten pasek wmontować np do statystyk ? Bo nie chce mieć nawalone na ekranie a w statystykach by bardziej to pasowało . Prosił bym o pomoc gdyż po przeczytaniu całego sktyptu nic takiego nie wypatrzyłem :/
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