• Anmelden

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

1

Montag, 2. August 2010, 14:03

Techniken-Buch

Hallo zusammen.
Ich suche ein Skript, wo man zuerst mal auswählen kann, über welchen Actor, man die Techniken wissen soll, und dann über die Techniken, die man bereits schon erlernt hat, mehr Erfahren kann. Ich möchte dort aber auch gerne meinen eigenen Comment hinzufügen. Es wäre nett, wenn einer von euch mir so ein Script zeigen könnte oder schlimmstenfals selber erstellen würde. Ich würde euch dann natürlich auch bei den Credits von meinem Spiel hinzufügen.
Danke schon mal im vorraus :)

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

2

Montag, 2. August 2010, 16:20

Hmm, mir selbst fiele kein Script ein, welches in etwa so funktionieren würde...
Allerdings kenn ich auch bei weitem nicht alle Scripte (hier).

Und zum Erstellen eines solchen Scripts gibst du leider nur sehr vage Angaben.
Auf welche Weise kann man z.B. in deinem Spiel die Techniken erhalten?
Was soll die "Information" über die Techniken enthalten?
Wo und wie groß soll dein "Kommentar" platziert werden?

Wie soll das Ganze überhaupt in etwa aufgebaut sein?

Wenn du diese Punkte (und falls dir noch weitere wichtig sind die auch) angeben könntest wär sicher der ein- oder andere in der Lage dir da weiterzuhelfen :)


Ansonsten bin ich mir doch recht sicher dass bei der Scriptauswahl die das Internet bietet auch iwo eins dabei ist welches du brauchen könntest...


mfG
Irrlicht

3

Montag, 2. August 2010, 18:45

hab ma bei itzamna für dich gesucht
hab das hier gefunden!
da steht, dass es nur manchmal läuft... ka
hoff es hilft dir!!!

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

4

Montag, 2. August 2010, 21:04

Jo hab das auch gefunden, find es aber eben ein bisschen Blöd. Also ich werde dann mal die Angaben hinschreiben, die Irrlicht wollte.
Die Techniken lerne ich über Levels, jedoch nur der ersten Rang. Um den Rang aufzusteigen, muss man die Technik ein paar mal benutzen. Deshalb brauche ich das Commentfeld, damit ich hinschreiben kann, wieviel mal man die Technik benutzen muss, um den nächsten Rang zu erreichen.
Das Design des Scriptes sollte "wenn möglich" so in etwa so aussehen:
Im ersten Menu kann man auswählen, über welchen Charakter man die Techniken anschauen will.
Im zweiten Menu hat man eine übersicht auf alle Techniken. Dort kann man über die Technik, von der man mehr Erfahren will, anklicken.
Im dritten Menu stehen dann die Angaben (Manakosten Stärke Trefferchance Variance Physisch/magisch Element und eben das Comment)
Wenn jemand das Script genau so erstellen könnte, wäre ich ihm sehr dankbar, und würde ihn natürlich zu deen Credits hinzufügen, sonst wäre ich au froh, wenn mir jemand sagen könnte, dass es so ein ähnliches Script gibt.

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

5

Dienstag, 3. August 2010, 11:48

Mein damit unter anderem auch ob du eine Vorstellung davon hast wie das Ganze am Ende aufgebaut sein soll...
Beispielsweise wie groß welches Fenster sein soll, wo es liegen soll, wie Charaktere etc. dargestellt werden sollen oder ob du da nimmst was kommt :)
Z.B. auch was an dem geposteten Script so doof war dass du es nicht verwenden willst :)

Wenn du da nicht nehmen willst was kommt würde ich evtl. auch eine Skizze o.Ä. posten, wie die einzelnen Menüs aufgebaut sein sollten, zumindest kanns nicht schaden und das geht auch mit Paint :)

mfG
Irrlicht

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

6

Dienstag, 3. August 2010, 12:52

Hmm, eigendlich nehme ich was kommt wenn es so in etwa aufgebaut ist, wie ich es geschrieben habe.
...doof an dem Script finde ich, dass es erstmal so komische Gruppierungen gibt, man nicht zuerst Auswählen kann, von welchem Charakter man die Attacken braucht und hin oder her taucht bei meinem Spiel ein Error auf wenn ich es benutzen will :)
Ja wie gesagt, ob man die Faces sieht oder Den ganzen Charakter spielt für mich keine Rolle, auch nicht die grösse der Fenster ect.
Ich wäre echt erfreut wenn mir jemand sagen könnte das es ein solches Script gibt oder eines für mich erstellen könnte.

mfg Erlkönig

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

7

Mittwoch, 4. August 2010, 11:31

Soo... Die Charakterauswahl sieht zugegeben noch etwas bescheiden aus, da hab ich einfach das Standardfenster des Menüs übernommen^^

Ansonsten sollte das Ding halbwegs brauchbar sein:

Spoiler: Übersetzungen und Kommentare

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
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
module IL_Tech_Info_Scene
 
# Menü-Index:
IL_MENUE_INDEX = 4
 
#Fensterinhalt: oben-rechts
IL_UPPER_RIGHT_WINDOW_TEXT = "Technik-Informationen"
 
#Fensterinhalt: unten
IL_BOTTOM_WINDOW_TEXT = "Aktionstaste: Bestätigen, L/R: Charakter wechseln"
 
#Begriff für Actor-Level:
IL_LEVEL = "Level"
 
#Info für nicht gelernte Fähigkeiten (Auswahlfenster):
IL_PRE_LEVEL = "Zum Erlernen dieser Technik wird"
IL_POST_LEVEL = "benötigt."
 
# Begriffe für die Zielerfassung:
IL_TARGET = "Ziel:"
IL_SCOPE0 = "Niemand"
IL_SCOPE1 = "ein Gegner"
IL_SCOPE2 = "alle Gegner"
IL_SCOPE3 = "ein Verbündeter"
IL_SCOPE4 = "alle Verbündeten"
IL_SCOPE5 = "ein Verbündeter (0 HP)"
IL_SCOPE6 = "alle Verbündeten (0 HP)"
IL_SCOPE7 = "Benutzer"
 
# Begriff für den SP-Bedarf:
IL_SP_COST = "SP - Kosten:"
 
# Begriff für Elementarkräfte:
IL_ELEMENT =      "Element:"
IL_NEUTRAL =      "Neutral"
IL_MASS_ELEMENT = "Vielelement"
 
# Begriff für die Treffer- / Ausweichrate:
IL_HIT = "Trefferrate:"
IL_EVA = "Ausweichen"
 
# Begriff für Grundwirkung / Abweichung:
IL_POWER = "Grundwirkung: "
IL_VARIANCE = "Abweichung: "
 
# Begriff für weitere Einflüsse:
IL_INFLUENCES = "Wirkungsboni:"
 
# Begriff für Statusänderungen:
IL_STATES = "Statuseffekte:"
 
IL_LEVEL = "Level"
 
# Kommentare: Um einem Zauber ein Kommentar hinzuzufügen, benutze:
# COMMENTS[skill_id] = ["erste Zeile","zweite Zeile", "dritte Zeile"]
# insgesamt stehen pro Zauber 5 Zeilen zur Verfügung.
COMMENTS = Array.new #<---- Diese Zeile muss nicht wiederholt werden.
 
