ปิดสถานะผิดปกติจากตนเองทีโดยยิง
สามารถใช้ร่วมทุกมอด ที่เป็น DayZ ได้ทุกตัว
1. เปิดไฟล์ survivorSystem_client.lua

    ก่อนอื่นขอสอนสำหรับผู้ทีไม่รู้
    ฟังชั่น setElementData( ) คือตัวเซ็ตข้อมูลต่างๆไปที ผู้เล่น หรือ วัตถุ ได้ ดังนั้นเราเลยต้องปิด ตัวทีมัน เซ็ต
    สถานะผิดปกตินั้นใส่ทีตัวละคร เรานั้นเอง

    และยังมีฟังชั่น ทีเซตสถานะเฉพาะตัวนั้นอยู่ด้วย
2. ค้นหา ฟังชั่น playerGetDamageDayZ
ให้ดูที่ตัว เซ็ตข้อมูลดังนี้
Code:
-- เราจะเห็นว่ามี zombie เข้ามาเกี่ยวกับ จะมีความหมายว่า เมื่อผู้เล่นนั้นโดน โจมตีจาก ซอมบี้ 
-- setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-gameplayVariables["zombiedamage"]) -- จะโดนเลือด ลด
-- setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10)) -- ควรปิด มันจะเซตสถานะปกตินั้นให้เรา เป็นการเลือดไหล

if getElementData(attacker,"zombie") then
    setElementData(getLocalPlayer(),"blood",getElementData(getLocalPlayer(),"blood")-gameplayVariables["zombiedamage"]) -- Damage output - Default: 400,900
    local number = math.random(1,7)
     if number == 4 then
         setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10))
    end
  end

จากนั้นมาดูที่ elseif weapon and weapon > 1 and attacker and getElementType(attacker) == "player" then ตัวนี้จะเป็นเพราะโจมตี แบบ อาวุธทั้งหมด ยกเว้น ต่อย หากต้องการ ให้ต่อยได้ต้องแก้ > 1 เป็น 0 และต้องสร้างจำนวนค่าความเสียหายให้มันด้วย ไม่งั้นอาจบัค เช่น if weapon == 0 then damage = 10 end ให้วางบน playRandomHitSound() ต่อมาให้ดูที่นี้
-- ตัวนี้จะเป็น โอกาศทีติดสถานะเลือดไหล
-- หากคุณไม่ชอบก็ปิด แบบ นี้ได้เลย  -- setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10)) 

local number = math.random(1,8)
if number >= 6 or number <= 8 then
    setElementData(getLocalPlayer(),"bleeding",getElementData(getLocalPlayer(),"bleeding") + math.floor(loss*10))
end

ต่อมาอีกรอบ
-- ตัวนี้จะเป็น โอกาศทีติดสถานะเจ็บปวด ไม่แน่ใจ
-- หากคุณไม่ชอบก็ปิด แบบ นี้ได้เลย  -- setElementData(getLocalPlayer(),"pain",true)

local number = math.random(1,7)
if number == 2 then
    setElementData(getLocalPlayer(),"pain",true)
end

ต่อมาอีกรอบนึง
-- ตัวนี้จะเป็นโจมตีโดน ขา ทั้งคู่จะติดสถานะ กระดูกหัก
-- หากคุณไม่ชอบก็ปิด แบบ นี้ได้เลย  -- setElementData(getLocalPlayer(),"brokenbone",true)

if bodypart == 7 or bodypart == 8 then
    setElementData(getLocalPlayer(),"brokenbone",true)
end

มาดูที่ elseif weapon == 54 or weapon == 63 or weapon == 49 or weapon == 51 then
จะเป็นชนิดความเสียหาย เช่น ตก รถระเบิด อ่านเพิ่มเติมได้ที่นี้ https://wiki.multitheftauto.com/wiki/Damage_Types
-- ทั้งหมด ที 5 ตัวทีสามารถปิดได้ สามารถปิดได้ตามทีท่านต้องการได้เลย
local number = math.random(1,5)
if loss > 30 then
    setElementData(getLocalPlayer(),"brokenbone",true)
    setControlState ("jump",true)
end
if loss >= 100 then
    setElementData(getLocalPlayer(),"blood",49)
    setElementData(getLocalPlayer(),"bleeding",50)
end
local number = math.random(1,11)
if number == 3 then
    setElementData(getLocalPlayer(),"pain",true)
end

เสร็จ onClientPlayerDamage
ต่อไปเลยเป็นฟั่งชั่นพิเศษ

ค้นหาฟั่งชั่น checkStats()
จะเห็นว่ามีตัวลดเลือดจาก สถานะเลือดไหลด้วย ก็ให้ปิดมันไป
ฟั่งชั่นนี้จะ ทำงานทุกๆ 3วินาที  ้

ค้นหาฟั่งชั่น createBloodForBleedingPlayers ()
น่าจะเป็นการสร้าง fx แสดงเลือด ไหล
หากไม่ชอบ -- setTimer(createBloodForBleedingPlayers,300,0)

ค้นหา ฟังชั่น checkBrokenbone() และ setPain()
แนะนำให้ปิดไปจะดีกว่า
ตัวแรกเป็นการ เซตสถานะให้ตนเองโดยตรงเลย เช่น toggleControl ( "jump", false ) กระโดดไม่ได้
ตัวสองน่าจะเป็น มุมกล้อง
--setTimer(checkBrokenbone,1400,0)
--setTimer(setPain,1500,0)





-- แบบเก่า รูปที 3  ให้ทำงี้ไปเลย --setTimer(createBloodForBleedingPlayers,300,0)









3 ความคิดเห็น:

  1. ต้องเหมือนเลยหรอ -0-

    ตอบลบ
    คำตอบ
    1. ไม่ต้องทำเหมือนก็ได้แต่ต้องเพิ่ม -- นำหน้าก็พอ

      ลบ
    2. ขอระบบ แต่งรถแล้ว save กับ ระบบ ล๊อกชื่อแบบ RP หน่อยใด้ไม่ครับ

      ลบ