Sujet n°2965
Posté par Dark' le 22 Fév - 10:56 (2009)
Titre : Heure Virtuelle, Jour/Nuit... et aucun lag
Voilà... D'abord, bonjour la compagnie !

Bon, alors, ce script...
On avait applaudit le script Jour Nuit, Temps Réel de MoussPSP, mais on c'était dit : "dommage que l'heure soit l'heure du PC... certains aimeraient une heure virtuelle"
Puis on avait été heureux du script de Sphinx, mais déçu par le lag...

Et bien, qu'a cela ne tienne, j'ai décidé d'y remédier, avec mes maigres connaissances du Ruby, mais suffisantes.

Jour/Nuit Virtuel


Note : les numéros de lignes que je donne sont les lignes correspondant si aucun espace n'est laissé avant le long commentaire vert du début.


Utilise :
- Script
- Variables

Connaissances requises :
- Appuyer sur F2 ^^

Fonctionnalités :
- Gère la différence ordinateur 20fps et ordinateur 40fps
- Valeur d'une seconde réglable
- Teintes de l'écran réglables
- Gestion du temps très complète





I/Différence ordinateur 20 ou 40 FPS

Comme certains l'auront remarqué, pour certains ordinateurs, une seconde équivaut à 20 frames, pour d'autre, à 40. C'est ce que j'appelle les 20FPS et 40FPS. Ici, la seconde virtuelle est gérée en Frames. C'est à dire que le maker décide du nombre de frames que durera sa seconde virtuelle : s'il est sur un 40FPS, et qu'il décide "une seconde virtuelle = 10 frames", son heure ira 4 fois plus vite que la normale. Cependant, s'il donne son jeu à un ordinateur 20FPS, le temps ne sera plus que doublé, ce qui pourra causé de large différence dans le jeu.

Avec ce script, il suffira de donner le nombre de frames que vaudra une seconde virtuelle SUR UNE BASE 40FPS. Au début de jeu, la demande au joueur de son nombre de FPS (accessible par F2) devra enclencher un interrupteur, ou non. Si l'interrupteur est enclenché, le script gardera son 40FPS. Sinon, il s'arrangera tout seul pour passer en mode 20FPS.

Alors pas de souci. Placer simplement votre nombre de frames pour une seconde virtuelle en mode 40FPS.





II/ Régler la valeur d'une seconde

Pour régler la valeur d'une seconde, chercher la ligne 40 du script :
Code:
SecondeFrame = 40

Changer simplement le 40, qui équivaut au nombre de frames, en gardant à l'esprit qu'ici 40 frames = 1 seconde. Un petit peu au dessus, à la ligne 36 :
Code:
Frames = 501
, on vous demande de choisir l'interrupteur qui décidera si le jeu tourne en 20FPS ou en 40FPS.





III/ Régler les teintes de l'écran

Pour changer les teintes de l'écran, il vous faudra chercher les lignes 136 à 232. Ici, les teintes selon les heures sont affichées en RVB, il me semble, ce qui signifie que le premier chiffre gère le Rouge, le deuxième le Vert, et le dernier le Bleu.
Code:
Tone.new(-100, -100, -100, 0)

Ici, on demande -100 de chaque, sur une échelle allant de -255 (Noir) à +255 (Blanc). Le quatrième nombre gère la luminosité, ou la saturation, désolé je ne me souviens plus. Inutile, mieux vaut le laisser sur 0.

Dans le script basique, les teintes sont simple : un bête changement de luminosité, clair le jour, plus sombre en aurore/crépuscule, et encore plus sombre la nuit.

L'activation de l'interrupteur Exterieur, défini en début de script, active le changement de teinte. La désactivation de ce même interrupteur le désactive.





IV/ Gestion du temps

Le script ci-présent gère le temps d'un bout à l'autre, de la seconde à l'année. Seconde, Minute, Heure, Jour, Semaine, Mois et Année sont pris en compte. Est ajouté aussi un compteur d'heures et de jours écoulés In-game. Pour ressortir chacune des informations, simplement marquer dans un message \V[X], avec X la valeur correspondante à la variable voulue, définie en début de script.
Note : les mois sont programmés en mode "Lunatico-Fevrier", c'est à dire qu'il se mettent à jour toutes les 4 semaines, et ne comptes que 28 jours chacun.





V/ Le Script

