Jump to content

Developer.

Members
  • Posts

    92
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Developer.

  1. @DNL291 Sim sim, acabei mudando mas mesmo assim o erro/bug persistiu... Acabei desistindo de SQLITE com um tempo maior vou tentar correr atras disto aproveitando o tutorial do Lord... Tecnicamente ele se parece com o MYSQL mas ao mesmo tempo não se parece sei lá xD. Mas enfim agradeço a vcs pela ajuda!
  2. Opa, estou começando a mexer com sqlite e no momento estou tentando fazer um simples registro por comando... porém não consigo segue abaixo o codigo: local connect = dbConnect("sqlite", "registry.db") addEventHandler("onResourceStart", resourceRoot, function() local exec = executeSQLQuery("CREATE TABLE IF NOT EXISTS registroPessoal (ID INTEGER NOT NULL PRIMARY KEY, username TEXT, password TEXT, mtaserial INTEGER, PosX REAL, PosY REAL, PosZ REAL, accountName TEXT)" ) local query = dbQuery( connect, "SELECT * FROM registroPessoal") outputChatBox(tostring(query)) local resultado, searchs, msg = dbPoll(query, 0) if resultado == false then outputConsole( "dbPoll falhou. Erro srch: " .. tostring(searchs) .. " Erro msg: " .. tostring(msg) ) end end) addCommandHandler ("registrar", function(jog, cmd, val1, val2) local valor = dbQuery ( connect , "SELECT username, mtaserial FROM registroPessoal" ) outputDebugString("02") local resultado = dbPoll ( valor ,-1 ) outputDebugString("03") if resultado then outputDebugString("04") for _, search in ipairs ( resultado ) do outputDebugString("05") if (search["username"]) == val1 or search["mtaserial"] == serial then outputDebugString("07") outputChatBox("Esse nome de usuário já existe ou você já possui uma conta! tente novamente", jog) else outputDebugString("08") local serial = getPlayerSerial(jog) local password = tostring(val2) local nmAccount = getAccountName(getPlayerAccount(jog)) local PosX, PosY, PosZ = getElementPosition(jog) executeSQLQuery( "INSERT INTO registroPessoal (username, password, mtaserial, PosX, PosY, PosZ, accountName) valorS(?,?,?,?,?,?,?)", val1, password, serial, PosX, PosY, PosZ, nmAccount ) outputChatBox("Registro bem sucedido!", jog) end end end end) addCommandHandler("deltable", function() executeSQLQuery("DROP TABLE registroPessoal") outputDebugString("table deletada") end ) Fiz a debugação e a função de registrar para antes do for _, search, no caso no outPutDebugString("04"), a partir disto não se lê mais nada, então o problema deve se encontrar no dbPoll... Porém como não tenho muito conhecimento não sei oq esta sendo feito de errado...
  3. Hm compreendi, então seria algo como executeSQLQuery ("CREATE TABLE IF NOT EXISTS lojaEncanamento ( Material TEXT, Quantidade NUMERIC, Valor NUMERIC)") ? Mas no caso vamos supor de que exista 3 lojas correto? - A Loja 1 é de encanamento então o "material" seria FITA ISOLANTE e CANO correto? - A Loja 2 vende comida e bebida então o "material" seria HAMBÚRGUER e REFRIGERANTE. - A Loja 3 vende eletrônicos então o "material" seria CELULAR e GPS. Essas 3 lojas depende do mesmo deposito, eu no caso criaria 3 tabelas? Uma para cada loja? Ou tem como criar uma Tabela MAIN, onde ela contém todos os materiais e quando o dono abrir o painel eu verifico de qual loja ele é, e os materiais que são mostrados no painel é referente a loja?
  4. Salve, estou tentando criar um deposito de materiais. O script funcionaria da seguinte forma: Um dono de uma Loja de encanamento dentro do interior de sua loja digitaria /deposito onde abriria um painel! Neste Painel iria conter colunas. Na coluna 1 os materiais que ele pode comprar, na coluna 2 a quantidade que deposito possui, coluna 3 o valor do Material. Basicamente o que eu desejo é criar um cofre (deposito) De qual forma, ou qual a melhor forma de eu conseguir armazenar esses dados dentro deste "cofre", O Material, a Quantidade e o Valor? E outra como eu poderia fazer para inserir ou retirar os dados deste "cofre" ?
  5. Bom, falta algumas informações nesse post, exemplo "marcar", marcar o que? Uma pessoa? Um carro? Um outro local? Um objetivo? Entre outros... Mas enfim em um modo geral, marcações em mapas/minimapas são com BLIPS! Abaixo segue algumas funcs que podem te ajudar nisto: Criar o Blip: 1 - createBlip ( blip estático com posições x, y, z) = { Argumento 1 = Posição X Argumento 2 = Posição Y Argumento 3 = Posição Z Argumento 4 = Numero do icone ( pode ser encontrando aqui >>Radar Blips) Argumento 5 = Tamanho do blip Argumentos 6, 7 e 8 = CORES no formato RGB ( 255, 0, 255 | 255, 0, 0 | 0, 255, 255...) Argumento 9 = o Valor Alpha do Blip ( 0 - 255) } 2 - createBlipAttachedTo (este cria o blip sobre algum Elemento, e o "segue") = { Argumento1 = Elemento que o blip seguirá Argumento 2 =Numero do icone ( pode ser encontrando aqui >>Radar Blips) Argumento 3 = Tamanho do blip Argumentos 4, 5 e 6 = CORES no formato RGB ( 255, 0, 255 | 255, 0, 0 | 0, 255, 255...) Argumento 7 = o Valor Alpha do Blip ( 0 - 255) } visibilidade do blip: setElementVisibleTo = { Argumento 1 = o Elemento Argumento 2 = a quem ele será mostrado Argumento 3 = true ou false ( boolean) } destruir o blip: destroyElement = { Argumento 1 = o Elemento para ser destruído } comando: addCommandHandler = { Argumento 1 = o que o player terá que digitar ( string) Argumento 2 = nome da função que o comando executará Ex: addCommandHandler("marcar", Funcao_Marcar_Algo) } abaixo um pequeno código de exemplo: local Marker = createMarker(1, 1, 1, "cylinder", 2, 255, 0, 0, 255) -- cria um marker em uma posição function Funcao_Marcar_Algo(Jog, comando) -- começa a função if comando == "marcar" then -- se o comando for igual a " marcar" então blip = createBlipAttachedTo(Marker, 41, 2) -- cria um blip sobre o marker setElementVisibleTo(blip, Jog, true) -- deixa visivel ao player elseif comando == "desmarcar" then -- porém se o comando for igual a "desmacar" setElementVisibleTo(blip, Jog, false) --deixa invisivel ao player destroyElement(blip) -- destroi o Elemento blip end end addCommandHandler("marcar", Funcao_Marcar_Algo) -- adiciona o comando "marcar" a function addCommandHandler("desmarcar", Funcao_Marcar_Algo) -- adiciona o comando "desmarcar" a function OBS: Este é um código de exemplo BEM simples!!! Haverá outras coisas a ser adicionadas outras "verificações" mas enfim, somente uma "ilustração"! Caso tenha alguma duvida só estar perguntando...
  6. function pegarArma(player, commandName, arma) if arma == "ak" or arma == "mp5" or arma == "colt" then iprint("Comando certo") else outputChatBox("Arma invalída! Use: 'ak' ou 'mp5' ou 'colt' ") end end addCommandHandler("retirar", pegarArma) Tenta isso ai, não testei mas deve ser oq procura... tem dessa forma tbm... function pegarArma(player, commandName, arma) if arma == "ak" then iprint("Comando certo, ak") elseif arma == "mp5" then iprint("Comando certo, mp5") elseif arma == "colt" then iprint("Comando certo, colt") elseif arma ~= "ak" or arma ~= "mp5" or arma ~= "colt" then outputChatBox("Arma invalída! Use: 'ak' ou 'mp5' ou 'colt' ") end end addCommandHandler("retirar", pegarArma)
  7. Entendo, bom a função de criação do Ped já se encontra acima dos draws, acredito eu que até funcionaria se a função de criar o ped tbm tivesse a ativação pelo evento onClientRender, mas como não é o caso este método acaba não funcionando... Como disse antes quero evitar de adicionar o evento onClientRender na função de criação de Ped, pois ira causar muito Lag...
  8. Iae rapaziada, seguinte estou usando o resource Object_Preview para fazer um scoreboard, porém estou com um certo problema. O resource cria o ped atrás da imagem de fundo, vou mandar as fotos para deixar mais cla que estou falando... Sem o Fundo: Com o Fundo: Partes do code: imgs/fundoP.png = ao fundo(azul) dxDrawImage(x*135, y*93, x*796, y*538, "imgs/ScoreFundo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*623, y*123, x*269, y*480, "imgs/fundoP.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) function CriarPed() local x1, y1, z1 = getCameraMatrix() myElement = createPed(getElementModel(localPlayer), x1, y1, z1) Preview = exports.Object_Preview:createObjectPreview(myElement, 0, 0, 180, 0.352, 0.28, 0.377, 0.375, false, false, true) end function abrir () if Scorebd_RDS == false then CriarPed() addEventHandler("onClientRender", root, MostrarScore) Scorebd_RDS = true showChat(false) for id, hudComponents in ipairs(hudTable) do setPlayerHudComponentVisible(hudComponents, false) end else removeEventHandler("onClientRender", root, MostrarScore) Scorebd_RDS = false showChat(true) exports.Object_Preview:destroyObjectPreview(Preview) destroyElement (myElement) myElement = nil for id, hudComponents in ipairs(hudTable) do setPlayerHudComponentVisible(hudComponents, true) end end end bindKey("tab", "both", abrir) Obs: talvez o problema seja devido ao evento OnClientRender. Pois acredito eu que, enquanto ativado o evento ele fica renderizando na tela do Player tipo um loop bem rapido! Enquanto isso o Ped só é criado uma unica vez. Por isto a sobreposição da Imagem sobre o Ped! Não queria adicionar o Ped no Evento onClientRender por motivos de lag! Alguém conhece uma outra forma?
  9. Hmmm caramba, agora faz sentido a tal diferença dos dígitos. Muito obrigado pela ajuda. Aproveitando, quero agradecer e parabenizá-lo pelo vídeo do voice em seu canal. Aquilo me salvou de uma forma gigantesca no resource que estou tentando fazer de call kksksks...
  10. Bom, ajeitei os pontos que vc apontou. Deixei exatamente como esta no server-side, porém o certo bug permanece. Deixei o tempo rolar e percebi que digito 2 dos minutos esta correto, porém o digito 1, ele aparenta estar sei lá com uma especie de subtração ex: Aos 15:10 no chat, o DX marcou 05:10 Aos 25:10 no chat, o DX marcou 15:10 Entende? Ele ta sempre mostrando 1 numero a menos do que deveria... Irei continuar observando mais algum tempo para ver se é isto mesmo... Edit; Acabei de confirmar isto... No chat estava 33:05 Mas no DX tava 23:05 Sabe o porque de estar tendo essa subtração no primeiro digito dos minutos?
  11. No server side também esta dessa forma: addEventHandler ("onPlayerLogin", root, function (prevAcc, currAcc) setElementData (source, "tempo:Logou", getTickCount()) end) function meuTempoOnline (thePlayer, cmd) if (getElementData (thePlayer, "tempo:Logou")) then local tempoJogando = getTickCount() - getElementData (thePlayer, "tempo:Logou"); -- Isso também pode ser usado no client. local hours = tempoJogando/3600000; local minutes = (tempoJogando/60000) % 60; local seconds = (tempoJogando/1000) % 60; tempoOnline = string.format("%02d:%02d:%02d", hours, minutes, seconds); outputChatBox ("Você esta jogando a exatamente: "..tempoOnline.." segundos.", thePlayer); end end addCommandHandler ("temp", meuTempoOnline)
  12. Compreendi, eu acabei fazendo as divisões direto pela variável tempoJogando. No server-side esta tudo funcionando como os conformes porém, no client-side ele esta com um certo bug... Como foi especificado na imagem o TEMPO CORRETO é o que esta no CHAT (00:00:14) , mas por algum motivo o que esta aparecendo no Dx é outro numero (00:40:17). Obs: Nos segundos tem uma diferença de 3 segundos pois foi o tempo q eu levei para dar o comando /temp e tirar o print!! abaixo segue o que esta no lado client até o Momento: local tempoJogando = getTickCount() - getElementData (localPlayer, "tempo:Logou"); local hours = (tempoJogando/3600000); local minutes = ((tempoJogando/60000) % 60); local seconds = ((tempoJogando/1000) % 60); tempoOnline = string.format("%02d:%02d:%02d", hours, minutes, seconds); dxDrawText("Tempo Online: "..tempoOnline.."", 653, 413, 874, 441, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false) Não entendo o porque deste bug, pois no Lado server esta do mesmo jeito a unica coisa que esta diferente é localPlayer (client) | thePlayer (server). Porém localPlayer e thePlayer são as mesmas pessoas...
  13. Vlw mano, me salvou! Fiz a divisão e consegui obter as horas, minutos e segundos. Agradeço pela ajuda. Segue abaixo caso alguém queira usar Lado Cliente: local tempoJogando = getTickCount() - getElementData (localPlayer, "tempo.Logou"); local time = tempoJogando; local hours = time/3600000; local minutes = (time/60000) % 60; local seconds = (time/1000) % 60; tempoOnline = string.format("%02d:%02d:%02d", hours, minutes, seconds); dxDrawText("Tempo Online: "..tempoOnline.."", 653, 413, 874, 441, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false); Lado Server: function meuTempoOnline (thePlayer, cmd) if (getElementData (thePlayer, "tempo.Logou")) then local tempoJogando = getTickCount() - getElementData (thePlayer, "tempo.Logou"); local time = tempoJogando; local hours = time/3600000; local minutes = (time/60000) % 60; local seconds = (time/1000) % 60; tempoOnline = string.format("%02d:%02d:%02d", hours, minutes, seconds); outputChatBox ("Você esta jogando a exatamente: "..tempoOnline.." segundos.", thePlayer); end end addCommandHandler ("temp", meuTempoOnline)
  14. Compreendi no caso qual a melhor forma de ta fazendo essa index? Um Loop com FOR, getElementsBytype e DO numa TABLE resolveria?? E quanto a parte do setElementData eu vou necessitar dele pois vou puxar esse tempo para um Dx, no caso lado client. Talvez eu poderia fazer com trigger mas do mesmo jeito iria precisar dessas datas, um modo que eu pensei junto com o trigger é: Toda vez que o painel for acionado ele: - verifica o tick - seta a Data com o valor do tick. - ativa o trigger - No client Pega essa data e renderiza ao player! sendo assim não teria esse setTimer de um 1 em 1 segundo e sim só no momento que o player renderizar o painel com o onClientRender, sera que teria como?
  15. Salve, estou tentando fazer um sistema que, reconheça a quanto tempo o player se encontra online no servidor. A partir do momento que ele faz login na conta! Porém estou tendo problemas para conseguir... Segue abaixo o código feito ( tentei de diversas formas), porém essa foi a ultima tentativa de agora: addEventHandler("onPlayerLogin", root, function( _, acc ) tempo = getTickCount() end ) function Timer_Tempo_Jogador (jogador, timer) outputChatBox("1") local time = getTickCount() - tempo local hora = time.hour or 0 local minuto = time.minute or 0 outputChatBox("2") setElementData(jogador, "Tempo_Jogado", ""..hora..":"..minuto.."") outputChatBox("refresh") end setTimer(Timer_Tempo_Jogador, 1000, 0) function Ver_Tempo_Jogador (jog, cmd) if jog then local tempo_jogandos = getElementData(jog, "Tempo_Jogado") outputChatBox("Você esta jogando a exatamente:"..tempo_jogandos.."", jog) end end addCommandHandler("temp", Ver_Tempo_Jogador)
  16. Caaaraaaaca saquei, você fez praticamente a mesma coisa que o Lord Henry nas linhas 16 á 20, porém com menos código O.O caraca mané. E a parte do tick tbm entendi, você criou um loop com o tick sem necessitar de uma tabela escrita... Basicamente automatizou a parada sinistro
  17. Kkkkkk, percebi isso agora. Fui atrás de uns tutoriais e mostraram isso mesmo xD.
  18. Ahhhhh compreendi, na minha ignorância achei q a função "tostring" realmente convertia o numero 1 na palavra UM, que ficaria tipo imgUM.png Thanks pela ajuda
  19. Ah do setTimer eu consegui compreender ela normal, mas essa do getTick me perdi todo, no caso vc fez assim: - definiu as variáveis - adicionou um evento de start - salvo o tempo (getTick) - adicionou o render na outra function você - verificou o tempo - salvou novamente - criou a variável (imgAtual) = ( 1 == 2 e 1) ou (1 + 1) ? ( essa parte dessa conta q eu nn entendi...) - no fim o resultado dessa conta se torna uma string no dx é isso? Eu poderia transformar essa "tostring" em uma "tonumber" ? Já que no caso o nome das imagens é img1.png e img 2.png
  20. Opa, seguinte estou fazendo um dx de download porém queria fazer da seguinte forma. Este dx conta com duas imagens de fundo, onde as mesmas contém regras, link's, etc... O que eu quero é que elas se alterne entre si a cada 20000 ms. Ex: começa com a imagem 1, após 20 segundos muda para a imagem 2, se passando mais 20 segundos volta para a imagem 1 e assim sucessivamente até o player receber a data de download concluído! Tentei fazer um loop mas não deu nada certo... estou meio perdido! No momento o código se encontra dessa forma: Obs: essa é só uma parte do código, no caso onde eu gostaria de fazer esse "loop" de imagens. tempoChange1 = 20000 function MudarFundo () img1() setTimer(function() if dataPlayer == false then removeEventHandler ("onClientRender", getRootElement(), img1) addEventHandler("onClientRender", getRootElement(), img2) else removeEventHandler("onClientRender", getRootElement(), img1) removeEventHandler("onClientRender", getRootElement(), img2) end end, tempoChange1, 1) end addEventHandler ("onClientRender", root, MudarFundo)
  21. Já aviso de antemão que o script que esta rodando pela net nn funcionará em skin modificadas e nem no CJ... Mas faça um bom proveito é um script bem bacana!
  22. @Talon Essa é uma forma de criar o script q vc procura! Pelo visto vc viu algo parecido na net e esta a procura... Recomendo ir na community do MTA e pesquisar por armor_system.
  23. Ao se Aproximar onColShapeHit Ao se Afastar onColShapeLeave Verificar Acl isPlayerInAcl Criar Portão CreateObject Mover Portão MoveObject
  24. Iae rapaziada, seguinte. Eu to fazendo um script que é divido em três partes a parte 1 (Carregamento), parte 2 (Entrega do produto) e parte 3 (Revenda ao consumidor final) o meu plano final é fazer trabalhos interligados! Porém no momento estou fazendo tudo junto o Entregador faz o carregamento e entrega ( a parte de revenda ainda não desenvolvi!). O meu problema esta sendo na hora de colocar o produto no caminhão em setElementData(CamiNaMarker, "Caminhao:ProntoPcarregar", DataCaminhao + 1) ( linha 77). O máximo são 20 produtos que o Entregador pode colocar dentro do caminhão então sendo assim eu queria que cada vez que ele colocasse o produto no caminhão seria adicionado +1 no elementData até chegar aos 20! Após isso ele poderia retirar o caminhão da marker e fazer sua entrega! Erro no debugscript: Trabalho-CarregadorACPT\server.Lua:111: attempt to perform arithmetic on upvalue 'DataCaminhao' (a userdata value) Segue abaixo o script: MarkerCaminhao = createMarker(-486.762, -4996.24, 1.478 -1, "cylinder", 3.0, 210, 10, 10, 100) IniJob = createMarker(-476.458, -5001.667, 1.47 -1, "cylinder", 2.0, 3, 120, 210, 210) --EntJob = createMarker(-485.388, -4982.361, 1.478 -1, "cylinder", 2.0, 210, 120, 3, 210) local rad = math.random(13, 45) function CarregadorPegar (Jog) local fX, fY, fZ = getElementPosition( Jog ); if isElementWithinMarker(Jog, IniJob) then setPedAnimation( Jog, "CARRY", "liftup", 1.0, false ); setTimer(function() --caixa = createObject(2912, 0, 0, 0) setPedAnimation( Jog, nil ); setPedAnimation( Jog, "CARRY", "crry_prtial", 4.1, true, true, true ); toggleControl(Jog,"jump", false) toggleControl(Jog,"fire", false) caixa = createObject( 2912, fX, fY, fZ ); exports.bone_attach:attachElementToBone( caixa, Jog, 4, 0, 0.4, - 0.6, -90, 0, 0 ); setElementData(Jog, "Pegou:Caixa.Crgador", caixa) end, 1000, 1) end end addCommandHandler("pegar", CarregadorPegar) function PorCaminhao (cami) local CamiNaMarker = getVehicleInMarker( MarkerCaminhao ) outputChatBox("01") if (CamiNaMarker) and getElementModel(CamiNaMarker) == 499 then outputChatBox("02") setElementData(CamiNaMarker, "Caminhao:ProntoPcarregar", CamiNaMarker) outputChatBox("03") local x, y, z = getElementPosition(CamiNaMarker) outputChatBox("04") m1 = createMarker(x, y, z -1, "cylinder", 2.0, 0, 255, 255, 255) outputChatBox("05") attachElements(m1, CamiNaMarker, 0, - 4.2, - 1) outputChatBox("06") setElementFrozen(CamiNaMarker, true) outputChatBox("07") --end else outputChatBox("Este veiculo não pertence ao trabalho de entregador!") end end addCommandHandler("carregar", PorCaminhao) function CarregadorEntregar ( Jog) if getElementType( Jog ) == "player" and getElementData( Jog, "Pegou:Caixa.Crgador" ) then --if isElementWithinMarker(Jog, m1) then outputChatBox("01") local CamiNaMarker = getVehicleInMarker( MarkerCaminhao ) outputChatBox("02") local DataCaminhao = getElementData(CamiNaMarker, "Caminhao:ProntoPcarregar") outputChatBox("02") if (CamiNaMarker) then outputChatBox("03") if ( DataCaminhao ) then outputChatBox("04") setPedAnimation( Jog, "CARRY", "putdwn", 1.0, false, false, false, true ); outputChatBox("05") setTimer(function() if ( DataCaminhao ) == 20 then outputChatBox("caminhão cheio") else outputChatBox("06") DeleteBox( Jog ); outputChatBox("07") setElementData(CamiNaMarker, "Caminhao:ProntoPcarregar", DataCaminhao + 1) outputChatBox("08") --givePlayerMoney( Jog, rad); --outputChatBox("Você ganhou R$"..rad,Jog) setPedAnimation( Jog, "CARRY", "liftup", 0.0, false, false, false, false ); outputChatBox("09") toggleControl(Jog,"jump", true) toggleControl(Jog,"fire", true) end end, 1000, 1) else outputChatBox("Estacione o Caminhão Primeiro!") end end --end end end addCommandHandler("por", CarregadorEntregar) function TirarCaminhao (cami) local CamiNaMarker = getVehicleInMarker( MarkerCaminhao ) outputChatBox("01") if (CamiNaMarker) and getElementModel(CamiNaMarker) == 499 then outputChatBox("02") if getElementData(CamiNaMarker, "Caminhao:ProntoPcarregar") == 20 then outputChatBox("03") setElementData(CamiNaMarker, "Caminhao:Carregado", 20) outputChatBox("04") detachElements(m1, CamiNaMarker) outputChatBox("05") destroyElement(m1) outputChatBox("06") setElementFrozen(CamiNaMarker, false) outputChatBox("07") end end end addCommandHandler("carregado", TirarCaminhao)
  25. Bom fiz os testes aqui e ta tudo certo com o seu script, só não entendi os else e tbm do jeito que vc fez qualquer player vai poder ter acesso aos comandos policiais! Refiz essa parte da verificação, da uma olhada e verifica se esta tudo certo mesmo na acl Admin. marker = createMarker(1557.796, -1604.656, 13.383 ,"cylinder", 1.1, 255 ,0 ,0 ,255) function pegarTag ( Jogador ) if isElementWithinMarker (Jogador, marker ) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(Jogador)), aclGetGroup("AclPolicial")) then aclGroupAddObject (aclGetGroup("ComandosPolicia"), "user."..getAccountName(getPlayerAccount(Jogador))) outputChatBox ("|#FFFF00Policia Federal#FFFFFF|-Agora você está em seviço na PF", Jogador, 255, 255, 255, true) else outputChatBox ('|#FF0000Aviso#FFFFFF|- Você não tem permissão! Saia deste local', Jogador, 255, 255, 255, true) end end end addCommandHandler ( "trabalhar", pegarTag ) function tirarTag ( Jogador ) if isElementWithinMarker (Jogador, marker ) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(Jogador)), aclGetGroup("AclPolicial")) then aclGroupRemoveObject (aclGetGroup("ComandosPolicia"), "user."..getAccountName(getPlayerAccount(Jogador))) setPedSkin ( Jogador, 0 ) outputChatBox ('|#FFFF00Policia Federal#FFFFFF|-Você está fora de serviço da PF.', Jogador, 255, 255, 255, true) else outputChatBox ('|#FF0000Aviso#FFFFFF|- Você não tem permissão! Saia deste local', Jogador, 255, 255, 255, true) end end end addCommandHandler ( "sair", tirarTag )
×
×
  • Create New...