- Elisa'Staffeux retraité
- Nombre de messages : 2924
Age : 26
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris
[Coco' ]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]
Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009
Hebdomaker - numéro 4 : Semaine du 28 janvier au 3 février
Dim 3 Fév 2013 - 14:39
C'est parti pour un nouvel Hebdomaker !
Projet de la semaine : La fleur de Romance – de RitoJS
Le projet de la semaine est donc La fleur de Romance, de RitoJS. D'un scénario très classique mais qui marche, ce projet a remporté la médaille d'argent de l'award de la meilleure histoire aux Alex d'or 2012.
Dans un monde féerique vivaient 2 races principales:
Les humains et les monstres. Ces 2 races avaient un point en commun: Ils étaient dénués d'émotion.
Ils pouvaient blesser ou tuer sans aucun remord, et c'est ce qu’ils faisaient car c'était pour eux le seul moyen de recevoir un semblant d'émotion.
Vivre, tuer, mourir: c'étaient les principales activités de ce monde jusqu'au jour où un humain pris contact avec une étrange fleur. Rien qu'au touché, il pouvait tout ressentir.
Colère, joie, tristesse, ennui, confiance, amour...
Le premier humain à avoir touché cette fleur le fit découvrir aux autres que ce soit monstre ou humain. Ils les arrachèrent une par une, ce qu’ils n’auraient pas dû car à force d'en arraché, leur descendance n'en n'aurons plus. Heureusement pour l'humain qui, grâce à sont fonctionnement de reproduction, pouvait donner leur gènes émotive à leur enfants.
Mais pour les monstres, ce fût différents. Dénué à nouveau d'émotions, ils recommencèrent à détruire tout ce qui bouge et ce qu'ils voyaient.
Cependant on raconte que ces fleurs ont été tous née de la fleur mère qui s'est camouflé sous forme humaine afin d'éviter une mort certaine.
Les humains nommèrent cette fleur: "La fleur de Romance"
Vous incarnerez Kilik, un jeune homme tout à fait normal qui vit une vie paisible mais qui se voit basculer par l'arriver d'une fille...
RitoJS parvient à nous faire facilement rentrer dans son jeu en partie grâce aux musiques de qualité composées par Donovan Sama (La Fleur de Romance a d'ailleurs reçu l'award des musiques originales). Vous pouvez d'ailleurs aller les écouter ici :
https://soundcloud.com/skyleo/sets/la-fleur-de-romance
Les musiques contribuent fortement à l'ambiance du jeu, elle sont agréables et nous rappellent certains rpg classiques comme Secret of Mana, Zelda ou encore FFIX, c'est un très bon point pour ce projet qui bénéficie déjà de plusieurs heures de jeu (6-7h).
Côté graphismes, on retrouve les tiles de Varkan, qui sont très beaux mais que l'on a tous beaucoup vus et revus. Néanmoins, le mapping est très réussi et le jeu profite de graphismes d'une homogénéité impeccable.
Si je devais reprocher quelque chose à cette map, ce serait que les divers éléments de la végétation foisonnent trop sans réelle cohérence.
Comme dans tout RPG qui se respecte, on y trouve les fameuses quêtes annexes, c'est cool. Le gameplay de ce jeu est plutôt classique, les combats sont dynamiques et leur niveau est bien dosé.
J'aime bien le principe des monstres (« Affect ») plus résistants à certains types d'armes (comme détaillé dans la présentation du jeu, certains résistent beaucoup aux armes de type Lame) : il est possible de changer de membre de l'équipe combattant pour pouvoir les battre. Ce n'est pas ce qu'il y a de plus original mais c'est un plus pour ce projet.
Passez voir le projet au sujet qui lui est dédié :
http://rpgmakervx.1fr1.net/t12275-vxace-la-fleur-de-romance
Bonne chance à RitoJS pour ce jeu très prometteur
Ressources de la semaine
Apprendre à se servir de XAS-A RPGCommençons tout de suite la rubrique avec un tutoriel de Kinjix pour apprendre à se servir de XAS-A RPG.
Passez le voir, il est très enrichissant :
http://rpgmakervx.1fr1.net/t13644-xas-a-rpg-savoir-se-servir-de-xas-a-rpg-partie-1-les-sorts#162249
Merci beaucoup à Kinjix:)
Ace Master Demo by Moghunter
Asagi nous partage une démo regroupant plusieurs scripts de Mog Hunter (si vous ne le connaissez pas, c'est un scripteur très doué.). Il se propose aussi pour vous aider à les utiliser. Merci à lui !
http://rpgmakervx.1fr1.net/t13629-ace-master-demo-by-moghunter
Script d'encyclopédie
Encore Asagi qui a posté cette fois-ci un script de Yanfly permettant de faire un bestiaire et une encyclopédie des armes et des objets.
- Code:
=begin
CSCA Encyclopedia
version: 1.2 (Released: April 29, 2012)
Created by: Casper667 from http://www.caspergaming.com/
Compatibility:
Should be compatible with almost any script.
IMPORTANT: ALL CSCA Scripts should be compatible with each other unless
otherwise noted.
Overwrites: none.
Aliases: create_command_window in Scene_Menu, make_command_list in
Window_MenuCommand, init_all_items and gain_item in Game_Party,
perform_collapse_effect in Game_Enemy
UPDATES:
version 1.1(April 14th, 2012):
- Added ability to set enemy/item/etc. to discovered through script call.
- Bestiary MaxHP and MaxMP listed at top of parameters now instead of bottom.
- Ability to restrict which items, armors, weapons, and enemies are shown to
the player based on their ID(you can restrict which ID the list goes up to)
version 1.2(April 29th, 2012)
- No more max items listed. If you want to leave an item/enemy/etc. unlisted now,
use the notetag <csca enc exclude>.
FFEATURES:
This script creates an encyclopedia, with the option to insert it into the
default main menu. The encyclopedia contains a seperate list for items, armors,
weapons, and monsters(called bestiary).
BESTIARY: Shows enemy sprite(centered), name, currency gain, exp gain,
3 drop items, number of that enemy defeated, and enemy parameters.
ITEMS: Shows sprite (stretched bigger), item name, key item status, price,
HP Effect, MP Effect, TP Gain, success rate, occasion(menu/battle/none/both),
and state applications and removals.
WEAPONS: Shows sprite (stretched bigger), weapon name, price, type, parameters,
speed bonus, state applications, and attack element.
ARMORS: Shows sprite (stretched bigger), armor name, slot, price, type,
parameters, state resists, and special effects(such as 2x gold).
SETUP
This script requires setup further down.
Instructions included below.
CREDIT & TERMS
Free to use in noncommercial games if credit is given to:
casper667 from http://www.caspergaming.com/
If using in commercial game, please contact me.
www.rpgmakervxace.net/user/193-casper667/
or
www.caspergaming.com
=end
module CSCA_ENCYCLOPEDIA # Don't touch this.
#######################
# NEW NOTEBOX FEATURE #
#######################
# If you have an item/whatever you don't want to be listed, put this notetag
# code in the item/whatever's notebox. <csca enc exclude>
# Miscellaneous options
ADD_TO_MENU = true # Add this script as a menu option? If you have a custom
# menu script that causes issues with this script, turn this to false.
# To call this script outside of the menu, use:
# SceneManager.call(Scene_CSCA_Encyclopedia)
TRIGGER = :C # Button used to toggle bestiary monster sprite and information.
MONSTER_OPACITY = 75 # Opacity of the monster sprite while toggled off.
# Range of valid numbers is 0 - 255, 0 being transparent.
VARIABLE = 0 # Variable ID. If you need to set an item/enemy/etc to discovered
# since the player defeats it in an abnormal way(possible bosses not "collapsing"
# etc.), set this variable to that enemy's(or item, etc.) ID. Then, make one
# of the following script calls:
#
# $game_party.csca_set_enemy_true # Sets enemy ID in variable to discovered
# $game_party.csca_set_item_true # Sets item ID in variable to discovered
# $game_party.csca_set_weapon_true # Sets weapon ID in variable to discovered
# $game_party.csca_set_armor_true # Sets armor ID in variable to discovered
#
# Set the variable to 0 if you do not plan on using this feature.
# Vocab. The following are text that appear in the windows.
BESTIARY = "Bestiare" # Bestiary Command
ITEM = "Objets" # Item Command
WEAPON = "Armes" # Weapon Command
ARMOR = "Armures" # Armor Command
TOTALS = "Tout" # Totals window centered text
B_TOTAL = "Bestiare" # Bestiary total text
I_TOTAL = "Objets" # Items total text
W_TOTAL = "Armes" # Weapons total text
A_TOTAL = "Armures" # Armors total text
SCENE_NAME = "Encyclopedie" # Name window displayed at top during scene.
COMMAND_NAME = "Encyclopedie" # Name of Menu Command(Only displayed if enabled)
UNKNOWN = "???" # Text to be displayed if item/monster/etc. is undiscovered.
# Description for items/skills/weapons/armors/enemies not yet discovered.
UNKNOWN_DESCR = "This %s has not\nbeen discovered yet." # \n = new line
# Text shown above the info window instruction players how to toggle opacity
# of the monster sprites.
TRIGGER_TEXT = "Press Action button to toggle bestiary sprites."
# Colors. These numbers correspond to the index of the color squares in
# the windowskin.
GOOD_COLOR = 3 # Color for positive effects
BAD_COLOR = 2 # Color for negative effects
ARMOR_TYPE = [] # Don't touch this
WEAPON_TYPE = [] # Don't touch this either.
ELEMENTS = [] # Don't touch this one either.
ARMOR_TYPE[0] = "None" # Text for no armor type.
ARMOR_TYPE[1] = "General Armor" # Text for armor type 1 in database.
ARMOR_TYPE[2] = "Magic Armor" # Text for armor type 2 in database.
ARMOR_TYPE[3] = "Light Armor" # Text for armor type 3 in database.
ARMOR_TYPE[4] = "Heavy Armor" # Text for armor type 4 in database.
ARMOR_TYPE[5] = "Small Shield" # Text for armor type 5 in database.
ARMOR_TYPE[6] = "Large Shield" # Text for armor type 6 in database.
WEAPON_TYPE[0] = "None" # Text for no weapon type.
WEAPON_TYPE[1] = "Axe" # Text for weapon type 1 in database.
WEAPON_TYPE[2] = "Claw" # Text for weapon type 2 in database.
WEAPON_TYPE[3] = "Spear" # Text for weapon type 3 in database.
WEAPON_TYPE[4] = "Sword" # Text for weapon type 4 in database.
WEAPON_TYPE[5] = "Katana" # Text for weapon type 5 in database.
WEAPON_TYPE[6] = "Bow" # Text for weapon type 6 in database.
WEAPON_TYPE[7] = "Dagger" # Text for weapon type 7 in database.
WEAPON_TYPE[8] = "Hammer" # Text for weapon type 8 in database.
WEAPON_TYPE[9] = "Staff" # Text for weapon type 9 in database.
WEAPON_TYPE[10] = "Gun" # Text for weapon type 10 in database.
ELEMENTS[0] = "None" # Text for no element type.
ELEMENTS[1] = "Physical" # Text for element type 1 in database.
ELEMENTS[2] = "Absorb" # Text for element type 2 in database.
ELEMENTS[3] = "Fire" # Text for element type 3 in database.
ELEMENTS[4] = "Ice" # Text for element type 4 in database.
ELEMENTS[5] = "Thunder" # Text for element type 5 in database.
ELEMENTS[6] = "Water" # Text for element type 6 in database.
ELEMENTS[7] = "Earth" # Text for element type 7 in database.
ELEMENTS[8] = "Wind" # Text for element type 8 in database.
ELEMENTS[9] = "Holy" # Text for element type 9 in database.
ELEMENTS[10] = "Dark" # Text for element type 10 in database.
end # Don't touch this or anything below.
$imported = {} if $imported.nil?
$imported["CSCA-Encyclopedia"] = true
if CSCA_ENCYCLOPEDIA::ADD_TO_MENU
class Scene_Menu < Scene_MenuBase
alias csca_create_command_window create_command_window
def create_command_window
csca_create_command_window
@command_window.set_handler(:encyclopedia, method(:csca_encyclopedia_select))
end
def csca_encyclopedia_select
SceneManager.call(Scene_CSCA_Encyclopedia)
end
end
class Window_MenuCommand < Window_Command
alias csca_make_commands make_command_list
def make_command_list
add_main_commands
add_formation_command
add_original_commands
csca_add_custom_commands
add_save_command
add_game_end_command
end
def csca_add_custom_commands
add_command(CSCA_ENCYCLOPEDIA::COMMAND_NAME, :encyclopedia)
end
end
end # Add to menu?
class Scene_CSCA_Encyclopedia < Scene_MenuBase
def start
super
create_head_window
create_command_window
create_dummy_window
create_csca_info_window
create_totals_window
create_csca_list_window
end
def create_background
super
@background_sprite.tone.set(0, 0, 0, 128)
end
def create_command_window
@command_window = CSCA_Window_EncyclopediaMainSelect.new(0, @head_window.height)
@command_window.viewport = @viewport
@command_window.set_handler(:ok, method(:on_category_ok))
@command_window.set_handler(:cancel, method(:return_scene))
end
def create_head_window
@head_window = CSCA_Window_EncyclopediaMainHead.new(0, 0)
@head_window.viewport = @viewport
end
def create_dummy_window
wy = @command_window.y + @command_window.height
wh = Graphics.height - wy
@dummy_window = Window_Base.new(Graphics.width / 2, wy, Graphics.width / 2, wh)
@dummy_window.viewport = @viewport
end
def create_totals_window
wy = @head_window.height
wx = @command_window.width
wh = @command_window.height
wl = Graphics.width - @command_window.width
@total_window = CSCA_Window_EncyclopediaTotals.new(wx, wy, wl, wh)
@total_window.viewport = @viewport
end
def create_csca_list_window
height = @dummy_window.height
width = @dummy_window.width
wy = @dummy_window.y
@csca_list_window = CSCA_Window_ItemList.new(0, wy, width, height)
@csca_list_window.viewport = @viewport
@csca_list_window.help_window = @csca_info_window
@csca_list_window.set_handler(:cancel, method(:on_list_cancel))
@command_window.csca_list_window = @csca_list_window
end
def create_csca_info_window
wy = @command_window.y + @command_window.height
wh = Graphics.height - wy
@csca_info_window = CSCA_Window_EncyclopediaInfo.new(Graphics.width / 2, wy, Graphics.width / 2, wh)
@csca_info_window.viewport = @viewport
@csca_info_window.hide
end
def on_category_ok
@csca_list_window.activate
@csca_list_window.select(0)
@dummy_window.hide
@csca_info_window.show
end
def on_list_cancel
@csca_list_window.unselect
@command_window.activate
@csca_info_window.hide
@dummy_window.show
end
end
class CSCA_Window_EncyclopediaMainHead < Window_Base
def initialize(x, y)
super(x, y, 544, line_height * 2)
refresh
end
def refresh
contents.clear
draw_text(0, 0, contents.width, line_height, CSCA_ENCYCLOPEDIA::SCENE_NAME, 1)
end
end
class CSCA_Window_EncyclopediaTotals < Window_Base
def initialize(x, y, width, height)
super(x, y, width, height)
refresh
end
def refresh
contents.clear
bestiary_string_helper = $data_enemies.size - 1
for i in 0..$data_enemies.size
if $data_enemies[i].is_a?(RPG::Enemy)
bestiary_string_helper -= 1 if $data_enemies[i].csca_encyclopedia_exclude?
end
end
bestiary_string = CSCA_ENCYCLOPEDIA::B_TOTAL + ": " +
$game_party.enemies_discovered.to_s + "/" + bestiary_string_helper.to_s
items_string_helper = $game_party.csca_items.size - 2
for i in 0..$data_items.size
if $data_items[i].is_a?(RPG::Item)
items_string_helper -= 1 if $data_items[i].csca_encyclopedia_exclude?
end
end
items_string = CSCA_ENCYCLOPEDIA::I_TOTAL + ": " +
$game_party.items_discovered.to_s + "/" + items_string_helper.to_s
weapons_string_helper = $game_party.csca_weapons.size - 2
for i in 0..$data_weapons.size
if $data_weapons[i].is_a?(RPG::Weapon)
weapons_string_helper -= 1 if $data_weapons[i].csca_encyclopedia_exclude?
end
end
weapons_string = CSCA_ENCYCLOPEDIA::W_TOTAL + ": " +
$game_party.weapons_discovered.to_s + "/" + weapons_string_helper.to_s
armors_string_helper = $game_party.csca_armors.size - 2
for i in 0..$data_armors.size
if $data_armors[i].is_a?(RPG::Armor)
armors_string_helper -= 1 if $data_armors[i].csca_encyclopedia_exclude?
end
end
armors_string = CSCA_ENCYCLOPEDIA::A_TOTAL + ": " +
$game_party.armors_discovered.to_s + "/" + armors_string_helper.to_s
draw_text(0,0,contents.width,line_height,CSCA_ENCYCLOPEDIA::TOTALS, 1)
draw_text(0,line_height,contents.width/2,line_height,bestiary_string)
draw_text(0,line_height*2,contents.width/2,line_height,items_string)
draw_text(contents.width/2,line_height*2,contents.width/2,line_height,weapons_string)
draw_text(contents.width/2,line_height,contents.width/2,line_height,armors_string)
draw_text(0,line_height*3,contents.width+50,line_height,CSCA_ENCYCLOPEDIA::TRIGGER_TEXT)
end
end
class CSCA_Window_EncyclopediaInfo < Window_Base
def initialize(x, y, width, height)
super(x, y, width, height)
end
def set_text(text)
@text = text
draw_unknown_text
end
def clear
set_text("")
end
def set_item(item, sprite_in_front = 0)
contents.clear
contents.font.size = 24
if $game_party.encyclopedia_discovered(item)
if item.is_a?(RPG::Item)
draw_item_information(item)
elsif item.is_a?(RPG::Weapon)
draw_weapon_information(item)
elsif item.is_a?(RPG::Armor)
draw_armor_information(item)
elsif item.is_a?(RPG::Enemy)
if sprite_in_front == 1
csca_draw_enemy_sprite(item)
else
draw_enemy_information(item)
end
end
else
if item.is_a?(RPG::Item)
item_type = "item"
elsif item.is_a?(RPG::Weapon)
item_type = "weapon"
elsif item.is_a?(RPG::Armor)
item_type = "armor"
elsif item.is_a?(RPG::Enemy)
item_type = "enemy"
end
set_text(item ? sprintf(CSCA_ENCYCLOPEDIA::UNKNOWN_DESCR, item_type) : "")
end
end
def draw_unknown_text
draw_text_ex(4, 0, @text)
end
def draw_item_information(item)
csca_draw_icon(item)
csca_draw_name(item)
contents.font.size = 20
csca_draw_price(item)
item.key_item? ? key_item = "Yes" : key_item = "No"
draw_text(72,line_height,contents.width,line_height, "Key item: " + key_item)
draw_text(0,line_height*3,contents.width,line_height,"HP Effect:")
draw_text(0,line_height*4-4,contents.width,line_height,"MP Effect:")
draw_text(0,line_height*5-8,contents.width,line_height,"TP gain:")
draw_text(0,line_height*6-12,contents.width,line_height,"Applies:")
draw_text(0,line_height*7-10,contents.width,line_height,"Removes:")
occasion = ""
case item.occasion
when 0
occasion = "Always"
when 1
occasion = "Battle Only"
when 2
occasion = "Menu only"
when 3
occassion = "Never"
end
draw_text(0,line_height*8-10,contents.width,line_height,"Occasion: " + occasion)
draw_text(0,line_height*9-14,contents.width,line_height,"Success Rate: " + item.success_rate.to_s + "%")
cscatpgain = 0
for effect in item.effects
next unless effect.code == 13
cscatpgain += (effect.value1 * 100).to_i
end
cscatpgain += item.tp_gain
cscatpgain = 100 if cscatpgain > 100
change_color(text_color(CSCA_ENCYCLOPEDIA::GOOD_COLOR)) if cscatpgain > 0
cscatpgain > 0 ? string = "+" : string = ""
draw_text(70,line_height*5-8,contents.width,line_height,sprintf(string +
"%d%%", cscatpgain))
change_color(normal_color)
csca_draw_value(11, 85,line_height*3, item) # 11 = HP
csca_draw_value(12, 85,line_height*4-4, item) # 12 = MP
csca_draw_states(0,item)
csca_draw_states(1,item)
end
def draw_weapon_information(item)
csca_draw_icon(item)
csca_draw_name(item)
contents.font.size = 20
draw_text(72,line_height,contents.width,line_height,"Type:")
csca_draw_type(item,120,line_height,contents.width-120,line_height)
csca_draw_price(item)
csca_draw_all_params(item)
draw_text(0,line_height*7-16,contents.width,line_height,"Element:")
draw_text(0,line_height*8-20,contents.width,line_height,"Speed:")
draw_text(0,line_height*9-20,contents.width,line_height,"Applies:")
csca_draw_type(item,70,line_height*7-16,contents.width-70,line_height,1)
csca_draw_wpn_speed(item)
csca_draw_states(3,item)
end
def draw_armor_information(item)
csca_draw_icon(item)
csca_draw_name(item)
contents.font.size = 20
csca_draw_price(item)
case item.etype_id
when 1
type = "Shield"
when 2
type = "Head"
when 3
type = "Body"
when 4
type = "Accessory"
end
draw_text(72,line_height,contents.width,line_height, "Armor Slot: " + type)
csca_draw_all_params(item)
draw_text(0,line_height*7-12,contents.width,line_height,"Resists:")
draw_text(0,line_height*8-12,contents.width,line_height,"Armor Type:")
draw_text(0,line_height*9-16,contents.width,line_height,"Special:")
csca_draw_states(2,item)
csca_draw_type(item,95,line_height*8-12,contents.width-100,line_height)
string = "None"
for feature in item.features
case feature.code
when 64; string = feature.data_id
end
end
case string
when 0
string = "50% Encounter Rate"
when 1
string = "0% Encounter Rate"
when 2
string = "0% Surprise Rate"
when 3
string = "Raise Preemptive Rate"
when 4
string = "200% Gold Drop Rate"
when 5
string = "200% Item Drop Rate"
end
draw_text(70,line_height*9-16,contents.width,line_height,string)
end
def draw_enemy_information(item)
csca_draw_enemy_sprite(item, CSCA_ENCYCLOPEDIA::MONSTER_OPACITY)
csca_draw_name(item, 1)
contents.font.size = 20
csca_draw_enemy_rewards(item, 0, line_height)
csca_draw_enemy_rewards(item, 1, line_height*2-4)
csca_draw_all_params(item, 1)
draw_text(0,line_height*6,contents.width,line_height,"Treasures: 1.")
draw_text(88,line_height*7-4,contents.width,line_height,"2.")
draw_text(88,line_height*8-8,contents.width,line_height,"3.")
csca_draw_enemy_treasures(item)
string = $game_party.csca_enemies_defeated(item).to_s
draw_text(0,line_height*9-12,contents.width,line_height,"Number Defeated: " + string)
end
def csca_draw_enemy_sprite(item, opacity = 255)
bitmap = Cache.battler(item.battler_name, item.battler_hue)
rect = Rect.new(0,0,bitmap.width,bitmap.height)
x = (contents.width / 2) - (bitmap.width / 2)
y = (contents.height / 2) - (bitmap.height / 2)
if bitmap.width > contents.width && bitmap.height > contents.height
target = Rect.new(0, 0, contents.width, contents.height)
elsif bitmap.width > contents.width
target = Rect.new(0, y, contents.width, bitmap.height)
elsif bitmap.height > contents.height
target = Rect.new(x, 0, bitmap.width, contents.height)
else
target = Rect.new(x,y,bitmap.width,bitmap.height)
end
contents.stretch_blt(target, bitmap, rect, opacity)
end
def csca_draw_enemy_treasures(enemy)
drop1 = "Nothing"
drop2 = "Nothing"
drop3 = "Nothing"
items = []
for item in enemy.drop_items
if items[0].nil?
items[0] = item
next
end
if items[1].nil?
items[1] = item
next
end
items[2] = item
end
case items[0].kind
when 1; drop1 = $data_items[items[0].data_id].name
when 2; drop1 = $data_weapons[items[0].data_id].name
when 3; drop1 = $data_armors[items[0].data_id].name
end
case items[1].kind
when 1; drop2 = $data_items[items[1].data_id].name
when 2; drop2 = $data_weapons[items[1].data_id].name
when 3; drop2 = $data_armors[items[1].data_id].name
end
case items[2].kind
when 1; drop3 = $data_items[items[2].data_id].name
when 2; drop3 = $data_weapons[items[2].data_id].name
when 3; drop3 = $data_armors[items[2].data_id].name
end
draw_text(105,line_height*6,contents.width-96,line_height,drop1)
draw_text(105,line_height*7-4,contents.width-96,line_height,drop2)
draw_text(105,line_height*8-8,contents.width-96,line_height,drop3)
end
def csca_draw_enemy_rewards(item, type, y)
if type == 0
reward = item.gold
string1 = "Currency: "
string2 = Vocab::currency_unit
else
reward = item.exp
string1 = "Experience: "
string2 = ""
end
million = reward / 1000 / 1000
thousand = reward / 1000 % 1000
hundred = reward % 1000
if million >= 1
draw_text(0,y,contents.width,line_height,sprintf(string1 +
"%d,%03d,%03d" + string2, million, thousand, hundred))
elsif million == 0 && thousand >= 1
draw_text(0,y,contents.width,line_height,sprintf(string1 +
"%d,%03d" + string2, thousand, hundred))
else
draw_text(0,y,contents.width,line_height,sprintf(string1 +
"%d" + string2, hundred))
end
end
def csca_draw_icon(item)
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(-6, 0, 72, 72)
contents.stretch_blt(target, bitmap, rect)
end
def csca_draw_name(item, center = 0)
contents.font.bold = true
if center != 0
draw_text(0,0,contents.width,line_height,item.name,center)
else
draw_text(72,0,contents.width-72,line_height,item.name)
end
contents.font.bold = false
end
def csca_draw_price(item)
item_price = item.price
million = item_price / 1000 / 1000
thousand = item_price / 1000 % 1000
hundred = item_price % 1000
if million >= 1
draw_text(72,line_height*2-4,contents.width,line_height,sprintf("Price" +
": %d,%03d,%03d" + Vocab::currency_unit, million, thousand, hundred))
elsif million == 0 && thousand >= 1
draw_text(72,line_height*2-4,contents.width,line_height,sprintf("Price" +
": %d,%03d" + Vocab::currency_unit, thousand, hundred))
else
draw_text(72,line_height*2-4,contents.width,line_height,sprintf("Price" +
": %d" + Vocab::currency_unit, hundred))
end
end
def csca_draw_all_params(item, type = 0)
w = contents.width/2
if type == 0
y1 = line_height*3
y2 = line_height*4-4
y3 = line_height*5-8
y4 = line_height*6-12
else
y4 = line_height*3-8
y1 = line_height*4-12
y2 = line_height*5-16
y3 = line_height*6-20
end
draw_text(0,y1,contents.width,line_height,Vocab::param(2) + ":")
draw_text(w,y1,contents.width,line_height,Vocab::param(3) + ":")
draw_text(0,y2,contents.width,line_height,Vocab::param(4) + ":")
draw_text(w,y2,contents.width,line_height,Vocab::param(5) + ":")
draw_text(0,y3,contents.width,line_height,Vocab::param(6) + ":")
draw_text(w,y3,contents.width,line_height,Vocab::param(7) + ":")
draw_text(0,y4,contents.width,line_height,Vocab::param(0) + ":")
draw_text(w,y4,contents.width,line_height,Vocab::param(1) + ":")
csca_draw_param(2, item, 55,y1)
csca_draw_param(3, item, 180,y1)
csca_draw_param(4, item, 55,y2)
csca_draw_param(5, item, 180,y2)
csca_draw_param(6, item, 55,y3)
csca_draw_param(7, item, 180,y3)
csca_draw_param(0, item, 55,y4)
csca_draw_param(1, item, 180,y4)
end
def csca_draw_param(param_id, item, x, y)
parameter = item.params[param_id]
string = ""
if parameter > 0
unless item.is_a?(RPG::Enemy)
change_color(text_color(CSCA_ENCYCLOPEDIA::GOOD_COLOR))
string = "+"
end
elsif parameter < 0
change_color(text_color(CSCA_ENCYCLOPEDIA::BAD_COLOR))
string = ""
else
change_color(normal_color)
string = ""
end
string += parameter.to_s
draw_text(x,y,contents.width,line_height,string)
change_color(normal_color)
end
def csca_draw_type(item,x,y,w,h,wpn = 0)
if item.is_a?(RPG::Armor)
csca_array = CSCA_ENCYCLOPEDIA::ARMOR_TYPE
string = csca_array[item.atype_id]
elsif item.is_a?(RPG::Weapon)
case wpn
when 0
csca_array = CSCA_ENCYCLOPEDIA::WEAPON_TYPE
string = csca_array[item.wtype_id]
when 1
csca_array = CSCA_ENCYCLOPEDIA::ELEMENTS
for feature in item.features
case feature.code
when 31
string = csca_array[feature.data_id]
end
end
end
end
draw_text(x,y,w,h,string)
end
def csca_draw_wpn_speed(item)
speed = 0
for feature in item.features
case feature.code
when 33
speed += feature.value.to_i
end
end
if speed > 0
change_color(text_color(CSCA_ENCYCLOPEDIA::GOOD_COLOR))
string = "+"
elsif speed < 0
change_color(text_color(CSCA_ENCYCLOPEDIA::BAD_COLOR))
string = ""
else
change_color(normal_color)
string = ""
end
draw_text(50,line_height*8-20,contents.width,line_height,string + speed.to_s)
change_color(normal_color)
end
def csca_draw_value(code,x,y,item)
p = 0
c = 0
string = ""
for effect in item.effects
next unless effect.code == code
p = (effect.value1 * 100).to_i
c += effect.value2.to_i
end
c *= item.repeats
if c != 0
if c > 0
change_color(text_color(CSCA_ENCYCLOPEDIA::GOOD_COLOR))
string = "+"
else
change_color(text_color(CSCA_ENCYCLOPEDIA::BAD_COLOR))
string = ""
end
draw_text(x,y,contents.width,line_height,sprintf(string+"%d", c))
elsif p != 0
if p > 0
change_color(text_color(CSCA_ENCYCLOPEDIA::GOOD_COLOR))
string = "+"
else
change_color(text_color(CSCA_ENCYCLOPEDIA::BAD_COLOR))
string = ""
end
draw_text(x,y,contents.width,line_height,sprintf(string+"%d%%", p))
else
draw_text(x,y,contents.width,line_height,"0")
end
change_color(normal_color)
end
def csca_draw_states(applies,item)
icons = []
if item.is_a?(RPG::Item)
for effect in item.effects
if applies == 0
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)
end
icons.delete(0)
break if icons.size >= 7
else
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)
end
icons.delete(0)
break if icons.size >= 7
end
end
elsif item.is_a?(RPG::Armor)
for feature in item.features
case feature.code
when 14
icons.push($data_states[feature.data_id].icon_index)
end
icons.delete(0)
break if icons.size >= 7
end
else
for feature in item.features
case feature.code
when 32
icons.push($data_states[feature.data_id].icon_index)
end
icons.delete(0)
break if icons.size >= 7
end
end
case applies
when 0
y = line_height*6-12
when 1
y = line_height*7-10
when 2
y = line_height*7-12
when 3
y = line_height*9-20
end
csca_draw_icons(70, y, contents.width, icons)
end
def csca_draw_icons(x, y, width, icons)
for icon_id in icons
draw_icon(icon_id, x, y)
x += 24
end
if icons.size == 0
draw_text(70,y,contents.width,line_height,"Nothing")
end
end
end
class CSCA_Window_EncyclopediaMainSelect < Window_Command
attr_reader :csca_list_window
def initialize(x, y)
super(x, y)
end
def visible_line_number
return 4
end
def update
super
@csca_list_window.category = current_symbol if @csca_list_window
end
def make_command_list
add_command(CSCA_ENCYCLOPEDIA::BESTIARY, :bestiary)
add_command(CSCA_ENCYCLOPEDIA::ITEM, :item)
add_command(CSCA_ENCYCLOPEDIA::WEAPON, :weapon)
add_command(CSCA_ENCYCLOPEDIA::ARMOR, :armor)
end
def csca_list_window=(csca_list_window)
@csca_list_window = csca_list_window
update
end
end
class CSCA_Window_ItemList < Window_Selectable
def initialize(x, y, width, height)
super
@category = :none
@data = []
@csca_monster_in_front = false
end
def self.csca_category
@category
end
def category=(category)
return if @category == category
@category = category
refresh
self.oy = 0
end
def item_max
@data ? @data.size : 1
end
def item
@data && index >= 0 ? @data[index] : nil
end
def include?(item)
case @category
when :bestiary
item.is_a?(RPG::Enemy) && !item.csca_encyclopedia_exclude?
when :item
item.is_a?(RPG::Item) && !item.csca_encyclopedia_exclude?
when :weapon
item.is_a?(RPG::Weapon) && !item.csca_encyclopedia_exclude?
when :armor
item.is_a?(RPG::Armor) && !item.csca_encyclopedia_exclude?
else
false
end
end
def make_item_list
@data = $data_items.select {|item| include?(item) }
@data += $data_weapons.select {|item| include?(item) }
@data += $data_armors.select {|item| include?(item) }
@data += $data_enemies.select {|item| include?(item) }
@data.push(nil) if include?(nil)
end
def draw_item(index)
item = @data[index]
if item
rect = item_rect(index)
rect.width -= 4
draw_item_id(rect, index)
if $game_party.encyclopedia_discovered(item)
if item.is_a?(RPG::Enemy)
draw_text(rect.x + 40, rect.y, contents.width, line_height, item.name)
else
draw_item_name(item, rect.x + 40, rect.y, true)
end
else
draw_unknown_text(rect)
end
end
end
def draw_item_id(rect, index)
draw_text(rect, sprintf("%3d.", index + 1))
end
def draw_unknown_text(rect)
draw_text(rect, sprintf(" %s", CSCA_ENCYCLOPEDIA::UNKNOWN))
end
def update_help
if @category == :bestiary && @csca_monster_in_front == true
@help_window.set_item(item, 1)
else
@help_window.set_item(item, 0)
end
end
def refresh
refresh_button_input
make_item_list
create_contents
draw_all_items
end
def update
super
refresh_button_input
end
def refresh_button_input
if Input.trigger?(CSCA_ENCYCLOPEDIA::TRIGGER) && @csca_monster_in_front && @category == :bestiary
@csca_monster_in_front = false
Sound.play_ok
update_help
elsif Input.trigger?(CSCA_ENCYCLOPEDIA::TRIGGER) && !@csca_monster_in_front && @category == :bestiary
@csca_monster_in_front = true
Sound.play_ok
update_help
end
end
end
class Game_Party < Game_Unit
attr_reader :csca_enemies
attr_reader :csca_items
attr_reader :csca_weapons
attr_reader :csca_armors
attr_reader :csca_defeated_number
alias csca_init_all_items init_all_items
def init_all_items
csca_init_all_items
@csca_enemies = []
@csca_items = []
@csca_weapons = []
@csca_armors = []
@csca_defeated_number = []
@enemy_number = 0
csca_init_items_discovered
end
def csca_init_items_discovered
for i in 0..$data_enemies.size
@csca_enemies[i] = false
@csca_defeated_number[i] = 0
end
for i in 0..$data_items.size
@csca_items[i] = false
end
for i in 0..$data_weapons.size
@csca_weapons[i] = false
end
for i in 0..$data_armors.size
@csca_armors[i] = false
end
end
alias csca_gain_item gain_item
def gain_item(item, amount, include_equip = false)
csca_gain_item(item, amount)
csca_set_discovered(item)
end
def csca_set_discovered(item)
if item.is_a?(RPG::Item)
@csca_items[item.id] = true
elsif item.is_a?(RPG::Weapon)
@csca_weapons[item.id] = true
elsif item.is_a?(RPG::Armor)
@csca_armors[item.id] = true
elsif item.is_a?(RPG::Enemy)
@csca_enemies[item.id] = true
end
end
def csca_set_defeated(enemy)
@csca_defeated_number[enemy.id] += 1
end
def csca_enemies_defeated(enemy)
@csca_defeated_number[enemy.id]
end
def encyclopedia_discovered(item)
if item.is_a?(RPG::Item)
@csca_items[item.id]
elsif item.is_a?(RPG::Weapon)
@csca_weapons[item.id]
elsif item.is_a?(RPG::Armor)
@csca_armors[item.id]
elsif item.is_a?(RPG::Enemy)
@csca_enemies[item.id]
end
end
def enemies_discovered
number = 0
for i in 0..@csca_enemies.size
if @csca_enemies[i] == true && !$data_enemies[i].csca_encyclopedia_exclude?
number += 1
end
end
return number
end
def items_discovered
number = 0
for i in 0..@csca_items.size
if @csca_items[i] == true && !$data_items[i].csca_encyclopedia_exclude?
number += 1
end
end
return number
end
def weapons_discovered
number = 0
for i in 0..@csca_weapons.size
if @csca_weapons[i] == true && !$data_weapons[i].csca_encyclopedia_exclude?
number += 1
end
end
return number
end
def armors_discovered
number = 0
for i in 0..@csca_armors.size
if @csca_armors[i] == true && !$data_armors[i].csca_encyclopedia_exclude?
number += 1
end
end
return number
end
def csca_set_enemy_true
@csca_enemies[$game_variables[CSCA_ENCYCLOPEDIA::VARIABLE]] = true
end
def csca_set_item_true
@csca_items[$game_variables[CSCA_ENCYCLOPEDIA::VARIABLE]] = true
end
def csca_set_armor_true
@csca_armors[$game_variables[CSCA_ENCYCLOPEDIA::VARIABLE]] = true
end
def csca_set_weapon_true
@csca_weapons[$game_variables[CSCA_ENCYCLOPEDIA::VARIABLE]] = true
end
end
class Game_Enemy < Game_Battler
alias csca_collapse perform_collapse_effect
def perform_collapse_effect
csca_collapse
$game_party.csca_set_discovered(enemy)
$game_party.csca_set_defeated(enemy)
end
end
class RPG::BaseItem
def csca_encyclopedia_exclude?
@note =~ /<csca enc exclude>/i
end
end
Pas beaucoup de ressources cette semaine, on remercie tout de même les deux personnes nous ayant partagé ces ressources/tutos !
Je vous encourage tous à partager vos plus beaux charas/tiles et vos meilleurs scripts (je ferai de même, d'ailleurs)
Top 5 des meilleurs posteurs de la semaine
5ème place
Masamune arrive à la 5ème place de ce top avec 19 messages cette semaine !
4ème place
Somereal a posté 26 messages (de grands progrès, bravo x) ) et se place numéro 4 de ce classement.
Il n'est pas en haut du tableau mais est le meilleur posteur du mois de janvier.
3ème place
Le retour de Coco' dans les posteurs actifs lui permet d'atteindre la 3ème marche du podium !
2ème place
Davidkill a posté 27 messages cette semaine, pas de flood en plus, félicitations:)
1ère place
Et c'est Dave' qui arrive à la première place du classement (espèce de floodeur ) avec 34 messages !
Créations
Un screen d'écran titre de Cataclysm partagé sur le topic des screens III :
N'hésitez pas à en faire de même pour obtenir des remarques constructives à propos de vos maps et autres screens de votre jeu !
Divers
Vous pouvez participer au mapping show jusqu'au mercredi 6 février. Envoyez votre participation à ce lien :
http://rpgmakervx.1fr1.net/post?f=45&mode=newtopic
Passez voter pour votre histoire préférée des Folies Scénaristiques :
http://rpgmakervx.1fr1.net/t13670-vote-pour-la-1ere-partie-des-folies-scenaristiques-session-n01
Ah oui, et félicitations à Lunri pour cette très belle map aux graphismes originaux qui a remporté la dernière session :
Merci de la lecture et à la semaine prochaine pour un nouveau numéro !
- somerealMembre
- Nombre de messages : 378
Age : 27
Localisation : Belgium for ever!
Distinction : Use sans scrupule de blagues et remarques douteuses et délirantes. A prendre au 3e^n degré (où n est égal au nombre de neurones qu'ils vous reste après chaque lecture de ses commentaires). [Pharazon]
Date d'inscription : 14/01/2013
Re: Hebdomaker - numéro 4 : Semaine du 28 janvier au 3 février
Dim 3 Fév 2013 - 16:01
Cf"4ème place
Somereal a posté 26 messages (de grands progrès, bravo x) )"
pas compris, je suis descendu de 3 place et on me félicite... Pour ma par cette récente baisse de régime st due entièrement à Skyrim... Et à l'école aussi mais moins... Et oui, je viens de dépasser les 500heures de jeu...
Sinon, ça fait tojours plaisir d'être mister post pour janvier...
EDIT: en plus, on voit pas les post de coco', il a triché, il a triché, ordure, tricheur, maladrin, bandit, filou!
Somereal a posté 26 messages (de grands progrès, bravo x) )"
pas compris, je suis descendu de 3 place et on me félicite... Pour ma par cette récente baisse de régime st due entièrement à Skyrim... Et à l'école aussi mais moins... Et oui, je viens de dépasser les 500heures de jeu...
Sinon, ça fait tojours plaisir d'être mister post pour janvier...
EDIT: en plus, on voit pas les post de coco', il a triché, il a triché, ordure, tricheur, maladrin, bandit, filou!
- Elisa'Staffeux retraité
- Nombre de messages : 2924
Age : 26
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris
[Coco' ]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]
Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009
Re: Hebdomaker - numéro 4 : Semaine du 28 janvier au 3 février
Dim 3 Fév 2013 - 16:03
Et bien, au départ tu avais posté 130 messages, ou un truc du genre, je pense que tu as remarqué que personne dans le staff n'avait apprécié ton flood, maintenant ce flood a diminué et ça c'est un progrès.
- InvitéInvité
Re: Hebdomaker - numéro 4 : Semaine du 28 janvier au 3 février
Dim 3 Fév 2013 - 16:41
Yeah je suis actif c'est cool !! x)
- InvitéInvité
Re: Hebdomaker - numéro 4 : Semaine du 28 janvier au 3 février
Dim 3 Fév 2013 - 18:18
Comme d'habitude, très bonne news. Au passage, depuis le temps que je dis que je devrais tester des projets RM, je devrais me pencher sur La Fleur de Romance, c'est un projet qui a de la gueule (et un nom terriblement classe, au passage).
Je tiens toutefois à râler parce que sinon, c'est pas moi :
Cela ne contredit en rien ce que tu as dit, mais je m'en fiche, je suis un rebelle. De comptoir, certes, mais rebelle tout de même.
PS : J'ai juste remarqué que tu as oublié le mot "show" dans la phrase parlant de la prochaine session du mapping show. C'est qu'un détail insignifiant, mais ça m'a sauté aux yeux.
Je tiens toutefois à râler parce que sinon, c'est pas moi :
Je suis certes de la catégorie des gens pour qui le flood est un sacerdoce, un art de vivre, mais je l'ai fait proprement, dans les sections appropriées. Ca manque certes de l'aspect punk et brut de décoffrage de celui de somereal, et c'est pas non plus de la catégorie des messages ciselés et travaillés que je sortais avant, mais je tenais à le préciser, ceci est parfaitement légal, fait dans les règles de l'art qui plus est.Elisa' a écrit:Et c'est Dave' qui arrive à la première place du classement (espèce des floodeur ) avec 34 messages !
Cela ne contredit en rien ce que tu as dit, mais je m'en fiche, je suis un rebelle. De comptoir, certes, mais rebelle tout de même.
PS : J'ai juste remarqué que tu as oublié le mot "show" dans la phrase parlant de la prochaine session du mapping show. C'est qu'un détail insignifiant, mais ça m'a sauté aux yeux.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|