Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Sonntag, 13. Mai 2007, 12:46

Große chars kleines event

gibt es ein script das bei großen chars (zb die kutsche aus dem rtp) das man bei denennicht hinten durchlaufen kann.
Beispiel:
Wenn man ein event macht das als grafik die kutsche hat kann man hinten durchlaufen (unter der kutsche ôÔ)
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

2

Sonntag, 13. Mai 2007, 13:14

*sich ins gesicht hau*

flat event kenn ich ja schon aber mann soll ja nicht über die kutsche laufen sondern gar nicht durch


Keine Doppelposts! Das hättest du auch editieren können. Beim nächsten mal gibts Punkte. ~Monsta

OK, hat sich erledigt... ~Monsta
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

3

Sonntag, 13. Mai 2007, 13:23

Mods: Ist kein Doppelpost von Paul, hab nur meinen Post gelöscht, auf den er reagiert hat.

Hat Monsta diese Option nicht eingebaut, in mein jetzt in der endgültigen Version 1.2 unten?

http://www.rmxp.de/forum/thread.php?threadid=8503

Nein, ich seh schon, man kann nur zwischen flach und normal umschalten. Vielleich macht sich Monsta nochmal dran, wär ja interessant für Gebäude als Events, das man nicht drüberlaufen kann. Für Postkutschne find ichs eigentlich ok, daas man hinten drunterlaufen kann, ist ja perspektivisch richtig.
Rabu

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rabu« (13. Mai 2007, 13:32)


4

Sonntag, 13. Mai 2007, 13:27

Nein... Flat Events Skript kann nur Flat Events machen ^^

@Topic: Ich hab mal gehört, dass es ein solches Skript gibt, hab es aber noch nicht gesehen...

5

Sonntag, 13. Mai 2007, 13:47

Das Problem bei diesen grossen Events wird halt scriptechnisch sein, dass nur ein Kernevent vorhanden ist, und man von vorn herein nicht weiss, welche optischen Ausmaße dieses Event hat. Charatechnisch kanns ja ne beliebige Grösse haben. Aber wie das scripttechnisch erfassen. Anhand der Charapic-Grösse durch 4?
Rabu

6

Sonntag, 13. Mai 2007, 13:49

wär echt mal praktisch so n script

wer nich weiß was ich mein für den hab ich des bild gemacht:

Bild
und ich will halt das man nicht drunter durchlaufen kann
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

7

Sonntag, 13. Mai 2007, 14:06

So oft werden Kutsch ja nicht in deinem Projekt vorkommen. Wenn sie steht, kannst die sie ja mit leeren (ohne Grafik)-Events blocken.

Wenn sie sich bewegt, erfasst du die X-Y-Koordinaten des Kutschen-Events in Varialblen, und machts im nem parallelen Event ne Bedingung, wo du die Helden-X-Y-Koordinaten mit denen von der Kutsche vergleichst, und wenn der Held der Kutsche auf 3 Schriite nahe kommt, soll er sich halt nicht mehr bewegen können.

So würde ich's lösen.
Rabu

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rabu« (13. Mai 2007, 14:07)


8

Sonntag, 13. Mai 2007, 14:13

^^

toll dann kann er sich ja so lang nicht bewegen bis die kutsche weiter ist
^^
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

9

Sonntag, 13. Mai 2007, 14:26

Du erinnerst dich an deinen ersten Post, da könnte er das ja nur eingeschränkt. Oder seh ich was falsch. Ausserdem kannst du es ja so erweitern, das er nur in bestimmte Richtungen laufen kann. In deinem Pic-Beispiel nur nach oben, unten und rechts.

Wie willst du das sonst lösen. Hilft nur, alle gängien Foren abklappern, bis du das vermeintliche Script (wie von Monsta erwähnt) gefunden hast.

Edit: Mann, ihr seid zu schnell, ich mach keine Einzeilenposts, also wartet ein bisschen.
Rabu

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Rabu« (13. Mai 2007, 14:32)


10

Sonntag, 13. Mai 2007, 14:28

ôÔ

aber wenn sich der held gar nicht mehr beegen kann dann kann er ja auch nicht einen schritt weg von der kutsche machen
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

11

Sonntag, 13. Mai 2007, 14:33

Siehe edit: (Einzeilenpost)
Rabu

12

Sonntag, 13. Mai 2007, 17:26

Also.. Wie per PN gesagt, hier die Edits für die Eventgröße:

Ersetze dein Game_Charakter 1 mit diesem Script hier:

