Pokémon Script Project Forum Index

Manuel | Search
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

ATES::: Système Day/Night + Heure
Goto page: 1, 2, 3, 4  >
 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts
Previous topic :: Next topic   
Author Message
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Fri 19 Mar - 22:54 (2010)    Post subject: ATES::: Système Day/Night + Heure

Voilà, comme d'hab. une création anglophone, totalement créée par Blizzard et traduite par moi D-B en français.
ATES c'est quoi ???
Advanced Time and Environment System est un système de jour et de nuit, équipé d'une horloge.
Que fait-il au juste ???


ATES a plusieurs utilités, comme.
        :arrow: Jour~Nuit
      ►C'est le système gérant les teints du jeu, pour donner un effet de nuit ou de jour
      ►Il permet de manier la durée du jour et de la nuit à votre choix
       :arrow: Non-affectation d'intérieur
      ►Vous pouvez faire en sorte que ATES n'aie pas d'effets de teints dans les intérieurs.
        :arrow: Horloge
      ►En haut à droite de l'écran, s'affiche l'heure "discrètement^^"
      ►Cette horloge peut être arrangée
        :arrow: Le petit bonus:
      ►ATES offre deux bonus : l'écran estival: écran à grande luminosité pour l'été.
                                             l'écran ténèbres: écran sombre pour les nuits de pénombre.






Pourquoi poster un système jour/nuit, alors qu'il y en a plein??
Bah, j'ai beau cherché dans PSP et les autres sites, je trouve que celui-ci est le plus simple et efficace, même qu'avec des modifications, ou des gérances d'évents, on peut faire des merveilles. Voilà, en plus je l'utilise pour mon projet, donc pourquoi ne pas le partagern et en français ^^.




Les explications ?
Tout est dans le script, en plus traduit au français (D-B).




SCRIPT

 
Code:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Advanced Time and Environment System (ATES) by Blizzard
# Version: 0.4
# Type: Autonomous Timeflow and Environment Controller
# Date v0.3: 11.3.2008
# Date v0.31: 8.4.2009
# Date v0.32: 13.4.2009
# Date v0.33: 4.5.2009
# Date v0.34: 5.5.2009
# Date v0.4: 28.12.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
# Script créé par Blizzard
# Traduction au français : d-black
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Ce travail est protégé par la license suivante:
# #----------------------------------------------------------------------------
# #  
# #  Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# #  ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #  
# #  Vous êtes libres:
# #  
# #  de partager-reproduire-distribuer-communiquer cette création
# #  de l'adapter à un travail
# #  
# # Selon les conditions suivantes: 
# # 
# #. Vous devez citer le travail de la manière spécifiée par le :
# # Auteur ou donneur (Blizzard)
# # 
# # Pas d'usage à fins commerciales 
# # 
# # Au cas où vous modifiez-partagez-éditez cette création, il faut notifier
# # le nom de son créateur(Blizzard)
# # - A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres la licence 
# # Terms de ce travail. La meilleure façon de le faire est avec un lien vers cette page web 
# # Voir ci-dessus
# # 
# # - Chacune de ces conditions peut être levée si vous obtenez l'autorisation du 
# # Copyright titulaire. 
# # 
# # - Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur. 
# #  
# #----------------------------------------------------------------------------

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

# Compatibility:

#   # Compatibilité: 

# 100% de fonctionnement avec RMXP et le starter kit PkScrptPrjct (Krosk)


# Caractéristiques: 

# - Un contrôle complet sur la manipulation et facile du temps 
# - Bonne journée et à teinter la nuit 
# - HUD horloge en option 
# - Plus facile à contrôler et plus puissant que DDNS 


# NOTES IMPORTANTES: 

# - Pour manier ce système, il faut user de vos connaicances, donc merci de lire les instructions.
# - A part le jour et la nuit sur la map, à quoi peut-il servir d'autre? : Vous pouvez utiliser des conditions dans les attaques ennemies, afin de déterminer si une 
#  les Attaques qui doivent être utilisées que pendant la nuit ou seulement pendant la journée. 


# Instructions: 

# - Explication: 

