• Anmelden

1

Sonntag, 4. Juni 2006, 12:29

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 :D
Bild

2

Sonntag, 4. Juni 2006, 14:06

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.

3

Sonntag, 4. Juni 2006, 14:12

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

4

Sonntag, 4. Juni 2006, 14:18

Wunderbar, das ist großartig. :)
danke für die schnelle hilfe :D
Bild

5

Sonntag, 4. Juni 2006, 14:24

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 ;)

6

Sonntag, 4. Juni 2006, 18:19

Hm...also das mim main hab ich hingekriegt, aber das, was man bei scene_map ändern muss will einfach net funzen...
was muss man da in welcher zeile ändern?
Bild

7

Sonntag, 4. Juni 2006, 18:47

achter Post:

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]

8

Sonntag, 4. Juni 2006, 19:03

Ähm...oh, hups :s
Dankeschön^^

edit:
es geht immernochnicht. Da steht jetzt:

????? 'Scene_Map' ? 105 ??? NoMethodError ??????

undefined method `questlog_calling´for #<Game_Temp:0x48cb460>

Ich denke da is irgendwas falsch


Bild

9

Sonntag, 4. Juni 2006, 23:19

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.
Spoiler: Das neue RGSS Preisrätsel
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
Spoiler: Auflösung der letzten Runde
Die Aufgabe der letzten Runde lautete:

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
Es hat keiner teilgenommen, daher gibt es keinen Gewinner ^^ Eine mögliche Lösung wäre gewesen:

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
Spoiler: Schon gewusst?
...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:

Quellcode

1
if false
und ganz unten als letzte Zeile:

Quellcode

1
end
Das hat den gleichen Effekt, wie wenn man das ganze Script aus dem Scripteditor gelöscht hätte.
zum Lesen den Text mit der Maus markieren

10

Montag, 5. Juni 2006, 14:32

Ich habs wieder und wieder probiert, aber etwas is bei mir immer falsch :l
das ding verweist mich immer auf diese Zeile im Scene_Map

elsif $game_temp.questlog_calling
Bild

11

Montag, 5. Juni 2006, 17:57

Bild

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.
Spoiler: Das neue RGSS Preisrätsel
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
Spoiler: Auflösung der letzten Runde
Die Aufgabe der letzten Runde lautete:

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
Es hat keiner teilgenommen, daher gibt es keinen Gewinner ^^ Eine mögliche Lösung wäre gewesen:

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
Spoiler: Schon gewusst?
...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:

Quellcode

1
if false
und ganz unten als letzte Zeile:

Quellcode

1
end
Das hat den gleichen Effekt, wie wenn man das ganze Script aus dem Scripteditor gelöscht hätte.
zum Lesen den Text mit der Maus markieren

12

Donnerstag, 8. Juni 2006, 20:31

So, da es ja jetzt endlich geklappt hat, thx Ceasar ;) , nur noch eine letzte frage:
welche größe sollten bilder bzw. icons im QL haben?
Bild

Social Bookmarks