Zitat


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
#==============================================================================
# ** Game_Character (part 1)
#------------------------------------------------------------------------------
#  This class deals with characters. It's used as a superclass for the
#  Game_Player and Game_Event classes.
#==============================================================================
 
class Game_Character
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :id                       # ID
  attr_reader   :x                        # map x-coordinate (logical)
  attr_reader   :y                        # map y-coordinate (logical)
  attr_reader   :real_x                   # map x-coordinate (real * 128)
  attr_reader   :real_y                   # map y-coordinate (real * 128)
  attr_reader   :tile_id                  # tile ID (invalid if 0)
  attr_reader   :character_name           # character file name
  attr_reader   :character_hue            # character hue
  attr_reader   :opacity                  # opacity level
  attr_reader   :blend_type               # blending method
  attr_reader   :direction                # direction
  attr_reader   :pattern                  # pattern
  attr_reader   :move_route_forcing       # forced move route flag
  attr_reader   :through                  # through
  attr_accessor :animation_id             # animation ID
  attr_accessor :transparent              # transparent flag
  attr_accessor :size_x                   # event size x
  attr_accessor :size_y                   # event size y
  attr_accessor :tiles_left               # sizing - tiles to the left
  attr_accessor :tiles_right              # sizing - tiles to the right
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @id = 0
    @x = 0
    @y = 0
    @real_x = 0
    @real_y = 0
    @tile_id = 0
    @character_name = ""
    @character_hue = 0
    @opacity = 255
    @blend_type = 0
    @direction = 2
    @pattern = 0
    @move_route_forcing = false
    @through = false
    @animation_id = 0
    @transparent = false
    @original_direction = 2
    @original_pattern = 0
    @move_type = 0
    @move_speed = 4
    @move_frequency = 6
    @move_route = nil
    @move_route_index = 0
    @original_move_route = nil
    @original_move_route_index = 0
    @walk_anime = true
    @step_anime = false
    @direction_fix = false
    @always_on_top = false
    @anime_count = 0
    @stop_count = 0
    @jump_count = 0
    @jump_peak = 0
    @wait_count = 0
    @locked = false
    @prelock_direction = 0
    @size_x = 1
    @size_y = 1
    @tiles_left = 0
    @tiles_right = 0
  end
  #--------------------------------------------------------------------------
  # * Determine if Moving
  #--------------------------------------------------------------------------
  def moving?
    # If logical coordinates differ from real coordinates,
    # movement is occurring.
    return (@real_x != @x * 128 or @real_y != @y * 128)
  end
  #--------------------------------------------------------------------------
  # * Determine if Jumping
  #--------------------------------------------------------------------------
  def jumping?
    # A jump is occurring if jump count is larger than 0
    return @jump_count > 0
  end
  #--------------------------------------------------------------------------
  # * Straighten Position
  #--------------------------------------------------------------------------
  def straighten
    # If moving animation or stop animation is ON
    if @walk_anime or @step_anime
      # Set pattern to 0
      @pattern = 0
    end
    # Clear animation count
    @anime_count = 0
    # Clear prelock direction
    @prelock_direction = 0
  end
  #--------------------------------------------------------------------------
  # * Force Move Route
  #     move_route : new move route
  #--------------------------------------------------------------------------
  def force_move_route(move_route)
    # Save original move route
    if @original_move_route == nil
      @original_move_route = @move_route
      @original_move_route_index = @move_route_index
    end
    # Change move route
    @move_route = move_route
    @move_route_index = 0
    # Set forced move route flag
    @move_route_forcing = true
    # Clear prelock direction
    @prelock_direction = 0
    # Clear wait count
    @wait_count = 0
    # Move cutsom
    move_type_custom
  end
  #--------------------------------------------------------------------------
  # *** BEGIN Sized Events v1.0
  #--------------------------------------------------------------------------
  #   By Toby Zerner
  #   USAGE:
  #   In a parallel process event, call this script:
  #     $game_map.events[ID].size(SIZE_X, SIZE_Y)
  #   Replacing the words in capitals with the actual details.
  #--------------------------------------------------------------------------
  def size(x, y)
    # Set instance variables
    @size_x = x
    @size_y = y
    # Work out the number of tiles either side of the event
    tiles_x      = (@size_x - 1) / 2
    @tiles_left  = tiles_x.floor
    @tiles_right = tiles_x.ceil
  end
 
  #--------------------------------------------------------------------------
  # * Determine if Passable
  #     x : x-coordinate
  #     y : y-coordinate
  #     d : direction (0,2,4,6,8)
  #         * 0 = Determines if all directions are impassable (for jumping)
  #--------------------------------------------------------------------------
  # EDITED FOR SIZED EVENTS
  #--------------------------------------------------------------------------
  def passable?(x, y, d)
    # Get new coordinates
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # If coordinates are outside of map
    unless $game_map.valid?(new_x, new_y)
      # impassable
      return false
    end
    # If through is ON
    if @through
      # passable
      return true
    end
 
    # Check map passability settings
    # Loop through each x tile
    for i in 0...@size_x
      # Check x coordinates
      # If unable to leave first move tile in designated direction
      unless $game_map.passable?(x - @tiles_left + i, y, d, self) then return false end
      unless $game_map.passable?(new_x - @tiles_left + i, new_y, 10 - d) then return false end
      # Loop through each y tile
      for j in 0...@size_y
        # Check y coordinates
        # If unable to leave first move tile in designated direction
        unless $game_map.passable?(x, y - j, d, self) then return false end
          # If unable to enter move tile in designated direction
        unless $game_map.passable?(new_x, new_y - j, 10 - d) then return false end
        # Check x and y coordinates
        # If unable to leave first move tile in designated direction
        unless $game_map.passable?(x - @tiles_left + i, y - j, d, self) then return false end
        # If unable to enter move tile in designated direction
        unless $game_map.passable?(new_x - @tiles_left + i, new_y - j, 10 - d) then return false end
      end
    end
 
    # Loop through map events
    for event in $game_map.events.values
      # If self is in range of [event]'s sizing, we can't pass
      if event_collide?(self, event, new_x, new_y)
        return false
      end
    end
 
    # If player coordinates are consistent with move destination
    if event_collide?(self, $game_player, new_x, new_y) and self != $game_player
      return false
    end
 
    # passable
    return true
  end
 
  #--------------------------------------------------------------------------
  # * Check if two events collide (event sizing)
  #   event1 : the first event
  #   event2 : the second event
  #   new_x  : the new x coordinate of event 1
  #   new_y  : the new y coordinate of event 1
  #--------------------------------------------------------------------------
  def event_collide?(event1, event2, new_x, new_y)
    if event1.id == event2.id then return false end
    collision = false
    # Check if there is a collision on the y axis
    # Loop through each individual tile on both events and compare them
    for i in (new_y - (event1.size_y - 1))..new_y
      for j in (event2.y - (event2.size_y - 1))..event2.y
        # If event 1's tile is the same as event 2's tile, we have a collision
        if i == j
          unless event1.through or event2.through
            # Make sure there is a graphic - if not, no collision
            if event1.character_name != "" and event2.character_name != ""
              # There was a collision
              collision = true
            end
          end
        end
      end
    end
    # If there was a collision on the y axis...
    if collision == true
      # Check the x axis
      # Loop through each individual tile on both events and compare them
      for i in (new_x - event1.tiles_left)..(new_x + event1.tiles_right)
        for j in (event2.x - event2.tiles_left)..(event2.x + event2.tiles_right)
          # If event 1's tile is the same as event 2's tile, we have a collision
          if i == j
            unless event1.through or event2.through
              # Make sure there is a graphic - if not, no collision
              if event1.character_name != "" and event2.character_name != ""
                # There was a collision
                return true
              end
            end
          end
        end
      end
    end
    # No collision
    return false
  end
  #--------------------------------------------------------------------------
  # * Lock
  #--------------------------------------------------------------------------
  def lock
    # If already locked
    if @locked
      # End method
      return
    end
    # Save prelock direction
    @prelock_direction = @direction
    # Turn toward player
    turn_toward_player
    # Set locked flag
    @locked = true
  end
  #--------------------------------------------------------------------------
  # * Determine if Locked
  #--------------------------------------------------------------------------
  def lock?
    return @locked
  end
  #--------------------------------------------------------------------------
  # * Unlock
  #--------------------------------------------------------------------------
  def unlock
    # If not locked
    unless @locked
      # End method
      return
    end
    # Clear locked flag
    @locked = false
    # If direction is not fixed
    unless @direction_fix
      # If prelock direction is saved
      if @prelock_direction != 0
        # Restore prelock direction
        @direction = @prelock_direction
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move to Designated Position
  #     x : x-coordinate
  #     y : y-coordinate
  #--------------------------------------------------------------------------
  def moveto(x, y)
    @x = x % $game_map.width
    @y = y % $game_map.height
    @real_x = @x * 128
    @real_y = @y * 128
    @prelock_direction = 0
  end
  #--------------------------------------------------------------------------
  # * Get Screen X-Coordinates
  #--------------------------------------------------------------------------
  def screen_x
    # Get screen coordinates from real coordinates and map display position
    return (@real_x - $game_map.display_x + 3) / 4 + 16
  end
  #--------------------------------------------------------------------------
  # * Get Screen Y-Coordinates
  #--------------------------------------------------------------------------
  def screen_y
    # Get screen coordinates from real coordinates and map display position
    y = (@real_y - $game_map.display_y + 3) / 4 + 32
    # Make y-coordinate smaller via jump count
    if @jump_count >= @jump_peak
      n = @jump_count - @jump_peak
    else
      n = @jump_peak - @jump_count
    end
    return y - (@jump_peak * @jump_peak - n * n) / 2
  end
  #--------------------------------------------------------------------------
  # * Get Screen Z-Coordinates
  #     height : character height
  #--------------------------------------------------------------------------
  def screen_z(height = 0)
    # If display flag on closest surface is ON
    if @always_on_top
      # 999, unconditional
      return 999
    end
    # Get screen coordinates from real coordinates and map display position
    z = (@real_y - $game_map.display_y + 3) / 4 + 32
    # If tile
    if @tile_id > 0
      # Add tile priority * 32
      return z + $game_map.priorities[@tile_id] * 32
    # If character
    else
      # If height exceeds 32, then add 31
      return z + ((height > 32) ? 31 : 0)
    end
  end
  #--------------------------------------------------------------------------
  # * Get Thicket Depth
  #--------------------------------------------------------------------------
  def bush_depth
    # If tile, or if display flag on the closest surface is ON
    if @tile_id > 0 or @always_on_top
      return 0
    end
    # If element tile other than jumping, then 12; anything else = 0
    if @jump_count == 0 and $game_map.bush?(@x, @y)
      return 12
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # * Get Terrain Tag
  #--------------------------------------------------------------------------
  def terrain_tag
    return $game_map.terrain_tag(@x, @y)
  end
