• Anmelden

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

21

Dienstag, 7. Juli 2009, 18:48

Soll ich jetzt noch irgendwelche Rahmen machen?
»Neo-Bahamut« hat folgendes Bild angehängt:
  • Screen.png
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

22

Dienstag, 7. Juli 2009, 18:54

Am liebsten noch um den Fraktionsnamen und den Namen der Rufstufe - so wie im Screen von mir, in der Skizze - Windowskin, aber deutlich transparenter, als das eigentliche Fenster, wenn möglich. Damit die Wörter nicht einfach nur so im Raum stehen.

Oder vielleicht einen Rahmen um alles zusammen, also um Fraktionsnamen, den Balken und die STufe - damit sich jede Fraktion so von der nächsten abgrenzt...

Ich müsste beides sehen, um mich entscheiden zu können... was meinst denn du? ;)

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

23

Dienstag, 7. Juli 2009, 18:58

Ich meine du solltest es so lassen, dann hab ich weniger Arbeit xP
Aber gut ich mach mal Windowskinrahmen drum
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

24

Dienstag, 7. Juli 2009, 19:03

Nur keine Müdigkeit vorschützen *g*

Nein, ernsthaft - danke dir! ;P

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

25

Dienstag, 7. Juli 2009, 19:12

Meine Hand tut weh weil mein Mousepad scheiße liegt daher hab ich jetzt doch nur eins gemacht xd
http://www.mediafire.com/?dmdiztigmum
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

26

Dienstag, 7. Juli 2009, 19:16

Stark!

Nur drei kleine Dinge ^^

1. Die beiden Rahmen um die einzelnen Fraktionen bleiben auch noch nach verlassen des Ruf-Systems zu sehen, selbst nach verlassen des ganzen Menüs. Sie sind einfach ncoh zu sehen.

2. Wäre esmöglich, einen kleinen Abstand zwischen den einzelnen Fraktionen zu haben, nur 3-5 Pixel, damit die Kästen nicht arg aneinander schrammen.

3. Kannst du die Überschrift noch zentrieren? ;)

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

27

Dienstag, 7. Juli 2009, 19:26

Kein Bock nochmal die Demo hochzuladen xd
Spoiler: Rufskript

Ruby 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Call Script zum Hinzufügen einer Fraktion:
#  f = "Fraktionsname"
#  a = [Stufe (erste Stufe = 0), Punkte]
#  $game_system.reputation[f] = a
# Call Script zum ändern der Punkte einer Fraktion:
#  a = ["Fraktionsname", Punkteerhöhung (negative Zahl für Verringerung)]
#  $game_system.add_reputation(a)
 
class Scene_Reputation
 
  Fraktionen = ["Doofköppe", "Hanswürste", "Kuhle Schwule", "Tanzbären"]
 
  # ["Name", Farbe (Color.new(Rot, Grün, Blau)), Punkte]
  Stufen = [["Todfeinde", Color.new(0, 0, 0), 10000],
        	["Hasserfüllt", Color.new(255, 0, 0), 5000],
        	["Feindselig", Color.new(140, 50, 0), 200]
        	]
  #
 
end
 
class Game_System
  attr_accessor :reputation
  alias_method :sdunhabguidiogudfasguidbasfgibasdf, :initialize
  def initialize
	sdunhabguidiogudfasguidbasfgibasdf
	@reputation = {}
  end
  def add_reputation(array)
	key = array[0]
	n = array[1]
	return if !@reputation.has_key?(key)
	array = @reputation[key]
	array[1] += n
	if array[1] > Scene_Reputation::Stufen[array[0]][2]
  	array[1] = 0
  	array[0] = [array[0]+1, Scene_Reputation::Stufen.size-1].min
	elsif array[1] < 0
  	array[0] = [array[0]-1, 0].max
  	array[1] = Scene_Reputation::Stufen[array[0]][2]+array[1]
	end
  end
end
 
class Scene_Reputation
 
  def main
	@spriteset = Spriteset_Map.new
	@window = Window_Reputation.new
	Graphics.transition
	until $scene != self
  	Graphics.update
  	Input.update
  	update
	end
	Graphics.freeze
	@spriteset.dispose
	@window.dispose
  end
 
  def update
	@window.update
	if Input.trigger?(Input::B)
  	$game_system.se_play($data_system.cancel_se)
  	$scene = Scene_Menu.new(7)
	end
  end
 
end
 
