Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

1

Mittwoch, 20. Dezember 2017, 13:57

Switch-Manager gesucht

Hallo ihr Lieben =)
Nach langer Zeit habe ich nun mein bestehendes Projekt wieder aufgenommen und festgestellt, dass ich einiges ändern muss.
Leider geht damit einher, dass ich mich kaum noch daran erinnern kann, welche Variablen und Switches welche Events beeinflussen. Ich weiß nicht, ob man eine Art Switch-Manager skripten kann, der im Spiel anzeigt, welche Events quasi durch welche Switches/Variablen beeinflusst werden und welche Events diese Veränderungen auslösen.
Hoffentlich hab ich mein Problem verständlich erklärt. Ich finde leider nichts über die Suchfunktion und habe auch schon diverse Foren durchforstet. Leider finde ich nichts, was mir helfen könnte und mein Projekt bereits so groß, dass ich bestimmt weit über 100 Switches belegt habe. Alle Events zu überprüfen würde sicherlich ewig dauern. =(
Hoffentlich kann mir jemand helfen...

LG
Dragonfly89

2

Freitag, 22. Dezember 2017, 22:12

Ja, das wäre machbar.
Was würde dir denn helfen? Würde dir eine Auflistung: Switch X wird in Event A, B und C als Condition und in Event D und E als Eventbefehl verwendet?
Oder willst Du im Testspiel, das irgendwie für die aktuelle Map angezeigt bekommen? Wenn Du eine Vorstellung hast, was dir am Meisten helfen würde, kann man sicher eine Lösung dafür finden.

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

3

Samstag, 23. Dezember 2017, 12:42

Das wäre super =)
Uff, ich finde beide Varianten sinnvoll, aber welche mir wohl mehr helfen würde, weiß ich ehrlich gesagt gar nicht.
Ich denke, wenn man eine globale Auflistung hat, ist es nicht ganz so übersichtlich, aber dafür hat man alles zusammen und kann auch Switches und Variablen nachvollziehen, die Map-übergreifend verwendet werden.
Ein Beispiel, wie ich es mir vorstellen würde, wäre per Tastenbefehl (wie z.B. auch der F9-Befehl funktioniert) ein Fenster im Testspiel zu öffnen, welches dann nach Switch-Nummern sortiert ist. Wenn man den Cursor darauf bewegt, wird rechts anzeigt, welche Events den Switch an- und ausschalten und welche Events dadurch beeinflusst werden und dasselbe mit Variablen:

Switches | "Set"-Event (Map-ID, Event-ID, setzt: true/false) - Condition-Event (Map-ID, Event-ID, reagiert bei: true/false)

Switch 1 | Event (1,5,true) - Event (2,3,true)
---------- | Event (1,9,false) - Event (5,2,false)
---------- | Event (119,2,true) - Event (10,1,false)

Switch 2 | etc.
________________________________________________________________________________________________________
Variablen | "Set"-Event (Map-ID, Event-ID, setzt, erhöht, verringert: Variablen-Wert) - Condition-Event (Map-ID, Event-ID, reagiert bei: Variablen-Wert)

Varaible 1 | Event (1,5,=10) - Event (2,3,11)
------------ | Event (1,9,+1) - Event (5,2,9)
------------ | Event (119,2,-2)

Variable 2 | etc.
______________________________________________________________________________________________________

Ich hoffe, dass ich das jetzt gut dargestellt habe.
Leider werden dadurch aber nicht die allgemeinen Events beachtet oder solche Switches/Variablen, die im Kampf genutzt werden.
Ich weiß nicht, ob das alles vielleicht etwas zuviel verlangt wäre, aber wenn du dafür Zeit finden könntest, wäre ich überglücklich =)

Danke schonmal für deine Hilfe und schöne Weihnachten =)

4

Samstag, 30. Dezember 2017, 23:56