end



Dein Game_Player ersetzt du mit diesem:

Zitat


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
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  This class handles the player. Its functions include event starting
#  determinants and map scrolling. Refer to "$game_player" for the one
#  instance of this class.
#==============================================================================
 
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Invariables
  #--------------------------------------------------------------------------
  CENTER_X = (320 - 16) * 4   # Center screen x-coordinate * 4
  CENTER_Y = (240 - 16) * 4   # Center screen y-coordinate * 4
  #--------------------------------------------------------------------------
  # * Passable Determinants
  #     x : x-coordinate
  #     y : y-coordinate
  #     d : direction (0,2,4,6,8)
  #         * 0 = Determines if all directions are impassable (for jumping)
  #--------------------------------------------------------------------------
  def passable?(x, y, d)
    # Get new coordinates
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # If coordinates are outside of map
    unless $game_map.valid?(new_x, new_y)
      # Impassable
      return false
    end
    # If debug mode is ON and ctrl key was pressed
    if $DEBUG and Input.press?(Input::CTRL)
      # Passable
      return true
    end
    super
  end
  #--------------------------------------------------------------------------
  # * Set Map Display Position to Center of Screen
  #--------------------------------------------------------------------------
  def center(x, y)
    max_x = ($game_map.width - 20) * 128
    max_y = ($game_map.height - 15) * 128
    $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
    $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
  end
  #--------------------------------------------------------------------------
  # * Move to Designated Position
  #     x : x-coordinate
  #     y : y-coordinate
  #--------------------------------------------------------------------------
  def moveto(x, y)
    super
    # Centering
    center(x, y)
    # Make encounter count
    make_encounter_count
  end
  #--------------------------------------------------------------------------
  # * Increaase Steps
  #--------------------------------------------------------------------------
  def increase_steps
    super
    # If move route is not forcing
    unless @move_route_forcing
      # Increase steps
      $game_party.increase_steps
      # Number of steps are an even number
      if $game_party.steps % 2 == 0
        # Slip damage check
        $game_party.check_map_slip_damage
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Get Encounter Count
  #--------------------------------------------------------------------------
  def encounter_count
    return @encounter_count
  end
  #--------------------------------------------------------------------------
  # * Make Encounter Count
  #--------------------------------------------------------------------------
  def make_encounter_count
    # Image of two dice rolling
    if $game_map.map_id != 0
      n = $game_map.encounter_step
      @encounter_count = rand(n) + rand(n) + 1
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # If party members = 0
    if $game_party.actors.size == 0
      # Clear character file name and hue
      @character_name = ""
      @character_hue = 0
      # End method
      return
    end
    # Get lead actor
    actor = $game_party.actors[0]
    # Set character file name and hue
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    # Initialize opacity level and blending method
    @opacity = 255
    @blend_type = 0
  end
  #--------------------------------------------------------------------------
  # * Same Position Starting Determinant
  #--------------------------------------------------------------------------
  def check_event_trigger_here(triggers)
    result = false
    # If event is running
    if $game_system.map_interpreter.running?
      return result
    end
    # All event loops
    for event in $game_map.events.values
      # If event coordinates and triggers are consistent
      # EDITED FOR SIZED EVENTS
      # If player's coordinates collide with the event and its sizing
      if @x >= event.x - event.tiles_left and @x <= event.x + event.tiles_right and
        @y >= event.y - (event.size_y - 1) and @y <= event.y and
        triggers.include?(event.trigger)
        # If starting determinant is same position event (other than jumping)
        if not event.jumping? and event.over_trigger?
          event.start
          result = true
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Front Envent Starting Determinant
  #--------------------------------------------------------------------------
  def check_event_trigger_there(triggers)
    result = false
    # If event is running
    if $game_system.map_interpreter.running?
      return result
    end
    # Calculate front event coordinates
    new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
    new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
    # All event loops
    for event in $game_map.events.values
      # If event coordinates and triggers are consistent
      # EDITED FOR SIZED EVENTS
      # If player's new coordinates collide with the event and its sizing
      if new_x >= event.x - event.tiles_left and new_x <= event.x + event.tiles_right and
        new_y >= event.y - (event.size_y - 1) and new_y <= event.y and
        triggers.include?(event.trigger)
        # If starting determinant is front event (other than jumping)
        if not event.jumping? and not event.over_trigger?
          event.start
          result = true
        end
      end
    end
    # If fitting event is not found
    if result == false
      # If front tile is a counter
      if $game_map.counter?(new_x, new_y)
        # Calculate 1 tile inside coordinates
        new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
        new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
        # All event loops
        for event in $game_map.events.values
          # If event coordinates and triggers are consistent
          # EDITED FOR SIZED EVENTS
          # If player's new coordinates collide with the event and its sizing
          if new_x >= event.x - event.tiles_left and new_x <= event.x + event.tiles_right and
             new_y >= event.y - (event.size_y - 1) and new_y <= event.y and
             triggers.include?(event.trigger)
            # If starting determinant is front event (other than jumping)
            if not event.jumping? and not event.over_trigger?
              event.start
              result = true
            end
          end
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Touch Event Starting Determinant
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    result = false
    # If event is running
    if $game_system.map_interpreter.running?
      return result
    end
    # All event loops
    for event in $game_map.events.values
      # EDITED FOR SIZED EVENTS
      # If passed coordinates collide with the event and its sizing
      if x >= event.x - event.tiles_left and x <= event.x + event.tiles_right and
         y >= event.y - (event.size_y - 1) and y <= event.y and [1,2].include?(event.trigger)
        event.start
        result = true
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Remember whether or not moving in local variables
    last_moving = moving?
    # If moving, event running, move route forcing, and message window
    # display are all not occurring
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # Move player in the direction the directional button is being pressed
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
    # Remember coordinates in local variables
    last_real_x = @real_x
    last_real_y = @real_y
    super
    # If character moves down and is positioned lower than the center
    # of the screen
    if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
      # Scroll map down
      $game_map.scroll_down(@real_y - last_real_y)
    end
    # If character moves left and is positioned more let on-screen than
    # center
    if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
      # Scroll map left
      $game_map.scroll_left(last_real_x - @real_x)
    end
    # If character moves right and is positioned more right on-screen than
    # center
    if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
      # Scroll map right
      $game_map.scroll_right(@real_x - last_real_x)
    end
    # If character moves up and is positioned higher than the center
    # of the screen
    if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
      # Scroll map up
      $game_map.scroll_up(last_real_y - @real_y)
    end
    # If not moving
    unless moving?
      # If player was moving last time
      if last_moving
        # Event determinant is via touch of same position event
        result = check_event_trigger_here([1,2])
        # If event which started does not exist
        if result == false
          # Disregard if debug mode is ON and ctrl key was pressed
          unless $DEBUG and Input.press?(Input::CTRL)
            # Encounter countdown
            if @encounter_count > 0
              @encounter_count -= 1
            end
          end
        end
      end
      # If C button was pressed
      if Input.trigger?(Input::C)
        # Same position and front event determinant
        check_event_trigger_here([0])
        check_event_trigger_there([0,1,2])
      end
    end
  end
