[Recrutement VX ACE] Moderne/SF : Ignis Impera

Projet en cours, démo ou jeu complet ? Faites-en la présentation/publicité.
Maeltar
Koruldia apprentice
Messages : 20

[Recrutement VX ACE] Moderne/SF : Ignis Impera

Message non lu par Maeltar » jeu. août 22, 2013 12:39 am

Bonjour à tous, je suis actuellement en pleine création d'un projet de jeu de rôle.

Monde

L'histoire se passe dans un futur proche, la recherche génétique et technologique a permis la création d'une forme de magie, la Mancie, qui permet de manier l'énergie selon sa volonté.
Les rares possesseurs d'un gêne étrange appelé Catalyste sont les seuls à pouvoir la manier. Pour cela, les deux départements de recherche se sont liés pour améliorer le procédé. Ils ont découverts qu'alliés à une puissante mixture appelée "L'encre", les possesseurs de ce gêne emmagasinaient des quantités incroyables d'énergie.

Histoire

Le scénario se divise en plusieurs arcs historiques.
Le premier se déroule lors de la troisième guerre de la région de Centrale, Les nations d'Arepha, Gam et Epsil se disputent l'île d'Aklyna, aux ressources minières abondantes en or et platine. Arepha a gangé la première bataille contre Gam et s'est retrouvé immobilisé tandis que Epsil reprenait du terrain, détruisant le port de ressources d'Arepha sur l'île.
Vous contrôlez Valym, Crystal et Zalen, un trio de Manciens d'Elite d'Arepha, les premiers à avoir rejoint la division de l'Armée Mancienne.
Votre mission est de sécuriser les avant-postes , saisir les camps et contrôler le port et les mines ennemis.

Image
(C'est en anglais, car c'était pour un forum anglais)
Image


Mancie

