Terra RPGXP
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Bienvenue dans la Terre du RPG Making!
 
AccueilRechercherDernières imagesS'enregistrerStatsConnexion
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 Minimap - Sans la vue d'ensemble

Aller en bas 
AuteurMessage
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 12:25

EDIT FF : Voici le script qui a répondu au problème ci-dessous :

https://rpgxp.superforum.fr/Boite-a-Outils-c3/Vos-competences-f20/Entre-Aide-diverse-f26/prbleme-de-minimap-t167.htm


Ok:

Edit: Le metlre au dessus de "Main", appellez le comme vous voullez (moi je l'ai appellé minimap)

Code:
#=====
# ■ Game_Event
#=====

class Game_Event < Game_Character
#----------
# ● name
#----------
def name
return @event.name
end
end

#======
# ■ Map_Base
#-----------
#  Base class for mini maps
#
# made by squall // squall@loeher.zzn.com
#======
class Map_Base
MP_VERSION = 5
#-----------
# ● Initialize
#-----------
def initialize(corner, use_windowskin)
@tileset_name = $game_map.tileset_name
@bg = Window_Base.new(0, 0, 144, 112)
@bg.z = 9000
if no_display?
@bg.windowskin = nil
else
unless use_windowskin
@bg.dispose
@bg = Window_Base.new(0, 0, 160, 128)
@bg.contents = Bitmap.new(128, 96)
@bg.windowskin = nil
bmp = RPG::Cache.picture("mapback")
@bg.contents.blt(0, 0, bmp, Rect.new(0, 0, 128, 96))
@bg.z = 9015
end
end
@map = Sprite.new
@map.bitmap = Bitmap.new(map_width, map_height)
@map.z = 9005
@event = Sprite.new
@event.bitmap = Bitmap.new(map_width, map_height)
@event.z = 9010
self.back_opacity = 150
self.opacity = 150
case corner
when 1
self.x = 16
self.y = 16
when 2
self.x = 640 - width - 16
self.y = 16
when 3
self.x = 16
self.y = 480 - height - 16
when 4
self.x = 640 - width - 16
self.y = 480 - height - 16
else
self.x = 16
self.y = 16
end
end
#--------
# ● display_map?
#--------
def no_map_display?
for event in $game_map.events.values
if event.name.include?("[no map]")
return true
end
end
return false
end
#----------
# ● display_map?
#----------
def no_event_display?
for event in $game_map.events.values
if event.name.include?("[no event]")
return true
end
end
return false
end
#--------
# ● display_map?
#--------
def no_display?
for event in $game_map.events.values
if event.name.include?("[no map]") and event.name.include?("[no event]")
return true
end
end
return false
end
#---------
# ● dispose
#---------
def dispose
@bg.dispose
@map.bitmap.dispose
@map.dispose
@event.bitmap.dispose
@event.dispose
end
#---------
# ● map
#---------
def map
return @map
end
#---------
# ● event
#---------
def event
return @event
end
#---------
# ● width
#---------
def width
return 128
end
#----------
# ● opacity=
#----------
def height
return 96
end
#----------
# ● opacity=
#----------
def visible=(bool)
@bg.visible = bool
@event.visible = bool
@map.visible = bool
end
#-----------
# ● opacity
#-----------
def visible
return @bg.visible
end
#-----------
# ● opacity=
#-----------
def opacity=(opacity)
@event.opacity = opacity
@map.opacity = opacity
end
#----------
# ● opacity
#----------
def opacity
return @event.opacity
end
#-----------
# ● back_opacity=
#--------------
def back_opacity=(opacity)
@bg.opacity = opacity
@bg.contents_opacity = opacity if @bg.contents != nil
end
#----------
# ● back_opacity
#----------
def back_opacity
return @bg.opacity
end
#-----------
# ● x=
#-----------
def x=(x)
@bg.x = x - (@bg.width - 128) / 2
@event.x = x + 8
@map.x = x + 8
end
#------------
# ● x
#------------
def x
return @bg.x
end
#------------
# ● y=
#------------
def y=(y)
@bg.y = y - (@bg.height - 96) / 2
@event.y = y + 8
@map.y = y + 8
end
#-----------
# ● y
#-----------
def y
return @bg.y
end
#------------
# ● map_width
#------------
def map_width
return $game_map.width * 112/20
end
#------------
# ● map_height
#-----------
def map_height
return $game_map.height * 80/15
end
#-----------
# ● display_x
#-----------
def display_x
return $game_map.display_x / 128 * 112/20
end
#------------
# ● map_height
#------------
def display_y
return $game_map.display_y / 128 * 80/15
end
end
#=======
# ■ Map_Mini
#------------
#  Base class for mini maps
#
# made by squall // squall@loeher.zzn.com
#=======
class Map_Mini < Map_Base
#------------
# ● initialize
#------------
def initialize(corner, use_windowskin)
super(corner, use_windowskin)
unless no_map_display?
draw_map
end
end
#------------------
# ● update
#-----------------
def update
map.src_rect.set(display_x, display_y, width - 16, height - 16)
if @tileset_name != $game_map.tileset_name
@tileset_name = $game_map.tileset_name
unless no_map_display?
map.bitmap.clear
draw_map
end
end
end
#------------
# ● draw_map
#------------
def draw_map
bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
for i in 0...($game_map.width * $game_map.height)
x = i % $game_map.width
y = i / $game_map.width
for level in 0...3
tile_id = $game_map.data[x, y, level]
if tile_id >= 384
tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)
src_rect = Rect.new(0, 0, 32, 32)
bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
end
if tile_id >= 48 and tile_id < 384
id = tile_id / 48 - 1
tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])
src_rect = Rect.new(32, 64, 32, 32)
bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
end
end
end
d_rect = Rect.new(0, 0, map_width, map_height)
s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
map.bitmap.stretch_blt(d_rect, bitmap, s_rect)
bitmap.clear
bitmap.dispose
end
end
#=========
# ■ Map_Event
#--------------
#  draw the events and hero position
#========

