Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Dodatkowa waluta
Autor Wiadomość
Teyan 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 05 Lis 2009
Posty: 48
Wysłany: Sob 26 Gru, 2009 13:39
Dodatkowa waluta
~ Dodatkowa waluta ~

Krótki opis
Dzieki temu skryptowi możemy mieć w grze dwie waluty i uzywać ich na zmianę (przełączając jeden switch).
Widziałem w necie menu z dwiema walutami, ale samego skryptu nie mogłem znaleźć, więc go napisałem.
Umieściłem w nim inny skrypt "Ikonka złotej monety w menu", musiałem dodać drugą ikonkę (bez tego ani rusz). Mam nadzieję, że Ayene się nie obrazi.

Autor skryptu
Marcin (www.ultimateam.pl)

Kompatybilność
Tylko VX.
Spoiler:


Skrypt
Kod:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/Nazwa: Dodatkowa waluta......._/
#_/Autor: Marcin (www.ultimateam.pl)._/
#_/Data: 26 grudnia 2009r................_/
#_/Wersja: 1.0..............................._/
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#instrukcja
#switch/przełącznik, który odpowiada za zmiane waluty
GOLD = 20 #możemy go oczywiście zmienić.
#gdy jest off to używaną walutą jest nowa waluta
#gdy jest on to używaną walują jest stara waluta

#~~~~~~~~~~~~~~~~~~SKRYPT

class Window_Gold < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH * 2 + 32)
    refresh
  end
  def refresh
    self.contents.clear
    draw_currency_value($game_party.gold, 4, 0, 120)
    draw_currency_value($game_party.gold2, 4, 24, 120)
  end
end
class Game_Party < Game_Unit
    attr_reader   :gold2
  def initialize
    super
    @gold = 0
    @gold2 = 0
    @steps = 0
    @last_item_id = 0
    @last_actor_index = 0
    @last_target_index = 0
    @actors = []      # Party member (actor ID)
    @items = {}       # Inventory item hash (item ID)
    @weapons = {}     # Inventory item hash (weapon ID)
    @armors = {}      # Inventory item hash (armor ID)
  end

  def gain_gold(n)
    if $game_switches[GOLD]
      @gold = [[@gold + n, 0].max, 9999999].min
    else
      @gold2 = [[@gold2 + n, 0].max, 9999999].min
    end
  end
  def lose_gold(n)
    gain_gold(-n)
  end
end

class Scene_Menu < Scene_Base
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 336)
    @status_window = Window_MenuStatus.new(161, 0)
  end
end
class Scene_Shop < Scene_Base
  def start
    super
    create_menu_background
    create_command_window
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 136, 544, 280)
    @buy_window = Window_ShopBuy.new(0, 136)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @sell_window = Window_ShopSell.new(0, 136, 544, 280)
    @sell_window.active = false
    @sell_window.visible = false
    @sell_window.help_window = @help_window
    @number_window = Window_ShopNumber.new(0, 136)
    @number_window.active = false
    @number_window.visible = false
    @status_window = Window_ShopStatus.new(304, 136)
    @status_window.visible = false
  end
end
class Window_ShopBuy < Window_Selectable
  def initialize(x, y)
    super(x, y, 304, 280)
    @shop_goods = $game_temp.shop_goods
    refresh
    self.index = 0
  end
end
class Window_ShopNumber < Window_Base
  def initialize(x, y)
    super(x, y, 304, 280)
    @item = nil
    @max = 1
    @price = 0
    @number = 1
  end
end
#~~~~~~~~~~~~~~~~~~KONIEC MOJEGO SKRYPTU~~~~~~~~~~~~~~~~~~
#musiałem dostosować także skrypt ikonki złotej monety w menu
# ==========================================================
#                      ~ Ikona złotej monety w Menu ~
#                       Data publikacji: 17.07.2009
#                          Autor: MikauSchekzen
#               Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
#          Zapraszam na stronę Ultima Forum - http://www.ultimateam.pl
# Dostosowanie do drugiej waluty: Marcin (www.ultimateam.pl)
# ==========================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# ==========================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
module GoldIcon
 
# ---------------------------- POCZĄTEK EDYCJI ---------------------------------
# poniższa liczba przyporządkowana jest ikonce złota w standardowym pakiecie
# ikonek.
    GoldIconIndex       = 205
    GoldIconIndex2       = 200 #to zostało dopisane przez: Marcin
# ----------------------------- KONIEC EDYCJI ----------------------------------
end

# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
class Window_Base < Window
  alias customgoldicon draw_currency_value
  alias added_gold_icon draw_currency_value
  def draw_currency_value(value, x, y, width)   
    customgoldicon(value , x, y, width)
    draw_icon(GoldIcon::GoldIconIndex , 4 , 0)
    draw_icon(GoldIcon::GoldIconIndex2 , 4 , 24) #to zostało dopisane przez: Marcin
  end
end
# --------------------------- KONIEC SKRYPTU ----------------------------------


Demo
niepotrzebne

Screenshot


Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.

Życze miłej zabawy.

[ Dodano: Sob 26 Gru, 2009 14:09 ]
Zapomniałbym o skrypcie "Nazwa Lokacji w menu", jeżeli go używacie to zamieńcie starą wersję na tą wersję:
Spoiler:


Kod:
# ==============================================================================
#                        ~ Nazwa lokacji w Menu ~
#                       Data publikacji: 20.07.2009
#                          Autor: TagTeam
#                    Poprawki: Ayene [yurika@o2.pl]
#          Zapraszamy na stronę Ultima Forum - http://www.ultimateam.pl
#dostosowanie do drugiej waluty: Marcin (www.ultimateam.pl)
# ==============================================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# ==============================================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Skrypt pozwala na dodanie w Menu okienka z nazwą lokacji (nazwą mapy).

# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
module TagTeam
# ---------------------------- POCZĄTEK EDYCJI ---------------------------------   
  # poniższa liczba przyporządkowana jest ikonce mapy w standardowym pakiecie
  # ikonek.
  IkonkaMapy = 153
 
  # wyrównanie nazwy lokacji (0 - do lewej; 1 - do środka; 2 - do prawej)
  WyrównanieNazwyLok = 2 
 
  NazwaOkna = "Lokacja:"
# ----------------------------- KONIEC EDYCJI ---------------------------------- 
  end 

# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
#-------------------------------------------------------------------------------
# + Odwołanie do klasy Game_Map
#-------------------------------------------------------------------------------
class Game_Map
  attr_reader :map_id
  def mpname
    $mpname = load_data("Data/MapInfos.rvdata")
    $mpname[@map_id].name
  end
end

#-------------------------------------------------------------------------------
# + Odwołanie do klasy Window_Base
#-------------------------------------------------------------------------------
class Window_NazwaMapy < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 64)
    refresh
  end
 
  def refresh
    self.contents.clear
    draw_icon(TagTeam::IkonkaMapy, 0, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 120, 32, TagTeam::NazwaOkna,2)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 28, 120, 32, $game_map.mpname.to_s, TagTeam::WyrównanieNazwyLok)
  end
end

#-------------------------------------------------------------------------------
# + Odwołanie do klasy Scene_Menu
#-------------------------------------------------------------------------------
class Scene_Menu < Scene_Base
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 336)
    @mapname_window = Window_NazwaMapy.new(0, 246)
    @status_window = Window_MenuStatus.new(161, 0)
  end
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @mapname_window.dispose
    @status_window.dispose
  end
end
# --------------------------- KONIEC SKRYPTU -----------------------------------


A gdybyście chcieli trzecią walutę, to jest to do zrobienia, jakby coś to mogę pomóc!
 
 
KillYou 




Preferowany:
RPG Maker VX

Dołączył: 27 Gru 2009
Posty: 49
Skąd: Wolsztyn
Wysłany: Pon 04 Sty, 2010 19:10
Skrypt napewno przyda się do questów :D
________________________
Pozdrawiam, bo nie chcę zawsze pisać powyżej - KillYou
PS Jeżeli nie rozumiesz (pomoc) co jest napisane powyżej, to wrzucę screeny :)
The Elect
Twórca: KillYou
Pomocnicy Pr0mes, Spino333, Janus, Kacperer
============================================================

============================================================
Tekst Podpisu:
Podpis - dozwolona ilość znaków:500

Drogi użytkowniku, jeżeli czytasz te napisy to wejdź w moją galerię!
http://www.ultimateam.pl/...p?p=19178#19178

^_^
 
 
Kable 




Preferowany:
RPG Maker VX

Pomógł: 5 razy
Dołączył: 17 Lis 2007
Posty: 116
Skąd: Słupsk
Wysłany: Wto 05 Sty, 2010 04:54
Pewnie że się przyda dzięki temu można zrobić to co w niektórych grach RPG :) czyli Srebrniki i np. Złoto ;D świetna robota ;]
 
 
t84un 