class Window_Reputation < Window_Base
 
  def initialize
	super(65, 0, 510, 480)
	self.back_opacity = 155
	@windows = []
	refresh
  end
 
  def refresh
	@windows.each {|i| i.dispose}
	@windows = []
	self.contents.dispose if self.contents.is_a?(Bitmap) and !self.contents.disposed?
	hash = $game_system.reputation
	h = hash.size*32
	if h == 0
  	self.contents = Bitmap.new(width-32, 64)
  	b = make_ueberschrift
  	self.contents.blt(0, 0, b, b.rect)
  	return
	end
	self.contents = Bitmap.new(width-32, h+64)
	b = make_ueberschrift
	self.contents.blt(0, 0, b, b.rect)
	y = 0
	for i in Scene_Reputation::Fraktionen
  	if hash.has_key?(i)
    	draw_item(i, hash[i][0], hash[i][1], (y*35)+64)
    	y += 1
  	end
	end
	@max_scroll = [self.contents.height-448, 0].max
  end
 
  def dispose
	super
	@windows.each {|i| i.dispose}
  end
 
  def draw_item(name, level, punkte, y)
	array = Scene_Reputation::Stufen[level]
	# Name
	rect = Rect.new(0, y, 170, 32)
	self.contents.draw_text(rect, name, 1)
	# Stufe
	rect = Rect.new(340, y, 170, 32)
	self.contents.draw_text(rect, array[0], 1)
	# Balken
	b = create_balken(array[1], punkte, array[2])
	self.contents.blt(170, y+4, b, b.rect)
	add_window(Rect.new(0, y, self.width, 32))
  end
 
  def create_balken(color, punkte, maxpunkte)
	bitmap = Bitmap.new(170, 24)
	bitmap.fill_rect(bitmap.rect, Color.new(0,0,0))
	s = 3
	bitmap.fill_rect(s, s, bitmap.width-s*2, bitmap.height-s*2, Color.new(0,0,0,0))
	w = bitmap.width-s*2
	percent = punkte.to_f / maxpunkte
	w_perc = (w*percent).round
	bitmap.fill_rect(Rect.new(s, s, w_perc, bitmap.height-s*2), color)
	string = "#{punkte} / #{maxpunkte}"
	bitmap.draw_text(bitmap.rect, string, 1)
	[0, bitmap.width-1].each {|x| [0, bitmap.height-1].each {|y| bitmap.set_pixel(x, y, Color.new(0,0,0,0))}}
	bitmap
  end
 
  def update
	super
	speed = 3
	if Input.press?(2)
  	self.oy = [self.oy-speed, 0].max
	elsif Input.press?(8)
  	self.oy = [self.oy+speed, @max_scroll].min
	end
  end
 
  def make_ueberschrift
	bitmap = Bitmap.new(width-32, 64)
	bitmap.font.size = 35
	bitmap.draw_text(bitmap.rect, "Ansehen in Gérennia", 1)
	bitmap
  end
 
  def add_window(rect)
	x, y, w, h = rect.x+16+self.x, rect.y+16+self.y, rect.width-32, rect.height
	w = Window_Base.new(x,y,w,h)
	w.back_opacity = 0
	@windows << w
  end
 
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

28

Dienstag, 7. Juli 2009, 19:35

Also bisher würde ich sagen: perfekt!

Danke dir, ich werde es später mal ausgiebig testen und in meiN Projekt einabauen, mal sehen ob es irgendwelche inkobatiblen Scripts gibt. ^^

Entschuldigt bitte den Doppel-Post ...

Du, Neo...

Wie ist es denn nun möglich, dem Spieler vorzuschreiben, einen bestimmten Ruf bei einer Fraktion zu haben, damit er dort interagieren kann etc. - also mindestens "Freundlich" bei "Blödköppen" sein, dammit ihm die Blödköppe Quests zur verfügung stellen, ansonsten sagen sie so etwas wie: "Kenne ich dich? Lass mich in Ruhe!"

Das bräuchte ich für alle von mir vorgeschlagenen Rufstufen... ^^

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

29

Dienstag, 7. Juli 2009, 20:06

Achja ^^
Und wieder bin ich zu faul was am Skript zu ändern, daher geb ich dir einfach ein Call Script, dass einen Switch auf ON/OFF setzt.

Ruby Quellcode