COMMENTS[1] = ["Joa... Öhm...          ...Heilzauber...",
               "",
               "Viel Spaß damit!"]
 
COMMENTS[57] = ["Der Kreuzschlag gehört zu den wichtigsten Techniken im",
               "Kampf gegen Untote. Verwende ihn regelmäßig um seine",
               "Effektivität zu steigern.",
               "Kreuzschlag ist die erste gelernte Fähigkeit",
               "OMG HIER PASST NE ZEILE HIN!!!!!"]
 
 
 
 
 
end
zum Lesen den Text mit der Maus markieren

Spoiler: Charakterauswahl-Scene

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
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
class Scene_IL_Skillinfo_CS
 
  include(IL_Tech_Info_Scene)
 
  def initialize(index = 0, from_menu = 0)
    @actor_index = index % $game_party.actors.size
    @from_menu = from_menu
  end
 
  def main
    @background = Sprite.new
    bitmap = RPG::Cache.windowskin($game_system.windowskin_name)
    @background.bitmap = Bitmap.new(64,64)
    @background.bitmap.blt(0, 0, bitmap, Rect.new(0,0,64,64))
    @background.zoom_y = 7.5
    @background.zoom_x = 10.0
    @background.opacity = 128
    @background.z = 11
 
    @character_window = Window_MenuStatus.new
    @character_window.x = 80
    @character_window.active = true
 
    if $game_party.actors.size > 0
      @character_window.index = @actor_index
    end  
 
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
 
    @background.bitmap.dispose
    @background.dispose
    @character_window.dispose
  end  
 
  def update
    @character_window.update
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      if @from_menu == 0
        $scene = Scene_Map.new
      else  
        $scene = Scene_Menu.new(IL_MENUE_INDEX)
      end  
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      case @character_window.index
      when 0...$game_party.actors.size
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_IL_Skillinfo.new(@character_window.index, 2 + @from_menu % 2)
      else
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      return
    end
  end
end
zum Lesen den Text mit der Maus markieren

Spoiler: Info-Fensterset

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
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
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
class Windowset_Skillinfo
include(IL_Tech_Info_Scene)
  def initialize
    @window1 = Window_Base.new(0,128,390,36)
    @window2 = Window_Base.new(390,128,250,36)
    @window3 = Window_Base.new(0,164,390,60)
    @window4 = Window_Base.new(390,164,250,60)
    @window5 = Window_Base.new(0,224,640,60)
    @window6 = Window_Base.new(0,284,640,60)
    @window7 = Window_Base.new(0,344,640,136)
 
    @sprite = Sprite.new
    @sprite.x = 16
    @sprite.y = 134
    @sprite.z = 5000
    @sprite.bitmap = Bitmap.new(608, 346)    
 
  end  
 
  def text_color(n)
    case n
    when 1
      return Color.new(128, 128, 255, 255)
    when 2
      return Color.new(255, 128, 128, 255)
    when 3
      return Color.new(128, 255, 128, 255)
    when 4
      return Color.new(128, 255, 255, 255)
    when 5
      return Color.new(255, 128, 255, 255)
    when 6
      return Color.new(255, 255, 128, 255)
    when 7
      return Color.new(192, 192, 192, 255)
    else
      return Color.new(255, 255, 255, 255)
    end
  end
 
 
  def visible(invis)
    @window1.visible = invis
    @window2.visible = invis
    @window3.visible = invis
    @window4.visible = invis
    @window5.visible = invis
    @window6.visible = invis
    @window7.visible = invis
    @sprite.visible = invis
  end
 
  def dispose
    @window1.dispose
    @window1 = nil
    @window2.dispose
    @window2 = nil
    @window3.dispose
    @window3 = nil
    @window4.dispose
    @window4 = nil
    @window5.dispose
    @window5 = nil
    @window6.dispose
    @window6 = nil
    @window7.dispose
    @window7 = nil
    @sprite.bitmap.dispose
    @sprite.bitmap = nil
    @sprite.dispose
    @sprite = nil
  end  
 
  def refresh(skill)    
    @sprite.bitmap.clear
    @sprite.bitmap.font.size = 24
    @sprite.bitmap.font.color = text_color(0)
 
    #SP-Kosten:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390,0,150,24, IL_SP_COST, 0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(540,0,68,24,skill.sp_cost.to_s, 2)
 
    #Ziel:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0,0,140,24,IL_TARGET, 0)
    @sprite.bitmap.font.bold = false
    case skill.scope
    when 0
      scope = IL_SCOPE0
    when 1  
      scope = IL_SCOPE1
    when 2
      scope = IL_SCOPE2
    when 3
      scope = IL_SCOPE3
    when 4
      scope = IL_SCOPE4
    when 5
      scope = IL_SCOPE5
    when 6
      scope = IL_SCOPE6
    when 7
      scope = IL_SCOPE7
    end  
    @sprite.bitmap.draw_text(140,0,218,24,scope, 2)
 
    #Elemente
    elements = ""
    element_counter = 0
    skill.element_set.each do |i|
      if element_counter == 3
        elements = IL_MASS_ELEMENT
        break
      else   
        elements = elements + " / " if element_counter > 0
        elements = elements + $data_system.elements[i]
        element_counter += 1
      end
    end
    elements = IL_NEUTRAL if element_counter == 0
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 36,100,24, IL_ELEMENT, 0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(90, 36,268,24, elements, 2)
 
    #Grundschaden und Abweichung
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390,36,150,24,IL_POWER, 0)
    @sprite.bitmap.font.bold = false
    healing_spell = (skill.power < 0)
    @sprite.bitmap.draw_text(540,36,68,24, skill.power.abs.to_s, 2)
 
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390, 60, 150, 24, IL_VARIANCE,0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(540, 60, 68, 24, skill.variance.to_s + "\%",2)
 
    #Trefferchance
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 60, 105, 24, IL_HIT,0)
    #Prüfe ob Textlänge zu groß ist:
    textsize1 = @sprite.bitmap.text_size(skill.hit.to_s + "\%").width 
    textsize2 = @sprite.bitmap.text_size(" - " + skill.eva_f.to_s + "\% "+ IL_EVA).width
    textsize1 += textsize2
    if textsize1 > 250
      textsize2 = textsize2 * 250 / textsize1
    end
    #Zeichne Trefferchance
    @sprite.bitmap.font.bold = false
    if skill.eva_f > 0 
      @sprite.bitmap.draw_text(100, 60, 250 - textsize2, 24, skill.hit.to_s + "\%",2)
      #Ausweichrate: Wenn Heilzauber: neutrale Färbung, sonst rote
      @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2)
      @sprite.bitmap.draw_text(355 - textsize2, 60, textsize2 + 3, 24, "- " + skill.eva_f.to_s + "\% "+ IL_EVA,2)
      @sprite.bitmap.font.color = text_color(0)
    else
      @sprite.bitmap.draw_text(100, 60, 258, 24, skill.hit.to_s + "\%",2)
    end  
 
    #Einflüsse
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 96,144,24, IL_INFLUENCES, 0)
    @sprite.bitmap.font.bold = false
    position = 1
    @sprite.bitmap.font.color = text_color(3)
    if skill.atk_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.atk + ": " + skill.atk_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.str_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.str + ": " + skill.str_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.dex_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.dex + ": " + skill.dex_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.agi_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.agi + ": " + skill.agi_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.int_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.int + ": " + skill.int_f.to_s + "\%", 1)
      position += 1
    end  
    #Schwächende Boni: Wenn Heilzauber: neutrale Färbung, sonst rote
    @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2)
    if skill.pdef_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.pdef + ": " + skill.pdef_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.mdef_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.mdef + ": " + skill.mdef_f.to_s + "\%", 1) 
    end  
    @sprite.bitmap.font.color = text_color(0)
 
    #Statusveränderungen:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0,156,144,24,IL_STATES, 0)
    position = 1
    for i in 1...$data_states.size
      if skill.plus_state_set.include?(i)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = true
        @sprite.bitmap.font.color = Color.new(0,0,0,255)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.font.color = text_color(3)
        @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = false
        @sprite.bitmap.font.color = text_color(0)
        @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0)
        position += 1
      elsif skill.minus_state_set.include?(i)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = true
        @sprite.bitmap.font.color = Color.new(0,0,0,255)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.font.color = text_color(2)
        @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = false
        @sprite.bitmap.font.color = text_color(0)
        @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0)
        position += 1
      end
      break if position == 8
    end
    @sprite.bitmap.font.bold = false
 
    #Kommentare:
    unless COMMENTS[skill.id] == nil
      COMMENTS[skill.id].each_with_index do |i, index|
        @sprite.bitmap.draw_text(0, 218 + index * 24, 640, 24,i, 0)
      end
    end  
 
  end
 
