Jump to content

Jonas^

Members
  • Posts

    1,016
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Jonas^

  1. function darDinheiro (thePlayer, cmd) if commandDelay[thePlayer] == nil and not istimer(commandDelay[thePlayer]) then local Dinheiro = getPlayerMoney(thePlayer) if Dinheiro >= 1200 then dxMsg (thePlayer, "Você possui dinheiro de mais para receber o auxílio.", "error") else givePlayerMoney (thePlayer, 1200) dxMsg (thePlayer, "Você recebeu o auxílio.", "success") resetCommand (thePlayer, 1000) end else dxMsg (thePlayer, "Você ja recebeu o auxílio.", "warning") end end addCommandHandler('auxilio', darDinheiro) Parece que você tentou mexer no código mas, fez coisa que não devia e não conseguiu reorganizar novamente, talvez assim funcione, não testei pois estou com problemas no momento, use /debugscript 3 e nos informe se der algum erro.
  2. Oque você pode fazer é proibir o jogador de entrar no carro, dai ele vai conseguir só empurrando mesmo.
  3. thePlayer não esta declarado em lugar algum, troque thePlayer por source.
  4. Achei um código do @Lord Henry perdido pelo fórum, acho que seja útil pra você é tudo que você precisa 100% pronto basta só adaptar do jeito que você gostaria. server-side function recebeKills () local data = getAccounts () local accTable = {} local killsTable = {} local deathsTable = {} local killDeath = {} local kill = 0 local death = 0 if not data[1] then triggerClientEvent (client, "showRank", client) return end for i, acc in ipairs (data) do table.insert (accTable, getAccountName (data[i])) if not getAccountData (data[i], "kills") then table.insert (killsTable, "0") kill = 0 else table.insert (killsTable, tostring (getAccountData (data[i], "kills"))) kill = tonumber (getAccountData (data[i], "kills")) end if not getAccountData (data[i], "deaths") then table.insert (deathsTable, "0") death = 0 else table.insert (deathsTable, tostring (getAccountData (data[i], "deaths"))) death = tonumber (getAccountData (data[i], "deaths")) end if death == 0 and kill == 0 then table.insert (killDeath, 0) else table.insert (killDeath, kill / death) end end triggerClientEvent (client, "showRank", client, accTable, killsTable, deathsTable, killDeath) end addEvent ("getRank", true) addEventHandler ("getRank", getRootElement(), recebeKills) function salvaKills (ammo, killer, weapon, bodypart, stealth) if not isGuestAccount (getPlayerAccount(source)) then local deaths = getAccountData (getPlayerAccount(source), "deaths") if deaths then setAccountData (getPlayerAccount(source), "deaths", deaths + 1) else setAccountData (getPlayerAccount(source), "deaths", 1) end end if killer and killer ~= source then if getElementType (killer) == "player" then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end elseif getElementType (killer) == "vehicle" then killer = getVehicleController (killer) if killer then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end end end end end addEventHandler ("onPlayerWasted", getRootElement(), salvaKills) client-side scoreWindow = guiCreateWindow (0.3, 0.2, 0.4, 0.6, "Ranking Kills/Death (by: LordHenry)", true) scoreGrid = guiCreateGridList (0, 0.05, 1, 0.85, true, scoreWindow) guiWindowSetSizable (scoreWindow, false) guiGridListAddColumn (scoreGrid, "Account", 0.45) guiGridListAddColumn (scoreGrid, "Kills", 0.13) guiGridListAddColumn (scoreGrid, "Deaths", 0.13) guiGridListAddColumn (scoreGrid, "Ratio", 0.18) closeGrid = guiCreateButton (0.2, 0.91, 0.6, 0.09, "Fechar Painel", true, scoreWindow) guiSetVisible (scoreWindow, false) function scoreInfo (accounts, kills, deaths, ratio) guiSetVisible (scoreWindow, true) guiSetVisible (closeGrid, true) showCursor (true) if accounts then for i, v in ipairs (accounts) do guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], ratio[i]) end end end addEvent ("showRank", true) addEventHandler ("showRank", getRootElement(), scoreInfo) function clickOptions (button, state, absoluteX, absoluteY) if button == "left" then if source == closeGrid then guiSetVisible (scoreWindow, false) showCursor (false) guiGridListClear (scoreGrid) end end end addEventHandler ("onClientGUIClick", getRootElement(), clickOptions) function sendScores () if not guiGetVisible (scoreWindow) then triggerServerEvent ("getRank", localPlayer) end end addCommandHandler ("rank", sendScores) Comando: /rank
  5. Cara, pra ser bem sincero com você, acho inviável ficar deletando conta por conta, o que você deve fazer é; Fazer com que em um período x essas contas sejam deletadas se os jogadores não logarem nela. Eu por exemplo uso 30 dias, se o jogador não logar dentro de 30 dias na conta dele a conta é removida automaticamente.
  6. local getAccounts = getAccountsBySerial (getPlayerSerial (client)) if getAccounts[1] then triggerClientEvent (client, "setNotification", resourceRoot, "Você já tem uma conta registrada. User: "..getAccountName(getAccounts[1])) --
  7. server-side addCommandHandler ("blips", function (thePlayer, cmd) if isObjectInACLGroup ("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("Admin")) then triggerClientEvent (thePlayer, "validationRequest", thePlayer) else outputChatBox ("Você não tem permissão!", thePlayer, 255, 30, 30) end end) client-side function blips () if getElementData(localPlayer, "blips", true) then setElementData(localPlayer, "blips", false) outputChatBox ("Blips desligado") else setElementData(localPlayer, "blips", true) outputChatBox ("Blips ligado") end end -- addCommandHandler("blips", blips) addEvent ("validationRequest", true) addEventHandler ("validationRequest", getRootElement(), blips)
  8. GetAccountData -- Obtem o level do jogador. SetAccountData -- Seta o level do jogador. Se achar muito pesado fazer desta forma (coisa que eu não acho), caso o servidor de um '' crash '' do nada, os dados vao permanecer, mas se quiser você pode utilizar SetElementData e GetElementData e salvar usando as duas que citei acima chamando os seguintes eventos: OnPlayerQuit OnPlayerLogin OnPlayerLogout (se tiver logout ativo.)
  9. Como quer que funcione usando funções server-side em client-side?
  10. Já tem exemplos prontos aqui no fórum, exatamente como você quer, só basta dar uma pesquisada.
  11. Assim deve funcionar corretamente: function MostrarBlip (thePlayer, cmd) if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup ("Lixeiro")) then if (setElementVisibleTo (Blip, root, false) == true) then setElementVisibleTo (Blip, root, true) outputChatBox ("[Trabalho Lixeiro] #ffffffFoi marcado a localização em seu gps", thePlayer, 0, 255, 0, true) else setElementVisibleTo (Blip, root, false) outputChatBox ("[Trabalho Lixeiro] #ffffffFoi desmarcado a localização em seu gps", thePlayer, 0, 255, 0, true) end else outputChatBox ("[Trabalho Lixeiro] #ffffffVocê não trabalha no emprego de Lixeiro", thePlayer, 0, 255, 0, true) end end addCommandHandler ("infolixeiro", MostrarBlip)
  12. Como source é nil, vai enviar pra todos a mensagem e não para o thePlayer.
  13. Source esta declarado em várias partes do seu código, portanto não ira funcionar de forma correta.
  14. Troque: if isElementWithinMarker (thePlayer, trabjob) then por if isElementWithinMarker (localPlayer, trabjob) then
  15. Vícios de colocar thePlayer, cmd nos parâmetros rsrs.
  16. @theFADE Na verdade você não tentou nada, até porque esse exemplo eu que fiz pra um outro carinha que queria fazer essa mesma coisa, e esse código esta funcionando 100%, você que esta usando em server-side ao invés de cliente-side
  17. Porque não tenta ao invés de falar que não vai conseguir antes de tentar? ninguém vai fazer por você.... ao menos que mostre interesse mostrando que tentou fazer, mostrando os erros que ocorreu pra corrigirmos você, abra os links que o DNL perdeu o tempo dele pelo visto colocando pra você e tente entender e comece a editar seu código.
  18. Ta na mão chefe! Adicione isso: Server addCommandHandler ("vip", function (thePlayer , cmd) if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup ("VIP")) then triggerClientEvent (thePlayer, "mostratVIP", thePlayer) else outputChatBox ("You are not VIP!", thePlayer) end end) Client function abrirPainel () if guiGetVisible (Painel) then guiSetVisible (Painel, false) showCursor (false) else guiSetVisible (Painel, true) showCursor (true) end end addEvent ("mostratVIP", true) addEventHandler ("mostratVIP", getRootElement(), abrirPainel)
  19. Tem, use uma tabela armazenando as mensagens e esse código do roots você vai ter q fazer algumas correções pra funcionar.
  20. Envie um trigger do client > server verificando lá se o jogador esta na acl vip ou não. Não entendi o medo de mostrar os 2 lados inteiros, aqui no fórum a maioria tem conhecimento suficiente pra fazer essas coisas simples. Alias, seu código esta bem mal feito, daria pra deixar um código bem mais compacto e bem feito.
  21. Ou, se você sabe a combinação exata de teclas que os cara aperta, você pode fazer uma verificação, desta forma: client addEventHandler ("onClientKey", getRootElement(), function (button, state) if button == "a" then if state then -- Se o jogador tiver com a tecla A pressionada, então: setElementData (localPlayer, "button.a", true) -- Seta a data informando que ele esta com a tecla A pressionada. else -- Se o jogador soltar a tecla A, então: setElementData (localPlayer, "button.a", false) -- Remove a data informando que ele não esta com a tecla A pressionada. end elseif button == "b" then if state then -- Se o jogador tiver com a tecla B pressionada, então: setElementData (localPlayer, "button.b", true) -- Seta a data informando que ele esta com a tecla B pressionada. else -- Se o jogador soltar a tecla B, então: setElementData (localPlayer, "button.b", false) -- Remove a data informando que ele não esta com a tecla B pressionada. end end if getElementData (localPlayer, "button.a") and getElementData (localPlayer, "button.b") then -- Se o jogador tiver com as 2 pressionadas, então: triggerServerEvent ("kickPlayer", localPlayer) -- Trigger no server pra kicker o cara. end end) server addEvent ("kickPlayer", true) addEventHandler ("kickPlayer", getRootElement(), function () kickPlayer (client, "Combinação proibida detectada!") end)
  22. Quer que o comando funcione apenas pra quem estiver na acl console? IsObjectInACLGroup
  23. addCommandHandler ("sit", function (thePlayer, cmd) if getElementData (thePlayer, "sitting") then -- Se a data já existir, então: setPedAnimation (thePlayer) -- Faz com que o jogador pare s animação. removeElementData (thePlayer, "sitting") -- Remove a data do jogador. else -- Se ele não possuir a data, então: setPedAnimation (thePlayer, "ped", "seat_down", -1, false, false, false, false) -- Seta a animação no jogador. setElementData (thePlayer, "sitting", true) -- Seta a data no jogador indicando que ele esta com a animação ativa. end end) Código um pouco melhorado. @AmandaT666
  24. Sim, verifique o dano do veículo com o evento: OnVehicleDamage Após isso deixe a engine do mesmo desligada com a função: SetVehicleEngineState Tópico postado no local incorreto, para postar no local correto da próxima vez use: Programação em Lua e evite futuras punições.
×
×
  • Create New...