Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

229 connectés actuellement

30732019 visiteurs
depuis l'ouverture

1997 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Zarok

Guelnika & E-magination

Tashiroworld

ConsoleFun

RPG Maker VX

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

Aller à la page 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

Reprise du message précédent:

Nina888 - posté le 02/02/2018 à 19:14:46 (117 messages postés)

❤ 0

Voilà j'ai le plugin d'HimeWorks : Party manager ...
Le plugin propose d'échanger des objets, armes, armures ou la tune d'une équipe A à une équipe B ...
Il indique qu'il faut mettre le maximum de nombre d'objets d'un certain type (comme une potion) pour mettre le maximum possédé par l'équipe précédente ...
Donc je met en échange 99 potions (alors que j'ai pour l'équipe, dans cet exemple, 79 potions et donc normalement, je devrait trouver 79 potions dans mon inventaire) .
Je fait la manip et le test et je me retrouve avec 99 potions au lieu de 79.

Quelqu'un pourrait me proposer une alternative ?

Le dit plugin a été corrigé alors le système fonctionne désormais ...
Par contre il faudrait des suites à ce plugin pour gérer les ennemis qui touchent les équipes qui sont en stand-by et aussi une manière de gérer des ennemis qui touche en marchant un autre event ...


Suite du sujet:

Orbital - posté le 04/05/2018 à 09:26:37 (194 messages postés)

❤ 0

Support : RPG Maker VX Ace

Question 1 :
Bonjour à tous,

Est-ce qu'il est possible de jouer avec la propriété de resize de la fonction draw_text ?
Je voudrais modifier la compression de texte qui est de 60% de base pour cette fonction. Est-ce que ça serait possible de la passer à 80% ? J'utilise une police mais on ne voit rien avec le resize auto.

Question 2 :
De manière général, comment marche le resize ?
J'ai changé la police pour utiliser Century Gothic et j'ai passé les propriétés outline et shadow à 0 :

Portion de code : Tout sélectionner

1
2
3
4
5
6
Font.default_name = ["Century Gothic", "Verdana", "Arial", "Courier New"]
Font.default_size = 18
Font.default_bold = false
Font.default_outline = false
Font.default_italic = false
Font.default_shadow = false



image
Police de base à gauche, century gothic à droite. Resize à voir en bas à droite avec le nom de map.
En faisant ça le resize ne marche plus très bien. Est-ce que c'est parce que Century Gothic est plus large de manière général ? RPG Maker ne s'adapte pas ?

Edit :
J'ai changé les réglages avec une taille à 19 et le resize marche correctement je ne sais pas pourquoi. Et si je joue avec les propriétés outline ou shadow ça change le comportement du conteneur et du resize auto.

Question 3 :
C'est à peu près tout même si j'aurai d'autres petites questions sur les polices, les fenêtres, leur taille et comment on gère le draw_text. Par exemple, j'ai utilisé des scripts et le resize semble comme désactivé. Exemple avec la police de base de VXA mais sans les propriétés outline et shadow :
image

Edit :
J'suis con. En fait ça vient de la fonction draw_item_name de la classe Window_Base qui force la largeur à 172.
Du coup dans la fonction draw_item (qui utilise draw_item_name) de la classe Window_ItemList, j'ai réécris en dur la définition de draw_item_name où je rends dynamique la largeur du texte :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 4
    return unless item
    draw_icon(item.icon_index, rect.x, rect.y, enable?(item))
    change_color(normal_color, enable?(item))
    draw_text(rect.x + 24, rect.y, self.width / col_max - 75, line_height, item.name)
    draw_item_number(rect, item)
    end
  end


La valeur 75 correspond environ, sur une colonne, à la largeur de pixel qu'occupe les marges, l’icône et le nombre d'objets.


Merci !

Final Fantasy Fury


Orbital - posté le 03/06/2018 à 10:54:16 (194 messages postés)

❤ 0

Support : RPG Maker VX Ace

Question 1 :
Bonjour à tous,