Et voici le script lui-même, a placé au dessus de Main, nommé JourNuitVirtuel :
Script
Code:
#==============================================================================
# ■ TempsJourNuit
# Par Darkange, Dark~Peace
# 22/02/09 -- Version 4
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# ● Indiquer les numéros des Variables et du Switch Exterieur
#-----------------------------------------------------------------------------

# Variables contenant le nom du Jour (Lundi, Mardi...), ou du mois.
NomJour = 54
NomMois = 55

# Variables contenant le nombre d'heures et de jours écoulés depuis le début
# de la partie
JourEcoul = 56
HeureEcoul = 57

# Variables contenant les différents composants du temps
Seconde = 58
Minute = 59
Heure = 60
Jour = 61
Mois = 62
Annee = 63

# Variables contenant le jour du mois, et le nombre de jour du mois
JourMois = 64
NbrJour = 65

# Variable contenant le moment de la journée, pour avoir la teinte
NuitJour = 66

# Switch Exterieur : true = exterieur, false = interieur. A activer pour
# que le changement de teinte fonctionne
# Switch Frames : true = 40 Frames par seconde. False = 20 Frames par seconde.
# Nombre de Frames par seconde du PC accessible par F2 pendant test du jeu.
# JourNuit : interupteur d'activation du script.
Exterieur = 20
Frames = 21
JourNuit = 19

