• Anmelden

1

Freitag, 12. März 2010, 13:57

Neues Menü ...

HuuuHuuu, ich habe
mal eine frage, ob das Möglich wäre, OHNE aufs Menü zu gehen,
das so zu machen, Natürlich mit Icons, die ich hab ^^'

ehm Etwas Kompliziert zu erklären, ich hab ein ein Screen gemacht,
zum Leichteren verständniss,
die Zahlen sollen immer Variiren, wenn man Zb. 2 Bierfässer im Inventar hat,
das dann 40 Bier (Bierkrüge) sein sollen [1Bierfass = 20 Bierkrüge]

Screen, Bitte Lächeln :D

Bild



Wäre so etwas möglich?
wäre sehr schoen! =D

also, das Hinter dem Wein eine Weinflasche ist,
Hinter Nickel (Währung) EIn Goldbeutel ist, oder einfach ein Beutel
Hinter dem Brot, ein Brot ist, habe auch ein Passendes Icon ddazu
& hinter dem Bier ein Voller Bierkrug ist, das Icon habe ich auch ^^

Wie gesagt, wäre sehr schoen, wenn das gehen würde, oder wenn es das schon gibt.

LG: Ewen


Edit: So soll es am besten eingezeit werden

Im Inventar >>> Angezeigt werden

1 Weinflasche im Inventar >>> 5 Weingläser (Wein)
1 Brot im Inventar >>> 3 Brote angezeigt
1 Bierfass im Inventar >>> 20 Bierkrüge (Bier)
100 Nickel im Inventar >>> 100 Nickel








2

Sonntag, 14. März 2010, 01:13

Aus dem Text werd ich nicht schlau, und das Bild beschreibt was anderes oô
Also was genau willst du?
Möchtest du einen HUD, der dir bestimmte Items die du im Menü hast grafisch darstellt?
Oder anstelle des Menüs so eine kleine Anzeige?

Meintest du sowas? [Script angehängt]
Der Code ist eigentlich selbsterklährend. Fueg ihn in ein Projekt ein und gib dem Helden mal Item 1(Heiltrank), Item 26(Beutel) und Item 32(Frucht). Wenn du das meintest, der Code ist leicht selbst anpassbar.
»Playm« hat folgende Datei angehängt:

3

Sonntag, 14. März 2010, 11:36

Genau das! :D

nur kann da noch GOld mit zu & ehm die Anzahl? o:








4

Sonntag, 14. März 2010, 19:26

Wie "Gold dazu"?
Soll das so angezeigt werden wie ein Item?
Es passen aber nur rund 20 Icons auf den Bildschirm (Icongröße 24x24 Pixel), was ist wenn man mal mehr als 20 Goldstücke verdient hat? Oder soll da nur eine Zahl angezeigt werden?
(wenn ich schon beim ersten Post keine Ahnung hatte was du wolltest, wieso meinst du reicht dann diesmal ein halber Satz? =/)

Wenn du bei den Items links von den Icons auch noch die Anzahl der Icons haben willst, editier mein Script wie folgt:
Spoiler: Anzahl auch als Zahl
Ab Zeile 47 etwa beginnt die Methode "draw_line(id)", in dieser findest du diesen Block:

Ruby Quellcode

1
2
3
# zeichne das Item n mal
n = $game_party.item_number(@data[id].item_id) * @data[id].multi
n.times do |i|
und darein fügst du das hier:

Ruby Quellcode

1
self.bitmap.draw_text(64, 24*id, 64, 24, "#{n}",2)
das sieht dann so aus

Ruby Quellcode

1
2
3
4
# zeichne das Item n mal
n = $game_party.item_number(@data[id].item_id) * @data[id].multi
self.bitmap.draw_text(64, 24*id, 64, 24, "#{n}",2)
n.times do |i|
zum Lesen den Text mit der Maus markieren


PS: Wieso kommen nur so wenige darauf, das man bei Wünschen zur grafischen Darstellung praktische, maßstabsgetreue Paint Skizzen anfügen kann, damit der Scripter weiss was er tun soll?

5

Sonntag, 14. März 2010, 19:35

Habe ich doch Oben Gemacht O:

Also EHm,
das Oben In der Linken Ecke des Game Gildschirms
ein Goldbeutel ist & Neben ihm der Goldbertag, den der Gamer besitzt angezeigt wird.
also der Goldbetrag in Zahlen Angezeigt