# Ce système temps fera de votre jeu ont des périodes diurnes et nocturnes. 
# L'écran sera teintée en conséquence. Vous pouvez configurer la longueur de la 
# Journée. Les autres caractéristiques sont expliquées ci-dessous. S'il vous plaît n'oubliez pas de configurer ce 
# Système en conséquence. 


# - Manipulation de base d'ATES: 

#   Les pricipales utilisations de ce système, se font via des commandes scripts dans des events
# communs.

# ATES.on 
# Met en marche

# ATES.off 
# Arrête (ex: les maisons...)

# ATES.tint_on 
# Met en marche les teints

# ATES.tint_off 
# Arrête les teints

# ATES.clock_on 
# Met en marche l'affichage de l'horloge

# ATES.clock_off 
# Arrête l'affichage de l'horloge

# ATES.active? 
# Retourne "true" si Ates est activé, sinon "false". 

# ATES.tinting? 
# Retourne "true" si "ATES teinteur" est activé, sinon "false". 

# ATES.day? 
# Retourne "true" si c'est le jour, sinon "false". Sinon, vous pouvez vérifier l'attribution de switch.

# ATES.night? 
# Retourne "true" si c'est la nuit, sinon "false". Sinon, vous pouvez vérifier 
# L'interrupteur assigné à la place. 

# ATES.advance (M, H) 
# Cela va prendre le temps avancé par M minutes et des heures H. Annule si M et H sont néatifs (=0)

# ATES.make_it_day 
# Ceci est une caractéristique de ATES qui vous permet de sauter rapidement au jour

# ATES.make_it_night 
# Ceci est une caractéristique de ATES qui vous permet de sauter rapidement à la 
# Nuit. 
#   

# - Conseils Amélioration: 

# Vous pouvez améliorer ce système pour les monstres qui n'attaquent telle ou telle attaque la nuit
# grâce aux conditions de script, switch ou interrupteur.


# Infos complémentaires: 

# Pour apprendre à bien gérer ATES, mettez vous en tête qu'il est désactivé, et que pour le
# mettre n marche, ces trois commandes sont les pricipales (ATES.on / ATES.tint_on / ATES.clock_on)


# En cas de tel ou tel bug, parlez-en ici:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=


module ATES
  
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# DEBUT de configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  # interrupteur "JOUR"
  DSWITCH = 51
  # interrupteur "NUIT"
  NSWITCH = 52
  # durée de la journée en secondes ( /!\ pas inférieur à 36)
  # quantité en intervalles de 36sec.
  LENGTH = 36
  # à quelle "heure" le jour commence
  DAY_START = 8
  # à quelle "heure" la nuit commence
  NIGHT_START = 20
  # Pour les écrans "lumineux" pendant les saisons éstivales
  OVERLIGHTING = true
  # rend l'écran sombre pour la nuit et pénombre (non recommandé!)
  OVERDARKENING = false
  # affichage de l'horoge
  SHOW_CLOCK = true
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# FIN de configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  
  $ates = 0.4
  
  #============================================================================
  # ATES::Time
  #============================================================================
  
  class Time
    
    attr_accessor :hour
    attr_accessor :min
    
    def initialize(m = 0, h = 0)
      @hour, @min = h, m
    end
    
  end
  
  def self.on
    $game_system.ates.active = true
    return true
  end
  
  def self.off
    $game_system.ates.active = false
    return true
  end
  
  def self.tint_on
    $game_system.ates.tinting = true
    return true
  end
  
  def self.tint_off
    $game_system.ates.tinting = false
    return true
  end
  
  def self.clock_on
    $game_system.show_clock = true
    return true
  end
  
  def self.clock_off
    $game_system.show_clock = false
    return true
  end
  
  def self.active?
    return $game_system.ates.active
  end
  
  def self.tinting?
    return $game_system.ates.tinting
  end
  
  def self.day?
    $game_system.ates.day?
  end
  
  def self.night?
    $game_system.ates.night?
  end
  
  def self.make_it_day
    $game_system.ates.time.hour = DAY_START
    $game_system.ates.time.min = 0
    return true
  end
  
  def self.make_it_night
    $game_system.ates.time.hour = NIGHT_START
    $game_system.ates.time.min = 0
    return true
  end
  
  def self.day_start
    return DAY_START
  end
  
  def self.night_start
    return NIGHT_START
  end
  
  def self.advance(m = 1, h = 0)
    return false if m < 0 || h < 0
    h += ($game_system.ates.time.min + m) / 60
    $game_system.ates.time.hour = ($game_system.ates.time.hour + h) % 24
    $game_system.ates.time.min = ($game_system.ates.time.min + m) % 60
    return true
  end
  
