Gw8

Members
  • Content Count

    34
  • Joined

  • Last visited

Community Reputation

12 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. Gw8

    Problema no addEventHandler

    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
  2. Gw8

    [Ajuda]Verificação de Table

    https://wiki.multitheftauto.com/wiki/GetTimestamp
  3. Gw8

    Ajuda por favor.

    local vis_sound_stream = nil
  4. Gw8

    Me ajuda aqui por gentileza.

    mesma coisa de uma nametag, porém você vai usar o marker invez do player.
  5. Gw8

    Me ajuda aqui

    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?
  6. 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.
  7. Gw8

    [MTA] ->> Cutscene

    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.
  8. Gw8

    [MTA] ->> Cutscene

    local camera = { [1] = {1785.5252685547,-1670.3322753906,197.42810058594,1824.4713134766,-1419.6008300781,206.25146484375,1709.2348632813,-1475.1075439453,199.77049255371}, -- los santos [2] = {-1877.8803710938,448.31448364258,66.276161193848,-1545.9180908203,500.68551635742,61.879508972168,-1579.8115234375,606.18676757813,61.850708007813}, -- ponte san fierro [3] = {-2408.4401855469,1735.3631591797,38.366367340088,-2302.2407226563,1558.1441650391,37.568012237549,-2433.8842773438,1561.0505371094,37.802646636963}, -- navio [4] = {1281.0335693359,-884.94543457031,86.771049499512,1415.4288330078,-907.2900390625,85.035575866699,1415.4951171875,-808.62286376953,87.2880859375} -- vinewood } local i = 1 local dx = 0.0 function Loading() if dx < 1 then dx = dx+0.001 local x,y,z = interpolateBetween(camera[i][1],camera[i][2],camera[i][3],camera[i][4],camera[i][5],camera[i][6],dx,"SineCurve") setCameraMatrix(x,y,z,camera[i][7],camera[i][8],camera[i][9]) elseif dx > 0 then dx = 0.0 i = i + 1 if ( i >= 5) then i = 1 end end end addEventHandler("onClientRender",root,Loading) isso?
  9. Gw8

    How to destroy marker with command??

    change marker to a global variable.
  10. isso é meio obvio, voce só consegue escalonar um texto se a fonte for custumizada. tipo https://wiki.multitheftauto.com/wiki/GuiCreateFont myFont = guiCreateFont( "segoeui.ttf", 20*(sy/1080) ) -- Create GUI custom font guiSetFont( myLabel, myFont )
  11. fiz esse codigo como exemplo de base, nao quer dizer que ele deve ser seguido: local sX,sY = guiGetScreenSize() local min_Y = math.floor(sY/480) local min_X = math.floor(sX/640) if min_Y <= min_X then g_Scale = min_Y else g_Scale = min_X end local g_Scale = 1 + 0.2*g_Scale function resX(value) return (value*g_Scale) end function resY(value) return (value*g_Scale) end local _dxDrawRectangle = dxDrawRectangle function dxDrawRectangle(x,y,w,h,tocolor,postGui) return _dxDrawRectangle(x,y,resX(w),resY(h),tocolor,postGui) end addEventHandler("onClientRender",root, function() dxDrawRectangle(sX/2-resX(350),sY/2-resY(250),700,500,tocolor(255,255,255,200),false) end ) pense o seguinte o normal do mta é manter a os tamanho para todos os monitores exemplo : dxDrawRectangle(100,100,200,200,tocolor(255,255,255,255),false) sempre manter tudo a x=100,y=100 e assim vai sempre ter os mesmos valores de pixels, mas chegamos ao ponto que agora no inicio voce esta usando uma resolução de 640 px no eixo X, usar 200 px é um bom tamanho, mas se voce usar 200px em um monitor de 1080 px é um retangulo minusculo, e assim chegamos onde eu quero chegar que é a ideia da ESCALA. onde eu PARTICULARMENTE só vejo duas maneira de se fazer com eficacia, um metodo que é por porcentagem exemplo:( que eu nao gosto muito, porque tira a proporção entre as coisas, vc tambem perde qualidade em imagens, etc..) local sX,sY = guiGetScreenSize() dxDrawRectangle(sX*0.2,sY*0.2,sX*0.4,sY*0.6,tocolor(255,255,255,255)) e outro eo primeiro exemplo, que voce trava como resolução minima 640x480 e faz tudo crescer a partir desta resolução. voce tambem consegue usar essa escala para GUI(para escala de textos tenha como referencia apenas o g_Scale). Vlw ai espero ter ajudado.
  12. Gw8

    Problema com script

    Da pra fazer tudo isso que você fez usando menos de 180 linhas, muito menos. Tente.
  13. Gw8

    PLAYER PAIS AJUDA

    Adicionar resource na ACL - SERVERSIDE: function onCountryStart() for i,thePlayer in pairs(getElementsByType("player")) do getPlayerCountry(thePlayer) end end addEventHandler("onResourceStart",resourceRoot,onCountryStart) function getPlayerCountry(thePlayer) if thePlayer then local playerIP = getPlayerIP(thePlayer) if playerIP then fetchRemote("http://www.geoplugin.net/json.gp?ip="..playerIP, setPlayerCountry, "", false, thePlayer ) end end end function setPlayerCountry(countryTable,errorCode,thePlayer) if thePlayer and countryTable and errorCode == 0 then local countryTable = fromJSON("["..countryTable.."]") if countryTable then setElementData(thePlayer,"country",countryTable.geoplugin_countryCode) setElementData(thePlayer,"countryName",countryTable.geoplugin_countryName) end end end function listarJogadores(thePlayer,cmd) local br = 0 local players = getElementsByType("player") for _,p in ipairs(players) do if getElementData(p,"country") == "br" then br = br + 1 end end outputChatBox("Jogadores Brasileiros: #889123"..br,thePlayer,255,255,255,true) outputChatBox("Jogadores Gringos: #889123"..(#players-br),thePlayer,255,255,255,true) outputChatBox("Total: #889123"..#players,thePlayer,255,255,255,true) end addCommandHandler("players",listarJogadores)
  14. Gw8

    DÚVIDA TABLES

    A pergunta que voce tem que se fazer é .. eu preciso disso em mais algum lugar? se sim : não se usa local se não : usa local exemplo : voce tem um arquivo chamado "config.lua" e tem nele este codigo: config = { priceweapons = 5000, priceColete = 2000 } como voce vai usar isso em outros arquivos, entao esta tabela nao pode ser local, quando voce torna uma variavel local ela só é acessivel dentro daquele arquivo. cuidado tambem ao usar local dentro de funçoes exemplo: local info = {50,200,10} function execute() local info = {} end neste caso a funcao execute esta criando uma nova tabela dentro de seu escopo. local info = {50,200,10} function execute() info = {} end neste caso a funcao execute esta resetando a tabela info. Espero ter ajudado vlw '-'
  15. Gw8

    VERIFICAÇÃO

    function skinv1 () if getElementModel(source)==73 then return outputChatBox( "voce já esta com essa skin", source, 243, 219, 4, true ) end setPedSkin ( source, 73 ) outputChatBox( "Teste skin1", source, 243, 219, 4, true ) end addEvent("Skin1",true) addEventHandler ( "Skin1", getRootElement(), skinv1 )