UltimaForum

Wsparcie [VX] - skrypcior na windowskin

Valdali - Wto 13 Gru, 2011 19:27
Temat postu: skrypcior na windowskin
witajcie moi forumowi przyjaciele ! :mrgreen:
mam do was małą prośbę. w XPku była taka komenda zmiany windowskina podczas gry, niestety w VXsie takowej opcji nie ma. Czy mógłby ktoś podesłać skrypt, który zmieniałby windowskin podczas gry?
proszę... yhym, znaczy błagam was o pomoc ! :mrgreen:

tracersgta - Wto 13 Gru, 2011 19:30

W skrypcie na Opcje jest taka funkcja...
Valdali - Wto 13 Gru, 2011 19:32

tak wiem... ale ja nie chce używać tego skryptu.
chce po prostu aby w zakładce "script" wpisać jakiś tam tekst i zmieni się windowskin :->
... i zależy mi na tym aby ta zmiana była niezależna od gracza

Valdali - Sro 14 Gru, 2011 18:44

jednakże prosiłbym o jakiś prosty kod skryptu, który zrobiłby dokładnie to o czym napisałem :-P
Finwe - Sro 14 Gru, 2011 19:13

Mam rozwiązanie. Słabe ale jakieś :lol2:
Otóż możesz użyć innego menu niż domyślnego np. ring menu ) i wrzucić skrypt na opcje. W nim jest linijka która zmienna odpowiada za windowskina. Mam nadzieję że działa.
Jak działa, to poproszę o pomógł. :-PP

Valdali - Czw 15 Gru, 2011 13:17

nie wypali - używam niestety innego cms a w grze robie cos takiego jak siło dobra i zła oraz naturalne wiec do każdych mam inny windowskin.
Finwe - Czw 15 Gru, 2011 15:04

Napisałem NA PRZYKŁAD. Tam w którejś linijce jest "zmienna odpowiadająca za zmianę". Zobacz sobie ten skrypt.
Valdali - Sob 24 Gru, 2011 17:09

kurczę proszę niech ktoś zrobi dla mnie ten skrypt :) tak na święta ;-(
Ayene - Sro 28 Gru, 2011 15:04

Spróbuj może tego:
Kod:
# Zmiana okna podczas gry (za pomocą przełącznika)
# by Ayene
# www.ultimateam.pl

module Ayene
  SWITCH_ID = 32               # ID przełącznika zmieniającego okno
  DEFAULT_WINDOW = "Window"    # Nazwa domyślnego okna
  NEW_WINDOW = "Window1"       # Nazwa nowego okna
end

class Window_Base < Window
  include Ayene 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias aye_winbase_ini initialize unless $@
  def initialize(*args)
    aye_winbase_ini(*args)   
    if $game_switches[SWITCH_ID]   
      self.windowskin = Cache.system(NEW_WINDOW)
    else
      self.windowskin = Cache.system(DEFAULT_WINDOW)
    end     
  end
end

Valdali - Pią 30 Gru, 2011 19:03

przed sprawdzeniem zapytam:
w mojej grze zmienianie windowskina nastąpi trzy razy, czy będzie to działa na trzy oddzielne skórki? ;)
i w ogóle wielkie dzieki za skrypt

Ayene - Sob 31 Gru, 2011 17:35

Żeby działało na inne skórki trzeba by edytować skrypt. On przewiduje tylko jedną zmianę.
Valdali - Nie 01 Sty, 2012 22:17

to ma prośbę ayene
nie zrobiła bys tak zeby na cztery działało? :DDDD pls

Ayene - Nie 01 Sty, 2012 22:33

Spoiler:

Kod:
# Zmiana okna podczas gry (za pomocą przełącznika)
# by Ayene
# www.ultimateam.pl

module Ayene
  VAR_ID = 32                  # ID zmiennej kontrolującej skórkę okna
  WINDOW = "Window"            # Nazwa domyślnego okna
end

class Window_Base < Window
  include Ayene 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias aye_winbase_ini initialize unless $@
  def initialize(*args)
    aye_winbase_ini(*args)   
    if $game_variables[VAR_ID] > 0
      self.windowskin = Cache.system(WINDOW + $game_variables[VAR_ID].to_s)
    else
      self.windowskin = Cache.system(WINDOW)
    end     
  end
end

class Scene_Map < Scene_Base
  def refresh_window
    @message_window.dispose
    @message_window = Window_Message.new
  end
end


Wystarczy kontrolować zmienną VAR_ID i w folderze System umieścić dodatkowe Windowy, np. dla zmiennej 1 będzie okno Window1, dla zmiennej 2 - Window2, itd. By odświeżyło okno w jednym zdarzeniu, użyj polecenia 'Script' i wpisz:
Kod:
$scene.refresh_window

Valdali - Nie 01 Sty, 2012 22:45

ok wielka dziękowinka ayene :przytul:
Leoś - Pon 02 Sty, 2012 02:02

Dołączę się do pytania. A da radę zmienić okno podczas walki?
Ayene - Pon 02 Sty, 2012 12:08

Dodaj do skryptu fragment:
Kod:
class Scene_Battle < Scene_Base
  def refresh_window
    @message_window.dispose
    @message_window = Window_Message.new
  end
end

I możesz również analogicznie użyć kodu:
Kod:
$scene.refresh_window

Leoś - Pon 02 Sty, 2012 15:05

Dzięki :cmok: Działa.

Powered by phpBB modified by Przemo © 2003 phpBB Group