end


if ATES::DAY_START > ATES::NIGHT_START
  raise 'ATEScfgError: A night can\'t start earlier than a day.'
elsif ATES::LENGTH < 36
  raise 'ATEScfgError: A day\'s length must be equal to or greater than 36 seconds!'
end


#==============================================================================
# Game_System
#==============================================================================


class Game_System
  
  attr_accessor :ates
  attr_accessor :show_clock
  
  alias init_ates_later initialize
  def initialize
    init_ates_later
    @ates = Game_ATES.new
    @show_clock = ATES::SHOW_CLOCK
  end


end


#==============================================================================
# Game_ATES
#==============================================================================


class Game_ATES
  
  attr_accessor :time
  attr_accessor :frame_count
  attr_accessor :active
  attr_accessor :tinting
  
  def initialize
    @time = ATES::Time.new(0, 0)
    @frame_count = 0
    @active = false
    @tinting = false
  end
  
  def update
    if @active
      update_progress
      update_ates_progress
    end
    update_switches
    update_screen
  end
  
  def update_progress
    @frame_count += 1
  end
  
  def update_ates_progress
    ATES.advance if @frame_count % (ATES::LENGTH / 36) == 0
  end
  
  def update_switches
    if ATES.day?
      $game_map.need_refresh = true if $game_switches[ATES::NSWITCH]
      $game_switches[ATES::DSWITCH] = true
      $game_switches[ATES::NSWITCH] = false
    else
      $game_map.need_refresh = true if $game_switches[ATES::DSWITCH]
      $game_switches[ATES::DSWITCH] = false
      $game_switches[ATES::NSWITCH] = true
    end
  end
  
  def update_screen
    $game_screen.start_tone_change(self.get_tint, 0) if @tinting
  end
  
  def day?
    return (@time.hour.between?(ATES::DAY_START, ATES::NIGHT_START - 1))
  end
  
  def night?
    return (!self.day)
  end
  
  def get_tint
    return (self.day? ? self.get_day_tint : self.get_night_tint)
  end
  
  def get_day_tint
    day, night = ATES.day_start, ATES.night_start
    ratio = ((@time.hour - day) * 60 + @time.min) * 255 / (60 * (night - day))
    tone = Tone.new(0, 0, 0, 0)
    if ratio >= 224
      tone.red = (232 - ratio) * 4
      tone.green = (208 - ratio) * 2
    elsif ratio >= 192
      tone.red = ratio - 192
      tone.green = 192 - ratio
    elsif ATES::OVERLIGHTING
      if ratio >= 160
        tone.red = tone.green = tone.blue = 192 - ratio
      elsif ratio >= 96
        tone.red = tone.green = tone.blue = 32
      elsif ratio >= 64
        tone.red = tone.green = tone.blue = ratio - 64
      end
    end
    return tone
  end
  
  def get_night_tint
    day, night = ATES.day_start, ATES.night_start
    hour = (@time.hour >= night ? @time.hour : @time.hour + 24)
    ratio = ((hour - night) * 60 + @time.min) * 255 / (60 * (day + 24 - night))
    tone = Tone.new(-96, -96, 0, 0)
    if ratio >= 224
      tone.red = (ratio - 256) * 2
      tone.green = (ratio - 256) * 2
      tone.blue = 255 - ratio
    elsif ratio >= 192
      tone.red = ratio - 288
      tone.green = ratio - 288
      tone.blue = ratio - 192
    elsif ATES::OVERDARKENING
      if ratio >= 160
        tone.red = ratio - 288
        tone.green = ratio - 288
        tone.blue = ratio - 192
      elsif ratio >= 96
        tone.red = -128
        tone.green = -128
        tone.blue = -32
      elsif ratio >= 64
        tone.red = -32 - ratio
        tone.green = -32 - ratio
        tone.blue = 64 - ratio
      end
    end
    return tone
  end
  