# Nombre de seconde que l'on veut pour une frame. Base 40 frames, quelque soit
# l'ordi.
SecondeFrame = 13
#-----------------------------------------------------------------------------
# ● Début du Script
#-----------------------------------------------------------------------------

  class JourNuitVirtuel < Window_Base
    def initialize
      super(440, 420, 200, 60)
      self.contents = Bitmap.new(width - 32, height - 32)
      self.opacity = 150
      self.visible = false
      refresh
    end
    def refresh
                self.contents.clear
    if $game_variables[Seconde] < 60
      if $game_switches[Frames] = true
      if Graphics.frame_count % SecondeFrame == 0
      $game_variables[Seconde] = $game_variables[Seconde] + 1
      end
      end
      if $game_switches[Frames] = false
      if Graphics.frame_count % SecondeFrame/2 == 0
      $game_variables[Seconde] = $game_variables[Seconde] + 1
      end
      end
    Graphics.update
    end
    if $game_variables[Seconde] == 60
      $game_variables[Seconde] = 0
      $game_variables[Minute] = $game_variables[Minute] + 1
    end
    if $game_variables[Minute] == 60
      $game_variables[Heure] = $game_variables[Heure] + 1
      $game_variables[HeureEcoul] = $game_variables[HeureEcoul] + 1
    end
    if $game_variables[Heure] == 24
      $game_variables[Heure] = 0
      $game_variables[Jour] = $game_variables[Jour] + 1
      $game_variables[JourEcoul] = $game_variables[JourEcoul] + 1
      $game_variables[JourMois] = $game_variables[JourMois] + 1
    end
    if $game_variables[Jour] = 8
      $game_variables[Jour] = 1
    end
    if $game_variables[JourMois] == $game_variables[NbrJour]
      $game_variables[JourMois] = 1
      $game_variables[Mois] = $game_variables[Mois] + 1
    end
    if $game_variables[Mois] == 13
      $game_variables[Mois] = 1
      $game_variables[Semaine] = 1
      $game_variables[Jour] = 1
      $game_variables[NomJour] = 1
      $game_variables[Annee] = $game_variables[Annee] + 1
    end

        case $game_variables[Jour]
        when 1
          jour = "Lundi"
        when 2
          jour = "Mardi"
        when 3
          jour = "Mercredi"
        when 4
          jour = "Jeudi"
        when 5
          jour = "Vendredi"
        when 6
          jour = "Samedi"
        when 7
          jour = "Dimanche"
        end
        case $game_variables[Mois]
        when 1
          mois = "Janvier"
          nbrjour = 32
        when 2
          mois = "Février"
          nbrjour = 29
        when 3
          mois = "Mars"
          nbrjour = 32
        when 4
          mois = "Avril"
          nbrjour = 31
        when 5
          mois = "Mai"
          nbrjour = 32
        when 6
          mois = "Juin"
          nbrjour = 31
        when 7
          mois = "Juillet"
          nbrjour = 32
        when 8
          mois = "Aout"
          nbrjour = 32
        when 9
          mois = "Spetembre"
          nbrjour = 31
        when 10
          mois = "Octobre"
          nbrjour = 32
        when 11
          mois = "Novembre"
          nbrjour = 31
        when 12
          mois = "Décembre"
          nbrjour = 32
        end
      $game_variables[NomJour] = jour
      $game_variables[NomMois] = mois
      $game_variables[NbrJour] = nbrjour
      @map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
     
  #-----------------------------------------------------------------------------
  # Définition des tons
  #-----------------------------------------------------------------------------
     if $game_switches[Exterieur] == true
        case $game_variables[Heure]
          when 0
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 1
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 2
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 3
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 4
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 5
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 6
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 7
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Matin"
          when 8
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Matin"
          when 9
           @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Matin"
          when 10
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Matin"
          when 11
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 12
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 13
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 14
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 15
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 16
            @tone = Tone.new(0, 0, 0, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Jour"
          when 17
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Crépuscule"
          when 18
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Crépuscule"
          when 19
            @tone = Tone.new(-60, -60, -60, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Crépuscule"
          when 20
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 21
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 22
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
          when 23
            @tone = Tone.new(-100, -100, -100, 0)
            $game_screen.start_tone_change(@tone,5)
            $game_variables[NuitJour] = "Nuit"
        end
       else
       @tone = Tone.new(0, 0, 0, 0)
        $game_screen.start_tone_change(@tone,5)
        $game_variables[NuitJour] = 0
      end
    end
 
      def update
             refresh
      end
end
#-----------------------------------------------------------------------------
# ● Application des tons sur la map
#-----------------------------------------------------------------------------

class Scene_Map
         
  alias old_main main
    def main
    @timesys = JourNuitVirtuel.new
    old_main
  if $game_switches[JourNuit] == true
    @timesys.dispose
  end
  end

  alias old_update update
    def update
      if $game_switches[JourNuit] == true
    @timesys.update
      end
    old_update
  end


end


Merci d'avoir lu, et de rien pour le script. Évidemment, un petit crédit n'est pas de refus Clin d'œil foireux

Posté par Bilkev le 22 Fév - 11:06 (2009)
On peut avoir des screens ???

Posté par Dark' le 22 Fév - 11:09 (2009)
Je n'en vois pas trop l'intérêt, comme j'ai dit, les teintes ne sont pour l'instant pas fameuse. Mais je t'en fais un, j'ai ma petite idée ^^

Posté par Bilkev le 22 Fév - 11:11 (2009)
ok c'était juste au moins pour voir ce que sa donne.

Posté par Dark' le 22 Fév - 11:31 (2009)
Bon, voilà un screen. Message remplie de variables, mais un beau résultat à la fin !

Posté par Bilkev le 22 Fév - 11:32 (2009)
Merci,peut-être si j'ai le temps je le mettrai.

Posté par Newtiteuf le 22 Fév - 11:33 (2009)
Darkange, super script  Bouche extensiblek:

Mais je vois des lignes que tu aurais pu "réduire"  et des commandes maladroites exemple: 
Code:



$game_variables[Semaine] = $game_variables[Semaine] + 1 


equivaut a dire:
Code:



$game_variables[Semaine] + 1 





il y a d'autres exemple ... et je te remercie car grace a toi je viens de comprendre comment marchaient les "case"...

Darkange:
  il est 17h30 chez toi ? et tu es le mardi ? Nous en est le dimanche et il est 11h30 ... :mrgreen:

Posté par Dark' le 22 Fév - 11:36 (2009)
Il est 17 heure 30, oui... Mais pas Mardi, j'avoue ^^ j'ai mis au hasard pour le jour et le mois... 2 et 2 ^^ ça fait le 2 22 2 ^^

C'est vrai que j'aurais pu réduire, mais bon. ça change rien, et j'adaptais d'un vieux truc.

Tu peux tester voir si ça marche chez toi ?

Posté par Disccat le 22 Fév - 11:36 (2009)
Y-a-t-il quelque chose à modifier dans ton script ? Parce-que chez moi il ne passe pas, dès le démarrage il bug à la
ligne 264 : $game_variables[VarNuitJour] = 0

Posté par Dark' le 22 Fév - 11:39 (2009)
Oups !

J'ai envoyé le script de mon jeu de test ^^

Enlève le "Var" de ta ligne

EDIT : Script MAJ

Posté par Disccat le 22 Fév - 11:45 (2009)
Encore un bug Lors du nommage du dresseur (moi parle Français bien):

---------- Erreur de script : JourNuitVirtuel ----------
----- Type
NameError

----- Message
uninitialized constant JourNuitVirtuel::VarNuitJour

----- Position dans JourNuitVirtuel
Ligne 264

----- Backtrace
Script : JourNuitVirtuel | Ligne : 264 | Méthode : in `refresh'
Script : JourNuitVirtuel | Ligne : 52 | Méthode : in `initialize'
Script : JourNuitVirtuel | Ligne : 280 | Méthode : in `new'
Script : JourNuitVirtuel | Ligne : 280 | Méthode : in `main'
Script : Main | Ligne : 53

Posté par Dark' le 22 Fév - 11:49 (2009)
Prends le dernier script, il n'y aura plus ce problème.

MAJ du script : ajout de la fonction "JourMois", variables contenant le numéro du jour du mois.

NOTE : les mois sont programmés en mode "Lunatico-Fevrier", c'est à dire qu'il se mettent à jour toutes les 4 semaines, et ne comptes que 28 jours chacun.

MAJ du premier post.

Posté par Sphinx le 22 Fév - 11:56 (2009)
xD Oops, ca va être chaotique, ca, pour les soldes d'hiver et d'été =)


>> fais un tableau =) (dedans, le nbre de j de chaque mois, et pour les semaines suffit de faire un /7 au nbre de j depuis le début du jeu =))

