Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Znikające okienka z informacją
Autor Wiadomość
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Nie 22 Lip, 2012 23:10
Znikające okienka z informacją
~ Znikające okienko z informacją ~


Krótki opis:
Skrypt pozwala na wyświetlenie krótkiej informacji w oknie, które po kilku chwilach znika. Można wpisać dowolny tekst. Postać może się jednocześnie poruszać.

Autor:
Avara

Aktualizacje:
Wersja 2.0:
- możliwość pisania wiadomości mające kilka linijek
- wywołanie wiadomości za pomocą skrótu (treść wiadomości jest umieszczona w skrypcie)

Skrypt:
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|                        Znikające kienko z informacją                         |
|                                Autor:  Avara                                 |
|                                 Wersja:  2.0                                 |
|                Data ostatniej aktualizacji:  23 lipca 2012 roku              |
[------------------------------------------------------------------------------]
    Skrypt pozwala na wyświetlenie informacji w oknie, które po kilku chwilach
  znika. Można wpisać dowolny tekst. Wyświetlana jest dowolna ilość linijek
  tekstu. Postać może się jednocześnie poruszać.
    Wywołujemy okno poleceniem Scrypt:
          Av_Informacja.new(skrót do wiadomości)
      skrót do wiadomości - np. "info" (patrz linijka 50.)
    Przykładowe polecenie:
          Av_Informacja.new("info")
  Wywczas w oknie wyświetli się nam taka wiadomość:
          "Twój tekst - linijka 1.
         
          Twój tekst - linijka 3."
  bez cudzysłowia oczywiście ^^ To w jaki sposób przedstawić tekst w kilku linij-
  kach jest wytłumaczone tu w skrypcie w linijce 52.
    Jeśli chcesz dać kilka informacji jedną po drugiej, to zalecam pomiędzy nimi
  dać polecenie "Wait" ^^ Radzę również nie rozpisywać się zbytnio, gdyż gracz
  musi zdążyć przeczytać wiadomość ^^
=end
module Avara # <--- NIE TYKAĆ!
  module Informacja # <--- NIE TYKAĆ!
#[-----------------------------------------------------------------------------]
#                                KONFIGURACJA
#[-----------------------------------------------------------------------------]
    AV_INF_SZEROKOSC_OKNA = 250 # Zalecany max to 544 ^^
    AV_INF_Y_POCZATKOWE_OKNA = 100 # Początkowe położenie Y
    AV_INF_Z_OKNA = 1001 # Pierwszeństwo wyświetlania
    AV_INF_POCZATKOWA_PRZEZROCZYSTOSC_OKNA = 155 # 0 - przezroczyste;
                                                 # 255 - brak przezroczystości
    AV_INF_BEZRUCH_ILE = 80 # Ilość klatek bezruchu okienka (60 klatek na sekundę)
    AV_INF_KOLOR_LITER = Color.new(225, 225, 225, 255) # (R, G, B, przezroczystość)
    AV_INF_WINDOWSKIN = "Window.png" # Podstawowy windowskin to "Window.png"
    AV_INF_CZY_DZWIEK = false # Czy podczas wyświetlenia wiadomości ma być odegra-
                              # ny dźwięk SE? true/false
    AV_INF_SE = "Decision1" # Nazwa dźwięku SE jeśli powyższe jest "true"
    AV_INF_SE_GLOSNOSC = 80 # Głośność
    AV_INF_SE_TON = 100 # Wysokość tonu
  end # <--- NIE TYKAĆ!
end # <--- NIE TYKAĆ!

class Av_Informacja # <--- NIE TYKAĆ!
  def initialize(ktory) # <--- NIE TYKAĆ!
    skrot = []; tresc = [] # <--- NIE TYKAĆ!
    skrot[1] = "info" # Skrót dzięki któremu szybko wywołamy odpowiednią wiado-
                      # mość. Dowolny tekst zawarty w cudzysłowie.
    # Poniżej należy wpisać treść wiadomości. Znak "|" (bez cudzysłowia) dzieli
    # tekst na linijki. Okno odpowiednio się wydłuży w zależności od ilości li-
    # nijek. Tekst musi być zawarty w cudzysłowie.
    tresc[1] = "Twój tekst - linijka 1.||Twój tekst - linijka 3."
    skrot[2] = "coś"
    tresc[2] = "Przykładowy tekst."
    # Można takich wiadomości wstawić dowolną ilość. Poniżej przykład długiej
    # wiadomości, która nie mieści się (w skrypcie) w jednej linijce i gdy chcemy
    # wyświetlić wartość zmiennej.
    skrot[3] = "zmienna"
    tresc[3] = "Zmienna 10 jest równa: " + $game_variables[10].to_s + "|Twój " +
    "tekst. Twój tekst."
#[-----------------------------------------------------------------------------]
#                             KONIEC KONFIGURACJI
#       Dalej niczego nie ruszać, chyba że na własną odpowiedzialność!
#[-----------------------------------------------------------------------------]
    info = {}
    for i in 1..skrot.size
      info[skrot[i]] = tresc[i]
    end
    $av_inf_tekst = info[ktory].split(/\|/)
    $av_inf_informacja = true
    $av_inf_nowy = true
  end
end