On distingue 4 types de mancie, dont un est divisé en deux branches :
-Transfert : Plier l’énergie pour en faire une attaque élémentaire grace à un transfert de sa propre énergie. Le feu et la glace sont crées par la friction et la chaleur, la foudre et le vent par les mouvements (Electricité statique, énergie mécanique) et certaines, rares, personnes peuvent modifier la structure des molécules pour créer de l’eau avec de l’air (combinaison moléculaire Hydrogène et Oxygène mais cela demande beaucoup de pratique et des connaissances en chimie.
-Mouvement : Comme la télékinésie, permet de bouger l’énergie autour de quelque chose (terre, eau, feu, objets lourds, personnes etc…)
-Mentale : Etat et Contrôle : Une sorte de couple, c’est le contrôle de l’énergie à l’intérieur d’une autre personne. Statut cause des modifications de santé (poison, lourdeur, panique, sommeil) et Contrôle de prendre possession du corps d’une personne (la personne et consciente du moindre de ses faits et gestes contrôlés).
-Création est le type d’énérgie la plus puissante, avec une habileté extreme vient le pouvoir de recréer complètement la structure d’un objet et de la teleporter quelque part ou simplement de l’arranger en quelque chose de nouveau. Il faut un entrainement dur et des connaissances chimiques et physique. La seule personne à notre connaissance, capable de l’utiliser est décédée après avoir tentée de se recréer un corps plus jeune. Il n’y a pas d’autres utilisateurs connus.

Image

Détails sur le jeu

- Moderne, Science fiction.
- Plusieurs héros prévus (une dizaine) et des vendeurs, des randoms qui viendront peupler le QG des héros.
- Des combats rapides au tour par tour avec Attaques de mélées, Attaques d’énergie, Techniques, Objets, Attaques combinées…
- Des duels entre deux personnages
- Une bonne dose de quêtes annexes sur l’univers, les personages et pour obtenir des personnages
- Un système de technique/sorts basés sur l’évolution (niveau E à S)

Recrutement

Je suis concepteur, eventer, mapper, je me lance dans le spriting (difficilement)
Voici ce que je recherche :

- Spriters (Dans l’éventualité d’une commercialisation)
Au moins 2 personnes :
1 pour des Charsets
(j’utilise actuellement le RTP custom de ACE)
1 pour les Tile sets
(J’utilise tout et n’importe quoi, don’t des trucs trouvés sur le net sans nom, et du coup je ne peux ni créditer, ni leur demander l’autorisation)

- Son et musique
J’ai une personne sur le projet, mais un peu d’aide serait bienvenue.

- Artistes : (En plus de moi)
Artworks
Portraits
Scènes et Images

- Mappers (En plus de moi, toujours):
J’utilise le Parallax and Overlay Mapping

- Programmeurs (en plus de moi):
Scripters (“Ruby m’a tuer” j’arrive à rien !)
Eventer pour histoire, et SURTOUT un Battle system


Quelques cartes :

(Le metro est entièrement fonctionnel, l’animation est faite par moi mais je ne possède pas les tilesets utilisés, d'où la recherche de spriters)

Image

Image
Dernière modification par Maeltar le jeu. août 22, 2013 12:43 pm, modifié 1 fois.

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » jeu. août 22, 2013 12:21 pm

Oh, pas mal du tout, ça a de la gueule et ça a l'air intéressant ! J'aime bien les dessins des persos

Niveau sprite, fait attention à ne pas faire trop de différence de style entre ce que TU sprites et les sprites RM.
Je vise par exemple les bandes jaunes près du train, si tu regardes les "barrières" au dessus, tu sens qu'elles sont stylisées à la RM, alors que les bandes jaunes sont juste deux couleurs, suffit de regarder le carrelage juste en dessous des deux bandes de droites, tu peux voir qu'il y a une sorte de dégradé dessus, bah c'est pareil.
Si tu appliques ça, tes bandes donneront moins cette impression de "ressortir" du reste du décor. ( Après, tu les as peut-être pas sprité toi même, je sais pas )

En tout cas je suivrais ça, bon courage :dent:

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » jeu. août 22, 2013 12:44 pm

Nan, je ne fais pas les sprites moi-même, mais j'utilise diverses ressources en parallax et overlay, des fois ça colle pas trop, mais je sais pas du tout faire de pixel art, j'suis daltonien alors faire les dégradés de couleur j'y arrive pas !

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » jeu. août 22, 2013 1:13 pm

Ah oui d'accord... Dans ce cas t'es pardonné :dent:

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » ven. août 23, 2013 9:25 pm

Voilà pourquoi j'cherche des Spriters... j'arrive qu'à faire une base intéressante, après les ombres et tout je sais pas faire :p
Image

Avatar de l’utilisateur
KaYsEr
KoruTeam
KoruTeam
Messages : 5151
Localisation : Londres
Contact :

Message non lu par KaYsEr » ven. août 23, 2013 10:56 pm

Il est pas mal là, ça passe. (quelle base pour ça ? même si ça fait un peu RTP XP au feeling)
j'suis daltonien alors faire les dégradés de couleur j'y arrive pas !
Bascule ton Photoshop en mode dyschromatopsie, ça va mettre un environnement de couleur limité à ce que tu peux voir, et ensuite tu pourras même innover dans ce carcan limité. Les limitations ça offre souvent des tas de possibilités, c'est pareil pour tout le monde à différentes échelles (genre à la base le pixel art est né d'une limitation technique), en gros tu peux faire de ton handicap un avantage sans même être forcé de bosser en noir et blanc.
(même si ça aussi c'est une solution ;))
Image

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » ven. août 23, 2013 11:22 pm

Merci, j'utilise la base d'HalfKaizer.

En fait je cherche à donner un rendu le moins enfantin possible, l'histoire prenant un tournant pour le pire vers le milieu du premier arc.
Alors pour l'instant j'ai cette base, mais si j'en trouve une meilleure je bosserai sur celle-ci, quitte à refaire les persos (ça m’entraînera !)
Même si un spriter qui s'y connait bien serait le bienvenu vu la tonne de boulot à accomplir...

(Et je parle même pas du remappage du à la nouvelle base plus grande qui rendait les décors dignes d'une World map)

Avatar de l’utilisateur
Darxenas
Koruldia Divinity
Messages : 5138
Localisation : Kingersheim, France
Contact :

Message non lu par Darxenas » jeu. août 29, 2013 10:08 pm

Je vais pas trop m'étendre (sinon je vais retapisser tout le forum %) - c'est déjà mal barré), mais déjà, t'as un très bon niveau en dessin (super coup de crayon), et puis le concept de la Mancie c'est bien trouvé (ça change de l'habituelle Magie dont on sait pas exactement d'où elle vient mais qu'elle est là). Bon courage encore pour le projet, les screens sont pas mal aussi (mis à part peut-être les rais de lumière dans le second qui font bizarre, mais tu as une justification, donc t'es pardonné =P) !

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » ven. août 30, 2013 10:38 pm

Merci, pour l'instant le projet est un peu en stand by, je continue l'écriture et la conception mais je me suis arraché les cheveux en essayant de :
- comprendre le Ruby
- créer un système de carte à jouer (type Magic)
- créer un système de combat personnel
- utiliser des scripts déjà existants et avoir envie de me jeter par la fenêtre à cause des erreurs.

Donc, une petite pause making pour mieux redémarrer plus tard.
(Actuellement il doit y avoir 15/20 minutes de jouable mais majoritairement exploration d'un bateau et histoire puisque j'ai besoin d’enchaîner le tout par des combats)

Avatar de l’utilisateur
Darxenas
Koruldia Divinity
Messages : 5138
Localisation : Kingersheim, France
Contact :

Message non lu par Darxenas » sam. août 31, 2013 10:22 pm

Il y a pas de quoi. Je compatis pour la compréhension du Ruby (je me souviens que quand j'essayais d'apprendre le RGSS, je m'arrachais souvent les cheveux aussi). Aujourd'hui, disons que j'arrive à faire ce que je veux (plus ou moins), donc t'y arriveras aussi, c'est certain.

Il y a pas d'astuce particulière : chaque ligne de code sert à faire quelque chose de précis. Faut voir les autres scripts de la manière dont ils sont écrits, zieuter la FAQ avec le log pour les quelques mots chelous et faire pas mal d'expérimentations.

Mais si jamais tu te poses une question sur un truc ou un autre, tu peux toujours demander, peut-être qu'on pourra t'aider.

Pense aussi à l'event ceci dit, quand on s'en sert bien, ça peut être énorme aussi (et sans que ce soit aussi retors que le script). Courage !

Avatar de l’utilisateur
faza
Koruldia Hunter
Messages : 94
Contact :

Message non lu par faza » mar. sept. 03, 2013 10:19 am

Effectivement tu es humble à mon goût ton perso et très jolie ^^

Chaos17
Koruldia Warrior
Messages : 308
Localisation : France
Contact :

Message non lu par Chaos17 » sam. sept. 07, 2013 2:33 pm

Si c'est possible, je te conseil de garder le style de ton sprite, ca donnera un caché plus personel à ton jeu après faut voir sir les graphismes de Vx ace iront avec.
Image

Avatar de l’utilisateur
KaYsEr
KoruTeam
KoruTeam
Messages : 5151
Localisation : Londres
Contact :

Message non lu par KaYsEr » sam. sept. 07, 2013 5:07 pm

Comme dit Chaos17 tu peux garder ce sprite qui rend plus original et en effet faudra faire gaffe à l'intégration dans des décors style RTP VX, limite par contre sur du style XP ça passerait sans trop de mal, mais au pire un petit traitement peut suffire.

C'est souvent un truc difficile à fixer la cohésion sprite/décor... que ce soit en style graphique/charte, ou bien en coloration, voir même simplement les proportions, je dis ça car moi aussi j'y passe souvent pas mal de temps sur diverses maps, mais c'est aussi que selon les moments la caméra est plus ou moins proche de la scène donc ça complique les choses.
Image

Avatar de l’utilisateur
Darxenas
Koruldia Divinity
Messages : 5138
Localisation : Kingersheim, France
Contact :

Message non lu par Darxenas » lun. sept. 09, 2013 6:24 pm

Ah bah oui, le style est nickel !

Comme VDD, pour l'adapter vraiment au style du VX/VX Ace, à la rigueur, juste rendre les couleurs plus vives (quitte au pire à piper sur les couleurs des autres chara RTP pour avoir une palette).

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » ven. oct. 04, 2013 2:19 am

Salut les gens !

Petite UPDATE :
Après avoir perdu l'usage de mon ordinateur (mort dans d'atroces souffrances) il y a plusieurs semaines, j'ai pu en acheter un nouveau.
Heureusement, j'avais fait une sauvegarde de mes données sur un disque dur externe car il commençait à péter un plomb.

Je n'ai donc perdu aucune donnée relative au jeu ! OUF !
Et j'ai pu m'y remettre du coup. Je prépare une petite démo qui met l'histoire en place et propose quelques combats de début de jeu.
Il n'y aura pas grand chose, peut-être 15/20 minutes de jeu.

Petits problèmes cependant !
- Je n'ai pas encore trouvé de script de système de combat que je puisse modifier pour arriver à l'idée que j'ai en tête.
- Certaines options ne seront pas encore disponibles, comme la Base de Données des Personnages (même si le jeu vous dit que la fiche est disponible, elle ne l'est pas :p)
- Rien n'est custom pour l'instant, j'essaie d'abord de monter un scénar qui accroche et on verra bien après.

Avatar de l’utilisateur
KaYsEr
KoruTeam
KoruTeam
Messages : 5151
Localisation : Londres
Contact :

Message non lu par KaYsEr » ven. oct. 04, 2013 2:56 am

C'est vrai que finalement les scripts de systèmes de combat se ressemblent tous un peu et parfois ressemblent surtout trop à celui d'origine en mode side-view ou similaire. Celui par défaut sans rien en bonus faut avouer que c'est super austère, je veux dire même Final Fantasy Mystic Quest a un truc plus complexe limite en interface et tout... 'Fin bref ça bouge mieux. Dans RM tout est statique sauf le machin de sélection et une fois que tu lances ton attaque, tant que tu fais rien c'est un screenshot le truc.

Bon courage pour le système, pas de la tarte ça fait des semaines que je suis sur l'étude de ça, visuel et gamedesign à la fois, et c'est le gros d'un RPG donc faut pas lésiner c'est sûr.
Image

Avatar de l’utilisateur
Darxenas
Koruldia Divinity
Messages : 5138
Localisation : Kingersheim, France
Contact :

Message non lu par Darxenas » sam. oct. 05, 2013 10:28 pm

C'est vrai, les systèmes de combat, c'est ce qu'il y a de plus galère ! Je suis un peu mal placé pour parler me concernant (étant donné que le mien n'est pas des plus grandioses et impressionnant) mais le peu que j'ai fait, j'en ai bavé aussi.

Bon ceci dit, je pense que ça peut être pire avec un logiciel autre que RM (où il faut recoder tout à 100%), là il y a au moins la base pour retravailler dessus, et comme dit Kayz, on peut faire du debug très rapidement et facilement (sans trop se prendre la tête).

Dans tous les cas, je vous souhaite bien du courage messieurs !

Maeltar
Koruldia apprentice
Messages : 20

Message non lu par Maeltar » lun. oct. 21, 2013 2:02 pm

Salut à tous ! alors ça fait deux/trois jours que je cherche le moyen d'arriver à mes fins !

Voilà mon menu en ce moment.
Image

Ce que je veux faire c'est faire en sorte que le menu soit complètement à l'intérieur de la tablette, donc juste sur l'écran.
Savez-vous comment remanier la taille des fenêtres ?

J'utilise Yanfly Engine Ace Item Menu v1.02 pour mon menu.
Spoiler!
#==============================================================================
#
# ▼ Yanfly Engine Ace - Ace Item Menu v1.02
# -- Last Updated: 2012.01.05
# -- Level: Normal, Hard
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-ItemMenu"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.05 - Compatibility Update with Equip Dynamic Stats.
# 2012.01.03 - Started Script and Finished.
# - Compatibility Update with Ace Menu Engine.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# The Ace Item Menu offers more item categorization control and a better layout
# that simulatenously provides information regarding the items to the player,
# while keeping a good amount of the item list visible on screen at once. The
# script can also be customized to rearrange commands and categories.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Item Notetags - These notetags go in the item notebox in the database.
# -----------------------------------------------------------------------------
# <category: string>
# Places this object into the item category for "string". Whenever the selected
# category is highlighted in the Ace Item Menu command window, this object will
# be included and shown in the item window.
#
# <image: string>
# Uses a picture from Graphics\Pictures\ of your RPG Maker VX Ace Project's
# directory with the filename of "string" (without the extension) as the image
# picture shown in the Ace Item Menu.
#
# -----------------------------------------------------------------------------
# Weapon Notetags - These notetags go in the weapon notebox in the database.
# -----------------------------------------------------------------------------
# <category: string>
# Places this object into the item category for "string". Whenever the selected
# category is highlighted in the Ace Item Menu command window, this object will
# be included and shown in the item window.
#
# <image: string>
# Uses a picture from Graphics\Pictures\ of your RPG Maker VX Ace Project's
# directory with the filename of "string" (without the extension) as the image
# picture shown in the Ace Item Menu.
#
# -----------------------------------------------------------------------------
# Armour Notetags - These notetags go in the armour notebox in the database.
# -----------------------------------------------------------------------------
# <category: string>
# Places this object into the item category for "string". Whenever the selected
# category is highlighted in the Ace Item Menu command window, this object will
# be included and shown in the item window.
#
# <image: string>
# Uses a picture from Graphics\Pictures\ of your RPG Maker VX Ace Project's
# directory with the filename of "string" (without the extension) as the image
# picture shown in the Ace Item Menu.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================

module YEA
module ITEM

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Item Command Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This array adjusts what options appear in the initial item command window
# before the items are split into separate categories. Add commands, remove
# commands, or rearrange them. Here's a list of which does what:
#
# -------------------------------------------------------------------------
# :command Description
# -------------------------------------------------------------------------
# :item Opens up the various item categories. Default.
# :weapon Opens up the various weapon categories. Default.
# :armor Opens up the various armour categories. Default.
# :key_item Shows a list of the various key items. Default.
#
# :gogototori Requires Kread-EX's Go Go Totori Synthesis.
#
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
COMMANDS =[
:item, # Opens up the various item categories. Default.
:weapon, # Opens up the various weapon categories. Default.
:armor, # Opens up the various armour categories. Default.
:key_item, # Shows a list of the various key items. Default.
:gogototori, # Requires Kread-EX's Go Go Totori Synthesis.
# :custom1, # Custom command 1.
# :custom2, # Custom command 2.
] # Do not remove this.

#--------------------------------------------------------------------------
# - Item Custom Commands -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# For those who use scripts to that may produce unique effects for the item
# scene, use this hash to manage the custom commands for the Item Command
# Window. You can disable certain commands or prevent them from appearing
# by using switches. If you don't wish to bind them to a switch, set the
# proper switch to 0 for it to have no impact.
#--------------------------------------------------------------------------
CUSTOM_ITEM_COMMANDS ={
# :command => ["Display Name", EnableSwitch, ShowSwitch, Handler Method],
:gogototori => ["Synthesis", 103, 0, :command_totori],
:custom1 => [ "Custom Name", 0, 0, :command_name1],
:custom2 => [ "Custom Text", 102, 0, :command_name2],
} # Do not remove this.

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Item Type Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# These arrays adjusts and shows the various item types shown for Items,
# Weapons, and Armours. Note that when using :category symbols, the
# specific category shown will be equal to the text used for the Display
# and the included item must contain a category equal to the Display name.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This array contains the order for the Item categories.
ITEM_TYPES =[
# [ :symbol, "Display"],
[ :field, "Terrain"], # Shows Menu-usable items.
[ :battle, "Combat"], # Shows Battle-usable items.
[:category,"Matériaux"], # Categorized by <category: material>
[:category,"Echangeables"], # Categorized by <category : trade>
[:category,"Cartes"], # Categorized by <category : cards>
[:key_item, "Spéciaux"], # Shows all key items.
[ :all, "TOUS"], # Shows all usable items.
] # Do not remove this.

# This array contains the order for the Weapon categories.
WEAPON_TYPES =[
# [ :symbol, "Display"],
[ :types, "Types d'armes"], # Lists all of the individual weapon types.
[:category, "Technomancie"], # Categorized by <category: techno>
[:category, "Légendaire"], # Categorized by <category: legen>
[ :all, "All"], # Shows all weapons.
] # Do not remove this.

# This array contains the order for the Armour categories.
ARMOUR_TYPES =[
# [ :symbol, "Display"],
[ :slots, "Tous"], # Lists all of the individual armour slots.
[ :types, "Types d'armures"], # Lists all of the individual armours types.
[:category, "Technomancie"], # Categorized by <category: techno>
[:category, "Légendaire"], # Categorized by <category: legen>
[ :all, "All"], # Shows all armours.
] # Do not remove this.

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Item Status Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# The item status window displays information about the item in detail.
# Adjust the settings below to change the way the status window appears.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
STATUS_FONT_SIZE = 20 # Font size used for status window.
MAX_ICONS_DRAWN = 10 # Maximum number of icons drawn for states.

# The following adjusts the vocabulary used for the status window. Each
# of the vocabulary settings are self explanatory.
VOCAB_STATUS ={
:empty => "---", # Text used when nothing is shown.
:hp_recover => "Rend PE", # Text used for HP Recovery.
:mp_recover => "Rend PF", # Text used for MP Recovery.
:tp_recover => "Rend PT", # Text used for TP Recovery.
:tp_gain => "Gain PT", # Text used for TP Gain.
:applies => "Applique", # Text used for applied states and buffs.
:removes => "Enlève", # Text used for removed states and buffs.
} # Do not remove this.

end # ITEM
end # YEA

#==============================================================================
# ▼ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

module YEA
module REGEXP
module BASEITEM

CATEGORY = /<(?:CATEGORIES|category):[ ](.*)>/i
IMAGE = /<(?:IMAGE|image):[ ](.*)>/i

end # BASEITEM
end # REGEXP
end # YEA

#==============================================================================
# ■ Numeric
#==============================================================================

class Numeric

#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # $imported["YEA-CoreEngine"]

end # Numeric

#==============================================================================
# ■ Vocab
#==============================================================================

module Vocab

#--------------------------------------------------------------------------
# new method: self.item_status
#--------------------------------------------------------------------------
def self.item_status(type)
return YEA::ITEM::VOCAB_STATUS[type]
end

end # Vocab

#==============================================================================
# ■ DataManager
#==============================================================================

module DataManager

#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <<self; alias load_database_aim load_database; end
def self.load_database
load_database_aim
load_notetags_aim
end

#--------------------------------------------------------------------------
# new method: load_notetags_aim
#--------------------------------------------------------------------------
def self.load_notetags_aim
groups = [$data_items, $data_weapons, $data_armors]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_aim
end
end
end

end # DataManager

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================

class RPG::BaseItem

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :category
attr_accessor :image

#--------------------------------------------------------------------------
# common cache: load_notetags_aim
#--------------------------------------------------------------------------
def load_notetags_aim
@category = []
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::BASEITEM::CATEGORY
@category.push($1.upcase.to_s)
when YEA::REGEXP::BASEITEM::IMAGE
@image = $1.to_s
end
} # self.note.split
#---
end

end # RPG::BaseItem

#==============================================================================
# ■ Game_Temp
#==============================================================================

class Game_Temp

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :scene_item_index
attr_accessor :scene_item_oy

end # Game_Temp

#==============================================================================
# ■ Window_ItemList
#==============================================================================

class Window_ItemList < Window_Selectable

#--------------------------------------------------------------------------
# overwrite method: draw_item
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
return if item.nil?
rect = item_rect(index)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enable?(item), rect.width - 24)
draw_item_number(rect, item)
end