class Map_Event < Map_Mini
#-------------
# ● initialize
#-------------
def initialize(corner = 4, windowskin = true)
super(corner, windowskin)
@dots = []
end
#--------
# ● refresh_dots
#--------
def refresh_event_dots
for event in $game_map.events.values
bitmap = nil
x = event.x * map_width / $game_map.width
y = event.y * map_height / $game_map.height
next if event.list == nil
for i in 0...event.list.size
if event.list[i].parameters[0].is_a?(String)
if event.list[i].parameters[0] == "event"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "enemy"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0].include?("teleport")
bitmap = RPG::Cache.picture("teleport")
break
elsif event.list[i].parameters[0] == "chest"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "npc"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "savepoint"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
else
bitmap = nil
end
end
end
@dots.push([x, y, bitmap])
end
end
#------------
# ● refresh_dots
#------------
def refresh_player_dot
x = $game_player.x * map_width / $game_map.width
y = $game_player.y * map_height / $game_map.height
bitmap = RPG::Cache.picture("hero")
@dots.push([x, y, bitmap])
end
#------------
# ● update
#------------
def update
super
@dots.clear
event.bitmap.clear
refresh_event_dots unless no_event_display?
refresh_player_dot unless no_display?
for dot in @dots
unless dot[2] == nil
event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))
end
end
event.src_rect.set(display_x, display_y, width - 16, height - 16)
end
end
#=======
# ■ Map_Full
#------------
# made by squall // squall@loeher.zzn.com
#=======

