• Anmelden

Lucy Fox

Zee Captain

  • »Lucy Fox« ist der Autor dieses Themas

Motto: Dreams shed light on the dim places where reason itself has yet to voyage.

  • Nachricht senden

1

Samstag, 2. März 2013, 02:33

Schattenscript ändert Durchsichtigkeit von Animationen

Hiho ^^

Mir ist gerade etwas sehr merkwürdiges aufgefallen.
Ich benutze dieses Script für Schatten:

Spoiler

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
#==============================================================================
# ** Dynamic Shadows
#------------------------------------------------------------------------------
# Rataime
# Version 4.0
# 06/05/2007 (2007-05-06)
# Version 1.0 was based on Genzai Kawakami's shadows, extra features Boushy
# Versión sin SDK by DarkZas http://www.planetarpg.com.ar
#==============================================================================
 
#==============================================================================
# Here's the brand new free configuration feature
# The comments will be compared to the pattern using Regexp, except that I did
# the entire work for you, so you don't have to know regexps at all.
# Just choose the trigger ('s', 'begin shadow' or whatever), and the pattern
# The pattern can be one line or a list to use multiple comment lines.
# arg1 is the minimum angle
# arg2 is the maximum angle
# arg3 is the maximum distance
# The only thing you must do is using 'trigger' before the arguments
# Examples :
#
# SHADOWS_SOURCE_COMMENT_TRIGGER = 's'
# SHADOWS_SOURCE_COMMENT_PATTERN = ['trigger','arg1','arg2','arg3']
# SHADOWS_CHAR_COMMENT_TRIGGER = 'o'
# SHADOWS_CHAR_COMMENT_PATTERN = 'trigger'
# is the old way to use shadows, with a single 's' in the first line, and the
# arguments in following lines
#
# SHADOWS_SOURCE_COMMENT_TRIGGER = 'begin shadow source'
# SHADOWS_SOURCE_COMMENT_PATTERN =
# ['trigger','anglemin arg1','anglemax arg2','distancemax arg3']
# SHADOWS_CHAR_COMMENT_TRIGGER = 'begin shadow'
# SHADOWS_CHAR_COMMENT_PATTERN = 'trigger'
# will work with :
# Comment "begin shadow source"
# Comment "anglemin 0"
# Comment "anglemax 0"
# Comment "distancemax 250"
#
# Take the time to choose something you like, and something compatible with other
# scripts.
# Note that the comments will be detected even if they aren't in the beginning
# of the event's action list. Ah, and you can switch the arguments if you like
#==============================================================================
 
#==============================================================================
# Here is the method I like best, because of its compatibility with other
# scripts. But don't hesitate to change it.
# It will react to something like Shadow|0|0|250
#==============================================================================
 
SHADOWS_SOURCE_COMMENT_TRIGGER = 'Shadow'
SHADOWS_SOURCE_COMMENT_PATTERN = 'trigger|arg1|arg2|arg3'
SHADOWS_CHAR_COMMENT_TRIGGER = 'o'
SHADOWS_CHAR_COMMENT_PATTERN = 'trigger'
 
#==============================================================================
# An important option : if you set it to true, the shadows will get longer if
# you are far from the source. Nice, but induces lag : it will eat your CPU,
# and quite possibly your first born if you try that on a big map.
#==============================================================================
 
SHADOW_GETS_LONGER = false
#==============================================================================
# Misc options
# If an event has its opacity below SHADOWS_OPACITY_THRESHOLD, no shadow will
# be displayed.
# Set SHADOWS_CATERPILLAR_COMPATIBLE to true if you uses the caterpillar script
#==============================================================================
 
SHADOWS_OPACITY_THRESHOLD = 100
SHADOWS_CATERPILLAR_COMPATIBLE = false
 
#==============================================================================
# You probably won't need to touch this : it's the 'map' of how to display the
# shadow depending on the event's direction and his relative position to the
# source. a minus means the shadow is mirrored. It seems complex, and it is.
# Complain to Enterbrain (why didn't they use something clockwise or counter-
# clockwise ? I suspect it's because of the rm2k legacy. More explanations
# below.
#==============================================================================
 
