• Anmelden

1

Mittwoch, 15. August 2007, 07:33

Questlog

Hallo Leute, neuer Tag und neues Problem: Wie Im Titel erwähnt suche ich ein Questlog (Das von Cäsar ist mir bekannt, funzt aber bei SdK angeblich nicht). Es soll sich per Code öffnen lassen und ohne allen Schnickschnack sein. Das bedeutet, dass ich keine Statistik will, die mir sagt wie lang ich gebraucht habe , sondern einfach aus Titel des Quests, Beschreibung(mit villeicht einem Bild) und nach abgschlossener Mission eine schönes Häckchen hintendran :-) Wenn es ein paar Zusatzfunktionen hat, die leicht verständlich sind, wäre ich auch nicht unzufrieden. thx im voraus.
Langsam ziehe ich meine Runden und beobachte jene, die nur im Kreis laufen.

2

Freitag, 17. August 2007, 10:10

Hm, schwierig. Einerseits willst du es möglichst simpel, andererseits Zusatzfunktionen OO
Also hier ist ein einfaches Quest Skript, das ich heute morgen erstellt habe.
Wenn du Fragen hast, stell' sie ruhig ^^

Spoiler

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
# Quest Skript by Creaping
$quest = []
class Quest
  attr_accessor :beschreibung
  attr_accessor :titel
  attr_accessor :erledigt
  attr_accessor :bild
 
  def initialize(titel)
	@titel = titel
	@beschreibung = "keine vorhanden"
	@erledigt = false
	@bild = "001-Fighter01"
  end
end
 
class Window_Questlog < Window_Selectable
  def initialize
	super(0,0,200,480)
	self.contents = Bitmap.new(width - 32, height - 32)
	self.contents.font.name = $defaultfonttype 
	self.contents.font.size = $defaultfontsize
	@item_max = $quest.size
	@column_max = 1
	self.index = 0
	self.active = true
	refresh
  end
 
  def refresh
	x = 0
	for i in 0...$quest.size
  	y = 32* i
  	if $quest[i].erledigt
    	bitmap = RPG::Cache.icon("018-Accessory03")
    	self.contents.blt(0, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  	end
 
    	self.contents.draw_text(28,y, self.width, 32, $quest[i].titel)
	end
  end
  def update_cursor_rect
	self.cursor_rect.set(0, @index * 32, 200-32, 32)
  end
 
end
 
 
  # ------------
 
  class Window_Questinfo < Window_Base
	def initialize
  	super(200,0, 440, 480)
  	self.contents = Bitmap.new(width - 32, height - 32)
  	self.contents.font.name = $defaultfonttype
  	self.contents.font.size = $defaultfontsize
	end
	def update(index)
  	self.contents.clear
  	if $quest[index].bild != nil
    	bitmap = RPG::Cache.battler($quest[index].bild, 0)
    	#mach' aus "battler" ein "picture", wenn du deine Bilder aus dem Picture Ordner willst
    	self.contents.blt((self.width-bitmap.width)/2, y + 4, bitmap, Rect.new(0, 0, 440, 300))
    	end
  	self.contents.draw_text(0,300, self.width, 32, $quest[index].titel, 1)
	end
  end
 
  # --------------------------------------
 
  class Scene_Questlog
	def main
  	@window_quest = Window_Questlog.new
  	@window_info = Window_Questinfo.new
  	Graphics.transition
  	loop do
    	Graphics.update
    	Input.update
    	update
    	if $scene != self
      	break
    	end
  	end
  	Graphics.freeze
  	@window_quest.dispose
  	@window_info.dispose
	end
 
	def update
  	@window_quest.update
  	@window_info.update(@window_quest.index)
  	if Input.trigger?(Input::B)
    	$scene = Scene_Map.new
  	end
	end
  end
 


zum Lesen den Text mit der Maus markieren


In diesem Skript wird die Variable $quest zum Speichern der Quests genutzt.
Die Variable muss natürlich abgespeichert werden.
Deswegen öffnest du den Skript Editor und fügst bei Scene_Save
unter der Zeile 82:

Quellcode

1
2
Marshal.dump($game_player, file)
Marshal.dump($quest, file) # <-- Diese Zeile ist hinzugekommen


Damit die Variable auch geladen wird, bei Scene_Load unter Zeile 82

Quellcode

1
2
$game_player    	= Marshal.load(file)
$quest    	= Marshal.load(file)


Wenn du noch ausprobieren willst, wie das am Ende aussieht, erstelle
nach dem Einfügen der Skript Dateien ein neues NPC, das folgendes
Skript ausgibt:
Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
$quest[0] = Quest.new("Bier holen")
$quest[0].bild = "081-Angel03"
$quest[1] = Quest.new("Garten säubern")
$quest[1].bild = "019-Thief04"
$quest[2] = Quest.new("Questlog erstellen")
$quest[2].bild = nil
$quest[2].erledigt = true
$quest[3] = Quest.new("Standart")
$scene = Scene_Questlog.new

zum Lesen den Text mit der Maus markieren

3

Freitag, 17. August 2007, 17:23

Den Questlog 2.0 von Caeser findest du im RMXP Script Explorer
von Monsta (Kannst du auf unserer Hauptseite runterladen).
Original-Thread zum Questlog 3.0 findest du auf rpg-xp.net:
http://forum.rpg-xp.net/thread.php?threadid=3986

~Bye Hybbie
Nichts und unbrauchbar...
Sollte mich jemand suchen, ich habe mich nun komplett aus der Szene zurückgezogen und
habe momentan auch keinen festen Internetzugang...Ich wünsche euch allen viel Erfolg.

Social Bookmarks