end




Der Rest iss eigentlich einfach. Erstell per Event ( muss Paralell sein ), ein Call_Script mit folgendem Inhalt:

Zitat

$game_map.events[ID].size(Breite, Höhe)


ID = ID-nummer des Events, welches vergrößert werden soll
Breite = Breite des besagten Events. Die Breite wird mitig berechnet. Solltest du hier "3" reinmachen, ist das Event 1 feld nach Rechts, und eins nach links breiter. Bei "2" nur nach rechts
Höhe = Die Höhe des besagten Events. Sie wird normal in Feldern berechnet.

Bsp.:

Zitat

$game_map.events[1].size(7, 3)


Wenn der Pferdewagen nun die ID 1 hat, ist er 7 felder breit, und 3 Felden hoch ( des sind die Maße des Wagens ^^ ).


....getestet und als funktionsfähig eingestuft XD
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

13

Sonntag, 13. Mai 2007, 17:44

wooooow
thx thx
des funktioniert

kann geclost werden
Newbies brauchen hilfe ?? Addet mich bei ICQ 247667023 !!
.......___________
------|__________|-------- This is Nudelholz copy Nudelholz in your signatur to make better kuchen and other teigprodukte

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »---Paul---« (13. Mai 2007, 17:44)


14

Sonntag, 13. Mai 2007, 17:54