So, bin aus der Weihnachtspause zurück. Ich persönlich denke, eine globale Auflistung wäre praktischer - aber ich schau mal.
Was möchtest Du denn alles erfassen? Klar, wenn es eine Condition einer Eventseite, eines AllgemeinenEvents (Switches) oder einer Bedingten Abfrage ist, bzw. bei den Eventbefehlen, die Switch und Variable setzen. Aber möchtest Du auch erfassen, wenn es in einer Textbox via \v[###] angezeigt wird, wenn es die Anzahl bestimmt, wieviele Items man bekommt und sowas? Also immer wenn irgendwo die Variable verwendet wird, oder nur die wichtigsten Eventbefehle erfassen?

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

5

Mittwoch, 10. Januar 2018, 19:42

Dann willkommen zurück ;)
Ich hoffe, du hast dich gut erholt und bist reichlich beschenkt worden.
Ich weiß nicht, wie ich mir das genau vorstellen soll mit der globalen Auflistung. Ich möchte schon direkt alle Switches und Variablen auf einen Blick haben. Mir würde tatsächlich reichen zu sehen, welches Event den Switch bzw. die Variable setzt oder verändert (inkl. Werte) und welches Event diese Variable oder den Switch als Condition hat.
Einfach damit ich nachvollziehen kann, was ich alles ändern muss, wenn ich zum Beispiel nen Endgegner rausnehme, von dessen Vernichtung einige Dinge im bisherigen Spiel abhängig waren.
Soweit ich mich erinnern kann, habe ich diesbezüglich noch keine Textboxen mit variablen Werten ins Spiel eingebaut, wenn das aber nicht zuviel Aufwand macht und du meinst, dass es vielleicht sinnvoll wäre, wovon ich im übrigen ausgehe, wäre es dennoch super, wenn du das ebenfalls einbauen könntest.

Ich hoffe, ich mach dir damit nicht zuviel Arbeit. =/
Danke nochmal für deinen Aufwand =)

6

Samstag, 13. Januar 2018, 00:45

Okay. Mal als Beispiel wie sowas aussehen könnte.
Das ist kein fertiges Scriptsystem und so, aber damit Du mal einen Eindruck gewinnst, was ich mit so einer "globalen Auflistung" meine. Wenn dir das prinzipiell gefällt, kann man das ausbauen und um Features erweitern, wie sie halt gebraucht werden.

