Sujet n°11044
Posté par
Renkys le
27 Fév - 00:04 (2012)Titre :
[Résolu]Script Pokemon_MenuBonsoir,Je suis actuellement en train de me créer un menu Pokemon.Je viens de finir mes images, je suis donc en train de modifier le script pour l'adapter.Seulement je but sur un problème.Comment faire pour que les curseurs ne défilent que vers le bas et non de gauche à droite ? (car mon menu n'est que sur une seul colonne)De plus comment lui faire comprendre que si je suis sur la première ligne il dois m'ouvrir le pokedex, si je suis sur la deuxième, la carte dresseur etcCela fait un moment que je cherche j'ai essayé beaucoup de chose, mais rien n'y fait, alors j'ai besoin de vous PS: Je ne suis pas du tout scripteur, je me suis tout de même penché sur quelques scripts pour essayer de les comprendre, j'en profite donc pour dire que je suis à la recherche d'un site ou forum ou l'on peu apprendre le ruby.Merci d'avance.
Posté par
IamTheAdic le
27 Fév - 13:04 (2012)Bonjour,
Donne moi ton script, et je te dirais à quoi correspond les parties que tu souhaites enlever.
Posté par
Renkys le
1 Mar - 09:21 (2012)Bonsoir,et bien il s'agit du script pokemon_menu qui se trouve dans psp ds 0.4, le voici:#==============================================================================
# ■ Pokemon_Menu
# Pokemon Script Project - Krosk
# 18/07/07
# 22/02/10 - Palbolsky
#-----------------------------------------------------------------------------
# Scène modifiable
#-----------------------------------------------------------------------------
# Menu principal accessible par échap
#-----------------------------------------------------------------------------
module POKEMON_S
class Pokemon_Menu < Window_Base
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
super(0,0,640,480)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.z = 11
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def main
@spriteset = Spriteset_Map.new
@interface = Interface_Echap.new
if POKEMON_S::VIEWER_TEAM
@pkmn_team = Pokemon_Equipe.new
end
s1 = "POKéDEX"
s3 = "POKéMON"
s5 = "SAC"
s7 = ""
s2 = Player.name
s4 = "SAUVER"
s6 = "OPTIONS"
s8 = "QUITTER"
@command_window = Window_Command.new(80, , $fontsizebig, 2, 14)
@command_window.index = @menu_index
@command_window.x = 480 - 169 - 123 + 200
@command_window.y = 28 - 20
@command_window.z = 10000
@command_window.visible = false
@selecteur = Sprite.new
@selecteur.z = 200
if $color_menu == 1 or $color_menu == nil # Vert
@string = "_rouge"
elsif $color_menu == 0 # Bleu
@string = "_bleu"
elsif $color_menu == 2 # Rouge
@string = "_bleu"
end
@selecteur.bitmap = RPG::Cache.picture("Menu Echap/selector_menu" + @string)
if @command_window.index == 0
@selecteur.x = 219
@selecteur.y = 234
elsif @command_window.index == 2
@selecteur.x = 37
@selecteur.y = 289
elsif @command_window.index == 4
@selecteur.x = 37
@selecteur.y = 329
elsif @command_window.index == 6
@selecteur.x = 37
@selecteur.y = 369
end
if @command_window.index == 1
@selecteur.x = 117
@selecteur.y = 249
elsif @command_window.index == 3
@selecteur.x = 117
@selecteur.y = 289
elsif @command_window.index == 5
@selecteur.x = 117
@selecteur.y = 329
end
if $pokemon_party.size == 0
# Enlève accès Equipe
@command_window.disable_item(2)
end
if not($data_pokedex[0])
# Enlève accès Pokédex si non possédé
@command_window.disable_item(0)
end
if $game_system.save_disabled
@command_window.disable_item(5)
end
@command_window.disable_item(5)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@spriteset.dispose
@selecteur.dispose
@interface.dispose
@pkmn_team.dispose if not @pkmn_team.nil?
Graphics.freeze
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def update
if @command_window.index == 0
@selecteur.x = 219
@selecteur.y = 234
elsif @command_window.index == 2
@selecteur.x = 37
@selecteur.y = 289
elsif @command_window.index == 4
@selecteur.x = 37
@selecteur.y = 329
elsif @command_window.index == 6
@selecteur.x = 37
@selecteur.y = 369
elsif @command_window.index == 1
@selecteur.x = 117
@selecteur.y = 249
elsif @command_window.index == 3
@selecteur.x = 117
@selecteur.y = 289
elsif @command_window.index == 5
@selecteur.x = 117
@selecteur.y = 329
end
# ウィンドウを更新
@command_window.update
@spriteset.update
@selecteur.update
@interface.update
# コマンドウィンドウがアクティブの場合: update_command を呼ぶ
if @command_window.active
update_command
return
end
end
def dispose
super
end
#--------------------------------------------------------------------------
# ● フレーム更新 (コマンドウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_command
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# マップ画面に切り替え
$scene = Scene_Map.new
self.contents.clear
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
if $game_party.actors.size == 0 and @command_window.index < 4
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# コマンドウィンドウのカーソル位置で分岐
case @command_window.index
when 0 # Pokédex
if not($data_pokedex[0])
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Pokemon_Pokedex.new
self.contents.clear
when 2 # Menu
if $pokemon_party.size == 0
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Pokemon_Party_Menu.new
when 4 # Sac
$game_system.se_play($data_system.decision_se)
$scene = Pokemon_Item_Bag.new
when 6 # Pokématos
if $game_switches[9] == false
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Pokematos.new
when 1 # Carte dresseur
$game_system.se_play($data_system.decision_se)
$game_temp.common_event_id = 19
$scene = Scene_Map.new
when 3 # Sauvegarde
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Pokemon_Save.new
self.contents.clear
when 5 # OPTIONS
$game_system.se_play($data_system.decision_se)
$scene = OPTIONS.new
end
return
end
end
end
end
Ps: Je suis dsl, lorsque je veux veux l'afficher en "code" cela bug.
Merci de ton aide.
Edit: Personne ne peut m'aider ?
Edit2: Toujours personnes :x ?
Posté par
Mengenku le
1 Mar - 10:17 (2012)desoler moi je ne peut pas t aidai
Posté par
Eurons くさ le
1 Mar - 19:04 (2012)Pourquoi poste tu alors?
Posté par
Renkys le
1 Mar - 23:59 (2012)J'ai vu dans quelques projets, des menus entièrement custom, c'est bien qu'il y en a qui savent comment faire ^^.
Je ne veux pas qu'on me le script, juste qu'on me dise comment faire pour que le curseur ne défile que vers le bas et non de gauche à droite.
Car j'ai fini de tout configurer sauf ça.
En effet quand j'arrive sur la troisième icone, je suis obligé de cliquer sur la flèche de droite pour aller sur les autres ^^.
Merci d'avance.
Ps: si besoin est, passez par ma galerie, il y a mon menu dedans, il n'est pas encore "définitif" je n'ai pas de coup de coeur, en revanche le placement des icônes lui l'est.
Donc si sa peu vous aider, merci encore.
Posté par
IamTheAdic le
2 Mar - 02:19 (2012)En y réfléchissant, même si je t'explique ce que tu veux savoir, tu ne pourras pas modifier à ton aise.
Si tu souhaites faire ce genre de manipulation, il faudra apprendre le RGSS
Posté par
Renkys le
2 Mar - 10:47 (2012)Peu tu me dire quel ligne je dois regarder, je vais tout de même essayer.
J'aimerais essayer au moins avant de demander à ce qu'on me le fasse.
Merci d'avance.
Posté par
Nuri Yuri le
2 Mar - 11:43 (2012)Si t'es pas capable de comprendre un script tout seul n'espère pas qu'avec les positions de ligne tu vas mieux comprendre.
Posté par
Renkys le
2 Mar - 22:20 (2012) Nagato Yuki a écrit: |
Si t'es pas capable de comprendre un script tout seul n'espère pas qu'avec les positions de ligne tu vas mieux comprendre.
|
Faux, j'ai réussis à faire ce que je voulais, il ne me reste qu'un seul problème.Par exemple, lorsque je clique sur le sac, celui ci s'ouvre, mais quand j'en ressort, mon icône se trouve deux icônes plus bas, sur a carte dresseur.Cela me le fait, pour quelques autres aussi, il y a juste le pokédex et le menu option ou ça ne le fait pas.Voici mon script: Code: |
#============================================================================== # ■ Pokemon_Menu # Pokemon Script Project - Krosk # 18/07/07 # 22/02/10 - Palbolsky #----------------------------------------------------------------------------- # Scène modifiable #----------------------------------------------------------------------------- # Menu principal accessible par échap #-----------------------------------------------------------------------------
module POKEMON_S class Pokemon_Menu < Window_Base #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index super(0,0,640,480) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 self.z = 11 end #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- def main @spriteset = Spriteset_Map.new @interface = Interface_Echap.new if POKEMON_S::VIEWER_TEAM @pkmn_team = Pokemon_Equipe.new end s1 = "POKéDEX" s2 = "POKéMON" s3 = "SAC" s4 = Player.name s5 = "SAUVER" s6 = "OPTIONS" s7 = "" s8 = "QUITTER" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index @command_window.x = 480 - 169 - 123 + 200 @command_window.y = 28 - 20 @command_window.z = 10000 @command_window.visible = false @selecteur = Sprite.new @selecteur.z = 200 if $color_menu == 1 or $color_menu == nil # Vert @string = "_vert" elsif $color_menu == 0 # Bleu @string = "_bleu" elsif $color_menu == 2 # Rouge @string = "_rouge" end @selecteur.bitmap = RPG::Cache.picture("Menu Echap/selector_menu" + @string) if @command_window.index == 0 @selecteur.x = 219 @selecteur.y = 234 elsif @command_window.index == 1 @selecteur.x = 219 @selecteur.y = 265 elsif @command_window.index == 2 @selecteur.x = 219 @selecteur.y = 296 elsif @command_window.index == 3 @selecteur.x = 219 @selecteur.y = 327 elsif @command_window.index == 4 @selecteur.x = 219 @selecteur.y = 358 elsif @command_window.index == 5 @selecteur.x = 219 @selecteur.y = 389 elsif @command_window.index == 6 @selecteur.x = 219 @selecteur.y = 420 end if $pokemon_party.size == 0 # Enlève accès Equipe @command_window.disable_item(1) end if not($data_pokedex[0]) # Enlève accès Pokédex si non possédé @command_window.disable_item(0) end if $game_system.save_disabled @command_window.disable_item(4) end @command_window.disable_item(4) Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose @spriteset.dispose @selecteur.dispose @interface.dispose @pkmn_team.dispose if not @pkmn_team.nil? Graphics.freeze end #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- def update if @command_window.index == 0 @selecteur.x = 219 @selecteur.y = 234 elsif @command_window.index == 1 @selecteur.x = 219 @selecteur.y = 265 elsif @command_window.index == 2 @selecteur.x = 219 @selecteur.y = 296 elsif @command_window.index == 3 @selecteur.x = 219 @selecteur.y = 327 elsif @command_window.index == 4 @selecteur.x = 219 @selecteur.y = 358 elsif @command_window.index == 5 @selecteur.x = 219 @selecteur.y = 389 elsif @command_window.index == 6 @selecteur.x = 219 @selecteur.y = 420 end # ウィンドウを更新 @command_window.update @spriteset.update @selecteur.update @interface.update # コマンドウィンドウがアクティブの場合: update_command を呼ぶ if @command_window.active update_command return end end def dispose super end #-------------------------------------------------------------------------- # ● フレーム更新 (コマンドウィンドウがアクティブの場合) #-------------------------------------------------------------------------- def update_command # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # マップ画面に切り替え $scene = Scene_Map.new self.contents.clear return end # C ボタンが押された場合 if Input.trigger?(Input::C) # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合 if $game_party.actors.size == 0 and @command_window.index < 4 # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # コマンドウィンドウのカーソル位置で分岐 case @command_window.index when 0 # Pokédex if not($data_pokedex[0]) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Pokemon_Pokedex.new self.contents.clear when 1 # Menu if $pokemon_party.size == 0 $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Pokemon_Party_Menu.new when 2 # Sac $game_system.se_play($data_system.decision_se) $scene = Pokemon_Item_Bag.new when 3 # Carte dresseur $game_system.se_play($data_system.decision_se) $game_temp.common_event_id = 19 $scene = Scene_Map.new when 4 # Sauvegarde if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Pokemon_Save.new self.contents.clear when 5 # OPTIONS $game_system.se_play($data_system.decision_se) $scene = OPTIONS.new when 6 # Pokématos if $game_switches[9] == false $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Pokematos.new end return end end end end
|
Je continu de chercher, mais votre aide est la bienvenu.
Posté par
Nuri Yuri le
2 Mar - 22:58 (2012)Tu te contredis, t'as pas mieux compris, si t'avais réellement compris tu saurais pourquoi ton icone se warp.
Enfin, t'arrive déjà à bien avancer seul.
Posté par
Renkys le
2 Mar - 23:48 (2012)Effectivement je n'ai pas encore tout compris, mais bon j'avance, et c'est comme ça que je vais apprendre.
D’après moi, mon problème se trouve dans la partie: "def_update"
Si je comprend bien, elle gère la "mise à jour" c'est sans doute la dedans que je dois chercher.
J'ai vérifier que j'avais bien mis les même cordonnées, donc ce n'est pas ça.
je vois pas trop, mais je continu de chercher.
PS: je n'ai pas dis que j'avais tout compris, mais cependant je commence à comprendre quelques petites choses, la preuve j'ai réussis à faire quelques petits trucs, ce n'est peu être rien, mais bon, c'est la première fois que je touche à un script, donc j'apprend.
Posté par
Nuri Yuri le
2 Mar - 23:53 (2012)Peut être que le problème viens d'un autre script. C'est pour ça qu'il faut comprendre tout le script.
Le problème viens de là : initialize(menu_index = 0).
Les scripts initialisant la classe n'envoient pas forcément l'index défini ou modifié dans ta classe (J'ai pas lu tout le script peut être que je me trompe après).
Posté par
Renkys le
8 Mar - 17:03 (2012) Nagato Yuki a écrit: |
Peut être que le problème viens d'un autre script. C'est pour ça qu'il faut comprendre tout le script.
|
C'est justement la dessus que je me penche.
Ce que tu as dis après devrais m'aider
Nagato Yuki a écrit: |
Le problème viens de là : initialize(menu_index = 0). Les scripts initialisant la classe n'envoient pas forcément l'index défini ou modifié dans ta classe (J'ai pas lu tout le script peut être que je me trompe après).
|
Je ne sais pas trop ou chercher, mais je vais trouver.
Déjà, j'étais sur la bonne voie.
Edit: Bon je dois m'avouer vaincu, je n'ai toujours pas trouvé quelqu'un saurais me donner la solution ?
Merci d'avance.
_Problème toujours d'actualité: Renkos a écrit: |
j'ai réussis à faire ce que je voulais, il ne me reste qu'un seul problème. Par exemple, lorsque je clique sur le sac, celui ci s'ouvre, mais quand j'en ressort, mon icône se trouve deux icônes plus bas, sur la carte dresseur. Cela me le fait, pour quelques autres aussi, il y a juste le pokédex et le menu option ou ça ne le fait pas.
|
Posté par
Nuri Yuri le
8 Mar - 18:06 (2012)Cherches "Pokemon_Menu.new(" dans tes scripts (Ctrl+Shift+F) et modifie le nombre qui suit pour que ça renvois sur la bonne icône.
Posté par
Renkys le
9 Mar - 14:41 (2012)Je crois que si tu ne me l'avais pas dis, je n'aurais jamais trouvé ^^.
Il fallait regarder beaucoup plus loin que je le croyais.
Merci à toi !
Posté par
Nuri Yuri le
9 Mar - 16:25 (2012)Ça viendra tout seul quand tu seras habitué à modifier le scripts et que tu connaitras le ruby :p