end
zum Lesen den Text mit der Maus markieren

Spoiler: Technik-Auswahl-Fensterset

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
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
class Window_Skillinfo_Selection < Window_Selectable
include(IL_Tech_Info_Scene)
#-Initialisiere Fenster
 
  def initialize(actor_id)
    super(0,128,640, 288)
    @column_max = 2
    @index = -1
 
    @skill_description_window = Window_Base.new(0,64,640,64)
    @skill_description_window.contents = Bitmap.new(608, 32)
    @skill_description_window.z = 5000
 
    refresh(actor_id)
    self.active = true
  end  
 
  def refresh(actor_id)
    @old_index = -1
    @skill_description_window.contents.clear
    @actor_id = actor_id
    actor = $game_party.actors[@actor_id]
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in 0...actor.skills.size
      skill = $data_skills[actor.skills[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    for i in $data_classes[actor.class_id].learnings
      if i.level > actor.level and not actor.skill_learn?(i.skill_id)
        @data.push(i.level)
      end
    end
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
    @index = @item_max == 0 ? -1 : 0
    update_cursor_rect
  end
 
  def update
    super
    if self.active and @skill_description_window != nil and @old_index != @index 
      update_description
      @old_index = @index
    end
  end
 
#-Lösche Fenster
 
  def dispose
    @skill_description_window.dispose
    super
  end  
 
#-Gebe Fähigkeit zurück
 
  def skill
    return @data[self.index]
  end
 
#-Male Fähigkeiten ins Fenster  
 
  def draw_item(index)
    skill = @data[index]
    if skill.is_a?(RPG::Skill)
      self.contents.font.color = normal_color
      x = 4 + index % 2 * (288 + 32)
      y = index / 2 * 32
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      bitmap = RPG::Cache.icon(skill.icon_name)
      opacity = 255
      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
      self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
      self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
    elsif skill.is_a?(Numeric)
      self.contents.font.color = disabled_color
      x = 4 + index % 2 * (288 + 32)
      y = index / 2 * 32
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
#      bitmap = RPG::Cache.icon(DISABLED_ICON_NAME)
      opacity = 128
#      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
      self.contents.draw_text(x + 28, y, 204, 32, "????????????", 0)
    end  
  end
 
#-Update des Hilfefensters von Window_Selectable, welches hier nur stören würde :)  
 
  def update_help
  end
 
#-Alternatives Hilfefenster-Update
 
  def update_description
    @skill_description_window.contents.clear
    @skill_description_window.contents.font.color = normal_color
    if @data[self.index].is_a?(RPG::Skill)
      @skill_description_window.contents.draw_text(0,0,608,32,@data[self.index].description,0)
    elsif @data[self.index].is_a?(Numeric)
      @skill_description_window.contents.draw_text(0,0,608,32,IL_PRE_LEVEL + " " + IL_LEVEL + " "+@data[self.index].to_s + " " + IL_POST_LEVEL,0)
    else
      @skill_description_window.contents.draw_text(0,0,608,32,"",0)
    end  
  end
end
zum Lesen den Text mit der Maus markieren

Spoiler: Technikinfo-Mainscene

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
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
class Scene_IL_Skillinfo
include(IL_Tech_Info_Scene)  
  def initialize(actor_id = 0, from_scene = 0)
    if $game_party.actors.size == 0
      $scene = from_menue ? Scene_Menu.new : Scene_Map.new
    end
    @actor_id = actor_id % $game_party.actors.size
    #Sichere die vorhergegangene Scene: 0 = Map, 1 = Menü, 2 = Actor-Auswahl (MAP)
    # 3 = Actor-Auswahl (MENÜ)
    @from_scene = from_scene
  end  
 
  def main
    @headline2_window = Window_Base.new(320-80,0,320+80,64)
    @headline2_window.contents = Bitmap.new(288+80, 32)
    @headline2_window.contents.draw_text(0,0,288+80,32,IL_UPPER_RIGHT_WINDOW_TEXT,1)
 
    @headline1_window = Window_Base.new(0,0,240,64)
    @headline1_window.contents = Bitmap.new(208, 32)
    @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0)
    @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
 
    @skill_select_window = Window_Skillinfo_Selection.new(@actor_id)    
 
    @skill_info_window = Windowset_Skillinfo.new
    @skill_info_window.visible(false) 
 
    @bottom_line_window = Window_Base.new(0,416,640,64)
    @bottom_line_window.contents = Bitmap.new(608, 32)
    @bottom_line_window.contents.draw_text(0,0,608,32,IL_BOTTOM_WINDOW_TEXT,1)
 
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @bottom_line_window.dispose
    @skill_info_window.dispose
    @skill_select_window.dispose
    @headline1_window.dispose
    @headline2_window.dispose
  end
 
  def update
    @skill_select_window.update
 
    if Input.trigger?(Input::B)
      #Wenn sich der Spieler im Auswahlfenster befindet breche ab:
      if @skill_select_window.active
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Kehre zur vorhergegangenen Scene zurück
        case @from_scene
        when 0
          $scene = Scene_Map.new
        when 1
          $scene = Scene_Menu.new(IL_MENUE_INDEX)
        when 2
          $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 0)
        when 3
          $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 1)
        end  
        return
      else
      #Sonst beende das Informationsfenster und kehre zur Auswahl zurück:
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = true
        @skill_select_window.active = true
        @skill_info_window.visible(false)
        @bottom_line_window.visible = true
        # Schreibe die erste Überschrift wieder auf den Actor um:
        @headline1_window.contents.clear
        @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0)
        @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
      end  
    end
    if Input.trigger?(Input::C)
      #Wenn sich der Spieler im Auswahlfenster befindet breche ab:
      if @skill_select_window.active
        # Prüfe ob der ausgewählte Skill gültig ist, breche ab wenn nicht:
        unless @skill_select_window.skill.is_a?(RPG::Skill)
          #Wenn nein spiele Buzzersound und kehre zurück
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        #Sonst öffne das Infofenster
        # Spiele Auswahlsound
        $game_system.se_play($data_system.decision_se)
        Graphics.freeze
        #schreibe das linke Überschriftfenster auf den Skill um:        
        @headline1_window.contents.clear
        bitmap = RPG::Cache.icon(@skill_select_window.skill.icon_name)
        @headline1_window.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24), 255)
        @headline1_window.contents.draw_text(32, 0, 200, 32, @skill_select_window.skill.name, 0)
        # aktualisiere das Infofenster
        @skill_info_window.refresh(@skill_select_window.skill)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = false
        @skill_select_window.active = false
        @skill_info_window.visible(true)
        @bottom_line_window.visible = false
        Graphics.transition
      else
      #Befindet sich der Spieler im Infofenster:
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = true
        @skill_select_window.active = true
        @skill_info_window.visible(false)
        @bottom_line_window.visible = true
        # Schreibe die erste Überschrift wieder auf den Actor um:
        @headline1_window.contents.clear
        @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0)
        @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
      end  
    end
    if Input.trigger?(Input::R)
      #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die
      #Gruppengröße größer als 1 ist:
      return unless @skill_select_window.active and $game_party.actors.size >= 2
      # Spiele Cursorsound
      $game_system.se_play($data_system.cursor_se)
      @actor_id += 1
      @actor_id %= $game_party.actors.size
      # Update alle nötigen Fenster:
      Graphics.freeze
      refresh_after_actor_changed
      Graphics.transition
      return
    end
    # If L button was pressed
    if Input.trigger?(Input::L)
      #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die
      #Gruppengröße größer als 1 ist:
      return unless @skill_select_window.active and $game_party.actors.size >= 2
      # Spiele Cursorsound
      $game_system.se_play($data_system.cursor_se)
      @actor_id -= 1
      @actor_id %= $game_party.actors.size
      # Update alle nötigen Fenster:
      Graphics.freeze
      refresh_after_actor_changed
      Graphics.transition
      return
    end
  end
 
  def refresh_after_actor_changed
    #Linke Überschrift:
    @headline1_window.contents.clear
    @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0)
    @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
    #Auswahlfenster:
    @skill_select_window.refresh(@actor_id)
  end  