Spoiler: Code

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
#******************************************************************************
#  
#  Projektauswertung von Playm (Version 0.0.1)
#  
#  Keine Weitergabe, oder Reposts gestattet.
#  Darf nicht außerhalb von www.RPG-Studio.org zugänglich gemacht werden.
#  
#******************************************************************************
# 
#==============================================================================
# ** HTML_Report
#------------------------------------------------------------------------------
#    Namespace for methods which creates html output by string concatination.
#==============================================================================
module HTML_Report
  #--------------------------------------------------------------------------
  # * Create <ul>...</ul> with all needed childs
  #--------------------------------------------------------------------------
  def self.create_html_ul( lines, css_class='', indent='' )
    str = "#{indent}<ul class=\"#{css_class}\">\n"
    lines.each do |line|
      str += "#{indent}  <li>#{line.to_s}</li>\n"
    end
    str += "#{indent}</ul>\n"
    str
  end
  #--------------------------------------------------------------------------
  # * Create <table>...</table> with all needed childs
  #--------------------------------------------------------------------------
  def self.create_html_table( header, lines, offset='' )
    str = "#{offset}<table border=\"1\" cellspacing=\"0\" cellpadding=\"4\">\n"
    str += "#{offset}  <tr>\n"
    header.each do |cell|
      str += "#{offset}    <th>%s</th>\n" % [cell.to_s]
    end
    str += "#{offset}  </tr>\n"
    lines.each do |line|
      str += "#{offset}  <tr>\n"
      line.each do |cell|
        str += "#{offset}    <td>%s</td>\n" % [cell.to_s]
      end
      str += "#{offset}  </tr>\n"
    end
    str+= "#{offset}</table>\n"
    str
  end
  #--------------------------------------------------------------------------
  # * Create <table>...</table> with all needed childs
  #--------------------------------------------------------------------------
  def self.create_complex_html_table( header, lines, offset='' )
    str = "#{offset}<table border=\"1\" cellspacing=\"0\" cellpadding=\"4\">\n"
    str += "#{offset}  <tr>\n"
    header.each do |cell|
      str += "#{offset}    <th>%s</th>\n" % [cell.to_s]
    end
    str += "#{offset}  </tr>\n"
    lines.each do |line|
      str += "#{offset}  <tr>\n"
      line.each do |cell|
        next if cell.nil?
        if cell.is_a? Hash
          content = cell[:content].to_s
          attributes = ''
          attributes += " rowspan=\"%d\"" % cell[:rowspan] if cell[:rowspan]
          str += "#{offset}    <td%s>%s</td>\n" % [ attributes, content ]
        else
          str += "#{offset}    <td>%s</td>\n" % [cell.to_s]
        end
      end
      str += "#{offset}  </tr>\n"
    end
    str+= "#{offset}</table>\n"
    str
  end
  #--------------------------------------------------------------------------
  # * Create Report CSS
  #--------------------------------------------------------------------------
  def self.create_css_rules( indent )
    str = "#{indent}table{ width:100%; }\n"
    str+= "#{indent}table,td,th {\n"
    str+= "#{indent}  border-style: solid;\n"
    str+= "#{indent}  border-color: #4488CC;\n"
    str+= "#{indent}  border-collapse: separate;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}body {\n"
    str+= "#{indent}  background: linear-gradient(to right, rgba(251,243,135,1) 0%,rgba(251,243,135,0) 40px);\n"
    str+= "#{indent}  color: #000000;\n"
    str+= "#{indent}  margin-left: 1.8em;\n"
    str+= "#{indent}  overflow-x: hidden;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}h1 {\n"
    str+= "#{indent}  font-family: \"Times New Roman\", serif;\n"
    str+= "#{indent}  font-size:200%;\n"
    str+= "#{indent}  line-height: 120%;\n"
    str+= "#{indent}  margin:0.5em 0 1em;\n"
    str+= "#{indent}  border-bottom: 0.1em solid;\n"
    str+= "#{indent}  border-color: #E04000;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}h2 {\n"
    str+= "#{indent}  font-family: Verdana, sans-serif;\n"
    str+= "#{indent}  font-size:180%;\n"
    str+= "#{indent}  line-height: 110%;\n"
    str+= "#{indent}  margin:1em 0 0.8em;\n"
    str+= "#{indent}  padding:0.3em 0.2em 0;\n"
    str+= "#{indent}  border: 0.1em dashed;\n"
    str+= "#{indent}  border-color: #E04000;\n"
    str+= "#{indent}  color: #000000;\n"
    str+= "#{indent}  background-color: #E0C060;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}h3{\n"
    str+= "#{indent}  font-family: \"Times New Roman\", serif;\n"
    str+= "#{indent}  font-size: 160%;\n"
    str+= "#{indent}  line-height: 150%;\n"
    str+= "#{indent}  margin-bottom: 0.5em;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}footer {\n"
    str+= "#{indent}  font-family: Verdana, sans-serif;\n"
    str+= "#{indent}  margin:0.5em 0 0;\n"
    str+= "#{indent}  padding:0.5em 0 0;\n"
    str+= "#{indent}  border-top: 0.1em solid;\n"
    str+= "#{indent}  border-color: #E04000;\n"
    str+= "#{indent}  font-size: 85%;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.yellow_back {\n"
    str+= "#{indent}  padding:0.2em 0.3em;\n"
    str+= "#{indent}  color: #000000;\n"
    str+= "#{indent}  background-color: #B5DAFF;\n"# #FBF387;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.brown_back {\n"
    str+= "#{indent}  padding:0.2em 0.3em;\n"
    str+= "#{indent}  color: #000000;\n"
    str+= "#{indent}  background-color: #4488CC;\n"# #E0C060;\n"
    str+= "#{indent}  text-align:center;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.big_number {\n"
    str+= "#{indent}  text-align:center;\n"
    str+= "#{indent}  font-size:400%;\n"
    str+= "#{indent}  font-weight:bold;\n"
    str+= "#{indent}  font-family: Verdana, sans-serif;\n"
    str+= "#{indent}  color: #333333;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.big_number_list {\n"
    str+= "#{indent}  display:flex;\n"
    str+= "#{indent}  list-style:none;\n"
    str+= "#{indent}  padding:0;\n"
    str+= "#{indent}  margin:0 -1em;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.big_number_list li {\n"
    str+= "#{indent}  flex-grow:1;\n"
    str+= "#{indent}  margin:0 1em;\n"
    str+= "#{indent}  font-weight:bold;\n"
    str+= "#{indent}  border: 2px solid #4488CC;\n"
    str+= "#{indent}}\n"
    str+= "#{indent}.big_number_list li div {\n"
    str+= "#{indent}  padding:0.2em 0.3em;\n"
    str+= "#{indent}  text-align:center;\n"
    str+= "#{indent}}\n"
    str
  end
  #--------------------------------------------------------------------------
  # * Create Report Footer
  #--------------------------------------------------------------------------
  def self.create_footer
    str = "<footer>\n"
    str+= "  &copy;2017 Auswertungsscript / Playm\n"
    str+= "</footer>\n"
    str
  end
  #--------------------------------------------------------------------------
  # * Create HTML Page Framework for given body html
  #--------------------------------------------------------------------------
  def self.create_html_framework( game_title, body )
    str  = "<!DOCTYPE html>\n"
    str += "<meta charset=\"UTF-8\">\n"
    str += "<title>#{game_title}</title>\n"
    str += "<style>\n"
    str += self.create_css_rules("\s\s")
    str += "</style>\n"
    str += body
    str += self.create_footer
    str
  end
end
 
#==============================================================================
# ** Collect Report Data
#==============================================================================
 
data_mapinfos = load_data("Data/MapInfos.rvdata2")
data_system   = load_data("Data/System.rvdata2")
 
SwitchUse = Struct.new( :switch_id, :map_id, :event_id, :usecase )
VariableUse = Struct.new( :variable_id, :map_id, :event_id, :usecase )
 
ProjectFacts = {
  :total_map_count => 0,
  :total_event_count => 0,
  :common_event_count => 0
}
 
$switches = []
$variables = []
 
def process_page_conditon( map_id, ev_id, page_condition )
  if page_condition.switch1_valid
    $switches << SwitchUse.new( page_condition.switch1_id, map_id, ev_id, :page_con)
  end
  if page_condition.switch2_valid
    $switches << SwitchUse.new( page_condition.switch2_id, map_id, ev_id, :page_con)
  end
  if page_condition.variable_valid
    $variables << VariableUse.new( page_condition.variable_id, map_id, ev_id, :page_con)
  end
  page_condition
end
 
def process_page_list( map_id, ev_id, page_list )
  page_list.each do |command|
    case command.code
    when 111 # [Conditional Branch]
      case command.parameters[0]
      when 0  # Switch
        $switches << SwitchUse.new( command.parameters[1], map_id, ev_id, :list_con)
      when 1  # Variable
        $variables << VariableUse.new( command.parameters[1], map_id, ev_id, :list_con)
        if command.parameters[2] != 0
          $variables << VariableUse.new( command.parameters[3], map_id, ev_id, :list_con)
        end
      end
    when 121 # [Control Switches]
      (command.parameters[0]..command.parameters[1]).each do |switch_id|
        $switches << SwitchUse.new( switch_id, map_id, ev_id, :list_eff)
      end
    when 122 # [Control Variables]
      (command.parameters[0]..command.parameters[1]).each do |variable_id|
        $variables << VariableUse.new( variable_id, map_id, ev_id, :list_eff)
      end
      if command.parameters[3] == 1
        $variables << VariableUse.new( command.parameters[4], map_id, ev_id, :list_ask)
      end
    end
  end
end
 
Dir.glob('Data/Map[0-9][0-9][0-9].rvdata2').each do |filename|
  map = load_data(filename)
  map_id = filename[/\d\d\d/].to_i
  map.events.each do |id, event|
    event.pages.each do |page|
      process_page_conditon( map_id, id, page.condition )
      process_page_list( map_id, id, page.list )
    end
    ProjectFacts[:total_event_count] += 1
  end
  ProjectFacts[:total_map_count] += 1
end
 
load_data("Data/CommonEvents.rvdata2").each do |ce|
  next if ce.nil?
  process_page_list( 0, ce.id, ce.list )
  if ce.trigger != 0
    $switches << SwitchUse.new( ce.switch_id, 0, ce.id, :page_con)
  end
  ProjectFacts[:common_event_count] += 1
end
 
$switches.sort!{ |a,b| a.usecase <=> b.usecase }
$switches.sort!{ |a,b| a.event_id <=> b.event_id }
$switches.sort!{ |a,b| a.map_id <=> b.map_id }
$switches.sort!{ |a,b| a.switch_id <=> b.switch_id }
 
$variables.sort!{ |a,b| a.usecase <=> b.usecase }
$variables.sort!{ |a,b| a.event_id <=> b.event_id }
$variables.sort!{ |a,b| a.map_id <=> b.map_id }
$variables.sort!{ |a,b| a.variable_id <=> b.variable_id }
 
