Hallo Leutz!
Ich bin ein alter RM2k Hase, aber mit den Scripts noch nie klar gekommen.
HILFE!
Ich arbeite gerade an meinem neuen Projekt, einem Adventure alter "Point&Click" Schule.
Steuerung wird natürlich per Richtungstasten funkzn., aber es wird ein tolles Auswahlmenü geben, mit dem ihr untersuchen, sprechen und benutzen könnt.
ouhh....ich komme von Thema ab, ...
...also:
Ich habe mir ein tolles RingMenü (glaube von MakirouAru) in mein Script Editor reingepffifen.
Auswahlmöglichkeiten:
-Item
-skill
-equipt
-status
-save
-exit
Und ich habe ein supertolles Questlog-Script von Caesar.
Meine Bitte:
Da es ja ein Adventure sein soll, brauche ich die Status-Auswahlmöglichkeit nicht!
Statdessen bräuchte ich eine Verknüpfung (an Stelle von Status) mit dem Questlog.
Wenn mir nur jemand helfen könnte!
Ich bedanke mich schon mal jetzt für eure Hilfe!
Ich bin ein alter RM2k Hase, aber mit den Scripts noch nie klar gekommen.
HILFE!
Ich arbeite gerade an meinem neuen Projekt, einem Adventure alter "Point&Click" Schule.
Steuerung wird natürlich per Richtungstasten funkzn., aber es wird ein tolles Auswahlmenü geben, mit dem ihr untersuchen, sprechen und benutzen könnt.
ouhh....ich komme von Thema ab, ...
...also:
Ich habe mir ein tolles RingMenü (glaube von MakirouAru) in mein Script Editor reingepffifen.
Auswahlmöglichkeiten:
-Item
-skill
-equipt
-status
-save
-exit
Und ich habe ein supertolles Questlog-Script von Caesar.
Meine Bitte:
Da es ja ein Adventure sein soll, brauche ich die Status-Auswahlmöglichkeit nicht!
Statdessen bräuchte ich eine Verknüpfung (an Stelle von Status) mit dem Questlog.
Wenn mir nur jemand helfen könnte!
Ich bedanke mich schon mal jetzt für eure Hilfe!
@Status_One
Schau dir das mal an, könnte für Point & Click hilfreich sein:
Analog Movement mit Maus-Unterstützung
Schau dir das mal an, könnte für Point & Click hilfreich sein:
Analog Movement mit Maus-Unterstützung
Rabu
Zitat von »"Lelli"«
Dann Brauche ich noch den Class Name deines Questlogs
Wozu das denn? Der bringt dir nix^^
Zitat von »"Lelli"«
oder sende mir das einfach auch.
das schon eher^^
Questlog
@Status_One: Ich hab das Questlog-Script ein klein wenig geändert und im Ringmenü-Script die Status Option mit dem Questlog ersetzt.
Hier das modifizierte Ringmenü:
(s.u.)
Hier das etwas geänderte Questlog-Script:
|
|
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 |
#//////////////////////////////////////////////Questlog///////////////////////////////////////////////
#~~~~~~~~~~~~~~~~~~~~by Caesar~~~~~~~~~~~~~~~~~~~~
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#_________________________________________________
class Scene_Questlog
def main
@window_titles = Window_Questlog_Titles.new
@window_questlog_title = Window_Questlog_Title.new
@window_description = (
$game_system.questlog.count > 0 ? Window_Questlog_Description.new(
$game_system.questlog.quests[0].description,
$game_system.questlog.quests[0].picture) :
Window_Questlog_Description.new("", ""))
@spriteset = Spriteset_Map.new
@index = @window_titles.index
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_titles.dispose
@window_questlog_title.dispose
@window_description.dispose
@spriteset.dispose
end
#--------------------------------------------------------------------------
def update
@window_titles.update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new
return
end
if @index != @window_titles.index
@index = @window_titles.index
@window_description.description = $game_system.questlog.quests[@window_titles.index].description
@window_description.picture = $game_system.questlog.quests[@window_titles.index].picture
@window_description.refresh
end
end
end
#=============
class Quest
attr_reader :title
attr_reader :description
attr_reader :icon
attr_reader :picture
def initialize(title, description, icon="", picture="")
@title = title
@description = description
@icon = icon
@picture = picture
end
end
#============
class Questlog
attr_reader :quests
def initialize
@quests = []
end
#-----------
def add(quest)
@quests.push(quest)
end
#-----------
def remove(title)
@quests.delete_if{ |quest| quest.title == title}
end
#-----------
def count
return @quests.length
end
end
#=============
class Window_Questlog_Description < Window_Base
attr_accessor :description
attr_accessor :picture
def initialize(description, picture)
super(275, 92, 300, 360)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = ($defaultfonttype != nil ? $defaultfonttype : $fontface)
self.contents.font.size =( $defaultfontsize != nil ? $defaultfontsize : $fontsize)
@description = description
@picture = picture
refresh
end
#-----------
def refresh
self.contents.clear
lines = @description.split(/\n/)
if (@picture != nil) && (not @picture == "")
bitmap = RPG::Cache.picture(@picture)
rect = bitmap.rect
self.contents.blt(width/2-rect.width/2-16, 0, bitmap, rect, 255)
for i in 0...lines.length
self.contents.draw_text(4, i*32+rect.height, 270, 32, lines[i])
end
else
for i in 0...lines.length
self.contents.draw_text(4, i*32, 270, 32, lines[i])
end
end
end
end
#=============
class Window_Questlog_Titles < Window_Selectable
def initialize
super(65, 92, 210, 360)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = ($defaultfonttype != nil ? $defaultfonttype : $fontface)
self.contents.font.size = ( $defaultfontsize != nil ? $defaultfontsize : $fontsize)
self.index = 0
@item_max = $game_system.questlog.count
@column_max = 1
refresh
end
#-------------
def refresh
self.contents.clear
for i in 0...$game_system.questlog.count
quest = $game_system.questlog.quests[i]
y = i*32
if (quest.icon != nil) && (not quest.icon == "")
bitmap = RPG::Cache.icon(quest.icon)
self.contents.blt(4, y+4, bitmap, Rect.new(0, 0, 24, 24), 255)
self.contents.draw_text(29, y, 150, 32, quest.title)
else
self.contents.draw_text(4, y, 150, 32, quest.title)
end
end
end
end
#===========
class Window_Questlog_Title < Window_Base
def initialize
super(65, 28, 510, 64)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = ($defaultfonttype != nil ? $defaultfonttype : $fontface)
self.contents.font.size = 26
refresh
end
#------------
def refresh
self.contents.clear
self.contents.draw_text(self.contents.rect, "Questlog", 1)
end
end
#===========
class Game_System
attr_reader :questlog
alias init initialize
def initialize
init
@questlog = Questlog.new
end
end |
Zitat
Ihre Nachricht ist zu lang. Bitte reduzieren sie diese auf 10000 Zeichen. Momentan ist sie 20560 Zeichen.
Was soll das denn?? Hab keine Lust, jetzt alle Kommentare aus dem Ringmenü-Script zu entfernen... Ich entschuldige mich im Voraus für den gleich folgenden Doppelpost.EDIT: Waren immer noch 5000 Zeichen zu viel, also als Textdatei.
[COLOR="blue"]Edit von Lelli:
-.-; Toll. Wozu habe ich mir jetzt die Mühe gemacht?
*Fluch*[/COLOR]
[color="red"]Edit von Caesar:
Tschuldigung, nächstes Mal lass ich dich ;-)[/color]
Wie lassen sich die Werte zweier Integervariablen vertauschen?
Machen Sie mit und gewinnen Sie Ruhm und Ehre! ?"Caesar"?
Die kürzeste Lösung gewinnt. Gibt es mehrere richtige Einsendungen, wird ein zufälliger Gewinner aus diesen gezogen.
zum Lesen den Text mit der Maus markieren
Die Aufgabe der letzten Runde lautete:
Es hat keiner teilgenommen, daher gibt es keinen Gewinner ^^ Eine mögliche Lösung wäre gewesen:
Zitat
Schreiben Sie einen Parser für die ASCII-Form des Dateiformats PBM (Portable Bitmap). Die Methode soll als Parameter einen Dateinamen erhalten und eine Bitmap zurückgeben. 0 ist weiß, 1 ist schwarz. Eine Beispieldatei, die den Buchstaben 'A' darstellti:
![]()
Quellcode
1 2 3 4 5 6 7 8 9 10 11 P1 9 9 000010000 000010000 000101000 000101000 001000100 001111100 001000100 010000010 111000111
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
def parse_pbm(filename)
f = File.open(filename)
return nil unless f.readline.chomp == "P1"
width, height = f.readline.split(' ').collect {|i| i.to_i}
bitmap = Bitmap.new(width, height)
c0 = Color.new(255, 255, 255)
c1 = Color.new(0, 0, 0)
for iy in 0...height
f.readline.chomp.split('').each_with_index do |v, k|
bitmap.set_pixel(k, iy, v == '0' ? c0 : c1)
end
end
return bitmap
end |
zum Lesen den Text mit der Maus markieren
...wie man zum Testen schnell einzelne Scripts "ausbaut", ohne das Script aus dem Scripeditor zu löschen?
Ganz einfach: Man fügt im Scripteditor ganz oben im Script die folgende Zeile ein:
und ganz unten als letzte Zeile:
Das hat den gleichen Effekt, wie wenn man das ganze Script aus dem Scripteditor gelöscht hätte.
|
|
Quellcode |
1 |
if false |
|
|
Quellcode |
1 |
end |
zum Lesen den Text mit der Maus markieren
Bin doch da.
Hab deine PM erhalten und sag's noch mal für alle: Die Änderungen in Scene_Map (siehe hier) sind nur nötig, wenn man das Script von der Map aus mit F5 aufrufen können soll. Da ich allerdings diese Funktion rausgenommen habe, um es ins Ringmenü zu integrieren, führen die Änderungen in Scene_Map zu einem Fehler à la "no method or variable: $game_temp.questlog_calling". Also das ganz normale Scene_Map-Script benutzen!
Hab deine PM erhalten und sag's noch mal für alle: Die Änderungen in Scene_Map (siehe hier) sind nur nötig, wenn man das Script von der Map aus mit F5 aufrufen können soll. Da ich allerdings diese Funktion rausgenommen habe, um es ins Ringmenü zu integrieren, führen die Änderungen in Scene_Map zu einem Fehler à la "no method or variable: $game_temp.questlog_calling". Also das ganz normale Scene_Map-Script benutzen!
Wie lassen sich die Werte zweier Integervariablen vertauschen?
Machen Sie mit und gewinnen Sie Ruhm und Ehre! ?"Caesar"?
Die kürzeste Lösung gewinnt. Gibt es mehrere richtige Einsendungen, wird ein zufälliger Gewinner aus diesen gezogen.
zum Lesen den Text mit der Maus markieren
Die Aufgabe der letzten Runde lautete:
Es hat keiner teilgenommen, daher gibt es keinen Gewinner ^^ Eine mögliche Lösung wäre gewesen:
Zitat
Schreiben Sie einen Parser für die ASCII-Form des Dateiformats PBM (Portable Bitmap). Die Methode soll als Parameter einen Dateinamen erhalten und eine Bitmap zurückgeben. 0 ist weiß, 1 ist schwarz. Eine Beispieldatei, die den Buchstaben 'A' darstellti:
![]()
Quellcode
1 2 3 4 5 6 7 8 9 10 11 P1 9 9 000010000 000010000 000101000 000101000 001000100 001111100 001000100 010000010 111000111
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
def parse_pbm(filename)
f = File.open(filename)
return nil unless f.readline.chomp == "P1"
width, height = f.readline.split(' ').collect {|i| i.to_i}
bitmap = Bitmap.new(width, height)
c0 = Color.new(255, 255, 255)
c1 = Color.new(0, 0, 0)
for iy in 0...height
f.readline.chomp.split('').each_with_index do |v, k|
bitmap.set_pixel(k, iy, v == '0' ? c0 : c1)
end
end
return bitmap
end |
zum Lesen den Text mit der Maus markieren
...wie man zum Testen schnell einzelne Scripts "ausbaut", ohne das Script aus dem Scripeditor zu löschen?
Ganz einfach: Man fügt im Scripteditor ganz oben im Script die folgende Zeile ein:
und ganz unten als letzte Zeile:
Das hat den gleichen Effekt, wie wenn man das ganze Script aus dem Scripteditor gelöscht hätte.
|
|
Quellcode |
1 |
if false |
|
|
Quellcode |
1 |
end |
zum Lesen den Text mit der Maus markieren
:danke: Ein großes Dankeschön!
Ich möchte mich für eure Hilfsbereitschaft bedanken.
Dank eurer Hilfe geht mein Adventure wie Butter auf Brot voran.
Classic Point&Click Adventures
Ich möchte gerne die tolle Adventurezeit wieder etwas zurück bringen.
Diese Spiele waren ein genialer Fortschritt und der Beginn heutiger Games.
Auch wenn die 2D Point&Click Games für manche veraltet scheinen mögen, sind sie wiederum für die Fans des Genre
das beste was es gibt.
Und es gibt immer noch eine Menge FANS da draußen.
:guckst: Was haltet Ihr von Adventures mit dem RMXP?
[COLOR="limegreen"]Tut mir leid, diese Frage gehört ja garnicht hierher! Ich mache Diesen Thread wo anders auf.[/COLOR]
(Wenn ich das nicht darf, oder es schon so ein Thema irgendwo anders gibt, dann bitte closen.)
Ich möchte mich für eure Hilfsbereitschaft bedanken.
Dank eurer Hilfe geht mein Adventure wie Butter auf Brot voran.
Classic Point&Click Adventures
Ich möchte gerne die tolle Adventurezeit wieder etwas zurück bringen.
Diese Spiele waren ein genialer Fortschritt und der Beginn heutiger Games.
Auch wenn die 2D Point&Click Games für manche veraltet scheinen mögen, sind sie wiederum für die Fans des Genre
das beste was es gibt.
Und es gibt immer noch eine Menge FANS da draußen.
:guckst: Was haltet Ihr von Adventures mit dem RMXP?
[COLOR="limegreen"]Tut mir leid, diese Frage gehört ja garnicht hierher! Ich mache Diesen Thread wo anders auf.[/COLOR]
(Wenn ich das nicht darf, oder es schon so ein Thema irgendwo anders gibt, dann bitte closen.)