end
zum Lesen den Text mit der Maus markieren


Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)

startindex sollte idR. 0 betragen (erste Auswahl)

Willst due die Charakterauswahl überspringen benutze
$scene = Scene_IL_Skillinfo.new( actorindex , 1)
um das Fenster des einzelnen Actors direkt aufzurufen
actorindex = 0 würde bedeuten dass das Fenster des ersten Actors der Party aufgerufen wird, 1 = des zweiten etc.
Wird das Fenster von der Map aus aufgerufen ersetze die 2te Zahl wie oben entsprechend durch 0.

Das Design kann notfalls angepasst werden, aber da hattest ja sowieso keine Wünsche :)
(In dem Sinne aber nochmal Danke an Dero für den Tipp Rahmen um die einzelnen Info-Gruppen im Infofenster zu ziehen :) )

Sonstige Grenzen:
Es werden maximal 3 Elemente pro Zauber genannt, werden es mehr, wird die Technik als "Vielelement" markiert.
Es werden maximal 7 Statusveränderungen aufgelistet, alle weiteren werden abgeschnitten.
Es stehen maximal 5 Zeilen für Kommentare zur Verfügung.

mfG
Irrlicht

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Irrlicht« (4. August 2010, 19:09)


Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

8

Mittwoch, 4. August 2010, 15:02

Ok, müsste noch wissen ob du es selber erstellt hast oder ähnliches für die Credits.
Auch wenn du es nciht erstellt hast, und es dein Wunsch ist, kann ich dir von mir aus in die Credits nehmen, hast mir nähmlich sehr weiter geholfen, ich hoffe ich kann das Script auch brauchen, aber hört sich schon mal toll an;) Ich weiss aber immernoch nicht wie ich das in den Script aditor eingeben muss. Muss ich 5 verschiedene Sripts erstellen mit den Namen die da angegeben sind oder wie? Sry....^^

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

9

Mittwoch, 4. August 2010, 16:06

die 5 Scripts müsstest du (am besten in der Reihenfolge wie angegeben) über Main einfügen.
Entweder kopierst du jedes der oben angegebenen Scripts in ein eigenes leeres Script oder fügst sie eins hinter dem anderen in ein einziges ein - erstere Methode fand ich übersichtlicher :)

Es ist zwar selbstgemacht, aber hauptsächlich auf Grundlage der bereits vorhandenen Scripte...
(Insbesondere das Charakterauswahlmenü besteht eig. nur aus dem des Standard-Menüs, da ich zu dem Zeitpunkt einfach ein Tief hatte und keine Lust gehabt hätte da was neues zusammenzubauen... lässt bsich aber alles ändern wenn es dir nicht passen sollte... ...zumal ich nichtmal wusste ob ein entspr. Einbau ins Menü nicht besser gewesen wäre...)

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

10

Mittwoch, 4. August 2010, 17:20

Mmh habs reinkopiert und da steht
NameError occurred while running script
Unitialized constant Interpreter:: Scene_IL_Skillinfo_Charakterselect
Ich werde mal den Grund versuchen selbst herrauszufinden, aber das könnte ne Weile dauern weil ich 0 Ahnung von Scripts habe^.^'
Wenn ichs hab, werde ichs Zittieren aber ich nehme an du kannst mir shcneller sagen, was das problem ist.
Achja und danke für das Script nochma :D ich werde dich einfach unter "Irrlicht" bei den Credits aufnehmen.
Liegt es vielleicht daran, dass ich die Scripe falsch benennt habe? bzw muss ich da einen anderen Namen nehmen? mfg Erlkönig

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

11

Mittwoch, 4. August 2010, 17:20

Huch, dann hab ich was übersehen^^

Ich hatte Scene_IL_Skillinfo_Charakterselect nachträglich in Scene_IL_Skillinfo_CS umbenannt nachdem mir auffiel dass $scene = Scene_IL_Skillinfo_Charakterselect.new(x,y) nicht in eine Callscriptzeile passte^^

Ich werds kurz korrigieren...
Btw: Musst mir das ganze ja nicht 2x vorwerfen^^

ED:
Spoiler: Technik-Info

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
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
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
###############################################################################
# Diese Klasse regelt die Charakterauswahl.
# Sollte überflüssig werden wenn die Technik-Indormation in ein geeignetes Menü
# eingebunden wird.
###############################################################################
 
