jojo741963   01-08-2023, 09:31 AM
#1
Critical on Final Hit v1.0.0
jojo741963

Log:
Show ContentLog:

ปลั๊กอินนี้จะทำให้คุณกำหนดอัตราคริติคอลในการโจมตีครั้งสุดท้ายได้ (แม้การโจมตีนั้นจะมีครั้งเดียว ก็กำหนดคริติคอลได้เหมือนกันนะ ทำหน้าเหยาหมิง )

Features :
  • กำหนดอัตราคริติคอลให้การโจมตีครั้งสุดท้าย (เท่านั้นแหละ)
วิธีใช้
1. ไปที่ Skill หรือ Item ที่ต้องการ
2. ใน Note ให้เพิ่มข้อความดังนี้

Code:
<LastHitCriRate:X>

เมื่อ X คือ อัตราคริติคอลที่กำหนด (ค่าระหว่าง 0-1) เช่น

Quote:<LastHitCriRate:1>               การโจมตีครั้งสุดท้ายจะติดคริติคอลแน่นอน
<LastHitCriRate:.04>            การโจมตีครั้งสุดท้ายจะติดคริติคอล 4%

[Image: NnBaRl2.png]

หมายเหตุ
  • ทั้งนี้ อัตราคริติคอลในปลั๊กอินนี้เป็นการเขียนทับ (กำหนดค่าใหม่ลงไป) ไม่มีผลกับอัตราคริเดิมของผู้ใช้สกิล และอัตราการหลบหลีกของเป้าหมาย
  • ไม่สามารถกำหนดค่าเป็นสมการหรือเรียกใช้ตัวแปรอื่น ๆ ได้
  • สามารถใช้ร่วมกันได้กับสกิลที่โจมตีครั้งเดียว (Repeat 1 ครั้ง) โดยจะเป็นการกำหนดอัตราคริติคอลการโจมตีครั้งนั้น
  • สกิลที่ถูกกำหนดอัตราคริจะไม่มีผลกับการประเมินดาเมจของสกิล (ของการต่อสู้อัติโนมัติ) โดยความเสียหายของสกิลนี้จะคิดตามปกติ ไม่สนใจการคริติคอลที่กำหนดค่าใหม่ลงไป
เงื่อนไขการใช้
ปรับแต่งได้ถ้าคุณต้องการ เอาไปใช้ทำอะไรก็ได้ที่สบายใจ จะให้หรือไม่ให้เครดิตก็ได้ แต่ถ้าให้ก็จะดีใจมาก ๆ เลยนะ

ปลั๊กอิน
โหลดที่ https://pastebin.com/p7ZRmn3J กด raw หรือเซฟจากข้างล่างก็ได้
Code:
//=============================================================================
// CriticalOnFinalHit.js
//=============================================================================
/*:
* @target MZ
* @plugindesc v1.0.0 อนุญาตให้คุณสามารถกำหนดอัตราคริติคอลให้การโจมตีครั้งสุดท้ายได้
* @author jojo741963
* @help CriticalOnFinalHit.js
*
* Log:
* v1.0.0 - Release
*
* ปลั๊กอินนี้จะทำให้คุณกำหนดอัตราคริติคอลในการโจมตีครั้งสุดท้ายได้
* (แม้การโจมตีนั้นจะมีครั้งเดียว คุณก็สามารถกำหนดคริติคอลได้เช่นกัน)
*
* วิธีการใช้ :
* 1. ไปที่ Skill หรือ Item ที่ต้องการ
* 2. ใน Note ให้เพิ่มข้อความดังนี้
*    
*        <LastHitCriRate:X>
*
*    เมื่อ X คือ อัตราคริติคอลที่กำหนด (ค่าระหว่าง 0-1)
*
*    เช่น        <LastHitCriRate:1>        การโจมตีครั้งสุดท้ายจะติดคริติคอลแน่นอน
*            <LastHitCriRate:.04>    การโจมตีครั้งสุดท้ายจะติดคริติคอล 4%
*
* หมายเหตุ :
*    - ทั้งนี้ อัตราคริติคอลในปลั๊กอินนี้เป็นการเขียนทับ (กำหนดค่าใหม่ลงไป)
*      ไม่มีผลกับอัตราคริเดิมของผู้ใช้สกิล และอัตราการหลบหลีกของเป้าหมาย
*    - ไม่สามารถกำหนดค่าเป็นสมการหรือเรียกใช้ตัวแปรอื่น ๆ ได้
*    - สามารถใช้ร่วมกันได้กับสกิลที่โจมตีครั้งเดียว (Repeat 1 ครั้ง)
*      โดยจะเป็นการกำหนดอัตราคริติคอลการโจมตีครั้งนั้น
*
*    วิธีการคิดอัตราตริติคอลเดิมของระบบ : อัตราคริผู้ใช้สกิล * (1 - อัตราการหลบคริเป้าหมาย)
*
*/

(() => {
    const pluginName = "CriticalOnFinalHit";

    //------------------------------------------------------------------------------------
    // add _repeatHitIndex and _lastHit
    var _jojo741963_cuscri_GameAction_initialize = Game_Action.prototype.initialize;
    Game_Action.prototype.initialize = function(subject, forcing) {
       _jojo741963_cuscri_GameAction_initialize.call(this, subject, forcing);
        this._repeatHitIndex = 0;
        this._lastHit = false;
   };

    var _jojo741963_cuscri_GameAction_apply = Game_Action.prototype.apply;
    Game_Action.prototype.apply = function(target) {
        this._repeatHitIndex += 1;
        if ( this._repeatHitIndex >= this.numRepeats() ) this._lastHit = true;
        //--------------------------------------------------------
        _jojo741963_cuscri_GameAction_apply.call(this, target);
        //--------------------------------------------------------
        if( this._lastHit ) {
            this._repeatHitIndex = 0;
            this._lastHit = false;
        }
    }
    //------------------------------------------------------------------------------------

    Game_Action.prototype.getItemMeta = function() {
        var data = null;
        switch (this._item._dataClass) {
            case "skill":
                data = $dataSkills[this._item._itemId];
                break;
            case "item":
                data = $dataItems[this._item._itemId];
                break;
        }
        return data.meta;
    }

    Game_Action.prototype.IsLastHitCriRate = function() {
        var data = null;
        switch (this._item._dataClass) {
            case "skill":
                data = $dataSkills[this._item._itemId];
                break;
            case "item":
                data = $dataItems[this._item._itemId];
                break;
        }
        if (data != null) {
            if (data.meta.LastHitCriRate) return true;
            return false;
        } else {
            return false;
        }
   };

    var _jojo741963_cuscri_GameAction_itemCri = Game_Action.prototype.itemCri;
    Game_Action.prototype.itemCri = function(target) {
        if ( this._lastHit && this.IsLastHitCriRate() ) {
            return this.getItemMeta().LastHitCriRate;
        } else {
            return _jojo741963_cuscri_GameAction_itemCri.call(this, target)
        }
    };

})();



ถ้าเจอบัคอย่าลืมบอกให้รู้ด้วยล่ะ



อันนี้เผื่อใครยังไม่ทราบ
วิธีการคิดอัตราคริของระบบ: อัตราคริผู้ใช้สกิล * (1 - อัตราการหลบคริเป้าหมาย)

.
[Image: bzkfm.gif] เวลาที่เล่นเกม ต้องเปิดไฟให้สว่าง และนั่งให้ไกลจากจอพอประมาณด้วย นะ[Image: bzkfm.gif]
.
  
Users browsing this thread: 2 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.