end # Window_ItemList

#==============================================================================
# ■ Window_ItemCommand
#==============================================================================

class Window_ItemCommand < Window_Command

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_reader :item_window

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y)
end

#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 160; end

#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; return 4; end

#--------------------------------------------------------------------------
# process_ok
#--------------------------------------------------------------------------
def process_ok
$game_temp.scene_item_index = index
$game_temp.scene_item_oy = self.oy
super
end

#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
for command in YEA::ITEM::COMMANDS
case command
#--- Default Commands ---
when :item
add_command(Vocab::item, :item)
when :weapon
add_command(Vocab::weapon, :weapon)
when :armor
add_command(Vocab::armor, :armor)
when :key_item
add_command(Vocab::key_item, :key_item)
#--- Imported ---
when :gogototori
next unless $imported["KRX-AlchemicSynthesis"]
process_custom_command(command)
#--- Custom Commands ---
else
process_custom_command(command)
end
end
end

#--------------------------------------------------------------------------
# process_custom_command
#--------------------------------------------------------------------------
def process_custom_command(command)
return unless YEA::ITEM::CUSTOM_ITEM_COMMANDS.include?(command)
show = YEA::ITEM::CUSTOM_ITEM_COMMANDS[command][2]
continue = show <= 0 ? true : $game_switches[show]
return unless continue
text = YEA::ITEM::CUSTOM_ITEM_COMMANDS[command][0]
switch = YEA::ITEM::CUSTOM_ITEM_COMMANDS[command][1]
enabled = switch <= 0 ? true : $game_switches[switch]
add_command(text, command, enabled)
end