GOLDBEUTEL 7,551Nickel


So ungefähr, Nickel ist die Währung meines Spieles ^^








6

Sonntag, 14. März 2010, 20:01

Ok, hier eine Erweiterung:
Fueg Teil1 als neues Script über Main ein [Angehängt]
Und dann musst du noch für die Anzeige sorgen.
Spoiler: Teil2
In meinem ersten Post hatte ich ein Script angehängt. In diesem gab's diesen Block:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
#============================================================================
# ** Scene_Map
#============================================================================
class Scene_Map
  attr_accessor(:inventar_hud)
  alias_method(:gewohntes_main_pm, :main) if(!method_defined?(:gewohntes_main_pm))
  def main()
	@inventar_hud = Sprite_InventarHUD.new()
	gewohntes_main_pm
	@inventar_hud.dispose()
  end
end
Diesen ersetzt du mit diesem Block:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#============================================================================
# ** Scene_Map
#============================================================================
class Scene_Map
  attr_accessor(:inventar_hud, :gold_hud)
  alias_method(:gewohntes_main_pm, :main) if(!method_defined?(:gewohntes_main_pm))
  def main()
	@inventar_hud = Sprite_InventarHUD.new()
	@gold_hud = Sprite_GoldHUD.new()
	gewohntes_main_pm
	@inventar_hud.dispose()
	@gold_hud.dispose()
  end
end
zum Lesen den Text mit der Maus markieren
»Playm« hat folgende Datei angehängt:

7

Sonntag, 14. März 2010, 20:12

Bis Jetzt?

Supper Perfekt, Großes Lob, vielen 1000 Dank, ABER

ein Fehler, wenn man Goldaufnimmt, ich screen das mal ;)

Dazumal, FALS ich ein Fehler gemacht habe die Beiden Menüs ;)

Spoiler: Nummer1

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#============================================================================
# ** Sprite_InventarHUD
#============================================================================
class Sprite_InventarHUD < Sprite
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(viewport=nil)
	super(viewport);
	#----------------------------------------------------------
	# Array der später die Itemdaten enthält
	#----------------------------------------------------------
	@data = Array.new(3)
	#----------------------------------------------------------
	# Sprite Einstellungen
	#----------------------------------------------------------
	self.x = 0
	self.y = 480 - @data.size*24
	self.z = 5
	#----------------------------------------------------------
	# Array füllen:
	#----------------------------------------------------------
	# fuer jeden Heiltrank(Item#01) im Inventar, wird eine Flasche angezeigt
	@data[0]= InventarObjekt.new( 1, "Tränke", "021-Potion01",1)
	# fuer jeden Beutel(Item#26) im Inventar werden 5 Federn angezeigt
	@data[1]= InventarObjekt.new(26, "Federn", "037-Item06", 5 )
	# fuer jeden Apfel(Item#32) im Inventar, wird ein Apfel angezeigt
	@data[2]= InventarObjekt.new(32, "Äpfel" , "041-Item10", 1 )
	# fuer das Gold (Key#01) im Inventar, werden 2 Gold angezeigt
	@data[3]= InventarObjekt.new(30, "Schluessel" , "030-Key02", 7)
	#----------------------------------------------------------
	self.bitmap = Bitmap.new(640, @data.size*24)
	refresh()
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh()
	# angezeigtes Bitmap säubern
	self.bitmap.clear()
	# leichten Schatten zeichnen
	self.bitmap.fill_rect(self.bitmap.rect, Color.new(20,20,20,15))
	# zeichne alles drauf
	@data.each_index{|index| draw_line(index) }
  end
  #--------------------------------------------------------------------------
  # * Zeichne eine Reihe
  #--------------------------------------------------------------------------
  def draw_line(id)
	# zeichne den Namen des InventarObjektes aufs Bitmap
	self.bitmap.draw_text(4, 24*id, 128, 24, @data[id].name)
	# lade das Icon
	src_bitmap = RPG::Cache.icon(@data[id].bild)
	# zeichne das Item n mal
n = $game_party.item_number(@data[id].item_id) * @data[id].multi
self.bitmap.draw_text(64, 24*id, 64, 24, "#{n}",2)
n.times do |i|
  	x_k = 128 + 24*i # Koordinate des Items auf der x-Achse
  	self.bitmap.blt(x_k, id*24, src_bitmap, src_bitmap.rect)
	end
  end