class Scene_Map < Scene_Base
  include Avara::Informacja
  alias avara_informacja_start start
  def start
    avara_informacja_start
    @av_inf_informacja = Avara_Informacja_Okno.new
    @av_inf_informacja.visible = false
  end
 
  alias avara_informacja_terminate terminate
  def terminate
    avara_informacja_terminate
    @av_inf_informacja.dispose
    @av_inf_informacja = false
    $av_inf_klatek = 0
    $av_inf_nowy = false
  end
 
  alias avara_informacja_update update
  def update
    avara_informacja_update
    if $av_inf_informacja == true
      @av_inf_informacja.visible = true
      @av_inf_informacja.refresh
      if $av_inf_nowy == true
        @av_inf_informacja.contents_opacity = 255
        @av_inf_informacja.opacity = 255
        @av_inf_informacja.y = AV_INF_Y_POCZATKOWE_OKNA
        $av_inf_klatek = 0
        $av_inf_nowy = false
        if AV_INF_CZY_DZWIEK
          Audio.se_play("Audio/SE/" + AV_INF_SE, AV_INF_SE_GLOSNOSC, AV_INF_SE_TON)
        end
      end
      if @av_inf_informacja.contents_opacity == 0
        @av_inf_informacja.contents_opacity = 255
        @av_inf_informacja.opacity = 255
        @av_inf_informacja.y = AV_INF_Y_POCZATKOWE_OKNA
        @av_inf_informacja.visible = false
        $av_inf_informacja = false
        $av_inf_klatek = 0
      end
    end
  end
end


class Avara_Informacja_Okno < Window_Base
  include Avara::Informacja
  def initialize(x = 0, y = AV_INF_Y_POCZATKOWE_OKNA, width = AV_INF_SZEROKOSC_OKNA, height = 48)
    super(x,y,width,height)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 16
    self.back_opacity = AV_INF_POCZATKOWA_PRZEZROCZYSTOSC_OKNA
    self.x = (544 - self.width)/ 2
    self.z = AV_INF_Z_OKNA
    self.windowskin = Cache.system(AV_INF_WINDOWSKIN)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.height = $av_inf_tekst.size * 18 + 32
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = AV_INF_KOLOR_LITER
    wysokosc = 416 - AV_INF_Y_POCZATKOWE_OKNA - 32
    for i in 0...$av_inf_tekst.size
      self.contents.draw_text(0, 0 + i * 18, AV_INF_SZEROKOSC_OKNA - 32, 18,
      $av_inf_tekst[i], 1)
      break if (i * 18) > wysokosc
    end
    if $av_inf_informacja == true
      if self.contents_opacity > 0
        $av_inf_klatek += 1
      end
      if $av_inf_klatek > AV_INF_BEZRUCH_ILE and self.contents_opacity > 0
        self.contents_opacity -= 3
        self.opacity -= 3
        self.y -= 1
      end
    end
  end
end

class Game_System
  alias avara_informacja_init initialize
  def initialize
    avara_informacja_init
    $av_inf_informacja = false
    $av_inf_nowy = false
    $av_inf_tekst = " "
    $av_inf_klatek = 0
  end
end


Screeny:
Spoiler:







Instrukcja:
Instrukcja w skrypcie. Jeśli jej nie rozumiecie, tu zamieszczam dodatkową (przeczytajcie najpierw tą w skrypcie):
Spoiler:

W Konfiguracji są linijki gdzie jest "skrót[1] = ... tresc[1] = ..." i kolejne numery. Po numerze 3 zróbcie sobie tak:
Kod:
skrot[4] = "pogoda"
tresc[4] = "Piękny dzień.|Słońce świeci."

W zdarzeniu wybierzcie polecenie Script (ostatnia karta poleceń) i wpiszcie:
Kod:
Av_Informacja.new("pogoda")

Skrót zależy od Was i ma być dla Waszej wygody, a znak "|" dzieli Waszą wiadomość na 2 linijki.




~ Znikające okienko z informacją ~
~ o uzyskaniu/utracie przedmiotu/broni/zbroi ~


Krótki opis:
Skrypt pozwala na wyświetlenie krótkiej informacji w oknie, które po kilku chwilach znika. Informacja jest o zyskiwanych/traconych przedmiotach/broniach/zbrojach. Postać może się jednocześnie poruszać.

Autor:
Avara

Aktualizacje:
Wersja 2.0:
- możliwość powiadamiania o zdobyciu kilku przedmiotów jednocześnie (jeden pod drugim)

Skrypt:
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|  Znikające okienko z informacją o uzyskaniu/utracie przedmiotu/broni/zbroi   |
|                                Autor:  Avara                                 |
|                                 Wersja:  2.0                                 |
|                Data ostatniej aktualizacji:  23 lipca 2012 roku              |
[------------------------------------------------------------------------------]
    Skrypt pozwala na wyświetlenie informacji w oknie o zyskiwanych przedmio-
  tach. Okno po kilku chwilach znika. Postać może się jednocześnie poruszać.
  Może być wyświetlonych kilka przedmiotów jednocześnie.
    Wywołujemy je poleceniem Scrypt:
          Av_Przedmiot.new([czy dodajesz 1, czy dodajesz 2, itd.],
          [rodzaj 1, rodzaj 2, itd.], [id przedmiotu 1, id przedmiotu 2, itd.],
          [ile sztuk 1, ile sztuk 2, itd.])
    Nawiasy kwadratowe to tablice, w których umieszczamy dane kolejnych przed-
  miotów. Kolejne tablice są odpowiedzialne za doane o:
      czy dodajesz - true, jeśli dodajesz; false, gdy odejmujesz
      rodzaj - wpisujemy "broń" lub "zbroja" lub "przedmiot"
      id przedmiotu - id zmienianego przedmiotu
      ile sztuk - gdy większe niż 1 wyświetli np. "10x" przed nazwą przedmiotu
    Przykładowe polecenie:
          Av_Przedmiot.new([true], ["przedmiot"], [1], [10])
  wyświetli informację "Uzyskano 10x Potion."
    Jeśli chcemy wyświetlić informację o kilku przedmiotach jednocześnie (jedna
  pod drugą), to polecenie powinno wyglądać w ten sposób:
          Av_Przedmiot.new([true, false, true], ["broń", "przedmiot", "zbroja"],
          [3, 1, 2], [1, 9, 2])
    Takie polecenie wyświetli nam następującą wiadomość:
          "Uzyskano Long Spear
           Utracono 9x Potion
           Uzyskano 2x Scale Shield"
    Numer id przedmiotu oraz liczbę sztuk można wpisać w formie zmiennej, np.:
          Av_Przedmiot.new([false], ["zbroja"], [$game_variables[1]],
          [$game_variables[2]])
  Wówczas wyświetli informację, iż utracono zbroję o id równej zmiennej 1
  w liczbie sztuk o wartości zmiennej 2. 
    Jeśli chcesz dać kilka informacji jedną po drugiej, to zalecam pomiędzy nimi
  dać polecenie "Wait" ^^