#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
return unless self.active
@item_window.category = current_symbol if @item_window
end

#--------------------------------------------------------------------------
# item_window=
#--------------------------------------------------------------------------
def item_window=(item_window)
@item_window = item_window
update
end

end # Window_ItemCommand

#==============================================================================
# ■ Window_ItemType
#==============================================================================

class Window_ItemType < Window_Command

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_reader :item_window

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y)
deactivate
@type = nil
end

#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 160; end

#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; return 4; end

#--------------------------------------------------------------------------
# reveal
#--------------------------------------------------------------------------
def reveal(type)
@type = type
refresh
activate
select(0)
end

#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
return if @type.nil?
#---
case @type
when :item
commands = YEA::ITEM::ITEM_TYPES
when :weapon
commands = YEA::ITEM::WEAPON_TYPES
else
commands = YEA::ITEM::ARMOUR_TYPES
end
#---
for command in commands
case command[0]
#---
when :types
case @type
when :weapon
for i in 1...$data_system.weapon_types.size
name = $data_system.weapon_types
add_command(name, :w_type, true, i)
end
else
for i in 1...$data_system.armor_types.size
name = $data_system.armor_types
add_command(name, :a_type, true, i)
end
end
#---
when :slots
if $imported["YEA-AceEquipEngine"]
maximum = 1
for key in YEA::EQUIP::TYPES
maximum = [maximum, key[0]].max
end
else
maximum = 4
end
for i in 1..maximum
name = Vocab::etype(i)
add_command(name, :e_type, true, i) if name != ""
end
#---
else
add_command(command[1], command[0], true, @type)
end
end
end