class Scene_IL_Skillinfo_CS
  #Klasse enthält die definierten Übersetzungen:  
  include(IL_Tech_Info_Scene)
 
  def initialize(index = 0, from_menu = 0)
    #Setze Index fest und korrigiere ihn wenn er außerhalb der Gruppengröße liegt
    @actor_index = $game_party.actors.size == 0 ? -1 : (index % $game_party.actors.size)
    #Speichere vorhergegangene Scene: 0 = Map, 1 = Menü
    @from_menu = from_menu
  end
 
  def main
    #setze Hintergrund
    @background = Sprite.new
    bitmap = RPG::Cache.windowskin($game_system.windowskin_name)
    @background.bitmap = Bitmap.new(64,64)
    @background.bitmap.blt(0, 0, bitmap, Rect.new(0,0,64,64))
    @background.zoom_y = 7.5
    @background.zoom_x = 10.0
    @background.opacity = 128
    @background.z = 11
    #Erstelle Charakterfenster
    @character_window = Window_MenuStatus.new
    @character_window.x = 80
    @character_window.active = true
    #Setze das Charakterfenster auf den mitgegebenen Index:
    @character_window.index = @actor_index
 
    #Übergang zur Hauptschleife:
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
 
    #Zerstöre die in der Scene benutzten Fenster:
    @background.bitmap.dispose
    @background.dispose
    @character_window.dispose
  end  
 
  def update
    #aktualisiere das Auswahlfenster
    @character_window.update
    #Überprüfe ob "Abbrechen" gedrückt wurde:
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      if @from_menu == 0
        $scene = Scene_Map.new
      else  
        $scene = Scene_Menu.new(IL_MENUE_INDEX)
      end  
      return
    end
    # Überprüfe ob "Aktion" gedrückt wurde:
    if Input.trigger?(Input::C)
      case @character_window.index
      #Überprüfe ob der Index innerhalb der Gruppengröße liegt (nicht -1)
      when 0...$game_party.actors.size
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_IL_Skillinfo.new(@character_window.index, 2 + @from_menu % 2)
      else
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      return
    end
  end
end  
 
 
###############################################################################
# Die folgende Klasse enthält das Auswahlfenster für alle Techniken, die der
# entspr. Charakter beherrscht oder beherrschen wird.
# Das Fenster für die Technikbeschreibung ist dabei ebenfalls enthalten:
###############################################################################
 