=end
module Avara # <--- NIE TYKAĆ!
  module Info_Przedmiot # <--- NIE TYKAĆ!
#[-----------------------------------------------------------------------------]
#                                KONFIGURACJA
#[-----------------------------------------------------------------------------]
    AV_IP_SZEROKOSC_OKNA = 250 # Zalecany max to 544 ^^
    AV_IP_Y_POCZATKOWE_OKNA = 100 # Początkowe położenie Y
    AV_IP_Z_OKNA = 1001 # Pierwszeństwo wyświetlania
    AV_IP_POCZATKOWA_PRZEZROCZYSTOSC_OKNA = 155 # 0 - przezroczyste;
                                                # 255 - brak przezroczystości
    AV_IP_BEZRUCH_ILE = 80 # Ilość klatek bezruchu okienka (60 klatek na sekundę)
    AV_IP_KOLOR_LITER = Color.new(225, 225, 225, 255) # (R, G, B, przezroczystość)
    AV_IP_WINDOWSKIN = "Window.png" # Podstawowy windowskin to "Window.png"
    AV_IP_DODAJ_TEKST = "Uzyskano" # Tekst na początku wiadomości, gdy dodajemy
                                   # przedmiot.
    AV_IP_ODEJMIJ_TEKST = "Utracono" # Tekst na początku wiadomości, gdy usuwamy
                                     # przedmiot.
    AV_IP_CZY_DZWIEK = false # Czy podczas wyświetlenia wiadomości ma być odegra-
                             # ny dźwięk SE? true/false
    AV_IP_SE = "Decision2" # Nazwa dźwięku SE jeśli powyższe jest "true"
    AV_IP_SE_GLOSNOSC = 80 # Głośność
    AV_IP_SE_TON = 100 # Wysokość tonu
    CZY_IKONY = true # Czy mają byś wyświetlane ikony przedmiotów true/false
#[-----------------------------------------------------------------------------]
#                             KONIEC KONFIGURACJI
#       Dalej niczego nie ruszać, chyba że na własną odpowiedzialność!
#[-----------------------------------------------------------------------------]
  end
end

class Av_Przedmiot
  include Avara::Info_Przedmiot
  def initialize(dodaj, rodzaj, id, ile)
    $av_ip_tekst = []
    for x in 0...id.size
      if ile[x] > 1
        liczba = " " + ile[x].to_s + "x "
      else
        liczba = " "
      end
      if rodzaj[x] == "broń"
        rzecz = $data_weapons[id[x]].name.to_s
        $av_ip_ikony[x] = $data_weapons[id[x]]
      elsif rodzaj[x] == "zbroja"
        rzecz = $data_armors[id[x]].name.to_s
        $av_ip_ikony[x] = $data_armors[id[x]]
      elsif rodzaj[x] == "przedmiot"
        rzecz = $data_items[id[x]].name.to_s
        $av_ip_ikony[x] = $data_items[id[x]]
      end
      if dodaj[x] == true
        $av_ip_tekst[x] = AV_IP_DODAJ_TEKST + liczba + rzecz + "."
      else
        $av_ip_tekst[x] = AV_IP_ODEJMIJ_TEKST + liczba + rzecz + "."
      end
    end
    $av_ip_przedmiot = true
    $av_ip_nowy = true
  end
end


class Scene_Map < Scene_Base
  include Avara::Info_Przedmiot
  alias avara_info_przedmiot_start start
  def start
    avara_info_przedmiot_start
    @av_ip_przedmiot = Avara_Przedmiot_Okno.new
    @av_ip_przedmiot.visible = false
  end
 
  alias avara_info_przedmiot_terminate terminate
  def terminate
    avara_info_przedmiot_terminate
    @av_ip_przedmiot.dispose
    $av_ip_klatek = 0
    $av_ip_nowy = false
    $av_ip_przedmiot = false
  end
 
  alias avara_info_przedmiot_update update
  def update
    avara_info_przedmiot_update
    if $av_ip_przedmiot == true
      @av_ip_przedmiot.visible = true
      @av_ip_przedmiot.refresh
      if $av_ip_nowy == true
        @av_ip_przedmiot.contents_opacity = 255
        @av_ip_przedmiot.opacity = 255
        @av_ip_przedmiot.y = AV_IP_Y_POCZATKOWE_OKNA
        $av_ip_klatek = 0
        $av_ip_nowy = false
        if AV_IP_CZY_DZWIEK
          Audio.se_play("Audio/SE/" + AV_IP_SE, AV_IP_SE_GLOSNOSC, AV_IP_SE_TON)
        end
      end
      if @av_ip_przedmiot.contents_opacity == 0
        @av_ip_przedmiot.contents_opacity = 255
        @av_ip_przedmiot.opacity = 255
        @av_ip_przedmiot.y = AV_IP_Y_POCZATKOWE_OKNA
        $av_ip_klatek = 0
        @av_ip_przedmiot.visible = false
        $av_ip_przedmiot = false
      end
    end
  end
