Une Princesse sans amour est une Princesse oubliée - Brandobscure
NEWS : Mes personnages manquant de personnalité j'ai rajouté ici et là des cut scènes la développant. Mais il manquait un personnage pour souder le groupe. Voici donc vous allez me dire un énième personnage sauf que la plupart ne servent qu'une fois le palais pour les quêtes annexes, les boutiques à la façon d'un suikoden. Là c'est différent perso qui prendra toute son importance.
Susie
Age NC (la petite quinzaine) Archéologue/ Chercheuse/ Ingénieur Humaine ??
Elle rencontre le groupe sur la route de la capitale, et elle s'y incruste littéralement et ne les lâche plus.
Elle est naïve (quand elle veut) collante, curieuse, elle veut tout savoir sur les autres mais ne dévoile rien sur elle, si on ne lui demande pas. Elle attire les ennuis, et se fourre toujours dans des situations catastrophiques. Elle est du genre à quand elle voit un gros monstre exploser de joie à l'idée de ne jamais avoir vu ce genre de créature avant, sans conscience du danger. Mais une amie fidèle qui aidera toujours les autres, naturelle optimiste qui ne voit que le bon côté et qui quand elle est confronté au mal se replie comme une huitre.
Elle est armée d'un boomerang, arme de jet classe milieu. Ni à l'avant ni à l'arrière. Quand à son nom qu'elle met du temps à dire lors de la rencontre on pense qu'elle aurait pu dire n'importe quoi d'autre. Quels secrets cache t'elle ?
Je pense que je peux en faire un véritable plus pour le groupe.
Je mets à jour la présentation.
EDIT nouvelle utilsation du combat TBS les persos représentent des armées qui s'affrontent sur la map world.
NEWS :
Voilà ce que je prévois pour la prochaine démo (même si elle n'est prête que pour les Alex 2013)
-Prise en compte de tout vos coms. Premièrement passer plus de temps sur les premières maps rallonger les quêtes d'Angus enfant (pas trop quand même) car là c'était trop rapide. Pas de nouvelles quêtes mais plus de dialogue et le moyen de les résoudre plus clair et mieux développé. histoire de ralentir le tout.
-Revoir le déplacement des oiseaux par exemple.
-Développer plus la personnalité d'Angus comment un prince vit dans une maison du village ? de Pendar l'orphelin et de Balthélémy. Contrôler au début du premier combat Pendar et plus Angus puisque Angus au début ne fait que suivre. Ne tappe pas fort.
-revoir les sprites et artwork
-l'alchimie et le pourquoi de la récolte dès le début du jeu.
-Et surtout...... Rendre le système d'évolution des personnages plus évolutif à la façon d'un Fable. Comprenez bien on avait le héros qui vieillissait et qui adulte avait une réputation influant sur les personnes qu'il pouvait recruter à la manière d'un suikoden et bien en plus....
Idée qui m'est venu dans la nuit :
-Les six héros principaux de l'histoire auront chacun via une pierre de vision une sorte de chemin de compétence et se spécialiseront tantôt vers les ténèbres tantôt vers la lumière et leur apparence s'en ressentira.
Comment ?
Le level up et les compétences acquises de base existeront toujours de même que l'exp mais pour les 6 héros principaux une fois acquis la pierre de vision (Par exemple c'est Balthélémy qui remet la sienne à Angus) (et pour les autres étant donné que je change d'idée tous les quatre matin bien que trois soient fixés je ne spoilerai pas qui ils seront)
Activer la pierre de vision fera arriver sur une sorte de spherier.
La première compétence par exemple pour Angus le sort ténèbres sera activé automatiquement puis retour sur la map d'origine. Mais pour les autres 2 chemins possibles qui parfois pourront se diviser se rejoindre. Et on ne peux choisir les deux (il me semble que c'est ce que Valefor avait fait pour ces persos sur Single Path). Certains seront des sorts ou compétences d'autres monter un peu l'agilité ect.
Car selon Balthélémy "la voie du héros est différente de celle du commun, tu pourras dépasser les limites de ta condition comme moi"
Pour preuve au début Balthélémy a 12000 en PV alors que théoriquement c'est impossible même les guerriers balèzes sont bloqués à 9999 parce que c'est un héros.
Bon le système reste à être personnalisé mais vous avez compris le système. Rassurez vous les persos ne seront pas cheatés comme des gods par rapport à ceux n'ayant pas ce système d'évolution quand même qui cesseront d'intervenir dans le dernier chapitre où seuls les 6 affronteront la source du mal. Enfin les 4 parmi 6 vu le CBS. Leurs limites resteront raisonnables.
Comment gagner des points de compétences pour les déverrouiller. Et bien le monstre de base ne rapporte que de l'exp et des objets. Ce seront uniquement les soldats humanoïdes des 6 races et les boss qui donneront des PC 1 par combat ou un par ennemi ? A vous de me dire. En plus de l'exp. Sous forme de sphere peut être.
Je pense que cela devrait redynamiser le jeu.
Voilà pour les news.
Sinon j'ai installé un mini jeu dans le second village. Aider un fermier à chasser des taupes.
Waouw, pas mal d'évolution depuis la première fois où j'ai vu ce projet dans un autre forum. Beau mapping, j'aime particulièrement la capitale.
Des animations de combats plutôt pas mal. Le mini jeux de chasse taupe doit être marrant. On ne vois pas l'image, mais j'imagine. edit; si je la vois maintenant.
Je vais dl la démo.^^
Edit le lien vers la démo ( du 1/05) indique qu'elle n'est pas dispo.
Oui c'est normal, Rito sans le faire exprès a supprimer le topic, j'ai du le reconstituer et j'ai copier les derniers post bêtement. La dernière démo est sorti le 28/02/2013 clique sur mon userbar dans ma signature. Là c'est bon. par contre si tous les systèmes y sont présents, les récentes réparations au niveau du déplacement des oiseaux par exemple où les portes intérieures qui se ferment après que le héros les ai ouvertes donc toutes seules, certaines nouvelles maps n'y sont pas, taupe, quais de la capitale et le début est très rapide, on est un peu perdu parce qu'il y a beaucoup d'informations. Lidenvice m'a fait un test du tonnerre et depuis un mois (pause pour mon second projet ) j'ai refais 1 heure 30 sans ces défauts. Là si tu as le courage d'aller jusqu'au bout tu as bien 10 Heures de jeu. Par contre n'attends pas de nouvelles démos prochainement. Le temps de tout arranger ce sera pour les Alex 2013 avant le 31/07. Voilà .
Ok, merci. Je dl.
Des scripts pour XP ça risque d'être assez difficile pour moi. ^^"
Sinon globalement la news est bien sympa, le système de tente est cool s'il permet d’interagir avec l'équipe c'est encore mieux. =)
Tu devrais éviter de dire "Dark Knight" et utiliser "chevalier sombre" ou "chevalier noir", je te rappelle que le titre de ton projet ainsi que ton projet en lui-même sont en français.
Je te conseille également de mettre tes anciennes news en spoiler, c'est assez difficile de lire étant donné qu'il y a une image qui s'affiche toutes les 10 secondes xD.
Bonne continuation. =)
Je vais m'occuper pour les spoils. Sinon j'ai un script superbe pour choisir quand on a plus de quatre membres dans l'équipe qui laisser de coté. En paramétrant les persos qui doivent être obligatoirement gardé, ceux non encore disponibles et ainsi de suite. Ce sera intégré par un chara dans la tente.
Sinon pour les scripts je ferai une demande d'aide. Quelqu'un arrivera bien à m'aider vu que c'est pas difficile à faire sinon je le ferai moi même.
http://rpgcreative.net/forum/viewtopic. ... 0&t=103287
Je vais le poster sur le forum quand j'aurais un peu de temps, j'espère que ça marchera avec ton menu
Merci encore Kurofidy, je viens juste de fusionner les deux scripts, voici ce que ça donne. C'est bien mieux que le Windowskin de base et respecte mon thème.
On a donc un menu objet avec les éléments séparés.
ah c'est cool pour toi dans ce cas ^^
Juste à décaler un peu soit la liste, soit le cadre de sélection, et ptet retirer le cadre des onglets et ce sera parfait ^^
Si je décale plus le cadre de sélection, on ne verra pas les items du bas, de plus je ne sais pas mais alors pas du tout comment enlever le windowskin des cadres. La seule chose que j'ai pu changer c'est mettre en opacité faible.
J'ai essayé mais alors il n'y avait plus rien qui s'affichait.
c'est un truc du genre
self.back_opacity = 0
self.opacity = 0
dans les "def initialize" de tes fenêtres, je sais pas si je suis clair ^^" Faudrait que je revoie le script que tu viens de fusionner x)
Ah je connaissais pas la commande opacity seule. Cool. Ce sera facile de le faire alors. Sinon le script est le suivant. Bon il prends en compte des images que tu n'as pas donc. Mais je vais essayer ça.
#==============================================================================
# Objets trié par onglets
#----------------------------------
# Script de Sunabozu
# Ce script permet de trier les objets par onglet.
# Merci de ne pas distribuer ce script sans ma permission.
# Si vous avez un probleme, contactez moi sur RPG Creative.
#------------------------------------------------------------------------------
# ● Mode d'emploi :
# ● 1) Pour créer un onglet il faudra créer un nouvel élément dans la base de donnée
# contenant le symbole $ et portant le nom de l'onglet
# Exemple : Créer l'élément "$Objet" ou encore "$Trésor"
# ● 2) Ensuite tout les objets, armes ou armures devant s'afficher dans cet
# onglet devra avoir l'élément crée de coché
# ● 3) Seul les objets consommables seront affichés en combat
# ● 4) Si aucun élément n'est coché l'objet sera affiché en combat uniquement
#========================================================================
# class Window_Command_Item
# affiche les onglets
#========================================================================
class Window_Command_Item < Window_Selectable
#----------------------------------------------------------------------------------------------------------------
def initialize
super(0, 64, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.back_opacity = 50
# initialisation des tableaux
@commands = [] # nom des onglets
@commands_id = [] # id de l'attribut
for i in 0...$data_system.elements.size
# clonage d'une case du tableau contenant les éléments
tableau_element = $data_system.elements[i].clone
# si le mot contient la lettre $
if tableau_element.include?("$"
# on remplace $ par rien (on supprime)
tableau_element["$"] = ""
# ajout de l'element sans le $ au tableau
@commands[i] = tableau_element
# ajout de l'id de l'element dans le tableau
@commands_id[i] = i
end
end
# compactage des tableaux (supression espace vide)
@commands.compact!
@commands_id.compact!
@item_max = @commands.size
@column_max = @commands.size
refresh
self.index = 0
end
#----------------------------------------------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
#----------------------------------------------------------------------------------------------------------------
def draw_item(index)
x = 4 + index * ((640)/@item_max)
w = self.width / @column_max - 32
self.contents.draw_text(x, 0, w-4, 32, @commands[index]
end
#----------------------------------------------------------------------------------------------------------------
def commands
return @commands
end
#----------------------------------------------------------------------------------------------------------------
def commands_id
return @commands_id
end
end
#========================================================================
# class Window_Item
# affiche les objets
#========================================================================
class Window_Item < Window_Selectable
#----------------------------------------------------------------------------------------------------------------
def initialize(id=0)
super(0, 128, 640, 352)
@column_max = 2
self.index = 0
# If in battle, move window to center of screen
# and make it semi-transparent
if $game_temp.in_battle
self.y = 64
self.height = 256
self.back_opacity = 160
end
refresh(id)
end
#----------------------------------------------------------------------------------------------------------------
def refresh(id=0)
#-----------------------------------------------------------
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_items.size
if ($game_party.item_number(i) > 0 and $data_items[i].element_set.include?(id)) or
($game_party.item_number(i) > 0 and $game_temp.in_battle)
@data.push($data_items[i]
end
end
unless $game_temp.in_battle
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0 and $data_weapons[i].element_set.include?(id)
@data.push($data_weapons[i]
end
end
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 and $data_armors[i].guard_element_set.include?(id)
@data.push($data_armors[i]
end
end
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.back_opacity = 0
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
# â— é …ç›®ã®æç”»
# index : é …ç›®ç•ªå·
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = Color.new(255, 255, 255, 200)
end
x = 4 + index % 2 * (270 + 25) + 12
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.draw_text_outline(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text_outline(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text_outline(x + 256, y, 24, 32, number.to_s, 2)
else
self.contents.draw_text_outline2(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text_outline2(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text_outline2(x + 256, y, 24, 32, number.to_s, 2)
end
end
#--------------------------------------------------------------------------
# ◠ヘルプテã‚スト更新
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end # class end
#========================================================================
# class Scene_Item
#========================================================================
class Scene_Item
#----------------------------------------------------------------------------------------------------------------
def main
#-----------------------------------------------------------
# Setting up all the images
@background = Sprite.new
@background.bitmap = RPG::Cache.picture("background"
@background.x = 0
@background.y = 0
#================help window pic====================
@help_picture = Sprite.new
@help_picture.bitmap = RPG::Cache.picture("helpwindow12"
@help_picture.x = 0
@help_picture.y = - 52
#=================Command=======================
@command1 = Sprite.new
@command1.bitmap = RPG::Cache.picture("cmscommand1"
@command1.x = 15
@command1.y = 40
@command1.z = 100
#=====================shadow=======================
@commands1 = Sprite.new
@commands1.bitmap = RPG::Cache.picture("cmscommandshadow"
@commands1.x = 20
@commands1.y = 45
@commands1.z = 1
@commands1.opacity = 155
#===================item window======================
@item_picture = Sprite.new
@item_picture.bitmap = RPG::Cache.picture("itemwindow"
@item_picture.x = 7
@item_picture.y = 509
@item_picture.z = 11
#===============================================
@item_shadow = Sprite.new
@item_shadow.bitmap = RPG::Cache.picture("itemshadow"
@item_shadow.x = 12
@item_shadow.y = 514
@item_shadow.z = 1
@item_shadow.opacity = 155
#===============================================
@help_window = Window_Menuhelp.new
@command_window = Window_Command_Item.new
@item_window = Window_Item.new(@command_window.commands_id[@command_window.index]
@item_window.help_window = @help_window
@target_picture = Sprite.new
@target_picture.bitmap = RPG::Cache.picture("targetwindow"
@target_picture.z = 998
@target_picture.visible = false
@target_window = Window_Target.new
@target_window.z = 999
@target_window.opacity = 0
@target_window.visible = false
@target_window.active = false
#-----------------------------------------------------------
@command_window.active = true
@command_window.visible = true
@item_window.active = false
@target_window.visible = false
@target_window.active = false
#-----------------------------------------------------------
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
#-----------------------------------------------------------
@help_window.dispose
@item_window.dispose
@target_window.dispose
@command_window.dispose
@target_picture.bitmap.dispose
@background.dispose
@command1.dispose
@commands1.dispose
@help_picture.dispose
@item_shadow.dispose
end
#----------------------------------------------------------------------------------------------------------------
def update
#-----------------------------------------------------------
@item_window.update
@target_window.update
@command_window.update
@help_window.update
@command1.update
#-----------------------------------------------------------
# enter animation
if @item_shadow.y > 114
@item_shadow.y -= 50
end
if @item_picture.y > 159
@item_picture.y -= 50
end
if @item_window.y > 150
@item_window.y -= 50
end
if @help_picture.y < - 4
@help_picture.y += 24
end
if @help_window.y < - 7
@help_window.y += 35
end
if @command1.x < 215
@command1.x += 100
end
if @command1.y < 50
@command1.y += 5
end
if @commands1.x < 220
@commands1.x += 100
end
if @commands1.y < 55
@commands1.y += 5
end
if @item_window.active
update_item
return
end
#-----------------------------------------------------------
if @target_window.active
update_target
return
end
#-----------------------------------------------------------
if @command_window.active
update_command
return
end
end
#--------------------------------------------------------------------------
def delay(seconds)
for i in 0...(seconds * 1)
sleep 0.01
Graphics.update
end
end
#----------------------------------------------------------------------------------------------------------------
def update_item
#-----------------------------------------------------------
@help_window.update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
loop do
if @item_shadow.y < 480
@item_shadow.y += 50
end
if @item_picture.y < 480
@item_picture.y += 50
end
if @item_window.y < 480
@item_window.y += 50
end
if @help_picture.y > - 50
@help_picture.y -= 30
end
if @help_window.y > - 64
@help_window.y -= 30
end
if @command1.x > 15
@command1.x -= 100
end
if @command1.y > 40
@command1.y -= 5
end
if @commands1.x > 20
@commands1.x -= 100
end
if @commands1.y > 45
@commands1.y -= 5
end
delay(0.2)
if @item_picture.y >= 480
break
end
end
@command_window.active = true
@command_window.visible = true
@item_window.active = false
@item_window.index = 0
return
end
#-----------------------------------------------------------
if Input.trigger?(Input::C)
@item = @item_window.item
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.buzzer_se)
return
end
unless $game_party.item_can_use?(@item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
if @item.scope >= 3
@item_window.active = false
@target_window.x = (@item_window.index + 1) % 2 * 304
@target_picture.x = (@item_window.index + 1) % 2 * 304
@target_picture.visible = true
@target_window.visible = true
@target_window.active = true
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
else
if @item.common_event_id > 0
$game_temp.common_event_id = @item.common_event_id
$game_system.se_play(@item.menu_se)
#-----------------------------------------------------------
if @item.consumable
$game_party.lose_item(@item.id, 1)
@item_window.draw_item(@item_window.index)
end
$scene = Scene_Map.new
return
end
end
return
end
end
#----------------------------------------------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT)
@item_window.refresh(@command_window.commands_id[@command_window.index]
end
#-----------------------------------------------------------
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(0)
return
end
#-----------------------------------------------------------
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
@item_window.active = true
@command_window.active = false
return
end
end
#----------------------------------------------------------------------------------------------------------------
def update_target
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# If unable to use because items ran out
unless $game_party.item_can_use?(@item.id)
# Remake item window contents
@item_window.refresh(@command_window.commands_id[@command_window.index]
end
# Erase target window
@item_window.active = true
@target_window.visible = false
@target_picture.visible = false
@target_window.active = false
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# If items are used up
if $game_party.item_number(@item.id) == 0
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# If target is all
if @target_window.index == -1
# Apply item effects to entire party
used = false
for i in $game_party.actors
used |= i.item_effect(@item)
end
end
# If single target
if @target_window.index >= 0
# Apply item use effects to target actor
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
end
# If an item was used
if used
# Play item use SE
$game_system.se_play(@item.menu_se)
# If consumable
if @item.consumable
# Decrease used items by 1
$game_party.lose_item(@item.id, 1)
# Redraw item window item
@item_window.draw_item(@item_window.index)
end
# Remake target window contents
@target_window.refresh
# If all party members are dead
if $game_party.all_dead?
# Switch to game over screen
$scene = Scene_Gameover.new
return
end
# If common event ID is valid
if @item.common_event_id > 0
# Common event call reservation
$game_temp.common_event_id = @item.common_event_id
# Switch to map screen
$scene = Scene_Map.new
return
end
end
# If item wasn't used
unless used
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
######### FIN DE CLASSE ########################################
end
EDIT : C'est bon c'était bien self.opacity :