Posté par Dark' le 22 Fév - 11:59 (2009)
(Pourquoi chaotique pour les soldes d'hiver et d'été ? l'hiver et l'été sont toujours la)

C'est vrai, je pourrais, mais la flemme, tu peux pas savoir ^^ un jour, peut etre. J'aime pas rentré dans les trucs trop compliqué.

Au pire, si ça tente quelqu'un de s'y pencher...

Posté par Disccat le 22 Fév - 12:00 (2009)
Et sinon, comment fait-on pour régler le jour, le mois, l'heure, etc...?

Lorsque je pose la variable 500 et 499 dans un texte, même après un nouveau jeu, j'obtients 0 à chacun ^^' .

EDIT: Ce ne sont pas les bonnes varriables je pense ^^' .

EDIT PIAF: Non, même les autres variables affichent 0...

Posté par Dark' le 22 Fév - 12:04 (2009)
500 et 499 sont les bonnes, mais on ne doit pas y toucher. Elle s'adapte en fonction de 506 et 508

Posté par Disccat le 22 Fév - 12:06 (2009)
Mais pourquoi j'obtient 0 sur chaque varriables ?

Posté par Dark' le 22 Fév - 12:15 (2009)
Normalement, si 506 = 1, 500 = Lundi, ect...

En revanche, si 506 = 0, 500 = 0

Posté par Newtiteuf le 22 Fév - 12:16 (2009)
Dark ... comment on démarre le script ?

Posté par Disccat le 22 Fév - 12:17 (2009)
Ah, je pense avoir compris quelque chose, je vais tester et si cela fonctionne ^^' ...

Posté par Dark' le 22 Fév - 12:18 (2009)
Le script ne se démarre pas, il est constamment lancé. En revanche, l'interrupteur Exterieur doit etre activé.

Posté par Pαlвσlѕку le 22 Fév - 12:20 (2009)
J'ai une petite question.
L'heure est-elle récupérée de l'ordinateur ? Ou faut-il lui rentrer l'heure, manuellement ?

Posté par Disccat le 22 Fév - 12:24 (2009)
Bon, j'ai eu des soucis de lag, les minutes qui augmentent quand j'ouvre le menu, les secondes qui n'avancent pas...

J'abandonne par K-O.

Posté par Dark' le 22 Fév - 12:25 (2009)
L'heure est gérée par le script. Elle n'est récupéré nul part, et tu peux la gérer manuellement en créant un évent proche de celui de Sphinx dans son ancien tuto.
Si tu ne fais rien, mais que tu active le script par l'interrupteur, le jeu se lance sur une base 0 heure 0 minute 0 seconde du 0, 0 de mois 0 de l'an 0, et donc euh... Bah faut attendre un mois avant que ça fonctionne ^^

En gros : si tu ne veux pas gérer manuellement, met tout de meme un évènement dans ton intro qui dit : Seconde + 60, Minute + 60, Heure + 24, Jour + 8 ect... pour partir sur quelque chose.

EDIT : Discat, ça m'a tout l'air de deux scripts qui s'auto-gène...
le lag : incompréhensible.
les minutes qui augmente : script de menu modifié ? Ou script de base ?
les secondes qui ne bouge pas : tu as lancé l'interrupteur au moins ?