end


#==============================================================================
# Bitmap
#==============================================================================


class Bitmap


  if $tons_version == nil || $tons_version < 1.6
    alias draw_text_shaded_later draw_text
  end
  def draw_text_full(x2, y2, w2 = 0, h2 = 0, text2 = '', a2 = 0)
    if x2.is_a?(Rect)
      x, y, w, h, text, a = x2.x, x2.y, x2.width, x2.height, y2, w2
    else
      x, y, w, h, text, a = x2, y2, w2, h2, text2, a2
    end
    save_color = self.font.color.clone
    self.font.color = Color.new(0, 0, 0)
    draw_text_shaded_later(x - 1, y - 1, w, h, text, a)
    draw_text_shaded_later(x + 1, y - 1, w, h, text, a)
    draw_text_shaded_later(x - 1, y + 1, w, h, text, a)
    draw_text_shaded_later(x + 1, y + 1, w, h, text, a)
    self.font.color = save_color
    draw_text_shaded_later(x, y, w, h, text, a)
  end
  
end


#==============================================================================
# Clock_Sprite
#==============================================================================


class Clock_Sprite < Sprite
  
  def initialize
    super
    self.x, self.y, self.z = 480, 8, 5000
    self.bitmap = Bitmap.new(128, 32)
    if $fontface != nil
      self.bitmap.font.name = $fontface
    elsif $defaultfonttype != nil
      self.bitmap.font.name = $defaultfonttype
    end
    self.bitmap.font.size = 26
    @colon = true
    draw
  end
  
  def draw
    self.bitmap.clear
    hours, minutes = $game_system.ates.time.hour, $game_system.ates.time.min
    if @colon
      self.bitmap.draw_text_full(0, 0, 128, 32,
          sprintf('%02d %02d', hours, minutes), 2)
    else
      self.bitmap.draw_text_full(0, 0, 128, 32,
          sprintf('%02d:%02d', hours, minutes), 2)
    end
    @colon = !@colon
  end
    
end


#==============================================================================
# Scene_Map
#==============================================================================


class Scene_Map
  
  alias main_ates_later main
  def main
    @clock = Clock_Sprite.new if $game_system.show_clock
    $game_system.ates.update_screen
    main_ates_later
    @clock.dispose if @clock != nil
  end
  
  alias update_ates_later update
  def update
    $game_system.ates.update
    update_ates_later
    if $game_system.show_clock
      @clock = Clock_Sprite.new if @clock == nil
      @clock.draw if ATES.active? && $game_system.ates.frame_count % 40 == 0
    elsif @clock != nil
      @clock.dispose
      @clock = nil
    end
  end
  
  alias transfer_player_ates_later transfer_player
  def transfer_player
    $game_system.ates.update_screen
    transfer_player_ates_later
  end
  
end
 










EXPLICATIONS
Très simple et dans le script, mais j'explique.


Ces scripts sont à mettre dans un event en processus parallèle.