SHADOWS_DIRECTION_ARRAY = Array.new
SHADOWS_DIRECTION_ARRAY[2] = [ -3, 4, -2, 1 ]
SHADOWS_DIRECTION_ARRAY[4] = [ 4, -2, 1, -3 ]
SHADOWS_DIRECTION_ARRAY[6] = [ 1, -3, 4, -2 ]
SHADOWS_DIRECTION_ARRAY[8] = [ -2, 1, -3, 4 ]
#==============================================================================
# ** Game_Party, for compatibility with the caterpillar script.
#==============================================================================
 
class Game_Party
  attr_reader :characters
end
 
#==============================================================================
# ** Sprite_Shadow, the meat of this script
#==============================================================================
 
class Sprite_Shadow < RPG::Sprite
 
  attr_accessor :character
 
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil,source = nil,anglemin=0, \
                 anglemax=0,distancemax=700)
    super(viewport)
    @anglemin=anglemin.to_f
    @anglemax=anglemax.to_f
    @distancemax=distancemax.to_f
    @character = character
    @source = source
    self.color = Color.new(0, 0, 0)
    update
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if @character.transparent or @character.opacity <= SHADOWS_OPACITY_THRESHOLD
      self.visible = false
      return
    end
    @deltax=(@source.real_x-@character.real_x)/4
    @deltay= (@source.real_y-@character.real_y)/4
    @distance = (((@deltax ** 2) + (@deltay ** 2))** 0.5)
    if @distancemax !=0 and @distance>@distancemax
      self.visible = false
      return
    end
    self.angle = 57.3*Math.atan2(@deltax, @deltay )
    @angle_trigo= (self.angle+90) % 360
    if @anglemin !=0 or @anglemax !=0
      if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and \
          @anglemin<@anglemax
        self.visible = false
        return
      elsif (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and \
             @anglemin>@anglemax
        self.visible = false
        return
      end    
    end
    super
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
       @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
        @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
    self.visible = true
    self.x = @character.screen_x
    self.y = @character.screen_y-8
    self.z = @character.screen_z(@ch)-1
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
    if @tile_id == 0
      sx = @character.pattern * @cw
      quarter = ((@angle_trigo/90+0.5).floor)%4
      # The quarter is the position of the event relative to the source.
      # Imagine the source is the o point (0,0). Trace the 2 lines
      # y=x and y=-x : you get something like a big X
      # On the right, quarter=0. Up, quarter = 1, and so on
      # Take the @character.direction row (2,4,6,8), and the quarter
      # column (0,1,2,3) (remember, it starts at 0), and you'll get
      # a number between 1 and 4. It correspond to the row of the charset
      # the shadow will be, and mirrored if negative.
      # Yes, it isn't obvious, but I didn't find any simple operation to
      # get those.
      magic = SHADOWS_DIRECTION_ARRAY[@character.direction][quarter]
      magic = -magic
      if magic < 0
        self.mirror = true
        magic = -magic
      else
        self.mirror = false
      end
      sy = (magic-1)*@ch
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    # This is the formula of the opacity in function of the distance
    # ** 2 means square
    self.opacity = 600/((@distance ** 2)/ 400 + 6) #1200/((@distance ** 2)/ 1000 + 6)
    # This is the formula of the size in function of the distance
    # The 0.75 is here so you have a size of 1:1 when next to the source.
    self.zoom_y=0.75 + @distance / 256 if SHADOW_GETS_LONGER
  end
 
end
 
#======================================================================
# ** Sprite_Character EDIT
#======================================================================
#    All those things could go somewhere else, but they
#    work quite well here.
#======================================================================
 
class Sprite_Character < RPG::Sprite
 
  @@regexp_source = nil
  @@regexp_source_short = nil
  @@regexp_char = nil
  @@regexp_char_short = nil
 
  alias rataime_shadow_initialize initialize
 
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
 
    if @@regexp_source == nil
      regexp_initialize
    end
    @character = character
    super(viewport)
    @ombrelist=[]
    if (character.is_a?(Game_Event) and character.list!=nil)
      # Let's check the comments in our event list
      for j_list in 0..character.list.size-1
        #p [@@regexp_source_short, character.list[j_list].parameters[0]]
        if (character.list[j_list].code == 108 and \
            @@regexp_source_short.match(character.list[j_list].parameters[0])!= nil)
          # Haha ! We found a trigger tag ! Time to retrieve the parameters !
          parameter_string = character.list[j_list].parameters[0]
          j_list += 1
          while j_list < character.list.size and \
                (character.list[j_list].code == 108 or \
                 character.list[j_list].code == 408)
            parameter_string = parameter_string + "\n" + \
                               character.list[j_list].parameters[0]
            j_list += 1
          end
          # The following line is a nifty piece of code. Really.
          @anglemin,@anglemax,@distancemax = \
          (regexp_get_parameters(parameter_string, true)+[nil]*3)[0..2]
          # We have our source parameters. Let's find which events we should
          # make have a shadow
          for i in $game_map.events.keys.sort
            if ($game_map.events[i].is_a?(Game_Event) and \
                $game_map.events[i].list!=nil)
              for i_list in 0..$game_map.events[i].list.size-1  
                if (($game_map.events[i].list[i_list].code == 108 or \
                     $game_map.events[i].list[i_list].code == 408 )and \
                    @@regexp_char_short.match( \
                      $game_map.events[i].list[i_list].parameters[0])!= nil)
                  @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events[i],\
                                              self,@anglemin,@anglemax,@distancemax)
                  break # no need to add more than one shadow per source per event
                end
              end # end for                                
            end                                
          end # end for
          @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,\
                                             @anglemax,@distancemax)
          #===================================================
          # Compatibility with fukuyama's caterpillar script
          #===================================================
          if SHADOWS_CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
 
            for member in $game_party.characters
              @ombrelist.push(Sprite_Shadow.new(viewport, member,self,@anglemin,\
                                                @anglemax,@distancemax))
            end
 
          end
          #===================================================
          # End of the compatibility
          #===================================================
        end
        break # We don't need to go further in the source's list
      end # end for
    end
    rataime_shadow_initialize(viewport, @character)
  end
 
  alias rataime_shadow_update update
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    rataime_shadow_update
    if @ombrelist!=[]
      for i in 1..@ombrelist.size
        if @ombrelist[i]!=nil
          @ombrelist[i].update
        end
      end
    end
  end  
 
  #--------------------------------------------------------------------------
  # * Real_x : it just returns the character's real_x
  #--------------------------------------------------------------------------
  def real_x
    return @character.real_x
  end
 
  #--------------------------------------------------------------------------
  # * Real_y : it just returns the character's real_y
  #--------------------------------------------------------------------------
  def real_y
    return @character.real_y
  end
 
  #--------------------------------------------------------------------------
  # * regexp_initialize : the brand new configuration function
  #   This function generate the regexps based on the configuration
  #--------------------------------------------------------------------------
  def regexp_initialize
    @@regexp_source = regexp_generate(true)
    @@regexp_char = regexp_generate(false)
    @@regexp_source_short = @@regexp_source
    @@regexp_char_short = @@regexp_char
    if SHADOWS_SOURCE_COMMENT_PATTERN.is_a?(Array)
      @@regexp_source_short = regexp_generate_short(@@regexp_source)
    end
    if SHADOWS_CHAR_COMMENT_PATTERN.is_a?(Array)
      @@regexp_char_short = regexp_generate_short(@@regexp_char)
    end
  end
  #--------------------------------------------------------------------------
  # * regexp_generate generate a full length regexp including the arguments
  #   detection.
  #--------------------------------------------------------------------------
  def regexp_generate(source = false)
    if source
      pattern = SHADOWS_SOURCE_COMMENT_PATTERN
      trigger = SHADOWS_SOURCE_COMMENT_TRIGGER
      @@argument_indexes_source = []
      indexes = @@argument_indexes_source
    else
      pattern = SHADOWS_CHAR_COMMENT_PATTERN
      trigger = SHADOWS_CHAR_COMMENT_TRIGGER
      @@argument_indexes_char = []
      indexes = @@argument_indexes_char
    end
    if pattern.is_a?(Array)
      string = Regexp.escape(pattern.join("\n"))
    else
      string = Regexp.escape(pattern)
    end
    string = string.gsub('trigger',')('+trigger+')(')
    splitted = string.split('arg')
    regexp = '\A(' + splitted[0] + '(\d+)){0,1}'
    for i in 1..splitted.size-1
      if splitted[i][0..0].to_i == 0
        p 'Error : You probably forgot a digit after an arg'
        raise
      else
        indexes.push(splitted[i][0..0].to_i)
        regexp = regexp + '(' + splitted[i][1..splitted[i].size-1] + '(\d+)){0,1}'
      end
    end
    return Regexp.new(regexp.chomp('(\d+)){0,1}') + ')')
  end
  #--------------------------------------------------------------------------
  # * Will return a shorter regexp, but still able to identify the trigger
  #--------------------------------------------------------------------------
  def regexp_generate_short(regexp)
    string = regexp.inspect
    string = string.split('\n')[0]
    string = string[1..string.size-2]
    return Regexp.new(string)
  end
  #--------------------------------------------------------------------------
  # * regexp_get_parameters is called whenever a trigger has been identify,
  #   and the script wants to know the arguments. It returns an array in the
  #   right orger [arg1,arg2,arg3]
  #--------------------------------------------------------------------------
  def regexp_get_parameters(string, source = false)
    if source
      regexp = @@regexp_source
      indexes = @@argument_indexes_source.dup
    else
      regexp = @@regexp_char
      indexes = @@argument_indexes_char.dup
    end
    indexes = indexes.reverse!
    match_array = regexp.match(string).captures
    return_array = Array.new
    if match_array.size > 3
      for i in 2..match_array.size-1
        if ((i.to_f/2).ceil)*2 != i and match_array[i]!=nil
          return_array[indexes.pop-1] = match_array[i]
        end
      end
    end
    return return_array
  end
