Gw8

Members
  • Content Count

    42
  • Joined

  • Last visited

Community Reputation

13 Decent

3 Followers

About Gw8

  • Rank
    Rat

Recent Profile Visitors

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

  1. mano tudo depende do quando voce usa por exemplo, se voce usa element data pra fazer um sistema no serverside tente emplementar ele usando tabelas, é uma alternativa, agora se voce usa elementdata que intergram client-server nao tem outra opção. por exemplo uma data com nome 'cash' onde voce atualiza ela no serverside e mostra ela com um dx no client, é muito melhor usar o element mesmo do que uma função que fica atualizando.
  2. Gw8

    MessageDx

    Cara a solução para o seu problema é simples, você deve criar um setElementData no player salvando o nome do seu trabalho, como a função de verificação é feita atraves da acl isso so funciona no serverside e nao clientside como estava ali. No client voce so verifica se ele existe, se sim mostra o nome. local myJob = localPlayer:getData("myJob") or false if myJob then dxDrawText(myJob) end
  3. Gw8

    Me ajudem

    local inRender = false function render() dxDrawRectangle(0,0,300,200,tocolor(0,220,0,150)) end function setRender(cmd) removeEventHandler("onClientRender",root,render) inRender = not inRender if inRender then addEventHandler("onClientRender",root,render) end end addCommandHandler("show",setRender)
  4. não faz sentido isso que voce escreveu, ninguem usa exports em um resource aleatorio, voce precisa do nome dele previamente. call ( getResourceFromName ( "resource" ), "exportedFunction", 1, "2", "three" ) exports.resource:exportedFunction ( 1, "2", "three" ) exports["resource"]:exportedFunction ( 1, "2", "three" ) e tambem voce consegue utilizar o getResourceFromName e getResourceState para uma pre checagem antes de executar o exports via client.
  5. eu colocaria exports só porque o sistema ficaria melhor encapsulado, e também eliminaria o serverside.
  6. impossivel, quando foi criada a função da senha por exemplo function acesso(player,cmd,pass) end addCommandHandler("senha",acesso) foi atribuido o cmd "senha" a função acesso, se voce tentar remover ele, as senhas reais vao virar comandos primarios, por exemplo /1, ele vai procurar uma função que foi atribuido o cmd "1".
  7. button = {} button.__index = button function button.create(x,y,w,h,string,font,cr,cg,cb,exeCode) local self = setmetatable({},button) self.x = x self.y = y self.w = w self.h = h self.text = string or "" self.font = font self.cr = cr or 255 self.cg = cg or 255 self.cb = cb or 255 self.state = true self.exeCode = loadstring(exeCode) self.funcClick = function(but,state) self:clickHere(but,state) end addEventHandler("onClientClick",root,self.funcClick) return self end function button:setState(bool) self.state = bool end function button:render() local posX,posY,alpha = self.x,self.y,1 dxDrawRectangle(posX,posY,self.w,self.h,tocolor(0,0,0,35*alpha)) if isMousePosition(posX,posY,self.w,self.h) then dxDrawRectangle(posX,posY,self.w,self.h,tocolor(self.cr,self.cg,self.cb,220*alpha)) dxDrawText(self.text,posX+1,posY+1,posX+self.w+1,posY+self.h+1,tocolor(0,0,0,240*alpha),1,self.font,"center","center",true) dxDrawText(self.text,posX,posY,posX+self.w,posY+self.h,tocolor(255,255,255,240*alpha),1,self.font,"center","center",true) else dxDrawRectangle(posX,posY,self.w,self.h,tocolor(self.cr,self.cg,self.cb,190*alpha)) dxDrawText(self.text,posX+1,posY+1,posX+self.w+1,posY+self.h+1,tocolor(0,0,0,210*alpha),1,self.font,"center","center",true) dxDrawText(self.text,posX,posY,posX+self.w,posY+self.h,tocolor(255,255,255,210*alpha),1,self.font,"center","center",true) end end function button:clickHere(but,_state) local posX,posY = self.x,self.y if isMousePosition(posX,posY,self.w,self.h) and self.state then if but == "left" and _state == "down" then return end self.exeCode() end end function button:destroy() removeEventHandler("onClientClick",root,self.funcClick) if self.parent then self.parent:rem(self) end setmetatable(self,nil) end function isMousePosition(x,y,w,h) if (not isCursorShowing()) then return false end local cX,cY = getCursorPosition() local cX,cY = sX*cX,sY*cY if ( cX >= x and cX <= x+w and cY >= y and cY <= y+h ) then return true else return false end end novoBut = button.create(0,100,100,30,"click aqui","default",0,255,0,[[triggerServerEvent("Farda1PM",localPlayer)]]) novoBut2 = button.create(0,100,140,30,"click aqui2","default",0,255,0,[[triggerServerEvent("Farda2PM",localPlayer)]]) -- para mostrar o botao no dx, exemplo function show() novoBut:render() novoBut2:render() end addEventHandler("onClientRender",root,show) -- para habilitar e desabilitar a função de click. novoBut:setState(false) novoBut:setState(true) um exemplo de codigo que eu fiz um botao em dx um pouco mais avançado, mas voce ja entende eu creio. continue fazendo o painel em gui é um bom começo para aprender, apesar de nunca ter usado.
  8. tMensagems = 1 -- TEMPO cont = 1 MensagensInfo = { "Falta 10 Minutos para acabar o Roud.", "Falta 9 Minutos para acabar o Roud.", "Falta 8 Minutos para acabar o Roud.", "Falta 7 Minutos para acabar o Roud.", "Falta 6 Minutos para acabar o Roud.", "Falta 5 Minutos para acabar o Roud.", "Falta 4 Minutos para acabar o Roud.", "Falta 3 Minutos para acabar o Roud.", "Falta 2 Minutos para acabar o Roud.", "Falta 1 Minutos para acabar o Roud.", "Roud Finalizado. X1 de Costas Será iniciado!", } setTimer(function ( ) cont = cont +1 outputChatBox ('#FF0000[INFO]: #FFFFFF'..MensagensInfo[cont] ,getRootElement(),255,255,255,true) end, tMensagems * 60000 , 0)
  9. function checkVehicle(vehicleEntered) local isForcedFalse = forcedEvents[eventName] ~= true if localPlayer.inVehicle == inVehicle and isForcedFalse then return end local tempVehicle = vehicleEntered or getPedOccupiedVehicle(localPlayer) local seat = getPedOccupiedVehicleSeat(localPlayer) inVehicle = ((seat == 0 and allowedType[tempVehicle.vehicleType]) and (isForcedFalse and localPlayer.inVehicle or false) or false) if inVehicle and seat==0 then vehicle = tempVehicle removeEventHandler("onClientPlayerWasted",localPlayer,checkVehicle) removeEventHandler("onClientRender",root,drawMeter) removeEventHandler("onClientPreRender", root, updateFPS) addEventHandler("onClientVehicleDamage",vehicle,onCollide) addEventHandler("onClientElementDestroy",vehicle,checkVehicle) addEventHandler("onClientPlayerWasted",localPlayer,checkVehicle) addEventHandler("onClientRender",root,drawMeter) addEventHandler("onClientPreRender", root, updateFPS) elseif not inVehicle and vehicle then removeEventHandler("onClientVehicleDamage",vehicle,onCollide) removeEventHandler("onClientElementDestroy",vehicle,checkVehicle) removeEventHandler("onClientPlayerWasted",localPlayer,checkVehicle) removeEventHandler("onClientRender",root,drawMeter) removeEventHandler("onClientPreRender", root, updateFPS) vehicle=nil end end
  10. https://wiki.multitheftauto.com/wiki/GetTimestamp
  11. local vis_sound_stream = nil
  12. mesma coisa de uma nametag, porém você vai usar o marker invez do player.
  13. function revistar_jogador(player,cmd,nick) local accName = getAccountName(getPlayerAccount(player)) if not isObjectInACLGroup ("user."..accName,aclGetGroup("ComandosPolicia")) then return outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!",player,255,255,255,true) end local toPlayer = getPlayerFromPartialName(nick) if not toPlayer then return outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1nick invalido!",player,255,255,255,true) end local toPlayerName = getPlayerName(toPlayer) local playerName = getPlayerName(player) local toPlayerWantedLv = getPlayerWantedLevel(toPlayer) local px,py,pz = getElementPosition(player) local tpx,tpy,tpz = getElementPosition(toPlayer) local dist = getDistanceBetweenPoints3D(px,py,pz,tpx,tpy,tpz) if dist >= 5 then outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Chegue Mais Perto Do Jogador Pra Executar Este Comando!",player,255,255,255,true) else setPedAnimation(player,"POLICE","plc_drgbst_01",3100,true,false,false,false) checar_armas(player,toPlayer) outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ff0000Policial #ffffff"..playerName.." #c1c1c1esta #ff0000Revistando #c1c1c1o #ff0000Suspeito "..toPlayerName,root,255,255,255,true) setTimer(outputChatBox,3390,1,"#000000[#ff0000POLICIA#000000] #c1c1c1Nivel de #ff0000Procurado #c1c1c1do #ff0000Suspeito#c1c1c1:"..toPlayerWantedLv,player,255,255,255,true) triggerClientEvent(player,"doShowDXProgressBar",root) end end addCommandHandler("revistar",revistar_jogador) function checar_armas(player,toPlayer) for i=1,12 do local weaponID = getPedWeapon(toPlayer,i) if weaponID~=0 then outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Arma encontrada:"..getWeaponNameFromID(weaponID),player,255,255,255,true) end end end function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end é tipo isso?
  14. Boa noite galera estou a procura de uma solução no uso de memoria de alguns algoritmos feitos por mim vou tentar explicar como o sistema funciona, ele é uma framework que tem como base um onClientPreRender e onClientRender, tem varios sistemas nele, por exemplo de prioridades de janelas, arraste, entre outros. Tudo é comandado por 4 funções principais (updatePositions,render,click e doubleClick) . a hierarquia do sistema é assim: onde você partindo de um render consegue criar uma dessas coisas o maior problema que esta havendo, é quando iniciamos o resource ele simplesmente da network no server, se o player tiver pouca memoria entao ... mais facil ele reconectar. Todos os elementos foram criados em oop e programados para serem compatíveis agora um exemplo para voces entenderem melhor.. aqui temos o mapShop onde seu codigo fonte é este callServerFunction("getServerMaps",localPlayer) mapshop = window.create("MAP SHOP",sX/2-resX(350),sY/2-resY(250),700,500,255,0,0,1,"apps/mapshop/icon/mapshop.png",12,"default",false,true) mapshop_grid = gridlist.create({},1,1,698,400,16,12,"default","Search Map Name..",mapshop) function updateMaplist(newlist) mapshop_grid:updateData(newlist) end button.create(195,433,150,30,"Buy Map $"..config.priceMap,12,"default",0,220,0,[[callServerFunction("buyMap",localPlayer,mapshop_grid:getSelect())]],mapshop) button.create(355,433,150,30,"Buy Redo $"..config.priceRedo,12,"default",0,220,0,[[callServerFunction("buyRedo",localPlayer)]],mapshop) o sistema foi muito otimizado, porem agora preciso fazer ele ser econômico '-' Conto com a ajuda de todos, todas as ideias serão bem vindas, não fique com vergonha, fique a vontade para comentar.
  15. Agora que eu cai na real, é mais fácil ensinar o cara dar playVideo em um link do que ensinar ele usar setCameraMatrix Object Ped ... porque playVideo já resolve o problema dele, ai ele não precisa quebrar cabeça pra tentar aprender programar.. é mais fácil deixa ele vim aqui pedir ajuda pra comunidade porque sempre vai ter uma pessoa que vai passar o código que resolve todo o problema dele não é? O meu código não resolve nem 10% do problema, mas mostra o caminho por onde ele deve começar e outra 90% das pessoas que eu conheço e programam a nível TOP no mta não aprendeu nada lendo aquela introdução da wiki, aprenderam interpretando códigos e refazendo scripts, obviamente com uma pequena ajuda de quem já programa, e só acho que você deveria rever os seu conceitos pois quando a pessoa perde a vontade de aprender algo é culpa de quem tentou ensinar, e você está ensinando errado.