Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 13/04/23 in all areas

  1. The proper way in Lua to use arguments in a function created using loadstring is vararg expression, written as three dots. local argument1, argument2, argument3 = ... In your case, the function body would look like this: local player = ... return getPlayerName(player) == 'owner' An example with loadstring: local func_str = "local player = ... return getPlayerName(player) == 'owner'" local loadstringed = loadstring(func_str) local testPlayer = getPlayerFromName("player1") local success, info = pcall(loadstringed, testPlayer)
    1 point
  2. You are calling in setTimer “SendTurfPayout” function and the function is sendJobPayout
    1 point
  3. function sendTurfPayout() local playerJobs = {} -- getting all police for i, player in ipairs(getElementsByType('player')) do local job = exports.NGJobs:getPlayerJob(player) if (job == 'Police Officer') then if (playerJobs[player] == nil) then playerJobs[player] = 0 end playerJobs[player] = playerJobs[player] + 1 end end -- pay the players for player, count in pairs(playerJobs) do local cash = count * tonumber(get("*PAYOUT_CASH")) givePlayerMoney(player, cash) exports.NGMessages:sendClientMessage("Police: Here is $" .. tostring(cash) .. " payout.", player, 0, 255, 0) end end -- set the timer local payoutTimeStr = get("*PAYOUT_TIME") if payoutTimeStr ~= false and type(payoutTimeStr) == "string" then local payoutTimeInt= tonumber(payoutTimeStr) if type(payoutTimeInt) == "number" and payoutTimeInt > 0 then setTimer(sendTurfPayout,payoutInt*60*1000,0) else outputDebugString("Warning! Invalid *PAYOUT_TIME set in meta file",2); end else outputDebugString("warning No *PAYOUT_TIME parameter foundin meta file",2); end try this please
    1 point
  4. local func_str = "function(player) return getPlayerName(player) == owner end" local loadstringed = loadstring("local owner = 'owner'; return function(player) "..func_str.." end") local myFunc = loadstringed() -- Call the function with a parameter local testPlayer = getPlayerFromName("player1") local result = myFunc(testPlayer) print(result) -- true --- local func_str = "function(player) return getPlayerName(player) == 'owner' end" local loadstringed = loadstring("return "..func_str) local success, myFunc = pcall(loadstringed) -- Call the function with a parameter local testPlayer = getPlayerFromName("player1") local success2, isOwner = pcall(myFunc, testPlayer) print(success2, isOwner) -- true false
    1 point
  5. When loading code, you are putting a kind of chunk/function around it. So basically this: function(player) return getPlayerName(player) == 'owner' end Looks more or less like this: -- pcall(loadstringed) is calling this chunk/function: function () function(player) return getPlayerName(player) == 'owner' end end So in order to solve this: return function(player) return getPlayerName(player) == 'owner' end local success, theFunc = pcall(loadstringed) local success2, isOwner = pcall(theFunc, testPlayer) See also xpcall for better error handling: https://www.gammon.com.au/scripts/doc.php?lua=xpcall
    1 point
  6. Fala, galera. Pra quem sempre quis saber como escrever os próprios scripts para MTA, mas nunca conseguiu se organizar para começar, eu trago a solução. Estou construindo uma playlist de vídeos relacionados a script para MTA. O foco principal é ensinar a API do MTA e não necessariamente programação em Lua, portanto, para aqueles que desejam acompanhar melhor é recomendado que já saiba programar em Lua. Por outro lado, não sinta-se incapaz de seguir a playlist mesmo não sabendo Lua. Você pode tentar entrar de cabeça, sem ter esse background muito sólido. Vai ser mais difícil, mas não é impossível. Eu já vi alguns gringos fazendo um post numa espécie de thread para seus próprios vídeos, mas não sei se é contra as regras. Se for, desculpe. Eu vou ir mantendo o vídeo mais atualizado no topo. Mas a playlist pode ser conferida aqui. MTA SCRIPT #22: Sistema de Exports MTA SCRIPT #21: Introdução à tabelas e OOP MTA SCRIPT #20: DX Scripting - Exibindo imagens na tela MTA SCRIPT #19: DX Scripting - Animações com InterpolateBetween MTA SCRIPT #18: DX Scripting - OnClientCursorMove MTA SCRIPT #17: DX Scripting - OnClientClick MTA SCRIPT #16: DX Scripting - Posição e Escala pt.2 MTA SCRIPT #15: DX Scripting - Posição e Escala pt.1 MTA SCRIPT #14: DX Scripting - Introdução MTA SCRIPT #13: Solucionando problemas de código MTA SCRIPT #12: Controle de Acesso (ACL) MTA SCRIPT #11: Pickups MTA SCRIPT #10: Markers MTA SCRIPT #09: Bind de teclas MTA SCRIPT #08: Manipulando eventos pt.2 MTA SCRIPT #07: Manipulando eventos pt.1 MTA SCRIPT #06: Variáveis globais predefinidas e Árvore de elementos MTA SCRIPT #05: Introdução aos comandos MTA SCRIPT #04: Script de Cliente x Servidor x Compartilhado MTA SCRIPT #03: Escrevendo seu primeiro resource MTA SCRIPT #02: Administrando o servidor MTA SCRIPT #01: Preparando o ambiente
    1 point
×
×
  • Create New...