end


class Avara_Przedmiot_Okno < Window_Base
  include Avara::Info_Przedmiot
  def initialize(x = 0, y = AV_IP_Y_POCZATKOWE_OKNA, width = AV_IP_SZEROKOSC_OKNA, height = 48)
    super(x,y,width,height)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 16
    self.back_opacity = AV_IP_POCZATKOWA_PRZEZROCZYSTOSC_OKNA
    self.x = (544 - self.width)/ 2
    self.z = AV_IP_Z_OKNA
    self.windowskin = Cache.system(AV_IP_WINDOWSKIN)
    refresh
  end
 
  def refresh
    self.contents.clear
    ulozenie = 1
    x = 0
    wys_lin = 18
    if CZY_IKONY
      ulozenie = 0
      x = 30
      wys_lin = 26
    end
    self.height = $av_ip_tekst.size * wys_lin + 32
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = AV_IP_KOLOR_LITER
    wysokosc = 416 - AV_IP_Y_POCZATKOWE_OKNA - 32
    for i in 0...$av_ip_tekst.size
      if CZY_IKONY
        draw_icon($av_ip_ikony[i].icon_index, 2, 1 + i * 26)
      end
      self.contents.draw_text(x, 0 + i * wys_lin, AV_IP_SZEROKOSC_OKNA - 32 - x,
      wys_lin, $av_ip_tekst[i], ulozenie)
      break if (i * wys_lin) > wysokosc
    end
    if $av_ip_przedmiot == true
      if self.contents_opacity > 0
        $av_ip_klatek += 1
      end
      if $av_ip_klatek > AV_IP_BEZRUCH_ILE and self.contents_opacity > 0
        self.contents_opacity -= 3
        self.opacity -= 3
        self.y -= 1
      end
    end
  end
end

class Game_System
  alias avara_info_przedmiot_init initialize
  def initialize
    avara_info_przedmiot_init
    $av_ip_przedmiot = false
    $av_ip_nowy = false
    $av_ip_tekst = [""]
    $av_ip_klatek = 0
    $av_ip_ikony = [$data_items[1]]
  end
end


Screeny:
Spoiler:






Instrukcja:
Instrukcja w skrypcie. Jeśli jej nie rozumiecie, tu zamieszczam dodatkową (przeczytajcie najpierw tą w skrypcie):
Spoiler:

Wpiszcie w poleceniu Script:
Kod:
Av_Przedmiot.new()

I w nawiasie musicie umieścić 4 tablice - 4 nawiasy kwadratowe oddzielone przecinkami:
Kod:
Av_Przedmiot.new([], [], [], [])

Musicie teraz wpisać w pierwszy nawias "true" lub "false", czy dany przedmiot zyskaliście czy utraciliście ("true" gdy zyskany, "false" gdy stracony).
W drugi nawias kwadratowy wpiszcie rodzaj - czy to była "broń", "zbroja", czy "przedmiot". Trzeba wpisać, któreś z tych słów, nie zapominając o cudzysłowiu :!:
W trzeci wpiszcie numer id danej rzeczy.
W czwarty zaś ile sztuk tej rzeczy straciliście/zyskaliście.

Jeśli chcecie opisać tak więcej przedmiotów (np. straciliście jakiś przedmiot, ale zyskaliście jednocześnie broń), to w tych nawiasach kwadratowych wstawcie wszędzie przecinki, zróbcie spację i wpiszcie dane dla kolejnego przedmiotu.




Dodatkowe informacje:
Demo niepotrzebne.
W razie potrzeby mogę je odpowiednio zmodyfikować. Wystarczy napisać post z prośbą :aww:
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

Ostatnio zmieniony przez Avara Pon 29 Paź, 2012 22:50, w całości zmieniany 4 razy  
 
 
 
INRE 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 1 raz
Dołączył: 03 Sie 2010
Posty: 45
Wysłany: Nie 22 Lip, 2012 23:22
Całkiem ciekawy skrypcik.
Podoba mi się.
________________________

 
 
Domilos 




Preferowany:
RPG Maker VXAce

Pomógł: 2 razy
Dołączył: 16 Cze 2011
Posty: 62
Wysłany: Nie 22 Lip, 2012 23:34
Yay, czekałem na te skrypty, odkąd się dowiedziałem o nich ^.^ Ach, piękna konfiguracja. Użyję na pewno :->
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Pon 23 Lip, 2012 01:29
Właśnie sobie uświadomiłam, że instrukcja do pierwszego skryptu jest trochę myląca, dlatego ją poprawiłam. Można sobie podmienić.
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|                        Znikające kienko z informacją                         |
|                                Autor:  Avara                                 |
|                                 Wersja:  1.0                                 |
|                           Data:  22 lipca 2012 roku                          |
[------------------------------------------------------------------------------]
    Skrypt pozwala na wyświetlenie krótkiej informacji w oknie, które po kilku
  chwilach znika. Można wpisać dowolny tekst. Wyświetlana jest tylko jedna li-
  nijka tekstu. Postać może się jednocześnie poruszać.
    Wywołujemy okno poleceniem Scrypt:
          Av_Informacja.new("Twój tekst")
    Jeśli tekst nie mieści się w jednej linijce w oknie polecenia, należy wpi-
  sać go w ten sposób:
          Av_Informacja.new("Twój tekst. Twój tekst" +
          ". Twój tekst. Twój tekst. Twój tekst. ")
    W nowej linijce musimy pamiętać o ew. spacji. W oknie na mapie tekst zosta-
  nie wyświetlony w jednej linijce.
    Jeśli chcesz dać kilka informacji jedną po drugiej, to zalecam pomiędzy nimi
  dać polecenie "Wait" ^^
