Jump to content
Rpg²S Forum

*Impronte sulla neve


friday666
 Share

Recommended Posts

Impronte sulla neve

Descrizione

Script per lasciare impronte sulla neve!

 

Autore

syvkal

 

Allegati

Screen

 

Istruzioni per l'uso

create una classe sopra main e inserite il code poi inserite l immagine allegata in tileset

 

 

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

#----------------------------------------------------------------------

FP_FILE = "footprints_default"
#----------------------------------------------------------------------

FP_DIRECTIONAL = false
#----------------------------------------------------------------------

FP_TAG = 1
#----------------------------------------------------------------------

FP_BEFORE_FADE_TIME = 100

FP_FADE_TIME = 100

#----------------------------------------------------------------------

FP_DU = 384
FP_LR = 385
FP_DL = 386
FP_LU = 387
FP_UR = 388
FP_RD = 389
#----------------------------
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

@footprints = []
fp_tileset = FP_DIRECTIONAL ? Bitmap.new(256,1024) : Bitmap.new(256,512)

fp_tileset.blt(160, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 0, 32, 32))

fp_tileset.blt(128, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 32, 32, 32))

fp_tileset.blt(32, 0, RPG::Cache.tileset(FP_FILE), Rect.new(0, 64, 32, 32))

fp_tileset.blt(64, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 0, 32, 32))

fp_tileset.blt(96, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 32, 32, 32))

fp_tileset.blt(0, 0, RPG::Cache.tileset(FP_FILE), Rect.new(32, 64, 32, 32))


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

fp_tileset.blt(160, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 0, 32, 32))

fp_tileset.blt(128, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 32, 32, 32))

fp_tileset.blt(32, 512, RPG::Cache.tileset(FP_FILE), Rect.new(64, 64, 32, 32))

fp_tileset.blt(64, 512, RPG::Cache.tileset(FP_FILE), Rect.new(96, 0, 32, 32))

fp_tileset.blt(96, 512, RPG::Cache.tileset(FP_FILE), Rect.new(96, 32, 32, 32))

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)


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

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)

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

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

@last_x = [0,0]
@last_y = [0,0]
@fp_id = 0 # default footprints
end

def footprints

if terrain_tag(@last_x[1],@last_y[1]) != FP_TAG
return
end
fp_index = nil

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

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

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

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

@last_x = [@x,@x]
@last_y = [@y,@y]
end
end

def increase_steps
@stop_count = 0

if @fp_id != nil and $scene.is_a?(Scene_Map)
footprints

@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

@last_x = [@x,@x]
@last_y = [@y,@y]
end
end

end

#-------------------------------------------------------------------------------

class Scene_Map
attr_reader :spriteset


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
@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

 

 

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

Non vorrei dire una boiata, ma questo script NON è di ally...

 

l'ho visto tempo fa su un forum americano ...

 

però verifico, se fosse davvero suo con stessa funzione mi scuso in anticipo ;)

 

EDIT: verificato :3

http://www.ibfree.org/index.php?mforum=drm...p;showtopic=392

 

probabilmente ally ha fatto delle modifiche, ma è bene citare anche l'autore originale, ovvero syvkal

 

EDIT 2: ricontrollato, a quanto pare non sono state fatte modifiche di alcun tipo ò_ò se le trovate avvisatemi, comunque intanto edito il primo post ;)

Progetti:

 http://i.imgur.com/jmLkIqi.png

http://i54.tinypic.com/2rh4ojq.png

https://github.com/ProGM

 

Crea anche tu il tuo gioco per Game Boy!
http://rpg2s.net/gif/SCContest3Oct.gifhttp://www.rpg2s.net/img/fablecontest1st.pnghttp://i43.tinypic.com/1zokd2s.png


http://i.imgur.com/BEu6G.gif

http://i.imgur.com/H1ARhq7.gif

http://i.imgur.com/Af6ijZN.gif

AOT: Associazione Odiamo la Telecom:

http://i.imgur.com/aYJs89E.png

"4 gattini... 4 stelline... E le 4 paperelle non ci stavano :3"

Flame


http://i30.tinypic.com/i27ypj.png

Link to comment
Share on other sites

Non so io ho visto che era ally...quindi non so...

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

  • 9 months later...
Non funziona. Ma il file devo metterlo nella cartella Tileset oppure inserirlo proprio nel tileset?!

Deve essere messo in Tileset, ma deve chiamarsi footprints_default.png . . .

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

Si la rinominazione l'avevo già messa perchè all'avvio dava errore, però devo aver sbagliato io qualcosa, ora riprovo.

 

File messo giusto, script anche, ma non funziona. Secondo me bisogna impostare qualcosa nel chipset dove devono apparire le impronte, o non lo so, ma spiegato così non funziona.

Edited by Redrum
Link to comment
Share on other sites

Qualcuno gentilmente può editarlo anche per la camminata diagonale???

 

Edit: Redrum dove vuoi che si vedano le impronte devi impostare dal database terrain tag 1

Edited by MasterSion

http://img256.imageshack.us/img256/7639/ihateyou.gif

Un uomo senza religione è come un pesce senza bicicletta.

http://img18.imageshack.us/img18/3668/decasoft1.png

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif

Link to comment
Share on other sites

Link to comment
Share on other sites

Qualcuno gentilmente può editarlo anche per la camminata diagonale???

 

Edit: Redrum dove vuoi che si vedano le impronte devi impostare dal database terrain tag 1

Ok, ora provo. :ph34r:

 

Funziona, grazie Mastersion. Metteteci che va impostato nel database del chipset il numero 1 nel Terreno. :sisi:

Edited by Redrum
Link to comment
Share on other sites

  • 2 months later...
Io l'ho usato pure per la sabbia e l'effetto è ottimo. Magari non è uno script molto essenziale, ma sicuramente dall'effetto carino!

Al momento lavoro a: Ad Quietem Postremam / Pokémon Garnet Version / ???

 

 

http://www.rpg2s.net/images/shortgame_2.pnghttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gif

 

 

 

http://backloggery.com/mercury/sig.gif

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...