end
 
#==============================================================================
# â–  Sprite_Sun
# # Based on Sprite_Shadow, modified by Rataime
#==============================================================================
 
CATERPILLAR_COMPATIBLE = false
 
class Game_Party
  attr_reader :characters
end
 
class Sprite_Sun < RPG::Sprite
  attr_accessor :character          
 
  def initialize(viewport, character = nil, self_angle = 45,self_opacity = 128)
    super(viewport)
    @character = character
    @self_angle=self_angle
    @self_opacity=self_opacity
    update
  end
 
  def update
    super
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
 
    self.visible = (not @character.transparent)
 
    if @tile_id == 0
     sx = @character.pattern * @cw
     @direct=@character.direction
 
      if self.angle>90 or angle<-90
 
        if @direct== 6
               sy = ( 4- 2) / 2 * @ch
      end
      if @direct== 4
               sy = ( 6- 2) / 2 * @ch
        end
        if @direct != 4 and @direct !=6
        sy = (@character.direction - 2) / 2 * @ch
          end
        else
     sy = (@character.direction - 2) / 2 * @ch
     end
       self.src_rect.set(sx, sy, @cw, @ch)
    end
    self.x = @character.screen_x
    self.y = @character.screen_y-5
    self.z = @character.screen_z(@ch)-1
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
    self.angle = @self_angle-90
    self.color = Color.new(0, 0, 0)
    $game_map.sun==-1 ? self.opacity = 0: self.opacity = @self_opacity
  end