class Window_Skillinfo_Selection < Window_Selectable
 
  #Enthält die definierten Übersetzungen:
  include(IL_Tech_Info_Scene)
 
  #Fenster wird erstellt
  def initialize(actor_id)
    super(0,128,640, 288)
    @column_max = 2
    @index = -1
 
    #Hilfsfenster für Technikbeschreibung wird erstellt
    @skill_description_window = Window_Base.new(0,64,640,64)
    @skill_description_window.contents = Bitmap.new(608, 32)
    @skill_description_window.z = 5000
 
    #Fülle die Fenster mit Inhalt:
    refresh(actor_id)
    self.active = true
  end  
 
  def refresh(actor_id)
    #"Alter Index" wird zurückgesetzt
    @old_index = -1
    #Fensterinhalt des Beschreibungsfensters wird geleert
    @skill_description_window.contents.clear
    # aktiver Charakter wird gesetzt:
    @actor_id = actor_id
    actor = $game_party.actors[@actor_id]
    #Wenn im Hauptfenster eine Bildfläche existiert entferne sie
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    #Bestimme Datenmenge...
    @data = []
    # ...für bereits gelernte Skills:
    for i in 0...actor.skills.size
      skill = $data_skills[actor.skills[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    # ...für zukünftige Skills:
    for i in $data_classes[actor.class_id].learnings
      if i.level > actor.level and not actor.skill_learn?(i.skill_id)
        @data.push(i.level)
      end
    end
    # Sichere Datenmenge:
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
    # Setze Index:
    @index = @item_max == 0 ? -1 : 0
    # Update das Cursorfenster:
    update_cursor_rect
  end
 
  def update
    #aktualisiere Haupt- und Beschreibungsfenster, aktualisiere Index
    super
    if self.active and @skill_description_window != nil and @old_index != @index 
      update_description
      @old_index = @index
    end
  end
 
  #Zerstöre Haupt- und Beschreibungsfenster:
  def dispose
    @skill_description_window.dispose
    super
  end  
 
  # Präsentiere die aktuell gewählte Technik:
  def skill
    return @data[self.index]
  end
 
 
  # Male die Fähigkeiten ins Auswahlfenster:
  def draw_item(index)
    skill = @data[index]
    # Wenn ein gelernter Skill:
    if skill.is_a?(RPG::Skill)
      self.contents.font.color = normal_color
      x = 4 + index % 2 * (288 + 32)
      y = index / 2 * 32
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
      self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      bitmap = RPG::Cache.icon(skill.icon_name)
      opacity = 255
      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
      self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
      self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
    # ein noch nicht gelernter Skill:  
    elsif skill.is_a?(Numeric)
      self.contents.font.color = disabled_color
      x = 4 + index % 2 * (288 + 32)
      y = index / 2 * 32
      rect = Rect.new(x, y, self.width / @column_max - 32, 32)
#      bitmap = RPG::Cache.icon(DISABLED_ICON_NAME)
      opacity = 128
#      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
      self.contents.draw_text(x + 28, y, 204, 32, "????????????", 0)
    end  
  end
 
#-Update des Hilfefensters von Window_Selectable, welches hier jedoch nicht verwendet wird.
  def update_help
  end
 
#-Alternatives Hilfefenster-Update
  def update_description
    #leere Fensterinhalt:
    @skill_description_window.contents.clear
    @skill_description_window.contents.font.color = normal_color
    # Male neue Beschreibung:
    if @data[self.index].is_a?(RPG::Skill)
      @skill_description_window.contents.draw_text(0,0,608,32,@data[self.index].description,0)
    elsif @data[self.index].is_a?(Numeric)
      @skill_description_window.contents.draw_text(0,0,608,32,IL_PRE_LEVEL + " " + IL_LEVEL + " "+@data[self.index].to_s + " " + IL_POST_LEVEL,0)
    else
      @skill_description_window.contents.draw_text(0,0,608,32,"",0)
    end  
  end
end
 
###############################################################################
# Die folgende Klasse enthält das Fensterset, welches bei der Wahl einer
# Technik als Info-Fenster gezeigt wird:
###############################################################################
 
class Windowset_Skillinfo
 
  # Enthält die definierten Übersetzungen:
  include(IL_Tech_Info_Scene)
 
  def initialize
    #Erstelle Fensterset
    @window1 = Window_Base.new(0,128,390,36)
    @window2 = Window_Base.new(390,128,250,36)
    @window3 = Window_Base.new(0,164,390,60)
    @window4 = Window_Base.new(390,164,250,60)
    @window5 = Window_Base.new(0,224,640,60)
    @window6 = Window_Base.new(0,284,640,60)
    @window7 = Window_Base.new(0,344,640,136)
    #Erstelle Sprite, auf dem die Werte gezeichnet werden:
    @sprite = Sprite.new
    @sprite.x = 16
    @sprite.y = 134
    @sprite.z = 5000
    @sprite.bitmap = Bitmap.new(608, 346)    
  end  
 
  # Erweiterte Textfarben: Entnommen aus Window_Base
  def text_color(n)
    case n
    when 1
      return Color.new(128, 128, 255, 255)
    when 2
      return Color.new(255, 128, 128, 255)
    when 3
      return Color.new(128, 255, 128, 255)
    when 4
      return Color.new(128, 255, 255, 255)
    when 5
      return Color.new(255, 128, 255, 255)
    when 6
      return Color.new(255, 255, 128, 255)
    when 7
      return Color.new(192, 192, 192, 255)
    else
      return Color.new(255, 255, 255, 255)
    end
  end
 
  # Regle Richtbarkeit sämtlicher Fenster und des Sprites:
  def visible(invis)
    @window1.visible = invis
    @window2.visible = invis
    @window3.visible = invis
    @window4.visible = invis
    @window5.visible = invis
    @window6.visible = invis
    @window7.visible = invis
    @sprite.visible = invis
  end
 
  # Zerstöre alle Fenster, Spriteinhalt und den Sprite
  def dispose
    @window1.dispose
    @window1 = nil
    @window2.dispose
    @window2 = nil
    @window3.dispose
    @window3 = nil
    @window4.dispose
    @window4 = nil
    @window5.dispose
    @window5 = nil
    @window6.dispose
    @window6 = nil
    @window7.dispose
    @window7 = nil
    @sprite.bitmap.dispose
    @sprite.bitmap = nil
    @sprite.dispose
    @sprite = nil
  end  
 
  # Aktualisiere den Fensterinhalt:
  def refresh(skill)    
    #leere die Bildfläche:
    @sprite.bitmap.clear
    @sprite.bitmap.font.size = 24
    @sprite.bitmap.font.color = text_color(0)
 
    #SP-Kosten:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390,0,150,24, IL_SP_COST, 0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(540,0,68,24,skill.sp_cost.to_s, 2)
 
    #Ziel:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0,0,140,24,IL_TARGET, 0)
    @sprite.bitmap.font.bold = false
    #Wähle den passenden Begriff:
    case skill.scope
    when 0
      scope = IL_SCOPE0
    when 1  
      scope = IL_SCOPE1
    when 2
      scope = IL_SCOPE2
    when 3
      scope = IL_SCOPE3
    when 4
      scope = IL_SCOPE4
    when 5
      scope = IL_SCOPE5
    when 6
      scope = IL_SCOPE6
    when 7
      scope = IL_SCOPE7
    end  
    @sprite.bitmap.draw_text(140,0,218,24,scope, 2)
 
    #Elemente
    elements = ""
    element_counter = 0
    #Gehe die Elemente durch und addiere sie zum String:
    skill.element_set.each do |i|
      # Werden es mehr als 3 Elemente nehme die "Massenelement"-Übersetzung:
      if element_counter == 3
        elements = IL_MASS_ELEMENT
        break
      else   
        #sonst:
        elements = elements + " / " if element_counter > 0
        elements = elements + $data_system.elements[i]
        element_counter += 1
      end
    end
    #Sind keine Elemente vorhanden nehme die "Neutral"-Übersetzung:
    elements = IL_NEUTRAL if element_counter == 0
    #Zeichne die Auswahl:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 36,100,24, IL_ELEMENT, 0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(90, 36,268,24, elements, 2)
 
    #Grundschaden und Abweichung
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390,36,150,24,IL_POWER, 0)
    @sprite.bitmap.font.bold = false
    #Wenn der Grundschaden kleiner als 0 ist kennzeichne den Zauber als Heilzauber:
    healing_spell = (skill.power < 0)
    @sprite.bitmap.draw_text(540,36,68,24, skill.power.abs.to_s, 2)
    #Schreibe Varianz
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(390, 60, 150, 24, IL_VARIANCE,0)
    @sprite.bitmap.font.bold = false
    @sprite.bitmap.draw_text(540, 60, 68, 24, skill.variance.to_s + "\%",2)
 
    #Trefferchance
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 60, 105, 24, IL_HIT,0)
    #Prüfe die Textlänge von Hit + EVA -String zu groß ist:
    textsize1 = @sprite.bitmap.text_size(skill.hit.to_s + "\%").width 
    textsize2 = @sprite.bitmap.text_size(" - " + skill.eva_f.to_s + "\% "+ IL_EVA).width
    textsize1 += textsize2
    #verkleinere beide Strings wenn nötig:
    if textsize1 > 250
      textsize2 = textsize2 * 250 / textsize1
    end
    #Zeichne Trefferchance
    @sprite.bitmap.font.bold = false
    #Wenn EVA gezeichnet werden soll:
    if skill.eva_f > 0 
      @sprite.bitmap.draw_text(100, 60, 250 - textsize2, 24, skill.hit.to_s + "\%",2)
      #Ausweichrate: Wenn Heilzauber: neutrale Färbung, sonst rote
      @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2)
      @sprite.bitmap.draw_text(355 - textsize2, 60, textsize2 + 3, 24, "- " + skill.eva_f.to_s + "\% "+ IL_EVA,2)
      @sprite.bitmap.font.color = text_color(0)
    else
    #Wenn EVA nicht gezeichnet wird (da 0):  
      @sprite.bitmap.draw_text(100, 60, 258, 24, skill.hit.to_s + "\%",2)
    end  
 
    #Einflüsse
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0, 96,144,24, IL_INFLUENCES, 0)
    @sprite.bitmap.font.bold = false
    #Setze Positionszähler auf Startwert:
    position = 1
    #Grüne Farbe für positive Boni:
    @sprite.bitmap.font.color = text_color(3)
    #Zeichne Bonus, wenn > 0
    if skill.atk_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.atk + ": " + skill.atk_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.str_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.str + ": " + skill.str_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.dex_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.dex + ": " + skill.dex_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.agi_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.agi + ": " + skill.agi_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.int_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.int + ": " + skill.int_f.to_s + "\%", 1)
      position += 1
    end  
 
    #Schwächende Boni: Wenn Heilzauber: neutrale Färbung, sonst rote
    @sprite.bitmap.font.color = healing_spell ? text_color(0) : text_color(2)
 
    if skill.pdef_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.pdef + ": " + skill.pdef_f.to_s + "\%", 1)
      position += 1
    end  
    if skill.mdef_f > 0
      @sprite.bitmap.draw_text( 144 * (position % 4) , 96 + (position / 4)* 24, 144, 24,
        $data_system.words.mdef + ": " + skill.mdef_f.to_s + "\%", 1) 
    end  
    @sprite.bitmap.font.color = text_color(0)
 
    #Statusveränderungen:
    @sprite.bitmap.font.bold = true
    @sprite.bitmap.draw_text(0,156,144,24,IL_STATES, 0)
    #Setze Positionszähler auf Startwert:
    position = 1
    #Gehe die Statuswerte durch und überprüfe auf Veränderung:
    for i in 1...$data_states.size
      #fügt Effekt hinzu?
      if skill.plus_state_set.include?(i)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = true
        #Male Hintergrund von "+":
        @sprite.bitmap.font.color = Color.new(0,0,0,255)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"+", 1)
        #male farbigen Vordergrund von "+":
        @sprite.bitmap.font.color = text_color(3)
        @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"+", 1)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = false
        @sprite.bitmap.font.color = text_color(0)
        #Male Statusname
        @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0)
        #erhöhe Positionszähler:
        position += 1
      # entfernt Effekt?  
      elsif skill.minus_state_set.include?(i)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = true
        #Male Hintergrund von "-":
        @sprite.bitmap.font.color = Color.new(0,0,0,255)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -7 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),155 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.draw_text( -4 + 144 * (position % 4),158 + (position / 4) * 24,24,24,"-", 1)
        #male farbigen Vordergrund von "-":
        @sprite.bitmap.font.color = text_color(2)
        @sprite.bitmap.draw_text( -6 + 144 * (position % 4),156 + (position / 4) * 24,24,24,"-", 1)
        @sprite.bitmap.font.size = 24
        @sprite.bitmap.font.bold = false
        @sprite.bitmap.font.color = text_color(0)
        #Male Statusname
        @sprite.bitmap.draw_text( 18 + 144 * (position % 4) ,156 + (position / 4)* 24,120,24,$data_states[i].name, 0)
        #erhöhe Positionszähler:
        position += 1
      end
      # Wenn Positionszähler 8 erreicht hat Breche aus der Schleife:
      break if position == 8
    end
    @sprite.bitmap.font.bold = false
 
    #Kommentare: Wenn definiert, füge sie hinzu:
    unless COMMENTS[skill.id] == nil
      COMMENTS[skill.id].each_with_index do |i, index|
        @sprite.bitmap.draw_text(0, 218 + index * 24, 640, 24,i, 0)
      end
    end  
  end
 