class Map_Full
#----------
# ● Initialize
#----------
def initialize
@dots = []
@teleport_sprites = []
if $game_map.width > $game_map.height
@map_width = 640
@map_height = $game_map.height * @map_width / $game_map.width
if @map_height > 480
@map_height = 480
end
else
@map_height = 480
@map_width = $game_map.width * @map_height / $game_map.height
if @map_width > 640
@map_width = 640
end
end
@map = Sprite.new
@event = Sprite.new
@map.bitmap = Bitmap.new(width, height)
@event.bitmap = Bitmap.new(width, height)
@map.x = @event.x = 320 - width / 2
@map.y = @event.y = 240 - height / 2
draw_map unless no_map_display?
draw_event_dots unless no_event_display?
draw_player_dot unless no_display?
if no_display?
@message = Window_Base.new(0, 208, 640, 64)
message = "the map is not available"
@message.contents = Bitmap.new(608, 32)
@message.contents.font.name = "Arial"
@message.contents.font.size = 32
@message.contents.font.color.set(255, 255, 255, 100)
@message.contents.draw_text(-1, -1, 608, 32, message, 1)
@message.contents.draw_text(-1, 1, 608, 32, message, 1)
@message.contents.draw_text(1, -1, 608, 32, message, 1)
@message.contents.draw_text(1, 1, 608, 32, message, 1)
@message.contents.font.color.set(255, 255, 255, 50)
@message.contents.draw_text(-2, -2, 608, 32, message, 1)
@message.contents.draw_text(-2, 2, 608, 32, message, 1)
@message.contents.draw_text(2, -2, 608, 32, message, 1)
@message.contents.draw_text(2, 2, 608, 32, message, 1)
@message.contents.font.color.set(255, 255, 255)
@message.contents.draw_text(0, 0, 608, 32, message, 1)
@message.windowskin = nil
end
end
#--------------------------------------------------------------------------
# ● display_map?
#----------------
def no_map_display?
for event in $game_map.events.values
if event.name.include?("[full]")
return false
end
if event.name.include?("[no map]")
return true
end
end
return false
end
#----------------
# ● display_map?
#----------------
def no_event_display?
for event in $game_map.events.values
if event.name.include?("[full]")
return false
end
if event.name.include?("[no event]")
return true
end
end
return false
end
#----------------
# ● display_map?
#----------------
def no_display?
for event in $game_map.events.values
if event.name.include?("[full]")
return false
end
if event.name.include?("[no map]") and event.name.include?("[no event]")
return true
end
end
return false
end
#-------------
# ● dispose
#------------
def dispose
for sprite in @teleport_sprites
sprite.dispose
end
@message.dispose if no_display?
@map.bitmap.dispose
@map.dispose
@event.bitmap.dispose
@event.dispose
end
#----------
# ● width
#----------
def width
return @map_width
end
#-----------
# ● opacity=
#----------
def height
return @map_height
end
#-----------
# ● draw_map
#-----------
def draw_map
bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
for i in 0...($game_map.width * $game_map.height)
x = i % $game_map.width
y = i / $game_map.width
for level in 0...3
tile_id = $game_map.data[x, y, level]
if tile_id >= 384
tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)
src_rect = Rect.new(0, 0, 32, 32)
bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
end
if tile_id >= 48 and tile_id < 384
id = tile_id / 48 - 1
tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])
src_rect = Rect.new(32, 64, 32, 32)
bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
end
end
end
d_rect = Rect.new(0, 0, width, height)
s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
@map.bitmap.stretch_blt(d_rect, bitmap, s_rect)
bitmap.clear
bitmap.dispose
end
#---------
# ● refresh_dots
#---------
def draw_event_dots
for event in $game_map.events.values
bitmap = nil
x = event.x * width / $game_map.width
y = event.y * height / $game_map.height
next if event.list == nil
for i in 0...event.list.size
if event.list[i].parameters[0].is_a?(String)
if event.list[i].parameters[0] == "event"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "enemy"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0].include?("teleport")
bitmap = RPG::Cache.picture("teleport")
name = event.list[i].parameters[0].dup
name.slice!("teleport, ")
@teleport_sprites.push(new_name_sprite(name, x, y))
break
elsif event.list[i].parameters[0] == "chest"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "npc"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
elsif event.list[i].parameters[0] == "savepoint"
bitmap = RPG::Cache.picture(event.list[i].parameters[0])
break
else
bitmap = nil
end
end
end
@dots.push([x, y, bitmap])
end
for dot in @dots
unless dot[2] == nil
@event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))
end
end
end
#--------
# ● new_name_sprite
#--------
def new_name_sprite(name, x, y)
sprite = Sprite.new
sprite.y = y + 240 - height / 2
x + 128 > 640 ? sprite.x = 512 : sprite.x = x + 320 - width / 2
bitmap = Bitmap.new(128, 32)
bitmap.font.name, bitmap.font.size = "Arial", 20
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 0, 128, 32, name)
sprite.bitmap = bitmap
return sprite
end
#----------
# ● refresh_dots
#----------
def draw_player_dot
x = $game_player.x * width / $game_map.width
y = $game_player.y * height / $game_map.height
bitmap = RPG::Cache.picture("hero")
@event.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 4, 4))
end
end