end
 
#===================================================
# â–¼ CLASS Sprite_Character edit
#===================================================
 
class Sprite_Character < RPG::Sprite
  alias sun_initialize initialize
 
  def initialize(viewport, character = nil)
    @character = character
    super(viewport)
    @sunlist=[]
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["sun"])
      if (character.list[1]!=nil and character.list[1].code == 108)
        @self_angle=character.list[1].parameters[0]
      else
        @self_angle=45
      end
      if (character.list[2]!=nil and character.list[2].code == 108)
        @self_opacity=character.list[2].parameters[0]
      else
        @self_opacity=128
      end
     for i in $game_map.events.keys.sort
      if ($game_map.events[i].is_a?(Game_Event) and $game_map.events[i].list!=nil and $game_map.events[i].list[0].code == 108 and $game_map.events[i].list[0].parameters == ["o"])
        @sunlist[i+1] = Sprite_Sun.new(viewport, $game_map.events[i],@self_angle,@self_opacity)
      end
     end
     @sunlist[1] = Sprite_Sun.new(viewport, $game_player,@self_angle,@self_opacity)
 
 
#===================================================
# ● Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
 
  for member in $game_party.characters
    @sunlist.push(Sprite_Sun.new(viewport, member,@self_angle,@self_opacity))
  end
 
