Thắc mắc , Ý kiến , Góp ý cho FFTG

Thảo luận trong 'Final Fantasy Text Game' bắt đầu bởi Leon Kenshin, 9/4/08.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. VanThanh99

    VanThanh99 T.E.T.Я.I.S

    Tham gia ngày:
    13/4/06
    Bài viết:
    541
    Nơi ở:
    Thừa Thiên Huế
    Đề nghị bác Leon cộng thêm level cho các thành viên mới tham gia đi...Mới vào level 1 Damg trung bình 200 mà đánh quái 5000 thì lâu lắm.
     
  2. Senjuro

    Senjuro Viva la no title Lão Làng GVN

    Tham gia ngày:
    4/11/06
    Bài viết:
    9,819
    Bạn vào topic dành cho member mới, đọc xong post 1 bài sẽ có EXP với Gil liền
     
  3. andy1413

    andy1413 Youtube Master Race

    Tham gia ngày:
    3/8/08
    Bài viết:
    15
    Cho em hỏi,khi tham gia FFTG có phải là mình post bài lên hay ko? Nếu đăng kí rùi thì bao giờ mới có thể tham gia chính thức?
     
  4. Long Phi Thiên

    Long Phi Thiên C O N T R A

    Tham gia ngày:
    1/11/07
    Bài viết:
    1,700
    1. Đúng.
    2. Chờ Mod duyệt đơn đăng ký là có thể tham gia ngay.
     
  5. Senjuro

    Senjuro Viva la no title Lão Làng GVN

    Tham gia ngày:
    4/11/06
    Bài viết:
    9,819
  6. Thundaga_Bum

    Thundaga_Bum Terminator-1200 Lão Làng GVN

    Tham gia ngày:
    6/1/07
    Bài viết:
    7,654
    Nơi ở:
    Hà Nội
    STEAL SKILL

    Sau một hồi lục lọi khắp nơi, cuối cùng cũng tìm ra Script để làm kĩ năng Steal. Đã test, chạy rất tốt :p

    Mã:
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
    #_/                     ◆  Steal Skill - KGC_Steal   ◆ VX ◆
    #_/                     ◇    Last update : 2008/03/14     ◇
    #_/                     ◇  Translation by Mr. Anonymous   ◇
    #_/                     ◇ Extended updates by Touchfuzzy. ◇
    #_/-----------------------------------------------------------------------------
    #_/                             ◆ 2008/03/14  UPDATE ◆ 
    #_/      Coded & incorporated agility-based steal function by Touchfuzzy.
    #_/-----------------------------------------------------------------------------
    #_/  This script allows you to assign skills that "steal" items, weapons, armor
    #_/   and money.
    #_/  Setup is simple. To assign a skill as a Steal skill, add the tag "<steal>"
    #_/  (without quotations) into the "Note" box on the skill you choose in the
    #_/  skills database. Next, to set up enemies you can steal from, in the enemies
    #_/  database, you enter <steal X:ID Probability %>
    #_/  Where X = Steal type. I = Items, W = Weapons, A = Armor, and G = Gold
    #_/  Where ID = The specified item, weapon, or armor's ID #, in the database
    #_/             OR the amount of gold that can be stolen.
    #_/  Where Probability % = The change of the item being stolen.
    #_/=============================================================================
    #_/  Example: You have a bandit (enemy) who has a Long Sword and 100 gold you'd
    #_/   like to be able to steal from him, at a 50% chance. Tag him with:
    #_/    <steal W:2 50%>
    #_/    <steal G:100 50%>
    #_/  Simple, yes?
    #_/
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    
    #==============================================================================
    #                            ★ Customization ★
    #==============================================================================
    
    module KGC
    module Steal
      #                         ◆ Display Messages ◆
      #  Target skill used on has nothing to steal.
      #  (Where %s = target)
      #  %s : has nothing to steal!
      VOCAB_STEAL_NO_ITEM = "%s has nothing to steal!"
      # ◆ Steal skill failed.
      VOCAB_STEAL_FAILURE = "Your thievery was amiss!"
      # ◆ When stealing an item.
      #  First %s : Target name
      #  Second %s : Item Name
      VOCAB_STEAL_ITEM    = "%s had a %s stolen!"
      # ◆ When stealing money/gold.
      #  First %s : Target name
      #  Second %s : Amount stolen
      #  Third %s : Gold unit name. (Ex "GP", or"$"
      VOCAB_STEAL_GOLD    = "%s was mugged. %s%s stolen!"
      
      #                         ◆ Agility Based Steal ◆
      #  If this is true then the skill chance is figured as Steal% * Tagi * Eagi.
      #  Steal% = Steal Percentage used in Enemy Notes tag.
      #  Cagi = Thief's (Actor using the skill) Agility
      #  Eagi = Enemy's Agility
      AGILITY_BASED_STEAL = true
    end
    end
    
    # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
    #  Unless you know what you're doing, it's best not to alter anything beyond  #
    #  this point, as this only affects the tags used for "Notes" in database.    #
    # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
    
    #  Whatever word(s) are after the separator ( | ) in the following lines are
    #   what are used to determine what is searched for in the "Notes" section of a
    #   skill to see if it is an Steal skill.
    #  Default STEAL skill tag is <steal>
    #  Default STEAL_OBJECT is <steal>
    
    $imported = {} if $imported == nil
    $imported["Steal"] = true
    
    module KGC::Steal
      # Regular expressions defined.
      module Regexp
        # Base skill module.
        module Skill
          # Skill: Steal tag string
          STEAL = /<(?:STEAL|steal)>/i
        end
    
        # Base enemy module.
        module Enemy
          # Enemy: Object to Steal tag string.
          STEAL_OBJECT = /<(?:STEAL|steal)\s*([IWAG]):(\d+)\s+(\d+)([%%])?>/i
        end
      end
    end
    
    #==============================================================================
    # ■ Vocab
    #==============================================================================
    
    module Vocab
      # 盗む関連メッセージ
      StealItem    = KGC::Steal::VOCAB_STEAL_ITEM
      StealGold    = KGC::Steal::VOCAB_STEAL_GOLD
      StealNoItem  = KGC::Steal::VOCAB_STEAL_NO_ITEM
      StealFailure = KGC::Steal::VOCAB_STEAL_FAILURE
    end
    
    #==============================================================================
    # ■ RPG::Skill
    #==============================================================================
    
    class RPG::Skill < RPG::UsableItem
      #--------------------------------------------------------------------------
      # ○ 「盗む」のキャッシュ生成
      #--------------------------------------------------------------------------
      def create_steal_cache
        @__steal = false
    
        self.note.split(/[\r\n]+/).each { |line|
          case line
          when KGC::Steal::Regexp::Skill::STEAL
            # 盗む
            @__steal = true
          end
        }
      end
      #--------------------------------------------------------------------------
      # ○ 盗む
      #--------------------------------------------------------------------------
      def steal?
        create_steal_cache if @__steal == nil
        return @__steal
      end
    end
    
    #==============================================================================
    # ■ RPG::Enemy
    #==============================================================================
    
    class RPG::Enemy
      #--------------------------------------------------------------------------
      # ○ 「盗む」のキャッシュ生成
      #--------------------------------------------------------------------------
      def create_steal_cache
        @__steal_objects = []
    
        self.note.split(/[\r\n]+/).each { |line|
          case line
          when KGC::Steal::Regexp::Enemy::STEAL_OBJECT
            # 盗めるオブジェクト
            obj = RPG::Enemy::StealObject.new
            case $1.upcase
            when "I"  # アイテム
              obj.kind = 1
              obj.item_id = $2.to_i
            when "W"  # 武器
              obj.kind = 2
              obj.weapon_id = $2.to_i
            when "A"  # 防具
              obj.kind = 3
              obj.armor_id = $2.to_i
            when "G"  # 金
              obj.kind = 4
              obj.gold = $2.to_i
            else
              next
            end
            # 成功率
            if $4 != nil
              obj.success_prob = $3.to_i
            else
              obj.denominator = $3.to_i
            end
            @__steal_objects << obj
          end
        }
      end
      #--------------------------------------------------------------------------
      # ○ 盗めるオブジェクト
      #--------------------------------------------------------------------------
      def steal_objects
        create_steal_cache if @__steal_objects == nil
        return @__steal_objects
      end
    end
    
    #==============================================================================
    # □ RPG::Enemy::StealObject
    #==============================================================================
    
    class RPG::Enemy::StealObject < RPG::Enemy::DropItem
      #--------------------------------------------------------------------------
      # ○ 定数
      #--------------------------------------------------------------------------
      KIND_ITEM   = 1
      KIND_WEAPON = 2
      KIND_ARMOR  = 3
      KIND_GOLD   = 4
      #--------------------------------------------------------------------------
      # ○ 公開インスタンス変数
      #--------------------------------------------------------------------------
      attr_accessor :gold                     # 金
      attr_accessor :success_prob             # 成功率
      #--------------------------------------------------------------------------
      # ● オブジェクト初期化
      #--------------------------------------------------------------------------
      def initialize
        super
        @gold = 0
        @success_prob = 0
      end
    end
    
    #==============================================================================
    # ■ Game_Battler
    #------------------------------------------------------------------------------
    #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
    # スのスーパークラスとして使用されます。
    #==============================================================================
    
    class Game_Battler
      #--------------------------------------------------------------------------
      # ○ 公開インスタンス変数
      #--------------------------------------------------------------------------
      attr_accessor :steal_objects            # 盗めるオブジェクト
      attr_accessor :stolen_object            # 前回盗まれたオブジェクト
      #--------------------------------------------------------------------------
      # ● オブジェクト初期化
      #--------------------------------------------------------------------------
      alias initialize_Battler_KGC_Steal initialize
      def initialize
        initialize_Battler_KGC_Steal
    
        @steal_objects = []
        @stolen_object = nil
      end
      #--------------------------------------------------------------------------
      # ● スキルの効果適用
      #     user  : スキルの使用者
      #     skill : スキル
      #--------------------------------------------------------------------------
      alias skill_effect_KGC_Steal skill_effect
      def skill_effect(user, skill)
        skill_effect_KGC_Steal(user, skill)
    
        make_obj_steal_result(user, skill)
      end
      #--------------------------------------------------------------------------
      # ○ スキルまたはアイテムによる盗み効果
      #     user : スキルまたはアイテムの使用者
      #     obj  : スキルまたはアイテム
      #    結果は @stolen_object に代入する。
      #--------------------------------------------------------------------------
      def make_obj_steal_result(user, obj)
        return unless obj.steal?                  # 盗み効果なし
        return if @skipped || @missed || @evaded  # 効果なし
    
        # 何も持っていない
        if self.steal_objects.empty?
          @stolen_object = :no_item
          return
        end
    
        @stolen_object = nil
        self.steal_objects.each { |sobj|
          # 盗み成功判定
          if KGC::Steal::AGILITY_BASED_STEAL
            sobj.success_prob = sobj.success_prob * user.agi / self.agi
          end
          if sobj.success_prob > 0
            # 確率指定
            next if sobj.success_prob < rand(100)
          else
            # 分母指定
            next if rand(sobj.denominator) != 0
           end
          # 盗み成功
          @stolen_object = sobj
          break
        }
        @steal_objects.delete(@stolen_object)
      end
    end
    
    #==============================================================================
    # ■ Game_Enemy
    #==============================================================================
    
    class Game_Enemy < Game_Battler
      #--------------------------------------------------------------------------
      # ● オブジェクト初期化
      #     index    : 敵グループ内インデックス
      #     enemy_id : 敵キャラ ID
      #--------------------------------------------------------------------------
      alias initialize_Enemy_KGC_Steal initialize
      def initialize(index, enemy_id)
        initialize_Enemy_KGC_Steal(index, enemy_id)
    
        @steal_objects = enemy.steal_objects.clone
      end
    end
    
    #==============================================================================
    # ■ Scene_Battle
    #==============================================================================
    
    class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # ● 戦闘行動の実行 : スキル
      #--------------------------------------------------------------------------
      alias execute_action_skill_KGC_Steal execute_action_skill
      def execute_action_skill
        skill = @active_battler.action.skill
        if skill.steal?
          execute_action_steal
          @status_window.refresh
        else
          execute_action_skill_KGC_Steal
        end
      end
      #--------------------------------------------------------------------------
      # ○ 戦闘行動の実行 : 盗む
      #--------------------------------------------------------------------------
      def execute_action_steal
        skill = @active_battler.action.skill
        text = @active_battler.name + skill.message1
        @message_window.add_instant_text(text)
        unless skill.message2.empty?
          wait(10)
          @message_window.add_instant_text(skill.message2)
        end
        targets = @active_battler.action.make_targets
        display_animation(targets, skill.animation_id)
        @active_battler.mp -= @active_battler.calc_mp_cost(skill)
        $game_temp.common_event_id = skill.common_event_id
        for target in targets
          target.skill_effect(@active_battler, skill)
          display_steal_effects(target, skill)
        end
      end
      #--------------------------------------------------------------------------
      # ○ 盗んだ結果の表示
      #     target : 対象者
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_steal_effects(target, obj = nil)
        unless target.skipped
          line_number = @message_window.line_number
          wait(5)
          if target.hp_damage != 0 || target.mp_damage != 0
            display_critical(target, obj)
            display_damage(target, obj)
          end
          display_stole_object(target, obj)
          display_state_changes(target, obj)
          if line_number == @message_window.line_number
            display_failure(target, obj) unless target.states_active?
          end
          if line_number != @message_window.line_number
            wait(30)
          end
          @message_window.back_to(line_number)
        end
      end
      #--------------------------------------------------------------------------
      # ○ 盗んだオブジェクトの表示
      #     target : 対象者
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_stole_object(target, obj = nil)
        if target.missed || target.evaded
          display_steal_failure(target, obj)
          return
        end
    
        case target.stolen_object
        when nil       # 盗み失敗
          display_steal_failure(target, obj)
        when :no_item  # 何も持っていない
          display_steal_no_item(target, obj)
        else
          if target.stolen_object.kind == RPG::Enemy::StealObject::KIND_GOLD
            # お金
            display_steal_gold(target, obj)
          else
            # アイテム or 武器 or 防具
            display_steal_item(target, obj)
          end
          target.stolen_object = nil
        end
      end
      #--------------------------------------------------------------------------
      # ○ 盗み失敗の表示
      #     target : 対象者 (アクター)
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_steal_failure(target, obj)
        @message_window.add_instant_text(Vocab::StealFailure)
        wait(30)
      end
      #--------------------------------------------------------------------------
      # ○ 何も持っていない場合の表示
      #     target : 対象者 (アクター)
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_steal_no_item(target, obj)
        text = sprintf(Vocab::StealNoItem, target.name)
        @message_window.add_instant_text(text)
        wait(30)
      end
      #--------------------------------------------------------------------------
      # ○ アイテムを盗んだ場合の表示
      #     target : 対象者 (アクター)
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_steal_item(target, obj)
        # 盗んだアイテムを取得
        sobj = target.stolen_object
        case sobj.kind
        when RPG::Enemy::StealObject::KIND_ITEM
          item = $data_items[sobj.item_id]
        when RPG::Enemy::StealObject::KIND_WEAPON
          item = $data_weapons[sobj.weapon_id]
        when RPG::Enemy::StealObject::KIND_ARMOR
          item = $data_armors[sobj.armor_id]
        else
          return
        end
        $game_party.gain_item(item, 1)
    
        text = sprintf(Vocab::StealItem, target.name, item.name)
        @message_window.add_instant_text(text)
        wait(30)
      end
      #--------------------------------------------------------------------------
      # ○ お金を盗んだ場合の表示
      #     target : 対象者 (アクター)
      #     obj    : スキルまたはアイテム
      #--------------------------------------------------------------------------
      def display_steal_gold(target, obj)
        gold = target.stolen_object.gold
        $game_party.gain_gold(gold)
    
        text = sprintf(Vocab::StealGold, target.name, gold, Vocab.gold)
        @message_window.add_instant_text(text)
        wait(30)
      end
    end

    Cách làm : Rất đơn giản, lập một ô trống trong mục Skill. Đề tên Steal và chọn một Animation thích hợp vào đó. Ở bên dưới sẽ có một ô khá to đề chữ Note, điền lệnh <steal> vào

    Sau đó đến phần đặt Item cho quái để chôm. Vào mục Enemy, chọn quái cần Steal, mẫu lệnh là :

    <steal X:ID %>

    Trong đó

    X là loại đồ ( I : Item / W : Weapon / A : Armor / G : Gil )
    ID là số thứ tự của món đồ cần Steal trong bảng ( nếu là Steal Gil thì đánh số lượng Gil )
    % là sắc xuất Steal trúng

    Ví dụ : một con Slime có 1 bình High Potion và 200 Gil với sắc xuất Steal trúng là 50%, chỉ cần viết vào phần Note của Slime là

    <steal I:2 50%>
    <steal G:200 50%>

    đơn giản chứ hả ;))

    Chú ý : Vì Demo LK đang sử dụng không cho hiển thị Battle Messenger nến các dòng "Have nothing to steal", "Couldn't steal anything", " .... stolen" đều không hiển thị được. Cách khắc phục duy nhất là quay lại sử dụng loại Side View cho phép hiển thị. Còn không thì mỗi quái chỉ đặt cho nó một loại đồ Steal thôi, chứ đặt nhiều loại, lúc Steal trúng lại không biết mình Steal được cái gì (>_<)


    Nguồn : rpgmakervx.net
     
  7. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    Pa LK dạo này có thấy làm Main Q gì đâu :-w
     
  8. Leon Kenshin

    Leon Kenshin Leon S. Kennedy Lão Làng GVN

    Tham gia ngày:
    6/3/04
    Bài viết:
    13,583
    Nơi ở:
    Bangkok, Thailand
    Dạo này bận bù đầu bù cổ không có time làm Main Quest và mem trong box tính hiện h còn vài mem , chừng nào > 10 mem thì MQ trở lại .

    @vanthanh : hiện cậu có 15k Exp rùi , có gì cộng điểm trước đi nhé .
     
  9. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    Vụ relic thì khi nào mới có vậy LK :-/
     
  10. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    Cho hỏi với các skill ở trong clan hall là ở trong main Q phải ko !? còn text game thì vẫn đầy đủ skill như thường :-/
     
  11. Leon Kenshin

    Leon Kenshin Leon S. Kennedy Lão Làng GVN

    Tham gia ngày:
    6/3/04
    Bài viết:
    13,583
    Nơi ở:
    Bangkok, Thailand
    Từ giờ MQ , Mini Quest ... đều làm trong File game và những Skill trong DATA GRID là Skill chính thức .
     
  12. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    chẹp chẹp! thay đổi như vậy thì lớn quá !lớn quá! [​IMG]
    con relic thì chừng nào mới có :-?
     
  13. A fan of game

    A fan of game FFTG Soldier

    Tham gia ngày:
    3/4/04
    Bài viết:
    801
    Oạch, bác Ken chơi ác quá, bây giờ dam cũng chia đôi luôn thế này 8-}. Mà trong dùng file game thì có được xài limit không vậy, nếu được xài thì bùn luôn ...
    Nhân tiện đổi cách chơi, bác Ken up hàng mới trong shop đi, lâu lâu phải có đổi mới chứ :))
     
  14. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    Đề nghi MOD cho test thử 1 phát very hard , để còn biết đường mà chọn Q:'>
     
  15. Thundaga_Bum

    Thundaga_Bum Terminator-1200 Lão Làng GVN

    Tham gia ngày:
    6/1/07
    Bài viết:
    7,654
    Nơi ở:
    Hà Nội
    muốn very hard thì tớ cũng làm dc đấy

    muốn thử ko ;))

    @ LK : còn Gil trong Bank thì sao :-/
     
  16. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    very hard là do MOD sắp đặt hay là nó định sẵn trong cái RPG đó rồi :-/
     
  17. Thundaga_Bum

    Thundaga_Bum Terminator-1200 Lão Làng GVN

    Tham gia ngày:
    6/1/07
    Bài viết:
    7,654
    Nơi ở:
    Hà Nội
    do Mod sắp đặt

    Very Hard có thể là các chiêu Dam cao hơn, ra chiêu nhiều hơn, effect bất lợi cho char, ...

    dính phải effect của LK thì :-s
     
  18. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    như vậy thì mua hết các accessories thì chắc sẽ ko bị dính efect đâu nhỉ ;))
     
  19. Leon Kenshin

    Leon Kenshin Leon S. Kennedy Lão Làng GVN

    Tham gia ngày:
    6/3/04
    Bài viết:
    13,583
    Nơi ở:
    Bangkok, Thailand
    Mỗi nhân vật chỉ có 2 ô trang bị Accessory thôi , vì vậy không thể kháng hết tất cả trạng thái [-x .
     
  20. g3tl0st

    g3tl0st FFTG Blade Knight

    Tham gia ngày:
    8/3/07
    Bài viết:
    2,143
    Nơi ở:
    Da Nang, Vietnam
    mua hết bỏ trong inventory khi cần thì lấy ra equip đc ko MOD :-/
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này