sw_lines = []
last_switch_id = nil
row_span_count = 0
$switches.each do |use|
  if use.map_id.zero?
    map_origin = 'CommonEvent'
  else
    map_origin = "%03d | %s" % [use.map_id, data_mapinfos[use.map_id].name]
  end
  if use.switch_id == last_switch_id and not use == $switches.last
    sw_id = nil
    row_span_count += 1
  else
    if row_span_count > 0
      row_span_count += 1
      original_content = sw_lines[-row_span_count].first
      sw_lines[-row_span_count][0] = { :rowspan=>row_span_count,
                                      :content=>original_content }
      row_span_count = 0
    end
    sw_id = "%04d" % use.switch_id
    last_switch_id = use.switch_id
  end
  sw_lines << [ sw_id,
                map_origin,
                "%03d" % use.event_id,
                case use.usecase
                when :page_con
                  'Bedingung für Eventseite'
                when :list_con
                  'Bedingte Abfrage'
                when :list_eff
                  'Wird neu gesetzt'
                end
              ]
end
 
vr_lines = []
last_variable_id = nil
row_span_count = 0
$variables.each do |use|
  if use.map_id.zero?
    #map_origin = "%03d" % use.map_id
    map_origin = 'CommonEvent'
  else
    map_origin = "%03d | %s" % [use.map_id, data_mapinfos[use.map_id].name]
  end
  if use.variable_id == last_variable_id and not use == $variables.last
    vr_id = nil
    row_span_count += 1
  else
    if row_span_count > 0
      row_span_count += 1
      original_content = vr_lines[-row_span_count].first
      vr_lines[-row_span_count][0] = { :rowspan=>row_span_count,
                                      :content=>original_content }
      row_span_count = 0
    end
    vr_id = "%04d" % use.variable_id
    last_variable_id = use.variable_id
  end
  vr_lines << [ vr_id,
                map_origin,
                "%03d" % use.event_id,
                case use.usecase
                when :page_con
                  'Bedingung für Eventseite'
                when :list_con
                  'Bedingte Abfrage'
                when :list_eff
                  'Wird neu gesetzt'
                when :list_ask
                  'Wird als Wert verwendet'
                end
              ]
end
 
#==============================================================================
# ** Make Output
#==============================================================================
 
facts = [
  "<div class=\"big_number\">#{ProjectFacts[:total_map_count]}</div>"+
  "<div class=\"\">Maps im Projekt</div>",
  "<div class=\"big_number\">#{ProjectFacts[:total_event_count]}</div>"+
  "<div class=\"\">Events im Projekt</div>",
  "<div class=\"big_number\">#{ProjectFacts[:common_event_count]}</div>"+
  "<div class=\"\">CommonEvents im Projekt</div>"
]
 
game_title = data_system.game_title
 
str  = "<h1>Auswertung zu #{game_title}</h1>"
str += "<p>Diese Auswertung beschreibt die verschiedenen Features von "
str += game_title
str += ".</p>\n"
str += HTML_Report.create_html_ul( ["<a href=\"#switches\">Switches</a>",
                                    "<a href=\"#variables\">Variables</a>"] )
str += "<h2>Übersicht</h2>\n"
str += "<p></p>\n"
str += HTML_Report.create_html_ul( facts, 'big_number_list' )
str += "<h2>System</h2>\n"
str += "<h3 id=\"switches\">Switches</h3>\n"
header = ['Switch ID', 'Origin', 'Event ID', 'Benutzung']
#str += HTML_Report.create_html_table(header,sw_lines)
str += HTML_Report.create_complex_html_table(header,sw_lines)
str += "<h3 id=\"variables\">Variables</h3>\n"
header = ['Variable ID', 'Origin', 'Event ID', 'Benutzung']
str += HTML_Report.create_complex_html_table(header,vr_lines)
 
html = HTML_Report.create_html_framework( game_title, str )
 
File.open("auswertung.html", "w") { |f| f.write html }
 
msgbox "Alle Daten erfasst. Auswertung.html wurde im Projektordner angelegt."
exit
zum Lesen den Text mit der Maus markieren

Füg das Script einfach bei dir unter Materials ein. Starte das Spiel. (Spiel beendet sich automatisch direkt wieder.) Nimm das Script wieder aus dem ScriptEditor raus.
Im Spielordner sollte sich jetzt eine Auswertungs-Datei befinden, die Du mit dem Browser öffnen kannst. Design ist an der Hilfedatei des Makers orientiert.