Je voulais savoir s'il était possible d'accéder et de modifier des valeurs de "variables" présentes dans un module (je ne sais pas comment ça s'appelle).

Voici ce que je voudrais modifier, mais le faire in-game par un appel de script en event :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module Nova
  module Encyclopedia
 
    Topics = {
                "Shan'qa" => {
                                  :switch_id => 0,
                                  :category => :Races,
                                  :info => "Les Shan’qas sont des bipèdes à la tête et\naux pattes de loup. [blablabla]",
                                  :image? => false,
                                  :folder => 'Graphics/Encyclopedia/Topics/',
                                  :image_name => 'Oracles',
                                  :icon? => false,
                                  :icon_index => 0,
                }
    }
 
  end
end



Je souhaite accéder à :info et y ajouter du texte, ou au pire le changer complètement. Voyez ça comme la mise à jour du codex qui sera à la disposition du joueur à partir du menu principal.

J'aimerai écrire un truc du genre :

Portion de code : Tout sélectionner

1
Nova::Encyclopedia::Topics[22][2] = "test"


("Shan'qa" est le 23ème item de la liste, :info est le 3ème item, du coup je suppose que ça s'écrit Topics[22][2] dans les scripts)
Mais je ne connais pas la syntaxe. Je ne sais même pas si c'est possible en fait.

Merci ! =)

Final Fantasy Fury


xvw - posté le 03/06/2018 à 12:40:53 (736 messages postés) -

❤ 0

yo

Nova::Encyclopedia::Topics["Shan'qa"][:info] = "test"

https://xvw.lol


Orbital - posté le 04/06/2018 à 05:20:09 (194 messages postés)

❤ 0

Ah !
C'était si simple. Donc il ne faut pas utiliser le système d'index mais directement le nom du champ (si on peut appeler ça comme ça).

Merci beaucoup ! :sourire3

Final Fantasy Fury


HuLijin - posté le 04/06/2018 à 08:57:52 (1004 messages postés)

❤ 0

Yeoun, mage-archère-louve

Ça ressemble à des dictionnaires. Je retrouve plus le mot-clé anglais (et rechercher Ruby dictionnaire c'est pas une bonne idée...)

Mais si tu veux te renseigner un peu plus sur ce truc, ça doit être un hash.

M.V.


NikoS - posté le 21/07/2018 à 14:20:45 (5 messages postés)

❤ 0

Support : RMXP

Question 1 :
J'ai un petit problème qui me suit depuis belle lurettes :/
Est t-il possible de forcer une sauvegarde du joueur depuis un évenement avec un appel de script par exemple. J'aimerais aussi savoir si l'on peut créer un système se sauvegarde automatique quand on ferme le jeu. (PS : Je n'ai besoin que d'un seul slot de sauvegarde, le un.) :D


Terzarok - posté le 29/08/2018 à 19:59:12 (345 messages postés)

❤ 0

Bonjour bonjour :D

Petite question et gros problème sur RMXP (et ouais, je fais du 2-en-1 !).
J'ai depuis un long moment un problème de sauvegarde sur mon projet (projet que je ne peux donc plus proposer sur le forum, étant donné l'impossibilité de sauvegarder sans avoir un message d'erreur).

Le message d'erreur me dit que "Marshal.dump" n'existe pas , alors que précédemment dans le code il ne pose pas de problème.

Je vous mets dans le spoiler le script Scene_Save avec la ligne qui bloque (tout en bas).

Merci d'avance pour votre aide sauvetage :p

Spoiler (cliquez pour afficher)



Il y a des gens qui passeraient des heures à expliquer qu'ils sont débordés. Moi sur Deviantart


Cantarelle - posté le 29/08/2018 à 21:17:23 (1530 messages postés)

❤ 0

Makeuse tarée et Agent du FBI...

Première réponse qui me vient en tête : ce n'est pas scene_save qui fout la merde. Je viens de comparer le tien et celui de base d'un projet RMXP (et un conseil, il faut toujours éviter de modifier les scripts de base. On en fait une copie dessous, entre debug et main. RM est assez grand pour savoir qu'il faut interpréter le dernier avec le même nom qu'il trouve)

Je peux même te donner celui de base :

Portion de code : Tout sélectionner

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
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
#  セーブ画面の処理を行うクラスです。
#==============================================================================
 
class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super("Voulez vous sauvegarder la partie ?")
  end
  #--------------------------------------------------------------------------
  # ● 決定時の処理
  #--------------------------------------------------------------------------
  def on_decision(filename)
    # セーブ SE を演奏
    $game_system.se_play($data_system.save_se)
    # セーブデータの書き込み
    file = File.open(filename, "wb")
    write_save_data(file)
    file.close
    # イベントから呼び出されている場合
    if $game_temp.save_calling
      # セーブ呼び出しフラグをクリア
      $game_temp.save_calling = false
      # マップ画面に切り替え
      $scene = Scene_Map.new
      return
    end
    # メニュー画面に切り替え
    $scene = Scene_Menu.new(4)
  end
  #--------------------------------------------------------------------------
  # ● キャンセル時の処理
  #--------------------------------------------------------------------------
  def on_cancel
    # キャンセル SE を演奏
    $game_system.se_play($data_system.cancel_se)
    # イベントから呼び出されている場合
    if $game_temp.save_calling
      # セーブ呼び出しフラグをクリア
      $game_temp.save_calling = false
      # マップ画面に切り替え
      $scene = Scene_Map.new
      return
    end
    # メニュー画面に切り替え
    $scene = Scene_Menu.new(4)
  end
  #--------------------------------------------------------------------------
  # ● セーブデータの書き込み
  #     file : 書き込み用ファイルオブジェクト (オープン済み)
  #--------------------------------------------------------------------------
  def write_save_data(file)
    # セーブファイル描画用のキャラクターデータを作成
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    # セーブファイル描画用のキャラクターデータを書き込む
    Marshal.dump(characters, file)
    # プレイ時間計測用のフレームカウントを書き込む
    Marshal.dump(Graphics.frame_count, file)
    # セーブ回数を 1 増やす
    $game_system.save_count += 1
    # マジックナンバーを保存する
    # (エディタで保存するたびにランダムな値に書き換えられる)
    $game_system.magic_number = $data_system.magic_number
    # 各種ゲームオブジェクトを書き込む
    Marshal.dump($game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
  end
end



Mis à part les commentaires en Japonais, c'est la même chose.
Le soucis que je pense plus probable, c'est une incompatibilité entre un de tes scripts et le script de base. Une incompatibilité qui touche $game_system.

Et $game_system, c'est en gros la variable qui va faire ce que le moteur RMXP va faire directement dans les events. Par exemple :
$game_system.bgm_play("nom_de_la_piste") va jouer la musique BGM.
$game_system.save_disabled("true/false") va dire si le menu est accessible ou pas

etc.

Donc, soit c'est une incompatibilité entre deux (ou plus) scripts customs, soit c'est lors d'une sauvegarde de ton projet, il y a eu une coupure de courant (même une micro)... Et là, le projet est corrompu qu'il faut le refaire.

Makeuse à la crosse de street-hockey. Livestream.


Terzarok - posté le 29/08/2018 à 22:40:13 (345 messages postés)

❤ 0

Merci pour ta réponse :)

J'ai essayé avec ton script en jap' mais ça ne change pas l'erreur.
Du coup je vais virer tous mes scripts custom pour voir si ça résout le souci :)
Je ne touchais pas aux scripts de base (à part un ou deux détails pour changer la police d'écriture, par exemple). Tous mes scripts custom sont bien rangés en-dessous de "Materials", là où c'est prévu pour être ajoutés ^^

Si le projet est corrompu j'arrête tout, j'ai pas le courage de tout refaire mes 432 cartes et je-sais-pas-combien d'events depuis zéro x'D

Il y a des gens qui passeraient des heures à expliquer qu'ils sont débordés. Moi sur Deviantart


Orbital - posté le 30/08/2018 à 07:17:28 (194 messages postés)

❤ 0

Salut !

Un conseil si tu modifies les script de base, fais le dans un script custom. Perso je modifie plein de trucs sur les scripts de base et j'ai tout bourré dans un script "Modif".
J'applique ce procédé même quand je décide de faire des tests sur la valeur des critiques que je veux.

Exemple :

Portion de code : Tout sélectionner

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
#==============================================================================
# ** Game_Battler
#==============================================================================
 
class Game_Battler < Game_BattlerBase
  
  #--------------------------------------------------------------------------
  # overwrite method: Apply Critical
  #--------------------------------------------------------------------------
  def apply_critical(damage)
    damage * 2
  end
  
end # Game_Battler
 
#==============================================================================
# ** Window_ItemList
#==============================================================================
 
class Window_ItemList < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: Draw Number of Items
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    draw_text(rect, sprintf("x%2d", $game_party.item_number(item)), 2)
  end
  
end # Window_ItemList
 
#==============================================================================
# ** Window_MapName
#==============================================================================
 
class Window_MapName < Window_Base
  
  #--------------------------------------------------------------------------
  # overwrite method: Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 280
  end
  
end # Window_MapName



Final Fantasy Fury


kingdommangas - posté le 02/09/2018 à 17:04:14 (409 messages postés)

❤ 0

Youtubeur/Scenariste

Si le fichier est corrompu tu peut quand même récupérer des truc, bon je suis pas sure pour vx ace mais pour mv, dans le fichier data il y a map1 map2 [...] map42, si tu veux pas perdre tes map tu peux les récup d'un projet à l'autre avec mapInfo sinon ca ne marchera pas.

Je n'affirmerai rien pour les autres partie mais je pense que tu peux au moins récup tes maps et bdd (skill, animation, hero, etc...) :grossourire

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


Terzarok - posté le 03/09/2018 à 19:31:24 (345 messages postés)

❤ 0

kingdommangas a dit:


Si le fichier est corrompu tu peut quand même récupérer des truc, bon je suis pas sure pour vx ace mais pour mv, dans le fichier data il y a map1 map2 [...] map42, si tu veux pas perdre tes map tu peux les récup d'un projet à l'autre avec mapInfo sinon ca ne marchera pas.

Je n'affirmerai rien pour les autres partie mais je pense que tu peux au moins récup tes maps et bdd (skill, animation, hero, etc...) :grossourire

En tant que stupide de base, je me suis ... amusé à copier/coller chaque carte, compétence, objet, arme, armure un par un avec deux RMXP ouverts côte à côte. ALT TAB et CTRL C et V ont beaucoup servi x')
Et la cerise sur le MacDo, c'est que je me suis retapé tous mes events de TP pour mettre à jour les numéros de carte xD

Mais mon problème de sauvegarde est résolu (pour le moment ^^).

Il y a des gens qui passeraient des heures à expliquer qu'ils sont débordés. Moi sur Deviantart


1mag0 - posté le 04/01/2019 à 22:47:52 (794 messages postés)

❤ 0

Dessinateur amateur

*enlève la poussière sur le topic*

Bon... Pour la version MV. Il existe le plugin de SumRndmDde qui permet d’exécuter l'arrière plan de l'écran titre sur une carte du jeu.

Je voudrais savoir si il existe un plugin qui complète ou remplace celui-ci au niveau de la boite de saisie (Lancer - Charger - Options - etc). Car je voudrais faire mon écran titre sur une carte du jeu et faire moi même ma boite de saisie via des évènements.

Exemple de commande pour remplacer la boite de dialogue en spoiler.

Spoiler (cliquez pour afficher)



Ma galerie / Les Alt-code / Nouveau screen dans ma galerie! (mars 2019 réédit)


kingdommangas - posté le 05/01/2019 à 08:30:39 (409 messages postés)

❤ 0

Youtubeur/Scenariste

Je dirais d'aller faire un tour juste ici :sourire2

Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube


1mag0 - posté le 06/01/2019 à 21:38:11 (794 messages postés)

❤ 0

Dessinateur amateur

Merci mais le même topic existe déjà sur Oniro. Il explique comment créer une boite de sélection, pas comment supprimer celui de l'écran titre :'(.

Edit: trouver (cliquer en spoiler pour afficher le script)

Spoiler (cliquez pour afficher)



Fallait pas ajouter quelque ligne au script, il fallait en enlever ... Je vais enfin pouvoir faire mes curseurs, mes crédits et l'option quitter sans rajouter 15 scripts interdépendant à moitié inutile. Je vais peut être enfin finir cette écran titre un jour!

Ma galerie / Les Alt-code / Nouveau screen dans ma galerie! (mars 2019 réédit)


Degenpy - posté le 11/01/2019 à 22:58:28 (115 messages postés)

❤ 0

Jeune maker qui essaie des trucs.

Support : RM XP
Bonjour à tous ! :sourire2

J'ai un problème vraiment con qui me prend la tête dernièrement. :feu
Je suis en train de faire un script pour un système de journal et j'ai besoin de rentrer beaucoup de texte d'un coup pour la description des personnages.
Ma question est la suivante : comment je peux revenir à la ligne ? Car pour l’instant le texte semble s’étirer vers l’infini et au-delà des limites de l’écran.
Voici un screenshot du code en action :

image

J'ai essayé d'utiliser le fameux \n dans le string mais il ne marche pas et affiche une sorte de point d'interrogation à la place. Je voudrais simplement pouvoir aller à la ligne afin de remplir la fenêtre normalement.
Voici le code de la fenêtre en question :

Portion de code : Tout sélectionner

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
#==============================================================================
# ** Window_JournalText
#------------------------------------------------------------------------------
#  This window is used to display the chosen item on the journal screen.
#==============================================================================
 
class Window_JournalText < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(342, 64, 512, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
  end
  #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.color = normal_color
   #cx = contents.text_size(@name).width
   self.contents.font.size = 22
   self.contents.draw_text(0 , 0, 512, 32, @name, 1)
   self.contents.draw_text(0 , 48, 512, 32, @text, 0)
   #self.contents.draw_text(32 , 32, 32, 32, $game_temp.journal_list.size.to_s, 0)
   #self.contents.draw_text(32 , 64, 32, 32, $game_party.journal_items.size.to_s, 0) 
 end
#----------------------------------------------------------------------
 def set_content(type, name, text, giver)
   @type = type
   @name = name
   @text = text
   @giver = giver
   refresh
 end
 
end #of Window_JournalText



Le @text dans le code renvoi à ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
item_text = "Dernier enfant d'une famille de 8 enfants, Jean-Roux est aussi le seul à être né avec cette couleur de cheveux.
Rejeté et humilié par sa famille, Jean-Roux décida de prendre son courage à deux mains et de partir explorer le monde en quête
d'une civilisation qui accepterait sa différence.
Impitoyable et déterminé, il n'hésitera pas à anéantir tout ce qui se dressera en travers de sa route."
 



Vous avez une idée de comment je pourrais faire pour afficher cette description épique correctement ?

Merci d'avance ! :D

Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir.


NanakyTim - posté le 12/01/2019 à 01:16:55 (23817 messages postés)

❤ 0

Ça doit venir de là :

Portion de code : Tout sélectionner

1
self.contents.draw_text(0 , 48, 512, 32, @text, 0)



Le dernier chiffre "32" doit correspondre à la hauteur de ta fenêtre invisible de texte non ? Si tu mets 128 ça te fait plusieurs lignes ?

Si c'est bien ça, réduire "512" serait aussi une bonne idée.

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


Degenpy - posté le 12/01/2019 à 14:36:10 (115 messages postés)

❤ 0

Jeune maker qui essaie des trucs.

Merci pour ta réponse !

Alors pour voir j'ai essayé :

Portion de code : Tout sélectionner

1
self.contents.draw_text(0 , 48, 400, 192, @text, 0)



Ça déplace simplement le texte vers le bas (je pense que RM inscrit le texte au milieu de la hauteur de fenêtre que tu lui donne, ici à 96 pixel) mais le jeu refuse toujours de passer des lignes malgré les \n. Il affiche des points interrogations encadré à la place :

image

Je ne sais pas trop quoi faire, surtout qu'il est écrit dans l'aide de RMXP que les \n permettent de revenir à la ligne. j'ai aussi essayé dans un projet vierge mais le résultat est identique... :feu

Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir.


Le Kno - posté le 12/01/2019 à 16:22:07 (4274 messages postés) - admin

❤ 0

IV L'Empereur

La fonction draw_text gère pas les retours à la ligne en fait, il faut le faire a la mano. Un truc dans ce goût-là:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
y = 0
while ((c = text.slice!(/./m)) != nil)
  if c == "\n"
    y += 1
  else
    self.contents.draw_text(0, 48 + 32 * y, 512, 32, c)
  end
end



Je suis venu ici pour corriger des bugs et botter des culs, et chez moi ça marche.


Degenpy - posté le 13/01/2019 à 23:09:44 (115 messages postés)

❤ 0

Jeune maker qui essaie des trucs.

Merci beaucoup le Kno

Alors en utilisant ce code :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
 
   y = 0
   while ((c = @text.slice!(/./m)) != nil)
     if c == "\n"
       y += 1
     else
       self.contents.draw_text(0, 32 + 32 * y, 512, 32, c)
     end
   end
 



J'arrive à ce résultat :

image


Le script passe effectivement des lignes seulement il inscrit toutes les lettres au même endroit. Je suis désolé de ne pas pouvoir avancer seul mais je ne comprends pas grand-chose aux caractères du type : (/./m)

Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir.


Le Kno - posté le 14/01/2019 à 02:32:56 (4274 messages postés) - admin

❤ 0

IV L'Empereur

Moi non plus je comprends pas tout, c'est pour ça que je propose des trucs qui marchent pas :tirlalangue2

C'est qu'on appelle une regex (regular expression). Ça permet de décrire des motifs pour une chaîne caractère, et la fonction slice permet de découper la chaîne suivant ces motifs. Je pensais que /./m permettait de découper ligne par ligne mais en fait ça découpe caractère par caractère. Du coup ça affiche des lignes de un caratères en revenant au début de la ligne chaque fois.

Comme ça, ça devrait mieux marcher:

Portion de code : Tout sélectionner

1
2
3
4
5
y = 0
while ((c = @text.slice!(/^.*.$/m)) != nil)
    self.contents.draw_text(0, 48 + 32 * y, 512, 32, c)
    y++
end



Je suis venu ici pour corriger des bugs et botter des culs, et chez moi ça marche.


Degenpy - posté le 14/01/2019 à 15:21:36 (115 messages postés)

❤ 0

Jeune maker qui essaie des trucs.

Merci pour tes explications, je vais me renseigner là-dessus ! :sourire2

Je viens de tester ce code est le jeu plante au démarrage en m'indiquant une syntaxt error au niveau du "end" après la ligne Y++.
J'ai bien vérifié qu'il ne manquait pas de "end" quelque part de mon côté, ou si j'en avait mis un de trop mais tout semble bon là-dessus.
J'ai essayé en remplaçant Y++ par Y += 1 pour incrémenter, le jeu boot mais le texte ne revient pas à la ligne. :sriden

Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir.


François Berhn - posté le 14/01/2019 à 16:14:41 (5402 messages postés)

❤ 0

Tonton Hellper

Je suis qu'à moitié sûr d'avoir saisi le problème mais yaurait pas moyen de faire simplement comme ceci ?

Portion de code : Tout sélectionner

1
2
3
c.lines.each_with_index do |line, y|
  self.contents.draw_text(0, 48 + 32 * y, 512, 32, line)
end



La liste des raisons pour lesquelles le making se meurt, la cinquième va vous étoner | Des projets abandonnés, source d'inspiration :D | Mes jeux


Le Kno - posté le 14/01/2019 à 17:36:52 (4274 messages postés) - admin

❤ 0

IV L'Empereur

En fait, si :p
C'est @text.lines, par contre, mais sinon ça devrait marcher. Je sais pas si ça résoudra le problème présent, par contre.

Je suis venu ici pour corriger des bugs et botter des culs, et chez moi ça marche.


Degenpy - posté le 14/01/2019 à 21:31:08 (115 messages postés)

❤ 0

Jeune maker qui essaie des trucs.

Alors avec le code :

Portion de code : Tout sélectionner

1
2
3
4
5
 
   @text.lines.each_with_index do |line, y|
     self.contents.draw_text(0, 48 + 32 * y, 512, 32, line)
   end
 



Le jeu me dit que la methode lines est pas défini. Elle n'est peut-être pas présente sur RMXP ? Ou alors je dois la créer moi-même ?

En fait je voudrais pouvoir afficher plusieurs lignes de textes à la suite. C'est pour mettre des description de quêtes, de personnage ou d'ennemi par exemple.

Pour l'instant l'intégralité de mon texte est stocké dans la variable @text, après si vraiment ce n'est pas possible de revenir à la ligne je peux créer plein de variables @text1, @text2, etc.. contenant l'équivalent d'une ligne de texte et faire un code dans ce genre :

Portion de code : Tout sélectionner

1
2
3
4
5
6
 
self.contents.draw_text(0 , 32, 512, 32, @text1, 1)
self.contents.draw_text(0 , 64, 512, 32, @text2, 1)
self.contents.draw_text(0 , 96, 512, 32, @text3, 1)
etc....
 


Jusqu'à tout remplir mais c'est un peu dégueu...

Clique ici pour découvrir Ah'ra Project, élu meilleur jeu 2027 selon l'UFC que choisir.

Aller à la page 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

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers