Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
[Erledigt] Wachungas Footprints - Add On
Hallo! :)
Ich benutze inzwischen erfolgreich das Footprints-Script von Wachunga.
Hier ist meine Version:
(Ich glaube daran wurde nichts verändert, aber zur Sicherheit habe ich meine Version aus meinen Scripts eingefügt, falls da doch was war)
Jetzt wollte ich fragen (eventuell ist das sogar schon eingebaut...?), ob es möglich ist, dass verschiedene Events verschiedene Footprints machen? Es ist jedenfalls möglich, die Footprints auszustellen ("To prevent an event from having any footprints (e.g. birds), include <nofp> somewhere in its name").
Inzwischen laufen meine Charas durch die Wüste und ihnen kommen in Zukunft Monster entgegen. Jetzt fände ich es merkwürdig, wenn diese Monster keine oder menschliche Fußtappsen haben.
Sollte es noch nicht eingebaut sein, könnte ich mir vorstellen, dass Events standartmäßig auf die normale Grafik zugreifen und Events mit einem bestimmten Trigger, nutzen dann eine andere Grafik. Der Trigger könnte ein Command sein oder ein Wort im Eventnamen (wie oben beim ausstellen der Footprints <nofp>).
Wäre das schwer einzubauen? Jedenfalls würde es meinem Spiel nochmal ein ganzes Stück mehr Athmo verleien ;)
Ich würde mich über Hilfe freuen!
Josey~
Ich benutze inzwischen erfolgreich das Footprints-Script von Wachunga.
Hier ist meine Version:
|
|
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 |
=begin ============ Dynamic Footprints - version 1.0 (2005-11-07) ============ by Wachunga 0.95 - original release 1.0 - fixed a small bug with directional footprints and updated the compatibility list SETUP: 1) From the database (Tileset tab), give the appropriate tiles of any tilesets that you want to show footprints (e.g. sand in "Desert", snow in "Snow Field") the terrain tag 1. 2) Place the footprints file in the Graphics/Tilesets folder. To prevent an event from having any footprints (e.g. birds), include <nofp> somewhere in its name. (If using non-RTP sprites, you may want to create customized footprints.) FEATURES: * customizable duration footprint fading (optional) * direction-specific footprints (optional) * rounded footprints paths * overlapping footprints supported * handles move events (jumping, speed changes, etc) and teleportation COMPATIBILITY: 1) Cogwheel's Pixel Movement script - unfortunately, pixel movement by its very nature isn't very compatible with footprints (short of using sprites or pictures instead of a tileset) because a character can move part way across a tile without footprints appearing. 2) Near Fantastica's Squad Based Movement/Action Battle System script - make sure it is below this script 3) Near Fantastica's Updated Day Night script - again, make sure it is below this script 4) Baskinein's Animated Sprite script - see: http://www.rmxp.net/forums/index.php?s=&showtopic=27407&view=findpost&p=261921 5) Fukuyama's Caterpillar script - to only have one set of footprints for the whole group, no modifications are necessary (just make sure his script is above this one). To have a separate (overlapping) set of footprints for each character, uncomment (by moving the "= end") the following lines: module Train_Actor class Game_Party_Actor < Game_Character def move_down(turn_enabled = true) if turn_enabled turn_down end if passable?(@x, @y, Input::DOWN) turn_down @y += 1 increase_steps end end def move_left(turn_enabled = true) if turn_enabled turn_left end if passable?(@x, @y, Input::LEFT) turn_left @x -= 1 increase_steps end end def move_right(turn_enabled = true) if turn_enabled turn_right end if passable?(@x, @y, Input::RIGHT) turn_right @x += 1 increase_steps end end def move_up(turn_enabled = true) if turn_enabled turn_up end if passable?(@x, @y, Input::UP) turn_up @y -= 1 increase_steps end end end end =end #---------------------------------------------------------------------- # Footprints for six situations (down->up, left->right, down->left, # left->up, up->right and right->down) are required (twelve for # directional footprints). See the provided footprints template # (footprints_template.png) for specific details, noting # that the right half of the template can be empty if using the default # of non-directional footprints (i.e. leaving FP_DIRECTIONAL = false). FP_FILE = "footprints_default" #---------------------------------------------------------------------- # FP_DIRECTIONAL specifies whether there are direction-specific # footprints (e.g. footprints from player moving up are different # from those left when player is moving down) FP_DIRECTIONAL = false #---------------------------------------------------------------------- # Terrain tag(s) as set in the database FP_TAG = 7 #---------------------------------------------------------------------- # How much time elapses before footprints begin to fade FP_BEFORE_FADE_TIME = 100 # After beginning to fade, how long the fading process actually takes FP_FADE_TIME = 100 # Note: it's possible to maintain footprints indefinitely (with # FP_FADE_TIME = 0), but if the player opens a menu or changes maps, # the footprints won't be saved. To allow them to persist even then, # use Near's Dynamic Maps script (slight modifications would be needed). #---------------------------------------------------------------------- # tilemap indexes (do not modify) # regular: FP_DU = 384 FP_LR = 385 FP_DL = 386 FP_LU = 387 FP_UR = 388 FP_RD = 389 # directional: FP_UD = 512 FP_RL = 513 FP_DR = 514 FP_RU = 515 FP_UL = 516 FP_LD = 517 #---------------------------------------------------------------------- class Spriteset_Map attr_accessor :footprints attr_accessor :fp_tilemap def initialize @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities @panorama = Plane.new(@viewport1) @panorama.z = -1000 @fog = Plane.new(@viewport1) @fog.z = 3000 @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) @weather = RPG::Weather.new(@viewport1) @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i])) end @timer_sprite = Sprite_Timer.new # Dynamic Footprints additions begin @footprints = [] fp_tileset = FP_DIRECTIONAL ? Bitmap.new(256,1024) : Bitmap.new(256,512) # make a column for each footprint image # right -> down fp_tileset.blt(160, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 0, 32, 32)) # up -> right fp_tileset.blt(128, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 32, 32, 32)) # left -> right fp_tileset.blt(32, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 64, 32, 32)) # down -> left fp_tileset.blt(64, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 0, 32, 32)) # left -> up fp_tileset.blt(96, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 32, 32, 32)) # down -> up fp_tileset.blt(0, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 64, 32, 32)) # fill out each column, making copies of the image with decreasing opacity 0.step(5*32, 32) do |x| opacity = 255 0.step(15*32, 32) do |y| fp_tileset.blt(x, y, fp_tileset, Rect.new(x, 0, 32, 32), opacity) opacity -= 16 end end if FP_DIRECTIONAL # down -> right fp_tileset.blt(160, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 0, 32, 32)) # right -> up fp_tileset.blt(128, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 32, 32, 32)) # right -> left fp_tileset.blt(32, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 64, 32, 32)) # left -> down fp_tileset.blt(64, 512, RPG::Cache.tileset(FP_FILE), Rect.new(96, 0, 32, 32)) # up -> left fp_tileset.blt(96, 512, RPG::Cache.tileset(FP_FILE), Rect.new(96, 32, 32, 32)) # up -> down fp_tileset.blt(0, 512, RPG::Cache.tileset(FP_FILE), Rect.new(96, 64, 32, 32)) 0.step(5*32, 32) do |x| opacity = 255 512.step(32*32, 32) do |y| fp_tileset.blt(x, y, fp_tileset, Rect.new(x, 512, 32, 32), opacity) opacity -= 16 end end end @fp_tilemap = Tilemap.new(@viewport1) @fp_tilemap.tileset = fp_tileset @fp_tilemap.map_data = Table.new($game_map.width, $game_map.height, 3) @fp_tilemap.priorities = Table.new(8*32) # end Dynamic Footprints additions update end alias fp_dispose dispose def dispose @fp_tilemap.dispose fp_dispose end alias fp_update update def update @fp_tilemap.ox = $game_map.display_x / 4 @fp_tilemap.oy = $game_map.display_y / 4 @fp_tilemap.update unless FP_FADE_TIME == 0 for fp in @footprints if fp.time > 1 fp.time -= 1 if fp.fade and (FP_FADE_TIME - fp.time) % (FP_FADE_TIME/16.0) < 1 @fp_tilemap.map_data[fp.x,fp.y,fp.z] += 8 end else if not fp.fade # begin fading fp.time = FP_FADE_TIME fp.fade = true else @fp_tilemap.map_data[fp.x,fp.y,fp.z] = 0 @footprints.delete(fp) end end end end fp_update end def show_footprints(fp_index,fp_x,fp_y) # start with first layer, then stack footprints as necessary fp_z = 0 if @fp_tilemap.map_data[fp_x,fp_y,fp_z] == 0 @fp_tilemap.map_data[fp_x,fp_y,fp_z] = fp_index else fp_z = 1 if @fp_tilemap.map_data[fp_x,fp_y,fp_z] == 0 @fp_tilemap.map_data[fp_x,fp_y,fp_z] = fp_index else fp_z = 2 if @fp_tilemap.map_data[fp_x,fp_y,fp_z] != 0 # delete the existing footprint at these coords from the list # (to prevent having multiples) for i in @footprints.reverse if i.x == fp_x and i.y == fp_y and i.z == fp_z @footprints.delete(i) break end end end @fp_tilemap.map_data[fp_x,fp_y,fp_z] = fp_index end end @footprints.push(Footprint.new(fp_x,fp_y,fp_z)) end end #------------------------------------------------------------------------------- class Game_Event < Game_Character alias fp_ge_init initialize def initialize(map_id, event) fp_ge_init(map_id, event) if @event.name.upcase.include?('<NOFP>') @fp_id = nil end end end #------------------------------------------------------------------------------- class Game_Character alias fp_gc_init initialize def initialize fp_gc_init # 1st argument = second last x/y # 2nd argument = last x/y @last_x = [0,0] @last_y = [0,0] @fp_id = 0 # default footprints end def footprints # determine which prints to draw and where if terrain_tag(@last_x[1],@last_y[1]) != FP_TAG return end fp_index = nil # left if @x > @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_UR elsif @last_y[1] < @last_y[0] fp_index = FP_DIRECTIONAL ? FP_DR : FP_RD else fp_index = FP_LR end else # right if @x < @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_DIRECTIONAL ? FP_UL : FP_LU elsif @last_y[1] < @last_y[0] fp_index = FP_DL else fp_index = FP_DIRECTIONAL ? FP_RL : FP_LR end else # up if @y < @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_LU elsif @last_x[1] < @last_x[0] fp_index = FP_DIRECTIONAL ? FP_RU : FP_UR else fp_index = FP_DU end # down elsif @y > @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_DIRECTIONAL ? FP_LD : FP_DL elsif @last_x[1] < @last_x[0] fp_index = FP_RD else fp_index = FP_DIRECTIONAL ? FP_UD : FP_DU end end end end if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] $scene.spriteset.show_footprints(fp_index,fp_x,fp_y) end end def moveto(x, y) @x = x @y = y @real_x = x * 128 @real_y = y * 128 if @fp_id != nil # track the last positions @last_x = [@x,@x] @last_y = [@y,@y] end end def increase_steps @stop_count = 0 # show footprints if enabled for this character if @fp_id != nil and $scene.is_a?(Scene_Map) footprints # track the last positions @last_x.shift @last_x.push(@x) @last_y.shift @last_y.push(@y) end end def terrain_tag(x=@x,y=@y) return $game_map.terrain_tag(x, y) end def update_jump @jump_count -= 1 @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1) @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1) if @fp_id != nil and @jump_count == 0 # track the last positions @last_x = [@x,@x] @last_y = [@y,@y] end end end #------------------------------------------------------------------------------- class Scene_Map attr_reader :spriteset # only change is a couple of (commented) sections to prevent teleporting # within same map from losing footprints when the spriteset is recreated def transfer_player $game_temp.player_transferring = false if $game_map.map_id != $game_temp.player_new_map_id $game_map.setup($game_temp.player_new_map_id) else # Dynamic Footprints fp = @spriteset.footprints md = @spriteset.fp_tilemap.map_data end $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) case $game_temp.player_new_direction when 2 $game_player.turn_down when 4 $game_player.turn_left when 6 $game_player.turn_right when 8 $game_player.turn_up end $game_player.straighten $game_map.update @spriteset.dispose @spriteset = Spriteset_Map.new if fp != nil or md != nil # Dynamic Footprints @spriteset.footprints = fp @spriteset.fp_tilemap.map_data = md end if $game_temp.transition_processing $game_temp.transition_processing = false Graphics.transition(20) end $game_map.autoplay Graphics.frame_reset Input.update end end #------------------------------------------------------------------------------- class Footprint attr_reader :x attr_reader :y attr_reader :z attr_accessor :time attr_accessor :fade def initialize(x,y,z) @x = x @y = y @z = z @time = FP_BEFORE_FADE_TIME @fade = false end end |
zum Lesen den Text mit der Maus markieren
(Ich glaube daran wurde nichts verändert, aber zur Sicherheit habe ich meine Version aus meinen Scripts eingefügt, falls da doch was war)
Jetzt wollte ich fragen (eventuell ist das sogar schon eingebaut...?), ob es möglich ist, dass verschiedene Events verschiedene Footprints machen? Es ist jedenfalls möglich, die Footprints auszustellen ("To prevent an event from having any footprints (e.g. birds), include <nofp> somewhere in its name").
Inzwischen laufen meine Charas durch die Wüste und ihnen kommen in Zukunft Monster entgegen. Jetzt fände ich es merkwürdig, wenn diese Monster keine oder menschliche Fußtappsen haben.
Sollte es noch nicht eingebaut sein, könnte ich mir vorstellen, dass Events standartmäßig auf die normale Grafik zugreifen und Events mit einem bestimmten Trigger, nutzen dann eine andere Grafik. Der Trigger könnte ein Command sein oder ein Wort im Eventnamen (wie oben beim ausstellen der Footprints <nofp>).
Wäre das schwer einzubauen? Jedenfalls würde es meinem Spiel nochmal ein ganzes Stück mehr Athmo verleien ;)
Ich würde mich über Hilfe freuen!
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« (6. April 2015, 15:57)
Jetzt wollte ich fragen (eventuell ist das sogar schon eingebaut...?), ob es möglich ist, dass verschiedene Events verschiedene Footprints machen?
Es scheint bereits Ansätze dafür zu geben, die aber nicht weiter verfolgt wurden.
Es gibt die @fp_id, die für normale Fußstapfen auf Null gesetzt wird, aber es gibt keine Behandlungen für andere IDs wie Eins, Zwei oder Drei.
In der Methode Game_Character#footprints wird der Index bestimmt.
Hier könnte man basierend auf der fp_id weitere Footprints ermöglichen.
Originaler Code:
|
|
Ruby Quellcode |
369 370 371 372 373 |
if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] $scene.spriteset.show_footprints(fp_index,fp_x,fp_y) end |
Einführung einer Verschiebung, je nachdem welche fp_id der Char hat:
|
|
Ruby Quellcode |
369 370 371 372 373 374 375 |
if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] offset = 1024 # magic number, siehe Spriteset_Map#initialize fp_index_by_kind = fp_index + offset * @fp_id $scene.spriteset.show_footprints(fp_index_by_kind,fp_x,fp_y) end |
Dazu käme dann noch, das an entsprechender Stelle im Footprint-Set auch Fußabdrücke hinterlegt werden (->Spriteset_Map#initialize erweitern) und irgendwie festlegen zu können, wer jetzt welche fp_id hat.
Fände ein Kommentar auf der Seite besser, da durch Switches sich ja vielleicht die Eventseite ändert, und aus einem Boden-Event ein Luft-Event werden kann, oder ein Mensch verwandelt sich in einen Werwolf und hinterlässt plötzlich andere Tapser als vorher.
Zitat von »Josey«
Der Trigger könnte ein Command sein oder ein Wort im Eventnamen
Ne, man müsste halt überlegen nach welchem Schema man die Grafiken ablegt: Sollen es verschiedene Grafiken sein, oder ist es ein Bild wo die verschiedenen Abdrücke untereinander aufgereiht werden? Und wie die Markierung des Events aussehen soll. Das sind Anwenderfragen - umsetzbar ist alles, die Frage ist nur: Was ist am angenehmsten zu benutzen?
Zitat von »Josey«
Wäre das schwer einzubauen?
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
Einführung einer Verschiebung, je nachdem welche fp_id der Char hat:
Aber das funktioniert so wie dus jetzt geschrieben hast noch nicht, richtig?
Zitat
Fände ein Kommentar auf der Seite besser, da durch Switches sich ja vielleicht die Eventseite ändert, und aus einem Boden-Event ein Luft-Event werden kann, oder ein Mensch verwandelt sich in einen Werwolf und hinterlässt plötzlich andere Tapser als vorher.
Das ist ein sehr trifftiger Einwand. Wie aber kann man das für den Player festlegen? Was wenn der seine Fußabdrücke aus irgendeinem Grund ändern? Zum Beispiel wenn er auf etwas draufsteigt (Pferd, Vogel)? Könnte man dann per Scriptbefehl auch die Footprints für den Player ändern?
Zitat
Ne, man müsste halt überlegen nach welchem Schema man die Grafiken ablegt: Sollen es verschiedene Grafiken sein, oder ist es ein Bild wo die verschiedenen Abdrücke untereinander aufgereiht werden? Und wie die Markierung des Events aussehen soll. Das sind Anwenderfragen - umsetzbar ist alles, die Frage ist nur: Was ist am angenehmsten zu benutzen?
Ich fände mehrere kleine BIlder jetzt übersichtlicher- allerdings sind die dann zusammengenommen auch größer, als ein großes Bild, oder? (müsste ich mal nachprüfen)
Ein Comment ist wirklich die beste Lösung, insoweit es sich dann nicht mit den anderen Comment-Befehlen beißt.
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.
Aber das funktioniert so wie dus jetzt geschrieben hast noch nicht, richtig?
Stimmt genau, das ist nur ein theoretischer Ansatz gewesen.
Das mit einem Eventbefehl zu machen ist garkein Problem.Wie aber kann man das für den Player festlegen? Was wenn der seine Fußabdrücke aus irgendeinem Grund ändern?
Ich fände mehrere kleine BIlder jetzt übersichtlicher- allerdings sind die dann zusammengenommen auch größer, als ein großes Bild, oder? (müsste ich mal nachprüfen)

Ich habe schonmal angefangen.
Hier wäre die Erweiterung (noch unfertig) als neues Skript über Main einzufügen.
Aktuell liest er die Option noch nicht aus dem Event Kommentar aus, Du musst dies also mit einem Skriptbefehl ändern:
Als neues Skript unterhalb des Dynamic Footprints Skript und über Main einfügen.
|
|
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 |
=begin ============ Dynamic Footprints Erweiterung ============ - version 1.0 (2005-11-07) by Wachunga - Erweiterung (2015-03-26) by Playm (unfinished) =end #============================================================================== # ** Konfiguration #============================================================================== # Es werden Fußabdrücke für sechs Situationen (unten->oben, links->rechts, # rechts->links, links->oben, oben->rechts und rechts->runter) benötigt # (zwölf, wenn die Richtung wichtig ist). Siehe das beigelegte # footprint template für spezifische Details. Die Rechte Hälfte wird nur # benötigt, wenn FP_DIRECTIONAL auf true steht. # Liste hier die einzelnen zu verwendenden Dateien auf: FP_FILE = ["footprints_default", # fp_id 0 "footprints_default3", # fp_id 1 "footprints_monster", # fp_id 2 "footprints_default2" # fp_id 3 ] #============================================================================== # ** Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # * #-------------------------------------------------------------------------- def setup_fp_tileset fp_tileset = Bitmap.new(256,1024 * FP_FILE.size) # make a column for each footprint image FP_FILE.each_with_index do |name, i| y = 1024 * i # right -> down fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new( 0, 0, 32, 32)) # up -> right fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new( 0, 32, 32, 32)) # left -> right fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new( 0, 64, 32, 32)) # down -> left fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(32, 0, 32, 32)) # left -> up fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(32, 32, 32, 32)) # down -> up fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(32, 64, 32, 32)) end # fill out each column, making copies of the image with decreasing opacity FP_FILE.size.times do |i| offset = i * 1024 for col in 0..5 opacity = 255 for row in 0..15 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end if FP_DIRECTIONAL FP_FILE.each_with_index do |name, i| y = 1024 * i + 512 # down -> right fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new(64, 0, 32, 32)) # right -> up fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new(64, 32, 32, 32)) # right -> left fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new(64, 64, 32, 32)) # left -> down fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(96, 0, 32, 32)) # up -> left fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(96, 32, 32, 32)) # up -> down fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(96, 64, 32, 32)) end FP_FILE.size.times do |i| offset = i * 1024 + 512 for col in 0..5 opacity = 255 for row in 0..16 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end end return fp_tileset end #-------------------------------------------------------------------------- # * Initialisation #-------------------------------------------------------------------------- def initialize @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities @panorama = Plane.new(@viewport1) @panorama.z = -1000 @fog = Plane.new(@viewport1) @fog.z = 3000 @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) @weather = RPG::Weather.new(@viewport1) @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i] ) ) end @timer_sprite = Sprite_Timer.new # Dynamic Footprints additions begin @footprints = [] @fp_tilemap = Tilemap.new(@viewport1) @fp_tilemap.tileset = setup_fp_tileset @fp_tilemap.map_data = Table.new($game_map.width, $game_map.height, 3) @fp_tilemap.priorities = Table.new(8*32) # end Dynamic Footprints additions update end end #============================================================================== # ** Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # * #-------------------------------------------------------------------------- attr_accessor( :fp_id ) #-------------------------------------------------------------------------- # * #-------------------------------------------------------------------------- def footprints # determine which prints to draw and where if terrain_tag(@last_x[1],@last_y[1]) != FP_TAG return end fp_index = nil # left if @x > @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_UR elsif @last_y[1] < @last_y[0] fp_index = FP_DIRECTIONAL ? FP_DR : FP_RD else fp_index = FP_LR end else # right if @x < @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_DIRECTIONAL ? FP_UL : FP_LU elsif @last_y[1] < @last_y[0] fp_index = FP_DL else fp_index = FP_DIRECTIONAL ? FP_RL : FP_LR end else # up if @y < @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_LU elsif @last_x[1] < @last_x[0] fp_index = FP_DIRECTIONAL ? FP_RU : FP_UR else fp_index = FP_DU end # down elsif @y > @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_DIRECTIONAL ? FP_LD : FP_DL elsif @last_x[1] < @last_x[0] fp_index = FP_RD else fp_index = FP_DIRECTIONAL ? FP_UD : FP_DU end end end end if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] offset = 8 * 32 fp_index_by_kind = fp_index + offset * @fp_id $scene.spriteset.show_footprints( fp_index_by_kind, fp_x, fp_y ) end end end |
zum Lesen den Text mit der Maus markieren
Mit diesen Eventbefehlen kannst Du vorerst für Spieler und Event 5 die Fußabdrücke auf Set1 ändern.
|
|
Ruby Quellcode |
1 2 3 4 5 |
get_character(-1).fp_id = 1 event_id = 5 event = get_character(event_id) event.fp_id = 1 |
Füg einfach mal mehrere Sets ein, ersetze die Namen oben in der Konfiguration entsprechend und spiel etwas damit rum, ob es so ist wie Du es dir vorstellst mit den verschiedenen Fußabdrücken. Wenn es dir gefällt rüste ich das autoamtische Auswählen der fp_id je nach Markierung im EventKommentar nach.
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!"
:D
Supi :3
Es ist wunderschön Q___Q
Genauso hab ich mir das vorgestellt! :D Ich habe jetzt nur mit improvisierten Foots rumgespielt (grell rot und grün und grüne Krallenfüße XD), aber alles passt zusammen! Selbst wenn sie verschiedene Foots haben, legen die sich übereinander und faden dann aus, genau so, wie ichs wollte! Ich hatte nur Anfangs vergessen, wo das mit der Direction war, weswegen die Krallen dann Rückwärts liefen, aber das hatte ich dann hinbekommen :P
Playm- super. 1+! :D
Kannst du das <nofp> noch als Comment integrieren? Damit der Player und seine Mannen auch keine Foots mehr haben können und dann wieder welche? Oder soll ich dann ein leeres FP-Set verwenden?
Vielen Dank! Deine Scripts bereichern mein Spiel *_*
Edit: Mir ist noch aufgefallen, als ich nun mit untransparenten FPs gearbeitet habe, dass die Priority offenbar nicht so richtig funktioniert. Teilweise sieht man die FPs auf dem Kopf des Protas und manchmal schimmern sie nur durch. Das hat aber glaub ich nix mit deinem Add-On zu tun. Und ich weiß auch nicht, ob das wichtig ist zu regeln, denn bei TRansparenten FPs sieht man das ja kaum.
Zitat
Das mit einem Eventbefehl zu machen ist garkein Problem.
Supi :3
Zitat
Ich habe schonmal angefangen.
Wenn es dir gefällt rüste ich das autoamtische Auswählen der fp_id je nach Markierung im EventKommentar nach.
Es ist wunderschön Q___Q
Genauso hab ich mir das vorgestellt! :D Ich habe jetzt nur mit improvisierten Foots rumgespielt (grell rot und grün und grüne Krallenfüße XD), aber alles passt zusammen! Selbst wenn sie verschiedene Foots haben, legen die sich übereinander und faden dann aus, genau so, wie ichs wollte! Ich hatte nur Anfangs vergessen, wo das mit der Direction war, weswegen die Krallen dann Rückwärts liefen, aber das hatte ich dann hinbekommen :P
Playm- super. 1+! :D
Kannst du das <nofp> noch als Comment integrieren? Damit der Player und seine Mannen auch keine Foots mehr haben können und dann wieder welche? Oder soll ich dann ein leeres FP-Set verwenden?
Vielen Dank! Deine Scripts bereichern mein Spiel *_*
Edit: Mir ist noch aufgefallen, als ich nun mit untransparenten FPs gearbeitet habe, dass die Priority offenbar nicht so richtig funktioniert. Teilweise sieht man die FPs auf dem Kopf des Protas und manchmal schimmern sie nur durch. Das hat aber glaub ich nix mit deinem Add-On zu tun. Und ich weiß auch nicht, ob das wichtig ist zu regeln, denn bei TRansparenten FPs sieht man das ja kaum.
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« (27. März 2015, 10:35)
Hier ist das überarbeitete AddOn.
Konnte ich jetzt nicht reproduzieren. Benutzt Du vielleicht einen Tilemaprewrite? Habe trotzdem mal etwas am AddOn angepasst, vielleicht reicht das schon.
|
|
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 |
#============================================================================== # ** Dynamic Footprints AddOn für Josey #============================================================================== # Original Dynamic Footprints Skript in Version 1.0 by Wachunga # # Fügt die Option hinzu mehrere verschiedene Fußabdrücke zu verwenden. # Dafür werden unten einfach mehrere Dateinamen angegeben, die im Tileset- # Ordner liegen müssen. # # Schreibt in ein Eventkommentar # <fp id=1/> # um einem Event andere Fußabdrücke zu geben, oder # <nofp> # damit das Event keine Fußabdrücke hinterlässt. Der Eventname wird nichtmehr # berücksichtigt. # Ihr könnt auch für beliebige Figuren der Map (auch für den Spieler) per # Skriptbefehl die zu verwendenden Abdrücke wählen. # Holt euch erstmal mit get_character(id) das Event Nummer 17 oder den Helden # player = get_character(-1) # event = get_chatacter(17) # Dann via .fp_id=X die fp_id ändern: # player.fp_id = nil # event.fp_id = 3 # Nun hinterlässt der Spieler keine Fußabdrücke mehr, und das Event Nummer 17 # hinterlässt entsprechende Abdrücke, zur fp_id 3. #------------------------------------------------------------------------------ # Autor: Playm # Datum: Mar 2015 # Maker: RPG Maker XP # Einfache Nutzung in nicht-kommerziellen RMXP Projekten ist gestattet. # Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden. # Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet. #============================================================================== # ** Konfiguration #============================================================================== # Es werden Fußabdrücke für sechs Situationen (unten->oben, links->rechts, # rechts->links, links->oben, oben->rechts und rechts->runter) benötigt # (zwölf, wenn die Richtung wichtig ist). Siehe das beigelegte # footprint template für spezifische Details. Die Rechte Hälfte wird nur # benötigt, wenn FP_DIRECTIONAL auf true steht. # Liste hier die einzelnen zu verwendenden Dateien auf: FP_FILE = ["footprints_default", # fp_id 0 (Standard) "footprints_default3", # fp_id 1 "footprints_monster", # fp_id 2 "footprints_default2" # fp_id 3 ] #============================================================================== # ** Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # * Setup FP Tileset #-------------------------------------------------------------------------- def setup_fp_tileset fp_tileset = Bitmap.new(256,1024 * FP_FILE.size) # make a column for each footprint image FP_FILE.each_with_index do |name, i| y = 1024 * i # right -> down fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new( 0, 0, 32, 32)) # up -> right fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new( 0, 32, 32, 32)) # left -> right fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new( 0, 64, 32, 32)) # down -> left fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(32, 0, 32, 32)) # left -> up fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(32, 32, 32, 32)) # down -> up fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(32, 64, 32, 32)) end # fill out each column, making copies of the image with decreasing opacity FP_FILE.size.times do |i| offset = i * 1024 for col in 0..5 opacity = 255 for row in 0..15 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end # Draw Directional Parts if FP_DIRECTIONAL FP_FILE.each_with_index do |name, i| y = 1024 * i + 512 # down -> right fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new(64, 0, 32, 32)) # right -> up fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new(64, 32, 32, 32)) # right -> left fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new(64, 64, 32, 32)) # left -> down fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(96, 0, 32, 32)) # up -> left fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(96, 32, 32, 32)) # up -> down fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(96, 64, 32, 32)) end # Fill Columns FP_FILE.size.times do |i| offset = i * 1024 + 512 for col in 0..5 opacity = 255 for row in 0..16 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end end return fp_tileset end #-------------------------------------------------------------------------- # * Initialisation #-------------------------------------------------------------------------- def initialize @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities @panorama = Plane.new(@viewport1) @panorama.z = -1000 @fog = Plane.new(@viewport1) @fog.z = 3000 @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) @weather = RPG::Weather.new(@viewport1) @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i] ) ) end @timer_sprite = Sprite_Timer.new # Dynamic Footprints additions begin @footprints = [] @fp_tilemap = Tilemap.new(@viewport1) @fp_tilemap.tileset = setup_fp_tileset @fp_tilemap.map_data = Table.new($game_map.width, $game_map.height, 3) @fp_tilemap.priorities = Table.new(8*32*FP_FILE.size) # end Dynamic Footprints additions update end end #============================================================================== # ** Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # * Attr #-------------------------------------------------------------------------- attr_accessor( :fp_id ) #-------------------------------------------------------------------------- # * Overwrite original footprints Method from Wachunga #-------------------------------------------------------------------------- def footprints # determine which prints to draw and where if terrain_tag(@last_x[1],@last_y[1]) != FP_TAG return end fp_index = nil # left if @x > @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_UR elsif @last_y[1] < @last_y[0] fp_index = FP_DIRECTIONAL ? FP_DR : FP_RD else fp_index = FP_LR end else # right if @x < @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_DIRECTIONAL ? FP_UL : FP_LU elsif @last_y[1] < @last_y[0] fp_index = FP_DL else fp_index = FP_DIRECTIONAL ? FP_RL : FP_LR end else # up if @y < @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_LU elsif @last_x[1] < @last_x[0] fp_index = FP_DIRECTIONAL ? FP_RU : FP_UR else fp_index = FP_DU end # down elsif @y > @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_DIRECTIONAL ? FP_LD : FP_DL elsif @last_x[1] < @last_x[0] fp_index = FP_RD else fp_index = FP_DIRECTIONAL ? FP_UD : FP_DU end end end end if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] offset = 8 * 32 fp_index_by_kind = fp_index + offset * @fp_id $scene.spriteset.show_footprints( fp_index_by_kind, fp_x, fp_y ) end end end #============================================================================== # ** Game_Event #============================================================================== class Game_Event #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias_method( :org_refresh_wo_footprints, :refresh ) #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh old_list = @list org_refresh_wo_footprints if old_list != @list # Reset fp_id to default @fp_id = 0 # Check fp_id tags if check_comments( /<nofp>/i ) @fp_id = nil else match = check_comments( /<fp id=(\d+)\/>/i ) if match @fp_id = match[1].to_i end end end end #-------------------------------------------------------------------------- # * Check Comments for RegExp and return MatchData or nil #-------------------------------------------------------------------------- def check_comments( regexp ) for command in @list if command.code == 108 or command.code == 408 if regexp =~ command.parameters[0] return Regexp.last_match end end end return nil end end |
zum Lesen den Text mit der Maus markieren
Zitat
Edit: Mir ist noch aufgefallen, als ich nun mit untransparenten FPs gearbeitet habe, dass die Priority offenbar nicht so richtig funktioniert. Teilweise sieht man die FPs auf dem Kopf des Protas und manchmal schimmern sie nur durch. Das hat aber glaub ich nix mit deinem Add-On zu tun. Und ich weiß auch nicht, ob das wichtig ist zu regeln, denn bei TRansparenten FPs sieht man das ja kaum.
Konnte ich jetzt nicht reproduzieren. Benutzt Du vielleicht einen Tilemaprewrite? Habe trotzdem mal etwas am AddOn angepasst, vielleicht reicht das schon.
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
Konnte ich jetzt nicht reproduzieren. Benutzt Du vielleicht einen Tilemaprewrite?
Yep :3
Ich hab doch da dieses RGSS3-Spiel XD
Also: In einem RGSS1-Spiel läuft alles ganz wunderbar! :D
Aber mein RGSS3-Spiel spuckt mir unten angehangenen Fehler aus :<
Neben einem Tilemaprewrite habe ich da einen Haufen anderer Sachen drin.
...
In einem reinen RGSS3-Spiele ohne weitere Scripte läuft alles (Priority-Problem ist immer noch da, wird man wohl aber nicht sehen).
Tatsächlich gabs eine Zeile, die in meinem FP-Script geändert wurde. (Zeile 228 @fp_tilemap.priorities = Table.new(8*32) ist neu, damit es mit dem Tilemap-Rewrite kompatibel ist). Aber daran liegts nicht, denn da läuft ja jetzt alles.
Komisch, die erste Add-On-Version lief noch ohne Probleme.
Der Fehler tritt auch auf, wenn ich die Position des Add-On-Scripts verändere, also es ganz runter direkt über Main schiebe oder es weiter hoch tue. Keine Änderung.
So. Jetzt hab ichs. Es liegt tatsächllich nicht direkt an einem Script, aber irgendwie schon. Wie ich vermutete, nachdem ichd as Tilemaprewrite ausgeschlossen hatte, liegt es an meinen Partymemberfollowern. Und zwar nicht direkt am Script, denn an sich kann ich das Spiel starten. Will ich aber auf eine Map, wo es Partymember gibt (also sie nur existieren, sie müssen nichtmal laufen!) kackt alles ab.
Vielleicht liegt es daran, dass du das mit den Eventnamen überschrieben hast? Die Partymember laufen teilweise mit Eventnamen (weil ich ja per CE auf sie zugreife, sie aber nicht auf jeder Map dieselbe Eventnummer haben).
Soll ich dir eine abgespeckte Demo schicken? D:
Nebeninfo:
Du hast "event = get_chatacter(17)" statt "event = get_character(17)" in der Beschreibung stehen (und ich habs nciht sofort gemerkt und bekam schon Panik XD)
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.
Rechtschreibfehler gefixt und eine Ausnahmebehandlung hinzugefügt:
Die neue Version sollte das Problem nicht haben. Falls doch, muss ich nochmal genauer drübergucken.
|
|
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 |
#============================================================================== # ** Dynamic Footprints AddOn für Josey #============================================================================== # Original Dynamic Footprints Skript in Version 1.0 by Wachunga # # Fügt die Option hinzu mehrere verschiedene Fußabdrücke zu verwenden. # Dafür werden unten einfach mehrere Dateinamen angegeben, die im Tileset- # Ordner liegen müssen. # # Schreibt in ein Eventkommentar # <fp id=1/> # um einem Event andere Fußabdrücke zu geben, oder # <nofp> # damit das Event keine Fußabdrücke hinterlässt. Der Eventname wird nichtmehr # berücksichtigt. # Ihr könnt auch für beliebige Figuren der Map (auch für den Spieler) per # Skriptbefehl die zu verwendenden Abdrücke wählen. # Holt euch erstmal mit get_character(id) das Event Nummer 17 oder den Helden # player = get_character(-1) # event = get_character(17) # Dann via .fp_id=X die fp_id ändern: # player.fp_id = nil # event.fp_id = 3 # Nun hinterlässt der Spieler keine Fußabdrücke mehr, und das Event Nummer 17 # hinterlässt entsprechende Abdrücke, zur fp_id 3. #------------------------------------------------------------------------------ # Autor: Playm # Datum: Mar 2015 # Maker: RPG Maker XP # Einfache Nutzung in nicht-kommerziellen RMXP Projekten ist gestattet. # Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden. # Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet. #============================================================================== # ** Konfiguration #============================================================================== # Es werden Fußabdrücke für sechs Situationen (unten->oben, links->rechts, # rechts->links, links->oben, oben->rechts und rechts->runter) benötigt # (zwölf, wenn die Richtung wichtig ist). Siehe das beigelegte # footprint template für spezifische Details. Die Rechte Hälfte wird nur # benötigt, wenn FP_DIRECTIONAL auf true steht. # Liste hier die einzelnen zu verwendenden Dateien auf: FP_FILE = ["footprints_default", # fp_id 0 (Standard) "footprints_default3", # fp_id 1 "footprints_monster", # fp_id 2 "footprints_default2" # fp_id 3 ] #============================================================================== # ** Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # * Setup FP Tileset #-------------------------------------------------------------------------- def setup_fp_tileset fp_tileset = Bitmap.new(256,1024 * FP_FILE.size) # make a column for each footprint image FP_FILE.each_with_index do |name, i| y = 1024 * i # right -> down fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new( 0, 0, 32, 32)) # up -> right fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new( 0, 32, 32, 32)) # left -> right fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new( 0, 64, 32, 32)) # down -> left fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(32, 0, 32, 32)) # left -> up fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(32, 32, 32, 32)) # down -> up fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(32, 64, 32, 32)) end # fill out each column, making copies of the image with decreasing opacity FP_FILE.size.times do |i| offset = i * 1024 for col in 0..5 opacity = 255 for row in 0..15 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end # Draw Directional Parts if FP_DIRECTIONAL FP_FILE.each_with_index do |name, i| y = 1024 * i + 512 # down -> right fp_tileset.blt(160, y, RPG::Cache.tileset(name), Rect.new(64, 0, 32, 32)) # right -> up fp_tileset.blt(128, y, RPG::Cache.tileset(name), Rect.new(64, 32, 32, 32)) # right -> left fp_tileset.blt( 32, y, RPG::Cache.tileset(name), Rect.new(64, 64, 32, 32)) # left -> down fp_tileset.blt( 64, y, RPG::Cache.tileset(name), Rect.new(96, 0, 32, 32)) # up -> left fp_tileset.blt( 96, y, RPG::Cache.tileset(name), Rect.new(96, 32, 32, 32)) # up -> down fp_tileset.blt( 0, y, RPG::Cache.tileset(name), Rect.new(96, 64, 32, 32)) end # Fill Columns FP_FILE.size.times do |i| offset = i * 1024 + 512 for col in 0..5 opacity = 255 for row in 0..16 dx = col * 32 dy = row * 32 + offset fp_tileset.blt( dx, dy, fp_tileset, Rect.new(dx, offset, 32, 32), opacity) opacity -= 16 end end end end return fp_tileset end #-------------------------------------------------------------------------- # * Initialisation #-------------------------------------------------------------------------- def initialize @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities @panorama = Plane.new(@viewport1) @panorama.z = -1000 @fog = Plane.new(@viewport1) @fog.z = 3000 @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) @weather = RPG::Weather.new(@viewport1) @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i] ) ) end @timer_sprite = Sprite_Timer.new # Dynamic Footprints additions begin @footprints = [] @fp_tilemap = Tilemap.new(@viewport1) @fp_tilemap.tileset = setup_fp_tileset @fp_tilemap.map_data = Table.new($game_map.width, $game_map.height, 3) @fp_tilemap.priorities = Table.new(8*32*FP_FILE.size) # end Dynamic Footprints additions update end end #============================================================================== # ** Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # * Attr #-------------------------------------------------------------------------- attr_accessor( :fp_id ) #-------------------------------------------------------------------------- # * Overwrite original footprints Method from Wachunga #-------------------------------------------------------------------------- def footprints # determine which prints to draw and where if terrain_tag(@last_x[1],@last_y[1]) != FP_TAG return end fp_index = nil # left if @x > @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_UR elsif @last_y[1] < @last_y[0] fp_index = FP_DIRECTIONAL ? FP_DR : FP_RD else fp_index = FP_LR end else # right if @x < @last_x[1] if @last_y[1] > @last_y[0] fp_index = FP_DIRECTIONAL ? FP_UL : FP_LU elsif @last_y[1] < @last_y[0] fp_index = FP_DL else fp_index = FP_DIRECTIONAL ? FP_RL : FP_LR end else # up if @y < @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_LU elsif @last_x[1] < @last_x[0] fp_index = FP_DIRECTIONAL ? FP_RU : FP_UR else fp_index = FP_DU end # down elsif @y > @last_y[1] if @last_x[1] > @last_x[0] fp_index = FP_DIRECTIONAL ? FP_LD : FP_DL elsif @last_x[1] < @last_x[0] fp_index = FP_RD else fp_index = FP_DIRECTIONAL ? FP_UD : FP_DU end end end end if fp_index != nil fp_x = @last_x[1] fp_y = @last_y[1] offset = 8 * 32 fp_index_by_kind = fp_index + offset * @fp_id $scene.spriteset.show_footprints( fp_index_by_kind, fp_x, fp_y ) end end end #============================================================================== # ** Game_Event #============================================================================== class Game_Event #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias_method( :org_refresh_wo_footprints, :refresh ) #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh old_list = @list org_refresh_wo_footprints if old_list != @list # Reset fp_id to default @fp_id = 0 # Check fp_id tags if check_comments( /<nofp>/i ) @fp_id = nil else match = check_comments( /<fp id=(\d+)\/>/i ) if match @fp_id = match[1].to_i end end end end #-------------------------------------------------------------------------- # * Check Comments for RegExp and return MatchData or nil #-------------------------------------------------------------------------- def check_comments( regexp ) return nil unless @list for command in @list if command.code == 108 or command.code == 408 if regexp =~ command.parameters[0] return Regexp.last_match end end end return nil end end |
zum Lesen den Text mit der Maus markieren
Die neue Version sollte das Problem nicht haben. Falls doch, muss ich nochmal genauer drübergucken.
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!"
Vielen Dank, Playm :D
Es funktioniert wieder. Das umschalten zwischen den FPs und die Comment-Funktion für Events, alles ist ganz wunderbar!
Dankeschön! :D
Ich freu mich schon drauf, sämtlichen Viehzeugs FPs im Sand zu geben, mal schaun, ab wievielen es beginnt zu laggen >XD
Die Priority-Sache ist immer noch da- das hat aber überhaupt nichts mit deinem Add-On zu tun, sondern mit dem RGSS3 (vielleicht sogar nur mit dem Tilemaprewrite, dass ich verwenden, mit einem anderen Rewrite wollten die FPs gar nicht laufen). Man sieht es auch nur, wenn man die FPs nicht transparent macht, sonst wär mir das schon vorher aufgefallen :3
Für den Fall, dass du es dir mal ansehen möchtest (oder jemand anderer) hier eine kleine (6000KB) Demo (ohne dein Add-On, weil es nicht an diesem liegt- wenn du aber drei weitere FPs einfügst oder in den Einstellungen deines Scripts die anderen FPs rausnimmst, kannst du es ohne Probleme reinkopieren). Wenn man da mit dem Charakterkopf durch FPs läuft, sind die FPs auf dem Kopf, statt darunter. Die FPs sind auch nur eine Skizze, sie sehen noch furchtbar aus und sind total unlogisch (so kleine Trippelschritte würde so was Großes nie machen XD).
Vielen vielen Dank, die FP-Wechselei wird mir sehr viel Freude bereiten :D
Danke, dass du alle Probleme mit meinen anderen Scripts ausgebügelt hast! :3
Es funktioniert wieder. Das umschalten zwischen den FPs und die Comment-Funktion für Events, alles ist ganz wunderbar!
Dankeschön! :D
Ich freu mich schon drauf, sämtlichen Viehzeugs FPs im Sand zu geben, mal schaun, ab wievielen es beginnt zu laggen >XD
Die Priority-Sache ist immer noch da- das hat aber überhaupt nichts mit deinem Add-On zu tun, sondern mit dem RGSS3 (vielleicht sogar nur mit dem Tilemaprewrite, dass ich verwenden, mit einem anderen Rewrite wollten die FPs gar nicht laufen). Man sieht es auch nur, wenn man die FPs nicht transparent macht, sonst wär mir das schon vorher aufgefallen :3
Für den Fall, dass du es dir mal ansehen möchtest (oder jemand anderer) hier eine kleine (6000KB) Demo (ohne dein Add-On, weil es nicht an diesem liegt- wenn du aber drei weitere FPs einfügst oder in den Einstellungen deines Scripts die anderen FPs rausnimmst, kannst du es ohne Probleme reinkopieren). Wenn man da mit dem Charakterkopf durch FPs läuft, sind die FPs auf dem Kopf, statt darunter. Die FPs sind auch nur eine Skizze, sie sehen noch furchtbar aus und sind total unlogisch (so kleine Trippelschritte würde so was Großes nie machen XD).
Vielen vielen Dank, die FP-Wechselei wird mir sehr viel Freude bereiten :D
Danke, dass du alle Probleme mit meinen anderen Scripts ausgebügelt hast! :3
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.
Ähnliche Themen
-
Skript-Anfragen »-
Multidrop + Battle Report Kompatibilität
(13. November 2014, 17:42)
-
Skript-Anfragen »-
[Erledigt] Das "Ich-bin-fast-am-Rand-der-Map"-Add-On zum "Ich-bin-am-Rand-der-Map"-Script
(9. September 2014, 09:40)
-
Skript-Anfragen »-
Add-on lader möglich ???
(7. Juni 2010, 12:23)