Anmerkung: Es kann sein, dass das Script nicht ordentlich durchläuft und keine Auswertungs-Datei erstellt. Habe das Script noch nicht mit einem großen Projekt testen können, da ich einfach kein Ace-Spiel habe was mehr als 100 Switches und Variablen benutzt.

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

7

Freitag, 19. Januar 2018, 16:36

WOW! Es funktioniert, soweit ich das jetzt auf den ersten Blick beurteilen kann, einwandfrei! Und ich finde es extrem gut gemacht.
Danke dafür auf jeden Fall!

Nun weiß ich also, was du mit globaler Übersicht meinst und ich denke, dass das wohl die bessere Variante ist, als die, die ich in meinem Kopf hatte.

Ein paar kleine Vorschläge hätte ich noch:
Ich glaube, es würde der Übersichtlichkeit dienen, wenn man zunächst nur die Switch-ID sieht.
Sodass, wenn man darauf klickt, die weiteren Informationen sichtbar werden. Ich weiß nicht, ob das möglich ist. Ist nur nen Gedanke.

Dann wäre es vielleicht noch sinnvoll, die beeinflussten und die setzenden Events in eine jeweils eigene Spalte zu setzen. Verstehst du in etwa, was ich meine?
Ich könnte es mal in einer Excel-Tabelle visualisieren, damit das verständlicher wird.

Ist es möglich, dir das HTML-Dokument zu schicken, damit du siehst, was ich mit "Übersichtlichkeit" meine? Weil in der Adresszeile wird nur mein lokaler Pfad angezeigt.
(Ist vielleicht ne dumme Frage, aber irgendwie erscheint mir das suspekt mit der Adresszeile :hm:)
Wenn das möglich ist, würde ich das auf jeden Fall mal machen, damit du eine Vorstellung vom Umfang des Dokuments hast.

Ein Riesendank noch einmal dafür und ganz großes Lob für das schöne Skript schonmal.


Liebe Grüße

PS: Mir ist aufgefallen, dass es noch wichtig wäre, eventuelle Skripts anzugeben, welche durch Schalter aktiviert werden können. In meinem Beispiel sind sie noch nicht vorhanden.
Ich hoffe, das ist irgendwie möglich und die index.php?page=Attachment&attachmentID=23867 ist anschaulich genug.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dragonfly89« (19. Januar 2018, 18:13)


8

Freitag, 19. Januar 2018, 18:09

Freut mich, dass es so gut bei dir ankommt. :-)

Zitat von »Dragonfly89«

Ich glaube, es würde der Übersichtlichkeit dienen, wenn man zunächst nur die Switch-ID sieht.

Könnte man realisieren. Es gäbe dafür (das interaktiv zu machen) zwei Varianten unter der Haube, ich denk mal drüber nach, welche ich besser finde.

Man kann auch beliebig gründlicher das Projekt durchstöbern und noch mehr Details erfassen, wenn dir sonst noch etwas weiterhelfen würde.

Zitat von »Dragonfly89«

Dann wäre es vielleicht noch sinnvoll, die beeinflussten und die setzenden Events in eine jeweils eigene Spalte zu setzen. Verstehst du in etwa, was ich meine?
Leider versteh ich es nicht.

Zitat von »Dragonfly89«

Ist es möglich, dir das HTML-Dokument zu schicken, damit du siehst, was ich mit "Übersichtlichkeit" meine?
Du könntest die Auswertung zippen (komprimieren) und hier als Dateianhang anfügen. Die Auswertung enthält nur Daten über dein Projekt und keine personenbezogenen Daten (es seiden, dein Projekt hat zufälligerweise den Titel "Hallo ich heiße Vorname Nachname und wohne in XY"). Ansonsten kannst Du die ZIP-Datei auch per PN schicken.

Zitat

Wenn das möglich ist, würde ich das auf jeden Fall mal machen, damit du eine Vorstellung vom Umfang des Dokuments hast.
In meinem Testprojekt habe ich das mit 20 Switches/Variablen, zwei Maps und zwei Events ausprobiert. .-. Vielleicht sieht das ganz anders aus, wenn man mehr Maps hat.

Zitat

Ein Riesendank noch einmal dafür und ganz großes Lob für das schöne Skript schonmal.
Hm, okay, gern geschehen. :blush:

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

9

Freitag, 19. Januar 2018, 18:20