#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
return unless self.active
@item_window.category = current_symbol if @item_window
end

#--------------------------------------------------------------------------
# item_window=
#--------------------------------------------------------------------------
def item_window=(item_window)
@item_window = item_window
update
end

end # Window_ItemType

#==============================================================================
# ■ Window_ItemList
#==============================================================================

class Window_ItemList < Window_Selectable

#--------------------------------------------------------------------------
# alias method: initialize
#--------------------------------------------------------------------------
alias window_itemlist_initialize_aim initialize
def initialize(dx, dy, dw, dh)
window_itemlist_initialize_aim(dx, dy, dw, dh)
@ext = :none
@name = ""
end

#--------------------------------------------------------------------------
# alias method: category=
#--------------------------------------------------------------------------
alias window_itemlist_category_aim category=
def category=(category)
if @types_window.nil?
window_itemlist_category_aim(category)
else
return unless update_types?(category)
@category = category
if @types_window.active
@name = @types_window.current_data[:name]
@ext = @types_window.current_ext
end
refresh
self.oy = 0
end
end

#--------------------------------------------------------------------------
# new method: update_types?
#--------------------------------------------------------------------------
def update_types?(category)
return true if @category != category
return false unless @types_window.active
if category == :category
return @name != @types_window.current_data[:name]
end
return @ext != @types_window.current_ext
end

#--------------------------------------------------------------------------
# new method: types_window=
#--------------------------------------------------------------------------
def types_window=(window)
@types_window = window
end

#--------------------------------------------------------------------------
# alias method: include?
#--------------------------------------------------------------------------
alias window_itemlist_include_aim include?
def include?(item)
if @types_window.nil?
return window_itemlist_include_aim(item)
else
return ace_item_menu_include?(item)
end
end

