Merhabalar
Sizlere herhangi bir eklentinin, istediğiniz verisinin logunu tutmayı öğreteceğim.
Bilginizin yeteceğini düşünmüyorsanız eklentinin yedeğini almanızı tavsiye ederim.
Paylaşacağım fonksiyon bir eklenti değil, kopyala yapıştır mantığı ile çalışmaz.
Logunu tutmak istediğiniz veriye göre uyarlamanız gerekmekte.
Bu kodu logunu tutmak istediğiniz eklentinin sunucu tarafındaki herhangi bir dosyanın alt kısmına yapıştırmanız yeterli.
Kod:
Kod:
function dclog(xPlayer, text)
local playerName = Sanitize(xPlayer.getName())
local discord_webhook = "WEBHOOK"
if discord_webhook == '' then
return
end
local headers = {
['Content-Type'] = 'application/json'
}
local data = {
["username"] = "USERNAME",
["avatar_url"] = "AVATAR_URL",
["embeds"] = {{
["author"] = {
["name"] = playerName.. ' - ' ..xPlayer.identifier
},
["color"] = 1942002,
["timestamp"] = os.date("!%Y-%m-%dT%H:%M:%SZ")
}}
}
data['embeds'][1]['description'] = text
PerformHttpRequest(discord_webhook, function(err, text, headers) end, 'POST', json.encode(data), headers)
end
function Sanitize(str)
local replacements = {
['&'] = '&',
['<'] = '<',
['>'] = '>',
['\n'] = '<br/>'
}
return str
:gsub('[&<>\n]', replacements)
:gsub(' +', function(s)
return ' '..(' '):rep(#s-1)
end)
end
Mantığı kavramanız açısından logunu tuttuğum bir eklentinin örnek bir eventi.
Kod:
Kod:
RegisterServerEvent("esx_newDrugs:reward")
AddEventHandler("esx_newDrugs:reward",function(amount,typed)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.canCarryItem(typed.."brick", math.ceil(amount)) then
xPlayer.addInventoryItem(typed.."brick",math.ceil(amount))
dclog(xPlayer, '**'..math.ceil(amount)..'x '..typed..'brick** elde etti.' )
else
TriggerClientEvent('mythic_notify:client:SendAlert', xPlayer.source, { type = 'error', text = 'Daha fazla taşıyamazsın!'})
end
end)
Fonksiyonun ihtiyaç duyduğu iki tür veri bulunmakta.
Eylemi gerçekleştiren oyuncu ve loga düşecek metin.
Metni istediğiniz şekilde düzenleyebilirsiniz.
Sizlere herhangi bir eklentinin, istediğiniz verisinin logunu tutmayı öğreteceğim.
Bilginizin yeteceğini düşünmüyorsanız eklentinin yedeğini almanızı tavsiye ederim.
Paylaşacağım fonksiyon bir eklenti değil, kopyala yapıştır mantığı ile çalışmaz.
Logunu tutmak istediğiniz veriye göre uyarlamanız gerekmekte.
Bu kodu logunu tutmak istediğiniz eklentinin sunucu tarafındaki herhangi bir dosyanın alt kısmına yapıştırmanız yeterli.
Kod:
Kod:
function dclog(xPlayer, text)
local playerName = Sanitize(xPlayer.getName())
local discord_webhook = "WEBHOOK"
if discord_webhook == '' then
return
end
local headers = {
['Content-Type'] = 'application/json'
}
local data = {
["username"] = "USERNAME",
["avatar_url"] = "AVATAR_URL",
["embeds"] = {{
["author"] = {
["name"] = playerName.. ' - ' ..xPlayer.identifier
},
["color"] = 1942002,
["timestamp"] = os.date("!%Y-%m-%dT%H:%M:%SZ")
}}
}
data['embeds'][1]['description'] = text
PerformHttpRequest(discord_webhook, function(err, text, headers) end, 'POST', json.encode(data), headers)
end
function Sanitize(str)
local replacements = {
['&'] = '&',
['<'] = '<',
['>'] = '>',
['\n'] = '<br/>'
}
return str
:gsub('[&<>\n]', replacements)
:gsub(' +', function(s)
return ' '..(' '):rep(#s-1)
end)
end
Mantığı kavramanız açısından logunu tuttuğum bir eklentinin örnek bir eventi.
Kod:
Kod:
RegisterServerEvent("esx_newDrugs:reward")
AddEventHandler("esx_newDrugs:reward",function(amount,typed)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.canCarryItem(typed.."brick", math.ceil(amount)) then
xPlayer.addInventoryItem(typed.."brick",math.ceil(amount))
dclog(xPlayer, '**'..math.ceil(amount)..'x '..typed..'brick** elde etti.' )
else
TriggerClientEvent('mythic_notify:client:SendAlert', xPlayer.source, { type = 'error', text = 'Daha fazla taşıyamazsın!'})
end
end)
Fonksiyonun ihtiyaç duyduğu iki tür veri bulunmakta.
Eylemi gerçekleştiren oyuncu ve loga düşecek metin.
Metni istediğiniz şekilde düzenleyebilirsiniz.