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
Last updated