Preferowany:
RPG Maker VX

Dołączył: 18 Lis 2009
Posty: 16
Skąd: Szczecin
Wysłany: Sro 06 Sty, 2010 16:15
Przyda się... nie myślałem co prawda o 2 walucie ale jak przeczytałem to muszę wo rpakować do mojego projektu ! Dzięki :P
________________________

 
 
KillYou 




Preferowany:
RPG Maker VX

Dołączył: 27 Gru 2009
Posty: 49
Skąd: Wolsztyn
Wysłany: Nie 10 Sty, 2010 20:55
:( zeb1002 masz pecha. Do XP-ka jest bardzo mało skryptów ( na tym forum)
________________________
Pozdrawiam, bo nie chcę zawsze pisać powyżej - KillYou
PS Jeżeli nie rozumiesz (pomoc) co jest napisane powyżej, to wrzucę screeny :)
The Elect
Twórca: KillYou
Pomocnicy Pr0mes, Spino333, Janus, Kacperer
============================================================

============================================================
Tekst Podpisu:
Podpis - dozwolona ilość znaków:500

Drogi użytkowniku, jeżeli czytasz te napisy to wejdź w moją galerię!
http://www.ultimateam.pl/...p?p=19178#19178

^_^
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 10 Sty, 2010 22:38
Chcecie wersję na XP? Zamieszczam wersję powyższego skryptu, która jest przerobiona tak, aby działała pod XP. Celowo nie zamieszczam tego skryptu w nowym temacie, gdyż skrypt jest wybrakowany. Posiadanie drugiej waluty w rzeczywistości w niczym nam się nie przydaje - i tak nic za nią nie kupimy w sklepie. Skrypt należałoby przerobić.

Ale dla chętnych oto wersja XP-kowska skryptu by Teyan/Marcin:
Spoiler:

Kod:
#instrukcja
DRUGA_WALUTA = "Euro"
#switch/przełącznik, który odpowiada za zmiane waluty
GOLD = 20 #możemy go oczywiście zmienić.
#gdy jest off to używaną walutą jest nowa waluta
#gdy jest on to używaną walują jest stara waluta

class Window_Gold < Window_Base
 
  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype 
    self.contents.font.size = $defaultfontsize
    refresh
  end
 
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    cx2 = contents.text_size(DRUGA_WALUTA).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.draw_text(4, 32, 120-cx2-2, 32, $game_party.gold2.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
    self.contents.draw_text(124-cx2, 32, cx2, 32, DRUGA_WALUTA, 2)
  end
end

class Game_Party 
  attr_reader   :gold2   
  def initialize
    @actors = []
    @gold = 0
    @gold2 = 0
    @steps = 0
    @items = {}
    @weapons = {}
    @armors = {}
  end 
  def gain_gold(n)
    if $game_switches[GOLD] 
      @gold = [[@gold + n, 0].max, 9999999].min
    else
      @gold2 = [[@gold2 + n, 0].max, 9999999].min
    end 
  end 
end

class Window_PlayTime < Window_Base
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype 
    self.contents.font.size = $defaultfontsize
    refresh
  end
  def refresh
    self.contents.clear
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, text, 2)
  end
end
   
class Scene_Menu 
   def main
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Stan"
    s5 = "Zapis gry"
    s6 = "Koniec"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index   
    if $game_party.actors.size == 0     
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end   
    if $game_system.save_disabled     
      @command_window.disable_item(4)
    end   
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224   
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 288
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 384
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
end

class Scene_Shop
  #--------------------------------------------------------------------------
  # &#9679; &#12513;&#12452;&#12531;&#20966;&#29702;
  #--------------------------------------------------------------------------
  def main
    @help_window = Window_Help.new
    @command_window = Window_ShopCommand.new
    @gold_window = Window_Gold.new
    @gold_window.x = 480
    @gold_window.y = 32
    @dummy_window = Window_Base.new(0, 128, 640, 352)
    @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
    @buy_window.active = false
    @buy_window.visible = false   
    @buy_window.help_window = @help_window
    @sell_window = Window_ShopSell.new
    @sell_window.active = false
    @sell_window.visible = false
    @sell_window.help_window = @help_window
    @number_window = Window_ShopNumber.new
    @number_window.active = false
    @number_window.visible = false
    @status_window = Window_ShopStatus.new
    @status_window.visible = false
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    @command_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @sell_window.dispose
    @number_window.dispose
    @status_window.dispose
  end
