AWAY FROM US - Documentation
  • 📄คู่มือการใช้งาน ( Document )
  • 🌍การใช้งานเว็บไซต์
    • วิธีการสมัครสมาชิก
    • ลืมรหัสผ่านทำยังไง ?
    • เปลี่ยน IP ที่ผูกยังไง ?
    • สถานะของทรัพยากรณ์ดูยังไง ?
  • ☄️AFUCore
    • ⚙️Configuration (ตั้งค่า)
      • Events ของอาชีพ
      • เฟรมเวิร์ค (Framework)
      • คลังไอเทม (Inventory)
      • การแจ้งเตือน (Notifications)
      • ผู้เล่น (Players)
      • อาวุธ (Weapons)
      • ดีบัค (Debug)
      • ทึกฐานข้อมูล (Queries)
    • Client
      • PlayerData
        • ข้อมูลผู้เล่น (PlayerData)
      • Functions
        • ระบบบัญชี (Accounts)
        • ระบบไอเทม (Item System)
        • ระบบอาชีพ (Job System)
        • ระบบการแจ้งเตือน (Notification System)
      • Game
    • Common
      • Faker
      • Math
      • Logger
      • String
      • Table System
      • Config
      • Timeout
    • Shared
    • Server
      • Command
      • OneSync
      • Item
      • Job
      • Player
      • xPlayer
  • 📂ทรัพยากรณ์
    • 📄วิธีการใส่ License
    • 🛍️AFU Enhanced Shop
      • คู่มือการตั้งค่า
    • 💞AFU.Status
      • exports ที่มีให้ใช้
    • 📧AFU.Mailbox
    • 🔮AFU.Gasha
      • Config.lua
      • Config.OpenZone.lua
      • ปัญหาที่พบบ่อยใน AFU.Gasha
  • ⚠️ข้อตกลงการให้บริการ
    • Terms & Conditions
    • ❓ปัญหาที่พบบ่อย
Powered by GitBook
On this page
  • ตัวอย่างการส่งเมลให้ผู้เล่นใหม่
  • ตัวอย่างการใส่ Discord Log (Azael, NC)
  1. ทรัพยากรณ์

AFU.Mailbox

ตัวอย่างการส่งเมลให้ผู้เล่นใหม่

  • ในตัวอย่างนี้ทำงานร่วมกับ `esx_identity` หรือ ที่ชอบเรียกกันว่า สคริปหน้ากรอกข้อมูลตัวละครผู้เล่นใหม่ที่เข้ามา

RegisterServerEvent('esx_identity:setIdentity')
AddEventHandler('esx_identity:setIdentity', function(data, myIdentifiers)
	local source = source ---@comments set local เลขไอดีของผู้เล่น
	local xPlayer = ESX.GetPlayerFromId(source)
	setIdentity(myIdentifiers.steamid, data, function(callback)
		if callback then
			TriggerClientEvent('kiss_scoreboard:profile', -1)
			TriggerClientEvent('esx_identity:identityCheck', myIdentifiers.playerid, true)
			TriggerEvent('esx_identity:characterUpdated', myIdentifiers.playerid, data)
			xPlayer.setName(('%s %s'):format(data.firstname, data.lastname))

			---@comments AFU Mailbox add mail to new player!
			pcall(function()
				local mailTemplateId = "id ของ template mail ใน database"
				exports.afu_mailbox:sendMailToPlayer({source}, mailTemplateId)
			end)
		else
			xPlayer.showNotification(_U('failed_identity'))
		end
	end)
end)

ตัวอย่างการใส่ Discord Log (Azael, NC)

ที่อยู่ไฟล์

+ config\server.functions.lua

ตัวอย่าง (Example)

---@param source number เลขไอดีผู้เล่น
---@param identifier string ไอเดนติไฟเออร์
---@param addTemplateDatas CacheMailTemplateOnAddRewardsData[] ข้อมูลเทมเพลตที่เพิ่มไอเทม
function Functions.OnAddItemsFromMailRewards(source, identifier, addTemplateDatas)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then
        Logger.error(("xPlayer not found source to add items: %s"):format(source))
        return
    end
    local logText = ("ผู้เล่น %s:%s ได้รับไอเทมจากเมล"):format(source, identifier)
    for _, addTemplateData in ipairs(addTemplateDatas) do
        logText = logText .. ("\nหัวเรื่องเทมเพลต %s / เลขเทมเพลต %s"):format(addTemplateData.title, addTemplateData.id)
        for _, reward in ipairs(addTemplateData.rewards) do
            if reward.type == "item" then
                logText = logText .. ("\nไอเทม %s จำนวน %s"):format(reward.name, reward.count)
                xPlayer.addInventoryItem(reward.name, reward.count)
            elseif reward.type == "account" then
                logText = logText .. ("\nเงิน %s จำนวน %s"):format(reward.name, reward.count)
                xPlayer.addAccountMoney(reward.name, reward.count)
            elseif reward.type == "exec-server-side" then
                logText = logText .. ("\nของขวัญผ่านฟังก์ชั่น %s จำนวน %s"):format(reward.name, reward.count)
                local execFunction = MapAddOnItemsExecuteServerSide[reward.name]
                if execFunction and execFunction.svExecFunc then
                    execFunction.svExecFunc(source, identifier, xPlayer)
                else
                    logText = logText .. ("\nไม่พบฟังก์ชั่น %s"):format(reward.name)
                end
            else
                logText = logText .. ("\nไม่รู้จัก type %s"):format(reward.type)
            end
        end
    end
    
    ---@comments Log ของ AFU
    pcall(function()
        exports["afu_log"]:send(source, {
            event_key = "get_rewards_from_mail",
            event_data = {
                identifier = identifier,
                addTemplateDatas = addTemplateDatas
            }
        })
    end)

    ---@comments Log ของ azael
    pcall(function()
        exports['azael_dc-serverlogs']:insertData({
            event = 'afu_mail_box_rewards_event',
            content = logText,
            source = xPlayer.source,
            color = 1
        })
    end)

    ---@comments Log ของ NC
    pcall(function()
        exports.nc_discordlogs:Discord({
            webhook = 'your_web_hook_key', -- ใส่ชื่อ webhook ที่ต้องการใน Config.Webhooks
            xPlayer = xPlayer,         -- ในฝั่ง Server ต้องใส่ xPlayer ทุกครั้ง
            xTarget = xPlayer,         -- ในฝั่ง Server, xPlayer ของผู้ถูกกระทำ
            message = "ได้รับของขวัญจากเมล",
            description = logText,     -- คำอธิบายรายละเอียด (optional)
        })
    end)
end
Previousexports ที่มีให้ใช้NextAFU.Gasha

Last updated 5 months ago

📂
📧