end
#===================================================
# ● End of the compatibility
#===================================================
    end
    sun_initialize(viewport, @character)
  end
 
  alias sun_update update
 
  def update
    sun_update
    if @sunlist!=[]
      for i in 1..@sunlist.size
        if @sunlist[i]!=nil
          @sunlist[i].update
        end
      end
    end
  end
end
 
#===================================================
# â–¼ CLASS Game_Map edit
#===================================================
class Game_Map
  attr_accessor :sun
end

zum Lesen den Text mit der Maus markieren


Mein "Problem" ist nun: Ich habe festgestellt, dass auf Maps, auf denen ich das Script verwende, meine Battle Animationen durchsichtig sind.
Zumindest solange ich mich im Radius des Schattens befinde O.o

Bild
Kaum sichtbar

Bild
Sichtbar

Kann man das irgendwie beheben?
Wäre echt toll ._.

Danke schonmal

LG
Foxy
  • Meins

  • Support

    Bild
    Bild
    Bild
    Bild
    Bild
  • Jokes

    Spoiler: C vs. C++

    In C, you merely shoot yourself in the foot.

    In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible, because you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
    zum Lesen den Text mit der Maus markieren

Lucy Fox

Zee Captain

  • »Lucy Fox« ist der Autor dieses Themas

Motto: Dreams shed light on the dim places where reason itself has yet to voyage.

  • Nachricht senden

2

Sonntag, 10. März 2013, 18:43

*push*
Bin mal so frei ^^
  • Meins

  • Support

    Bild
    Bild
    Bild
    Bild
    Bild
  • Jokes

    Spoiler: C vs. C++

    In C, you merely shoot yourself in the foot.

    In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible, because you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
    zum Lesen den Text mit der Maus markieren

-Cloud-

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

3

Montag, 11. März 2013, 13:18

Am besten du machst mal ein Test Projekt wo schon alles so eingestellt ist und lädst es hier hoch.
Ich hab keine Lust zu gucken wie das Script funktioniert um dann nach den Fehler zu suchen.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

Lucy Fox

Zee Captain

  • »Lucy Fox« ist der Autor dieses Themas

Motto: Dreams shed light on the dim places where reason itself has yet to voyage.

  • Nachricht senden

4

Montag, 11. März 2013, 15:29

So, ich hab mal eben die Testmap aus meinem Projekt kopiert.
Hab auch nach und nach alle anderen Scripte rausgelöscht, aber das Problem besteht weiterhin -.-
Scheint aber generell ein Problem von Schattenscripten zu sein.
Suirat hatte das Problem ja auch.

^_^
»Lucy Fox« hat folgende Datei angehängt:
  • Meins

  • Support

    Bild
    Bild
    Bild
    Bild
    Bild
  • Jokes

    Spoiler: C vs. C++

    In C, you merely shoot yourself in the foot.

    In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible, because you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
    zum Lesen den Text mit der Maus markieren

-Cloud-

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

5

Montag, 11. März 2013, 16:32

Ich weiss warum es passiert, weiss aber nicht wie ich es lösen könnte.
Aber ich weiss einen Weg wie man es trotzdem halbwegs hinbekommt das die Animation korrekt angezeigt wird:

Erstmal ändere im Script Zeile 72 zu

Ruby Quellcode

1
SHADOWS_OPACITY_THRESHOLD = 254


Beim Event von den Typen machst du das:
Bild

Mehr kann ich nicht bieten, vielleicht kann dir wer anders noch helfen.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

Lucy Fox

Zee Captain

  • »Lucy Fox« ist der Autor dieses Themas

Motto: Dreams shed light on the dim places where reason itself has yet to voyage.

  • Nachricht senden

6

Montag, 11. März 2013, 16:45

Danke, das klappt soweit.... :thumbsup:
Zur Not reicht das so auch, falls niemand eine besser Lösung finden sollte.
Ich fand es nur etwas nervig, keine Battle Animationen abspielen zu können, wenn im Raum irgendwas Schatten wirft. XD
  • Meins

  • Support

    Bild
    Bild
    Bild
    Bild
    Bild
  • Jokes

    Spoiler: C vs. C++

    In C, you merely shoot yourself in the foot.

    In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible, because you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
    zum Lesen den Text mit der Maus markieren

Social Bookmarks