Jump to content

MRXBBC

Members
  • Posts

    80
  • Joined

  • Last visited

Everything posted by MRXBBC

  1. Tem algum meio pra que o shader seja visivel pra o outro player, por exemplo eu fiz um script de modificação de arma, mas só que a customização só aparece para o proprio player, teria como deixar visivel para os dois? function ReplaceWeapon() txd = engineLoadTXD('m4.txd', 356) engineImportTXD(txd, 356) dff = engineLoadDFF('m4.dff', 356) engineReplaceModel(dff, 356) end addEventHandler( 'onClientResourceStart', getResourceRootElement(getThisResource()), ReplaceWeapon) local tTextures = {} local pShaders = {} addEventHandler( "onClientResourceStart", resourceRoot, function() tTextures["M4A1[057]"] = dxCreateTexture("image1.png") end ) addCommandHandler( "t", function() applyShader( tTextures, localPlayer ) end ) addCommandHandler( "v", function() for _, t in pairs(pShaders) do engineRemoveShaderFromWorldTexture( t[1], t[2], localPlayer ) end end ) function applyShader( t, player ) if type(t) == "table" and isElement(player) then for tex_name, tex_element in pairs(t) do local s = dxCreateShader('tex_replace.fx', 0, 0, true, 'ped') table.insert( pShaders, {s, tex_name} ) dxSetShaderValue(s, 'gTexture', tex_element) engineApplyShaderToWorldTexture(s, tex_name, player) end -- end end
  2. Isso é normal quando você coloca muitos objetos próximos (sobrecarrega o client) e também quando você remove muitos objetos originais do mapa próximos (objetos removidos também sobrecarregam), e as arvores você pode tirar no editor de mapas, mas eu acho muito dificil isso acontecer
  3. To fazendo um sistema que pra quando o player clica no botão o dxDrawRectangle cresce e se ele clicar de novo o Retângulo diminui até sumir, como posso fazer o mesmo? meu codigo: local screenW, screenH = guiGetScreenSize() local x, y = (screenW/1366), (screenH/768) local estado = false cor = {} scale = {} tick = getTickCount() function draw_Login() local between = interpolateBetween(0, 0, 0, x*600, 0, 0, ((getTickCount() - tick) / 2000), "SineCurve") scale[1] = 75 scale[2] = 55 dxDrawRectangle(x*815, y*45, between/5, y*30, tocolor(100, 0, 0, 200), false) end addEventHandler("onClientRender", root, draw_Login) function Click( button, state ) end addEventHandler("onClientClick", getRootElement(),click)
  4. Será que teria como colocar um sistema para o player importar uma imagem para o servidor? por exemplo uma hud com a foto dele edit1: Pesquisei aqui, pode ser utilizado o fetchRemote, irei utilizar um editbox pro player colocar o link da imagem e salvar como uma variável
  5. Mano tem um codigo assim, n sei se já conseguiu resolver o problema function sendHeadshot ( attacker, weapon, bodypart, loss ) if attacker == getLocalPlayer() then if bodypart == 9 then triggerServerEvent( "onServerHeadshot", getRootElement(), source, attacker, weapon, loss ) setElementHealth ( source, 0 ) setPedHeadless( source, true ) end end end addEventHandler ( "onClientPedDamage", getRootElement(), sendHeadshot ) addEventHandler ( "onClientPlayerDamage", getRootElement(), sendHeadshot )
  6. Rapaziada eu to com um erro que ta atrapalhando no meu projeto, na parte do cursor, então o problema é que quando eu clico pra ir pra outra aba ele buga completamente function Clicando( button, state ) if Parte == "Comida" then if cursorPosition (x*569, y*355, x*40, y*20) then Parte = "Arma" end if cursorPosition (x*366, y*355, x*40, y*20) then Parte = "Droga" end end if Parte == "Arma" then if cursorPosition (x*569, y*355, x*40, y*20) then Parte = "Droga" end if cursorPosition (x*366, y*355, x*40, y*20) then Parte = "Comida" end end if Parte == "Droga" then if cursorPosition (x*569, y*355, x*40, y*20) then Parte = "Comida" end if cursorPosition (x*366, y*355, x*40, y*20) then Parte = "Arma" end end end addEventHandler("onClientClick", getRootElement(),Clicando)
  7. Só tava testando algumas condições, vc sabe me dizer se tem algum meio de chamar essa função quando o player trocar de skin?
  8. Dei uma melhorada e vi no que eu tava errando function addAcl (jogador) local id = getElementModel(jogador) if id == 280 then aclGroupAddObject (aclGetGroup("Policial"), "user."..getAccountName(getPlayerAccount(jogador))) exports.Mrx_info:addNotification(source, "Você está em Serviço" "!", "info") aclSave() else aclGroupRemoveObject (aclGetGroup("Policial"), "user."..getAccountName(getPlayerAccount(jogador))) exports.Mrx_info:addNotification(source, "Você está à paisana" "!", "info") aclSave() end if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(jogador)), aclGetGroup ( "Admin" ) ) and id ~= 280 then aclGroupRemoveObject (aclGetGroup("Policial"), "user."..getAccountName(getPlayerAccount(jogador))) else aclGroupAddObject (aclGetGroup("Policial"), "user."..getAccountName(getPlayerAccount(jogador))) aclSave() end addCommandHandler ( "skin", addAcl )
  9. como eu declararia como jogador? Iria atribuir o source como um localplayer() ?
  10. faz uma função que é acionada apartir de um CreateMarker (local onde o portão tá) chama um addCommandHandler você coloca a senha da base nele e dentro da função faz um aclGroupAddObject, você vai precisar checar se o player ta ou não na ACL, se tiver o portão abre automaticamente, se não ele vai precisar por a senha. Espero ter ajudado Se tiver deixa o Thanks pra mim ai :3
  11. Estou fazendo esse sistema pra quando o player estiver com uma skin ele será setado para uma acl especifica e quando não estiver ele remove Mas não esta setando, alguém pode me ajudar? function addAcl (source) local id = getElementModel(source) if id == 280 then aclGroupAddObject (aclGetGroup("Policial"), "user."..source) exports.Mrx_info:addNotification(source, "Você está em Serviço" "!", "info") aclSave() else aclGroupRemoveObject (aclGetGroup("Policial"), "user."..source) exports.Mrx_info:addNotification(source, "Você está à paisana" "!", "info") aclSave() end end addEventHandler ( "onResourceStart", getRootElement(), addAcl )
  12. da o Thanks no meu comentário mano, se não for pedir de mais
  13. Tenho um codigo que eu fiz olhe como foi feito e tente entender a logica se n conseguir eu posso explicar addEventHandler("onClientKey", root, function(key, pressed) if key == "x" and pressed and getPedOccupiedVehicle(localPlayer) and beltVehicles[getVehicleType(getPedOccupiedVehicle(localPlayer))] then if not getElementData(localPlayer, "veh:ov") then setElementData(localPlayer, "veh:ov", true) stopSound(beltSound) playSound("files/ovbe.mp3", false) exports.san_chat:sendLocalMeMessage(localPlayer, "Colocou o cinto de segurança.") else setElementData(localPlayer, "veh:ov", false) playSound("files/ovki.mp3", false) playSounds("ov", true) exports.san_chat:sendLocalMeMessage(localPlayer, "tirou o cinto de segurança.") end end end)
  14. usa a função code aqui do fórum, só colando codigo fica muito ruim a visualização
  15. O painel dx deve ser feito no client, a parte dos botões você usa essa função function buttons(_,state) if isEventHandlerAdded("onClientRender", root, dxPainel) then --configurando os botões com essas funcões end end addEventHandler("onClientClick", root, buttons) você seta os elementos e dentro do server usa o get pra configurar as funções tem mais explicado na wiki https://wiki.multitheftauto.com/wiki/Main_Page
  16. Sim, irei já fazer isso, só estava querendo ver se está certo, muito obrigado
  17. function comandohacker (source) if isElementWithinMarker (source, hackear ) then setElementPosition ( lojasair1, 834.66760, 7.45359, 1010) setElementPosition ( hackear, 822.74316, -0.47490, 1010) outputChatBox("#000000[#00FF00 Prisao System #000000] -#00FF7F Atenção todas as Unidades !!",root,255,255,255,true) outputChatBox("#000000[#00FF00 Prisao System #000000] -#00FF7F O Hacker [#FF0000 " .. getPlayerName(source) .. " #00FF7F]#00FF7F está Invadindo o Prisao System de #00FF00Los Santos #00FF7F!!",root,255,255,255,true) outputChatBox ('#FF0000- Fazendo upload do virus... Aguarde 30seg...',source,255,255,255,true) setPedAnimation(source, "CASINO", "Slot_bet_01", 30000, true, false, false, false) setPedRotation(source,270 ) setPedAnimation( ped, "SHOP", "SHP_Rob_HandsUp") triggerClientEvent ( root, "roubar", root) setElementVisibleTo ( blipalarme, root, true ) setTimer ( function() outputChatBox ('#FF0000- Upload do Virus Finalizado com Sucesso... Portao Sera aberto!',source,255,255,255,true) moveObject(portaointer, 4000, -487.599609375,-514, 19.89999961853) moveObject(portaoexter, 4000, -487.60000610352,-524.29998779297,19.89999961853) setElementPosition(dinheiro1,2192.26684, 1625.1552, 1000.8) setElementPosition ( lojasair1, 2163.7546, 1618.1488, 1000.9724) setElementInterior ( hackear, 1) setPedAnimation(ped,false) setElementPosition ( ped, 2186.8, 1619.1047, 999.97656) setTimer ( function() outputChatBox ('#FF0000- Portao Fechado!',source,255,255,255,true) moveObject(portaointer, 4000, -487.599609375,-514, 27.89999961853) moveObject(portaoexter, 4000, -487.599609375,-524.2998046875,27.89999961853) end, 30000, 1 ) end, 30000, 1 ) desta forma?
  18. armas = { [31] = true, [36] = true, [38] = true, } addEventHandler ( 'onPlayerWeaponSwitch', getRootElement ( ), function ( previousWeaponID, currentWeaponID ) if ( armas[currentWeaponID] ) then toggleControl ( source, 'fire', false ) else toggleControl ( source, 'fire', true ) end end ) espero que tenha ajudado
  19. galera tem algum limite para usar o set timer ? pq eu n to conseguindo colocar tres vezes eu quero fazer que depois que faça o primeiro settimer ele demore mais 30 segundos pra fechar o portão function comandohacker (source) if isElementWithinMarker (source, hackear ) then setElementPosition ( lojasair1, 834.66760, 7.45359, 1010) setElementPosition ( hackear, 822.74316, -0.47490, 1010) outputChatBox("#000000[#00FF00 Prisao System #000000] -#00FF7F Atenção todas as Unidades !!",root,255,255,255,true) outputChatBox("#000000[#00FF00 Prisao System #000000] -#00FF7F O Hacker [#FF0000 " .. getPlayerName(source) .. " #00FF7F]#00FF7F está Invadindo o Prisao System de #00FF00Los Santos #00FF7F!!",root,255,255,255,true) outputChatBox ('#FF0000- Fazendo upload do virus... Aguarde 30seg...',source,255,255,255,true) setPedAnimation(source, "CASINO", "Slot_bet_01", 30000, true, false, false, false) setPedRotation(source,270 ) setPedAnimation( ped, "SHOP", "SHP_Rob_HandsUp") triggerClientEvent ( root, "roubar", root) setElementVisibleTo ( blipalarme, root, true ) setTimer ( function() outputChatBox ('#FF0000- Upload do Virus Finalizado com Sucesso... Portao Sera aberto!',source,255,255,255,true) moveObject(portaointer, 4000, -487.599609375,-514, 19.89999961853) moveObject(portaoexter, 4000, -487.60000610352,-524.29998779297,19.89999961853) setElementPosition(dinheiro1,2192.26684, 1625.1552, 1000.8) setElementPosition ( lojasair1, 2163.7546, 1618.1488, 1000.9724) setElementInterior ( hackear, 1) setPedAnimation(ped,false) setElementPosition ( ped, 2186.8, 1619.1047, 999.97656) pos = 0 end, 30000, 1 ) setTimer ( function() outputChatBox ('#FF0000- Portao Fechado!',source,255,255,255,true) moveObject(portaointer, 4000, -487.599609375,-514, 27.89999961853) moveObject(portaoexter, 4000, -487.599609375,-524.2998046875,27.89999961853) end, 30000, 1 ) setTimer ( function() setElementVisibleTo ( blipalarme, root, false ) setElementPosition( hackear, 2194.3000488281, 1623.1999511719, 999.1) outputChatBox("#000000[#00FF00 Prisao System #000000] -#00FF7F O Prisao System se recuperou do ultimo ataque Hacker",root,255,255,255,true) end, 1000000, 1 ) end end addCommandHandler ( "hackear", comandohacker )
  20. Estou fazendo um sistema para quando o policial bater no player que ele segue ou mesmo quando o policial entra na viatura que ele pro porta, então aquele jogador que está girando de acordo com o movimento do vtr, alguém sabe como deixar ele congelado lá dentro ? function Teleport_Cap_Vei ( state, player , vehicle , seat ) if state == true then if seat and isElement ( vehicle ) then vrx, vry, vrz = getElementRotation(vehicle) setElementRotation(player, vrx, vry, vrz+83) attachElements (player, vehicle, 0.2, -1.5, 0, 0,0,90) setPedAnimation (player, 'ped','CAR_dead_LHS') setElementData ( player, "Policia:Captura", false ) setElementData(player, "Mrx_Preso", true)
  21. Estou fazendo um sistema pra quando o policial bater no player ele segue o mesmo e quando o policial entrar na viatura ele ir pro porta mala, só que o player ta girando de acordo com o movimento da vtr, alguem sabe como deixar ele freezado lá dentro? function Teleport_Cap_Vei ( state, player , vehicle , seat ) if state == true then if seat and isElement ( vehicle ) then vrx, vry, vrz = getElementRotation(vehicle) setElementRotation(player, vrx, vry, vrz+83) attachElements (player, vehicle, 0.2, -1.5, 0, 0,0,90) setPedAnimation (player, 'ped','CAR_dead_LHS') setElementData ( player, "Policia:Captura", false ) setElementData(player, "Mrx_Preso", true)
  22. erro é esse local sql = dbConnect( 'sqlite', 'MrxSQL.db' ) addEventHandler("onResourceStart", resourceRoot, function() dbExec(sql, "CREATE TABLE IF NOT EXISTS dinheiroatm ( conta TEXT, quantidade INT )") for k, v in ipairs(getElementsByType("player")) do local accounts = getPlayerAccount ( v ) if not isGuestAccount(accounts) then local conta = getAccountName(accounts) local target = getPlayerFromAccountName(conta) local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", conta) local result = dbPoll(qh, -1) if #result ~= 0 then setElementData(target,"Mrx:moneyatm",result[1]["quantidade"]) else dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )")) setElementData(target,"Mrx:moneyatm",0) end end end end ) addEventHandler("onPlayerLogin", root, function(_, theCurrentAccount) local conta = getAccountName(theCurrentAccount) local target = getPlayerFromAccountName(conta) if isElement(target) then local qh = dbQuery(sql, "SELECT * FROM dinheiroatm WHERE conta=?", conta) local result = dbPoll(qh, -1) if #result ~= 0 then setElementData(target,"Mrx:moneyatm",result[1]["quantidade"]) else dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )")) setElementData(target,"Mrx:moneyatm",0) end end end ) addEventHandler("onPlayerQuit", root, function() local conta = getPlayerAccount(source) if not isGuestAccount(conta) then local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", getAccountName(conta)) local result = dbPoll(qh, -1) if #result ~= 0 then local money = getElementData(source,"Mrx:moneyatm") dbExec(sql, "UPDATE dinheiroatm SET quantidade=? WHERE conta=?", money, getAccountName(conta)) else dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..getAccountName(conta).."', 0 )")) end end end ) addEvent("Mrx:depositoatm", true) addEventHandler("Mrx:depositoatm", root, function (valor) local valor = tonumber(valor) if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end if not isGuestAccount(getPlayerAccount(source)) then if tonumber(getPlayerMoney(source)) >= valor then local money = getElementData(source,"Mrx:moneyatm") or 0 setElementData(source, "Mrx:moneyatm", money + valor) takePlayerMoney ( source, valor ) else outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para depositar.", source, 255, 0, 0,true) end end end ) addEvent("Mrx:saqueoatm", true) addEventHandler("Mrx:saqueoatm", root, function (valor) local valor = tonumber(valor) if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end if not isGuestAccount(getPlayerAccount(source)) then if tonumber(getElementData(source,"Mrx:moneyatm")) >= tonumber(valor) then local money = getElementData(source,"Mrx:moneyatm") or 0 setElementData(source, "Mrx:moneyatm", money - valor) givePlayerMoney(source, valor) else outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para sacar.", source, 255, 0, 0,true) end end end ) addEvent("Mrx:transfere", true) addEventHandler("Mrx:transfere", root, function (valor, name) local valor = tonumber(valor) if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end if name then target = getPlayerFromPartialName(name) if target == false or target == nil then outputChatBox("#7cc576[BANCO]#FFFFFF Jogador não localizado.", source, 255, 255, 255, true) return end if not isGuestAccount(getPlayerAccount(source)) then if (source) ~= (target) then if tonumber(getElementData(source,"Mrx:moneyatm")) >= (valor) then local money = getElementData(source,"Mrx:moneyatm") or 0 local quant = getElementData(target,"Mrx:moneyatm") or 0 setElementData(source, "Mrx:moneyatm", money - valor) setElementData(target, "Mrx:moneyatm", quant + valor) outputChatBox("#7cc576[BANCO]#FFFFFF O jogador "..getPlayerName(source).."#FFFFFF transferiu para sua conta $"..convertNumber(valor)..".", target, 255, 255, 255, true) outputChatBox("#7cc576[BANCO]#FFFFFF Você transferiu $"..convertNumber(valor).."#FFFFFF para a conta do jogador "..getPlayerName(target).."#FFFFFF.", source, 255, 255, 255, true) else outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para transferir.", source, 255, 0, 0,true) end end end end end ) function convertNumber ( number ) local formatted = number while true do formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2') if ( k==0 ) then break end end return formatted end addEventHandler("onPlayerLogout", root, function() setElementData(source,"Mrx:moneyatm",0) 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 function getPlayerFromAccountName(name) local acc = getAccount (name) if name and acc and not isGuestAccount (acc) then return getAccountPlayer (acc) else return false end end
×
×
  • Create New...