Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
573 connectés actuellement
30732505 visiteurs depuis l'ouverture
2484 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Messages postés par Estheone Nombre de messages référencés sur Oniromancie (non supprimés): 303 Aller à la page: 1 2 3 4 5 6 7 8
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 21/12/2014 à 20:30:25. (312 messages postés) |
| @Ephy :
Garde le script que je t'ai filé pour text_size.
Puis va dans Window_Base, méthode process_normal_character.
Remplace l'argument text_width * 2 de draw_text par une valeur plus grande, genre text_width * 4.
D'après mes tests, ça devrait régler le problème.
Edit : Ou mieux, mets text_size(" #{c} ").width, c'est la valeur exacte nécessaire.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 21/12/2014 à 18:56:30. (312 messages postés) |
| Essaie de rajouter ça :
1
2
3
4
5
6
7
8
9
10
|
class Bitmap
alias rgss_text_size text_size unless method_defined?(:rgss_text_size)
def text_size(text)
font_effect = font.shadow || font.outline || font.italic
rect = rgss_text_size(text)
rect.width += font_effect ? 3 : 1 if text.size > 1
rect
end
end |
Si ça marche pas il ne te reste plus qu'à utiliser une version de draw_text sans les modifs (en espérant que t'avais pas de problème de rognage sur les dialogues...).
1
2
3
4
5
6
|
class Bitmap
def draw_text2(*args)
rgss_draw_text(*args)
end
end |
Puis tu vas dans ton script d'affichage des messages et tu remplaces les draw_text par draw_text2.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 20/12/2014 à 16:12:24. (312 messages postés) |
| Tu as juste besoin de revoir 2 fonctions (update et create_command_window) et d'en ajouter une (create_difficulty_window). Pour le reste tu peux laisser les scripts d'origine.
Essaie de comprendre pourquoi ça marche, ça te sera utile si tu veux faire d'autres modifs du même genre par la suite.
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
| def update
super
@command_window.update
if Input.trigger?(Input::C)
case @phase
when :main
case @command_window.index
when 0 # New game
create_difficulty_window
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
end
when :difficulty
$game_variables[1] = @command_window.index
command_new_game
end
elsif Input.trigger?(Input::B) and @phase == :difficulty
Sound.play_cancel
dispose_command_window
create_command_window
end
end
def create_command_window
@phase = :main
s1 = Vocab::new_game
s2 = Vocab::continue
s3 = Vocab::shutdown
@command_window = Window_Command.new(172, [s1, s2, s3])
@command_window.x = (544 - @command_window.width) / 2
@command_window.y = 288
if @continue_enabled # If continue is enabled
@command_window.index = 1 # Move cursor over command
else # If disabled
@command_window.draw_item(1, false) # Make command semi-transparent
end
@command_window.openness = 0
@command_window.open
end
def create_difficulty_window
@phase = :difficulty
Sound.play_decision
dispose_command_window
s1 = "Facile"
s2 = "Moyen"
s3 = "Difficile"
s4 = "Expert"
@command_window = Window_Command.new(172, [s1, s2, s3, s4])
@command_window.x = (544 - @command_window.width) / 2
@command_window.y = 288
@command_window.openness = 0
@command_window.open
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 20/12/2014 à 15:08:30. (312 messages postés) |
| Tiens, c'est une version simplifiée de ce que Zeus et moi utilisons pour régler le problème :
1
2
3
4
5
6
7
8
9
10
11
12
| class Bitmap
alias rgss_draw_text draw_text
def draw_text(*args)
args.unshift(rect) if args.first.is_a?(String)
args.push(0) if args.last.is_a?(String)
font_effect = font.shadow || font.outline || font.italic
text = font_effect ? " #{args[-2]} " : args[-2]
rect = args.first.is_a?(Rect) ? args.first : Rect.new(*args[0, 4])
align = args.last
rgss_draw_text(rect, text, align)
end
end |
Ca rajoute simplement un espace avant et après automatiquement si la police contient un effet qui provoque le rognage (italique, ombré ou contour).
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 11/09/2014 à 17:01:57. (312 messages postés) |
| Il n'y a pas moyen de récupérer les id des persos pour chaque sauvegarde proprement sans faire une modif avant :
1
2
3
4
5
6
7
8
9
| module DataManager
def self.make_save_header
header = {}
header[:characters] = $game_party.characters_for_savefile
header[:members] = $game_party.all_members
header[:playtime_s] = $game_system.playtime_s
header
end
end |
Note que pour tenir compte de cette modif sur chaque sauvegarde il te faut sauvegarder à nouveau.
Ensuite tu peux appeler ce code n'importe où :
1
2
3
4
5
6
7
8
9
| actor_ids = []
DataManager.savefile_max.times do |i|
if (header = DataManager.load_header(i)) != nil
next unless header[:members]
header[:members].each do |member|
actor_ids << member.id unless actor_ids.include?(member.id)
end
end
end |
Ca analyse toutes les sauvegardes et récupère les id de tous les charas dans un tableau actor_ids.
Ensuite t'auras plus qu'à faire des trucs du genre :
1
2
3
| if actor_ids.include?(1)
# affichage perso 1
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX ace] masquer le 1er personnage dans le menu |
Estheone -
posté le 08/09/2014 à 03:18:08. (312 messages postés) |
| Tu n'attaques pas le problème par le bon angle Wolfylink, c'est mieux d'intervenir à la source : la classe Game_Party.
Ajoute juste ce script au-dessus du main :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| class Game_Party < Game_Unit
def in_menu
SceneManager.scene.is_a?(Scene_MenuBase)
end
def exists
all_members.size > 1
end
def members
in_battle ? battle_members : in_menu ? all_members_without_first : all_members
end
def all_members_without_first
all_members.size > 0 ?
all_members[1, all_members.size-1].select {|actor| actor.exist? } : []
end
def swap_order(index1, index2)
@actors[index1+1], @actors[index2+1] = @actors[index2+1], @actors[index1+1]
$game_player.refresh
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RPG Maker VX] Changer de personnage en tête d'équipe |
Estheone -
posté le 30/08/2014 à 06:45:15. (312 messages postés) |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class Game_Party < Game_Unit
def switch_player
@actors << @actors.shift
$game_player.refresh
end
end
class Scene_Map < Scene_Base
alias switch_player_update update
def update
switch_player_update
$game_party.switch_player if Input.trigger?(Input::R) && can_switch?
end
def can_switch?
!$game_map.interpreter.running?
end
end |
J'ai utilisé :R, soit la touche W, mais tu peux mettre ce que tu veux.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX ACE] Police d'écriture des combats |
Estheone -
posté le 30/08/2014 à 06:24:15. (312 messages postés) |
| Disons juste que le mec qui l'a fait a encore beaucoup à apprendre.
Et pour les lignes à rajouter en fait tu ferais mieux de les mettre après le bloc if else (avec @hp_bar.opacity et les autres) plutôt que de les dupliquer, ça fonctionnera aussi bien.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX ACE] Police d'écriture des combats |
Estheone -
posté le 29/08/2014 à 19:21:55. (312 messages postés) |
| Il fait peur ton script.
Après la ligne 147
1
| @hp_bar = Window_Base.new(0,0,120,height) |
tu rajoutes ça :
1
2
| @hp_bar.contents.font.name = "Georgia"
@hp_bar.contents.font.italic = true |
Si tu veux les mêmes effets d'ombre que sur l'autre script, il me faut son code aussi pour voir comment ils s'y sont pris exactement. Là tout au plus je peux faire qu'une imitation.
EDIT :
Pour le nom des boss va voir lignes 111 à 115 :
1
2
3
4
5
| if @battler.hide_name
@hp_bar.draw_text(0,12,width,24,"???",2)
else
@hp_bar.draw_text(0,12,width,24,@battler.name,2)
end |
Je te propose soit de remplacer les 2 par des 1 pour centrer le nom du boss au lieu de l'aligner vers la droite, soit de remplacer les 12 par 0 pour mettre le nom plus haut.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX ACE] Police d'écriture des combats |
Estheone -
posté le 29/08/2014 à 11:43:35. (312 messages postés) |
| Juste le nom des persos ?
Dans ce cas ceci devrait faire l'affaire :
1
2
3
4
5
6
7
8
| class Window_Base < Window
def draw_actor_name(actor, x, y, width = 112)
change_color(hp_color(actor))
contents.font.name = "Georgia"
draw_text(x, y, width, line_height, actor.name)
contents.font.name = Font.default_name
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMVXA] Modifier $data_skill au cours de la partie |
Estheone -
posté le 17/08/2014 à 00:29:55. (312 messages postés) |
| Ah oui si t'as des variables qui n'ont pas de valeur fixe, il te faut créer une nouvelle classe.
=~ est utilisé pour comparer un string avec une expression régulière. Fais une recherche regular expressions dans la doc de RM VX Ace (F1) pour en savoir plus.
Edit : Grillé de 40 secondes par Wolfylink
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMVXA] Modifier $data_skill au cours de la partie |
Estheone -
posté le 16/08/2014 à 23:15:37. (312 messages postés) |
| L'avantage de RM VX Ace c'est les notes en bas à droite pour chaque onglet de la base de données, on peut s'en servir de manière très pratique pour initialiser des variables.
1
2
3
4
5
6
7
8
9
10
11
| class RPG::Skill < RPG::UsableItem
attr_reader :pa_cost
# (...)
def setup
@pa_cost = 0
# (...)
eval(note)
end
end |
Grâce à la fonction eval, le contenu de la note des skills sera considéré comme du script et tu peux donc y initialiser tes variables (@pa_cost = 6 par exemple).
Fais juste bien attention à n'utiliser la note que pour ça par la suite.
Ensuite tu vas dans DataManager et tu remplaces la fonction load_database par celle-là :
1
2
3
4
5
6
7
8
9
| def self.load_database
if $BTEST
load_battle_test_database
else
load_normal_database
check_player_location
end
$data_skills.each do |s| s.setup if s end
end |
Ca va permettre d'initaliser tout d'un coup au démarrage du jeu et t'auras plus à t'en soucier.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMVXACE] Dépasser les 999 de Stats pour les mobs ... |
Estheone -
posté le 06/08/2014 à 08:47:29. (312 messages postés) |
| Je vois pas le problème verehn, t'as jamais entendu parler de Disgaea ?
Je suis sûr qu'un script pour ça doit déjà exister mais je t'en ai fait un quand même, c'est pas bien sorcier :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # Enemy Stat Mulitplier
class Game_Enemy < Game_Battler
alias stat_multiplier_initialize initialize
def initialize(index, enemy_id)
@stat_multiplier = $data_enemies[enemy_id].note =~ /<STAT_MULTIPLIER: (\d+)>/i ? $1.to_i : 1
stat_multiplier_initialize(index, enemy_id)
end
def param_base(param_id)
enemy.params[param_id]*@stat_multiplier
end
def param_max(param_id)
return 0xffff_ffff
end
end |
Tu as juste à rajouter <STAT_MULTIPLIER: x> dans la note de l'ennemi avec x qui est un nombre qui va servir de multiplicateur à toutes les stats principales de cet ennemi.
Par exemple un monstre avec 10k HP et 999 force avec <STAT_MULTIPLIER: 10> va se retrouver avec 100k HP et 9990 force.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - Touhou - Wandering Souls |
Estheone -
posté le 04/08/2014 à 06:28:08. (312 messages postés) |
| Citation: J'ai fini ce jeu à 100% en normal et en lunatic. |
Félicitations, tu fais désormais partie des grands de ce monde.
Citation: le passage le plus dur pour moi, ça a été la dernière spellcard de yuyuko dans le mode chaos en lunatic |
Le truc c'est de bouger le moins possible et de jouer très défensif. La spellcard de terre de Sakuya aide bien ici.
Citation: en fait j'y ai tellement pex à force de mourir à ce point précis que j'ai battu le dernier boss du paradis en une fois en lunatic ^^" |
Pex ou pas c'est quand même impressionnant, il y a pas mal de trucs qui pardonnent pas sur ce fight en Lunatic. Notamment Tenshi et son foutu teleport+combo.
Citation: Les objets qu'on gagne après les 100% sont trop cheatés en lunatique on arrive en vague 82 sans souci avec Yukari dans la Réunion Youkai en réunissant tous les objets cheat + la réduc' d'armure à 100% + le perma mode hyper...et je suis convaincu qu'on peut passer + de 100 vagues avec elle |
Avec Aya et en lui équipant les 3 accessoires cheatés + Essence of Void tu dois pouvoir monter aussi haut que tu veux assez facilement juste en spammant Piercing Gust (il faut être bien sûr de JAMAIS s'arrêter d'attaquer tant qu'il y a peut-être encore quelque chose de vivant ^^).
Citation: C'est dingue que des gens arrivent à créer des jeux pareilles à partir d'un logiciel pour créer des RPG |
Moi ce que je trouve dingue, c'est qu'autant de gens sous-estiment les outils qu'ils utilisent.
Link's Awakening est considéré par pas mal de monde comme le meilleur Zelda et il a été développé pour la Gameboy. Les possibilités offertes par RPG Maker sur un PC semblent infinies en comparaison.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX] Recherche d'un script pour reprendre une musique après un combat. |
Estheone -
posté le 10/07/2014 à 16:08:08. (312 messages postés) |
| Bon. Essaie de remplacer ma fonction do_load par celle-là :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Scene_File < Scene_Base
def do_load
file = File.open(make_filename(@last_slot_index), "rb")
read_save_data(file)
file.close
$scene = Scene_Map.new
RPG::BGM.fade(1500)
Graphics.fadeout(60)
Graphics.wait(40)
#---------------------------------------------------------------------#
$game_map.map_bgm_play($game_map.map_bgm) if $game_map.map_bgm
#---------------------------------------------------------------------#
@last_bgs.play
end
end |
Le script doit être après celui de sauvegarde aussi.
J'espère que c'est la bonne.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX] Recherche d'un script pour reprendre une musique après un combat. |
Estheone -
posté le 10/07/2014 à 15:49:26. (312 messages postés) |
| Si la musique se relance toujours trop tôt essaie de virer le morceau de mon script sur la fonction process_victory et remets le morceau sur battle_end :
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
| class Scene_Battle < Scene_Base
def battle_end(result)
if result == 2 and not $game_troop.can_lose
call_gameover
else
$game_party.clear_actions
$game_party.remove_states_battle
$game_troop.clear
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
unless $BTEST
#---------------------------------------------------------------------#
RPG::BGM.stop
#---------------------------------------------------------------------#
$game_temp.map_bgs.play
end
$scene = Scene_Map.new
@message_window.clear
Graphics.fadeout(30)
#---------------------------------------------------------------------#
Advanced_Audio["Map_BGM"].resume if Advanced_Audio["Map_BGM"]
#---------------------------------------------------------------------#
end
$game_temp.in_battle = false
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX] Recherche d'un script pour reprendre une musique après un combat. |
Estheone -
posté le 10/07/2014 à 15:24:26. (312 messages postés) |
| Quel bordel la vache.
C'est un miracle que ton jeu fonctionne, crois-moi.
Tiens une nouvelle version de mon script qui essaie de tenir compte des autres scripts. Tu dois le placer après eux :
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| class Game_Map
attr_reader :map_bgm
def autoplay
map_bgm_play(@map.bgm) if @map.autoplay_bgm
@map.bgs.play if @map.autoplay_bgs
end
def map_bgm_play(bgm)
if Advanced_Audio["Map_BGM"] && bgm == @map_bgm
Advanced_Audio["Map_BGM"].resume
else
Advanced_Audio.new("Map_BGM", "Audio/BGM/#{bgm.name}.ogg")
Advanced_Audio["Map_BGM"].play
Advanced_Audio["Map_BGM"].volume_change(bgm.volume)
Advanced_Audio["Map_BGM"].pitch(bgm.pitch)
end
@map_bgm = bgm
end
end
class Scene_Map
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
if $game_switches[Id_switch_battle_me]==false # Condition
#---------------------------------------------------------------------#
Advanced_Audio["Map_BGM"].pause if Advanced_Audio["Map_BGM"]
#---------------------------------------------------------------------#
RPG::BGS.stop
Sound.play_battle_start
$game_system.battle_bgm.play
else
Sound.play_battle_start
end
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
end
class Scene_Battle < Scene_Base
def process_victory
if defined?(::N01)
@status_window.visible = true
@message_window.visible = false
for enemy in $game_troop.members
break boss_wait = true if enemy.collapse_type == 3
end
wait(440) if boss_wait
wait(N01::WIN_WAIT) unless boss_wait
for actor in $game_party.members
unless actor.restriction >= 4
@spriteset.set_action(true, actor.index,actor.win)
end
end
end
@info_viewport.visible = false
@message_window.visible = false
RPG::BGM.stop
$game_system.battle_end_me.play
unless $BTEST
#---------------------------------------------------------------------#
Advanced_Audio["Map_BGM"].resume if Advanced_Audio["Map_BGM"]
#---------------------------------------------------------------------#
$game_temp.map_bgs.play
end
new_temps = Time.now
temps = new_temps- @temps
if temps >= 60
@temps_combat = (temps / 60).truncate
@suffixe = @temps_combat > 1 ? "minutes" : "minute"
else
@temps_combat = temps.truncate
@suffixe = "secondes"
end
@exp =$game_troop.exp_total
@gold = $game_troop.gold_total
@drop = $game_troop.make_drop_items
$game_party.gain_gold(@gold)
ini_variable
Graphics.fadeout(30)
afficher_rapport
Graphics.fadein(20)
end
end
class Scene_File
def do_load
file = File.open(@savefile_windows[@index].filename, "rb")
read_save_data(file)
file.close
$scene = Scene_Map.new
RPG::BGM.fade(1500)
Graphics.fadeout(60)
Graphics.wait(40)
#---------------------------------------------------------------------#
$game_map.map_bgm_play($game_map.map_bgm) if $game_map.map_bgm
#---------------------------------------------------------------------#
@last_bgs.play
end
end
class Game_Interpreter
def command_241
$game_map.map_bgm_play(@params[0])
return true
end
def command_242
Advanced_Audio["Map_BGM"].volume_change(0, @params[0] * 60)
return true
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX] Recherche d'un script pour reprendre une musique après un combat. |
Estheone -
posté le 10/07/2014 à 13:48:38. (312 messages postés) |
| Je sais ce que c'est de bloquer sur des problèmes de script qui semblent insurmontables donc si je peux aider - et que ça me prend pas trois plombes - c'est avec plaisir.
Tiens je t'ai bricolé un script pour aller avec l'Audio+ qui devrait faire ce dont t'as besoin sans casser le reste.
Si vous utilisez les scripts de base il n'y aura rien à faire de spécial, ça devrait marcher juste en l'ajoutant à votre jeu. Dans le cas contraire, il faudra adapter là où il faut (j'ai mis les lignes importantes des grosses fonctions entre les lignes de commentaire).
Note aussi que ça ne fonctionne qu'avec des musiques en ogg.
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
85
86
87
88
89
90
91
92
93
94
95
| class Game_Map
attr_reader :map_bgm
def autoplay
map_bgm_play(@map.bgm) if @map.autoplay_bgm
@map.bgs.play if @map.autoplay_bgs
end
def map_bgm_play(bgm)
if Advanced_Audio["Map_BGM"] && bgm == @map_bgm
Advanced_Audio["Map_BGM"].resume
else
Advanced_Audio.new("Map_BGM", "Audio/BGM/#{bgm.name}.ogg")
Advanced_Audio["Map_BGM"].play
Advanced_Audio["Map_BGM"].volume_change(bgm.volume)
Advanced_Audio["Map_BGM"].pitch(bgm.pitch)
end
@map_bgm = bgm
end
end
class Scene_Map
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgs = RPG::BGS.last
RPG::BGS.stop
#---------------------------------------------------------------------#
Advanced_Audio["Map_BGM"].pause if Advanced_Audio["Map_BGM"]
#---------------------------------------------------------------------#
Sound.play_battle_start
$game_system.battle_bgm.play
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
end
class Scene_Battle
def battle_end(result)
if result == 2 and not $game_troop.can_lose
call_gameover
else
$game_party.clear_actions
$game_party.remove_states_battle
$game_troop.clear
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
unless $BTEST
#---------------------------------------------------------------------#
RPG::BGM.stop
#---------------------------------------------------------------------#
$game_temp.map_bgs.play
end
$scene = Scene_Map.new
@message_window.clear
Graphics.fadeout(30)
#---------------------------------------------------------------------#
Advanced_Audio["Map_BGM"].resume if Advanced_Audio["Map_BGM"]
#---------------------------------------------------------------------#
end
$game_temp.in_battle = false
end
end
class Scene_File
def do_load
file = File.open(@savefile_windows[@index].filename, "rb")
read_save_data(file)
file.close
$scene = Scene_Map.new
RPG::BGM.fade(1500)
Graphics.fadeout(60)
Graphics.wait(40)
#---------------------------------------------------------------------#
$game_map.map_bgm_play($game_map.map_bgm) if $game_map.map_bgm
#---------------------------------------------------------------------#
@last_bgs.play
end
end
class Game_Interpreter
def command_241
$game_map.map_bgm_play(@params[0])
return true
end
def command_242
Advanced_Audio["Map_BGM"].volume_change(0, @params[0] * 60)
return true
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX] Adapter ce script a la taille de l'équipe au lieu du niveau. [Résolu] |
Estheone -
posté le 26/05/2014 à 01:39:50. (312 messages postés) |
| Il vaut mieux partir des scripts de base.
Tu rajoutes ça dans l'initialize du Game_Enemy au-dessus de la ligne @hp = maxhp :
1
2
3
4
| party_members = $game_variables[1]
party_atk_potential = $game_variables[2]
party_def_potential = $game_variables[3]
@hp_coef = 1.0 + party_members*0.1 + party_atk_potential*0.15 - party_def_potential*0.15 |
Tu as juste à remplacer 1, 2 et 3 par l'id de tes variables.
Note qu'une variable avec @ devant (ici @hp_coef) est une variable d'instance, pour faire simple disons que tu peux t'en servir dans toute la classe.
Puis tu remplaces la fonction base_maxhp par celle-là :
1
2
3
| def base_maxhp
return Integer(enemy.maxhp*@hp_coef)
end |
Integer sert à retourner un entier, ça serait con de se retrouver avec un nombre à virgules pour les HP des ennemis.
C'est le même principe si tu décides de modifier une autre stat du monstre.
Je pense que tu comprendras globalement comment ça marche tout seul. Le plus dur avec ce genre de modifs c'est simplement de comprendre où il faut intervenir.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Divers] Faire connaitre son projet ? |
Estheone -
posté le 14/04/2014 à 17:30:56. (312 messages postés) |
| Si t'es vraiment motivé, la solution la plus efficace est encore de traduire ton jeu en anglais puis de le présenter sur un max de forum US en rapport avec RM ou les jeux indés.
Tu auras 10 à 20 fois plus de joueurs potentiels de cette façon.
Si tu peux pas te le permettre, présente au moins le jeu sur autant de forums francophones que possible pour toucher autant de monde que tu peux.
Ta présentation du projet sur oniro est très bien pour intéresser des makers, pour les joueurs je pense que tu devrais faire quelque chose de beaucoup plus concis et qui capte vite l'attention (une petite liste des particularités qui rendent ton jeu intéressant par exemple).
Pour ceux qui en veulent en savoir plus sur le jeu, un lien vers ton site (que tu devrais revoir d'ailleurs) et le tour est joué.
Et si tu présentes le jeu sur des sites comme jv.con, prépare-toi mentalement avant.
Peu importe la qualité de ton jeu, il y aura toujours des gens pour balancer "c'est de la merde" en ayant à peine jeté un coup d'oeil sur un screenshot (ou alors simplement parce que le jeu est fait avec RM).
Bon courage, c'est vraiment chiant de se faire de la pub.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Manic shooter] Reikon no Yume (v0.3c) |
Estheone -
posté le 16/03/2014 à 02:42:59. (312 messages postés) |
| Fini le jeu en Moderate puis Intermediate (et sans perdre de vie s'il vous plaît ).
L'un des jeux danmakufu les plus propres auquel j'ai joué, c'est vraiment du bon boulot.
La difficulté est bien gérée, pas vraiment de situations injustes ou de passages trop mous.
Les sprites des persos et bullets sont très réussis, le background en 3d fait son job sans être gênant.
Pour chipoter juste quelques détails :
- La ligne de récupération auto des items est vraiment trop haute au début, je me suis mangé des ennemis à 2 reprises sans pouvoir y faire grand chose.
Mais bon le problème n'en est plus un si on connaît par coeur le premier stage.
- En Intermediate j'ai trouvé la dernière spellcard du stage 2 un poil trop facile comparé aux autres attaques de la meuf.
- Le perso est vraiment grand et ça fait un peu bizarre si on tient compte que sa hitbox fait un pixel. ^^
Bon courage pour la suite, j'ai hâte d'en voir plus.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 29/01/2014 à 10:17:33. (312 messages postés) |
| Faire ce mini-jeu entièrement en script c'est minimum une grosse journée de boulot, honnêtement j'ai pas le courage.
Edit : je viens de comprendre ton problème laisse-moi quelques minutes. ^^
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
| class Game_Event < Game_Character
def page_index
return @event.pages.index(@page)
end
end
class Interpreter
def command_209
character = $game_map.events[$game_variables[1]] || get_character(@parameters[0])
if character == nil
return true
end
character.force_move_route(@parameters[1])
return true
end
def save_event_offset(off_x, off_y)
nx = $game_map.events[@event_id].x + off_x
ny = $game_map.events[@event_id].y + off_y
ev = check_event(nx, ny)
save_event(ev.id) if ev
end
def save_event_xy(nx, ny)
ev = check_event(nx, ny)
save_event(ev.id) if ev
end
def save_event(ev_id)
$game_variables[1] = ev_id
end
def check_page_match(off_x, off_y)
nx = $game_map.events[@event_id].x + off_x
ny = $game_map.events[@event_id].y + off_y
ev = check_event(nx, ny)
return ev ? event_page_match?(ev, $game_map.events[@event_id]) : false
end
def check_event(nx, ny)
for event in $game_map.events.values
if event.x == nx and event.y == ny
return event
end
end
return nil
end
def event_page_match?(event1, event2)
return (event1.page_index == event2.page_index)
end
end |
Voilà j'ai modifié le fonctionnement, la sauvegarde de l'événement n'est plus automatique mais manuelle et peut être faite de 2 façons :
- save_event_offset(off_x, off_y) : sauvegarde l'event dont les coordonnées sont à off_x et off_y de l'event à partir duquel cette commande est appelée (par exemple save_event_offset(1, 0) sauvegarde l'event à droite, avec save_event_offset(0, 0) l'event principal se sauvegarde lui-même.
- save_event_xy(nx, ny) : sauvegarde l'event de coordonnées nx et ny
Petit exemple pour intervertir l'événement principal avec un autre à sa droite.
- insérer script : save_event_offset(1, 0)
- déplacer événement : un pas vers la gauche
- insérer script : save_event_offset(0, 0)
- déplacer événement : un pas vers la droite
J'espère que ça couvre tous les cas possibles de ton mini-jeu, j'ai pas vraiment saisi comment il fonctionne.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 28/01/2014 à 01:55:38. (312 messages postés) |
| @Dyeel :
Le problème c'est qu'il n'y a pas de variable id ou index pour les pages donc c'est plus compliqué.
@cortez :
J'espère que j'ai bien compris ce que tu voulais faire.
Rajoute ça au-dessus du main :
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
| class Game_Event < Game_Character
def page_index
return @event.pages.index(@page)
end
end
class Interpreter
def command_209
character = $game_map.events[$game_variables[1]] || get_character(@parameters[0])
if character == nil
return true
end
character.force_move_route(@parameters[1])
return true
end
def save_event(ev_id)
$game_variables[1] = ev_id
end
def check_page_match(off_x, off_y)
nx = $game_map.events[@event_id].x + off_x
ny = $game_map.events[@event_id].y + off_y
ev = check_event(nx, ny)
result = ev ? event_page_match?(ev, $game_map.events[@event_id]) : false
save_event(ev.id) if result
return result
end
def check_event(nx, ny)
for event in $game_map.events.values
if event.x == nx and event.y == ny
return event
end
end
return nil
end
def event_page_match?(event1, event2)
return (event1.page_index == event2.page_index)
end
end |
Pour ta question 1 il te suffit d'utiliser la fonction check_page_match en condition script en lui passant comme arguments la différence de x et y entre l'event principal et celui que tu veux vérifier.
Je vais être plus clair.
Citation: Condition si script "idempage-up" (vérifie celui juste au-dessus) |
se traduit par une condition script :
1
| check_page_match(0, -1) |
vu que l'on cherche à comparer avec l'événement au-dessus, donc avec une coordonnée y de -1 par rapport à l'event principal.
Avec check_page_match(1, 0) tu vérifies celui de droite... etc
A noter que le script sauvegarde l'id de l'event dans la variable 1 en cas de comparaison réussie, ce qui va servir pour ton deuxième problème.
Pour la question 2 il faut ruser un peu vu que la commande "déplacer un événement" n'inclut pas ce que tu cherches à faire.
J'ai fait en sorte que si tu appelles cette fonction alors que la variable 1 est true (donc différente de 0 ou nil), ça applique les mouvements sur l'événement d'id variable 1.
Donc en résumé :
- si condition script check_page_match(0, -1) (vérifie en haut dans cet exemple)
alors
- déplacer événement (va s'appliquer à l'event comparé peu importe ce que tu choisis)
- remettre la variable 1 à 0 pour éviter les problèmes (tu peux peux-être le rajouter en script à la fin de command_209 pour que ça se fasse automatiquement).
- fin condition
Au final ça aurait pas été beaucoup plus compliqué de faire tout le mini-jeu en code mais bon...
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 27/01/2014 à 11:50:44. (312 messages postés) |
| Vous prenez le problème à l'envers.
Il vaudrait mieux que tu mettes ton .to_i au moment du calcul d'exp ou d'or (et donc avant l'ajout dans le total d'exp de tes persos) au lieu de te retrouver avec un total d'expérience en float.
Un truc dans ce genre :
1
| @exp = (ton_calcul).to_i |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - Vos jeux vidéo du moment |
Estheone -
posté le 04/01/2014 à 00:40:47. (312 messages postés) |
| J'étais pas dans le bon état d'esprit pour y jouer, trop d'énigmes quand j'étais dans une période bourrin. Objectivement j'ai pas grand chose à lui reprocher. ^^
@Zim : Vu que t'as aimé Tail Concerto je te conseille SolatoRobo sur DS si tu l'as pas déjà fait.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - Vos jeux vidéo du moment |
Estheone -
posté le 04/01/2014 à 00:27:22. (312 messages postés) |
| C'est une bonne idée.
Spoiler (cliquez pour afficher)
Super Mario 3D World (Wii U) +
New Super Mario Bros U (Wii U)
Radiant Historia (DS) +
Alundra (PS1) +
Suikoden 2 (PS1)
Bioshock (PC) +
Bioshock Infinite (PC) +
Path of Exile (PC) +
Antichamber (PC)
Terraria 1.2 (PC) +
Starbound (PC)
Dark Souls (PC)
Dust: An Elysian Tail (PC) +
FTL (PC)
Hotline Miami (PC)
Super Meat Boy (PC)
Orcs Must Die! 2 (PC)
Mark of the Ninja (PC) +
Spelunky (PC)
Rogue Legacy (PC) +
Trine 2 (PC)
Europa Universalis IV (PC)
Civilization V Brave New World (PC) +
Rift (PC)
Touhou 14 (PC)
Je suis pas sûr d'avoir joué à tous en 2013, et j'ai surement oublié des jeux faits sur émulateur.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Vx ace] Modification du menu Yanfly |
Estheone -
posté le 29/12/2013 à 16:35:53. (312 messages postés) |
| Mets les lignes 1059, 1060 et 1061 en commentaire :
1
2
3
| #@category_window.set_handler(:item, method(:open_types))
#@category_window.set_handler(:weapon, method(:open_types))
#@category_window.set_handler(:armor, method(:open_types)) |
et... c'est tout.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Aller à la page: 1 2 3 4 5 6 7 8
|
|
|