=end


I kolor czcionki to oczywiście "R, G, B", ale to już szczegół :roll:
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
tracersgta 




Preferowany:
RPG Maker VX

Pomógł: 45 razy
Dołączył: 10 Sty 2011
Posty: 612
Skąd: mam wiedzieć?
Wysłany: Pon 23 Lip, 2012 10:15
Czy ten skrypt został dodany ze względy na mój temat w dziale "Wsparcie"? Napisz w nim posta, z linkiem do tego tematu, to dostaniesz "Pomogła" ;-)

P.S: DZIĘKI!
________________________
I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!

Gość, jeżeli pomogłem daj "Pomógł" ;-)
 
 
 
DavShero 



Preferowany:
RPG Maker VX

Dołączył: 13 Lip 2012
Posty: 12
Wysłany: Pon 23 Lip, 2012 12:38
CO mam zrobic by wyświetliło "Good Luck" bez dodawania/usuwana przedmiotu itp. jaka komendą?
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Pon 23 Lip, 2012 12:44
Pierwszy skrypt. W zdarzeniu poleceniem Script:
Kod:
Av_Informacja.new("Good Luck")

Wystarczy przeczytać instrukcję :aww:
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
DavShero 



Preferowany:
RPG Maker VX

Dołączył: 13 Lip 2012
Posty: 12
Wysłany: Pon 23 Lip, 2012 13:49
Wyskakuje komunikat:
NameError occurred while running script

uninitalized constant Game_Interpreter::Av_Informacja
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Pon 23 Lip, 2012 13:51
A czy wrzuciłeś skrypt nad Main w skryptach :?: -.-

Poczytaj sobie ten temat: http://www.ultimateam.pl/viewtopic.php?t=1896



Aktualizacja skryptów!!!

Wprowadzone zmiany:
- małe poprawki, by oba te skrypty nie "narzucały" sobie nawzajem własnych ustawień
- możliwość odegrania SE podczas wyświetlenia wiadomości

Skrypty podmienione w pierwszym poście :aww:
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Pon 23 Lip, 2012 22:37
Wersja 2.0
~ Znikające kienko z informacją ~


Wersja:
2.0

Różnice:
- możliwość pisania wiadomości mające kilka linijek
- wywołanie wiadomości za pomocą skrótu (treść wiadomości jest umieszczona w skrypcie)

Skrypt:
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|                        Znikające kienko z informacją                         |
|                                Autor:  Avara                                 |
|                                 Wersja:  2.0                                 |
|                Data ostatniej aktualizacji:  23 lipca 2012 roku              |
[------------------------------------------------------------------------------]
    Skrypt pozwala na wyświetlenie informacji w oknie, które po kilku chwilach
  znika. Można wpisać dowolny tekst. Wyświetlana jest dowolna ilość linijek
  tekstu. Postać może się jednocześnie poruszać.
    Wywołujemy okno poleceniem Scrypt:
          Av_Informacja.new(skrót do wiadomości)
      skrót do wiadomości - np. "info" (patrz linijka 50.)
    Przykładowe polecenie:
          Av_Informacja.new("info")
  Wywczas w oknie wyświetli się nam taka wiadomość:
          "Twój tekst - linijka 1.
         
          Twój tekst - linijka 3."
  bez cudzysłowia oczywiście ^^ To w jaki sposób przedstawić tekst w kilku linij-
  kach jest wytłumaczone tu w skrypcie w linijce 52.
    Jeśli chcesz dać kilka informacji jedną po drugiej, to zalecam pomiędzy nimi
  dać polecenie "Wait" ^^ Radzę również nie rozpisywać się zbytnio, gdyż gracz
  musi zdążyć przeczytać wiadomość ^^
=end
module Avara # <--- NIE TYKAĆ!
  module Informacja # <--- NIE TYKAĆ!
#[-----------------------------------------------------------------------------]
#                                KONFIGURACJA
#[-----------------------------------------------------------------------------]
    AV_INF_SZEROKOSC_OKNA = 250 # Zalecany max to 544 ^^
    AV_INF_Y_POCZATKOWE_OKNA = 100 # Początkowe położenie Y
    AV_INF_Z_OKNA = 1001 # Pierwszeństwo wyświetlania
    AV_INF_POCZATKOWA_PRZEZROCZYSTOSC_OKNA = 155 # 0 - przezroczyste;
                                                 # 255 - brak przezroczystości
    AV_INF_BEZRUCH_ILE = 80 # Ilość klatek bezruchu okienka (60 klatek na sekundę)
    AV_INF_KOLOR_LITER = Color.new(225, 225, 225, 255) # (R, G, B, przezroczystość)
    AV_INF_WINDOWSKIN = "Window.png" # Podstawowy windowskin to "Window.png"
    AV_INF_CZY_DZWIEK = false # Czy podczas wyświetlenia wiadomości ma być odegra-
                              # ny dźwięk SE? true/false
    AV_INF_SE = "Decision1" # Nazwa dźwięku SE jeśli powyższe jest "true"
    AV_INF_SE_GLOSNOSC = 80 # Głośność
    AV_INF_SE_TON = 100 # Wysokość tonu
  end # <--- NIE TYKAĆ!