1
2
3
4
5
6
7
8
f = "Fraktionsname"
a = $game_system.reputation[f]
# Und hier kommen dann irgendwelche Abfrage
# a[0] ist die Stufe und a[1] die Punkte (oder andersrum xD)
if a[0] > 12 and a[1] > 500
# Swithc 0001 = ON
$game_switches[1] = true
end
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

30

Dienstag, 7. Juli 2009, 20:12

Und wie bringe ich das Spiel dazu, permanent zu überprüfen, ob gegebene Bedingung erfüllt ist? ^^ Das ganze und Parallel Process in die Database zu setzen würde für jede Fraktion und jede Stufe unmengen an Frames fressen *g*

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

31

Dienstag, 7. Juli 2009, 20:15

Ist das denn wichtig das jeden Frame zu überprüfen? Oo
Kannst du nicht ein Common Event mit dem Code machen, dass du immer aufrufst wenn du es brauchst?
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

32

Dienstag, 7. Juli 2009, 20:23

Mit dem Frame meine ich - es wird ruckeln, oder etwa nicht? ^^
Und dann müsste ich es jedesmal aufrufen, wenn mein Char mit einem NPC spricht, da sich dies ändert, je nach dem, wie angesehen er ist... und das geht doch sicher einfacher - oder nicht? ;)

Comment der Administration: Zu faul ein bisschen Eventskript zu machen?

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

33

Dienstag, 7. Juli 2009, 21:18

Zitat

Comment der Administration: Zu faul ein bisschen Eventskript zu machen?
xD
Ja, Eventskript ist in diesem Fall die beste Lösung, also immer wenn du den Ruf abfragen musst benutzt du den Code.
Ansonsten müsste ich das im Skript auch jeden Frame erneuern, was auch an der Performance zerren würde ;)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

34

Dienstag, 7. Juli 2009, 21:37

"Ein bisschen" ist gut, aber wenn es die beste Lösung ist, dann wird kein Weg dran vorbei führen.
Naja, wir auch immer. Danke dir bis hierher!

Meinst du, du bekommst es noch hin, dass zwei unterschiedliche Parties, die ich im verlaufe des Spiels hin und her wechseln werde, unterschiedliche Ruf-Punkte haben? Wenn jetzt also Party 1 Ruf bei der Fraktion 1 auf "Freundlich" hatt, Party 2 aber auf "Hasserfüllt" - wie kann ich das beim Partyswitch am effektivsten ändern, sodass beim zurückswitcehn wieder die ehemaligen Rufpunkte vorhanden sind?

Sprich: Abspeichern von bestimmten Fraktions-Konstellationen und die Möglichkeit, sie wieder zu laden, wenn Party 1 wieder am Zug ist.

So etwas ähnliches gab es für Item-Listen, dass sich die Items von zwei Gruppen unterscheiden konnten.

Verstehst du, worauf ich hinaus will? ^^

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

35

Dienstag, 7. Juli 2009, 23:06

Zitat

Verstehst du, worauf ich hinaus will? ^^
Ja, aber ich verstehe nicht, warum du mir sowas nicht vorher sagst...


Spoiler

Ruby 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Call Script zum Hinzufügen einer Fraktion:
#  f = "Fraktionsname"
#  a = [Stufe (erste Stufe = 0), Punkte]
#  $game_system.reputation[Partyid][f] = a
# Call Script zum ändern der Punkte einer Fraktion:
#  a = ["Fraktionsname", Punkteerhöhung (negative Zahl für Verringerung)]
#  $game_system.add_reputation(a, Partyid)
 
class Scene_Reputation
 
  Fraktionen = ["Doofköppe", "Hanswürste", "Kuhle Schwule", "Tanzbären"]
 
  # ["Name", Farbe (Color.new(Rot, Grün, Blau)), Punkte]
  Stufen = [["Todfeinde", Color.new(0, 0, 0), 10000],
        	["Hasserfüllt", Color.new(255, 0, 0), 5000],
        	["Feindselig", Color.new(140, 50, 0), 200]
        	]
  # Zeile 27: Anzahl der Spielergruppen
 
end
 
class Game_System
  attr_accessor :reputation
  alias_method :sdunhabguidiogudfasguidbasfgibasdf, :initialize
  def initialize
	sdunhabguidiogudfasguidbasfgibasdf
	@reputation = Array.new(2) {|n| Hash.new}
  end
  def add_reputation(array, id)
	key = array[0]
	n = array[1]
	return if !@reputation[id].has_key?(key)
	array = @reputation[id][key]
	array[1] += n
	if array[1] > Scene_Reputation::Stufen[array[0]][2]
  	array[1] = 0
  	array[0] = [array[0]+1, Scene_Reputation::Stufen.size-1].min
	elsif array[1] < 0
  	array[0] = [array[0]-1, 0].max
  	array[1] = Scene_Reputation::Stufen[array[0]][2]+array[1]
	end
  end