Frage: kann man das auch als extra Skipt (neues über Main) machen?
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

15

Sonntag, 13. Mai 2007, 19:04

hmm.. kp.. habs nochned versucht, da ich des ned groß umeditiere.
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

16

Sonntag, 13. Mai 2007, 19:17

Zitat

Original von Hanmac
Frage: kann man das auch als extra Skipt (neues über Main) machen?


Ja kann man. (Wieso probiert man sowas nicht einfach schnell selbst?!? *?(* )

Konflikte mit anderen Skripten wirst du so aber nicht los, oder willst du es blos der Übersicht halber?

@SLB: Sowas grenzt schon nah an Spam...

Mfg Monsta

17

Sonntag, 13. Mai 2007, 19:42

Tolles Script. Sir Bio.

ein kleines Problemchen gäb's noch, dass der Pferde wagen zwar 7 Felder breit ist, aber optisch nur in der waagrechten Richtung. Senkrecht ist er optisch nur 3 Felder breit undd afür höher ist.

Müsste halt im PE ne Bedingung machen, die die Facerichtung des Wagens abfragt und die Callscript-Anweisung dran anpassen, müsste doch geh'n oder?
Rabu

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rabu« (13. Mai 2007, 19:44)


18

Montag, 14. Mai 2007, 01:18

daher muss das Event mit dem Call_Script paralell sein...


Mach ne Abfrage in welche Richtung das Event sieht, und setze so die Größe.

@Monsta:
Sry, kommt nicht wieder vor.
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

19

Montag, 14. Mai 2007, 07:31

ist es so das das event zb:
-horizontal (3/7)
-vertical (7/3)

also die werte vertauschen oder ist das falsch?
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

20

Montag, 14. Mai 2007, 11:09

Wenn das ginge! :)

Noch zwei kleine Fragen (und eine Wunschvorstellung), sowohl an @Sir Lord als auch an Monsta.

1) Wenn die Call Script Anweisung so definiere wie im Bild unten für Vertikal und Horizontal, verhält sich dann der überstehende Teil des grossen Charas normal, also liegt der über dem Hero?

2) Die Definition im oberen Teil des Pics wäre so meine Wunschvorstellung also der blaue Teil begehbar, der rote Teil geblockt, also eine Variation für die Call Script-Höhenzuweisung. Wäre sowas bei diesem Script möglich?

Bild

Und zu allerletzt (trau mich's kaum zu sagen): Genial wär's natürlich wenn beide Scripts, also das von Sir Bio gepostete und das Flat Event Script von Monsta zusammenarbeiten würden.

Ich weiss, ich bin unersättlich, aber damit wär halt ein optimales Handling dieser übergrossen Charsets möglich. Ich würde das als genial einstufen. *:]*
Rabu

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Rabu« (14. Mai 2007, 13:16)


Social Bookmarks