-
Posts
395 -
Joined
-
Last visited
-
Days Won
1
Everything posted by #DeltaSCR
-
@Jonas^ e @MaligNos então eu vou usar as funções enviadas pelos dois?
-
Pode me explicar um pouco melhor? Não entendi muito bem... @Lord HenryComo eu encaixaria esse setTimer no código?
-
OK, vou testar, agora outra dúvida, como eu poderia fazer para o player fazer uma denúncia , e quando ele fizer a mesma, só poderá fazer outra após 10m?
-
Então, eu tentei fazer aqui usando o que o @Lord Henry me passou porém estou com os seguintes problemas: O outputChatBox não está sendo enviado para os policiais da ACL determinada; Quando eu aperto no botão de "enviar", aparece a seguinte mensagem no debugscript3: A Seguir os códigos (server-side e client-side): Client-Side local font1 = dxCreateFont("font/bebas.ttf", 13) local screenW, screenH = guiGetScreenSize() editDenuncia = guiCreateEdit(0.38, 0.57, 0.29, 0.04, "", true) editID = guiCreateEdit(0.34, 0.63, 0.33, 0.04, "", true) guiSetVisible (editDenuncia, false) guiSetVisible (editID, false) guiEditSetMaxLength (editDenuncia, 30) guiEditSetMaxLength (editID, 4) function obterDados () if DeltaSCR_Painel == true then data1 = guiGetText(editDenuncia) data2 = guiGetText(editID) end end DeltaSCR_Painel = false function DeltaSCR_DX () dxDrawRectangle(screenW * 0.5914, screenH * 0.6817, screenW * 0.0781, screenH * 0.0417, tocolor(0, 150, 0, 255), false) -- @Botão de Envio end -- addEventHandler ("onClientRender", getRootElement(), DeltaSCR_DX) function DeltaSCR_Abrir () if DeltaSCR_Painel == false then DeltaSCR_Painel = true addEventHandler ("onClientRender", getRootElement(), DeltaSCR_DX) guiSetVisible (editDenuncia, true) guiSetVisible (editID, true) showCursor (true) end end addEvent ("DeltaSCR:Abrir", true) addEventHandler ("DeltaSCR:Abrir", getRootElement(), DeltaSCR_Abrir) function sendDenuncia (button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement) if DeltaSCR_Painel == true then if state == "down" then if isCursorOnElement (screenW * 0.5914, screenH * 0.6817, screenW * 0.0781, screenH * 0.0417) then if guiGetText(editDenuncia) == "" or guiGetText(editID) == "" then outputChatBox ("Erro: Verifique os campos preenchidos e tente novamente") return end outputChatBox ("Sucesso: Você enviou sua denúncia, as autoridades estão resolvendo") triggerServerEvent(root, "DeltaSCR:ACL", getRootElement()) DeltaSCR_Painel = false removeEventHandler ("onClientRender", getRootElement(), DeltaSCR_DX) guiSetVisible (editDenuncia, false) guiSetVisible (editID, false) showCursor (false) end end end end addEventHandler ("onClientClick", getRootElement(), sendDenuncia) -- @Cursor Functions function cursorPosition (x, y, w, h) if (not isCursorShowing()) then return false end local mx, my = getCursorPosition() local fullx, fully = guiGetScreenSize() cursorx, cursory = mx*fullx, my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end function isCursorOnElement (x, y, w, h) local mx,my = getCursorPosition () local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end Server-Side local markers = { {1474.9, -1334.2, 11.8 -1}, {1446.0, -1376.6, 13.5 -1}, {2009.7, -1458.1, 13.3 -1} } addEventHandler ("onResourceStart", resourceRoot, function() for _,pos in ipairs(markers) do local marker = createMarker(pos[1], pos[2], pos[3], 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler ("onMarkerHit", marker, MarkerHit) end end ) function MarkerHit (hitElement) if (getElementType(hitElement)) == "player" then triggerClientEvent(hitElement, "DeltaSCR:Abrir", getRootElement()) end end function verifyACL (thePlayer) local players = getElementsByType ("player") for _, thePlayer in ipairs (players) do local account = getAccountName (getPlayerAccount(thePlayer)) if isObjectInACLGroup ("user."..account, aclGetGroup ("ComandosPolicia")) then outputChatBox ("Denuncia de furto em: "..edit1.." ID: "..edit2.."") end end end addEvent ("DeltaSCR:ACL", true) addEventHandler ("DeltaSCR:ACL", getRootElement(), verifyACL) Conclusão: O que eu quero que aconteça é: O Player abre o Painel através de um Marker; Coloca sua denuncia na EditBox; Conclui a denuncia a partir do botão enviar e fecha o painel Essa denuncia deverá aparecer em forma de outputChatBox á todos os Players que estejam na ACL "ComandosPolicia"
-
Ainda restou-me uma dúvida neste mesmo código: Pretendo obter o texto da editBox, Juntamente com Nome do Player que utilizou o painel, porém eu queria que fosse exibido um outputChatBox para uma ACL Especifica, porém verificação de ACL se não me engano é somente em server-side, como eu poderia fazer isso?
-
Como não pensei nisso antes ? Realmente era o que faltava; Quanto aos parâmetros de função da linha 34 acho que estão incorretos... Mas acho que consigo resolver aqui
-
OK, A parte de abrir o painel funcionou, agora estou com outro problema neste mesmo código: Quando eu aperto um botão, ele não executa a função que era pra ser realizada, a seguir o código... Client-Side: editDenuncia = guiCreateEdit(0.38, 0.57, 0.29, 0.04, "", true) editID = guiCreateEdit(0.34, 0.63, 0.33, 0.04, "", true) guiSetVisible (editDenuncia, false) guiSetVisible (editID, false) guiEditSetMaxLength (editDenuncia, 30) guiEditSetMaxLength (editID, 4) function obterDados () if DeltaSCR_Painel == true then data1 = guiGetText(editDenuncia) data2 = guiGetText(editID) end end DeltaSCR_Painel = false function DeltaSCR_DX () dxDrawRectangle(screenW * 0.5914, screenH * 0.6817, screenW * 0.0781, screenH * 0.0417, tocolor(0, 150, 0, 255), false) end function DeltaSCR_Abrir () if DeltaSCR_Painel == false then addEventHandler ("onClientRender", getRootElement(), DeltaSCR_DX) guiSetVisible (editDenuncia, true) guiSetVisible (editID, true) showCursor (true) end end addEvent ("DeltaSCR:Abrir", true) addEventHandler ("DeltaSCR:Abrir", getRootElement(), DeltaSCR_Abrir) function sendDenuncia (button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement) if DeltaSCR_Painel == true then if state == "down" then if isCursorOnElement (screenW * 0.5914, screenH * 0.6817, screenW * 0.0781, screenH * 0.0417) then if guiGetText(editDenuncia) == "" or guiGetText(editID) == "" then outputChatBox ("#ff0000Erro: Verifique os campos preenchidos e tente novamente") return end outputChatBox ("#00ff00Sucesso: Você enviou sua denúncia, as autoridades estão resolvendo") end end end end addEventHandler ("onClientClick", getRootElement(), sendDenuncia) -- @Cursor Functions function cursorPosition (x, y, w, h) if (not isCursorShowing()) then return false end local mx, my = getCursorPosition() local fullx, fully = guiGetScreenSize() cursorx, cursory = mx*fullx, my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end function isCursorOnElement (x, y, w, h) local mx,my = getCursorPosition () local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end Server-Side: local markers = { {1474.9, -1334.2, 11.8 -1}, {1446.0, -1376.6, 13.5 -1}, {2009.7, -1458.1, 13.3 -1} } addEventHandler ("onResourceStart", resourceRoot, function() for _,pos in ipairs(markers) do local marker = createMarker(pos[1], pos[2], pos[3], 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler ("onMarkerHit", marker, MarkerHit) end end ) function MarkerHit (hitElement) if (getElementType(hitElement)) == "player" then triggerClientEvent(hitElement, "DeltaSCR:Abrir", getRootElement()) end end Acredito que a parte do Server-Side não esteja influenciando em nada...
-
Pelo o que eu entendi você está se referindo ao Painel Handling, correto? Nesse caso você teria que usar: getAccountName getPlayerAccount isObjectInACLGroup aclGetGroup
-
@Lord Henry @MaligNos client-side local font1 = dxCreateFont("font/bebas.ttf", 13) local screenW, screenH = guiGetScreenSize() DeltaSCR_Painel = false function DeltaSCR_Edits() editDenuncia = guiCreateEdit(0.38, 0.57, 0.29, 0.04, "", true) editID = guiCreateEdit(0.34, 0.63, 0.33, 0.04, "", true) guiSetVisible (editDenuncia, false) guiSetVisible (editID, false) end addEventHandler("onClientResourceStart", resourceRoot, DeltaSCR_Edits) function DeltaSCR_DX () -- @Essa parte do DX não importa end function DeltaSCR_Abrir () if DeltaSCR_Painel == false then addEventHandler ("onClientRender", getRootElement(), DeltaSCR_DX) guiSetVisible (editDenuncia, true) guiSetVisible (editID, true) end end addEvent ("DeltaSCR:Abrir", true) addEventHandler ("DeltaSCR:Abrir", getRootElement(), DeltaSCR_Abrir) server-side local markers = { {1474.9, -1334.2, 11.8 -1}, {1446.0, -1376.6, 13.5 -1}, {2009.7, -1458.1, 13.3 -1} } addEventHandler ("onResourceStart", resourceRoot, function() for _,pos in ipairs(markers) do local marker = createMarker(pos[1], pos[2], pos[3], 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler ("onMarkerHit", marker, MarkerHit) end end ) function MarkerHit () triggerClientEvent (source, "DeltaSCR:Abrir", getRootElement()) end
-
OK, burrada minhas dos markers não aparecerem kkk, mas enfim... Agora estou com uma dúvida, quando o player passar no marker, vai chamar um evento client-side, porém não sei se os elementos e os parâmetros de função estão corretos... addEventHandler ("onResourceStart", resourceRoot, function() for _,pos in ipairs(markers) do local marker = createMarker(pos[1], pos[2], pos[3], 'cylinder', 2.0, 255, 0, 0, 150) addEventHandler ("onPlayerMarkerHit", marker, MarkerHit) end end ) function MarkerHit (hitElement, matchingDimension) local elementType = getElementType(hitElement) triggerClientEvent (source, "DeltaSCR:Abrir", getRootElement()) end
-
Está exatamente do jeito que você mandou, apenas alterei as coordenadas
-
Os markers não estão sendo criados, e o debug não acusa nada
-
Então o que eu quero que seja executado o player passar no marker deve ser na primeira função?
-
Olá, estou com uma duvida em uma código que estou desenvolvendo... Teria de alguma forma eu meio que fazer uma tabela de markers? Por exemplo, se eum player passar em qualquer um desses markers execute uma, e essa função seria realizada em qualquer um desses markers... Pois são muitos markers, e se eu for fazer função por função ficaria muito longo o código; Como eu poderia fazer isso?
-
Vou enviar no seu privado
-
@DNL291Restou apenas um bug mano, seguinte, quando eu escolho qualquer player para obter o dinheiro, ao invés de obter o dinheiro do player selecionado, está obtendo apenas o meu dinheiro, como poderia arrumar isto? Eis o codigo: ----- DINHEIRO ----- if selectedPlayer then dxDrawText("Dinheiro: "..(getPlayerMoney(selectedPlayer)), screenW * 0.6461, screenH * 0.3167, screenW * 0.5703, screenH * 0.3583, tocolor(255, 255, 255, 255), 1.00, "clear", "left", "center", false, false, false, false, false) else dxDrawText("Dinheiro: N/C", screenW * 0.6461, screenH * 0.3167, screenW * 0.5703, screenH * 0.3583, tocolor(255, 255, 255, 255), 1.00, "clear", "left", "center", false, false, false, false, false) selectedPlayer = nil end ----- PROCURADO ----- if selectedPlayer then dxDrawText("Procurado: "..(getPlayerWantedLevel(selectedPlayer)), screenW * 0.7861, screenH * 0.3750, screenW * 0.5703, screenH * 0.4167, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, false, false) else dxDrawText("Procurado: N/C", screenW * 0.7961, screenH * 0.3750, screenW * 0.5703, screenH * 0.4167, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, false, false) selectedPlayer = nil end
-
Então a "iprint" que mostra as infos no debug né?
-
@DNL291Resta só uma dúvida, é possível tirar essas "info" do debug? Se sim, como?
-
@DNL291 Eis a print, aparentemente está funcionando
-
Vou testar e em breve te aviso o que deu, provavelmente foi isso ai da variável que você disse mesmo
-
Então Galera, sei quem passou um certo tempo desde a última atualização do post, mas me vi na necessidade de, quais alterações eu teria que fazer pra quando eu segurasse a letra "h", tocasse uma outra sirene modificada?
-
A função click permanece a mesma que você mandou anteriormente
-
if selectedPlayer then if getElementData (selectedPlayer, "AirNewSCR_Porte_de_Armas") == "Sim" then dxDrawText("PDA (#00FF00✔#FFFFFF)", screenW * 0.7661, screenH * 0.4333, screenW * 0.5703, screenH * 0.4750, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, true, false) else dxDrawText("PDA (#FF0000✘#FFFFFF)", screenW * 0.7661, screenH * 0.4333, screenW * 0.5703, screenH * 0.4750, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, true, false) selectedPlayer = nil end end Está exatamente assim, porém bugou tudo, não obtem mais dado nenhum do Player
-
Resolvido Agora estou com o seguinte problema na verificação de data - O debugscript acusa o seguinte: WARNING: ...:153: Bad Argument @ 'getElementData' [Expected element at argument 1, got nil] A seguir está o código: if selectedPlayer then if getElementData (thePlayer, "AirNewSCR_Porte_de_Armas") == "Sim" then dxDrawText("PDA (#00FF00✔#FFFFFF)", screenW * 0.7661, screenH * 0.4333, screenW * 0.5703, screenH * 0.4750, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, false, false) else dxDrawText("PDA (#FF0000✘#FFFFFF)", screenW * 0.7661, screenH * 0.4333, screenW * 0.5703, screenH * 0.4750, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center", false, false, false, false, false) selectedPlayer = nil end end
-
Agora eu estou obtendo o Dinheiro do Player selecionado (thePlayer), porém quando eu deseleciono o player, no DX, mantém o dinheiro do player, como posso fixar isso? local money = getPlayerMoney (thePlayer) if money and money ~= 0 then dxDrawText("Dinheiro: "..money.."", screenW * 0.6461, screenH * 0.3167, screenW * 0.5703, screenH * 0.3583, tocolor(255, 255, 255, 255), 1.00, "clear", "left", "center", false, false, false, false, false) end