Ich habe den oberen Beitrag bereits einmal editiert. Habe nicht bemerkt, dass du in der Zwischenzeit geantwortet hast.
Dort kannst du dir einmal ansehen, wie ich mir das in etwa vorstelle. Und index.php?page=Attachment&attachmentID=23868 ist einmal die Auswertung meines Projekts. (Hoffentlich hat das jetzt geklappt)

10

Freitag, 19. Januar 2018, 18:54

Zitat von »Auswertung«

2864 Events im Projekt
:woot:

Zitat

PS: Mir ist aufgefallen, dass es noch wichtig wäre, eventuelle Skripts anzugeben, welche durch Schalter aktiviert werden können. In meinem Beispiel sind sie noch nicht vorhanden.
Was für Scripts meinst Du zum Beispiel? Scripts im Allgemeinen sind aber sehr unstrukturiert geschrieben, gegenüber EventCommands die eine ganz klare Struktur haben. Auszuwerten, ob in Scripts Variablen oder Switches verwendet werden ist also ein schweres Problem.

Zitat

Ich hoffe, das ist irgendwie möglich und die Tabelle ist anschaulich genug.
Hm, also Du hättest die Tabelle gerne etwas anders strukturiert. Kann man sicher machen.
Edit Eine Frage zu den Spalten: Es gibt mindestens die folgenden Arten der Verwendung einer Variable: 1) Bedingung für Eventseite; 2) Bedingte Abfrage Eventbefehl; 3) Wert wird gesetzt; 4) Wert wird verwendet als Anzahl für "Geld ändern", "Waffe ändern", ...; 5) Wert wird verwendet in einer "Zeige Text"-Nachricht.
Wie sollen diese Verwendungsfälle in deinen Tabellenentwurf einsortiert werden? Kannst Du das etwas genauer beschreiben?


Ich werde mich (vermutlich nicht morgen) aber mal ein Wochenende dransetzen und das ganze Script nochmal in schöner neustricken. Wäre prima, vorher möglichst viel Input zu haben, was für Funktionen bereitgestellt werden sollen. Ich habe mir jetzt notiert eine etwas andere Spaltenaufteilung im Output, die Werte mit auszuwerten - wegen "Scripts" schreibst Du nochmal eine Erklärung - welche Wünsche gibt es sonst noch?

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

11

Samstag, 20. Januar 2018, 15:39

Zitat

Zitat

2864 Events im Projekt
Bild
Hehe...genau das meinte ich mit umfangreich. Ich bin an dem Projekt aber auch schon ewig zugange. Wollte auch mal meine Chocobozucht mit einbauen, falls du dich daran noch erinnerst. Das ist schon etwas her. Ich hab es damals verworfen, weil ich mit Sicherheit weit über 50 Variablen und Switches hätte dafür abändern müssen. Und wenn man 20 Events hat, die diese als Bedingung haben, ist man sicherlich lange beschäftigt mit umbauen. Ich hätte damals die Zucht direkt in mein Spiel einbauen sollen und kein externes Projekt dafür benutzen, aber hinterher ist man immer schlauer. Ich denke jedoch, dass ich vielleicht irgendwann die Muße habe, die Zucht vielleicht doch einfach einzubauen, weil der Aufwand sie zu erstellen einfach zu groß war. Aber das ist ein ganz anderes Thema.

Zitat

Was für Scripts meinst Du zum Beispiel? Scripts im Allgemeinen sind aber
sehr unstrukturiert geschrieben, gegenüber EventCommands die eine ganz
klare Struktur haben. Auszuwerten, ob in Scripts Variablen oder Switches
verwendet werden ist also ein schweres Problem.
Ich habe mich dazu entschieden, die Scripts einfach wegzulassen. Es wäre glaube ich zuviel, wenn man sämtliche Scripts durchsuchen müsste, um zu schauen, wie dort Switches und Variablen verwendet werden. Ich kann die entsprechenden Switches und Variablen ja vielleicht einfach umbenennen und dann weiß ich, dass sie für ein Script sind. So viele sind es glaube ich nicht.

Zitat

Eine Frage zu den Spalten: Es gibt mindestens die folgenden Arten der
Verwendung einer Variable: 1) Bedingung für Eventseite; 2) Bedingte
Abfrage Eventbefehl; 3) Wert wird gesetzt; 4) Wert wird verwendet als
Anzahl für "Geld ändern", "Waffe ändern", ...; 5) Wert wird verwendet in
einer "Zeige Text"-Nachricht.

