-
Posts
395 -
Joined
-
Last visited
-
Days Won
1
Everything posted by #DeltaSCR
-
Ah sim, eu vou usar funções db, pois quero meio que um sistema independente, aí nesse caso, o que eu usaria para criar a tabela?
-
Ah sim... Tipo, qual a diferença entre executeSQLQuery e os as funções db (dbConnect, etc)? Quando eu uso cada um desses?
-
Ok, então o primeiro passo, no caso criar o banco de dados seria nesse modelo? executeSQLQuery ("CREATE TABLE IF NOT EXISTS tabelaLegal (ID INTEGER NOT NULL PRIMARY KEY, PosX REAL, PosY REAL, PosZ REAL, accountName TEXT)") Tipo, como estou trabalhando com uma Loja de Skins, acha que somente uma coluna (ID) basta? Ou precisa criar algo a mais?
-
Tipo, eu li o seu tutorial, e entendi mais ou menos o que cada coisa faz, porém não entendi como por em pratica, Por exemplo: Como criar o banco de dados, onde encaixar no código, o que vem antes, e o que vem depois...
-
Olá, eu estou desenvolvendo um código e me vi a necessidade de usar uma database, porém não entendo nada do assunto, eu andei dando uma lida no tutorial do @Lord Henry porém não entendi como por cada coisa em pratica; O que eu quero fazer: Uma Loja de Skins, que a mesma tem um botão de usar, na hora que ele apertar o botão de Comprar, se ele já tiver a Skin comprada, aparece uma mensagem para apertar no outro botão (Botão de usar a Skin), porém estou em dúvidas nessa parte de obter se ele tem a skin... Enfim, na Database em Geral. Se pudessem me ajudar ficaria agradecido function DeltaSCR_Comprar (_, state) if DeltaSCR_Painel == true then if state == "down" then if isCursorOnElement (screenW * 0.5295, screenH * 0.5583, screenW * 0.1094, screenH * 0.0500) then -- //CANCELAR DeltaSCR_Abrir () elseif isCursorOnElement (screenW * 0.5295, screenH * 0.4917, screenW * 0.1094, screenH * 0.0500) then -- //USAR elseif isCursorOnElement (screenW * 0.5295, screenH * 0.4250, screenW * 0.1094, screenH * 0.0500) then -- //COMPRAR local rowItem = guiGridListGetSelectedItem (skinsList) if rowItem ~= -1 then if guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 1" then setElementModel (localPlayer, 0) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 2" then setElementModel (localPlayer, 1) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 3" then setElementModel (localPlayer, 2) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 4" then setElementModel (localPlayer, 7) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 5" then setElementModel (localPlayer, 9) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 6" then setElementModel (localPlayer, 10) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 7" then setElementModel (localPlayer, 11) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 8" then setElementModel (localPlayer, 12) takePlayerMoney (300) DeltaSCR_Abrir () end end end end end end addEventHandler ("onClientClick", getRootElement(), DeltaSCR_Comprar)
-
Poste o resto de seu código, esses erros significam que os eventos já foram adicionados em outra parte do código
-
function DeltaSCRDX () -- //BOTÃO dxDrawLine((screenW * 0.4414) - 1, (screenH * 0.5667) - 1, (screenW * 0.4414) - 1, screenH * 0.6167, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5586, (screenH * 0.5667) - 1, (screenW * 0.4414) - 1, (screenH * 0.5667) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawLine((screenW * 0.4414) - 1, screenH * 0.6167, screenW * 0.5586, screenH * 0.6167, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5586, screenH * 0.6167, screenW * 0.5586, (screenH * 0.5667) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawRectangle(screenW * 0.4414, screenH * 0.5667, screenW * 0.1172, screenH * 0.0500, tocolor(0, 180, 50, 255), false) dxDrawText("Resgatar", (screenW * 0.4414) - 1, (screenH * 0.5667) - 1, (screenW * 0.5586) - 1, (screenH * 0.6167) - 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Resgatar", (screenW * 0.4414) + 1, (screenH * 0.5667) - 1, (screenW * 0.5586) + 1, (screenH * 0.6167) - 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Resgatar", (screenW * 0.4414) - 1, (screenH * 0.5667) + 1, (screenW * 0.5586) - 1, (screenH * 0.6167) + 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Resgatar", (screenW * 0.4414) + 1, (screenH * 0.5667) + 1, (screenW * 0.5586) + 1, (screenH * 0.6167) + 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Resgatar", screenW * 0.4414, screenH * 0.5667, screenW * 0.5586, screenH * 0.6167, tocolor(255, 255, 255, 255), 1.00, customFont, "center", "center", false, false, false, false, false) -- //CANCELAR dxDrawLine((screenW * 0.4414) - 1, (screenH * 0.6367) - 1, (screenW * 0.4414) - 1, screenH * 0.6867, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5586, (screenH * 0.6367) - 1, (screenW * 0.4414) - 1, (screenH * 0.6367) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawLine((screenW * 0.4414) - 1, screenH * 0.6867, screenW * 0.5586, screenH * 0.6867, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(screenW * 0.5586, screenH * 0.6867, screenW * 0.5586, (screenH * 0.6367) - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawRectangle(screenW * 0.4414, screenH * 0.6367, screenW * 0.1172, screenH * 0.0500, tocolor(200, 0, 0, 255), false) dxDrawText("Cancelar", (screenW * 0.4414) - 1, (screenH * 0.6367) - 1, (screenW * 0.5586) - 1, (screenH * 0.6867) - 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Cancelar", (screenW * 0.4414) + 1, (screenH * 0.6367) - 1, (screenW * 0.5586) + 1, (screenH * 0.6867) - 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Cancelar", (screenW * 0.4414) - 1, (screenH * 0.6367) + 1, (screenW * 0.5586) - 1, (screenH * 0.6867) + 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Cancelar", (screenW * 0.4414) + 1, (screenH * 0.6367) + 1, (screenW * 0.5586) + 1, (screenH * 0.6867) + 1, tocolor(0, 0, 0, 255), 1.00, customFont, "center", "center", false, false, false, false, false) dxDrawText("Cancelar", screenW * 0.4414, screenH * 0.6367, screenW * 0.5586, screenH * 0.6867, tocolor(255, 255, 255, 255), 1.00, customFont, "center", "center", false, false, false, false, false) end function AbrirPainel () if PainelDX then removeEventHandler ("onClientRender", getRootElement(), DeltaSCRDX) showChat(true) showCursor(false) else addEventHandler ("onClientRender", getRootElement(), DeltaSCRDX) showChat(false) showCursor(true) end PainelDX = not PainelDX end addEvent ("DeltaSCR:Abrir", true) addEventHandler ("DeltaSCR:Abrir", getRootElement(), AbrirPainel) -- // -- function DeltaSCRClicks (button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement) if PainelDX == true then if state == "down" then if isCursorOnElement (screenW * 0.4414, screenH * 0.5667, screenW * 0.1172, screenH * 0.0500) then givePlayerMoney(3000) AbrirPainel () outputChatBox ("╔═════════════════════════════════════════════════╗", 200, 50, 0) outputChatBox ("INFO: #FFFFFFVocê resgatou seu bônus diário com sucesso", 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", 200, 50, 0) elseif isCursorOnElement (screenW * 0.4414, screenH * 0.6367, screenW * 0.1172, screenH * 0.0500) then AbrirPainel () else AbrirPainel () end end end end addEventHandler ("onClientClick", getRootElement(), DeltaSCRClicks)
-
@Jonas^ está lá em cima
-
A linha do Marker está assim: local theMarker = createMarker (1409.666, -1790.515, 13.546 -1.0, "cylinder", 1.2, 200, 50, 0, 150)
-
O painel não está abrindo, e o Marker está criado
-
Mas no evento "onPlayerMarkerHit", não teria que ser root no lugar de theMarker?
-
Ah sim, correto, permanece aquela mesma né?
-
Então nesse caso não vai precisar criar uma tabela?
-
No caso nas verificações?
-
@Lord Henry Fiz pequenas alterações, estaria correto assim? local theTimers = {} function DeltaSCRAbrir (hitElement, matchingDimension) if (getElementType(hitElement)) == "player" then if getPedOccupiedVehicle(hitElement) == false then local theTimer = theTimers[hitElement] if not (theTimer) then theTimers[hitElement] = setTimer (function () theTimers[hitElement] = nil end, 60000, 1) elseif theTimer and isTimer(theTimer) then outputChatBox ("╔═════════════════════════════════════════════════╗", hitElement, 200, 50, 0) outputChatBox ("ERRO: #FFFFFFVocê já resgatou seu bônus diario, aguarde para resgatar o próximo", hitElement, 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", hitElement, 200, 50, 0) return end triggerClientEvent (hitElement, "DeltaSCR:Abrir", root) end end end addEventHandler ("onMarkerHit", theMarker, DeltaSCRAbrir) local timerDetails = getTimerDetails (theTimers) function setDataLogout (thePreviousAccount, theCurrentAccount) setAccountData (thePreviousAccount, "DeltaSCR:Timers", timerDetails) end addEventHandler ("onPlayerLogout", getRootElement(), setDataLogout) addEventHandler ("onPlayerQuit", root, function() if theTimers[source] then if isTimer(theTimers[source]) then killTimer(theTimers[source]) end theTimers[source] = nil end end ) function setDataLogin (thePreviousAccount, theCurrentAccount) if isTimer(theTimers) then local dataTimer = getAccountData (theCurrentAccount, "DeltaSCR:Timers") if dataTimer then setElementData (source, "DeltaSCR:Timers", dataTimer) end end end addEventHandler ("onPlayerLogin", getRootElement(), setDataLogin)
-
Eu criei uma variável com o getTimerDatails, porém acho que pelo fato dela está dentro de uma função, não pegou no setAccountData, acho que foi mais em questão do killTimer, agora uma dúvida: nessa última parte que você falou, de adicionar um setTimer no Player assim que ele logar, eu deverei armazenar na mesma table?
-
Olá amigos, estou desenvolvendo um código cujo o player só pode executar determinado tempo. pórem eu queria mesmo que o player quando saísse do Servidor, o timer continuasse correndo, mas acho que não tem como, então tentei fazer de uma maneira diferente, porém parece que quando o player logo, meio que não é verificado se ele está nessa tabela... server-side local theMarker = createMarker (1409.666, -1790.515, 13.546 -1.0, "cylinder", 1.2, 200, 50, 0, 150) local theTimers = {} function DeltaSCRAbrir (hitElement, matchingDimension) if (getElementType(hitElement)) == "player" then if getPedOccupiedVehicle(hitElement) == false then local theTimer = theTimers[hitElement] if not (theTimer) then theTimers[hitElement] = setTimer (function () theTimers[hitElement] = nil end, 60000, 1) elseif theTimer and isTimer(theTimer) then outputChatBox ("╔═════════════════════════════════════════════════╗", hitElement, 200, 50, 0) outputChatBox ("ERRO: #FFFFFFVocê já resgatou seu bônus diario, aguarde para resgatar o próximo", hitElement, 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", hitElement, 200, 50, 0) return end triggerClientEvent (hitElement, "DeltaSCR:Abrir", root) end end end addEventHandler ("onMarkerHit", theMarker, DeltaSCRAbrir) function setDataLogout (thePreviousAccount, theCurrentAccount) setAccountData (thePreviousAccount, "DeltaSCR:Timers", timerDetails) end addEventHandler ("onPlayerLogout", getRootElement(), setDataLogout) function setDataLogin (thePreviousAccount, theCurrentAccount) if isTimer(theTimers) then local timerDetails = getTimerDetails (theTimers) local dataTimer = getAccountData (theCurrentAccount, "DeltaSCR:Timers") if dataTimer then setElementData (source, "DeltaSCR:Timers", dataTimer) end end end addEventHandler ("onPlayerLogin", getRootElement(), setDataLogin) addEventHandler ("onPlayerQuit", root, function() if theTimers[source] then if isTimer(theTimers[source]) then killTimer(theTimers[source]) end theTimers[source] = nil end end ) client-side (evento que está sendo chamado pelo server) function AbrirPainel () if PainelDX then removeEventHandler ("onClientRender", getRootElement(), DeltaSCRDX) showChat(true) showCursor(false) else addEventHandler ("onClientRender", getRootElement(), DeltaSCRDX) showChat(false) showCursor(true) end PainelDX = not PainelDX end addEvent ("DeltaSCR:Abrir", true) addEventHandler ("DeltaSCR:Abrir", getRootElement(), AbrirPainel)
-
Ah sim, realmente não vai funcionar você está indicando para destruir somente o elemento veh, para isso, você deverá verificar se o Player está em um veículo, e depois criar uma variável obtendo o Veículo
-
Tente assim, talvez resolva: 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 vehicle (marker, md) if md then if marker == marker1 then if not isPedInVehicle (source) then if isElement (veh[source]) then destroyElement(veh[source]) veh[source] = nil end local x,y,z = getElementPosition(source) veh[source] = createVehicle (490, 2185.0043945313,-1805.0360107422,13.370622634888, -0, 0, 5.1420917510986) warpPedIntoVehicle (source, veh[source]) end elseif marker == marker2 then if veh[source] and isElement (veh[source]) then destroyElement(veh[source]) veh[source] = nil end end end end addEventHandler ("onPlayerMarkerHit", getRootElement (), vehicle)
-
Olá @LucasMTA, poste seu código para te ajudarmos
-
usa o Evento onPlayerChat e cancela o chat original
-
Olá @joaolamar, pode me mostrar como está seu código?
-
Hola @dthxxx666, por lo que he entendido usted quiere ocultar un radar modificado, para eso, el setPlayerHudComponentVisible es inútil, entonces usted debe abrir el archivo de su radar, crear una función quitando el evento de su Radar
-
Hola, usted puede hacer la comprobación de nivel del jugador; Usted debe "getElementData", y luego comprobar si el nivel del jugador es compatible con el nivel de trabajo.
-
Troque sua Linha 26 por isso: local Dinheiro_Banco = getElementData ( localPlayer, "Bank:Royal" ) or 0