Jump to content

Keven Campos

Members
  • Posts

    8
  • Joined

  • Last visited

Details

  • Location
    Brasil

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Keven Campos's Achievements

Newbie

Newbie (4/54)

0

Reputation

  1. Opa, tudo bom ? vou deixar uma parte abaixo if selectedSubCategory == 10 then -- Air-Ride if hoveredCategory == equippedTuning then giveNotification("error", getLocalizedText("notification.error.itemIsPurchased", loopTable[hoveredCategory]["categoryName"])) promptDialog["state"] = false else if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then setElementData(enteredVehicle, "tuning.airRide", loopTable[hoveredCategory]["tuningData"], true) if hoveredCategory == 1 then removeAirRide(enteredVehicle) end equippedTuning = hoveredCategory moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end end elseif selectedSubCategory == 11 then -- Lamp color if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then savedVehicleColors["all"] = {getVehicleColor(enteredVehicle, true)} savedVehicleColors["headlight"] = {getVehicleHeadLightColor(enteredVehicle)} triggerServerEvent("tuning->Color", localPlayer, enteredVehicle, savedVehicleColors["all"], savedVehicleColors["headlight"]) equippedTuning = -1 moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end elseif selectedSubCategory == 12 then -- Neon if hasPlayerMoney(loopTable[hoveredCategory]["tuningPrice"]) then saveNeon(enteredVehicle, loopTable[hoveredCategory]["tuningData"], true) equippedTuning = hoveredCategory moneyChange(loopTable[hoveredCategory]["tuningPrice"]) promptDialog["state"] = false else giveNotification("error", getLocalizedText("notification.error.notEnoughMoney")) promptDialog["state"] = false end end end Cara, confesso estar um tanto perdido nesse código, aparentemente ele salva em elementData ? eu necessitava setar as handling no veiculo após spawnar ele pelo painel da concessionaria, a concessionaria salva através de SQLite os veiculos, quando eu destruo o veiculo comprado e spawno ele novamente não acompanha tunagem
  2. Gostaria de saber como eu poderia salvar a tunagem de um veiculo, quais funções eu poderia usar acredito que após tunar o veiculo ter uma verificação as alterações feitas e salvar em um elementdata ? faz um tempo que eu estou perdido nisso e não encontro nem um mod para estudo
  3. Realmente, nesta situação acho que não seria possível um sistema eficiente com os métodos que eu coloquei como exemplo
  4. poderia criar uma Tabela para armazenar os valores, Exemplo: -- Lado servidor staffOnline = {} -- Uma tabela vazia, poderia ser qualquer nome --[[ QUANDO O JOGADOR ENTRAR ]] addEventHandler("onPlayerLogin", root, function() local conta = getAccountName ( getPlayerAccount ( source ) ) -- Pega if isObjectInACLGroup ("user."..tostring(conta), aclGetGroup ( "Staff" ) ) then -- Se o jogador estiver no Grupo staff table.insert(staffOnline, 1) -- Aqui adiciona um item na tabela, aumentando o tamanho dela toda vez que alguem do Grupo Staff entre end ) --[[ QUANDO O JOGADOR DESCONECTAR ]] function JogadorQuit ( quitType ) local conta = getAccountName ( getPlayerAccount ( source ) ) -- Pega if isObjectInACLGroup ("user."..tostring(conta), aclGetGroup ( "Staff" ) ) then -- Se o jogador estiver no Grupo staff table.remove(staffOnline) -- Remove o "usuario" da tabela end end addEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit ) Se usado "#staffOnline" Você consegue obter o tamanho desta tabela. realmente não sei se funcionaria, mais talvez seja algo que vale apena pensar Não testei o codigo acima
  5. Também já tive o mesmo problema. Sugiro que você inicie somente um mod que tenha Painel e tente usa-lo, se o painel não ficar invisível então tem algum mod que está dando conflito, sendo assim sugiro que você inicie os Mod um por um até achar o "mod problemático"
  6. Bom, gostaria de saber como posso trocar a skin do CJ (ID 0), eu tentei usar uma skin que já tenho no servidor e dar replace no ID 0 porém sem sucesso, métodos como o abaixo não funcionou txd = engineLoadTXD ( "MinhaSkin.txd" ) engineImportTXD ( txd, 0 ) dff = engineLoadDFF ( "MinhaSkin.dff" ) engineReplaceModel ( dff, 0 ) Isso foi um exemplo, estou longe do meu computador no momento
  7. Eu estou começando na programação e fiz um script que me parece um pouco "sujo", me da a impressão que ele pode acabar dando lag, vou deixar uma parte dele abaixo -- Lado Server: ----------------------------------------------- DAR PERMISSÕES -------------------------------- function SkinAdmin (thePlayer) -- Nome da função aleatoria, quando começei pensava em outro sistema local nomeConta = getPlayerName (thePlayer) local ID = getElementData ( thePlayer, "ID" ) or "N/C" local time = getRealTime() local hours = time.hour local minutes = time.minute local acc = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..acc, aclGetGroup("Fundador")) then -- O Grupo "Fundador" permanece no player, é o que faz com que ele possa usar o comando /atender aclGroupAddObject (aclGetGroup("FundadorP"), "user."..acc) -- Este grupo tem as permissões do painel P e comandos externos setElementData(thePlayer,"onProt",true) -- "onProt" é o sistema de ivulnerabilidade (/pro) setElementModel(thePlayer, 140) -- skin de staff exports.webhook:sendDiscordMessage("O Fundador: "..nomeConta.."["..ID.."] entrou em modo atendimento. Horario: "..hours..":"..minutes.."") -- Aqui está mandando um log pro discord outputChatBox("#1e90ff[Servidor] #ffffffVocê entrou em modo atendimento.", thePlayer, 255, 255, 255,true ) -- Para mostrar que o comando funcionou triggerClientEvent(thePlayer, "FM_SkinAdmin", thePlayer) -- Aparece um painel pequeno em DX pra lembrar que ele está em "Modo Atendimento", se causar um lag significativo pelo triggerClientEvent eu posso tirar. ----------------------------------------------- elseif isObjectInACLGroup ("user."..acc, aclGetGroup("Organizador")) then aclGroupAddObject (aclGetGroup("OrganizadorP"), "user."..acc) setElementData(thePlayer,"onProt",true) setElementModel(thePlayer, 140) exports.webhook:sendDiscordMessage("O Organizador: "..nomeConta.."["..ID.."] entrou em modo atendimento. Horario: "..hours..":"..minutes.."") outputChatBox("#1e90ff[Servidor] #ffffffVocê entrou em modo atendimento.", thePlayer, 255, 255, 255,true ) triggerClientEvent(thePlayer, "FM_SkinAdmin", thePlayer) end end addCommandHandler ("atender", SkinAdmin) -- Tirar permissoões -- function TirarP (thePlayer) -- local nomeConta = getPlayerName (thePlayer) local ID = getElementData ( thePlayer, "ID" ) or "N/C" local time = getRealTime() local hours = time.hour local minutes = time.minute local acc = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..acc, aclGetGroup("FundadorP")) then aclGroupRemoveObject (aclGetGroup("FundadorP"), "user."..acc) setElementModel (thePlayer, 230) exports.webhook:sendDiscordMessage("O Fundador: "..nomeConta.."["..ID.."] Saiu do modo atendimento. Horario: "..hours..":"..minutes.."") triggerClientEvent(thePlayer, "TirarAdmin", thePlayer) -- if hasObjectPermissionTo(thePlayer,"general.adminpanel",false) then -- if getElementData(thePlayer,"onProt") then setElementData(thePlayer,"onProt",false) outputChatBox("#1e90ff[Servidor] #ffffffVocê saiu do modo atendimento.", thePlayer, 255, 255, 255,true ) -- end -- end ------------------------------------------------- elseif isObjectInACLGroup ("user."..acc, aclGetGroup("OrganizadorP")) then aclGroupRemoveObject (aclGetGroup("OrganizadorP"), "user."..acc) setElementModel (thePlayer, 230) exports.webhook:sendDiscordMessage("O Organizador: "..nomeConta.."["..ID.."] Saiu do modo atendimento. Horario: "..hours..":"..minutes.."") triggerClientEvent(thePlayer, "TirarAdmin", thePlayer) -- if hasObjectPermissionTo(thePlayer,"general.adminpanel",false) then -- if getElementData(thePlayer,"onProt") then setElementData(thePlayer,"onProt",false) outputChatBox("#1e90ff[Servidor] #ffffffVocê saiu do modo atendimento.", thePlayer, 255, 255, 255,true ) end end addCommandHandler ("sair", TirarP) ---- Quando sair do servidor function JogadorQuit (quitType) local time = getRealTime() local hours = time.hour local minutes = time.minute ---------- local acc = getPlayerAccount ( thePlayer ) local conta = getAccountName ( getPlayerAccount ( source ) ) -------------------------------------------------------------------------------------------- if isObjectInACLGroup ("user."..tostring(conta), aclGetGroup("FundadorP")) then aclGroupRemoveObject (aclGetGroup("FundadorP"), "user."..tostring(conta)) exports.webhook:sendDiscordMessage("O Fundador portador o Login '"..tostring(conta).."' desconectou-se as "..hours..":"..minutes.."") setElementData(thePlayer,"onProt",false) -- elseif isObjectInACLGroup ("user."..tostring(conta), aclGetGroup("OrganizadorP")) then aclGroupRemoveObject (aclGetGroup("OrganizadorP"), "user."..tostring(conta)) exports.webhook:sendDiscordMessage("O Organizador portador o Login '"..tostring(conta).."' desconectou-se as "..hours..":"..minutes.."") setElementData(thePlayer,"onProt",false) end end addEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit ) O Código está funcionando como esperado pela logica, mais talvez um setElementData seria mais leve para dar as permissoes ? Eu tentei usar o setElementModel pra retirar a skin no onPlayerQuit mas não funcionou, talvez porque seja porque o Player desconecta primeiro do que o evento é acionado, isso não é importante, se eu estiver errado me corrige por favor. São 8 cargos na staff, deixei apenas dois pra não ficar muito longo, tem 16 Grupos reservados para Staff, sendo que 8 deles vai ficar entrando e saindo player toda hora, isso que me preocupa.
  8. Eu queria saber se tem como eu verificar se um membro é de um Grupo no lado cliente, tenho a seguinte função do lado server function removeTag (player) local conta = getAccountName ( getPlayerAccount ( source ) ) if isGuestAccount(getPlayerAccount(source)) then return outputChatBox("#ACD773✘ #ffffffINFO #ACD773✘➺ #ffffffVocê não está logado, então não pode entrar em patrulha !" , source , 255, 255, 255, true) end if isObjectInACLGroup ("user."..tostring(conta), aclGetGroup ( Grupo ) ) then aclGroupRemoveObject (aclGetGroup(Grupo), "user."..tostring(conta)) outputChatBox("#ACD773✘ #ffffffINFO #ACD773✘➺ #ffffffVocê está Apaisana agora, bom descanso #ACD773 "..getPlayerName(source).." #ffffff!" , source , 255, 255, 255, true) else aclGroupAddObject (aclGetGroup(Grupo), "user."..(conta)) outputChatBox("#ACD773✘ #ffffffINFO #ACD773✘➺ #ffffffVocê entrou em Patrulha, Bom serviço !" , source , 255, 255, 255, true) end end Gostaria agora de poder verificar no lado Cliente se o source está na Acl que defini na variável Grupo, para poder executar um Dx para o cliente. perdão se ficou um pouco confuso, sou novo na programação.
×
×
  • Create New...