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)
| | 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)
| | 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 :
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 |
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 :
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 :
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)
| | 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 :
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 :
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)
- | yo | Nova::Encyclopedia::Topics["Shan'qa"][:info] = "test"
|
https://xvw.lol |
Orbital -
posté le 04/06/2018 à 05:20:09 (194 messages postés)
| | 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 !
|
Final Fantasy Fury |
HuLijin -
posté le 04/06/2018 à 08:57:52 (1004 messages postés)
| 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)
| | 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.)
|
Terzarok -
posté le 29/08/2018 à 19:59:12 (345 messages postés)
| | Bonjour bonjour
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
Spoiler (cliquez pour afficher)
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
#------------------------------------------------------------------------------
# This class performs save screen processing.
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super("Dans quel bloc sauvegarder la partie ?")
end
#--------------------------------------------------------------------------
# * Decision Processing
#--------------------------------------------------------------------------
def on_decision(filename)
# Play save SE
$game_system.se_play($data_system.save_se)
# Write save data
file = File.open(filename, "wb")
write_save_data(file)
file.close
# If called from event
if $game_temp.save_calling
# Clear save call flag
$game_temp.save_calling = false
# Switch to map screen
$scene = Scene_Map.new
return
end
# Switch to menu screen
$scene = Scene_Menu.new(4)
end
#--------------------------------------------------------------------------
# * Cancel Processing
#--------------------------------------------------------------------------
def on_cancel
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# If called from event
if $game_temp.save_calling
# Clear save call flag
$game_temp.save_calling = false
# Switch to map screen
$scene = Scene_Map.new
return
end
# Switch to menu screen
$scene = Scene_Menu.new(4)
end
#--------------------------------------------------------------------------
# * Write Save Data
# file : write file object (opened)
#--------------------------------------------------------------------------
def write_save_data(file)
# Make character data for drawing save file
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
# Write character data for drawing save file
Marshal.dump(characters, file)
# Wrire frame count for measuring play time
Marshal.dump(Graphics.frame_count, file)
# Increase save count by 1
$game_system.save_count += 1
# Save magic number
# (A random value will be written each time saving with editor)
$game_system.magic_number = $data_system.magic_number
# Write each type of game object
Marshal.dump($game_system, file) #------------------------------------------ C'EST LA QUE CA COINCE ---------------
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 |
|
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)
| 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 :
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)
| | 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)
| | 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 :
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)
| 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...)
|
Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube |
Terzarok -
posté le 03/09/2018 à 19:31:24 (345 messages postés)
| | 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...)
|
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)
| 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) Charger:
Script: SceneManager.push(Scene_Load);
Options:
Script: SceneManager.push(Scene_Options);
Quitter:
Script: close ();
|
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)
| Youtubeur/Scenariste | Je dirais d'aller faire un tour juste ici
|
Mes jeux: Astyria~Ouroboros~Chaine Youtube: RM Test| Inscription Chaine Youtube |
1mag0 -
posté le 06/01/2019 à 21:38:11 (794 messages postés)
| 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)
Scene_Boot.prototype.start = function() {
Scene_Base.prototype.start.call(this);
SoundManager.preloadImportantSounds();
if (DataManager.isBattleTest()) {
DataManager.setupBattleTest();
SceneManager.goto(Scene_Battle);
} else {
this.checkPlayerLocation();
DataManager.setupNewGame();
SceneManager.goto(Scene_Map);
}
this.updateDocumentTitle();
};
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)
| Jeune maker qui essaie des trucs. | Support : RM XP
Bonjour à tous !
J'ai un problème vraiment con qui me prend la tête dernièrement.
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 :
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 :
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 :
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 !
|
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)
| | Ça doit venir de là :
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)
| Jeune maker qui essaie des trucs. | Merci pour ta réponse !
Alors pour voir j'ai essayé :
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 :
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...
|
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)
- | 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à:
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)
| Jeune maker qui essaie des trucs. | Merci beaucoup le Kno
Alors en utilisant ce code :
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 :
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)
- | IV L'Empereur | Moi non plus je comprends pas tout, c'est pour ça que je propose des trucs qui marchent pas
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:
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)
| Jeune maker qui essaie des trucs. | Merci pour tes explications, je vais me renseigner là-dessus !
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.
|
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)
| Tonton Hellper | Je suis qu'à moitié sûr d'avoir saisi le problème mais yaurait pas moyen de faire simplement comme ceci ?
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)
- | IV L'Empereur | En fait, si
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)
| Jeune maker qui essaie des trucs. | Alors avec le code :
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 :
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 73Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!
|