Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,006
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Também daria, mas eu particularmente usaria getRealTime().timestamp pois ele não está trabalhando com datas, só com tempo. @#DeltaSCR da linha 6 em diante não faz sentido vc criar uma variável local para guardar uma variável global. function DeltaSCRAbrir (theMarker, matchingDimension) if getPedOccupiedVehicle(source) == false then if isTimer(theTimers[source]) then outputChatBox ("╔═════════════════════════════════════════════════╗", source, 200, 50, 0) outputChatBox ("ERRO: #FFFFFFVocê já resgatou seu bônus diario, aguarde para resgatar o próximo", source, 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", source, 200, 50, 0) else theTimers[source] = setTimer (function () theTimers[source] = nil end, 60000, 1) -- 1 minuto. triggerClientEvent (source, "DeltaSCR:Abrir", source) end end end addEventHandler ("onPlayerMarkerHit", theMarker, DeltaSCRAbrir) -- A função só funciona quando um player colide no marker. Dessa forma n precisa verificar se o elemento que colidiu é um player. source = player que colidiu no marker.
  2. Na sua linha 4. playerTraficante não faz sentido. Onde ele foi declarado?
  3. local marker1 = createMarker ( 2185.5439453125,-1811.8256835938,13.546875 -1, "cylinder", 1.2, 0 , 255, 0, 155 ) local marker2 = createMarker ( 2157.5869140625,-1808.6865234375,13.387050628662 -1, "cylinder", 3, 255 , 0, 0, 155) veh = {} function criaVeh () if veh[source] and isElement (veh[source]) then destroyElement (veh[source]) veh[source] = nil end local x, y, z = getElementPosition(source) veh[source] = createVehicle (490, x, y, z + 1, -0, 0, 5.1420917510986) warpPedIntoVehicle (source, veh[source]) end addEventHandler ("onPlayerMarkerHit", marker1, criaVeh) function detonaVeh (marker, matchingDimension) local theVeh = getPedOccupiedVehicle (source) if theVeh and isElement(theVeh) then destroyElement(theVeh) theVeh = nil end end addEventHandler ("onPlayerMarkerHit", marker2, detonaVeh)
  4. Quando o jogador sair do servidor, vc deve salvar o tempo restante do timer dele com o setAccountData e com o getTimerDetails. E logo em seguida dar killTimer para não ficar contando o tempo do player que não existe. Quando o player logar de novo, cria o timer de novo normalmente com o setTimer usando o tempo restante que estava salvo na conta dele com getAccountData.
  5. addCommandHandler - Para fazer o comando /192 funcionar. getElemenstByType - Para obter todos os elementos de tal tipo no servidor (no caso, "players") getPlayerAccount - Para obter a conta do jogador, para usar na função abaixo: getAccountName - Para obter o nome da conta do jogador, para usar na função abaixo: isObjectInACLGroup - Para verificar qual ACL Group cada jogador está. outputChatBox - Para mandar o texto no chat.
  6. Só com isso já serve. for _, v in ipairs ( { "pro", "std", "poor" } ) do setWeaponProperty (ID, v, "damage", 0) -- No lugar de ID, coloque o ID da arma que vc quer mudar o dano. No lugar do 0, informe quanto dano cada tiro da arma deverá dar. end
  7. givePlayerMoney eu considero uma função server-side. (ela funciona no client, mas dai só muda o dinheiro no HUD do jogador, pois no server ele continuará tendo a quantidade de antes) @LucasMTA mostre o script server-side.
  8. Lógica de programação: Curso de Algoritmos #02 - YouTube Não se usa triggerClientEvent no client-side. Usa-se triggerServerEvent. Leia a Wiki.
  9. Só uma correção: Marker Sobre digitar um comando 10x para fazer tal coisa, faça client-side. Com um addCommandHandler e uma variável que vai somando +1 a cada vez que a função é executada. Quando chegar em 10, manda tal outputChatBox. contador = 0 function output10 (cmd) if contador == 10 then outputChatBox ("Você usou este comando 10 vezes.") return else outputChatBox ("Comando executado com sucesso.") end contador = contador + 1 end addCommandHandler ("seuComandoAqui", output10)
  10. Explicar essa diferença entre server-side e client-side daria um ótimo tutorial. A propósito, testei o código e funcionou aqui também. Tenha certeza de ter copiado o código sem nenhum símbolo invisível, que impede o funcionamento do script. Para fazer o esquema de ACL Groups, que só funciona server-side, você vai precisar mudar toda a lógica do seu painel. A ativação dele passará a ser no server, com um triggerClientEvent para iniciar/parar a renderização do painel.
  11. Troque para server. Pois vc está usando funções server-side, que no client não funcionam.
  12. Eu n entendi nada que ele disse '-'
  13. Se a key for com números, vc pode gerar com math.random. Se for com letras tipo um serial, dai é bem mais complicado.
  14. Se você tivesse estudado a Wiki do getPedWeapon, saberia que existe um parâmetro para informar o slot que se deseja verificar. Você precisa verificar todos os slots para saber se o jogador tem tal arma no inventário.
  15. Ocorre por causa do seu loop na linha 5.
  16. Depois daquele outputChatBox, coloque isso pra testar: (não vai resolver o problema, mas vai ajudar a descobrir) outputChatBox ("Kovek: "..kovek, p) outputChatBox ("Money: "..money, p) E me diga o que aparece. E sempre deixe o /debugscript 3 ativado.
  17. Quais erros? Mande por texto, sua imagem não pegou.
  18. Isso é bem complexo de ser feito. Vc precisa saber Modelagem 3D e ter um programa que consiga abrir os modelos.DFF do GTA.
  19. factor = 0.03 function createVehicles(player) for i,v in ipairs(getElementsByType("vehicle")) do if getVehicleType (v) ~= "BMX" then fuel = math.random(10,25) setElementData(v, "fuel", fuel) end end end function processFuel(player) for i,v in ipairs(getElementsByType("vehicle")) do if getVehicleType (v) ~= "BMX" then local fuel = getElementData(v, "fuel") or math.random(10,25) if (getVehicleEngineState(v) and fuel > 0 ) then fuel = fuel - factor end if (fuel <= 0.99) then fuel = 0 setVehicleEngineState(v, false) end setElementData(v, "fuel", fuel) end end end createVehicles() setTimer(processFuel, 1000, 0) Colocando a verificação do tipo de veículo. Onde só funciona se o tipo for diferente de "BMX" (bicicleta)
  20. local expGanho = 5 -- Supondo que o trabalho está dando 5 de EXP. if (tonumber(getElementData(source,"LSys:EXP")) + expGanho) >= 100 then -- Se o EXP que o player já tem, somado com o EXP que ele ganhou agora for maior ou igual a 100, então passa de level. local expExtra = tonumber(getElementData(source,"LSys:EXP")) + expGanho - 100 setElementData(source,"LSys:EXP",expExtra) -- O EXP que passou de 100 acumula e seta no EXP do level seguinte. (Se ficou com 104 de EXP, vai acumular 4 e setar no EXP) setElementData(source,"Level",tonumber(level)+1) -- Passa de level. outputChatBox("#9ACD32[TRABALHO]: #FFFFFFVocê acumulou #9ACD32100 #FFFFFFde experiência e subiu de level - #ffffff( #9ACD32"..tonumber(level)+1 .." #ffffff)",source,255,255,255,true) playSoundFrontEnd ( source, 101 ) else setElementData(source,"LSys:EXP",tonumber(getElementData(source,"LSys:EXP")) + expGanho) playSoundFrontEnd ( source, 101 ) end
  21. Não sei te dizer se ajuda. Como eu disse, é bug do GTA e não do veículo. Mas se vc quiser testar, aí é com vc.
  22. Dai é bug do próprio GTA. Nao tem o que fazer.
×
×
  • Create New...