end # <--- NIE TYKAĆ!

class Av_Informacja # <--- NIE TYKAĆ!
  def initialize(ktory) # <--- NIE TYKAĆ!
    skrot = []; tresc = [] # <--- NIE TYKAĆ!
    skrot[1] = "info" # Skrót dzięki któremu szybko wywołamy odpowiednią wiado-
                      # mość. Dowolny tekst zawarty w cudzysłowie.
    # Poniżej należy wpisać treść wiadomości. Znak "|" (bez cudzysłowia) dzieli
    # tekst na linijki. Okno odpowiednio się wydłuży w zależności od ilości li-
    # nijek. Tekst musi być zawarty w cudzysłowie.
    tresc[1] = "Twój tekst - linijka 1.||Twój tekst - linijka 3."
    skrot[2] = "coś"
    tresc[2] = "Przykładowy tekst."
    # Można takich wiadomości wstawić dowolną ilość. Poniżej przykład długiej
    # wiadomości, która nie mieści się (w skrypcie) w jednej linijce i gdy chcemy
    # wyświetlić wartość zmiennej.
    skrot[3] = "zmienna"
    tresc[3] = "Zmienna 10 jest równa: " + $game_variables[10].to_s + "|Twój " +
    "tekst. Twój tekst."
#[-----------------------------------------------------------------------------]
#                             KONIEC KONFIGURACJI
#       Dalej niczego nie ruszać, chyba że na własną odpowiedzialność!
#[-----------------------------------------------------------------------------]
    info = {}
    for i in 1..skrot.size
      info[skrot[i]] = tresc[i]
    end
    $av_inf_tekst = info[ktory].split(/\|/)
    $av_inf_informacja = true
    $av_inf_nowy = true
  end
end


class Scene_Map < Scene_Base
  include Avara::Informacja
  alias avara_informacja_start start
  def start
    avara_informacja_start
    @av_inf_informacja = Avara_Informacja_Okno.new
    @av_inf_informacja.visible = false
  end
 
  alias avara_informacja_terminate terminate
  def terminate
    avara_informacja_terminate
    @av_inf_informacja.dispose
    @av_inf_informacja = false
    $av_inf_klatek = 0
    $av_inf_nowy = false
  end
 
  alias avara_informacja_update update
  def update
    avara_informacja_update
    if $av_inf_informacja == true
      @av_inf_informacja.visible = true
      @av_inf_informacja.refresh
      if $av_inf_nowy == true
        @av_inf_informacja.contents_opacity = 255
        @av_inf_informacja.opacity = 255
        @av_inf_informacja.y = AV_INF_Y_POCZATKOWE_OKNA
        $av_inf_klatek = 0
        $av_inf_nowy = false
        if AV_INF_CZY_DZWIEK
          Audio.se_play("Audio/SE/" + AV_INF_SE, AV_INF_SE_GLOSNOSC, AV_INF_SE_TON)
        end
      end
      if @av_inf_informacja.contents_opacity == 0
        @av_inf_informacja.contents_opacity = 255
        @av_inf_informacja.opacity = 255
        @av_inf_informacja.y = AV_INF_Y_POCZATKOWE_OKNA
        @av_inf_informacja.visible = false
        $av_inf_informacja = false
        $av_inf_klatek = 0
      end
    end
  end
end


class Avara_Informacja_Okno < Window_Base
  include Avara::Informacja
  def initialize(x = 0, y = AV_INF_Y_POCZATKOWE_OKNA, width = AV_INF_SZEROKOSC_OKNA, height = 48)
    super(x,y,width,height)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 16
    self.back_opacity = AV_INF_POCZATKOWA_PRZEZROCZYSTOSC_OKNA
    self.x = (544 - self.width)/ 2
    self.z = AV_INF_Z_OKNA
    self.windowskin = Cache.system(AV_INF_WINDOWSKIN)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.height = $av_inf_tekst.size * 18 + 32
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = AV_INF_KOLOR_LITER
    wysokosc = 416 - AV_INF_Y_POCZATKOWE_OKNA - 32
    for i in 0...$av_inf_tekst.size
      self.contents.draw_text(0, 0 + i * 18, AV_INF_SZEROKOSC_OKNA - 32, 18,
      $av_inf_tekst[i], 1)
      break if (i * 18) > wysokosc
    end
    if $av_inf_informacja == true
      if self.contents_opacity > 0
        $av_inf_klatek += 1
      end
      if $av_inf_klatek > AV_INF_BEZRUCH_ILE and self.contents_opacity > 0
        self.contents_opacity -= 3
        self.opacity -= 3
        self.y -= 1
      end
    end
  end
end

class Game_System
  alias avara_informacja_init initialize
  def initialize
    avara_informacja_init
    $av_inf_informacja = false
    $av_inf_nowy = false
    $av_inf_tekst = " "
    $av_inf_klatek = 0
  end
end


Screeny:
Spoiler:






~ Znikające kienko z informacją ~
~ o uzyskaniu/utracie przedmiotu/broni/zbroi ~


Wersja:
2.0

Różnice:
- możliwość powiadamiania o zdobyciu kilku przedmiotów jednocześnie (jeden pod drugim)

