Also: ich habe mir gedacht, dass ich in mein Rpg einige quests reinmachen will. Aber wenn man nun mehrere quests annimmt, kann es sein dass man eine vergisst. oder man spielt lange nimmer und will dann weiltermachen. Dann kann sowas auch passieren.
Ich denke ihr wisst worauf ich hinauswill:
Ein Tagebuch!
Die Idee kommt, ds gebe ich zu, von Gothic und Gothic2 , da es da acuh einige quests gibt und da hat man acuh ein tagebuch, wo der held dann automatisch beim annehmen eioner neuen quest einen eintrag macht.
Kann man das auch beim rmxp machen?
Wenn ja: wie?
Ich kann eigentlich garnix mit rgss oder sowas, deshalb könnt ihr versuchen es mir zu erklären, aber verstehen tu ichs wahrscheinlich nicht :bahnhof:
Danke schonmal
Ich denke ihr wisst worauf ich hinauswill:
Ein Tagebuch!
Die Idee kommt, ds gebe ich zu, von Gothic und Gothic2 , da es da acuh einige quests gibt und da hat man acuh ein tagebuch, wo der held dann automatisch beim annehmen eioner neuen quest einen eintrag macht.
Kann man das auch beim rmxp machen?
Wenn ja: wie?
Ich kann eigentlich garnix mit rgss oder sowas, deshalb könnt ihr versuchen es mir zu erklären, aber verstehen tu ichs wahrscheinlich nicht :bahnhof:
Danke schonmal
Nun, du machst dir ein Item, welches tagebuch heißt und im Inventar zu benutzen ist. Dann machst du dir verschieden Pictures von den Buchseiten, auf denen die Aufträge stehen (geht zur Not auch einfach mit Textboxen -.-') Das Item muss den Common Event "Tagebuch" auslösen. Nun musst du jedesmal, wenn du ein Quest bekommst einen Tab anmachen (zB quest 1) In dem Common Event steht dann die Branch "Tab Quest 1 is on" und dann in der Bedingung "show picture" (oder halt einach der Text in einer Textbox...) und wenn du das Quest abgeschlossen hast, machst du den Tab aus, um die Seite im TB wieder zu löschen. Ich glaube, dass ist die einfachste Möglichkeit... und ganz ohne RGSS.
Ein Aufgabenbuch, kommt sofort. Nimm einfach das Questlog-Script von Ceaser.
Wie du das benutzt wird im Thread erklärt. Unterstützt Icons, Bilder und natürlich eine Beschreibung für die Quests.
Edit: Ist eigentlich leicht zu verstehen, auch wenn du gar keine Ahnung von RGSS hast
Wie du das benutzt wird im Thread erklärt. Unterstützt Icons, Bilder und natürlich eine Beschreibung für die Quests.
Edit: Ist eigentlich leicht zu verstehen, auch wenn du gar keine Ahnung von RGSS hast
Zitat von »"farrok"«
Ein Aufgabenbuch, kommt sofort. Nimm einfach das Questlog-Script von Ceaser.
Wie du das benutzt wird im Thread erklärt. Unterstützt Icons, Bilder und natürlich eine Beschreibung für die Quests.
Edit: Ist eigentlich leicht zu verstehen, auch wenn du gar keine Ahnung von RGSS hast
Und falls das nicht so richtig funktioniert, auf der zweiten seite steht wies behoben wird. Achso: Ich würd dir das auch empfehlen
achter Post:
[SMILIE]Wer suchen & lesen kann hat nen Vorteil
[/SMILIE]
|
|
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 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
class Scene_Map
def main
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@message_window.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
#---------------
def update
loop do
$game_map.update
$game_system.map_interpreter.update
$game_player.update
$game_system.update
$game_screen.update
unless $game_temp.player_transferring
break
end
transfer_player
if $game_temp.transition_processing
break
end
end
@spriteset.update
@message_window.update
if $game_temp.gameover
$scene = Scene_Gameover.new
return
end
if $game_temp.to_title
$scene = Scene_Title.new
return
end
if $game_temp.transition_processing
$game_temp.transition_processing = false
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
if $game_temp.message_window_showing
return
end
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
if $data_troops[troop_id] != nil
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
if Input.trigger?(Input::B)
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
if $DEBUG and Input.press?(Input::F9)
$game_temp.debug_calling = true
end
#~~~~~~~~~~~~~~~~~~~
if Input.trigger?(Input::F5)
$game_temp.questlog_calling = true
end
#~~~~~~~~~~~~~~~~~~~
unless $game_player.moving?
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
#~~~~~~~~~~~~~~~~~
elsif $game_temp.questlog_calling
call_questlog
#~~~~~~~~~~~~~~~~~
end
end
end
#--------------------
def call_battle
$game_temp.battle_calling = false
$game_temp.menu_calling = false
$game_temp.menu_beep = false
$game_player.make_encounter_count
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
$game_system.se_play($data_system.battle_start_se)
$game_system.bgm_play($game_system.battle_bgm)
$game_player.straighten
$scene = Scene_Battle.new
end
#---------------
def call_shop
$game_temp.shop_calling = false
$game_player.straighten
$scene = Scene_Shop.new
end
#----------------
def call_name
$game_temp.name_calling = false
$game_player.straighten
$scene = Scene_Name.new
end
#---------------
def call_menu
$game_temp.menu_calling = false
if $game_temp.menu_beep
$game_system.se_play($data_system.decision_se)
$game_temp.menu_beep = false
end
$game_player.straighten
$scene = Scene_Menu.new
end
#------------------
def call_save
$game_player.straighten
$scene = Scene_Save.new
end
#-----------------
def call_debug
$game_temp.debug_calling = false
$game_system.se_play($data_system.decision_se)
$game_player.straighten
$scene = Scene_Debug.new
end
#--------------------
def transfer_player
$game_temp.player_transferring = false
if $game_map.map_id != $game_temp.player_new_map_id
$game_map.setup($game_temp.player_new_map_id)
end
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
case $game_temp.player_new_direction
when 2
$game_player.turn_down
when 4
$game_player.turn_left
when 6
$game_player.turn_right
when 8
$game_player.turn_up
end
$game_player.straighten
$game_map.update
@spriteset.dispose
@spriteset = Spriteset_Map.new
if $game_temp.transition_processing
$game_temp.transition_processing = false
Graphics.transition(20)
end
$game_map.autoplay
Graphics.frame_reset
Input.update
end
end |
[SMILIE]Wer suchen & lesen kann hat nen Vorteil
[/SMILIE]
Ne, da is nix falsch. Ich vermute, du hast das Questlog-Script nicht ganz unten eingefügt. Füg es am besten direkt über Main, auf jeden Fall unter Scene_Map ein.
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

So muss es aussehen von der Reihenfolge her. Scene_Map enthält den Code, den Kakashi-San oben gepostet hat; Questlog enthält den Code, den ich in dem Thread auf rpg-xp.net zuerst geschrieben hab:
#////////Questlog//////
#~~~~by Caesar~~~
#\\\\\\\\\\\\\\\\\\\\\\\\
usw.usf.
Wenn es immer noch nicht geht (sollte aber), schreib mir ne PM, dann schick ich dir die Scriptdatei (scripts.rxdata) per E-Mail.
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


