Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
[Erledigt] Dynamic Shadows überschreibt Battle Animation Opacity
Hallo! :D
Ich schon wieder XD
Ich habe es geschafft, dass das Dynamic Shadows Script von Retaime in meinem Projekt läuft.
Nachdem Suirat und auch Lucy Fox das Problem beide schon angesprochen hatten, habe auch ich mich mit dem Thema beschäftigt. Leider gibt es im Internet keinen Fix dafür. In Lucys Threadt wird zwar eine Event-Lösung aufgezeigt, die auch wunderbar funktioniert, aber sie hat 2 Probleme.
1. Der Schatten flackert kurz, wenn eine Animation auf dem Chara abgespielt wird
2. Ich müsste das bei den Common-Events immer einbauen, da man nie weiß, wann die verwendet werden (bei mir zB das Wort "Heal", wenn der Player einen Heal ausführt- ich finds doof, wenn der dann jedes mal flackert)
Ich habe die leise Vermutung, dass die Schatten quasi auf derselben Methode (?) abgespielt werden, wie die Battle Animations. :P
Ich weiß also gar nicht, ob es überhaupt möglich ist, das voneinander abzukoppeln.
Was denkt ihr? Kann man das Script soweit fixen, dass es unterscheiden kann, welche Battle-Animation es auf niedriger Opacity abspielen soll (nämlich den Schatten) und welche nicht (nämlich alle anderen XD)?
Vielleicht kann man den Schatten als leere Animation in der Database ablegen und dort die Opacity runterschrauben, so dass das Script das nicht mehr automatisch tut? Dann statt "animation_id = 0" die ID des Schattens einsetzen, der dann eben mit einem Bitmap gezeichnet wird (wird doch durch einen bitmap gezeichnet, oder?)
Dann wird der Schatten zwar nicht mehr dunkler, wenn man näher an die Quelle geht (oder man erstellt eben mehrere Animations in der Database...?), aber damit kann ich viel eher leben, dass das da was an meinem Chara ständig rumflakert.
Einfach die ID ändern und in der Database angelegen geht jedenfalls nicht ;D (habs probiert XD) Dazu bedarf es vermutlich schon einem Edit im Sript selbst.
Wenn jemand das hinkriegt oder mir hilft, es selbst zu schaffen, fände ich das richtig knorke :D
Weiter, als oben erklärt, bin ich nämlich leider mit meinen Scriptkenntnissen nicht gekommen- aber es war schonmal ein Anfang. XD
Josey~
Ich schon wieder XD
Ich habe es geschafft, dass das Dynamic Shadows Script von Retaime in meinem Projekt läuft.
Nachdem Suirat und auch Lucy Fox das Problem beide schon angesprochen hatten, habe auch ich mich mit dem Thema beschäftigt. Leider gibt es im Internet keinen Fix dafür. In Lucys Threadt wird zwar eine Event-Lösung aufgezeigt, die auch wunderbar funktioniert, aber sie hat 2 Probleme.
1. Der Schatten flackert kurz, wenn eine Animation auf dem Chara abgespielt wird
2. Ich müsste das bei den Common-Events immer einbauen, da man nie weiß, wann die verwendet werden (bei mir zB das Wort "Heal", wenn der Player einen Heal ausführt- ich finds doof, wenn der dann jedes mal flackert)
Ich habe die leise Vermutung, dass die Schatten quasi auf derselben Methode (?) abgespielt werden, wie die Battle Animations. :P
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 |
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 |
Ich weiß also gar nicht, ob es überhaupt möglich ist, das voneinander abzukoppeln.
Was denkt ihr? Kann man das Script soweit fixen, dass es unterscheiden kann, welche Battle-Animation es auf niedriger Opacity abspielen soll (nämlich den Schatten) und welche nicht (nämlich alle anderen XD)?
Vielleicht kann man den Schatten als leere Animation in der Database ablegen und dort die Opacity runterschrauben, so dass das Script das nicht mehr automatisch tut? Dann statt "animation_id = 0" die ID des Schattens einsetzen, der dann eben mit einem Bitmap gezeichnet wird (wird doch durch einen bitmap gezeichnet, oder?)
Dann wird der Schatten zwar nicht mehr dunkler, wenn man näher an die Quelle geht (oder man erstellt eben mehrere Animations in der Database...?), aber damit kann ich viel eher leben, dass das da was an meinem Chara ständig rumflakert.
Einfach die ID ändern und in der Database angelegen geht jedenfalls nicht ;D (habs probiert XD) Dazu bedarf es vermutlich schon einem Edit im Sript selbst.
|
|
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 |
#============================================================================== # ** 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 #============================================================================== #============================================================================== # 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 = true #============================================================================== # 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 = 254 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 ] #------------------------------------------------------------------------------ # * SDK Log Script and Check requirements #------------------------------------------------------------------------------ #SDK.log('Shadows', 'rataime', 1.00, '05.06.2007') #SDK.check_requirements(2, [1,2]) #============================================================================== # ** 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 = 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 |
zum Lesen den Text mit der Maus markieren
Wenn jemand das hinkriegt oder mir hilft, es selbst zu schaffen, fände ich das richtig knorke :D
Weiter, als oben erklärt, bin ich nämlich leider mit meinen Scriptkenntnissen nicht gekommen- aber es war schonmal ein Anfang. XD
Josey~
Notfalldiscord: Hier klicken
-
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:


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
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(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!
:*
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 (
) in meiner Signatur! XD

-
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

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
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
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
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
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (4. Juni 2015, 19:14)
Nicht schlecht. Du hast genau richtig erkannt, wo das Problem liegt.
Diese Zeilen 181-185 im Skript gehören da überhaupt nicht hin. Vermutlich hat der Skripter hier einfach Sprite_Charakter kopiert und vergessen diese zu entferen. Was hier passiert ist nämlich, dass der Sprite der den Schatten darstellt sich vordrängelt und die Animation des Events/Helden abspielt, wodurch diese zum einen an die Deckkraft des Schatten gebunden ist, als auch Flash-Effekte auf den Schatten und nicht den Char angewendet werden.
Wenn Du wie oben die Zeilen auskommentierst sollte das Problem behoben sein. Der Eventworkaround ist dann nichtmehr notwendig.
Sollte auch Lucy drüber nachdenken das anzupassen, wenn sie das selbe Skript benutzt.
|
|
Ruby Quellcode |
178 179 180 181 182 183 184 185 |
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 |
Diese Zeilen 181-185 im Skript gehören da überhaupt nicht hin. Vermutlich hat der Skripter hier einfach Sprite_Charakter kopiert und vergessen diese zu entferen. Was hier passiert ist nämlich, dass der Sprite der den Schatten darstellt sich vordrängelt und die Animation des Events/Helden abspielt, wodurch diese zum einen an die Deckkraft des Schatten gebunden ist, als auch Flash-Effekte auf den Schatten und nicht den Char angewendet werden.
Wenn Du wie oben die Zeilen auskommentierst sollte das Problem behoben sein. Der Eventworkaround ist dann nichtmehr notwendig.
Sollte auch Lucy drüber nachdenken das anzupassen, wenn sie das selbe Skript benutzt.

Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Zitat
Nicht schlecht. Du hast genau richtig erkannt, wo das Problem liegt.
:D :3 *__* *rumfreu* XD
Zitat
Diese Zeilen 181-185 im Skript gehören da überhaupt nicht hin. Vermutlich hat der Skripter hier einfach Sprite_Charakter kopiert und vergessen diese zu entferen. Was hier passiert ist nämlich, dass der Sprite der den Schatten darstellt sich vordrängelt und die Animation des Events/Helden abspielt, wodurch diese zum einen an die Deckkraft des Schatten gebunden ist, als auch Flash-Effekte auf den Schatten und nicht den Char angewendet werden.
Wenn Du wie oben die Zeilen auskommentierst sollte das Problem behoben sein. Der Eventworkaround ist dann nichtmehr notwendig.
OMG XD
Du bist ein Genie XD
Einfach Zeilen auszukommentieren, auf die Idee kam ich zwar auch, aber ich hatte die falschen:
|
|
Ruby Quellcode |
130 131 132 133 134 |
def update if @character.transparent or @character.opacity <= SHADOWS_OPACITY_THRESHOLD self.visible = false return end |
Das hat natürlich nicht geklappt :P
Zitat
Sollte auch Lucy drüber nachdenken das anzupassen, wenn sie das selbe Skript benutzt.
Ich wollt sie deswegen sowieso anschreiben, sobald ich ne Lösung hab ;D
Zitat
PS: Off Topic: Der Schatten aus diesem Skript ist keine Animation, sondern ein eigener Sprite, um das noch erwähnt zu haben. Das ist für das Problem nicht wichtig, ich erwähne es nur, weil Du angenommen hattest der Schatten wird als Animation abgespielt.
Jetzt müsste ich noch wissen, was in der Maker-Sprache ein Sprite ist, um zu verstehen, wies funktioniert. XD Kein Bitmap also, keine Animation.
Ja, ich ging davon aus, eben weil die Animation mit durchsichtig wird, andererseits kann ein Event eigentlich nur eine Ani abspielen und wenn der Schatten eine wäre, ginge ja gar nichts.
Danke Playm, du verdienst auf jedenfall einen Ehrenplatz :D
Erledigt!
Notfalldiscord: Hier klicken
-
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:


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
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(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!
:*
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 (
) in meiner Signatur! XD

-
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

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
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
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
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
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Jetzt müsste ich noch wissen, was in der Maker-Sprache ein Sprite ist, um zu verstehen, wies funktioniert. XD Kein Bitmap also, keine Animation.
Während eine Bitmap definiert was man sieht, also zum Beispiel "ein Charset von Aluxes" oder "das Titelbild", bestimmt ein Sprite wo und wie es angezeigt wird. Der einfachste Sprite hat nur drei Attribute: @bitmap, @x und @y und kümmert sich dann darum, dass das gewählte Bitmap an der Position X|Y auf dem Bildschirm angezeigt wird.
Es reicht sich zu merken, dass der Computer intern eine Bitmap vorbereitet (entweder indem er zum Beispiel eine PNG-Datei öffnet und ausliest, oder selber eine leere Bitmap füllt) und dann ein Sprite zum Einsatz kommt, der bestimmt wo (x|y) diese Bitmap auf dem Bildschirm angezeigt werden soll, also dafür sorgt, dass die Bitmap im Computer auf den Computerbildschirm kommt.
Wie immer gern geschehen.Danke Playm, du verdienst auf jedenfall einen Ehrenplatz
Erledigt!
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Gratisminnilehrstunde bei Playm: Unbezahlbar XD
Danke ;D
Danke ;D
Notfalldiscord: Hier klicken
-
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:


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
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(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!
:*
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 (
) in meiner Signatur! XD

-
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

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
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
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
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
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Benutzerinformationen überspringen
Motto: Dreams shed light on the dim places where reason itself has yet to voyage.
Danke Playm. Das ist super, dass es dafür endlich einen Fix gibt *-*
-
Meins-
Aktuell -
The rest
-
Tutorials/Ressourcen -
Fähigkeiten
RPG Maker XP
Storywriting:
Pixeln:
Photoshop:
Mapping:
Eventing:
Musik:
Scripting (rgss1):

-
-
Support -
Jokes
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
Benutzerinformationen überspringen
Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.
Plätze im Playm Fanclub sind noch offen. Einfach ins profil schreiben xD
Ich habe kein Talent.
Meister Tentakel besitzt das ganze Talent.
Meister Tentakel besitzt das ganze Talent.
Ähnliche Themen
-
Skript-Anfragen »-
[Erledigt] Schadenszahlenscript von Playm - Bitte um Edit
(12. Januar 2015, 13:48)
-
Skript-Anfragen »-
[Erledigt] Sound-Script-Bug
(26. März 2015, 21:45)
-
Skript-Anfragen »-
Charakter Schatten - Vriable Frames
(2. September 2012, 11:21)
-
Skript-Anfragen »-
Battle Animation Priorität ändern?
(21. September 2009, 22:59)
-
Events & Technik »-
NPC- und Heldschatten
(22. März 2009, 17:26)
