end
 
###############################################################################
# Folgende Klasse steuert das Info-Fensterset und das Technik-Auswahlfenster.
# Sie enthält zudem alle weiteren von nicht aufgezählten Fenster.
###############################################################################
 
class Scene_IL_Skillinfo
 
  # Enthält die definierten Übersetzungen:
  include(IL_Tech_Info_Scene)
 
  def initialize(actor_id = 0, from_scene = 0)
    #Wenn die Gruppengröße = 0 sein sollte kehre sofort zur vorherigen Scene zurück:
    if $game_party.actors.size == 0
      $scene = from_menue = 1 ? Scene_Menu.new : Scene_Map.new
    end
    #Setze Actor-Index:
    @actor_id = actor_id % $game_party.actors.size
    #Sichere die vorhergegangene Scene: 0 = Map, 1 = Menü, 2 = Actor-Auswahl (Map)
    # 3 = Actor-Auswahl (Menü)
    @from_scene = from_scene
  end  
 
  def main
    #Erstelle das obere rechte Überschriftfenster:
    @headline2_window = Window_Base.new(320-80,0,320+80,64)
    @headline2_window.contents = Bitmap.new(288+80, 32)
    @headline2_window.contents.draw_text(0,0,288+80,32,IL_UPPER_RIGHT_WINDOW_TEXT,1)
    #Erstelle das obere, linke Überschriftfenster:
    @headline1_window = Window_Base.new(0,0,240,64)
    @headline1_window.contents = Bitmap.new(208, 32)
    @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1)
    @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
    #Erstelle das Technik-Auswahlfenster:
    @skill_select_window = Window_Skillinfo_Selection.new(@actor_id)    
    #Erstelle das Technikinfo-Fensterset
    @skill_info_window = Windowset_Skillinfo.new
    @skill_info_window.visible(false) 
    #Erstelle das untere Informationsfenster:
    @bottom_line_window = Window_Base.new(0,416,640,64)
    @bottom_line_window.contents = Bitmap.new(608, 32)
    @bottom_line_window.contents.draw_text(0,0,608,32,IL_BOTTOM_WINDOW_TEXT,1)
 
    #Übergang zur Hauptschleife:
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
 
    # Zerstöre die oben erstellten Fenster:
    @bottom_line_window.dispose
    @skill_info_window.dispose
    @skill_select_window.dispose
    @headline1_window.dispose
    @headline2_window.dispose
  end
 
 
  def update
    #Aktualisiere das Auswahlfenster:
    @skill_select_window.update
    #Wenn "Abbruch" gedrückt wurde:
    if Input.trigger?(Input::B)
      #Wenn sich der Spieler im Auswahlfenster befindet breche die Scene ab:
      if @skill_select_window.active
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Kehre zur vorhergegangenen Scene zurück
        case @from_scene
        when 0
          $scene = Scene_Map.new
        when 1
          $scene = Scene_Menu.new(IL_MENUE_INDEX)
        when 2
          $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 0)
        when 3
          $scene = Scene_IL_Skillinfo_CS.new(@actor_id, 1)
        end  
        return
      else
      #Sonst beende das Informationsfenster und kehre zur Auswahl zurück:
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = true
        @skill_select_window.active = true
        @skill_info_window.visible(false)
        @bottom_line_window.visible = true
        # Schreibe die erste Überschrift wieder auf den Actor um:
        @headline1_window.contents.clear
        @headline1_window.contents.draw_text(0,0,120,32,$game_party.actors[@actor_id].name,0)
        @headline1_window.contents.draw_text(120,0,88,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
      end  
    end
    #Wenn "Aktion" gedrückt wurde:
    if Input.trigger?(Input::C)
      #Wenn sich der Spieler im Auswahlfenster befindet breche ab:
      if @skill_select_window.active
        # Prüfe ob der ausgewählte Skill gültig ist, breche ab wenn nicht:
        unless @skill_select_window.skill.is_a?(RPG::Skill)
          #Wenn nein spiele Buzzersound und kehre zurück
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        #Sonst öffne das Infofenster
        # Spiele Auswahlsound
        $game_system.se_play($data_system.decision_se)
        Graphics.freeze
        #schreibe das linke Überschriftfenster auf den Skill um:        
        @headline1_window.contents.clear
        bitmap = RPG::Cache.icon(@skill_select_window.skill.icon_name)
        @headline1_window.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24), 255)
        @headline1_window.contents.draw_text(32, 0, 200, 32, @skill_select_window.skill.name, 0)
        # aktualisiere das Infofenster
        @skill_info_window.refresh(@skill_select_window.skill)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = false
        @skill_select_window.active = false
        @skill_info_window.visible(true)
        @bottom_line_window.visible = false
        Graphics.transition
      else
      #Befindet sich der Spieler im Infofenster:
        # Spiele Abbruch-Sound
        $game_system.se_play($data_system.cancel_se)
        # Ändere Fenstersichtbarkeit
        @skill_select_window.visible = true
        @skill_select_window.active = true
        @skill_info_window.visible(false)
        @bottom_line_window.visible = true
        # Schreibe die erste Überschrift wieder auf den Actor um:
        @headline1_window.contents.clear
        @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1)
        @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
      end  
    end
    # Wenn "W"(R) gedrückt wurde
    if Input.trigger?(Input::R)
      #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die
      #Gruppengröße größer als 1 ist:
      return unless @skill_select_window.active and $game_party.actors.size >= 2
      # Spiele Cursorsound
      $game_system.se_play($data_system.cursor_se)
      @actor_id += 1
      @actor_id %= $game_party.actors.size
      # Update alle nötigen Fenster:
      Graphics.freeze
      refresh_after_actor_changed
      Graphics.transition
      return
    end
    # Wenn "Q" (L) gedrückt wurde:
    if Input.trigger?(Input::L)
      #Wechsle den aktuellen Actor, sofern das Auswahlfenster aktiv und die
      #Gruppengröße größer als 1 ist:
      return unless @skill_select_window.active and $game_party.actors.size >= 2
      # Spiele Cursorsound
      $game_system.se_play($data_system.cursor_se)
      @actor_id -= 1
      @actor_id %= $game_party.actors.size
      # Update alle nötigen Fenster:
      Graphics.freeze
      refresh_after_actor_changed
      Graphics.transition
      return
    end
  end
 
  #aktualisiere Auswahl und linkes Überschrift-Fenster:
  def refresh_after_actor_changed
    #Linke Überschrift:
    @headline1_window.contents.clear
    @headline1_window.contents.draw_text(0,0,128,32,$game_party.actors[@actor_id].name,1)
    @headline1_window.contents.draw_text(120,0,75,32,IL_LEVEL + " " + $game_party.actors[@actor_id].level.to_s,2)
    #Auswahlfenster:
    @skill_select_window.refresh(@actor_id)
  end  