#--------------------------------------------------------------------------
# new method: ace_item_menu_include?
#--------------------------------------------------------------------------
def ace_item_menu_include?(item)
case @category
#---
when :field
return false unless item.is_a?(RPG::Item)
return item.menu_ok?
when :battle
return false unless item.is_a?(RPG::Item)
return item.battle_ok?
#---
when :w_type
return false unless item.is_a?(RPG::Weapon)
return item.wtype_id == @types_window.current_ext
when :a_type
return false unless item.is_a?(RPG::Armor)
return item.atype_id == @types_window.current_ext
when :e_type
return false unless item.is_a?(RPG::Armor)
return item.etype_id == @types_window.current_ext
#---
when :all
case @types_window.current_ext
when :item
return item.is_a?(RPG::Item)
when :weapon
return item.is_a?(RPG::Weapon)
else
return item.is_a?(RPG::Armor)
end
#---
when :category
case @types_window.current_ext
when :item
return false unless item.is_a?(RPG::Item)
when :weapon
return false unless item.is_a?(RPG::Weapon)
else
return false unless item.is_a?(RPG::Armor)
end
return item.category.include?(@types_window.current_data[:name].upcase)
#---
else
return window_itemlist_include_aim(item)
end
end

end # Window_ItemList

#==============================================================================
# ■ Window_ItemStatus
#==============================================================================

class Window_ItemStatus < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(dx, dy, item_window)
super(dx, dy, Graphics.width - dx, fitting_height(4))
@item_window = item_window
@item = nil
refresh
end

#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
update_item(@item_window.item)
end

#--------------------------------------------------------------------------
# update_item
#--------------------------------------------------------------------------
def update_item(item)
return if @item == item
@item = item
refresh
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
reset_font_settings
return draw_empty if @item.nil?
contents.font.size = YEA::ITEM::STATUS_FONT_SIZE
draw_item_image
draw_item_stats
draw_item_effects
end

#--------------------------------------------------------------------------
# draw_empty
#--------------------------------------------------------------------------
def draw_empty
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(1, 1, 94, 94)
contents.fill_rect(rect, colour)
dx = 96; dy = 0
dw = (contents.width - 96) / 2
for i in 0...8
draw_background_box(dx, dy, dw)
dx = dx >= 96 + dw ? 96 : 96 + dw
dy += line_height if dx == 96
end
end

#--------------------------------------------------------------------------
# draw_background_box
#--------------------------------------------------------------------------
def draw_background_box(dx, dy, dw)
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
contents.fill_rect(rect, colour)
end

#--------------------------------------------------------------------------
# draw_item_image
#--------------------------------------------------------------------------
def draw_item_image
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(1, 1, 94, 94)
contents.fill_rect(rect, colour)
if @item.image.nil?
icon_index = @item.icon_index
bitmap = Cache.system("Iconset")
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
target = Rect.new(0, 0, 96, 96)
contents.stretch_blt(target, bitmap, rect)
else
bitmap = Cache.picture(@item.image)
contents.blt(0, 0, bitmap, bitmap.rect, 255)
end
end

#--------------------------------------------------------------------------
# draw_item_stats
#--------------------------------------------------------------------------
def draw_item_stats
return unless @item.is_a?(RPG::Weapon) || @item.is_a?(RPG::Armor)
dx = 96; dy = 0
dw = (contents.width - 96) / 2
for i in 0...8
draw_equip_param(i, dx, dy, dw)
dx = dx >= 96 + dw ? 96 : 96 + dw
dy += line_height if dx == 96
end
end

#--------------------------------------------------------------------------
# draw_equip_param
#--------------------------------------------------------------------------
def draw_equip_param(param_id, dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::param(param_id))
if $imported["YEA-EquipDynamicStats"]
draw_percentage_param(param_id, dx, dy, dw)
else
draw_set_param(param_id, dx, dy, dw)
end
end

#--------------------------------------------------------------------------
# draw_percentage_param
#--------------------------------------------------------------------------
def draw_percentage_param(param_id, dx, dy, dw)
if @item.per_params[param_id] != 0 && @item.params[param_id] != 0
text = draw_set_param(param_id, dx, dy, dw)
dw -= text_size(text).width
draw_percent_param(param_id, dx, dy, dw)
elsif @item.per_params[param_id] != 0 && @item.params[param_id] == 0
draw_percent_param(param_id, dx, dy, dw)
else
draw_set_param(param_id, dx, dy, dw)
end
end

#--------------------------------------------------------------------------
# draw_set_param
#--------------------------------------------------------------------------
def draw_set_param(param_id, dx, dy, dw)
value = @item.params[param_id]
if $imported["YEA-EquipDynamicStats"] && @item.var_params[param_id] > 0
value += $game_variables[@item.var_params[param_id]] rescue 0
end
change_color(param_change_color(value), value != 0)
text = value.group
text = "+" + text if value > 0
draw_text(dx+4, dy, dw-8, line_height, text, 2)
return text
end

#--------------------------------------------------------------------------
# draw_percent_param
#--------------------------------------------------------------------------
def draw_percent_param(param_id, dx, dy, dw)
value = @item.per_params[param_id]
change_color(param_change_color(value))
text = (@item.per_params[param_id] * 100).to_i.group + "%"
text = "+" + text if @item.per_params[param_id] > 0
draw_text(dx+4, dy, dw-8, line_height, text, 2)
return text
end

#--------------------------------------------------------------------------
# draw_item_effects
#--------------------------------------------------------------------------
def draw_item_effects
return unless @item.is_a?(RPG::Item)
dx = 96; dy = 0
dw = (contents.width - 96) / 2
draw_hp_recover(dx, dy + line_height * 0, dw)
draw_mp_recover(dx, dy + line_height * 1, dw)
draw_tp_recover(dx + dw, dy + line_height * 0, dw)
draw_tp_gain(dx + dw, dy + line_height * 1, dw)
dw = contents.width - 96
draw_applies(dx, dy + line_height * 2, dw)
draw_removes(dx, dy + line_height * 3, dw)
end