Posté par Newtiteuf le 22 Fév - 12:26 (2009)
Darkange quand j'active l'interrupteur exterieur j'ai un tres joli:


???????????????????????

qui apparait ...

Posté par Pαlвσlѕку le 22 Fév - 12:29 (2009)
Un script qui tourne en boucle. Bien bizarre...
Je vais tester, je vous tiens au courant.

Posté par Dark' le 22 Fév - 12:29 (2009)
Au purée... Je me disais aussi, ça marche chez moi, mais c'était trop beau.

Il apparait durant le jeu ? Ou au lancement ? Tu l'as activé comment ?

Posté par Newtiteuf le 22 Fév - 12:30 (2009)
J'ai essayé d'activer l'interrupteur via F9 et via évent mais ca bug dés que je l'active (au bout de 5 secondes)

Posté par Disccat le 22 Fév - 12:31 (2009)
C'est ce que je pense aussi, 2 script qui se battent pour les variables.

C'est quand j'ai activé l'interrupteur extérieur que mon jeu s'est mis à ralentir.

Les secondes je n'ai peut-être pas fait gaffe si il y avait un autre interrupteur (ça aurait été mieux si tout était expliqué au premier post, mais bon pas grave c'est moi qui suis bidon aussi).

PS: 2 "c" à Disccat XD

Posté par Dark' le 22 Fév - 12:32 (2009)
Nt :As-tu touché aux variables ?
Normalement on devrait pouvoir, mais au cas ou, j'ai garder des bonnes vieilles variables immenses.

Disccat : scuse ^^"

Posté par Newtiteuf le 22 Fév - 12:34 (2009)
Ben oui que j'ai touché au variables, sinon ca me déregle tous mon jeu ><"

Posté par Pαlвσlѕку le 22 Fév - 12:38 (2009)
Même bug que NT.
Un beau message "??????????????" au bout de 10 secondes après avoir activé l'interrupteur Extérieur.

Posté par Dark' le 22 Fév - 12:40 (2009)
Ok... Je comprends, ça, ça va, mais alors je ne vois pas du tout pourquoi ça bug. les variables ne sont pas sensé changer quoi que ce soit.

J'ai retester chez moi, tout baigne. Je ne comprends pas.

As-tu tester sur un projet PokemonS basique ?

EDIT : J'ai essayé sur le projet de mon jeu, et encore une fois, pas de souci.
Et pourtant, je n'avais pas activer l'interrupteur Frames, moi qui pensait que ça viendrait peut être de là :S

Posté par Newtiteuf le 22 Fév - 12:47 (2009)
Dark,  je crois que je vais abandonner l'utilisation de ton script !

Posté par Dark' le 22 Fév - 12:49 (2009)
Ca fait plaisir, au bout de 30 minute d'existence...

bah, tant que ça marche chez moi ^^

Posté par Empire1601 le 22 Fév - 13:02 (2009)
Pour le jour de la semaine, tu peux reprendre mon script si tu veux  Clin d'œil foireux
>> Rechercher

Posté par Pαlвσlѕку le 22 Fév - 13:07 (2009)
Code:
SecondeFrame = 1

Voilà le problème, ne pas replacer le 1 par 40, car sinon ça fait 40 secondes par frames, soit 40 * 40 = 1600 secondes en 1 secondes réel.
On comprend pourquoi ça bug xD
NT, ça devrait marcher maintenant. Par contre ça lag puisque cela fait 40 secondes pour une seconde réel. Le temps se déroule 40 fois plus vite.
Autre chose, si un mois fait 28 jours alors, 28 * 12 = 336 jours par an, donc il manque 29 jours. Donc il faut tout de suite inclure le nombre de jours par mois, pour éviter tout décalage dans le temps.

Posté par Dark' le 22 Fév - 13:25 (2009)
Non. Le nombre equivaut au nombre de frames pour une seconde. 40 = tant réel, 1 = 40 fois plus vite.

Posté par Pαlвσlѕку le 22 Fév - 19:16 (2009)
Bon déjà, j'ai réglé le problème avec les secondes :
Code:
while $game_variables[Seconde] < 60

Vous remplacez par :
Code:
if $game_variables[Seconde] < 60

Normalement avec ça, les secondes devraient s'écouler normalement.

Posté par Dark' le 23 Fév - 05:27 (2009)
C'est vrai que le While était stupide. Je l'avais utilisé en test pour autre chose, et n'avait pas changé par la suite en changeant la méthode.

Peut-être à l'origine du bug des "????????????????"