end
 
class Scene_Reputation
 
  def main
	@spriteset = Spriteset_Map.new
	@window = Window_Reputation.new
	Graphics.transition
	until $scene != self
  	Graphics.update
  	Input.update
  	update
	end
	Graphics.freeze
	@spriteset.dispose
	@window.dispose
  end
 
  def update
	@window.update
	if Input.trigger?(Input::B)
  	$game_system.se_play($data_system.cancel_se)
  	$scene = Scene_Menu.new(7)
	end
  end
 
end
 
class Window_Reputation < Window_Base
 
  def initialize
	super(65, 0, 510, 480)
	self.back_opacity = 155
	@windows = []
	refresh
  end
 
  def refresh
	@windows.each {|i| i.dispose}
	@windows = []
	self.contents.dispose if self.contents.is_a?(Bitmap) and !self.contents.disposed?
	hash = $game_system.reputation
	h = hash.size*32
	if h == 0
  	self.contents = Bitmap.new(width-32, 64)
  	b = make_ueberschrift
  	self.contents.blt(0, 0, b, b.rect)
  	return
	end
	self.contents = Bitmap.new(width-32, h+64)
	b = make_ueberschrift
	self.contents.blt(0, 0, b, b.rect)
	y = 0
	for i in Scene_Reputation::Fraktionen
  	if hash.has_key?(i)
    	draw_item(i, hash[i][0], hash[i][1], (y*35)+64)
    	y += 1
  	end
	end
	@max_scroll = [self.contents.height-448, 0].max
  end
 
  def dispose
	super
	@windows.each {|i| i.dispose}
  end
 
  def draw_item(name, level, punkte, y)
	array = Scene_Reputation::Stufen[level]
	# Name
	rect = Rect.new(0, y, 170, 32)
	self.contents.draw_text(rect, name, 1)
	# Stufe
	rect = Rect.new(340, y, 170, 32)
	self.contents.draw_text(rect, array[0], 1)
	# Balken
	b = create_balken(array[1], punkte, array[2])
	self.contents.blt(170, y+4, b, b.rect)
	add_window(Rect.new(0, y, self.width, 32))
  end
 
  def create_balken(color, punkte, maxpunkte)
	bitmap = Bitmap.new(170, 24)
	bitmap.fill_rect(bitmap.rect, Color.new(0,0,0))
	s = 3
	bitmap.fill_rect(s, s, bitmap.width-s*2, bitmap.height-s*2, Color.new(0,0,0,0))
	w = bitmap.width-s*2
	percent = punkte.to_f / maxpunkte
	w_perc = (w*percent).round
	bitmap.fill_rect(Rect.new(s, s, w_perc, bitmap.height-s*2), color)
	string = "#{punkte} / #{maxpunkte}"
	bitmap.draw_text(bitmap.rect, string, 1)
	[0, bitmap.width-1].each {|x| [0, bitmap.height-1].each {|y| bitmap.set_pixel(x, y, Color.new(0,0,0,0))}}
	bitmap
  end
 
  def update
	super
	speed = 3
	if Input.press?(2)
  	self.oy = [self.oy-speed, 0].max
	elsif Input.press?(8)
  	self.oy = [self.oy+speed, @max_scroll].min
	end
  end
 
  def make_ueberschrift
	bitmap = Bitmap.new(width-32, 64)
	bitmap.font.size = 35
	bitmap.draw_text(bitmap.rect, "Ansehen in Gérennia", 1)
	bitmap
  end
 
  def add_window(rect)
	x, y, w, h = rect.x+16+self.x, rect.y+16+self.y, rect.width-32, rect.height
	w = Window_Base.new(x,y,w,h)
	w.back_opacity = 0
	@windows << w
  end
 
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

36

Dienstag, 7. Juli 2009, 23:11

ICH nicht, ja - aber es wurde bereits angesprochen:

Zitat

Eizelne NPCs zu Player-C (bzw errechnen sich daraus gruppen)

zb NPC1 und NPC2 sind in gruppe X
NPC1 hat zum Player 1 eine reputation von 500
zu Player 2 eine Reputation von 100
NPC2 hat zu Player 1 eine Reutation von 600
zu Player 2 keine (wird vernachlässigt)