end
zum Lesen den Text mit der Maus markieren

Das oben genannte Script enthält alle nötigen Scripts außer dem ersten geposteten (Der Übersetzungsdefinition)
Demnach könntest du also die letzten 4 Scripts durch dieses ersetzen.

ED:
Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1)
wird das Fenster von der Map und nicht vom Menü aus aufgerufen verwende
$scene = Scene_IL_Skillinfo_CS.new( startindex , 0)

Diese Änderung hätte u.U. schon gereicht^^

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Irrlicht« (4. August 2010, 18:24)


Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

12

Mittwoch, 4. August 2010, 21:05

Jo das zweite ist mit nem Zitat'^^ hab das falsche zitieren ausgewählt^^ sry :)

ED:

So es kommt wieder 'ne Fehlermeldung:
NameError occurred whie running Script:
undefined local variable or method `startindex' for
#<Interpreter: 0x720cac0>

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Erlkönig« (4. August 2010, 21:05)


Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

13

Mittwoch, 4. August 2010, 21:35

Öhm, ja, Startindex müsstest durch eben den Startindex ersetzen, also des Index mit dem du den Aufruf startest
Das wäre in dem Fall eine Zahl zwischen 0 (erster Actor in der Party) und 3 (4ter Actor in der Party)

Sorry wenn das nicht deutlich wurde...^^

Btw: ich hab gar nicht erwähnt dass die Werte automatisch auf
"1ster Actor in der Party" und "Aufruf von der Map" gesetzt werden wenn du einfach gar keine angibst *grins*

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

14

Mittwoch, 4. August 2010, 21:57

Soo jetzt versteh ich gar nichts mehr^^
> Um das Technikinfo-Fenster über die Charakterauswahl aufzurufen benutze den Scriptbefehl
$scene = Scene_IL_Skillinfo_CS.new( startindex , 1) <
Hast du geschrieben. Ich rufe es mit einem "Skillbuch" auf, das sollte dann das hier sein.. :/

ED:
Jo habs jetzt mit allen ausprobiert, das steht doch was von ner Variabel? =)

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

15

Mittwoch, 4. August 2010, 21:59

Joa, das schon...
aber auch:

Zitat


startindex
sollte idR. 0 betragen (erste Auswahl)


Wie gesagt, wenns nicht deutlich wurde tuts mir leid, aber hoffe das ist jetzt etwas klarer^^

Ansonsten nochmal Kurzanleitung:
Wird das Ganze über ein Callscript aufgerufen:

$scene = Scene_IL_Skillinfo_CS.new

Wenn du das Ding nur im Call-Script verwendest solltest du mit diesem Befehl auskommen :)

Willst du die Auswahl überspringen und direkt das Technikfenster eines Actors aufrufen verwende:

$scene = Scene_IL_Skillinfo.new
bzw.
$scene = Scene_IL_Skillinfo.new(1) oder einem anderen Index.

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

16

Mittwoch, 4. August 2010, 22:06

Wow das sieht doch ma toll aus :) Genau so hatte ichs mir vorgestellt!
Danke danke, - ich hoffe man kann auch die Anzahl der Techniken erhöhen oder?^^

Ich werds mir auf jeden Fall noch einma genauer Anschauen:)

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

17

Mittwoch, 4. August 2010, 22:09

Das Fenster sammelt automatisch alle Fähigkeiten, die der Actor bereits kennt (unabhängig von der Klasse) und die, die er im Zuge seiner Stufenaufstiege automatisch über seine Klasse erlernen wird.
Wie viele das sind hängt dann natürlich vom Actor ab^^

Probleme hab ich speziell noch mit dem Info-Fenster gehabt da die Raumaufteilung noch recht auf kurze Begriffe und ein gefülltes fenster ausgelegt war^^
Aber wenn dir das so passt hab ich da auch weiter kein Problem mit^^

mfG
Irrlicht

Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

18

Mittwoch, 4. August 2010, 22:12

Ok, passt schon,
Wie funktioniert denn das mit Techniken die ich z.B. von 'ner Schriftrolle erlerne?
Kann ich da auch einzeigen iwie: Nur mir Schriftrolle
oder so etwas? Oder werden die überhaupt nicht im Techniken-Buch festgehalten?

19

Mittwoch, 4. August 2010, 22:23

Also guck dir einfach den Eventcode an
PS: du musst für jeden Char einen Conditional Branche machen,
aufm Pic sieht man nur den Anfang vom 2. Char!

Bild
By yangus

Bild
By yangus

Du musst dem Spieler das Item wiedergeben, wenn er nein wählt oder abbricht,
deshalb das change item + healstein, weil sonst, wenn der Spieler diesem Char den Skill nich geben wollte
und dann abbricht das Item weg is (was wir ja aber nich wollen),
hat er jm aber den Skill beigebracht ist das Item weg (und sollte auch so sein)!

Hoff das hilft dir weiter^^

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Yangus« (4. August 2010, 22:46)


Erlkönig

Ankömmling

  • »Erlkönig« ist der Autor dieses Themas

Motto: You can sleep when you are dead!

  • Nachricht senden

20

Mittwoch, 4. August 2010, 22:24

>< ich hab nicht gefragt wie ich das mache, sondern ob das Script es anzeigt^^ Sry wenn ein bisschen unklar war. Naja aber ich glaube Irrlicht kommt draus

Social Bookmarks