#--------------------------------------------------------------------------
# draw_hp_recover
#--------------------------------------------------------------------------
def draw_hp_recover(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:hp_recover))
per = 0
set = 0
for effect in @item.effects
next unless effect.code == 11
per += (effect.value1 * 100).to_i
set += effect.value2.to_i
end
if per != 0 && set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
draw_text(dx+4, dy, dw-8, line_height, text, 2)
dw -= text_size(text).width
change_color(param_change_color(per))
text = per > 0 ? sprintf("+%s%%", per.group) : sprintf("%s%%", per.group)
draw_text(dx+4, dy, dw-8, line_height, text, 2)
return
elsif per != 0
change_color(param_change_color(per))
text = per > 0 ? sprintf("+%s%%", per.group) : sprintf("%s%%", per.group)
elsif set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
else
change_color(normal_color, false)
text = Vocab::item_status(:empty)
end
draw_text(dx+4, dy, dw-8, line_height, text, 2)
end

#--------------------------------------------------------------------------
# draw_mp_recover
#--------------------------------------------------------------------------
def draw_mp_recover(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:mp_recover))
per = 0
set = 0
for effect in @item.effects
next unless effect.code == 12
per += (effect.value1 * 100).to_i
set += effect.value2.to_i
end
if per != 0 && set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
draw_text(dx+4, dy, dw-8, line_height, text, 2)
dw -= text_size(text).width
change_color(param_change_color(per))
text = per > 0 ? sprintf("+%s%%", per.group) : sprintf("%s%%", per.group)
draw_text(dx+4, dy, dw-8, line_height, text, 2)
return
elsif per != 0
change_color(param_change_color(per))
text = per > 0 ? sprintf("+%s%%", per.group) : sprintf("%s%%", per.group)
elsif set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
else
change_color(normal_color, false)
text = Vocab::item_status(:empty)
end
draw_text(dx+4, dy, dw-8, line_height, text, 2)
end

#--------------------------------------------------------------------------
# draw_tp_recover
#--------------------------------------------------------------------------
def draw_tp_recover(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:tp_recover))
set = 0
for effect in @item.effects
next unless effect.code == 13
set += effect.value1.to_i
end
if set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
else
change_color(normal_color, false)
text = Vocab::item_status(:empty)
end
draw_text(dx+4, dy, dw-8, line_height, text, 2)
end

#--------------------------------------------------------------------------
# draw_tp_gain
#--------------------------------------------------------------------------
def draw_tp_gain(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:tp_gain))
set = @item.tp_gain
if set != 0
change_color(param_change_color(set))
text = set > 0 ? sprintf("+%s", set.group) : set.group
else
change_color(normal_color, false)
text = Vocab::item_status(:empty)
end
draw_text(dx+4, dy, dw-8, line_height, text, 2)
end

#--------------------------------------------------------------------------
# draw_applies
#--------------------------------------------------------------------------
def draw_applies(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:applies))
icons = []
for effect in @item.effects
case effect.code
when 21
next unless effect.value1 > 0
next if $data_states[effect.value1].nil?
icons.push($data_states[effect.data_id].icon_index)
when 31
icons.push($game_actors[1].buff_icon_index(1, effect.data_id))
when 32
icons.push($game_actors[1].buff_icon_index(-1, effect.data_id))
end
icons.delete(0)
break if icons.size >= YEA::ITEM::MAX_ICONS_DRAWN
end
draw_icons(dx, dy, dw, icons)
end

#--------------------------------------------------------------------------
# draw_removes
#--------------------------------------------------------------------------
def draw_removes(dx, dy, dw)
draw_background_box(dx, dy, dw)
change_color(system_color)
draw_text(dx+4, dy, dw-8, line_height, Vocab::item_status(:removes))
icons = []
for effect in @item.effects
case effect.code
when 22
next unless effect.value1 > 0
next if $data_states[effect.value1].nil?
icons.push($data_states[effect.data_id].icon_index)
when 33
icons.push($game_actors[1].buff_icon_index(1, effect.data_id))
when 34
icons.push($game_actors[1].buff_icon_index(-1, effect.data_id))
end
icons.delete(0)
break if icons.size >= YEA::ITEM::MAX_ICONS_DRAWN
end
draw_icons(dx, dy, dw, icons)
end

#--------------------------------------------------------------------------
# draw_icons
#--------------------------------------------------------------------------
def draw_icons(dx, dy, dw, icons)
dx += dw - 4
dx -= icons.size * 24
for icon_id in icons
draw_icon(icon_id, dx, dy)
dx += 24
end
if icons.size == 0
change_color(normal_color, false)
text = Vocab::item_status(:empty)
draw_text(4, dy, contents.width-8, line_height, text, 2)
end
end

end # Window_ItemStatus

#==============================================================================
# ■ Scene_Item
#==============================================================================

class Scene_Item < Scene_ItemBase

#--------------------------------------------------------------------------
# alias method: start
#--------------------------------------------------------------------------
alias scene_item_start_aim start
def start
scene_item_start_aim
create_types_window
create_status_window
relocate_windows
end

#--------------------------------------------------------------------------
# overwrite method: return_scene
#--------------------------------------------------------------------------
def return_scene
$game_temp.scene_item_index = nil
$game_temp.scene_item_oy = nil
super
end

