• Anmelden

Lhama

Ankömmling

  • »Lhama« ist der Autor dieses Themas

Motto: I only want to get my kicks before the whole shit blows up

  • Nachricht senden

1

Dienstag, 24. November 2009, 18:42

$cene highscore ???

Gibt es schon ein $cene highscore script ????, wenn ja brauch ich das
müsste doch easy zum umsetzten gehn oder??? stell mich mal blöd :)

2

Dienstag, 24. November 2009, 18:46

Das gibt es schon in diversen Spielen, ist auch leicht zu machen - nur was willst du da angezeigt haben?
Game Variablen? Die Namen der Helden in der Party? Du musst etwas konkreter sein, damit man dir besser helfen kann. =)

Lhama

Ankömmling

  • »Lhama« ist der Autor dieses Themas

Motto: I only want to get my kicks before the whole shit blows up

  • Nachricht senden

3

Dienstag, 24. November 2009, 19:01

details

also es wird nur ein 1player game das gold als highscore anzeigen hab ich geschafft. Nur fehlt mir
die veränderbare tabelle mit 1. aaa - 999999 punkte
2. bbb - 234567 punkte
.....
and your rank is 3. with 1 punkt so in etwa, wär doch cool als scene abzufragen
muss auch nicht das gold sein kann auch eine x beliebige variable sein. :rolleyes:

4

Dienstag, 24. November 2009, 23:26

Also ich könnte mir das so vorstellen:
Man erstellt eine speicherbare Klasse die die Highscore enthält, sammt einer Methode um neue Highscore Punkte hinzu zufügen. Diese speichert man, und fügt bei Bedarf neue Highscores ein. Mein Vorschlag:
Spoiler: Codes

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
class Highscore_Liste
  #-----------------------------------------------------------------------------
  # Initialize
  #-----------------------------------------------------------------------------
  def initialize
	@liste = [[0,"- - - - -"]]
  end
  #-----------------------------------------------------------------------------
  # Füge einen 'Score' hinzu
  #-----------------------------------------------------------------------------
  def add_score(punkte,name)
	for i in 0..@liste.size-1 do
  	if(@liste[i][0] < punkte) then
    	@liste[i,0]= [[punkte,name]]; break;
  	end
	end
	if(@liste.size > 10) then
  	@liste = @liste[0..9]
	end
  end
  #-----------------------------------------------------------------------------
  # Methode um die Liste abzufragen
  #-----------------------------------------------------------------------------
  def data
	@liste
  end
  #-----------------------------------------------------------------------------
  # Speichern der Liste
  #-----------------------------------------------------------------------------
  def self.save
	save_data($highscore_liste, "highscore.rxdata")
  end
end
Ein Window was alles anzeigt:

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
#==============================================================================
# ** Window_Highscore
#==============================================================================
class Window_Highscore < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
	super(0, 0, 640, 480)
	self.contents = Bitmap.new(width - 32, height - 32)
	refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
	# Bitmap leeren
	self.contents.clear
	# schreibe die Überschriften
	self.contents.font.color = system_color
	self.contents.draw_text(  0, 0, 304, 32, "Name"   ,1)
	self.contents.draw_text(304, 0, 304, 32, "Punkte" ,1)
	# Schreibe die Punkte mit Namen
	self.contents.font.color = normal_color
	for i in 0..$highscore_liste.data.size-1 do
  	name   = $highscore_liste.data[i][1].to_s
  	punkte = $highscore_liste.data[i][0].to_s
  	y = i * 32 + 64
  	self.contents.draw_text( 32, y, 256, 32, name  )
  	self.contents.draw_text(352, y, 256, 32, punkte)
  	self.contents.draw_text( 4, y, 32, 32, "#{i}",2)
	end
  end