end

________________________


 
 
 
Teyan 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 05 Lis 2009
Posty: 48
Wysłany: Sro 13 Sty, 2010 11:01
Ayene napisał/a:
Posiadanie drugiej waluty w rzeczywistości w niczym nam się nie przydaje - i tak nic za nią nie kupimy w sklepie.

Jak to nie możemy nic kupić?
Przecież można obu walut używać na przemian. Drugiej waluty można używać w sklepie tak samo jak pierwszej. A nawet dzięki temu skryptowi możemy zmienić ceny np: za Krótki Miecz zapłacimy 100 sztuk złota lub 30 kryształów.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 13 Sty, 2010 16:00
No ja drugiej waluty nie mogę używać w sklepie bez skryptu drugiego. Z resztą wystarczy spojrzeć na skrypt, zmienisz w nim jedynie okienka, a nie procedurę.
________________________


 
 
 
Teyan 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 05 Lis 2009
Posty: 48
Wysłany: Sro 13 Sty, 2010 21:43
Ayene, ja w grze mam sześć państw (znaczy sie na razie tylko dwa, ale planuje mieć sześć) i gdy testuje projekt to gdy jestem na terenie jednego państwa i handluje z kupcami to wszystkie transakcje obejmują pierwszą walutę (u mnie złoto), a gdy jestem na terenie drugiego to czy zmieniam ilość kasy bohatera za pomocą polecenia w evencie (jako nagrodę za zadanie) czy handluje z kupcem to używam drugiej waluty (u mnie kryształy) i wszystko jest cacy, a poza tym... jakiego "skryptu drugiego"?
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 13 Sty, 2010 22:09
Skryptu drugiego, do którego podałeś wcześniej link, jako że dzięki niemu możemy 'zmienić ceny np: za Krótki Miecz zapłacimy 100 sztuk złota lub 30 kryształów'.

Co do drugiej waluty... to w jaki sposób mam coś za nią kupić? Zmieniam przełącznik 20, dodaje mi się druga waluta, ale i tak nie mogę nic kupić u sprzedawcy.
________________________


 
 
 
Ozzma 




Preferowany:
RPG Maker VX

Pomogła: 1 raz
Dołączyła: 26 Wrz 2009
Posty: 88
Skąd: Stumilowy Las
Wysłany: Czw 14 Sty, 2010 14:01
Mi też nie działa :-( Już wcześniej próbowałam wykorzystać ten skrypt, ale myślałam że sama coś źle robię, dlatego nie pisałam tutaj. Ale jak widać nie tylko mi skrypt nie działa :przytul:
________________________
 
 
Malian 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 22 Gru 2009
Posty: 262
Skąd: Warszawa
Wysłany: Pon 18 Sty, 2010 13:58
No wszystko gites w tym skrypcie do XP ale czy się nie gryzie z Nazwą mapy i Ring menu? Wszystkie skrypty oczywiście do XP.

PS. Nie robiłem nowego tematu ponieważ wy też nie zrobiliście. :-D
________________________
 
 
 
 
Cyklop 




Nagrody:
UFT3 Winner

Ranga RM:
1 gra

Dołączył: 03 Sie 2008
Posty: 54
Skąd: ???
Wysłany: Wto 16 Lut, 2010 23:10
Według mnie ten skrypt nie powinien być w dziale Skrypty, bo przecież nie działa, te pieniądze czy też kryształy to są tylko na pokaz. Szkoda bo mogło być całkiem przydatne.
 
 
Teyan 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 05 Lis 2009
Posty: 48
Wysłany: Sro 28 Kwi, 2010 09:41
Dobra, to ja już nie wiem o co kaman. Przed chwilą sprawdzałem ten skrypt u mnie, na czystym (czyt. bez innych dodatkowych skryptów) RPG Makerze i u mnie chodzi, klne się na wszystko, że to prawda. Myślałem, że błąd wynika z tego, iż pisałem ten skrypt na zaśmieconym (czyt. pełnym własnych, nierzadko durnych i całkowicie nieprzydatnych skryptów) RPG Makerze, ale nic jak chodzi - tak chodzi.

[ Dodano: Sro 28 Kwi, 2010 09:44 ]
I nie mam "skryptu drugiego" o którym pisała Ayene.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 28 Kwi, 2010 10:03
Teyan, w takim razie dobrze by było abyś zamieścił demko... może wtedy rozjaśni się Użytkownikom ;-)
________________________


 
 
 
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