-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cf053ab
commit e82b86a
Showing
12 changed files
with
312 additions
and
234 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,6 @@ | ||
# warpstore-mtasa-public | ||
Projeto para integração do mtasa com seu servidor | ||
|
||
- ✅ Adicionado sistema de expiração de produto | ||
- ✅ Adicionado sistema de reembolso | ||
- ✅ Adicionar sistema para revalidar caso o usuário esteja online para entrega | ||
- ✅ Adicionado suporte ao sistema infobox | ||
- ✅ Adicionado comando de produto para ver o produto expirar | ||
- ✅ Sistema totalmente refeito. | ||
- ✅ Adicionado sistema de balão ao entregar o produto. | ||
- ✅ Mensagens totalmente editavel. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,118 @@ | ||
commands = { | ||
['hyperscripts:addVip'] = function (args) | ||
local playerID = tonumber(args[1]); | ||
local vipName = args[2] | ||
local vipNumber = args[3] | ||
local vipDays = tonumber(args[4]) | ||
|
||
local HSVIP = exports['[HS]VIP_System'] | ||
|
||
local player = getPlayerID(playerID); | ||
local playerAccount = getAccountName( getPlayerAccount( player )) | ||
|
||
HSVIP:givePremium(playerAccount, vipName, vipDays, 'Dias', 'VIP:0'..vipNumber) | ||
end, | ||
['hyperscripts:addCoin'] = function (args) | ||
local playerID = tonumber(args[1]); | ||
local elementData = args[2] | ||
local quantityCoin = tonumber(args[3]); | ||
|
||
local player = getPlayerID(playerID); | ||
local currentCoins = getElementData(player, elementData) or 0; | ||
--[[ | ||
╔══════════════════════════════════════════════════[ www.warpstore.app ]═════════════════════════════════════════════════════════════╗ | ||
setElementData(player, elementData, currentCoins + quantityCoin) | ||
end, | ||
['hyperscripts:giveItem'] = function (args) | ||
local playerID = tonumber(args[1]); | ||
local item = args[2] | ||
local quantity = tonumber(args[3]); | ||
|
||
local player = getPlayerID(playerID); | ||
local inventory = exports['[HS]Hyper_Inventory']; | ||
██╗ ██╗ █████╗ ██████╗ ██████╗ ███████╗████████╗ ██████╗ ██████╗ ███████╗ | ||
██║ ██║██╔══██╗██╔══██╗██╔══██╗ ██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝ | ||
██║ █╗ ██║███████║██████╔╝██████╔╝ ███████╗ ██║ ██║ ██║██████╔╝█████╗ | ||
██║███╗██║██╔══██║██╔══██╗██╔═══╝ ╚════██║ ██║ ██║ ██║██╔══██╗██╔══╝ | ||
╚███╔███╔╝██║ ██║██║ ██║██║ ███████║ ██║ ╚██████╔╝██║ ██║███████╗ | ||
╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ | ||
╚══════════════════════════════════════════════════[ www.warpstore.app ]═════════════════════════════════════════════════════════════╝ | ||
--]] | ||
|
||
if not inventory:giveItem( player, item, quantity ) then | ||
return config.InfoBox.execute(player, 'Você não possui espaço suficiente para receber o item '..item..' contate a administração.', config.InfoBox.status.warn) | ||
end | ||
end, | ||
['hyperscripts:addVehicle'] = function (args) | ||
local playerID = tonumber(args[1]); | ||
local vehicle = string.gsub(args[2], '-', ' '); | ||
local vehicleCategory = string.gsub(args[3], '-', ' '); | ||
local vehicleModel = tonumber(args[4]); | ||
|
||
local player = getPlayerID(playerID); | ||
local conce = exports['[HS]Dealership_System']; | ||
|
||
local verify = conce:getVehicle( account, vehicleName ) | ||
if not verify then | ||
conce:setVehicleConce( player, { ['name'] = vehicle, ['model'] = vehicleModel }, { 255, 255, 255 }, vehicleCategory ) | ||
end | ||
end, | ||
['hyperscripts:addVehicleVip'] = function ( args ) | ||
local playerID = tonumber(args[1]); | ||
local vehicle = string.gsub(args[2], '-', ' ') | ||
local validate = tonumber(args[3]) | ||
|
||
local player = getPlayerID(playerID); | ||
local conce = exports['Dealership_System']; | ||
|
||
local vehicleConfig = conce:getVehicleVipConfig(vehicle); | ||
|
||
local verify = conce:getVehicle( account, vehicleName ) | ||
if not verify then | ||
local plate = conce:generatePlate( ) | ||
conce:setVehicleVip( player, vehicle, conce:generatePlate( ), vehicleConfig.category, vehicleConfig.model, validate ) | ||
end | ||
end | ||
commands = { | ||
['addGroup'] = { | ||
function ( player, args ) | ||
local group = args[ 1 ]; | ||
local account_name = getAccountName( getPlayerAccount( player ) ) | ||
if ( player and aclGetGroup( group ) ) then | ||
aclGroupAddObject( aclGetGroup( group ), 'user.'..account_name ); | ||
end | ||
end; | ||
}; | ||
['addMoney'] = { | ||
function ( player, args ) | ||
local quantity = tonumber( args[ 1 ] ); | ||
if ( player ) then | ||
givePlayerMoney( player, quantity ) | ||
end | ||
end; | ||
}; | ||
['unban'] = { | ||
function ( player, args ) | ||
local account_name = getAccountName( player ); | ||
for banId, ban in ipairs( getBans( ) )do | ||
local banUser = getBanNick( ban ) | ||
if ( banUser and banUser == account_name ) then | ||
removeBan( ban ) | ||
end | ||
end | ||
end; | ||
}; | ||
['hyperscripts:addVip'] = { | ||
function( player, args ) | ||
local vipName = args[ 1 ] | ||
local vipNumber = args[ 2 ] | ||
local vipDays = tonumber( args[ 3 ] ) | ||
local HSVIP = exports['[HS]VIP_System'] | ||
local playerAccount = getAccountName( getPlayerAccount( player )) | ||
HSVIP:givePremium( playerAccount, vipName, vipDays, 'Dias', 'VIP:0'..vipNumber ) | ||
end; | ||
}; | ||
['hyperscripts:addCoin'] = { | ||
function( player, args ) | ||
local elementData = args[ 1 ] | ||
local quantityCoin = tonumber( args[ 2 ] ); | ||
local currentCoins = getElementData( player, elementData ) or 0; | ||
setElementData( player, elementData, currentCoins + quantityCoin ) | ||
end; | ||
}; | ||
['hyperscripts:addVehicle'] = { | ||
function( player, args ) | ||
local vehicle = string.gsub( args[ 1 ], '-', ' ' ); | ||
local vehicleCategory = string.gsub( args[ 2 ], '-', ' ' ); | ||
local vehicleModel = tonumber( args[ 3 ] ); | ||
local conce = exports['[HS]Dealership_System']; | ||
local verify = conce:getVehicle( account, vehicleName ) | ||
if not verify then | ||
conce:setVehicleConce( player, { ['name'] = vehicle, ['model'] = vehicleModel }, { 255, 255, 255 }, vehicleCategory ) | ||
end | ||
end; | ||
}; | ||
['hyperscripts:addVehicleVip'] = { | ||
function( player, args ) | ||
local vehicle = string.gsub( args[ 1 ], '-', ' ' ) | ||
local validate = tonumber( args[ 2 ] ) | ||
local conce = exports['[HS]Dealership_System']; | ||
local vehicleConfig = conce:getVehicleVipConfig(vehicle); | ||
local verify = conce:getVehicle( account, vehicleName ) | ||
if not verify then | ||
local plate = conce:generatePlate( ) | ||
conce:setVehicleVip( player, vehicle, conce:generatePlate( ), vehicleConfig.category, vehicleConfig.model, validate ) | ||
end | ||
end; | ||
}; | ||
['hyperscripts:giveItem'] = { | ||
function( player, args ) | ||
local item = args[ 1 ] | ||
local quantity = tonumber( args[ 2 ] ); | ||
local inventory = exports['[HS]Hyper_Inventory']; | ||
if not inventory:giveItem( player, item, quantity ) then | ||
return exports['[HS]Notify_System']:notify(player, 'Você não possui espaço suficiente para receber o item '..item..' contate a administração.', config.InfoBox.status.warn) | ||
end | ||
end; | ||
}; | ||
['hyperscripts:spotify'] = { | ||
function( player, args ) | ||
local spotify = exports['[HS]Spotify_System'] | ||
local account = getAccountName( getPlayerAccount( player ) ) | ||
local dias = tonumber( args[ 1 ] ); | ||
local verify, _ = spotify:getPremium( account ) | ||
if not verify then | ||
spotify:givePremium( account, dias ) | ||
end | ||
end; | ||
}; | ||
['hyperscripts:porte'] = { | ||
function( player, args ) | ||
local categoria = args[ 1 ] | ||
local verificar = exports['[HS]Porte_Armas']:verificar_porte( player, categoria ) | ||
if not verificar then | ||
exports['[HS]Porte_Armas']:set_porte( player, categoria ) | ||
end | ||
end; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,72 @@ | ||
--[[ | ||
╔══════════════════════════════════════════════════[ www.warpstore.app ]═════════════════════════════════════════════════════════════╗ | ||
██╗ ██╗ █████╗ ██████╗ ██████╗ ███████╗████████╗ ██████╗ ██████╗ ███████╗ | ||
██║ ██║██╔══██╗██╔══██╗██╔══██╗ ██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝ | ||
██║ █╗ ██║███████║██████╔╝██████╔╝ ███████╗ ██║ ██║ ██║██████╔╝█████╗ | ||
██║███╗██║██╔══██║██╔══██╗██╔═══╝ ╚════██║ ██║ ██║ ██║██╔══██╗██╔══╝ | ||
╚███╔███╔╝██║ ██║██║ ██║██║ ███████║ ██║ ╚██████╔╝██║ ██║███████╗ | ||
╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ | ||
╚══════════════════════════════════════════════════[ www.warpstore.app ]═════════════════════════════════════════════════════════════╝ | ||
--]] | ||
|
||
|
||
config = { | ||
token = 'mtasa-27ac7110-448f-4c73-af60-10628384efe4-1ab359bb-f9cb-4e7a-8f0f-27d40c487bd9', -- Você pegar seu token em: https://docs.warpstore.app | ||
chat = { | ||
global = false, -- (true) para todos os jogadores ver, ou (false) para somente o jogador! | ||
color = '#ffffff', -- (#) Cor da mensagem que será enviada no chat! | ||
}, | ||
commands = { | ||
showPurchases = 'compras' -- O comando usado para ver as compras e a data de expiração. | ||
}, | ||
panelHtml = { | ||
enabled = true, -- Caso estiver ativo ele exibe um painel na tela para todos os jogadores avisando que o usuário comprou o produto, | ||
global = true, -- Caso qusier que todos os jogadores vejam esta mensagem deixe ativado, e false para quando quiser que apenas o comprador veja | ||
title = 'Warp Delivery', | ||
message = ':name fez uma doação do produto :product para o servidor.' | ||
}, | ||
messages = { | ||
newBuy = '[WARP - DELIVERY] :name comprou :product com sucesso!', | ||
notFound = '[WARP - DELIVERY] Não foi encontrado nenhum benefício!', | ||
expireIn = '[WARP - DELIVERY] O produto :name e o :item expira em :date', | ||
expire = '[WARP - DELIVERY] Ei :name, o seu produto :product expirou e foi removido!', -- item representa caso seja um grupo, quantidade, ou qualquer outro argumento. Não remova | ||
refund = '[WARP - DELIVERY] Ei :name, você recebeu o reembolso de uma compra e o :product foi removido de sua conta!', -- quando algum item é reembolsado. | ||
nothingToExpire = '[WARP - DELIVERY] Você não tem nenhum produto para expirar', -- item representa caso seja um grupo, quantidade, ou qualquer outro argumento. Não remova | ||
useInfoBox = false, -- Caso ele seja false as mensagens serão exibidas no chat, e caso seja true será exibida na sua info-box | ||
}, | ||
cooldownRequest = 10000, -- Tempo em milisegundos que o site verifica se tem alguma compra para ativar no jogo. | ||
['warp:delivery'] = { | ||
['token'] = 'SEU TOKEN QUE PEGA NO SITE', | ||
['data:id'] = 'ID'; | ||
['color:hex'] = '#0095ff'; | ||
['entrega'] = { | ||
['balões'] = { | ||
['ativar'] = true; -- Caso deseja que a mensagem na tela apareça. | ||
['visivel'] = true; -- Caso deseja que todas as pessoas vejam a mensagem na tela. | ||
['texto'] = 'O(a) jogador ${hex}${name}(${id}) #FFFFFFAtivou o produto ${hex}${product}#FFFFFF com sucesso!\n${hex}www.warpstore.app'; | ||
['rgb'] = { 255, 255, 255 }; | ||
['font'] = 'roboto-bold.ttf'; | ||
['size'] = 20; | ||
['quantidade'] = 50; | ||
['tempo'] = 10; -- Tempo que ira ficar na tela do player | ||
['formato'] = 1000; -- Formato de tempo ( 1000 = segundos, 60000 = minutos, 3600000 = Hora ) | ||
}; | ||
['chatbox'] = { | ||
['ativar'] = true; | ||
['visivel'] = true; | ||
['rgb'] = { 255, 255, 255 }; | ||
['texto'] = '[WARP-DELIVERY] - O(a) jogador #0095ff${name}(${id}) #FFFFFFAtivou o produto #0095ff${product}#FFFFFF com sucesso!'; | ||
}; | ||
['infobox'] = { | ||
['ativar'] = true; | ||
['visivel'] = true; | ||
['notificação'] = { | ||
function( player, dados ) | ||
return exports['[HS]Notify_System']:notify( player, 'O(a) jogador '..dados.name..'('..dados.id..') Ativou o produto '..dados.product..' com sucesso', 'info' ) | ||
end, | ||
}; | ||
}; | ||
}; | ||
['tempo:entrega'] = { | ||
['tempo'] = 10; -- Tempo que ira ficar na tela do player | ||
['formato'] = 1000; -- Formato de tempo ( 1000 = segundos, 60000 = minutos, 3600000 = Hora ) | ||
['repetições'] = 0; -- Verificação de quantas vezes ira ficar rodando o sistema, deixe em 0 para sempre verificar. | ||
}; | ||
['development'] = { -- Verificação para ficar testando comando deixe em false e ele não ira atualizar no site que foi entregue. | ||
['update:status'] = true; -- Não mexer com o servidor aberto pois ira ficar liberando o produto a todo momento sem atualizar no site que já foi entregue. | ||
}; | ||
}; | ||
} | ||
|
||
|
||
findUserById = function( id ) | ||
v = false | ||
for i, player in ipairs( getElementsByType( 'player' ) ) do | ||
local idAlvo = getElementData( player, 'ID' ) | ||
if idAlvo and tonumber( idAlvo ) == id then | ||
v = player | ||
break | ||
end | ||
end | ||
return v | ||
end, | ||
|
||
InfoBox = { | ||
displaySeconds = 3000, -- Tempo de notificação, caso não for usar info-box não mecha. | ||
-- Função Util para obter o elemento do player pelo ID: | ||
|
||
-- Aqui fica sua função de info-box que será chamada quando nescessário pelo nosso plugin! | ||
execute = function ( element, text, type ) | ||
exports['[HS]Notify_System']:notify( element, text, type ) | ||
end, | ||
|
||
-- Define aqui os status de sua infobox, não mecha no primeiro valor, apenas no segundo. | ||
status = { | ||
['success'] = 'success', | ||
['info'] = 'info', | ||
['warning'] = 'warning', | ||
['error'] = 'error' | ||
} | ||
} | ||
} | ||
getPlayerID = function( id ) | ||
for _, player in ipairs( getElementsByType( 'player' ) ) do | ||
local data_id = getElementData( player, config['warp:delivery']['data:id'] ) or 0 | ||
if tonumber( data_id ) == tonumber( id ) then | ||
return player | ||
end | ||
end | ||
return false | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,13 @@ | ||
<meta> | ||
<info author = 'Warp Store' type = 'script' name = 'warpstore_integration' version = '2.0' /> | ||
|
||
<info author = 'Warp Store' type = 'script' name = 'warpstore-integration-mtasa' version = '1.0'/> | ||
|
||
<script src = 'config.lua' type = 'shared' cache = 'false' fileType = 'script'/> | ||
<script src = 'commands.lua' type = 'shared' cache = 'false' fileType = 'script'/> | ||
|
||
<script src = 'src/server.luac' cache = 'false' type = 'server' fileType = 'script'/> | ||
<script src = 'src/client.luac' cache = 'false' type = 'client' fileType = 'script'/> | ||
|
||
<file src = 'src/assets/index.html' fileType = 'file'/> | ||
<file src = 'src/assets/images/background.png' fileType = 'file'/> | ||
|
||
<min_mta_version client = '1.5.9' server = '1.5.9'/> | ||
<script src = 'config.lua' type = 'shared' cache = 'false' /> | ||
<script src = 'commands.lua' type = 'shared' cache = 'false' /> | ||
<script src = 'src/assets/source/client.lua' type = 'client' cache = 'false' /> | ||
<script src = 'src/assets/source/server.lua' type = 'server' /> | ||
|
||
<file src = 'src/assets/html/index.html' /> | ||
<file src = 'src/assets/fonts/roboto-bold.ttf' cache = 'false' /> | ||
|
||
<min_mta_version client = '1.5.9' server = '1.5.9' /> | ||
</meta> |
Binary file not shown.
Oops, something went wrong.