Jump to content

[M]ister

Members
  • Posts

    444
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by [M]ister

  1. O diretório dele está corrento, o meu pelo menos também é daquela forma. As vezes o problema é com o arquivo em si, pode ser que ele esteja aberto em algum lugar e não foi fechado, teste realmente com outro arquivo, crie um txt qualquer.
  2. Isso não tem nada haver, é só uma informação que o fileRename pertence a uma classe "File", importante saber quando esta trabalhando com orientação objeto. Cara, tenta criar um outro script, faça algo bem simples mesmo, só testando o fileRename (sem usar fileDownload) crie você mesmo o arquivo e tente renomeá-lo.
  3. Certamente. Vai vê é algum problema de permissão, tente conceder privilégios de admin ao resource
  4. Coloque isto no começo da função e me diga o que aparece: print(fileExists(file))
  5. Tente: addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) print (file) -- Onde coloquei for _,data in ipairs(replace_model) do if file == data[1] then fileRename(data[1],data[4]) engineImportTXD(engineLoadTXD(data[4]),data[3]) end if file == data[2] then fileRename(data[2],data[5]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end)
  6. Não é muito lógico ele deixar de existir, dei uma olhada aqui e notei que e o source só se “perde” na função do setTimer: function teste (enteringPlayer, seat, jacked, door) -- source = veículo (function() print (getElementModel(source)) -- ok end)() setTimer (function () print (getElementModel(source)) -- fail end, 100, 1) end addEventHandler ("onVehicleStartEnter", getRootElement(), teste) As variáveis globais do addEventHandler: this, client, eventName, etc, também deixam de existir. Meu palpite é que no código fonte do setTimer existe algum método resetando essas variáveis (talvez aqui). No caso do tópico em que não existe a variável predefinida source de um evento, mas sim uma variável que foi declarada com o mesmo nome no parâmetro, acaba por não influenciar: addCommandHandler("oie", function(source) setTimer (function () print(source) -- ok end, 100, 1) end )
  7. Acabei de testar: -- https://www.lua.org/cgi-bin/demo function teste(var) function teste2() print(var) end teste2() end teste("oie") -- output: oie
  8. Não digo que deva abandonar o MySQL, mas dependendo do caso não existe tanta necessidade... Fiz um exemplo simples de como efetuar login no site a partir de uma conta existente no server: <!-- index.html --> <form action="/login.php" method="post"> <input type="text" name="login"> <input type="password" name="senha"> <input type="submit" value="Logar"> </form> <? // login.php include("mta_sdk.php" ); if ($_SERVER["REQUEST_METHOD"] == "POST") { $mtaServer = new mta( "localhost", 22005, "adminlogin", "adminsenha" ); $resource = $mtaServer->getResource ( "site" ); $returns = $resource->call ( "login", $_POST["login"], $_POST["senha"] ); if ($returns[0]) { echo "logado!"; }else{ echo "falha no login!"; } } ?> -- resource "site" function login(user,pass) local acc = getAccount(user, pass) if (acc) then return true return false end <!-- meta.xml --> <export function="login" type="server" http="true" /> * Não testado
  9. Você pode criar funções lua, e puxar esses dados do server para o site (sem usar outra database) ... Mas no caso de trabalhar com os dois, só criar uma boa lógica capaz de manter a correspondência dos dados. Vai ser cadastro pelo site ? Efetue uma call ao server e crie a conta lá também (addAccount) - Bloqueie ou adapte o /chgmypass se não a senha do server será diferente da do site. - Bloqueie ou adapte o /register - Alterou a senha no site ? Atualize no server (setAccountPassword) ... Dessa forma você poderá manipular as contas normalmente (adicionando na acl, setando dados, …) Nem precisaria definir no MySQL quem é staff, mas caso queira, pode ser feito no evento login, verificando e atualizando a coluna “Rank”, pois não existe nenhum evento relacionado com mudanças na ACL Dependendo do caso até acho melhor nem utilizar outra database, dai só trabalha com os dados no MTA e dale calls: server ↔ site
  10. Como a função do timer está dentro de uma função principal as variáveis da principal são acessíveis também nela.
  11. Qual vai se a utilidade de abandonar o sistema de contas do MTA e usar esse?
  12. Troque a linha 3, por: if not getPedOccupiedVehicle(thePlayer) and not Marker_Leites[thePlayer] then
  13. function startJob4 (thePlayer, cmd) if getElementType(thePlayer) == "player" then if not getPedOccupiedVehicle(thePlayer) and not getElementData(thePlayer, "Emprego") == "Leiteiro" then -- Ao usar o comando, só funciona se o jogador estiver no marker e estiver sem veículo. local x, y, z = unpack (leites[1]) -- x, y, z recebem as coordenadas do leites[1]. Marker_Leites[thePlayer] = createMarker (x, y, z -1, "cylinder", 1.6, 0, 255, 0, 255, thePlayer) -- Cria o marker do objetivo do jogador na coordenada 1. setElementData (Marker_Leites[thePlayer], "Marker", thePlayer) -- Seta esse jogador como dono do marker, para que só funcione com ele. setElementData (Marker_Leites[thePlayer], "Leites", 1) -- Seta uma data no marker pra saber a qual coordenada ele pertence. Blip_Leites[thePlayer] = createBlipAttachedTo (Marker_Leites[thePlayer], 19) -- Cria o blip e anexa ao marker. setElementData(thePlayer, "Emprego", "Leiteiro") -- Essa data é para fazer um bloqueo que o jogador não consegue entrar no veiculo antes de pegar os leites removeElementData(thePlayer, "Leiteiro", "Veiculo") addEventHandler ("onMarkerHit", Marker_Leites[thePlayer], fim4) -- Adiciona o evento que faz funcionar o marker do objetivo. end end end addEventHandler("onMarkerHit", Job_Marker, startJob4)
  14. setTimer ou getTickCount -- permitir o uso do comando a cada 8 minutos destroyElement -- destrói o veículo onPlayerQuit -- evento que acionará o destroyElement
  15. Se foi você mesmo que tirou o print no server, você efetuou o download da imagem (talvez o script também) e possivelmente ele ainda está armazenado no seu cache, só saber procurar. Diretório: MTA San Andreas 1.5/mods/deathmatch/resources
  16. Encontrei esses dois na comunidade (tela enquanto está no download): https://community.multitheftauto.com/index.php?p=resources&amp;s=details&amp;id=5874 https://community.multitheftauto.com/index.php?p=resources&amp;s=details&amp;id=7766
  17. Linha 28: setElementData (Marker_Leites[thePlayer], "Leites", 1) Linha 41 à 45: outputChatBox ("Você tirou o leite. Siga para a próxima. ("..getElementData (source, "Leites").."/3)", hitElement) setElementData (source, "Leites", getElementData (source, "Leites") + 1) local x, y, z = unpack (leites[getElementData (source, "Leites")]) setElementPosition (source, x, y, z -1) setPedAnimation(hitElement, "BOMBER", "bom_plant_loop", 2000, true, false, false, false)
  18. Provavelmente o código está entrando em um loop destruindo um elemento que está sendo destruído. Remova a linha 70.
  19. CTRL+ C e CTRL+V Troque as linhas 22 e 23 addEventHandler("playerChatting", getRootElement(), playerChatting) addEventHandler("playerNotChatting", getRootElement(), playerNotChatting)
  20. Troque na linha 4 resourceRoot por root, ou mude o seu client para: addEventHandler("onClientResourceStart", resourceRoot, function () triggerServerEvent ( "onClientDownloaded", resourceRoot ) end )
  21. Ué. Tente com esse: local clients = {} addEvent( "onClientDownloaded", true ) addEventHandler( "onClientDownloaded", resourceRoot, function() table.insert(clients, client) end ) addEvent("playerChatting", true ) addEvent("playerNotChatting", true ) function playerChatting() triggerClientEvent(clients, "updateChatList", getRootElement(), source, true) end function playerNotChatting() triggerClientEvent(clients, "updateChatList", getRootElement(), source, false) end addEventHandler("playerChatting", getRootElement(), updatePlayerChatting) addEventHandler("playerNotChatting", getRootElement(), updatePlayerChatting) addEventHandler("onPlayerQuit", root, function() for i,p in ipairs(clients) do if (p == source) then table.remove(clients, i) end end end )
  22. Depois posso tentar pensar em algo melhor, mas aqui uma solução "porca" local clientOk = {} addEvent( "onClientDownloaded", true ) addEventHandler( "onClientDownloaded", resourceRoot, function() clientOk[client] = true end ) addEvent("playerChatting", true ) addEvent("playerNotChatting", true ) function updatePlayerChatting() for _,p in ipairs(getElementsByType("player")) do if (clientOk[p]) then triggerClientEvent(p, "updateChatList", getRootElement(), source, eventName == "playerChatting" and true or false) end end end addEventHandler("playerChatting", getRootElement(), updatePlayerChatting) addEventHandler("playerNotChatting", getRootElement(), updatePlayerChatting) addEventHandler("onPlayerQuit", root, function() clientOk[source] = nil end )
  23. Teste com algum player, diga para alguém escrever e tú vê se aparece o ícone (ainda tenho minhas dúvidas)
  24. Só sei que nada sei Sócrates Tente: addEvent("playerChatting", true ) addEvent("playerNotChatting", true ) addEvent("updateChatList", true ) function playerChatting() triggerClientEvent(this, "updateChatList", getRootElement(), source, true) end function playerNotChatting() triggerClientEvent(this, "updateChatList", getRootElement(), source, false) end addEvent( "onClientDownloaded", true ) addEventHandler( "onClientDownloaded", root, function() addEventHandler("playerChatting", client, playerChatting) addEventHandler("playerNotChatting", client, playerNotChatting) end )
×
×
  • Create New...