(08-16-2015, 07:40 PM)jojo741963 Wrote: (08-16-2015, 05:49 PM)Ivan_GilDong Wrote: ผมมีคำถามใหม่มาอีกแล้วครับ
ถ้าผมอยากให้สกิลเป็นเเบบ 2 in 1
เช่น Dispell : ลบ Debuff ให้กับปาร์ตีทุกคน เเละลบ Buff ที่ดีของคู่ต่อสู้ 1 เป้าหมายในเวลาเดียวกัน
จะต้องทำอย่างไงหรอครับ?
http://irpg.in.th/thread-239.html เจอสคริปต์นี้ แต่ว่ามีผลแค่ผู้ใช้คนเดียว
ถ้าแก้สคริปต์ไม่เป็น อาจจะต้องเชื่อมโยงสกิลไปเหตุการณ์ทั่วไป แล้วค่อยสั่ง เพิ่ม/ลด อาการตามที่กำหนด ซึ่งจะให้มอนใช้สกิลนี้ด้วย ก็ต้องทำสกิลอีกอัน หรือ เช็คที่เหตุการณ์ทั่วไปด้วยนะครับ ว่าผู้ใช้สกิลเป็นมอนหรือฮีโร่
เพิ่มเติม โดยใส่ผลผู้ใช้กับทั้ง Party (หรือทั้งกลุ่มศัตรู หากเป็นสกิลของศัตรู)
ขอบคุณ Claimh ผู้สร้างสคริปต์หลัก, hengmana และ jojo741963 ผู้อ้างอิงครับ
หมายเหตุ: เงื่อนไขการติดสถานะไม่ได้เกิด 100% นะครับ ขึ้นกับปัจจัยหลายๆ อย่าง
[shcode=rails]
#==============================================================================
# ■ XP-RGSS-20 使用者ステート付与スキル [Ver.1.0.1] by Claimh
#------------------------------------------------------------------------------
# เพิ่มส่วนการมีผลกับพวกเดียวกันโดย Splendith
# รองรับทั้งสกิลผู้เล่น และสกิลศัตรู
#==============================================================================
module User_SetState
SET_STATE = []
#==============================================================================
# แก้ไขส่วนนี้
#==============================================================================
# SET_STATE[สกิลID] = [ [ติดอาการตามID], [ติดพวกเดียวกันทั้งกลุ่มหรือไม่], [ลบอาการตามID], [ลบพวกเดียวกันทั้งกลุ่มหรือไม่] ]
SET_STATE[1] = [[3],true,[4],false] # ใช้สกิล Heal แล้ว พวกเดียวกันทั้งหมดติดพิษ แก้ตาบอดแค่คนใช้สกิล
SET_STATE[7] = [[1],true,[],false] # ใช้สกิลไฟแล้ว ตายยกรัง
SET_STATE[7] = [[3,5],false,[4],true] # ใช้สกิลไฟแล้ว ผู้ใช้สกิลติดพิษ ใบ้ แต่แก้ตาบอดทั้งกลุ่ม
#==============================================================================
# สิ้นสุดส่วนแก้ไข
#==============================================================================
end
class Game_Battler
include User_SetState
alias skill_effect_user_setstate skill_effect
def skill_effect(user, skill)
set_state = SET_STATE[skill.id]
if set_state != nil
user.states_plus(set_state[0]) if set_state[0] != nil
user.states_minus(set_state[2]) if set_state[2] != nil
if((user.instance_of? Game_Actor) && (set_state[1] || set_state[3]))
$game_party.actors.each do |actor|
actor.states_plus(set_state[0]) if actor != user and set_state[0] != nil and set_state[1]
actor.states_minus(set_state[2]) if actor != user and set_state[2] != nil and set_state[3]
end
end
if((user.instance_of? Game_Enemy) && (set_state[1] || set_state[3]))
$game_troop.enemies.each do |enemy|
enemy.states_plus(set_state[0]) if enemy != user and set_state[0] != nil and set_state[1]
enemy.states_minus(set_state[2]) if enemy != user and set_state[2] != nil and set_state[3]
end
end
end
return skill_effect_user_setstate(user, skill)
end
end
[/shcode]