FiveM Snippets - Creative Network
Esta extensão adiciona alguns snippets feitos especialmente para bases Creative Network e Creative Extended, para facilitar o desenvolvimento de scripts.
Qualquer erro ou até sugestões de novos atalhos podem ser enviados diretamente à mim, através do Discord @heyyczer
.
Snippets disponíveis
Atualmente contamos com 43 snippets.
defaultManifest
Cria o modelo padrão de um manifest, sem interface.
fx_version "cerulean"
game "gta5"
lua54 "yes"
author "${1:author}"
version "${2:1.0.0}"
description "${3:description}"
shared_script {
"@vrp/lib/Utils.lua",
"config/*",
"src/shared.lua",
}
client_scripts {
"src/client.lua",
}
server_scripts {
"src/server.lua",
}
defaultManifestNUI
Cria um modelo padrão de manifest, com NUI.
fx_version "cerulean"
game "gta5"
lua54 "yes"
author "${1:author}"
version "${2:1.0.0}"
description "${3:description}"
files {
"src/ui/**"
}
ui_page "src/ui/index.html"
shared_script {
"@vrp/lib/Utils.lua",
"config/*",
"src/shared.lua",
}
client_scripts {
"src/client.lua",
}
server_scripts {
"src/server.lua",
}
defaultClient2
Cria o header de um arquivo client, com tunnel server -> client
---@diagnostic disable-next-line: deprecated
Tunnel = module("vrp", "lib/Tunnel")
---@diagnostic disable-next-line: deprecated
Proxy = module("vrp", "lib/Proxy")
---@diagnostic disable-next-line: undefined-field
vRP = Proxy.getInterface("vRP")
src = {}
---@diagnostic disable-next-line: undefined-field
Tunnel.bindInterface(GetCurrentResourceName(), src)
---@diagnostic disable-next-line: undefined-field
vSERVER = Tunnel.getInterface(GetCurrentResourceName())
defaultClient1
Cria o header de um arquivo client, sem o tunnel server -> client
---@diagnostic disable-next-line: deprecated
Tunnel = module("vrp", "lib/Tunnel")
---@diagnostic disable-next-line: deprecated
Proxy = module("vrp","lib/Proxy")
---@diagnostic disable-next-line: undefined-field
vRP = Proxy.getInterface("vRP")
---@diagnostic disable-next-line: undefined-field
vSERVER = Tunnel.getInterface(GetCurrentResourceName())
defaultServer1
Cria o header de um arquivo server, sem o tunnel server -> client
---@diagnostic disable-next-line: deprecated
Tunnel = module("vrp","lib/Tunnel")
---@diagnostic disable-next-line: deprecated
Proxy = module("vrp", "lib/Proxy")
---@diagnostic disable-next-line: undefined-field
vRP = Proxy.getInterface("vRP")
---@diagnostic disable-next-line: undefined-field
vRPclient = Tunnel.getInterface("vRP")
src = {}
---@diagnostic disable-next-line: undefined-field
Tunnel.bindInterface(GetCurrentResourceName(), src)
defaultServer2
Cria o header de um arquivo server, com um tunnel server -> client
---@diagnostic disable-next-line: deprecated
Tunnel = module("vrp","lib/Tunnel")
---@diagnostic disable-next-line: deprecated
Proxy = module("vrp", "lib/Proxy")
---@diagnostic disable-next-line: undefined-field
vRP = Proxy.getInterface("vRP")
---@diagnostic disable-next-line: undefined-field
vRPclient = Tunnel.getInterface("vRP")
src = {}
---@diagnostic disable-next-line: undefined-field
Tunnel.bindInterface(GetCurrentResourceName(), src)
---@diagnostic disable-next-line: undefined-field
vCLIENT = Tunnel.getInterface(GetCurrentResourceName())
Passport, getUserId
Obter o ID de uma source
local ${1:Passport} = vRP.Passport(${2:source})
Source, getUserSource
Obter o source de um ID
local ${1:source} = vRP.Source(${2:Passport})
sendWebhook, sendWebhookB, sendWebhookBlue
Padrão básico para envio de webhooks
PerformHttpRequest("${1:url}", function() end, 'POST', json.encode({
embeds = {
{
title = "${2:title}",
fields = {
{
name = "${3:name}",
value = "${4:value}"
},
},
thumbnail = {
url = "${5:imageUrl}"
},
footer = {
text = os.date('%d/%m/%Y | %H:%M:%S')
},
-- Escolher uma cor: https://coolors.co/palettes/trending (0x[HEX])
color = 0x00b4d8 -- BLUE
}
}
}), {["Content-Type"] = "application/json"})
sendWebhookR, sendWebhookRed
Padrão básico para envio de webhooks
PerformHttpRequest("${1:url}", function() end, 'POST', json.encode({
embeds = {
{
title = "${2:title}",
fields = {
{
name = "${3:name}",
value = "${4:value}"
},
},
thumbnail = {
url = "${5:imageUrl}"
},
footer = {
text = os.date('%d/%m/%Y | %H:%M:%S')
},
-- Escolher uma cor: https://coolors.co/palettes/trending (0x[HEX])
color = 0xe63946 -- RED
}
}
}), {["Content-Type"] = "application/json"})
sendWebhookG, sendWebhookGreen
Padrão básico para envio de webhooks
PerformHttpRequest("${1:url}", function() end, 'POST', json.encode({
embeds = {
{
title = "${2:title}",
fields = {
{
name = "${3:name}",
value = "${4:value}"
},
},
thumbnail = {
url = "${5:imageUrl}"
},
footer = {
text = os.date('%d/%m/%Y | %H:%M:%S')
},
-- Escolher uma cor: https://coolors.co/palettes/trending (0x[HEX])
color = 0x52b788 -- GREEN
}
}
}), {["Content-Type"] = "application/json"})
Identity, getUserIdentity
Pegar a identidade de alguém pelo ID
local ${1:identity} = vRP.Identity(${2:Passport})
local ${3:playerName} = ${1:identity}.name .. " " .. ${1:identity}.name2
-- local ${4:playerNameWithId} = ("[%s] %s"):format(${2:Passport}, ${3:playerName})
ItemAmount, getInventoryItemAmount
Pegar a quantidade de um item no inventário
local ${1:amount} = vRP.ItemAmount(${2:Passport}, ${3:itemName})
TakeItem, tryGetInventoryItem
Verifica se o jogador possui uma quantidade X de um item no inventário, e se tiver, remove essa quantidade
local ${1:hasItem} = vRP.TakeItem(${2:Passport}, ${3:itemName}, ${4:amount}, ${5:notifyPlayer}, ${6:slot})
RemoveItem
Remove um item do jogador, sem verificações
local {hasItem} = vRP.RemoveItem({Passport}, {itemName}, {amount}, {notifyPlayer}, {slot})
Execute, Query
Padrão para realizar queries
local ${1:result} = vRP.Query("${2:name}", { ${3:data} })
Prepare
Cria um prepare
vRP.Prepare("${1:name}", "${2:query}")
oxmysql_query, oxquery, queryAsync
Cria uma query utilizando o export do oxmysql
local ${1:result} = exports.oxmysql:query_async("${2:query}", { ${3:data} })
oxmysql_scalar, oxscalar, scalarAsync
Cria uma query que retorna a primeira coluna do primeiro resultado
local ${1:result} = exports.oxmysql:scalar_async("${2:query}", { ${3:data} })
insertAsync, oxinsert, oxmysql_insert
Cria uma query utilizando o export do oxmysql
local ${1:insert_id} = exports.oxmysql:insert_async("${2:query}", { ${3:data} })
HasGroup
Verifica se um jogador possui um grupo ou algum dos parents
local ${1:hasGroup} = vRP.HasGroup(${2:Passport}, ${3:groupName})
HasPermission
Verifica se o jogador possui um grupo em específico (estrito)
local ${1:hasPerm} = vRP.HasPermission(${2:Passport}, ${3:groupName})
HasService
Verifica se o jogador está em serviço de um grupo ou um de seus parents.
local ${1:hasService} = vRP.HasService(${2:Passport}, ${3:groupName})
GetWeight, getInventoryMaxWeight, getUserMaxWeight
Retorna o peso máximo que o jogador pode carregar
vRP.GetWeight(${1:Passport})
SetWeight
Adicionar uma quantidade de quilos ao peso máximo do jogador
vRP.SetWeight(${1:Passport}, ${2:weight})
InventoryWeight, getInventoryWeight
Retorna o peso atual do inventário do jogador (baseado nos itens que ele tem)
vRP.InventoryWeight(${1:Passport})
canHoldItems, canReceiveItems, checkPlayerWeight, supportItems
Um atalho para verificações de peso no jogador
if vRP.InventoryWeight(${1:Passport}) + (itemWeight(${2:itemName}) * ${3:itemAmount}) > vRP.GetWeight(${1:Passport}) then
TriggerClientEvent("Notify", ${4:source}, "negado", "Você não espaço suficiente para isso!", 8000)
return
end
defaultCommand, defaultCommandC
Cria um modelo básico de comando
RegisterCommand("${1:commandName}", function(source, args, rawCommand)
${2:content}
end, false)
NotifyS, NotifyServer, SendNotifyServer
Envia uma notificação via server-side
TriggerClientEvent("Notify", ${1:target}, "${2:type}", "${3:message}")
NotifyC, NotifyClient, SendNotifyClient
Envia uma notificação via client-side
TriggerEvent("Notify", "${1:type}", "${2:message}")
NumPermission, getUsersByPermission
Retorna os jogadores e a quantidade deles que estão em serviço de uma permissão específica
local ${1:users}, ${2:total} = vRP.NumPermission("${3:permission}")
playAnim, playAnimC, playAnimClient
Faz o jogador reproduzir uma animação
vRP.playAnim(${1:seq}, { ${2:animDict}, ${3:animName} }, ${4:looping})
playAnimS, playAnimServer
Faz o jogador reproduzir uma animação via server-side
vRPC.playAnim(${1:target}, ${2:seq}, { ${3:animDict}, ${4:animName} }, ${5:looping})
stopAnim, stopAnimC, stopAnimClient
Cancela a animação atual do jogador
vRP.stopAnim()
stopAnimS, stopAnimServer
Cancela a animação atual do jogador via server-side
vRPC.stopAnim()
ClosestPed, getNearestPlayer
Retorna o jogador mais próximo ou nulo
local ${1:player} = vRPC.ClosestPed(${2:source}, ${3:distance})
GetPlayerCoordsServer, PlayerCoordsServer, getPositionServer
Retorna a coordenada do jogador via server-side
local ${1:coords} = GetEntityCoords(GetPlayerPed(${2:source}))
RemoveGroup, RemovePermission, RemovePlayerGroup, RemoveUserGroup
Remove um grupo do jogador
vRP.RemovePermission(${1:Passport}, ${2:permission})
AddGroup, AddPermission, AddPlayerGroup, AddUserGroup, SetPermission
Adiciona um grupo ao jogador
vRP.SetPermission(${1:Passport}, ${2:permission})
webhookValue
Campo de webhook formatado
```ini\n${1:content}\n```
Valor de campo de webhook com format
(```ini\n${1:content}\n```):format(${2:variables})
webhookField
Campo de webhook
{
name = "{name}",
value = {value}
},
ClosestPeds, getNearestPlayers
Retorna todos os jogadores que estão no raio do jogador alvo
local ${1:players} = vRPC.ClosestPeds(${2:source}, ${3:radius})