NPC1 reputation zu Gruppe (P1+P2) = 600 (oder besser vllt durchschnitt -> 300)
NPC2 reputation zu Gruppe (P1+P2) = 600

Gruppe X hat zu Player1 eine reputation von 550
Gruppe X hat zu Player2 eine reputation von 100
und zur Player truppe 400

=> es könnte von vorteil für Player1 sein wenn Player2 nicht im team grade ist :-P
(Player 1 wäre Character in Party 1 und Player 2 in Party 2)

Da Hanmac gesagt hatte, ihr beide würdet euch in der Beziehung kruz schließen und er das so gegliedert einmal aufgeführt hat, dachte ich, das würde reichen. Aber offenbar hat er sich nicht mit dir auseinandergesetzt, hm?

Es tut mir leid, wenn also dadurch mehr Arbeit für dich entstanden ist... War nicht meien Absicht ^^

Magst du mir zu deinem Script oben noch ein paar Erläuterungen geben?
Sobald ich es in das ehemalige Projekt einfüge, damit das alte Rufsystem überschreibe, kommt es zu Fehlermeldungen:

Beim Ansprechen des NPCs:

Zitat

TypeError occured while running script.

cannot convert String into Integer
Beim öffnen des Ruffensters:

Zitat

Script 'Ruf' line 97: NoMethodError occured.

undefined method 'has_key?' for [{}, {}]:Arry

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Redman« (7. Juli 2009, 23:25)


Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

37

Mittwoch, 8. Juli 2009, 21:46

Spoiler

Ruby 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#Call Script zum ändern der aktuellen Party-ID:
#  $game_system.reputation_group = ID
#Call Script in einem CB zum Abfragen der Werte
#  (n muss hier ersetzt werden duch 0 für den Level der Fraktion oder 1 für die Punkte)
#  $game_system.reputation[$game_system.reputation_group][n] (>/</>=/<=/==) 0
#Call Script zum Hinzufügen einer Fraktion:
#  f = "Fraktionsname"
#  x = $game_system.reputation_group
#  a = [Stufe (erste Stufe = 0), Punkte]
#  $game_system.reputation[x][f] = a
# Call Script zum ändern der Punkte einer Fraktion:
#  a = ["Fraktionsname", Punkteerhöhung (negative Zahl für Verringerung)]
#  $game_system.add_reputation(a)
 
class Scene_Reputation
 
  Fraktionen = ["Doofköppe", "Hanswürste", "Kuhle Schwule", "Tanzbären"]
 
  # ["Name", Farbe (Color.new(Rot, Grün, Blau)), Punkte]
  Stufen = [["Todfeinde", Color.new(0, 0, 0), 10000],
        	["Hasserfüllt", Color.new(255, 0, 0), 5000],
        	["Feindselig", Color.new(140, 50, 0), 200]
        	]
  # Anzahl der Spielergruppen
  Playergroups = 2
 
end
 
class Game_System
  attr_accessor :reputation
  attr_accessor :reputation_group
  alias_method :sdunhabguidiogudfasguidbasfgibasdf, :initialize
  def initialize
	sdunhabguidiogudfasguidbasfgibasdf
	@reputation = Array.new(Scene_Reputation::Playergroups) {|n| Hash.new}
	@reputation_group = 0
  end
  def add_reputation(array)
	id = $game_system.reputation_group
	key = array[0]
	n = array[1]
	return if !@reputation[id].has_key?(key)
	array = @reputation[id][key]
	array[1] += n
	if array[1] > Scene_Reputation::Stufen[array[0]][2]
  	array[1] = 0
  	array[0] = [array[0]+1, Scene_Reputation::Stufen.size-1].min
	elsif array[1] < 0
  	array[0] = [array[0]-1, 0].max
  	array[1] = Scene_Reputation::Stufen[array[0]][2]+array[1]
	end
  end
end
 
class Scene_Reputation
 
  def main
	@spriteset = Spriteset_Map.new
	@window = Window_Reputation.new
	Graphics.transition
	until $scene != self
  	Graphics.update
  	Input.update
  	update
	end
	Graphics.freeze
	@spriteset.dispose
	@window.dispose
  end
 
  def update
	@window.update
	if Input.trigger?(Input::B)
  	$game_system.se_play($data_system.cancel_se)
  	$scene = Scene_Menu.new(7)
	end
  end
 
end
 
class Window_Reputation < Window_Base
 
  def initialize
	super(65, 0, 510, 480)
	self.back_opacity = 155
	@windows = []
	refresh
  end
 
  def refresh
	@windows.each {|i| i.dispose}
	@windows = []
	self.contents.dispose if self.contents.is_a?(Bitmap) and !self.contents.disposed?
	hash = $game_system.reputation[$game_system.reputation_group]
	h = hash.size*32
	if h == 0
  	self.contents = Bitmap.new(width-32, 64)
  	b = make_ueberschrift
  	self.contents.blt(0, 0, b, b.rect)
  	return
	end
	self.contents = Bitmap.new(width-32, h+64)
	b = make_ueberschrift
	self.contents.blt(0, 0, b, b.rect)
	y = 0
	for i in Scene_Reputation::Fraktionen
  	if hash.has_key?(i)
    	draw_item(i, hash[i][0], hash[i][1], (y*35)+64)
    	y += 1
  	end
	end
	@max_scroll = [self.contents.height-448, 0].max
  end
 
  def dispose
	super
	@windows.each {|i| i.dispose}
  end
 
  def draw_item(name, level, punkte, y)
	array = Scene_Reputation::Stufen[level]
	# Name
	rect = Rect.new(0, y, 170, 32)
	self.contents.draw_text(rect, name, 1)
	# Stufe
	rect = Rect.new(340, y, 170, 32)
	self.contents.draw_text(rect, array[0], 1)
	# Balken
	b = create_balken(array[1], punkte, array[2])
	self.contents.blt(170, y+4, b, b.rect)
	add_window(Rect.new(0, y, self.width, 32))
  end
 
  def create_balken(color, punkte, maxpunkte)
	bitmap = Bitmap.new(170, 24)
	bitmap.fill_rect(bitmap.rect, Color.new(0,0,0))
	s = 3
	bitmap.fill_rect(s, s, bitmap.width-s*2, bitmap.height-s*2, Color.new(0,0,0,0))
	w = bitmap.width-s*2
	percent = punkte.to_f / maxpunkte
	w_perc = (w*percent).round
	bitmap.fill_rect(Rect.new(s, s, w_perc, bitmap.height-s*2), color)
	string = "#{punkte} / #{maxpunkte}"
	bitmap.draw_text(bitmap.rect, string, 1)
	[0, bitmap.width-1].each {|x| [0, bitmap.height-1].each {|y| bitmap.set_pixel(x, y, Color.new(0,0,0,0))}}
	bitmap
  end
 
  def update
	super
	speed = 3
	if Input.press?(2)
  	self.oy = [self.oy-speed, 0].max
	elsif Input.press?(8)
  	self.oy = [self.oy+speed, @max_scroll].min
	end
  end
 
  def make_ueberschrift
	bitmap = Bitmap.new(width-32, 64)
	bitmap.font.size = 35
	bitmap.draw_text(bitmap.rect, "Ansehen in Gérennia", 1)
	bitmap
  end
 
  def add_window(rect)
	x, y, w, h = rect.x+16+self.x, rect.y+16+self.y, rect.width-32, rect.height
	w = Window_Base.new(x,y,w,h)
	w.back_opacity = 0
	@windows << w
  end
 
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

38

Mittwoch, 8. Juli 2009, 22:10

Hey! Funktioniert soweit super - bis auf eine Sache, leider...

Ich wähle für meine Gruppe die ID = 1 aus, dann hole ich mir einmal Ruf.

Dann wähle ich für die ID = 2 aus und will das Ruffenster öffnen und bekomme folgenden Fehler:
Bild

Eine Idee?

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

39

Mittwoch, 8. Juli 2009, 22:11

Hast du die Größe 2 gelassen?
Der erste Index ist 0, nicht 1.
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Redman

Ankömmling

  • »Redman« ist der Autor dieses Themas

Motto: Yar, me Heaties, be thou kind or me will bring ye to Davy Jones' Locker!

  • Nachricht senden

40

Mittwoch, 8. Juli 2009, 22:13

He... he... Ups ^^"

Jetzt funktioniert alles perfekt!

Ich danke dir; ich würde vor dir auf die Knie fallen, wenn da nicht mein schlimmes Knie wär*... ;)

~Red

(Das Banner anklicken, um zur Projektvorstellung zu gelangen.)

Ähnliche Themen

Social Bookmarks