end
dazu eine passende Szene

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
class Scene_Highscore
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
	# Window erstellen
	@window = Window_Highscore.new()
	# Execute transition
	Graphics.transition
	# Main loop
	loop do
  	# Update Game Screen
  	Graphics.update
  	# Update Input Informationen
  	Input.update
  	# Frame Update
  	update
  	# Loop abbrechen wenn $scene nichtmehr diese ist
  	if($scene != self)then;break;end;
	end
	# Game Screen nichtmehr neuzeichnen
	Graphics.freeze
	# Fenstergrafik wieder löschen
	@window.dispose
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
	if Input.trigger?(Input::B)
  	$scene = Scene_Map.new
	end
  end
end
und anpassungen im Scene_Title

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
class Scene_Title
  # sowas wie eine Kopie von main erstellen
  alias die_normalen_main_zeilen_ohne_playms_edit main
  # Main neu definieren
  def main
	if FileTest.exist?("highscore.rxdata") then
  	$highscore_liste = load_data("highscore.rxdata")
	else
  	$highscore_liste = Highscore_Liste.new()
	end
	die_normalen_main_zeilen_ohne_playms_edit
  end
end
Nun kannst du die Highscore Liste mit dem CallScript: Highscore_Liste.save
speichern oder per $highscore_liste.add_score( punkte , name ) neue Punkte hinzufügen.
Der Vorteil ist das du nicht an bestimmte Variablen gebunden bist, sondern alles mögliche übergeben kannst. Beispiel: $highscore_liste.add_score( $game_variables[5] , $game_party.actors[0] )
zum Lesen den Text mit der Maus markieren


EDIT: Ich frag mich warum seit ich Firefox nutze, die Codeformatierung beim Absenden so zerstört wird =/

Lhama

Ankömmling

  • »Lhama« ist der Autor dieses Themas

Motto: I only want to get my kicks before the whole shit blows up

  • Nachricht senden

5

Mittwoch, 25. November 2009, 18:36

vorschlag

klingt super dein vorschlag doch krieg ich das selbst nicht hin,
mit eigenen window und self.contents.draw_text("und sowiso und überhaupt") würde das bei mir viel zu lang dauern
und zum schluss e nur im papierkorb landen. Bsp.:

def script_anfrage
if @someone_have_Higscorescript = true
@egal = false
post it here + 1
else
@egal = true
post it here = 0
end
end
;)

6

Mittwoch, 25. November 2009, 22:15

Also rein theoretisch, ist mein Vorschlag mit Copy&Past einsatzfertig ;)
Aber wegen der kaputten Formatierung, hab ich es nochmal sauber formatiert als txt-Dokument angehängt. Einfach beide mit dem Texteditor öffnen und als jeweils neues Script über Main einfügen.
Mit dem Befehl: $scene = Scene_Highscore.new kannst du dir die Highscores anzeigen lassen
Mit $highscore_liste.add_score( 5 , "Playm" ) fügst du der Liste einen neuen Highscore mit 5 Punkten und dem Spielernamen "Playm" hinzu. An die stelle kannst du auch Variablen setzen, zB. statt "Playm" schreibst du $game_party.actors[0].name und es wird der Name des ersten Partymitglieds übergeben

Ruby Quellcode

1
 $highscore_liste.add_score( 5 , $game_party.actors[0].name ) 


Nun, und wenn du gern mehr über RGSS lernen würdest kann ich den Grundkurs auf Scientia nur empfehlen.
»Playm« hat folgende Dateien angehängt:

Lhama

Ankömmling

  • »Lhama« ist der Autor dieses Themas

Motto: I only want to get my kicks before the whole shit blows up

  • Nachricht senden

7

Donnerstag, 26. November 2009, 17:47

is nicht wahr

zu abgefahren echt ich glaubs nicht für die Zeilen hätt ich ewig gebraucht. Nr.1 Krigst du platz 1 in meiner
Highscore list mit 999999999punkten oder so und zweitens kann ich sehr viel lernen von dem skript. Der RGSS Kurs wird wohl wirkich Zeit für mich. Kriegst nochn fetten Crediteintrag is logo.
Lob an die ganze comunity. (ein Meilenstein dieses Skript :lol: )
:D Arcade forever :D

Social Bookmarks