Wie sollen diese Verwendungsfälle in deinen Tabellenentwurf einsortiert werden? Kannst Du das etwas genauer beschreiben?
Ich habe meinen Entwurf mal etwas verfeinert. Ich denke, er ist alleine nicht sehr aussagekräftig. Deshalb möchte ich das hier etwas ausführen.

Spoiler
Hier zunächst die index.php?page=Attachment&attachmentID=23871.

1) Bedingung für Eventseite: würde ich unter die Rubrik "Bedingt Abfrage" (i.F.: Rubrik 2) einbauen. Ich weiß nicht, ob man es von Nr. 2) differenzieren muss.
2) Bedingte Abfrage Eventbefehl: ebenfalls unter die Rubrik 2. Vielleicht kann man noch eine eigene Spalte einbauen, wo dann steht, ob die "Eventseite" oder der "Eventbefehl" die Bedingung hat. Ich weiß nicht, ob das notwendig ist, da zu unterscheiden. Das überlasse ich dir.
3) Wert wird gesetzt: kommt unter die Rubrik "Wird neu gesetzt" (i.F.: Rubrik 1).
4) Wert wird verwendet: kommt in die Rubrik "Verwendet Wert" (i.F.: Rubrik 3). Da wird eben dann angegeben wie der Variablenwert verwendet wird. (Beispiele: Textanzeige, ändert Spieldaten)
"Spieldaten" würde ich hier auch konkretisieren: "Ändert Geld/Item-ID/Rüstung-ID/Waffe-ID/MHP/MMP/HP/MP/etc." (für Änderung der Menge) und "ändert Ausrüstung: Waffe-ID, Rüstung-ID" (für Änderung der Ausrüstung). Vor der ID müsste dann i[ID],w[ID],a[ID] stehen, damit klar ist, um was für einen ID-Typ es sich handelt.
Ich denke, in Rubrik 3 ist eine Spalte mit Werten unnötig, da diese ja quasi aus der Rubrik 1 übernommen werden oder sehe ich das falsch?
zum Lesen den Text mit der Maus markieren

Hoffentlich verdeutlicht das ein Bisschen meine Gedankengänge. :hm:
Ich bin mir darüber im Klaren, dass die Werte, wie ich sie eingefügt habe nicht unbedingt funktionieren. Sie dienen eben nur der Veranschaulichung.

Wenn noch Fragen offen sind, einfach fragen. Ich werd mir größte Mühe geben, sie zu beantworten.
Falls du selbst noch Ideen hast, die du gerne einbauen möchtest, tu dir keinen Zwang an.
Ich freu mich über jede Idee, die mir weiterhelfen kann, mein Spiel mal etwas voran zu bringen.

Sooooo... dann wünsche ich dir viel Erfolg beim Basteln und bin extrem gespannt auf das Ergebnis, welches sicher der Hammer sein wird.

Danke dir und ein schönes Wochenende =)

Josey

Storyteller

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

12

Mittwoch, 24. Januar 2018, 23:41

Im XP kann ich einfach per STRG+SHIFT+F nach "$game_switches[" suchen, dann werden mir alle Einträge angezeigt. :3
Hilft das? XD
  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star-half: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty: (Ein Stern- offiziell verliehen von Playm! XD)
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dragonfly89

Ankömmling

  • »Dragonfly89« ist der Autor dieses Themas

Motto: Wieso einfach, wenn es auch kompliziert geht?

  • Nachricht senden

13

Mittwoch, 7. Februar 2018, 22:55

Hey Josey,
tut mir leid für die späte Antwort. Ich hatte in letzter Zeit extrem viel zutun. Ich bin nicht ganz sicher, wie du das meinst. Daher kann ich die Frage, ob das hilft leider nicht wirklich beantworten. Wo genau wendest du die Suchfunktion denn an, dass dir die Switches angezeigt werden? Im Testspiel? Oder im Editor? Oder etwa ganz woanders? Ich kenne den RMXP leider nicht. Das letzte mal hab ich damit als Kind "gespielt", ohne davon richtig Ahnung zu haben.

PS:
Ich habe jetzt mal etwas rumprobiert und verstehe jetzt, was du meinst. Im Script-Editor könnte ich die Suchfunktion wohl nutzen, damit ich die dort verarbeiteten Switches finde. Vielen Dank dafür. =)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dragonfly89« (19. Februar 2018, 11:30)


Social Bookmarks