#--------------------------------------------------------------------------
# overwrite method: create_category_window
#--------------------------------------------------------------------------
def create_category_window
wy = @help_window.height
@category_window = Window_ItemCommand.new(0, wy)
@category_window.viewport = @viewport
@category_window.help_window = @help_window
@category_window.y = @help_window.height
if !$game_temp.scene_item_index.nil?
@category_window.select($game_temp.scene_item_index)
@category_window.oy = $game_temp.scene_item_oy
end
$game_temp.scene_item_index = nil
$game_temp.scene_item_oy = nil
@category_window.set_handler(:ok, method(:on_category_ok))
@category_window.set_handler(:cancel, method(:return_scene))
@category_window.set_handler(:item, method(:open_types))
@category_window.set_handler(:weapon, method(:open_types))
@category_window.set_handler(:armor, method(:open_types))
process_custom_item_commands
end

#--------------------------------------------------------------------------
# new method: process_custom_item_commands
#--------------------------------------------------------------------------
def process_custom_item_commands
for command in YEA::ITEM::COMMANDS
next unless YEA::ITEM::CUSTOM_ITEM_COMMANDS.include?(command)
called_method = YEA::ITEM::CUSTOM_ITEM_COMMANDS[command][3]
@category_window.set_handler(command, method(called_method))
end
end

#--------------------------------------------------------------------------
# new method: create_types_window
#--------------------------------------------------------------------------
def create_types_window
wy = @category_window.y
@types_window = Window_ItemType.new(Graphics.width, wy)
@types_window.viewport = @viewport
@types_window.help_window = @help_window
@types_window.y = @help_window.height
@types_window.item_window = @item_window
@item_window.types_window = @types_window
@types_window.set_handler(:ok, method(:on_types_ok))
@types_window.set_handler(:cancel, method(:on_types_cancel))
end

#--------------------------------------------------------------------------
# new method: create_status_window
#--------------------------------------------------------------------------
def create_status_window
wx = @category_window.width
wy = @category_window.y
@status_window = Window_ItemStatus.new(wx, wy, @item_window)
@status_window.viewport = @viewport
end

#--------------------------------------------------------------------------
# new method: relocate_windows
#--------------------------------------------------------------------------
def relocate_windows
return unless $imported["YEA-AceMenuEngine"]
case Menu.help_window_location
when 0 # Top
@help_window.y = 0
@category_window.y = @help_window.height
@item_window.y = @category_window.y + @category_window.height
when 1 # Middle
@category_window.y = 0
@help_window.y = @category_window.height
@item_window.y = @help_window.y + @help_window.height
else # Bottom
@category_window.y = 0
@item_window.y = @category_window.height
@help_window.y = @item_window.y + @item_window.height
end
@types_window.y = @category_window.y
@status_window.y = @category_window.y
end

#--------------------------------------------------------------------------
# new method: open_categories
#--------------------------------------------------------------------------
def open_types
@category_window.x = Graphics.width
@types_window.x = 0
@types_window.reveal(@category_window.current_symbol)
end

#--------------------------------------------------------------------------
# new method: on_types_ok
#--------------------------------------------------------------------------
def on_types_ok
@item_window.activate
@item_window.select_last
end

#--------------------------------------------------------------------------
# new method: on_types_cancel
#--------------------------------------------------------------------------
def on_types_cancel
@category_window.x = 0
@category_window.activate
@types_window.unselect
@types_window.x = Graphics.width
end

#--------------------------------------------------------------------------
# alias method: on_item_cancel
#--------------------------------------------------------------------------
alias scene_item_on_item_cancel_aim on_item_cancel
def on_item_cancel
if @types_window.x <= 0
@item_window.unselect
@types_window.activate
else
scene_item_on_item_cancel_aim
end
end

#--------------------------------------------------------------------------
# new method: command_totori
#--------------------------------------------------------------------------
def command_totori
SceneManager.call(Scene_Alchemy)
end

#--------------------------------------------------------------------------
# new method: command_name1
#--------------------------------------------------------------------------
def command_name1
# Do nothing.
end

#--------------------------------------------------------------------------
# new method: command_name2
#--------------------------------------------------------------------------
def command_name2
# Do nothing.
end

end # Scene_Item

#==============================================================================
#
# ▼ End of File
#
#==============================================================================


Et MOG Wallpaper pour mettre une image au fond, mais je ne pense pas que ce soit bien utile.

Raytwo-x
Koruldia Master
Messages : 2041

Message non lu par Raytwo-x » mar. oct. 22, 2013 3:19 pm

Pardonne moi si je fais des fautes, j'ecris avec mon portable...
Normalement c'est simple, les window ont une position que tu peux definir manuellement (@window.x et @window.y)
Tu as juste à changer la position de tes fenetres dans le script et a en redimmendionner certaines pour qu'elles débordent pas du cadre.
Je te le ferai bien pour te montrer, mais j'ai pas VX Ace, désolé. :/

Avatar de l’utilisateur
KaYsEr
KoruTeam
KoruTeam
Messages : 5151
Localisation : Londres
Contact :

Message non lu par KaYsEr » mar. oct. 22, 2013 6:49 pm

Et MOG Wallpaper pour mettre une image au fond, mais je ne pense pas que ce soit bien utile.
Heu oui, ce script là va t'afficher une image récurrente, donc le fond particulier que tu as fait (type menu) va pas s'adapter quand tu vas aller dans l'option des "STATUS" des perso par exemple, car ça sera le même truc alors que le tableau n'aura rien à voir.

Par contre pour le script de YanFly je connais pas je peux pas te dire en détail il est très long, mais ce que dis Raytwo est certainement ce que tu peux faire de mieux, éditer manuellement les valeurs.

Sinon j'ai déjà croisé des scripts de remake total du menu, donc tu peux chercher ça, parfois c'est moins efficace par contre, car il a beau être sobre celui par défaut va quand même bien droit au but et se manie très bien sur la durée, là j'en bouffe sans arrêt tous les soirs et j'en sature pas donc c'est bon signe.
Image