ATES.on
Pour activer le système (.off pour désactiver pour l'intérieur)
ATES.clock_on
Activer le système d'HUB, horloge (.off ...)
ATES.tint_on
Activer les teints pour la journée (.off ...)


Plus d'explications sont au début du script.
Ici sont les commandes pricipales.

Des screenies, oui !


Simple à imaginer. Et vaut mieux essayer  :D



Voilà !!!!
Simple et efficace!!! ^^
Cordialement D-B !


Last edited by GT.Onizuka on Sun 21 Mar - 19:56 (2010); edited 2 times in total
Back to top
Skype
Publicité






PostPosted: Fri 19 Mar - 22:54 (2010)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Solfay1
Guest





PostPosted: Fri 19 Mar - 23:21 (2010)    Post subject: ATES::: Système Day/Night + Heure

C'est bien , c'est aussi faisable en évent Clin d'œil foireux
pour l'horloge ça fait toujours lager le jeu 


Mais Gg' à  toi , même si je ne le prendrais pas  :mrgreen:
Back to top
Alex
Ex-staff


Joined: 01 Jun 2008
Posts: 2,632
Localisation: Demain

PostPosted: Fri 19 Mar - 23:22 (2010)    Post subject: ATES::: Système Day/Night + Heure

Des screens ?

Sinon, je testerais pour voir Imbécile heureux
Back to top
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Fri 19 Mar - 23:48 (2010)    Post subject: ATES::: Système Day/Night + Heure

Merci
Le screen(même si sa  qualité est médiocre), je peux te montrer celui de l'horloge pour l'instant mais tu peux essayer si tu veux  Imbécile heureux






J'ai fait de mon mieux  :mrgreen:
Essayes c'est mieux.
Tu verras. Bouche extensiblek:
Back to top
Skype
Peach =D
Guest





PostPosted: Sat 20 Mar - 10:39 (2010)    Post subject: ATES::: Système Day/Night + Heure

Pas plus grand en screen ? s'il te plait merci.
Back to top
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Sat 20 Mar - 11:48 (2010)    Post subject: ATES::: Système Day/Night + Heure

Voilà, je les rajoutes dans le 1er post .
Back to top
Skype
Nami-chwan
Membre


Joined: 13 Nov 2009
Posts: 336
Localisation: Au monde des creppy

PostPosted: Sun 21 Mar - 13:01 (2010)    Post subject: ATES::: Système Day/Night + Heure

sa bug a la ligne 145
Back to top
og_loc-TATOO
Membre


Joined: 11 Oct 2009
Posts: 3,383
Sailor Maniac
Localisation: noitasilacol

PostPosted: Sun 21 Mar - 13:07 (2010)    Post subject: ATES::: Système Day/Night + Heure

Purée c'est le énieme script que j'arrive pas à mettre X_X sa me tue *_*
Back to top
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Sun 21 Mar - 18:46 (2010)    Post subject: ATES::: Système Day/Night + Heure

Zeelan tu utilises 4g+ ? car si oui, il marche alors seulement sur 0.7
Et og bonne chance
Back to top
Skype
Sphinx
Scribe
Scribe


Joined: 07 Jan 2008
Posts: 9,736
Localisation: Quelque part, dans le monde... Ou peut être sur une autre planète...
ID Steam: FaQuinator

PostPosted: Sun 21 Mar - 19:10 (2010)    Post subject: ATES::: Système Day/Night + Heure

Ah parce que tu l'as déclaré compatible avec PSP sans le tester ? Mollasse enragé
Back to top
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Sun 21 Mar - 19:56 (2010)    Post subject: ATES::: Système Day/Night + Heure

Ah j'ai oublié de mettre 0.7 :gloups:
Vraiment désolé
J'ai pas testé sur 4G+


J'édite le titre 
Back to top
Skype
og_loc-TATOO
Membre


Joined: 11 Oct 2009
Posts: 3,383
Sailor Maniac
Localisation: noitasilacol

PostPosted: Sun 21 Mar - 20:46 (2010)    Post subject: ATES::: Système Day/Night + Heure

Merci mais à chaque fois que je place un script y a toujours une erreur et sa me saoule :x


Je vais me pendre. =_=
Back to top
Nami-chwan
Membre


Joined: 13 Nov 2009
Posts: 336
Localisation: Au monde des creppy

PostPosted: Sun 21 Mar - 21:17 (2010)    Post subject: ATES::: Système Day/Night + Heure

d-black wrote:
Zeelan tu utilises 4g+ ? car si oui, il marche alors seulement sur 0.7 Et og bonne chance




jutilise psp0.7
Back to top
GT.Onizuka
Membre


Joined: 17 Dec 2009
Posts: 976
Localisation: Tunis, TUNISIE

PostPosted: Mon 22 Mar - 19:12 (2010)    Post subject: ATES::: Système Day/Night + Heure

Bizarre 
Montres le log  :?
Back to top
Skype
Nami-chwan
Membre


Joined: 13 Nov 2009
Posts: 336
Localisation: Au monde des creppy

PostPosted: Mon 22 Mar - 19:36 (2010)    Post subject: ATES::: Système Day/Night + Heure

le blem c'est que mon log montre un vieux bug
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts All times are GMT + 1 Hour
Goto page: 1, 2, 3, 4  >
Page 1 of 4

 
Jump to:  

Index | Free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Thème par Thomas et l'équipe de la refonte PSP 2012 (version 1.0)