Skrypt:
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|  Znikające okienko z informacją o uzyskaniu/utracie przedmiotu/broni/zbroi   |
|                                Autor:  Avara                                 |
|                                 Wersja:  2.0                                 |
|                Data ostatniej aktualizacji:  23 lipca 2012 roku              |
[------------------------------------------------------------------------------]
    Skrypt pozwala na wyświetlenie informacji w oknie o zyskiwanych przedmio-
  tach. Okno po kilku chwilach znika. Postać może się jednocześnie poruszać.
  Może być wyświetlonych kilka przedmiotów jednocześnie.
    Wywołujemy je poleceniem Scrypt:
          Av_Przedmiot.new([czy dodajesz 1, czy dodajesz 2, itd.],
          [rodzaj 1, rodzaj 2, itd.], [id przedmiotu 1, id przedmiotu 2, itd.],
          [ile sztuk 1, ile sztuk 2, itd.])
    Nawiasy kwadratowe to tablice, w których umieszczamy dane kolejnych przed-
  miotów. Kolejne tablice są odpowiedzialne za doane o:
      czy dodajesz - true, jeśli dodajesz; false, gdy odejmujesz
      rodzaj - wpisujemy "broń" lub "zbroja" lub "przedmiot"
      id przedmiotu - id zmienianego przedmiotu
      ile sztuk - gdy większe niż 1 wyświetli np. "10x" przed nazwą przedmiotu
    Przykładowe polecenie:
          Av_Przedmiot.new([true], ["przedmiot"], [1], [10])
  wyświetli informację "Uzyskano 10x Potion."
    Jeśli chcemy wyświetlić informację o kilku przedmiotach jednocześnie (jedna
  pod drugą), to polecenie powinno wyglądać w ten sposób:
          Av_Przedmiot.new([true, false, true], ["broń", "przedmiot", "zbroja"],
          [3, 1, 2], [1, 9, 2])
    Takie polecenie wyświetli nam następującą wiadomość:
          "Uzyskano Long Spear
           Utracono 9x Potion
           Uzyskano 2x Scale Shield"
    Numer id przedmiotu oraz liczbę sztuk można wpisać w formie zmiennej, np.:
          Av_Przedmiot.new([false], ["zbroja"], [$game_variables[1]],
          [$game_variables[2]])
  Wówczas wyświetli informację, iż utracono zbroję o id równej zmiennej 1
  w liczbie sztuk o wartości zmiennej 2. 
    Jeśli chcesz dać kilka informacji jedną po drugiej, to zalecam pomiędzy nimi
  dać polecenie "Wait" ^^
=end
module Avara # <--- NIE TYKAĆ!
  module Info_Przedmiot # <--- NIE TYKAĆ!
#[-----------------------------------------------------------------------------]
#                                KONFIGURACJA
#[-----------------------------------------------------------------------------]
    AV_IP_SZEROKOSC_OKNA = 250 # Zalecany max to 544 ^^
    AV_IP_Y_POCZATKOWE_OKNA = 100 # Początkowe położenie Y
    AV_IP_Z_OKNA = 1001 # Pierwszeństwo wyświetlania
    AV_IP_POCZATKOWA_PRZEZROCZYSTOSC_OKNA = 155 # 0 - przezroczyste;
                                                # 255 - brak przezroczystości
    AV_IP_BEZRUCH_ILE = 80 # Ilość klatek bezruchu okienka (60 klatek na sekundę)
    AV_IP_KOLOR_LITER = Color.new(225, 225, 225, 255) # (R, G, B, przezroczystość)
    AV_IP_WINDOWSKIN = "Window.png" # Podstawowy windowskin to "Window.png"
    AV_IP_DODAJ_TEKST = "Uzyskano" # Tekst na początku wiadomości, gdy dodajemy
                                   # przedmiot.
    AV_IP_ODEJMIJ_TEKST = "Utracono" # Tekst na początku wiadomości, gdy usuwamy
                                     # przedmiot.
    AV_IP_CZY_DZWIEK = false # Czy podczas wyświetlenia wiadomości ma być odegra-
                             # ny dźwięk SE? true/false
    AV_IP_SE = "Decision2" # Nazwa dźwięku SE jeśli powyższe jest "true"
    AV_IP_SE_GLOSNOSC = 80 # Głośność
    AV_IP_SE_TON = 100 # Wysokość tonu
    CZY_IKONY = true # Czy mają byś wyświetlane ikony przedmiotów true/false
#[-----------------------------------------------------------------------------]
#                             KONIEC KONFIGURACJI
#       Dalej niczego nie ruszać, chyba że na własną odpowiedzialność!
#[-----------------------------------------------------------------------------]
  end
end

class Av_Przedmiot
  include Avara::Info_Przedmiot
  def initialize(dodaj, rodzaj, id, ile)
    $av_ip_tekst = []
    for x in 0...id.size
      if ile[x] > 1
        liczba = " " + ile[x].to_s + "x "
      else
        liczba = " "
      end
      if rodzaj[x] == "broń"
        rzecz = $data_weapons[id[x]].name.to_s
        $av_ip_ikony[x] = $data_weapons[id[x]]
      elsif rodzaj[x] == "zbroja"
        rzecz = $data_armors[id[x]].name.to_s
        $av_ip_ikony[x] = $data_armors[id[x]]
      elsif rodzaj[x] == "przedmiot"
        rzecz = $data_items[id[x]].name.to_s
        $av_ip_ikony[x] = $data_items[id[x]]
      end
      if dodaj[x] == true
        $av_ip_tekst[x] = AV_IP_DODAJ_TEKST + liczba + rzecz + "."
      else
        $av_ip_tekst[x] = AV_IP_ODEJMIJ_TEKST + liczba + rzecz + "."
      end
    end
    $av_ip_przedmiot = true
    $av_ip_nowy = true
  end
end


class Scene_Map < Scene_Base
  include Avara::Info_Przedmiot
  alias avara_info_przedmiot_start start
  def start
    avara_info_przedmiot_start
    @av_ip_przedmiot = Avara_Przedmiot_Okno.new
    @av_ip_przedmiot.visible = false
  end
 
  alias avara_info_przedmiot_terminate terminate
  def terminate
    avara_info_przedmiot_terminate
    @av_ip_przedmiot.dispose
    $av_ip_klatek = 0
    $av_ip_nowy = false
    $av_ip_przedmiot = false
  end
 
  alias avara_info_przedmiot_update update
  def update
    avara_info_przedmiot_update
    if $av_ip_przedmiot == true
      @av_ip_przedmiot.visible = true
      @av_ip_przedmiot.refresh
      if $av_ip_nowy == true
        @av_ip_przedmiot.contents_opacity = 255
        @av_ip_przedmiot.opacity = 255
        @av_ip_przedmiot.y = AV_IP_Y_POCZATKOWE_OKNA
        $av_ip_klatek = 0
        $av_ip_nowy = false
        if AV_IP_CZY_DZWIEK
          Audio.se_play("Audio/SE/" + AV_IP_SE, AV_IP_SE_GLOSNOSC, AV_IP_SE_TON)
        end
      end
      if @av_ip_przedmiot.contents_opacity == 0
        @av_ip_przedmiot.contents_opacity = 255
        @av_ip_przedmiot.opacity = 255
        @av_ip_przedmiot.y = AV_IP_Y_POCZATKOWE_OKNA
        $av_ip_klatek = 0
        @av_ip_przedmiot.visible = false
        $av_ip_przedmiot = false
      end
    end
  end
end


class Avara_Przedmiot_Okno < Window_Base
  include Avara::Info_Przedmiot
  def initialize(x = 0, y = AV_IP_Y_POCZATKOWE_OKNA, width = AV_IP_SZEROKOSC_OKNA, height = 48)
    super(x,y,width,height)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 16
    self.back_opacity = AV_IP_POCZATKOWA_PRZEZROCZYSTOSC_OKNA
    self.x = (544 - self.width)/ 2
    self.z = AV_IP_Z_OKNA
    self.windowskin = Cache.system(AV_IP_WINDOWSKIN)
    refresh
  end
 
  def refresh
    self.contents.clear
    ulozenie = 1
    x = 0
    wys_lin = 18
    if CZY_IKONY
      ulozenie = 0
      x = 30
      wys_lin = 26
    end
    self.height = $av_ip_tekst.size * wys_lin + 32
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.color = AV_IP_KOLOR_LITER
    wysokosc = 416 - AV_IP_Y_POCZATKOWE_OKNA - 32
    for i in 0...$av_ip_tekst.size
      if CZY_IKONY
        draw_icon($av_ip_ikony[i].icon_index, 2, 1 + i * 26)
      end
      self.contents.draw_text(x, 0 + i * wys_lin, AV_IP_SZEROKOSC_OKNA - 32 - x,
      wys_lin, $av_ip_tekst[i], ulozenie)
      break if (i * wys_lin) > wysokosc
    end
    if $av_ip_przedmiot == true
      if self.contents_opacity > 0
        $av_ip_klatek += 1
      end
      if $av_ip_klatek > AV_IP_BEZRUCH_ILE and self.contents_opacity > 0
        self.contents_opacity -= 3
        self.opacity -= 3
        self.y -= 1
      end
    end
  end
end

class Game_System
  alias avara_info_przedmiot_init initialize
  def initialize
    avara_info_przedmiot_init
    $av_ip_przedmiot = false
    $av_ip_nowy = false
    $av_ip_tekst = [""]
    $av_ip_klatek = 0
    $av_ip_ikony = [$data_items[1]]
  end
end


Screeny:
Spoiler:




Dodatkowe informacje:
Jeśli ktoś ma problem z obsługą tych skryptów, to radzę skrypty z pierwszego postu. Są nieco łatwiejsze w użytkowaniu.

Do moderatorów:
Proszę nie podmieniać skryptów z pierwszego postu na te :!: Chcę zachować obie wersje :!:
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
DavShero 



Preferowany:
RPG Maker VX

Dołączył: 13 Lip 2012
Posty: 12
Wysłany: Wto 24 Lip, 2012 11:45
Wrzuciłem na main -.-
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Wto 24 Lip, 2012 11:57
Pokaż który skrypt i gdzie wrzuciłeś screenem i jak wygląda twoje polecenie w zdarzeniu (też screenem lub przepisz je tu dokładnie), bo się chyba inaczej nie dogadamy :-/ Skrypty działają bezbłędnie i jestem tego pewna, a ten błąd, o którym pisałeś, występuje, gdy nie ma wrzuconego skryptu nad main. Sprawdziłam to -.-

PS. Zostały dodane ikony w drugim skrypcie w pierwszym poście.
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
DavShero 



Preferowany:
RPG Maker VX

Dołączył: 13 Lip 2012
Posty: 12
Wysłany: Wto 24 Lip, 2012 12:10
Problem rozwiązany 2 skrypt mi działa :)
 
 
wojtelos 



Preferowany:
RPG Maker VX

Dołączył: 20 Lis 2011
Posty: 26
Wysłany: Sro 25 Lip, 2012 23:06
Avara możesz mi wytłumaczyć jak obsługiwać ten skrypt ? Bo ja tego nie umiem ogarnąć :P
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Sro 25 Lip, 2012 23:07
Jak nie ogarniasz, to weź skrypt z pierwszego postu, tylko który :?: :aww:

Wszystko Ci wytłumaczę, tylko powiedz który skrypt i która wersja (z pierwszego postu :?: )...
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene