• Anmelden

1

Sonntag, 1. März 2009, 21:05

Suche spezielles Balken-Script

Abend!

Also, ich suche ein Script, welches mir ermöglicht von zwei Variablen einen Balken zu erstellen. Und zwar wie folgend: Ich gebe zwei Variablen an, z.B. Var1 = 1, Var2 = 10. Jetzt würde ich gern einen Balken haben, den ich an einer Position (gut wäre mit EventId bzw. 'Player') anzeigen kann, der mir "1 aus 10" anzeigt. Also wie bei nem Lebensbalken: 1 Leben von 10 Maximalen Leben. Ich brauche aber ein Script, das nicht einen HP-Balken macht, sondern eben mit Variablen, sich am besten per Call-Script aufrufen und auch wieder löschen lässt.
Hier ein Screenshot wie das aussehen sollte:

Bild

Das Script muss nicht ganz genau so funktionieren, es sollte nur ungefähr den Zweck erfüllen, HP-Balken mittels Variablen über Gegner(events) und Player anzeigen zu lassen und bei nichtgebrauch wieder zu entfernen. Die Konfiguration wäre mir am liebsten wie folgend:

$balken.push(Event_ID,Variable)

Das ist der Code aus dem Actionanzeigescript von markusmks und soll ungefähr darstellen wie ich mir das vorstelle. Die Balken sollte am besten mit zwei Bildern (1.Bild: Balkenhintergrund/leerer Balken; 2.Bild: Balkenvordergrund/Balken voll).

Ich nehme wohl auch hier an dass es soetwas nicht schon gibt? Wäre auch cool falls es jemand schreiben oder einfach posten, falls schon vorhanden, könnte. Danke im Vorraus.
Terranigma 2 - Episode I - Open Beta out now!

RPC - Rpg-Maker Community Platform - Spielübergreifende Erfolge und mehr!

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

2

Sonntag, 1. März 2009, 22:22

Habs mal probiert, hat aber noch den Fehler, dass nur ein Blaken für die Events geht :/
Ich hab jetzt keien Zeit mehr für debugging, wenn jemand anders sich dran versuchen will, gern^^
Ansonsten mach ich das morgen...
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
class Balken
  Breite = 15
  Hoehe = 5
  Gruen = Color.new(0,255,0)
  Rot = Color.new(255,0,0)
 
  attr_accessor :sprite
  attr_accessor :event
 
  def initialize
	@bmp = ""
	@sprite = Sprite.new
	@sprite.bitmap = Bitmap.new(Breite,Hoehe)
	@event = nil
  end
 
  def refresh(green)
	@sprite.bitmap.clear
	rect1 = Rect.new(0,0,Breite/green,Hoehe)
	rect2 = Rect.new(Breite/green,0,Breite-Breite/green,Hoehe)
	@sprite.bitmap.fill_rect(rect1,Gruen)
	@sprite.bitmap.fill_rect(rect2,Rot)
	update
  end
 
  def update
	x = @event.screen_x
	y = @event.screen_y
	dummy_bitmap = RPG::Cache.character(@event.character_name,0)
	x += dummy_bitmap.width/4/4
	x -= Breite
	y -= dummy_bitmap.height/4+8
	@sprite.x = x
	@sprite.y = y
  end
 
  def dispose
	@sprite.bitmap.dispose
	@sprite.dispose
  end
end
 
class Game_Map
  attr_accessor :balken
  alias oldbalkenini initialize
  def initialize(*args)
	@balken = {}
	oldbalkenini(*args)
  end
 
  alias oldbalkenset setup
  def setup(*args)
	for i in @balken.values
  	i.dispose
	end
	@balken = {}
	oldbalkenset(*args)
  end
 
  alias oldbalkenup update
  def update(*args)
	oldbalkenup(*args)
	for i in @balken.values
  	i.update
	end
  end
end
 
class Interpreter
  def add_balken(event_id)
	i = Balken.new
	if event_id == 0
  	char = $game_player
	else
  	char = $game_map.events[event_id]
	end
	i.event = char
	$game_map.balken[event_id] = i
  end
 
  def remove_balken(event_id)
	for n in $game_map.balken.keys
  	if n == event_id
    	$game_map.balken[n].dispose
    	$game_map.balken[n] = nil
  	end
	end
	$game_map.balken.compact!
  end
 
  def refresh_balken(event_id,var1,var2)
	wert = var1.to_f/var2.to_f
	$game_map.balken[event_id].refresh(wert)
  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

3

Montag, 2. März 2009, 08:55

Besten Dank, ich probiers aus wenn ich zuhause bin und sag dir falls es Bugs gibt.
Terranigma 2 - Episode I - Open Beta out now!

RPC - Rpg-Maker Community Platform - Spielübergreifende Erfolge und mehr!

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

4

Montag, 2. März 2009, 15:47

Der Fehler lag nicht im Skript sondern bei meinen Events Bild

Aber jetzt ist immer noch ein Fehler da und das liegt wirklich nicht an den Events^^
Aber ich hab auch echt keine AHnugn, was da falsch ist :/
Das kommt, wenn die Events zu breit sind...
ABer hier schonmal das (fast) bugfreie SKript
»Neo-Bahamut« hat folgende Datei angehängt:
  • Balken.rar (181,53 kB - 12 mal heruntergeladen - zuletzt: 12. Juni 2012, 19:26)
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

5

Montag, 2. März 2009, 17:31

Super, das klappt sehr gut, mir ist (soweit ich das jetzt getestet hab), der von dir genannte Bug nicht aufgefallen. Lediglich eine Kleinigkeit wäre vllt noch zu ändern, das könnte ich auch mit umrechnen machen aber...
Und zwar folgendes: Ich habe jetzt die Variable 55 mit meiner derzeitigen Gesundheit (10) und die Variable 57 mit der maximalen Gesundheit (auch 10). Nur wenn ich jetzt angebe:

Quellcode

1
2
3
4
add_balken(0)
x = $game_variables[55]
y = $game_variables[57]
refresh_balken(0,x,y)


wird der Balken halb rot/halb grün angezeigt. Gut wäre halt wenn die Prozentzahl Rot/Grün nicht direkt aus den Variablen (also in dem Fall 10:10 = 1:1) sondern aus dem Verhältniss der zwei Variablen mit ner Formel berechnet werden würden... sodass 10 und 10 nen vollen Balken, 5 und 10 nen halbvollen usw ergeben würden. Kannst du das noch schnell machen? ansonsten wirklich cooles script und kann ich so in der Form auch super verwenden.
Terranigma 2 - Episode I - Open Beta out now!

RPC - Rpg-Maker Community Platform - Spielübergreifende Erfolge und mehr!

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

6

Montag, 2. März 2009, 18:47

Kannst du das nicht noch schnell im Call Script ändern? :o
Einfach

Ruby Quellcode

1
refresh_balken(0,x,y-x)
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

7

Montag, 2. März 2009, 19:00

Hm... mal probieren^^
Edit: Ging natürlich... bin ich blöd -.-
Also, danke fürs Script.. kommst natürlich in die Credits^^
Terranigma 2 - Episode I - Open Beta out now!

RPC - Rpg-Maker Community Platform - Spielübergreifende Erfolge und mehr!

Ähnliche Themen

Social Bookmarks