Je corrige sur le script, c'est vrai que ça marche.

Posté par Sphinx le 23 Fév - 09:11 (2009)
Clin d'œil foireux dans vos boucles, collez un Graphics.update, comme ca vous éviterez les bugs "????????" and co Clin d'œil foireux

Posté par Dark' le 23 Fév - 09:19 (2009)
Un graphics update dans chaque condition ?

Posté par Sphinx le 23 Fév - 09:24 (2009)
nop, dans les boucles qui posent ce pb Clin d'œil foireux

Posté par Pαlвσlѕку le 23 Fév - 11:21 (2009)
Sphinx, j'ai déjà penser au "Graphics.update" mais je me suis dis que si l'ordinateur en a besoin, ça veut dire que ça va laguer.

Posté par Sphinx le 23 Fév - 11:27 (2009)
^o^ possible, mais c'est un mal pour un bien =)


>> n'oubliez pas que si Graphics.update n'est pas lancé toutes les 10 secondes, le jeu ne laggera plus, il plantera inévitablement Clin d'œil foireux

Posté par Dark' le 23 Fév - 11:31 (2009)
Je ne comprends pas... A quoi sert ce Graphics.update ?

Et encore une fois, chez moi, meme sans Graphics.update, je peut jouer, utiliser des téléporte, faire des combats etc... Sans aucun problème !

Et tu me dis de mettre Graphics.update dans les boucle qui bug... D'abord, y a pas de boucle ^^, ensuite, on ne sait justement pas laquelle bug, le seul message est ????????????
Enfin, d'après ce que les autres ont dit, puisque chez moi, aucun problème..

Posté par Pαlвσlѕку le 23 Fév - 11:38 (2009)
Le message ????????????? indique qu'un script tourne en boucle (là, c'est le tient). Cependant, sans Graphics.update, le jeu plante au bout de 10 secondes mais avec le Graphics.update, le temps est illimité.
C'est la solution pour laisser plus de temps à l'ordinateur pour charger. C'est quoi la configuration de ton ordinateur ?

Posté par Dark' le 23 Fév - 11:51 (2009)
Oulà, ne me parles pas de configuration de l'ordinateur, jamais rien pigé à ça.
Je dois comprendre quoi par là ?

Ce que je sais : Mac Pro, Vista 32bits edition familiale qui tourne sur Bootcamp...

Posté par Pαlвσlѕку le 23 Fév - 11:54 (2009)
Oki, donc rien à voir avec ça, je me demande bien pourquoi ça marche pas chez nous. Tu l'as fais sur quel version de PSP ?

Posté par Dark' le 23 Fév - 12:05 (2009)
PSP 0.7, c'est dit dans le sous-titre, comme demandé par NT.

Faut voir avec Graphics.update. Tu as testé ?

Posté par Sphinx le 23 Fév - 12:11 (2009)
>> Clin d'œil foireux en fait, le plus "grave" ce n'est pas que le script boucle, mais juste que Graphics.update doit être appelé toutes les 10 secondes min (enfin 10 secondes, il plante ^o^ c'est donc avant qu'il faut l'appeler) Clin d'œil foireux

Posté par Dark' le 24 Fév - 04:10 (2009)
Je ne pige plus rien... Il n'y a pas une seule boucle dans ce script, et pourquoi devrait-il planté toute les 10 secondes ?


EDIT : j'ai mis les Graphics.update dans la partie Scene_Map à la fin du script. Pas de lag, mais le perso avance lentement.

==> Il suffit de créer un évent commun lancé par un interrupteur qui sera lui-même lancé par le script, et qui fait avancer le perso a vitesse "Rapide".

EDIT 2 : bon, lancé par la réussite relative du Graphics.update qui semble au moins changer quelque chose, puisqu'il fait réagir la vitesse du personnage... J'ai revu un peu le script. J'ai supprimer la gestion inutile des semaines, rajouté une variable contenant le nombre de jour dans un mois.

Donc, oui, désormais Janvier compte bien 31 jours, et Juin 30 (ce sont des exemples ^^ tous les autres sont programmés aussi.)

J'ai aussi rajouté un interrupteur servant à lancé le script, par souci technique. (Chouette, ça permet de geler le temps ^^)

Donc, MAJ du premier post avec ce nouveau script, j'espère qu'il marchera cette fois.

Posté par Elric le 18 Déc - 16:04 (2010)
Je suis complètement bouché moi... comment faire pour que l'heure avance svp ?