Jump to content
Rpg²S Forum

Ally

Utenti
  • Posts

    292
  • Joined

  • Last visited

Everything posted by Ally

  1. Si si tranquillo.Grazie mille ;-) PS:ti ho aggiunto ad MSN ^^
  2. Saresti così gentile da upparli e rimettere un link funzionante? :chirol_iei2:
  3. Si scusa correggo :P E' che scrivevo di fretta ^^
  4. Axel non vanno i link per gli altri giochi...potresti upparli?
  5. Tutorial Pixel-Art In questo tutorial spiegherò come creare una maglia per il vostro PG Original tutorial by HamsterMan Adapted and Traslated by -Haku-(Ally) Iniziamo con il nostro tutorial :D -Maglia Questo è solo un esempio di quello che potete fare al vostro PG,quindi prima di iniziare a farne uno vostro personalizzato assicuratevi di avere già in mente ciò che volete fare ;-) Scegli il colore che vuoi dalle palette.Io per questo esempio ho usato il blu. http://img61.imageshack.us/img61/5135/clothes1sq8.jpg Dato che abbiamo scelto il blu,prendi quello più scuro e iniziamo a tracciare i contorni per la maglia. http://img478.imageshack.us/img478/6145/clothes2ed1.jpg Ora,immagina una fonte di illuminazione,e colora quindi la parti che sembrano più scure. N.B:Questo è molto importante,perchè giocare con le ombre farà sembrare il tuo chara molto più realistico. Ecco un esempio: http://img478.imageshack.us/img478/8883/clothes3mb1.jpg Aggiungiamo ancora un pò più di ombreggiatura con il prossimo colore.Non andiamo a toccare la parte centrale del PG,ma concentriamoci con questo punto di andare a "toccare" il contorno delle braccia e quello delle spalle. http://img57.imageshack.us/img57/2118/clothes4ys0.jpg Aggiungiamo ancora un pò di ombreggiature,concentrandoci sulla parte bassa del corpo. http://img57.imageshack.us/img57/1884/clothes5mt7.jpg Aggiungiamo altre ombre.Concentriamoci sempre sulle spalle e sul braccio,e poi,anche sulla parte dello stomaco. Abbiamo quasi finito. http://img64.imageshack.us/img64/4206/clothes6qc1.jpg Riempiamo tutto il resto con un colore più leggero(sempre rimanendo con il nostro colore scelto). http://img373.imageshack.us/img373/8991/clothes7ji9.jpg Ecco qui la maglia del nostro chara finito http://img74.imageshack.us/img74/9691/clothes8ju9.jpg Perchè abbiamo creato diverse parti di sfumature?Il motivo è molto semplice: così facendo abbiamo creato delle ombre che fanno rendere molto più naturale e "vera" la maglia del nostro chara con effetti di ombra e luce. Spero che il tutorial vi sia utile.Molto presto posterò come creare i capelli e i pantaloni.
  6. Lasciate stare il mio messaggio scritto sopra....volevo dire solo a grazie(le persone a cui mi riferisco lo sanno il perchè)...però aprire un topic XD
  7. Fate e dite pure quello che volete...se era necessario aprire un topic...non mi sembra che abbiate tanto cervello...per dimostrare cosa poi?pensate alla vostra community che io penso alla mia và...
  8. Ally

    Affiliazioni

    Volevo sapere se era possibile un'affiliazione con voi... Questo è il bannerino: http://img230.imageshack.us/img230/3139/bannercopygy9.gif e questo è il link: www.rpgphoenix.it Se la cosa non è possibile....almeno ci ho provato XD... Appena possibile nel prossimo aggiornamento aggiungo anche io :*
  9. Menù FFVII + PHS 1. Descrizione Menù alla FFVII con l'aggiunta di un add-on,il PHS,una finestra per cambiare i personaggi del party. 2. Autore Jappo Traduction and Add-on by:Tio Il PHS funziona come l'opzione per salvare: se userete il comando dell'evento "Disallow saving", verrà disattivato pure il PHS.Per togliere quest'opzione eliminate questa stringa (riga 661): @command_window.disable_item(4) e più in basso queste stringhe(dalla 757 alla 760): if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end E ora veniamo al code. Prima di tutto create una classe sopra Main e copiateci tutto questo: #=============================================================== =============== # ■ Game_Actor #------------------------------------------------------------------------------ #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #=============================================================== =============== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :name # 名前 attr_reader :character_name # キャラクター ファイル名 attr_reader :character_hue # キャラクター 色相 attr_reader :class_id # クラス ID attr_reader :weapon_id # 武器 ID attr_reader :armor1_id # 盾 ID attr_reader :armor2_id # 頭防具 ID attr_reader :armor3_id # 体防具 ID attr_reader :armor4_id # 装飾品 ID attr_reader :level # レベル attr_reader :exp # EXP attr_reader :skills # スキル attr_accessor :fixed_member # 固定メンバーフラグ #-------------------------------------------------------------------------- # ● オブジェクト初期化 # actor_id : アクター ID #-------------------------------------------------------------------------- def initialize(actor_id) super() setup(actor_id) end #-------------------------------------------------------------------------- # ● セットアップ # actor_id : アクター ID #-------------------------------------------------------------------------- def setup(actor_id) actor = $data_actors[actor_id] @actor_id = actor_id @name = actor.name @character_name = actor.character_name @character_hue = actor.character_hue @battler_name = actor.battler_name @battler_hue = actor.battler_hue @class_id = actor.class_id @weapon_id = actor.weapon_id @armor1_id = actor.armor1_id @armor2_id = actor.armor2_id @armor3_id = actor.armor3_id @armor4_id = actor.armor4_id @level = actor.initial_level @exp_list = Array.new(101) make_exp_list @exp = @exp_list[@level] @skills = [] @hp = maxhp @sp = maxsp @states = [] @states_turn = {} @maxhp_plus = 0 @maxsp_plus = 0 @str_plus = 0 @dex_plus = 0 @agi_plus = 0 @int_plus = 0 @fixed_member = 0 # スキル習得 for i in 1..@level for j in $data_classes[@class_id].learnings if j.level == i learn_skill(j.skill_id) end end end # オートステートを更新 update_auto_state(nil, $data_armors[@armor1_id]) update_auto_state(nil, $data_armors[@armor2_id]) update_auto_state(nil, $data_armors[@armor3_id]) update_auto_state(nil, $data_armors[@armor4_id]) end #-------------------------------------------------------------------------- # ● アクター ID 取得 #-------------------------------------------------------------------------- def id return @actor_id end #-------------------------------------------------------------------------- # ● インデックス取得 #-------------------------------------------------------------------------- def index return $game_party.actors.index(self) end #-------------------------------------------------------------------------- # ● EXP 計算 #-------------------------------------------------------------------------- def make_exp_list actor = $data_actors[@actor_id] @exp_list[1] = 0 pow_i = 2.4 + actor.exp_inflation / 100.0 for i in 2..100 if i > actor.final_level @exp_list[i] = 0 else n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i) @exp_list[i] = @exp_list[i-1] + Integer(n) end end end #-------------------------------------------------------------------------- # ● 属性補正値の取得 # element_id : 属性 ID #-------------------------------------------------------------------------- def element_rate(element_id) # 属性有効度に対応する数値を取得 table = [0,200,150,100,50,0,-100] result = table[$data_classes[@class_id].element_ranks[element_id]] # 防具でこの属性が防御されている場合は半減 for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil and armor.guard_element_set.include?(element_id) result /= 2 end end # ステートでこの属性が防御されている場合は半減 for i in @states if $data_states[i].guard_element_set.include?(element_id) result /= 2 end end # メソッド終了 return result end #-------------------------------------------------------------------------- # ● ステート有効度の取得 #-------------------------------------------------------------------------- def state_ranks return $data_classes[@class_id].state_ranks end #-------------------------------------------------------------------------- # ● ステート防御判定 # state_id : ステート ID #-------------------------------------------------------------------------- def state_guard?(state_id) for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] armor = $data_armors[i] if armor != nil if armor.guard_state_set.include?(state_id) return true end end end return false end #-------------------------------------------------------------------------- # ● 通常攻撃の属性取得 #-------------------------------------------------------------------------- def element_set weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.element_set : [] end #-------------------------------------------------------------------------- # ● 通常攻撃のステート変化 (+) 取得 #-------------------------------------------------------------------------- def plus_state_set weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.plus_state_set : [] end #-------------------------------------------------------------------------- # ● 通常攻撃のステート変化 (-) 取得 #-------------------------------------------------------------------------- def minus_state_set weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.minus_state_set : [] end #-------------------------------------------------------------------------- # ● MaxHP の取得 #-------------------------------------------------------------------------- def maxhp n = [[base_maxhp + @maxhp_plus, 1].max, 9999].min for i in @states n *= $data_states[i].maxhp_rate / 100.0 end n = [[Integer(n), 1].max, 9999].min return n end #-------------------------------------------------------------------------- # ● 基本 MaxHP の取得 #-------------------------------------------------------------------------- def base_maxhp return $data_actors[@actor_id].parameters[0, @level] end #-------------------------------------------------------------------------- # ● 基本 MaxSP の取得 #-------------------------------------------------------------------------- def base_maxsp return $data_actors[@actor_id].parameters[1, @level] end #-------------------------------------------------------------------------- # ● 基本腕力の取得 #-------------------------------------------------------------------------- def base_str n = $data_actors[@actor_id].parameters[2, @level] weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.str_plus : 0 n += armor1 != nil ? armor1.str_plus : 0 n += armor2 != nil ? armor2.str_plus : 0 n += armor3 != nil ? armor3.str_plus : 0 n += armor4 != nil ? armor4.str_plus : 0 return [[n, 1].max, 999].min end #-------------------------------------------------------------------------- # ● 基本器用さの取得 #-------------------------------------------------------------------------- def base_dex n = $data_actors[@actor_id].parameters[3, @level] weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.dex_plus : 0 n += armor1 != nil ? armor1.dex_plus : 0 n += armor2 != nil ? armor2.dex_plus : 0 n += armor3 != nil ? armor3.dex_plus : 0 n += armor4 != nil ? armor4.dex_plus : 0 return [[n, 1].max, 999].min end #-------------------------------------------------------------------------- # ● 基本素早さの取得 #-------------------------------------------------------------------------- def base_agi n = $data_actors[@actor_id].parameters[4, @level] weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.agi_plus : 0 n += armor1 != nil ? armor1.agi_plus : 0 n += armor2 != nil ? armor2.agi_plus : 0 n += armor3 != nil ? armor3.agi_plus : 0 n += armor4 != nil ? armor4.agi_plus : 0 return [[n, 1].max, 999].min end #-------------------------------------------------------------------------- # ● 基本魔力の取得 #-------------------------------------------------------------------------- def base_int n = $data_actors[@actor_id].parameters[5, @level] weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] n += weapon != nil ? weapon.int_plus : 0 n += armor1 != nil ? armor1.int_plus : 0 n += armor2 != nil ? armor2.int_plus : 0 n += armor3 != nil ? armor3.int_plus : 0 n += armor4 != nil ? armor4.int_plus : 0 return [[n, 1].max, 999].min end #-------------------------------------------------------------------------- # ● 基本攻撃力の取得 #-------------------------------------------------------------------------- def base_atk weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.atk : 0 end #-------------------------------------------------------------------------- # ● 基本物理防御の取得 #-------------------------------------------------------------------------- def base_pdef weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] pdef1 = weapon != nil ? weapon.pdef : 0 pdef2 = armor1 != nil ? armor1.pdef : 0 pdef3 = armor2 != nil ? armor2.pdef : 0 pdef4 = armor3 != nil ? armor3.pdef : 0 pdef5 = armor4 != nil ? armor4.pdef : 0 return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 end #-------------------------------------------------------------------------- # ● 基本魔法防御の取得 #-------------------------------------------------------------------------- def base_mdef weapon = $data_weapons[@weapon_id] armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] mdef1 = weapon != nil ? weapon.mdef : 0 mdef2 = armor1 != nil ? armor1.mdef : 0 mdef3 = armor2 != nil ? armor2.mdef : 0 mdef4 = armor3 != nil ? armor3.mdef : 0 mdef5 = armor4 != nil ? armor4.mdef : 0 return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 end #-------------------------------------------------------------------------- # ● 基本回避修正の取得 #-------------------------------------------------------------------------- def base_eva armor1 = $data_armors[@armor1_id] armor2 = $data_armors[@armor2_id] armor3 = $data_armors[@armor3_id] armor4 = $data_armors[@armor4_id] eva1 = armor1 != nil ? armor1.eva : 0 eva2 = armor2 != nil ? armor2.eva : 0 eva3 = armor3 != nil ? armor3.eva : 0 eva4 = armor4 != nil ? armor4.eva : 0 return eva1 + eva2 + eva3 + eva4 end #-------------------------------------------------------------------------- # ● 通常攻撃 攻撃側アニメーション ID の取得 #-------------------------------------------------------------------------- def animation1_id weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.animation1_id : 0 end #-------------------------------------------------------------------------- # ● 通常攻撃 対象側アニメーション ID の取得 #-------------------------------------------------------------------------- def animation2_id weapon = $data_weapons[@weapon_id] return weapon != nil ? weapon.animation2_id : 0 end #-------------------------------------------------------------------------- # ● クラス名の取得 #-------------------------------------------------------------------------- def class_name return $data_classes[@class_id].name end #-------------------------------------------------------------------------- # ● EXP の文字列取得 #-------------------------------------------------------------------------- def exp_s return @exp_list[@level+1] > 0 ? @exp.to_s : "-------" end #-------------------------------------------------------------------------- # ● 次のレベルの EXP の文字列取得 #-------------------------------------------------------------------------- def next_exp_s return @exp_list[@level+1] > 0 ? @exp_list[@level+1].to_s : "-------" end #-------------------------------------------------------------------------- # ● 次のレベルまでの EXP の文字列取得 #-------------------------------------------------------------------------- def next_rest_exp_s return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp).to_s : "-------" end #-------------------------------------------------------------------------- # ● オートステートの更新 # old_armor : 外した防具 # new_armor : 装備した防具 #-------------------------------------------------------------------------- def update_auto_state(old_armor, new_armor) # 外した防具のオートステートを強制解除 if old_armor != nil and old_armor.auto_state_id != 0 remove_state(old_armor.auto_state_id, true) end # 装備した防具のオートステートを強制付加 if new_armor != nil and new_armor.auto_state_id != 0 add_state(new_armor.auto_state_id, true) end end #-------------------------------------------------------------------------- # ● 装備固定判定 # equip_type : 装備タイプ #-------------------------------------------------------------------------- def equip_fix?(equip_type) case equip_type when 0 # 武器 return $data_actors[@actor_id].weapon_fix when 1 # 盾 return $data_actors[@actor_id].armor1_fix when 2 # 頭 return $data_actors[@actor_id].armor2_fix when 3 # 身体 return $data_actors[@actor_id].armor3_fix when 4 # 装飾品 return $data_actors[@actor_id].armor4_fix end return false end #-------------------------------------------------------------------------- # ● 装備の変更 # equip_type : 装備タイプ # id : 武器 or 防具 ID (0 なら装備解除) #-------------------------------------------------------------------------- def equip(equip_type, id) case equip_type when 0 # 武器 if id == 0 or $game_party.weapon_number(id) > 0 $game_party.gain_weapon(@weapon_id, 1) @weapon_id = id $game_party.lose_weapon(id, 1) end when 1 # 盾 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor1_id], $data_armors[id]) $game_party.gain_armor(@armor1_id, 1) @armor1_id = id $game_party.lose_armor(id, 1) end when 2 # 頭 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor2_id], $data_armors[id]) $game_party.gain_armor(@armor2_id, 1) @armor2_id = id $game_party.lose_armor(id, 1) end when 3 # 身体 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor3_id], $data_armors[id]) $game_party.gain_armor(@armor3_id, 1) @armor3_id = id $game_party.lose_armor(id, 1) end when 4 # 装飾品 if id == 0 or $game_party.armor_number(id) > 0 update_auto_state($data_armors[@armor4_id], $data_armors[id]) $game_party.gain_armor(@armor4_id, 1) @armor4_id = id $game_party.lose_armor(id, 1) end end end #-------------------------------------------------------------------------- # ● 装備可能判定 # item : アイテム #-------------------------------------------------------------------------- def equippable?(item) # 武器の場合 if item.is_a?(RPG::Weapon) # 現在のクラスの装備可能な武器に含まれている場合 if $data_classes[@class_id].weapon_set.include?(item.id) return true end end # 防具の場合 if item.is_a?(RPG::Armor) # 現在のクラスの装備可能な防具に含まれている場合 if $data_classes[@class_id].armor_set.include?(item.id) return true end end return false end #-------------------------------------------------------------------------- # ● EXP の変更 # exp : 新しい EXP #-------------------------------------------------------------------------- def exp=(exp) @exp = [[exp, 9999999].min, 0].max # レベルアップ while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 @level += 1 # スキル習得 for j in $data_classes[@class_id].learnings if j.level == @level learn_skill(j.skill_id) end end end # レベルダウン while @exp < @exp_list[@level] @level -= 1 end # 現在の HP と SP が最大値を超えていたら修正 @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # ● レベルの変更 # level : 新しいレベル #-------------------------------------------------------------------------- def level=(level) # 上下限チェック level = [[level, $data_actors[@actor_id].final_level].min, 1].max # EXP を変更 self.exp = @exp_list[level] end #-------------------------------------------------------------------------- # ● スキルを覚える # skill_id : スキル ID #-------------------------------------------------------------------------- def learn_skill(skill_id) if skill_id > 0 and not skill_learn?(skill_id) @skills.push(skill_id) @skills.sort! end end #-------------------------------------------------------------------------- # ● スキルを忘れる # skill_id : スキル ID #-------------------------------------------------------------------------- def forget_skill(skill_id) @skills.delete(skill_id) end #-------------------------------------------------------------------------- # ● スキルの習得済み判定 # skill_id : スキル ID #-------------------------------------------------------------------------- def skill_learn?(skill_id) return @skills.include?(skill_id) end #-------------------------------------------------------------------------- # ● スキルの使用可能判定 # skill_id : スキル ID #-------------------------------------------------------------------------- def skill_can_use?(skill_id) if not skill_learn?(skill_id) return false end return super end #-------------------------------------------------------------------------- # ● 名前の変更 # name : 新しい名前 #-------------------------------------------------------------------------- def name=(name) @name = name end #-------------------------------------------------------------------------- # ● クラス ID の変更 # class_id : 新しいクラス ID #-------------------------------------------------------------------------- def class_id=(class_id) if $data_classes[class_id] != nil @class_id = class_id # 装備できなくなったアイテムを外す unless equippable?($data_weapons[@weapon_id]) equip(0, 0) end unless equippable?($data_armors[@armor1_id]) equip(1, 0) end unless equippable?($data_armors[@armor2_id]) equip(2, 0) end unless equippable?($data_armors[@armor3_id]) equip(3, 0) end unless equippable?($data_armors[@armor4_id]) equip(4, 0) end end end #-------------------------------------------------------------------------- # ● グラフィックの変更 # character_name : 新しいキャラクター ファイル名 # character_hue : 新しいキャラクター 色相 # battler_name : 新しいバトラー ファイル名 # battler_hue : 新しいバトラー 色相 #-------------------------------------------------------------------------- def set_graphic(character_name, character_hue, battler_name, battler_hue) @character_name = character_name @character_hue = character_hue @battler_name = battler_name @battler_hue = battler_hue end #-------------------------------------------------------------------------- # ● バトル画面 X 座標の取得 #-------------------------------------------------------------------------- def screen_x # パーティ内の並び順から X 座標を計算して返す if self.index != nil return self.index * 160 + 80 else return 0 end end #-------------------------------------------------------------------------- # ● バトル画面 Y 座標の取得 #-------------------------------------------------------------------------- def screen_y return 464 end #-------------------------------------------------------------------------- # ● バトル画面 Z 座標の取得 #-------------------------------------------------------------------------- def screen_z # パーティ内の並び順から Z 座標を計算して返す if self.index != nil return 4 - self.index else return 0 end end end Game_Party #=============================================================== =============== # ■ Game_Party #------------------------------------------------------------------------------ #  パーティを扱うクラスです。ゴールドやアイテムなどの惼br />?報が含まれます。このク # ラスのインスタンスは $game_party で参照されます。 #=============================================================== =============== class Game_Party #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :actors # アクター attr_reader :gold # ゴールド attr_reader :steps # 歩数 attr_accessor :member # パーティーメンバー #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize # アクターの配列を作成 @actors = [] # ゴールドと歩数を初期化 @gold = 0 @steps = 0 # アイテム、武器、防具の所持数ハッシュを作成 @items = {} @weapons = {} @armors = {} # PTメンバー用配列を作成 @member = [] end #-------------------------------------------------------------------------- # ● 初期パーティのセットアップ #-------------------------------------------------------------------------- def setup_starting_members @actors = [] for i in $data_system.party_members @actors.push($game_actors[i]) @member.push($game_actors[i].id) end @member.sort! end #-------------------------------------------------------------------------- # ● 戦闘テスト用パーティのセットアップ #-------------------------------------------------------------------------- def setup_battle_test_members @actors = [] for battler in $data_system.test_battlers actor = $game_actors[battler.actor_id] actor.level = battler.level gain_weapon(battler.weapon_id, 1) gain_armor(battler.armor1_id, 1) gain_armor(battler.armor2_id, 1) gain_armor(battler.armor3_id, 1) gain_armor(battler.armor4_id, 1) actor.equip(0, battler.weapon_id) actor.equip(1, battler.armor1_id) actor.equip(2, battler.armor2_id) actor.equip(3, battler.armor3_id) actor.equip(4, battler.armor4_id) actor.recover_all @actors.push(actor) end @items = {} for i in 1...$data_items.size if $data_items[i].name != "" occasion = $data_items[i].occasion if occasion == 0 or occasion == 1 @items[i] = 99 end end end end #-------------------------------------------------------------------------- # ● パーティメンバーのリフレッシュ #-------------------------------------------------------------------------- def refresh # ゲームデータをロードした直後はアクターオブジェクトが # $game_actors から分離してしまっている。 # ロードのたびにアクターを再設定することで問題を回避すゼbr />?。 new_actors = [] for i in 0...@actors.size if $data_actors[@actors[i].id] != nil new_actors.push($game_actors[@actors[i].id]) end end @actors = new_actors end #-------------------------------------------------------------------------- # ● 最大レベルの取得 #-------------------------------------------------------------------------- def max_level # パーティ人数が 0 人の場合 if @actors.size == 0 return 0 end # ローカル変数 level を初期化 level = 0 # パーティメンバーの最大レベルを求める for actor in @actors if level < actor.level level = actor.level end end return level end #-------------------------------------------------------------------------- # ● アクターを加える # actor_id : アクター ID #-------------------------------------------------------------------------- def add_actor(actor_id) # アクターを取得 actor = $game_actors[actor_id] # パーティ人数が 4 人未満で、このアクターがパーティにいない場合 if @actors.size < 4 and not @actors.include?(actor) # アクターを追加 @actors.push(actor) # プレイヤーをリフレッシュ $game_player.refresh end # パーティーメンバー配列にアクターID追加 unless @member.include?(actor.id) @member.push(actor.id) @member.sort! end end #-------------------------------------------------------------------------- # ● アクターを外す # actor_id : アクター ID #-------------------------------------------------------------------------- def remove_actor(actor_id) # アクターを削除 @actors.delete($game_actors[actor_id]) # プレイヤーをリフレッシュ $game_player.refresh # パーティーメンバー配列からアクターID削除 @member.delete(actor_id) end #-------------------------------------------------------------------------- # ● アクターを外す : 待機メンバーに配置 # actor_id : アクター ID #-------------------------------------------------------------------------- def wait_actor(actor_id) # アクターを削除 @actors.delete($game_actors[actor_id]) # プレイヤーをリフレッシュ $game_player.refresh end #-------------------------------------------------------------------------- # ● アクターを変更 # actor_id : アクター ID # index : 交換を行う位置 #-------------------------------------------------------------------------- def change_actor(actor_id, index) # アクターを変更 @actors[index] = $game_actors[actor_id] # プレイヤーをリフレッシュ $game_player.refresh end #-------------------------------------------------------------------------- # ● ゴールドの増加 (減少) # n : 金額 #-------------------------------------------------------------------------- def gain_gold(n) @gold = [[@gold + n, 0].max, 9999999].min end #-------------------------------------------------------------------------- # ● ゴールドの減少 # n : 金額 #-------------------------------------------------------------------------- def lose_gold(n) # 数値を逆転して gain_gold を呼ぶ gain_gold(-n) end #-------------------------------------------------------------------------- # ● 歩数増加 #-------------------------------------------------------------------------- def increase_steps @steps = [@steps + 1, 9999999].min end #-------------------------------------------------------------------------- # ● アイテムの所持数取得 # item_id : アイテム ID #-------------------------------------------------------------------------- def item_number(item_id) # ハッシュに個数データがあればその数値を、なければ 0 を返す return @items.include?(item_id) ? @items[item_id] : 0 end #-------------------------------------------------------------------------- # ● 武器の所持数取得 # weapon_id : 武器 ID #-------------------------------------------------------------------------- def weapon_number(weapon_id) # ハッシュに個数データがあればその数値を、なければ 0 を返す return @weapons.include?(weapon_id) ? @weapons[weapon_id] : 0 end #-------------------------------------------------------------------------- # ● 防具の所持数取得 # armor_id : 防具 ID #-------------------------------------------------------------------------- def armor_number(armor_id) # ハッシュに個数データがあればその数値を、なければ 0 を返す return @armors.include?(armor_id) ? @armors[armor_id] : 0 end #-------------------------------------------------------------------------- # ● アイテムの増加 (減少) # item_id : アイテム ID # n : 個数 #-------------------------------------------------------------------------- def gain_item(item_id, n) # ハッシュの個数データを更新 if item_id > 0 @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # ● 武器の増加 (減少) # weapon_id : 武器 ID # n : 個数 #-------------------------------------------------------------------------- def gain_weapon(weapon_id, n) # ハッシュの個数データを更新 if weapon_id > 0 @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # ● 防具の増加 (減少) # armor_id : 防具 ID # n : 個数 #-------------------------------------------------------------------------- def gain_armor(armor_id, n) # ハッシュの個数データを更新 if armor_id > 0 @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # ● アイテムの減少 # item_id : アイテム ID # n : 個数 #-------------------------------------------------------------------------- def lose_item(item_id, n) # 数値を逆転して gain_item を呼ぶ gain_item(item_id, -n) end #-------------------------------------------------------------------------- # ● 武器の減少 # weapon_id : 武器 ID # n : 個数 #-------------------------------------------------------------------------- def lose_weapon(weapon_id, n) # 数値を逆転して gain_weapon を呼ぶ gain_weapon(weapon_id, -n) end #-------------------------------------------------------------------------- # ● 防具の減少 # armor_id : 防具 ID # n : 個数 #-------------------------------------------------------------------------- def lose_armor(armor_id, n) # 数値を逆転して gain_armor を呼ぶ gain_armor(armor_id, -n) end #-------------------------------------------------------------------------- # ● アイテムの使用可能判定 # item_id : アイテム ID #-------------------------------------------------------------------------- def item_can_use?(item_id) # アイテムの個数が 0 個の場合 if item_number(item_id) == 0 # 使用不能 return false end # 使用可能時を取得 occasion = $data_items[item_id].occasion # バトルの場合 if $game_temp.in_battle # 使用可能時が 0 (常時) または 1 (バトルのみ) なら使用可能 return (occasion == 0 or occasion == 1) end # 使用可能時が 0 (常時) または 2 (メニューのみ) なら使用可能 return (occasion == 0 or occasion == 2) end #-------------------------------------------------------------------------- # ● 全員のアクションクリア #-------------------------------------------------------------------------- def clear_actions # パーティ全員のアクションをクリア for actor in @actors actor.current_action.clear end end #-------------------------------------------------------------------------- # ● コマンド入力可能判定 #-------------------------------------------------------------------------- def inputable? # 一人でもコマンド入力可能なら true を返す for actor in @actors if actor.inputable? return true end end return false end #-------------------------------------------------------------------------- # ● 全滅判定 #-------------------------------------------------------------------------- def all_dead? # パーティ人数が 0 人の場合 if $game_party.actors.size == 0 return false end # HP 0 以上のアクターがパーティにいる場合 for actor in @actors if actor.hp > 0 return false end end # 全滅 return true end #-------------------------------------------------------------------------- # ● スリップダメージチェック (マップ用) #-------------------------------------------------------------------------- def check_map_slip_damage for actor in @actors if actor.hp > 0 and actor.slip_damage? actor.hp -= [actor.maxhp / 100, 1].max if actor.hp == 0 $game_system.se_play($data_system.actor_collapse_se) end $game_screen.start_flash(Color.new(255,0,0,128), 4) $game_temp.gameover = $game_party.all_dead? end end end #-------------------------------------------------------------------------- # ● 対象アクターのランダムな決定 # hp0 : HP 0 のアクターに限る #-------------------------------------------------------------------------- def random_target_actor(hp0 = false) # ルーレットを初期化 roulette = [] # ループ for actor in @actors # 条件に該当する場合 if (not hp0 and actor.exist?) or (hp0 and actor.hp0?) # アクターのクラスの [位置] を取得 position = $data_classes[actor.class_id].position # 前衛のとき n = 4、中衛のとき n = 3、後衛のとき n = 2 n = 4 - position # ルーレットにアクターを n 回追加 n.times do roulette.push(actor) end end end # ルーレットのサイズが 0 の場合 if roulette.size == 0 return nil end # ルーレットを回し、アクターを決定 return roulette[rand(roulette.size)] end #-------------------------------------------------------------------------- # ● 対象アクターのランダムな決定 (HP 0) #-------------------------------------------------------------------------- def random_target_actor_hp0 return random_target_actor(true) end #-------------------------------------------------------------------------- # ● 対象アクターのスムーズな決定 # actor_index : アクターインデックス #-------------------------------------------------------------------------- def smooth_target_actor(actor_index) # アクターを取得 actor = @actors[actor_index] # アクターが存在する場合 if actor != nil and actor.exist? return actor end # ループ for actor in @actors # アクターが存在する場合 if actor.exist? return actor end end end end Poi create un'altra classe subito dopo e metteteci questo code: #============================================================================== # ■ Window_PTmember #------------------------------------------------------------------------------ #  PTチェンジ画面 メンバーウィンドウ #============================================================================== class Window_PTmember < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 0, 320, 192) self.contents = Bitmap.new(width - 32, height - 32) @column_max = 4 refresh self.active = true self.index = 0 end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear if $game_party.member.size > 4 @item_max = [$game_party.actors.size + 1, 4].min else @item_max = [$game_party.actors.size + 1, $game_party.member.size].min end rect = Rect.new( 0, 34, 240, 1) self.contents.fill_rect(rect, Color.new(255, 255, 255, 255)) self.contents.draw_text( 0, 0, 160, 32, "Gruppo attuale") for i in 0...$game_party.actors.size x = 40 + i * (70) actor = $game_party.actors[i] draw_actor_graphic(actor, x, 150) if actor.fixed_member == 1 self.contents.font.size = 16 self.contents.draw_text( x + 12, 134, 50, 28, "Mandatory") self.contents.font.size = 22 end end self.contents.draw_text( 15, 40, 240, 32, "Cambia i membri del gruppo...") end #-------------------------------------------------------------------------- # ● カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set( 5 + @index * 70, 40, 70, 120) end end end #============================================================================== # ■ Window_PTstatus #------------------------------------------------------------------------------ #  PTチェンジ画面 ステータスウィンドウ #============================================================================== class Window_PTstatus < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 192, 320, 192) self.contents = Bitmap.new(width - 32, height - 32) refresh( $game_party.actors[0].id ) end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh(actor_id) if actor_id != @a_id self.contents.clear if actor_id == nil @a_id = actor_id return end actor = $game_actors[actor_id] draw_actor_name(actor, 0, 0) draw_actor_level(actor, 220, 0) draw_actor_state(actor, 0, 96) draw_actor_exp(actor, 0, 128) draw_actor_hp(actor, 0, 32) draw_actor_sp(actor, 0, 64) @a_id = actor_id end end end #============================================================================== # ■ Window_Waitmember #------------------------------------------------------------------------------ #  PTチェンジ画面 待機メンバーウィンドウ #============================================================================== class Window_Waitmember < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(320, 0, 320, 480) self.contents = Bitmap.new(width - 32, height - 32) @column_max = 4 refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.member.size rect = Rect.new( 0, 34, 240, 1) self.contents.fill_rect(rect, Color.new(255, 255, 255, 255)) self.contents.draw_text( 0, 0, 200, 32, "Membri esterni al gruppo") for i in 0...$game_party.member.size x = 40 + ( i % 4 ) * 70 y = 150 + ( i / 4 ) * 140 actor = $game_actors[$game_party.member[i]] draw_member_graphic(actor, x, y) end end #-------------------------------------------------------------------------- # ● メンバーグラフィックの描画 #-------------------------------------------------------------------------- def draw_member_graphic(actor, x, y) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 src_rect = Rect.new(0, 0, cw, ch) # PTにいる場合は半透明で表示 if $game_party.actors.include?(actor) opacity = 120 else opacity = 255 end self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, opacity) end #-------------------------------------------------------------------------- # ● カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set( 5 + ( @index % 4 ) * 70, 40 + ( @index / 4 ) * 140, 70, 120) end end end #============================================================================== # ■ Window_PThelp #------------------------------------------------------------------------------ #  PTチェンジ画面 操作ヘルプウィンドウ #============================================================================== class Window_PThelp < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super( 0, 384, 320, 96) self.contents = Bitmap.new(width - 32, height - 32) @type = 0 refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.draw_text(4, 0, 240, 32, "Scegli il membro che vuoi sostituire.") if @type == 0 self.contents.draw_text(4, 32, 240, 32, "Premi X o Esc per uscire.") else self.contents.draw_text(4, 32, 240, 32, "Scegli il membro da inserire.") end end #-------------------------------------------------------------------------- # ● タイプ変更 #-------------------------------------------------------------------------- def type_change if @type == 0 @type = 1 else @type = 0 end refresh end end #============================================================================== # ■ Scene_PTchange #------------------------------------------------------------------------------ # Lo script appartiene ad un sito JAP, la traduzione in inglese è stata fatta da Viskar Nogam'e # La traduzione in italiano è stata fatta da Tio. Per qualsiasi problema o domanda visitate # www.rpgshrine.altervista.org #============================================================================== class Scene_PTchange #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- def main # Informs which Windows to open @pt_member = Window_PTmember.new @pt_status = Window_PTstatus.new @wait_member = Window_Waitmember.new @pt_help = Window_PThelp.new # トランジション実行 Graphics.transition # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # フレーム更新 update # 画面が切り替わったらループを中断 if $scene != self break end end # トランジション準備 Graphics.freeze # ウィンドウを解放 @pt_member.dispose @pt_status.dispose @wait_member.dispose @pt_help.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # ステータスウィンドウが表示されてる間は、Bボタン押されるまで停止 if @status != nil if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # ステータスウィンドウを削除 @status.dispose @status = nil end return end # ウィンドウを更新 @pt_member.update @wait_member.update # メンバーウィンドウがアクティブの場合: update_pt を呼ぶ if @pt_member.active # カーソル位置が空白 ( メンバーの最大値と同じ ) の時ステータスを空白に if @pt_member.index == $game_party.actors.size @pt_status.refresh( nil ) else @pt_status.refresh( $game_party.actors[@pt_member.index].id ) end update_pt return end # 待機メンバーウィンドウがアクティブの場合: update_member を呼ぶ if @wait_member.active @pt_status.refresh( $game_actors[$game_party.member[@wait_member.index]].id ) update_member return end end #-------------------------------------------------------------------------- # ● フレーム更新 (メンバーウィンドウがアクティブの場合) #-------------------------------------------------------------------------- def update_pt # B ボタンが押された場合 if Input.trigger?(Input::B) if $game_party.actors.size == 0 # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # メニュー画面に切り替え $scene = Scene_Menu.new(4) return end # C ボタンが押された場合 if Input.trigger?(Input::C) # 選択アクターが固定の場合ブザーを鳴らす if @pt_member.index != $game_party.actors.size if $game_party.actors[@pt_member.index].fixed_member == 1 $game_system.se_play($data_system.buzzer_se) return end end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # 待機メンバーウィンドウをアクティブにする @pt_member.active = false @wait_member.active = true @wait_member.index = 0 @pt_help.type_change return end # X ボタンが押された場合 if Input.trigger?(Input::X) # カーソル位置が空白 ( メンバーの最大値と同じ ) の時ブザーを鳴らす if @pt_member.index == $game_party.actors.size # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウを表示する @status = Window_Status.new( $game_party.actors[@pt_member.index] ) @status.z += 50 return end # Y ボタンが押された場合 if Input.trigger?(Input::Y) # 選択アクターが固定の場合ブザーを鳴らす if @pt_member.index != $game_party.actors.size if $game_party.actors[@pt_member.index].fixed_member == 1 $game_system.se_play($data_system.buzzer_se) return end end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) $game_party.wait_actor( $game_party.actors[@pt_member.index].id ) # メンバーウィンドウと待機ウィンドウを再描写 @pt_member.refresh @wait_member.refresh return end end #-------------------------------------------------------------------------- # ● フレーム更新 (待機メンバーウィンドウがアクティブの場合) #-------------------------------------------------------------------------- def update_member # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # メンバーウィンドウをアクティブにする @pt_member.active = true @wait_member.active = false @wait_member.index = -1 @pt_help.type_change return end # C ボタンが押された場合 if Input.trigger?(Input::C) # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # 待機メンバーウィンドウで選択されている アクターID を習得 actor_id = $game_actors[$game_party.member[@wait_member.index]].id # メンバー選択位置が空白の場合は、普通に加える if @pt_member.index == $game_party.actors.size $game_party.add_actor( actor_id ) # メンバーウィンドウと待機ウィンドウを再描写 @pt_member.refresh @wait_member.refresh # メンバーウィンドウをアクティブにする @pt_member.active = true @wait_member.active = false @wait_member.index = -1 @pt_help.type_change return end # 既に選択されたメンバーがいる場合 そのキャラと交換 if $game_party.actors.include?( $game_actors[actor_id] ) a = $game_party.actors.index( $game_actors[actor_id] ) b = $game_party.actors[@pt_member.index].id $game_party.change_actor( b, a) end # メンバー変更 $game_party.change_actor( actor_id, @pt_member.index ) # メンバーウィンドウと待機ウィンドウを再描写 @pt_member.refresh @wait_member.refresh # メンバーウィンドウをアクティブにする @pt_member.active = true @wait_member.active = false @wait_member.index = -1 @pt_help.type_change return end # X ボタンが押された場合 if Input.trigger?(Input::X) # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # ステータスウィンドウを表示する @status = Window_Status.new( $game_actors[$game_party.member[@wait_member.index]] ) @status.z += 50 return end # Y ボタンが押された場合 if Input.trigger?(Input::Y) # アクターをセット actor = $game_actors[$game_party.member[@wait_member.index]] # 装備固定の場合 if actor.equip_fix?(4) # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 装備 SE を演奏 $game_system.se_play($data_system.equip_se) # 装飾品を外す actor.equip( 4, 0) return end end end #Final Fantasy VII menu setup by AcedentProne #********************************************************* #To use: #Create a new folder in the Characters folder, and call it Faces #Adding faces: add a 80x80 picture with the same name as the characterset it #corrosponds with in the Faces folder #If text does not appear, right click and select Replace #Put $defaultfonttype in the Search String box #Put $fontface in the Replacement String box #Hit replace all. #Put $defaultfontsize in the Search String box #Put $fontsize in the Replacement String box #Hit replace all. # #If you do not want Faces, go to line 102 #and change delete the # of draw_actor_graphic #and put a # infront of draw_actor_face # NB TIO:Questo script non l'ho fatto io, ho solamente preso il menu stile FF7, la schermata # per cambiare personaggio e ho messo l'opzione nel menu, niente di più. # Se ci sono problemi visitate www.rpgshrine.altervista.org #======================================== #■ Window_Base #-------------------------------------------------------------------------- # Setting functions for the "Base" #======================================== class Window_Base < Window def draw_actor_face(actor, x, y) face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue) fw = face.width fh = face.height src_rect = Rect.new(0, 0, fw, fh) self.contents.blt(x - fw / 23, y - fh, face, src_rect) end end def draw_actor_battler_graphic(actor, x, y) bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #======================================== #■ Game_Map #-------------------------------------------------------------------------- # Setting functions for the Map #======================================== class Game_Map def name $map_infos[@map_id] end end #======================================== #■ Window_Title #-------------------------------------------------------------------------- # Setting functions for the Title #======================================== class Scene_Title $map_infos = load_data("Data/MapInfos.rxdata") for key in $map_infos.keys $map_infos[key] = $map_infos[key].name end end #======================================================== # ■ Window_MenuStatus #------------------------------------------------------------------------ # Sets up the Choosing. #======================================================== class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # Set up #-------------------------------------------------------------------------- def initialize super(0, 0, 560, 454) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # Drawing Info on Screen #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 94 y = i * 110 actor = $game_party.actors[i] draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line #draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line draw_actor_name(actor, x, y) draw_actor_class(actor, x + 80, y) draw_actor_level(actor, x, y + 18) draw_actor_state(actor, x + 200, y) draw_actor_exp(actor, x+ 144, y + 38) draw_actor_hp(actor, x, y + 38) draw_actor_sp(actor, x, y + 58) end end #-------------------------------------------------------------------------- # Update of Cursor #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 116, self.width - 32, 96) end end end #=======================================# # ■Window_GameStats # # written by AcedentProne # #-----------------------------------------------------------------------# class Window_GameStats < Window_Base def initialize super(0, 0, 160, 80) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 22 refresh end def refresh self.contents.clear self.contents.font.color = system_color # Draw "Time" @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.font.color = normal_color self.contents.draw_text(4, 6, 120, 32, text, 2) self.contents.font.color = system_color self.contents.draw_text(4, -10, 120, 32, "Tempo di gioco") #Drawing Gold self.contents.font.color = normal_color self.contents.draw_text(4, 22, 120, 32,$game_party.gold.to_s + " " +$data_system.words.gold, 2) self.contents.font.color = system_color self.contents.draw_text(4, 22, 120, 32, $data_system.words.gold, 2) end #-------------------------------------------------------------------------- # Update of The count #-------------------------------------------------------------------------- def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end #======================================================== # ■ Window_Mapname #------------------------------------------------------------------------ #  Draws the Map name #======================================================== class Window_Mapname < Window_Base #-------------------------------------------------------------------------- # Set up #-------------------------------------------------------------------------- def initialize super(0, 0, 320, 60) self.contents = Bitmap.new(width - 52, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 refresh end #-------------------------------------------------------------------------- # Draws info on screen #-------------------------------------------------------------------------- def refresh self.contents.clear # Map Name #map = $game_map.name self.contents.font.color = system_color self.contents.draw_text(4, 0, 220, 32, "Luogo") self.contents.font.color = normal_color self.contents.draw_text(175, 0, 80, 32, $game_map.name) end end #======================================================== # ■ Scene_Menu #------------------------------------------------------------------------ # FF7 menu laytout as requested by AcedentProne. #======================================================== class Scene_Menu #--------------------------- edit------------------------------- attr_reader :status_window #/--------------------------- edit------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end def main s1 = $data_system.words.item s2 = $data_system.words.skill s3 = $data_system.words.equip s4 = "Status" s5 = "PHS" #Da qui potete cambiare il nome dell'opzione per cambiare gruppo s6 = "Salva" s7 = "Esci" #--------------------------- edit------------------------------- # Command menu # Size = Screen height - border sizes - # GameStatus menu - Spacing from GameStatus @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7]) @command_window.x = 640 - @command_window.width @command_window.y = 0 @command_window.z = 110 @command_window.index = @menu_index if $game_party.actors.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) @command_window.disable_item(5) end @map = Window_Mapname.new @map.x = 640 - @map.width @map.y = 480 - @map.height - 1 @map.z = 110 # Lower right box @game_stats_window = Window_GameStats.new @game_stats_window.x = 640 - @game_stats_window.width @game_stats_window.y = 640 - @command_window.height - @game_stats_window.height + 3 @game_stats_window.z =110 # Status window @status_window = Window_MenuStatus.new @status_window.x = 0 @status_window.y = 8 @status_window.z = 100 Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @command_window.dispose @game_stats_window.dispose @status_window.dispose @map.dispose end #-------------------------------------------------------------------- # Updating #-------------------------------------------------------------------- def update @command_window.update @game_stats_window.update @status_window.update @map.update if @command_window.active update_command return end if @status_window.active update_status return end end #-------------------------------------------------------------------- # Updating the Command Selection #-------------------------------------------------------------------- def update_command # If B button is pused if Input.trigger?(Input::B) # Plays assigned SE $game_system.se_play($data_system.cancel_se) # Go to Map $scene = Scene_Map.new return end # If C button is pused if Input.trigger?(Input::C) # Checks actor size if $game_party.actors.size == 0 and @command_window.index < 4 # plays SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_PTchange.new when 5 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Save.new when 6 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new end return end end #-------------------------------------------------------------------- # Updating Status Screen #-------------------------------------------------------------------- def update_status if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 return end if Input.trigger?(Input::C) case @command_window.index when 1 if $game_party.actors[@status_window.index].restriction >= 2 $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Skill.new(@status_window.index) when 2 $game_system.se_play($data_system.decision_se) $scene = Scene_Equip.new(@status_window.index) when 3 $game_system.se_play($data_system.decision_se) $scene = Scene_Status.new(@status_window.index) end return end end end Cancellate le stringhe dove verranno visualizzate queste: Per problemi scrivete in questo topic ;-)
  10. Ally

    -Map Item

    Volevo postarlo io ma mi hai preceduto XD.Cmq è un gran bello script @@
  11. Auguroni a tutti XD @Baldo: :Q___________________
  12. Ally

    Dark Dreamer

    Non sapendo che fare mi sono permesso di fare du titoletti.Dato che un game horror ho pensato di farlo così(è una cagata,se vuoi ti passo solo lo sfomdo e poi lo fai tu): http://img99.imageshack.us/img99/1466/dd2di7.png http://img222.imageshack.us/img222/2473/ddcopiala5.png
  13. Dad a me l immagine sta ferma T_T
  14. Ally

    Dark Dreamer

    Carino come progetto complimenti... Cmq ti posto qui lo screen della tua mappa dove sono indicati degli errori di mapping se tu non te ne fosti accorto...ah dimenticavo,la demo non si puo piu scaricare,file non disponibile XD: http://img214.imageshack.us/img214/1992/screnn2bt3ug9.jpg
  15. Ota io sono disponibile...se vuoi contattami per mp ;-)
  16. Auguri per il tuo primo anno XD
  17. O_O ????????? Perchè hai cambiato il titolo? Quello di prima era stupendo...e poi la canzone di sottofondo ci stava da dio.... Sniff,sniff,sniff :chirol_gusun: :chirol_gusun: :chirol_gusun:
  18. Ally

    Screen Contest #2

    Lo screen l'ho montato in 2 minuti ma fa parte del mio progetto... Meglio precisare :chirol_iei2:
  19. Ally

    Screen Contest #2

    Ho deciso di partecipare non sapendo cosa fare...tutto è nato da un amore tra me e baldo per manuela arcuri XD(solo lui puo capire): quindi ecco il mio,non è un gran che ma l'ho fatta in 2 minuti ;-): http://img218.imageshack.us/img218/4672/contestny1.png
  20. Ally

    Miglior antivirus

    Norton?arghhhhhhhhhhhhhhhh...non nominatelo piu perfavore XD... Cmq io prima usavo NOD32 che non è malaccio e ora uso Avast...
  21. Oggi è un grande giorno XD....99 son pochi... 99?mah.... XD
  22. Complimenti HAV...se vuoi un consiglio sullo sfondo perchè non lo fai sull'azzurrino in cima che scendendo versoil basso si sfuma?
×
×
  • Create New...