end
#============================================================================
# ** InventarObjekt
#============================================================================
class InventarObjekt
  def initialize(id, name="Item", bild_name="", multiplikator=1)
	@item_id= id        	# Die ID des Items in der Database
	@name   = name      	# der Name der im HUD angezeigt wird
	@bild   = bild_name 	# das Bild was angezeigt wird
	@multi  = multiplikator # der Multiplikator
  end
  attr_reader(:item_id, :name, :bild, :multi)
end
#============================================================================
 
#============================================================================
# ->->-> Anzeige auf der Map
#----------------------------------------------------------------------------
# durch diesen Edit (Scene_Map, Interpreter) wird der HUD auf der Map an-
# gezeigt und auch geupdatet.
#============================================================================
#============================================================================
#============================================================================
# ** Scene_Map
#============================================================================
class Scene_Map
  attr_accessor(:inventar_hud, :gold_hud)
  alias_method(:gewohntes_main_pm, :main) if(!method_defined?(:gewohntes_main_pm))
  def main()
	@inventar_hud = Sprite_InventarHUD.new()
	@gold_hud = Sprite_GoldHUD.new()
	gewohntes_main_pm
	@inventar_hud.dispose()
	@gold_hud.dispose()
  end
end
#==============================================================================
# ** Interpreter
#==============================================================================
class Interpreter
  alias_method(:change_items, :command_126) if(!method_defined?(:change_items))
  #--------------------------------------------------------------------------
  # * Change Items
  #--------------------------------------------------------------------------
  def command_126
	change_items()
	if $scene.class == Scene_Map then
  	$scene.inventar_hud.refresh()
	end
	return true;
  end
end
zum Lesen den Text mit der Maus markieren


Spoiler: Nummer2

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  #--------------------------------------------------------------------------
  def initialize(viewport=nil)
	super(viewport);
	self.z = 10
	self.bitmap = Bitmap.new(160, 32)
	refresh()
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh()
	# angezeigtes Bitmap säubern
	self.bitmap.clear()
	# leichten Schatten zeichnen
	self.bitmap.fill_rect(self.bitmap.rect, Color.new(20,20,20,15))
	# lade das Icon
	src_bitmap = RPG::Cache.icon( "032-Item01" )
	# zeichne das Icon aufs Bitmap
	self.bitmap.blt(4, 4, src_bitmap, src_bitmap.rect)
	# zeichne den Text
	cx = self.bitmap.text_size($data_system.words.gold).width
	self.bitmap.font.color = Color.new(255, 255, 255, 255)
	self.bitmap.draw_text(4, 0, 152-cx-2, 32, $game_party.gold.to_s, 2)
	self.bitmap.font.color = Color.new(192, 224, 255, 255)
	self.bitmap.draw_text(156-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end
#==============================================================================
# ** Interpreter
#==============================================================================
class Interpreter
  alias_method(:change_gold, :command_126) if(!method_defined?(:change_gold))
  #--------------------------------------------------------------------------
  # * Change Gold
  #--------------------------------------------------------------------------
  def command_125
	change_gold()
	if $scene.class == Scene_Map then
  	$scene.gold_hud.refresh()
	end
	return true;
  end
end
zum Lesen den Text mit der Maus markieren
»Ewen« hat folgendes Bild angehängt:
  • Fehler im Goldscript.JPG








8

Sonntag, 14. März 2010, 20:36

Hoppla, kleiner Fehler. Im Script Sprite_GoldHUD, findest du in Zeile 38 etwa das hier:

Ruby Quellcode

1
alias_method(:change_gold, :command_125) if(!method_defined?(:change_gold))
Vermutlich steht bei dir anstatt "125" eine andere Zahl. Änder die mal in 125 dann sollte es gehen.

9

Sonntag, 14. März 2010, 20:45

Playm?

Ich Danke dir Sehr Herzlich, für das Gelungene 'Menü' :)
bekommst ein Creadit eintrag ;)

Ps: es Funkt es Einbahnfrei! :)

& es stand 126 anstadt 125 *fg*

Wie gesagt, nochmal Rechtherzlichen Dank! :)

---

LG: Ewen!

Thema kann geschloßen werden :D







Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Playm« (14. März 2010, 20:45) aus folgendem Grund: Thema, auf Wunsch, geschlossen


Social Bookmarks