#=====
# ■ Scene_MiniMap
#-----------
#  draw the map full screen
#=====

class Scene_MiniMap
#--------
# ● main
#--------
def main
@map = Map_Full.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@map.dispose
end
#----------
# ● Update the contents of all five windows on the main menu
#----------
def update
if Input.trigger?(Input::B) | Input.trigger?(Input::CTRL)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
end

#====
# ■ Scene_Map
#--------
#  draw the mini map
# @corner is the corner you want the mini map to be displayed in.
# 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right
#
# @use_windowskin is whether true or false. true if you want to use the
# the current windowskin for the minimap background.
# or false if you want to use the picture named mapback in your picture folder.
#=======

class Scene_Map
alias main_minimap main
alias update_minimap update
alias transfer_minimap transfer_player
#------------
# ● initialize
#------------
def initialize
@corner = 4 # 1 or 2 or 3 or 4
@use_windowskin = false # true or false
end
#------------
# ● main
#------------
def main
@event_map = Map_Event.new(@corner, @use_windowskin)
main_minimap
@event_map.dispose
end
#-------------
# ● update
#-------------
def update
@event_map.update
if $game_system.map_interpreter.running?
@event_map.visible = false
else
@event_map.visible = true
end
update_minimap
end
#--------------
# ● transfer_player
#-------------
def transfer_player
transfer_minimap
@event_map.dispose
@event_map = Map_Event.new(@corner, @use_windowskin)
end
end


Dernière édition par le Lun 19 Fév - 13:08, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 12:32

merci Cool
mais tu as oublié de nous dire où le mettre, si on modifie ou si on ajoute un script. Quel nom faut-il lui donner? scratch
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 13:09

voilà.
Les images a mettre dans pictures:
Minimap - Sans la vue d'ensemble Chestof3 :appellez le chest
Minimap - Sans la vue d'ensemble Enemyat3 :appellez le enemy
Minimap - Sans la vue d'ensemble Eventws6 :appellez le event
Minimap - Sans la vue d'ensemble Heroqf5 :appellez le hero
Minimap - Sans la vue d'ensemble Npcvz9 :appellez le npc
Minimap - Sans la vue d'ensemble Savepointvo3 :appellez le savepoint
Minimap - Sans la vue d'ensemble Teleportwn0 :appellez le teleport

cadre (a mettre aussi dans picture.)
Minimap - Sans la vue d'ensemble Mapbacksf3 :appellez le mapback

Base du cadre:
Minimap - Sans la vue d'ensemble Mapback_base

Maintenant les explications :

* [no map]: Pour que la minimap n'aparraisse pas, à placer des les commentaires d'un event.
* [no event]: si vous ne voulez pas les autres points sur la cartes.



Créez des events et mettez des commentaires :

* event: si il doit apparaitre comme un event
* npc: pour les pnj
* savepoint: pour les points de sauvegardes
* teleport: points de téléportation
* enemy: pour les ennemies
* chest: pour les coffres


Dernière édition par le Lun 19 Fév - 15:22, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 13:19

Ok, je l'ai testé mais il manque quelque chose et même plusieurs chose, il nous manque les pictures. XD
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 13:21

Demo sans le script modifié.
Les pictures sont dedans:
http://www.megaupload.com/?d=MD939LMX
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 13:27

ok, merci mais il faudra que tu réhéberge les images car elles ne passent pas. Mets les liens en lien c'est peut être ça le problème. n_n
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 13:57

Non ils ont disparut.
Revenir en haut Aller en bas
Invité
Invité
avatar



Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitimeLun 19 Fév - 14:37

Hum, stop flood ? Je déplace tout ça dans les scripts.
Revenir en haut Aller en bas
Contenu sponsorisé





Minimap - Sans la vue d'ensemble Empty
MessageSujet: Re: Minimap - Sans la vue d'ensemble   Minimap - Sans la vue d'ensemble Icon_minitime

Revenir en haut Aller en bas
 
Minimap - Sans la vue d'ensemble
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Terra RPGXP :: Boîte à Outils :: Les Scripts-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser