Search the Community

Showing results for tags 'scripters'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Multi Theft Auto: San Andreas 1.x
    • Support for MTA:SA 1.x
    • Open Source Contributors
    • Suggestions
  • General MTA
    • News
    • Media
    • Site/Forum/IRC/Mantis/Wiki related
    • MTA Chat
    • Other languages
  • community.mtasa.com
    • Scripting
    • Maps
    • Resources
    • Other Creations & GTA modding
    • Competitive gameplay
    • Servers
  • Other
    • General
    • Multi Theft Auto 0.5r2
    • Third party GTA mods
  • Archive
    • Archived Items
    • Trash
  • Private Bugtracker

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Gang


Location


Occupation


Interests

Found 16 results

  1. Quando o player chegar no marker, ao invez de pegar o trabalho de uma vez, ele ter q digitar o comando do addCommandHandler Obs: A Mensagem de quando ele passa em cima do marker mandando o player digitar o tal comando eu ja sei fazer.. mas tentei de varias formas adicionar o addCommandHandler e fracassei! Eu tambem queria saber, como faço pro marker do "Mfim4" sumir após o player completar o trabalho! O Marker do Mfim4 fica no lugar, mesmo sem a pessoa estar no trabalho e ele nao sai server.lua local Minicio4 = createMarker (1038.02332, -1337.93970, 12.8, "cylinder", 1, 16, 102, 231, 100) local Mfim4 = createMarker ( 2801.29663, -1088.36243, 30.72142 -1, "cylinder", 2, 0 ,255 ,0, 255 ) local Bfim4 = createBlipAttachedTo ( Mfim4, 19 ) setElementVisibleTo ( Bfim4, root, false ) veh = {} function incio4 (source) if isElementWithinMarker(source, Minicio4) then if veh[source] and isElement( veh[source] ) then destroyElement ( veh[source] ) veh[source] = nil end x,y,z = getElementPosition(source) Trabalho = true veh[source] = createVehicle(498,1009.50598, -1355.16431, 13.34428) setElementVisibleTo ( Bfim4, source, true ) warpPedIntoVehicle ( source, veh[source] ) dxMsg(source, "Leve as rosquinhas ate a bandeira no radar!", "info") end end addEventHandler( "onMarkerHit", Minicio4, incio4 ) function fim4 (source) if veh[source] and isElement(veh[source]) then destroyElement (veh[source]) givePlayerMoney(source,2500) -------------- Caso queira mudar o dinheiro que o player vai ganhar ao finalizar o trabalho setElementVisibleTo ( Bfim4, source, false ) setElementVisibleTo ( entregafinalizar, source, false ) dxMsg(source, "Você entregou as rosquinhas a fabrica e ganhou R$2500!", "sucess") else end end addEventHandler("onMarkerHit",Mfim4 ,fim4) function sair4 (source) if (veh[source]) and isElement(veh[source]) then setElementVisibleTo ( Bfim4, source, false ) destroyElement (veh[source]) dxMsg(source, "Você saiu do veiculo e perdeu o trabalho!", "error") else end end addEventHandler ( "onVehicleExit", getRootElement(), sair4 ) function dxMsg(source, text, type) exports.dxmessages:outputDx(source, text, type) end O Client eu fiz um script text que fica esrito em cima do marker o nome do trabalho mas isso nao tem nada haver ent n colocarei!
  2. #Horus

    Ajuda?

    local Minicio4 = createMarker (1038.02332, -1337.93970, 13.72656 -1, "cylinder", 1, 16 ,102 ,231, 100) Quando coloco -1 após as coordenadas, junto com o marker de tamanho 1 após o "cylinder" o script nao funciona!!! Todos os markers de trab do meu servidor são do tamanho "1" queria deixar esse tmb oque é glr ? Obs: eu sublinei e grifei o -1 e o tamanho do marker q é "1" após o "cylinder" para facilitar
  3. Eu novamente aqui skkssk, Então meus irmãos, é um script que baixei do site original do mta, muitos devem conhece-l, é o script de danças do fortnite! Mais assim, parece que ele nao esta configurado e eu meio que nao entendo sobre arquivos ifp de dança, o author desse script, colocou um exemplo nele, que quando troca de nick exibe a animação e realmente apaguei os -- e funcionou, eu ate entendi, o script vem com 13 danças, porem nao estou conseguindo configurar! server.lua function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do triggerClientEvent ( root, "setPedFortniteAnimation", root, ped,animation,tiempo,repetir,mover,interrumpible ) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end --[[ EJEMPLO/EXAMPLE CUANDO CAMBIA EL NICK WHEN NICK IS CHANGED function wasNickChangedByUser(oldNick, newNick, changedByUser) setPedFortniteAnimation(source,"baile 8",7000,true,false,false,false) end addEventHandler("onPlayerChangeNick", getRootElement(), wasNickChangedByUser) -- add an event handler --]] function howtouse ( player, command, dance ) if isElement(player) then exports.fortnitedances:setPedFortniteAnimation(player,"baile "..dance.."",-1,true,false,false,false) end end addCommandHandler ( "dance", howtouse ) client.lua local customIfp = nil function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do setPedAnimation(ped, "Fortnite_"..i.."", animation, tiempo, true, false, false) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end addEvent("setPedFortniteAnimation",true) addEventHandler("setPedFortniteAnimation",getRootElement(),setPedFortniteAnimation) addEventHandler("onClientResourceStart", resourceRoot, function ( startedRes ) customIfp = engineLoadIFP ("Fortnite pt1.ifp", "Fortnite_1") customIfp2 = engineLoadIFP ("Fortnite pt2.ifp", "Fortnite_2") customIfp3 = engineLoadIFP ("Fortnite pt3.ifp", "Fortnite_3") if customIfp and customIfp2 and customIfp3 then outputDebugString ("Animaciones de Fortnite cargadas") else outputDebugString ("Las animaciones de Fortnite no fueron cargadas") end end ) Vou colocar o meta.xml tambem pra voces verem o export caso possa ser isso tambem meta.xml <meta> <info author="Drex" version="1.1" name="Bailes de Fortnite" type="script" /> <export function="setPedFortniteAnimation" type="shared" /> <file src="Fortnite pt1.ifp" /> <file src="Fortnite pt2.ifp" /> <file src="Fortnite pt3.ifp" /> <script src="client.lua" type="client" cache="false" /> <script src="server.lua" type="sever" cache="false" /> </meta>
  4. Eu novamente aqui skkssk, Então meus irmãos, é um script que baixei do site original do mta, muitos devem conhece-l, é o script de danças do fortnite! Mais assim, parece que ele nao esta configurado e eu meio que nao entendo sobre arquivos ifp de dança, o author desse script, colocou um exemplo nele, que quando troca de nick exibe a animação e realmente apaguei os -- e funcionou, eu ate entendi, o script vem com 13 danças, porem nao estou conseguindo configurar! server.lua function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do triggerClientEvent ( root, "setPedFortniteAnimation", root, ped,animation,tiempo,repetir,mover,interrumpible ) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end --[[ EJEMPLO/EXAMPLE CUANDO CAMBIA EL NICK WHEN NICK IS CHANGED function wasNickChangedByUser(oldNick, newNick, changedByUser) setPedFortniteAnimation(source,"baile 8",7000,true,false,false,false) end addEventHandler("onPlayerChangeNick", getRootElement(), wasNickChangedByUser) -- add an event handler --]] function howtouse ( player, command, dance ) if isElement(player) then exports.fortnitedances:setPedFortniteAnimation(player,"baile "..dance.."",-1,true,false,false,false) end end addCommandHandler ( "dance", howtouse ) client.lua local customIfp = nil function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do setPedAnimation(ped, "Fortnite_"..i.."", animation, tiempo, true, false, false) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end addEvent("setPedFortniteAnimation",true) addEventHandler("setPedFortniteAnimation",getRootElement(),setPedFortniteAnimation) addEventHandler("onClientResourceStart", resourceRoot, function ( startedRes ) customIfp = engineLoadIFP ("Fortnite pt1.ifp", "Fortnite_1") customIfp2 = engineLoadIFP ("Fortnite pt2.ifp", "Fortnite_2") customIfp3 = engineLoadIFP ("Fortnite pt3.ifp", "Fortnite_3") if customIfp and customIfp2 and customIfp3 then outputDebugString ("Animaciones de Fortnite cargadas") else outputDebugString ("Las animaciones de Fortnite no fueron cargadas") end end ) Vou colocar o meta.xml tambem pra voces verem o export caso possa ser isso tambem meta.xml <meta> <info author="Drex" version="1.1" name="Bailes de Fortnite" type="script" /> <export function="setPedFortniteAnimation" type="shared" /> <file src="Fortnite pt1.ifp" /> <file src="Fortnite pt2.ifp" /> <file src="Fortnite pt3.ifp" /> <script src="client.lua" type="client" cache="false" /> <script src="server.lua" type="sever" cache="false" /> </meta>
  5. Queria a ajuda de voces, é um script muito simples! Acho que não é nem 10 linhas para faze-lo, se puderem me ajudar... Script que quando o player digita /punheta, apareça uma imagem no meio da tela dele, se possivel aplicar um setTimer de mais ou menos uns 15 segundos!!! Assim, eu queria que voces fizessem e me esclarecessem cada funçao sabem ? para que eu possa me conscientizar e ja ficar ciente! ( Script meio tosco ksksksk )
  6. #Horus

    Alguem sabe disso ?

    Como faço pra quando alguem manda mensagem pro player, ele digita /r ( nome do player ) ( mensagem ) para responder automaticamente e ai por diante function privateMessage(thePlayer,commandName,sendToName,...) local pvWords = { ... } local pvMessage = table.concat( pvWords, " " ) if sendToName then if (getPlayerFromParticalName (sendToName)) then toPlayer = (getPlayerFromParticalName (sendToName)) if not (toPlayer == thePlayer) then if not (pvMessage == "") then outputChatBox("#00ff00[PV]#FFFFFF Enviada para #FFFFFF" .. getPlayerName(toPlayer) .. "#FFFFFF: " .. pvMessage, thePlayer, 255, 255, 255, true) outputChatBox("#00ff00[PV]#FFFFFF Recebida de #FFFFFF" .. getPlayerName(thePlayer) .. "#FFFFFF: " .. pvMessage, toPlayer, 255, 255, 255, true) else outputChatBox("#00ff00[PV]#FFFFFF Sintaxe inválida! Use:#FFFFFF /pv [Nome do Jogador] [Mansagem]", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#00ff00[PV]#FFFFFF Você não pode mandar pv para si mesmo#FFFFFF!", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#00ff00[PV]#FFFFFF Jogador não encontrado! #FFFF00(#FFFFFF"..sendToName.."#FFFF00)", thePlayer, 255, 255, 255, true) return false end else outputChatBox("#00ff00[PV]#FFFFFF Sintaxe inválida! Use:#FFFFFF /pv [Nome do Jogador] [Mensagem]", thePlayer, 255, 255, 255, true) return false end end addCommandHandler("pv", privateMessage) function infopv() outputChatBox ('',getRootElement(),255,255,255,true) end setTimer(infopv, 350000, 350) function getPlayerFromParticalName(thePlayerName) local thePlayer = getPlayerFromName(thePlayerName) if thePlayer then return thePlayer end for _,thePlayer in ipairs(getElementsByType("player")) do if string.find(string.gsub(getPlayerName(thePlayer):lower(),"#%x%x%x%x%x%x", ""), thePlayerName:lower(), 1, true) then return thePlayer end end return false end
  7. #Horus

    Alguem me ajuda ??

    Tenho um sistema de concessionária porém, qualquer player não logado (guest) consegue comprar carros, e isso ta bugando, como faço pra apenas jogadores logados terem acesso a concessionária ? Client: function centerWindow ( center_window ) local sx, sy = guiGetScreenSize ( ) local windowW, windowH = guiGetSize ( center_window, false ) local x, y = ( sx - windowW ) / 2, ( sy - windowH ) / 2 guiSetPosition ( center_window, x, y, false ) end local customCarNames = -- Ids dos veiculos pra add mais copie e cole um abaixo do outro e mude o nome { [541] = 'Bugatti Veyron'; [494] = 'Jaguar F-Type'; [506] = 'Pagani Zonda F'; [550] = 'Porsche Panamera'; } setTimer ( function () local theCol = getElementData(root, "BlockExportCol") function isInColExport () if isElement(theCol) and isElementWithinColShape(localPlayer,theCol) then return true else return false end end function ClientExplosionCFunction() if isInColExport () then cancelEvent () end end addEventHandler("onClientExplosion", root, ClientExplosionCFunction) end , 1000, 1 ) local screX, screY = guiGetScreenSize() Window_VS = guiCreateWindow(373, 219, 557, 303,"Painel de Veiculos Comprados",false) guiSetAlpha(Window_VS, 0.88) guiWindowSetSizable(Window_VS, false) guiSetVisible(Window_VS, false) centerWindow(Window_VS) Grid_VS = guiCreateGridList(10, 28, 361, 235, false, Window_VS) guiGridListSetSelectionMode(Grid_VS, 1) guiGridListAddColumn(Grid_VS, "Nome", 0.4) guiGridListAddColumn(Grid_VS, "Preço", 0.3) guiGridListAddColumn(Grid_VS, "HP Auto", 0.2) Button_VS_sn_s = guiCreateStaticImage(381, 28, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_sn_o = guiCreateStaticImage(381, 28, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_sn = guiCreateLabel(381, 28, 166, 25, "Spawnar", false, Window_VS) guiSetFont(Button_VS_sn, "default-bold-small") guiLabelSetColor(Button_VS_sn, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_sn, "center") guiLabelSetHorizontalAlign(Button_VS_sn, "center") Button_VS_dy_s = guiCreateStaticImage(381, 63, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_dy_o = guiCreateStaticImage(381, 63, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_dy = guiCreateLabel(381, 63, 166, 25, "Remover", false, Window_VS) guiSetFont(Button_VS_dy, "default-bold-small") guiLabelSetColor(Button_VS_dy, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_dy, "center") guiLabelSetHorizontalAlign(Button_VS_dy, "center") Button_VS_Warp_s = guiCreateStaticImage(381, 98, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_Warp_o = guiCreateStaticImage(381, 98, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_Warp = guiCreateLabel(381, 98, 166, 25, "Teleport", false, Window_VS) guiSetFont(Button_VS_Warp, "default-bold-small") guiLabelSetColor(Button_VS_Warp, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_Warp, "center") guiLabelSetHorizontalAlign(Button_VS_Warp, "center") Button_VS_Warp_info = guiCreateLabel(428, 500, 103, 26, "Teleport: 500$", false) guiSetFont(Button_VS_Warp_info, "default-bold-small") guiLabelSetColor(Button_VS_Warp_info, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_Warp_info, "center") guiLabelSetHorizontalAlign(Button_VS_Warp_info, "center") --Button_VS_Warp_info Button_VS_Fix_s = guiCreateStaticImage(381, 133, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_Fix_o = guiCreateStaticImage(381, 133, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_Fix = guiCreateLabel(381, 133, 166, 25, "Fixar", false, Window_VS) guiSetFont(Button_VS_Fix, "default-bold-small") guiLabelSetColor(Button_VS_Fix, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_Fix, "center") guiLabelSetHorizontalAlign(Button_VS_Fix, "center") Button_VS_Fix_info = guiCreateLabel(428, 500, 103, 26, "Conserto: 500$", false) guiSetFont(Button_VS_Fix_info, "default-bold-small") guiLabelSetColor(Button_VS_Fix_info, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_Fix_info, "center") guiLabelSetHorizontalAlign(Button_VS_Fix_info, "center") Button_VS_lk_s = guiCreateStaticImage(381, 168, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_lk_o = guiCreateStaticImage(381, 168, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_lk = guiCreateLabel(381, 168, 166, 25, "Aberto - Fechado", false, Window_VS) guiSetFont(Button_VS_lk, "default-bold-small") guiLabelSetColor(Button_VS_lk, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_lk, "center") guiLabelSetHorizontalAlign(Button_VS_lk, "center") Button_VS_sl_s = guiCreateStaticImage(381, 203, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_sl_o = guiCreateStaticImage(381, 203, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_sl = guiCreateLabel(381, 203, 166, 25, "Vender Veiculo", false, Window_VS) guiSetFont(Button_VS_sl, "default-bold-small") guiLabelSetColor(Button_VS_sl, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_sl, "center") guiLabelSetHorizontalAlign(Button_VS_sl, "center") Button_VS_give_s = guiCreateStaticImage(381, 238, 166, 25, "images/button_standard.png", false, Window_VS) Button_VS_give_o = guiCreateStaticImage(381, 238, 166, 25, "images/button_mouse.png", false, Window_VS) Button_VS_give = guiCreateLabel(381, 238, 166, 25, "Vender Para o Jogador", false, Window_VS) guiSetFont(Button_VS_give, "default-bold-small") guiLabelSetColor(Button_VS_give, 255, 255, 255) guiLabelSetVerticalAlign(Button_VS_give, "center") guiLabelSetHorizontalAlign(Button_VS_give, "center") adLabel = guiCreateLabel(130, 269, 296, 24, "Loja De carros", false, Window_VS) -------------- Nome do seu servidor guiSetFont(adLabel, "default-bold-small") guiLabelSetHorizontalAlign(adLabel, "center", false) guiLabelSetVerticalAlign(adLabel, "center") guiSetVisible(Button_VS_sn_o,false)-- guiSetVisible(Button_VS_dy_o,false)-- guiSetVisible(Button_VS_Warp_o,false) guiSetVisible(Button_VS_Warp_info,false) guiSetVisible(Button_VS_Fix_o,false) guiSetVisible(Button_VS_Fix_info,false) guiSetVisible(Button_VS_lk_o,false) guiSetVisible(Button_VS_sl_o,false) guiSetVisible(Button_VS_give_o,false) --Button_VS_Warp_info --Button_VS_Fix_info Window_CHK = guiCreateWindow(screX/2-155,screY/2-60,310,120,"Vender Veiculo!",false) guiSetVisible(Window_CHK, false) guiSetProperty(Window_CHK, "AlwaysOnTop", "true") guiWindowSetSizable(Window_CHK, false) Label_CHK = guiCreateLabel(21,28,266,36,"",false,Window_CHK) guiLabelSetColor(Label_CHK, 38, 122, 216) guiLabelSetHorizontalAlign(Label_CHK,"center",true) Button_CHK_Y = guiCreateButton(17,73,129,36,"Deseja Vender?",false,Window_CHK) Button_CHK_N = guiCreateButton(161,73,129,36,"Cancelar",false,Window_CHK) function updateGridList() local data = getElementData(localPlayer, "VehicleInfo") if data then local rw, cl = guiGridListGetSelectedItem(Grid_VS) guiGridListClear(Grid_VS) for i, data in ipairs (data) do local carName = customCarNames[ data['Model'] ] or getVehicleNameFromModel(data["Model"]) local ID = data["ID"] local Cost = data["Cost"] local HP = math.floor(data["HP"]) local PreCost = math.ceil(Cost*.9*HP/100/10) local row = guiGridListAddRow(Grid_VS) guiGridListSetItemText(Grid_VS, row, 1, carName, false, true) guiGridListSetItemData(Grid_VS, row, 1, ID) guiGridListSetItemText(Grid_VS, row, 2, PreCost, false, true) guiGridListSetItemText(Grid_VS, row, 3, HP.." HP", false, true) end guiGridListSetSelectedItem(Grid_VS, rw, cl) end end bindKey("F7", "down", function() if getElementInterior(localPlayer) == 0 and getElementDimension(localPlayer) == 0 then if getElementData(localPlayer, "MissionWarProtection") and getElementData(localPlayer, "MissionProtection")then return end guiSetVisible(Window_VS, not guiGetVisible(Window_VS)) guiSetVisible (Window_CHK, false) showCursor(guiGetVisible(Window_VS)) end end) triggerServerEvent("onOpenGui", localPlayer) addEventHandler("onClientElementDataChange", root, function(dd) if getElementType(source) == "player" and source == localPlayer and dd == "VehicleInfo" then local data = getElementData(source, dd) if data then updateGridList() end end end) function WINDOW_CLICK_VEHICLE (button, state, absoluteX, absoluteY) local id = guiGridListGetSelectedItem(Grid_VS) local ID = guiGridListGetItemData(Grid_VS, id, 1) if source == Button_VS_close then guiSetVisible(Window_VS, false) showCursor(false) end if (source == Grid_VS) then if id == -1 and idd then guiGridListSetSelectedItem(Grid_VS, idd, 1) return false else idd = guiGridListGetSelectedItem(Grid_VS) end elseif id == -1 then elseif (source == Button_VS_sn) then if not isInColExport () then triggerServerEvent("SpawnMyVehicle", localPlayer, ID) end elseif (source == Button_VS_dy) then triggerServerEvent("DestroyMyVehicle", localPlayer, ID) elseif (source == Button_VS_lt) then triggerServerEvent("LightsMyVehicle", localPlayer, ID) elseif (source == Button_VS_bp) then triggerServerEvent("BlipMyVehicle", localPlayer, ID) elseif (source == Button_VS_lk) then triggerServerEvent("LockMyVehicle", localPlayer, ID) elseif (source == Button_VS_sl) then guiSetVisible(Window_CHK, true) local carName = guiGridListGetItemText(Grid_VS, guiGridListGetSelectedItem(Grid_VS), 1) local carprice = guiGridListGetItemText(Grid_VS, guiGridListGetSelectedItem(Grid_VS), 2) guiSetText(Label_CHK, 'Você deseja realmente vender seu "'..carName..'" por $'..carprice) elseif source == Button_VS_give then createPlayersList(id) elseif source == Button_CHK_Y then triggerServerEvent("SellMyVehicle", localPlayer, ID) guiSetVisible(Window_VS, false) guiSetVisible(Window_CHK, false) showCursor(false) elseif source == Button_CHK_N then guiSetVisible (Window_CHK, false) elseif source == Button_VS_Spc then if getElementInterior(localPlayer) == 0 then if getElementData(localPlayer,"Stats") < 2 then SpecVehicle(ID) end end elseif source == Button_VS_Fix then triggerServerEvent("FixMyVehicle", localPlayer, ID) elseif source == Button_VS_Warp then if not isInColExport () then triggerServerEvent("WarpMyVehicle", localPlayer, ID) end elseif source == Button_PLS_Y then local row = guiGridListGetSelectedItem ( playerList_PLS ) if row and row ~= -1 then -- if guiGridListGetItemText ( playerList_PLS, row, 1 ) == getPlayerName ( localPlayer ) then -- return true -- end if (tonumber(guiGetText (edit_PLS_price)) or 0) >= 0 then outputMessage ( "#c1c1c1Esperar uma resposta do jogador.", 10, 250, 10,true ) invitations_send = true triggerServerEvent ( 'inviteToBuyCarSended', localPlayer, guiGridListGetItemText ( playerList_PLS, row, 1 ), guiGetText (edit_PLS_price) or 0, guiGridListGetItemText(Grid_VS, id, 1), guiGridListGetItemData(Grid_VS, id, 1) ) destroyElement ( Window_PLS ) end end elseif source == Button_PLS_N then destroyElement ( Window_PLS) end end addEventHandler("onClientGUIClick", resourceRoot, WINDOW_CLICK_VEHICLE) function invitationsClickVehicle () if source == Button_ABC_Y then showCursor ( false ) destroyElement ( Window_ABC ) if getPlayerMoney () >= ( tonumber(inv_price) or 0 ) then triggerServerEvent ("invitationBuyCarAccepted",localPlayer, inv_player, inv_acc, inv_price, inv_veh_name, inv_veh_id) else triggerServerEvent ("invitationBuyCarNotAccepted",localPlayer, inv_player ) end if #listOfInvitations > 0 then createAcceptBuyCarWindow (listOfInvitations[1][1],listOfInvitations[1][2],listOfInvitations[1][3],listOfInvitations[1][4] ) table.remove (listOfInvitations,1) end elseif source == Button_ABC_N then showCursor ( false ) triggerServerEvent ("invitationBuyCarNotAccepted",localPlayer, inv_player ) destroyElement ( Window_ABC ) if #listOfInvitations > 0 then createAcceptBuyCarWindow (listOfInvitations[1][1],listOfInvitations[1][2],listOfInvitations[1][3],listOfInvitations[1][4] ) table.remove (listOfInvitations,1) end end end addEventHandler("onClientGUIClick", resourceRoot, invitationsClickVehicle) function createPlayersList (row_id) showCursor ( true ) Window_PLS = guiCreateWindow(screX/2-155,screY/2-220,310,420,"Venda de carros!",false) guiSetVisible(Window_PLS, true) guiSetProperty(Window_PLS, "AlwaysOnTop", "true") guiWindowSetSizable(Window_PLS, false) Label_PLS_info = guiCreateLabel(21,28,266,36,"Digite o preço dos carros:",false,Window_PLS) edit_PLS_price = guiCreateEdit ( 110,58,90,36, guiGridListGetItemText(Grid_VS, row_id, 2) or 0, false, Window_PLS ) guiLabelSetColor(Label_PLS_info, 38, 122, 216) guiLabelSetHorizontalAlign(Label_PLS_info,"center",true) Button_PLS_Y = guiCreateButton(17,379,129,36,"Vender",false,Window_PLS) Button_PLS_N = guiCreateButton(161,379,129,36,"Fechar",false,Window_PLS) addEventHandler("onClientGUIChanged", edit_PLS_price, function(element) guiSetText ( edit_PLS_price, string.gsub (guiGetText( edit_PLS_price ), "%a", "") ) end) playerList_PLS = guiCreateGridList ( 21, 100, 268, 265, false, Window_PLS ) local column = guiGridListAddColumn( playerList_PLS, "Jogadores", 0.85 ) if ( column ) then for id, player in ipairs(getElementsByType("player")) do local row = guiGridListAddRow ( playerList_PLS ) guiGridListSetItemText ( playerList_PLS, row, column, getPlayerName ( player ), false, false ) end end end --createPlayersList () listOfInvitations = {} inv_player, inv_acc, inv_price, inv_veh_name, inv_veh_id = nil, nil, nil, nil, nil addEvent("recieveInviteToBuyCar", true) addEventHandler("recieveInviteToBuyCar", root, function(player, acc, price, veh_name, veh_id) if player and price and acc and veh_name and veh_id then if getPlayerFromName ( player ) then if not isElement ( Window_ABC ) then createAcceptBuyCarWindow (player,acc,price, veh_name, veh_id) else table.insert ( listOfInvitations, {player,acc,price, veh_name, veh_id}) end else outputMessage ( "#c1c1c1Jogador não pode ser encontrado", source, 250, 10, 10,true) end end end) addEvent("cleanCarInvitations", true) addEventHandler("cleanCarInvitations", root, function() invitations_send = false end) function createAcceptBuyCarWindow(player,acc,price, veh_name, veh_id) showCursor ( true ) inv_player, inv_acc, inv_price, inv_veh_name, inv_veh_id = player,acc,price, veh_name, veh_id Window_ABC = guiCreateWindow(screX/2-155,screY/2-220,410,100,"Venda de carros",false) guiSetVisible(Window_ABC, true) guiSetProperty(Window_ABC, "AlwaysOnTop", "true") guiWindowSetSizable(Window_ABC, false) Label_ABC_info = guiCreateLabel(10,28,390,36,player.." Te ofereceu o "..veh_name.." por "..price.."$ (o seu dinheiro: "..getPlayerMoney() .."$)",false,Window_ABC) guiLabelSetColor(Label_ABC_info, 38, 216, 38) guiLabelSetHorizontalAlign(Label_ABC_info,"center",true) Button_ABC_Y = guiCreateButton(17,70,129,36,"Comprar",false,Window_ABC) Button_ABC_N = guiCreateButton(264,70,129,36,"Cancelar",false,Window_ABC) end function SpecVehicle(id) if spc then removeEventHandler("onClientPreRender", root, Sp) setCameraTarget(localPlayer) if isTimer(freezTimer) then killTimer(freezTimer) end freezTimer = setTimer(function() setElementFrozen(localPlayer, false) end, 2500, 1) spc = false return end for i, vehicle in ipairs(getElementsByType("vehicle")) do if getElementData(vehicle, "Owner") == localPlayer and getElementData(vehicle, "ID") == id then cVeh = vehicle spc = true addEventHandler("onClientPreRender", root, Sp) guiSetVisible(Window_VS, false) showCursor(false) break end end end function Sp() if isElement(cVeh) then local x, y, z = getElementPosition(cVeh) setElementFrozen(localPlayer, true) setCameraMatrix(x, y-1, z+15, x, y, z) else removeEventHandler("onClientPreRender", root, Sp) setCameraTarget(localPlayer) if isTimer(freezTimer) then killTimer(freezTimer) end freezTimer = setTimer(function() setElementFrozen(localPlayer, false) end, 2500, 1) spc = false end end ShopMarkersTable = {} local ShopTable = { --------- Ids de cada um na sua loja do mesmo jeito que adicionou la encima bote aqui e mude os preços tambem [1] = {ID = {{541, 700000} ,{494, 500000} ,{506, 900000} ,{550, 450000} }, vPosX = 2134, vPosY = -1170, vPosZ = 28.15, PosX = 2133, PosY = -1149, PosZ = 23.4, CamX = 2134.1, CamY = -1160, CamZ = 35, lookAtX = 2133.3, lookAtY = -1168, lookAtZ = 28}, [2] = {ID = {{541, 700000} ,{494, 500000} ,{506, 900000} ,{550, 450000} }, vPosX = 552, vPosY = -1288, vPosZ = 18, PosX = 562, PosY = -1270, PosZ = 16, CamX = 552, CamY = -1275.82, CamZ = 21.61, lookAtX = 552, lookAtY = -1276.77, lookAtZ = 21.29}, [3] = {ID = {{541, 700000} ,{494, 500000} ,{506, 900000} ,{550, 450000} }, vPosX = 1942.5, vPosY = 2052, vPosZ = 11, PosX = 1946, PosY = 2068, PosZ = 10, CamX = 1930.36, CamY = 2052.78, CamZ = 14.71, lookAtX = 1931.36, lookAtY = 2052.78, lookAtZ = 14.43}, [4] = {ID = {{541, 700000} ,{494, 500000} ,{506, 900000} ,{550, 450000} }, vPosX = -1950, vPosY = 266, vPosZ = 36.2, PosX = -1954, PosY = 299, PosZ = 34, CamX = -1960.18, CamY = 266.06, CamZ = 37.94, lookAtX = -1959.2, lookAtY = 266.06, lookAtZ = 37.73}, [5] = {ID = {{541, 700000} ,{494, 500000} ,{506, 900000} ,{550, 450000} }, vPosX = -1660, vPosY = 1213, vPosZ = 7, PosX = -1634, PosY = 1199, PosZ = 6, CamX = -1648.9, CamY = 1212.27, CamZ = 10.16, lookAtX = -1649.88, lookAtY = 1212.27, lookAtZ = 9.94} } VehicleShop_Window = guiCreateWindow(screX-350,screY-450, 343, 436, "Shop de Veiculos", false) guiSetVisible(VehicleShop_Window, false) guiWindowSetSizable(VehicleShop_Window , false) guiSetAlpha(VehicleShop_Window, 0.8) carGrid = guiCreateGridList(9, 20, 324, 329, false, VehicleShop_Window) guiGridListSetSelectionMode(carGrid, 0) carColumn = guiGridListAddColumn(carGrid, "Nome", 0.5) costColumn = guiGridListAddColumn(carGrid, "Preço", 0.4) carButton_s = guiCreateStaticImage(14, 355, 86, 56, "images/button_standard.png", false, VehicleShop_Window) carButton_o = guiCreateStaticImage(14, 355, 86, 56, "images/button_mouse.png", false, VehicleShop_Window) carButton = guiCreateLabel(14, 355, 86, 56, "Comprar", false, VehicleShop_Window) guiSetFont(carButton, "default-bold-small") guiLabelSetColor(carButton, 255, 255, 255) guiLabelSetVerticalAlign(carButton, "center") guiLabelSetHorizontalAlign(carButton, "center") carColorButton_s = guiCreateStaticImage(128, 355, 86, 56, "images/button_standard.png", false, VehicleShop_Window) carColorButton_o = guiCreateStaticImage(128, 355, 86, 56, "images/button_mouse.png", false, VehicleShop_Window) carColorButton = guiCreateLabel(128, 355, 86, 56, "Pintar", false, VehicleShop_Window) guiSetFont(carColorButton, "default-bold-small") guiLabelSetColor(carColorButton, 255, 255, 255) guiLabelSetVerticalAlign(carColorButton, "center") guiLabelSetHorizontalAlign(carColorButton, "center") closeButton_s = guiCreateStaticImage(237, 355, 86, 56, "images/button_standard.png", false, VehicleShop_Window) closeButton_o = guiCreateStaticImage(237, 355, 86, 56, "images/button_mouse.png", false, VehicleShop_Window) closeButton = guiCreateLabel(237, 355, 86, 56, "Sair", false, VehicleShop_Window) guiSetFont(closeButton, "default-bold-small") guiLabelSetColor(closeButton, 255, 255, 255) guiLabelSetVerticalAlign(closeButton, "center") guiLabelSetHorizontalAlign(closeButton, "center") guiSetVisible(carButton_o,false) guiSetVisible(closeButton_o,false) guiSetVisible(carColorButton_o,false) addEventHandler( "onClientMouseLeave", root, function() if source == Button_VS_sn then guiSetVisible(Button_VS_sn_s,true) guiSetVisible(Button_VS_sn_o,false) elseif source == Button_VS_dy then guiSetVisible(Button_VS_dy_s,true) guiSetVisible(Button_VS_dy_o,false) elseif source == Button_VS_Warp then guiSetVisible(Button_VS_Warp_s,true) guiSetVisible(Button_VS_Warp_o,false) guiSetVisible(Button_VS_Warp_info,false) elseif source == Button_VS_Fix then guiSetVisible(Button_VS_Fix_s,true)--Button_VS_Fix_info guiSetVisible(Button_VS_Fix_o,false) guiSetVisible(Button_VS_Fix_info,false) elseif source == Button_VS_lk then guiSetVisible(Button_VS_lk_s,true) guiSetVisible(Button_VS_lk_o,false) elseif source == Button_VS_sl then guiSetVisible(Button_VS_sl_s,true) guiSetVisible(Button_VS_sl_o,false) elseif source == Button_VS_give then guiSetVisible(Button_VS_give_s,true) guiSetVisible(Button_VS_give_o,false) elseif source == carButton then guiSetVisible(carButton_s,true) guiSetVisible(carButton_o,false) elseif source == closeButton then guiSetVisible(closeButton_s,true) guiSetVisible(closeButton_o,false) elseif source == carColorButton then guiSetVisible(carColorButton_s,true) guiSetVisible(carColorButton_o,false) end end) addEventHandler( "onClientMouseEnter", root, function() if source == Button_VS_sn then guiSetVisible(Button_VS_sn_s,false) guiSetVisible(Button_VS_sn_o,true) elseif source == Button_VS_dy then guiSetVisible(Button_VS_dy_s,false) guiSetVisible(Button_VS_dy_o,true) elseif source == Button_VS_Warp then guiSetVisible(Button_VS_Warp_s,false) guiSetVisible(Button_VS_Warp_o,true) guiSetVisible(Button_VS_Warp_info,true) elseif source == Button_VS_Fix then guiSetVisible(Button_VS_Fix_s,false)--Button_VS_Fix_info guiSetVisible(Button_VS_Fix_o,true) guiSetVisible(Button_VS_Fix_info,true) elseif source == Button_VS_lk then guiSetVisible(Button_VS_lk_s,false) guiSetVisible(Button_VS_lk_o,true) elseif source == Button_VS_sl then guiSetVisible(Button_VS_sl_s,false) guiSetVisible(Button_VS_sl_o,true) elseif source == Button_VS_give then guiSetVisible(Button_VS_give_s,false) guiSetVisible(Button_VS_give_o,true) elseif source == Button_VS_give then guiSetVisible(Button_VS_give_s,false) guiSetVisible(Button_VS_give_o,true) elseif source == carButton then guiSetVisible(carButton_s,false) guiSetVisible(carButton_o,true) elseif source == closeButton then guiSetVisible(closeButton_s,false) guiSetVisible(closeButton_o,true) elseif source == carColorButton then guiSetVisible(carColorButton_s,false) guiSetVisible(carColorButton_o,true) end end) for i, M in ipairs(ShopTable) do ShopMarker = createMarker(M["PosX"], M["PosY"], M["PosZ"], "cylinder", 2, 38, 122, 216) ShopMarkerShader = createMarker(M["PosX"], M["PosY"], M["PosZ"], "cylinder", 2, 38, 122, 216) ShopMarkersTable[ShopMarker] = true setElementData ( ShopMarker, "shopID", i ) setElementID(ShopMarker, tostring(i)) createBlipAttachedTo(ShopMarker, 55, 2, 255, 255, 255, 255, 0, 400) end function getVehicleModelFromNewName (name) for i,v in pairs ( customCarNames ) do if v == name then return i end end return false end addEventHandler("onClientGUIClick", resourceRoot, function() if (source == carGrid) then local carName = guiGridListGetItemText(carGrid, guiGridListGetSelectedItem(carGrid), 1) local carprice = guiGridListGetItemText(carGrid, guiGridListGetSelectedItem(carGrid), 2) if guiGridListGetSelectedItem(carGrid) ~= -1 then guiSetText(CarName, carName) guiSetText(CarPrice, "$"..carprice) local carID = getVehicleModelFromNewName(carName) or getVehicleModelFromName(carName) if isElement(veh) then setElementModel(veh, carID) return end veh = createVehicle(carID, ShopTable[i]["vPosX"], ShopTable[i]["vPosY"], ShopTable[i]["vPosZ"]) setVehicleDamageProof(veh, true) setElementFrozen(veh, true) setVehicleColor(veh, r1, g1, b1, r2, g2, b2) timer = setTimer(function() local x, y, z = getElementRotation(veh) setElementRotation(veh, x, y, z+3) end, 50, 0) else guiSetText(CarName, "Noun") guiSetText(CarPrice, "Noun") r1, g1, b1, r2, g2, b2 = math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255) if isElement(veh) then destroyElement(veh) end if isTimer(timer) then killTimer(timer) end end elseif (source == carColorButton) then openColorPicker() elseif (source == carButton) then if guiGridListGetSelectedItem(carGrid) then local carName = guiGridListGetItemText(carGrid, guiGridListGetSelectedItem(carGrid), 1) local carID = getVehicleModelFromNewName(carName) or getVehicleModelFromName(carName) local carCost = guiGridListGetItemText (carGrid, guiGridListGetSelectedItem(carGrid), 2) local r1, g1, b1, r2, g2, b2 = getVehicleColor(veh, true) triggerServerEvent("onBuyNewVehicle", localPlayer, carID, carCost, r1, g1, b1, r2, g2, b2) outputMessage("#c1c1c1Você acabou de comprar um: #00FF66"..carName, 38, 122, 216, true) guiSetVisible(VehicleShop_Window, false) showCursor(false) setElementFrozen(localPlayer, false) fadeCamera(false, 1.0) setTimer(function() fadeCamera(true, 0.5) setCameraTarget(localPlayer) end, 1000, 1) if isElement(veh) then destroyElement(veh) end if isTimer(timer) then killTimer(timer) end end elseif (source == closeButton) then if guiGetVisible(VehicleShop_Window) then guiSetVisible(VehicleShop_Window, false) showCursor(false) setElementFrozen(localPlayer, false) fadeCamera(false, 1.0) setElementData ( localPlayer, "atVehShop", false) setTimer(function() fadeCamera(true, 0.5) setCameraTarget(localPlayer) end, 1000, 1) if isElement(veh) then destroyElement(veh) end if isTimer(timer) then killTimer(timer) end end end end) function openColorPicker() if (colorPicker.isSelectOpen) or not isElement(veh) then return end colorPicker.openSelect(colors) end function closedColorPicker() end function updateColor() if (not colorPicker.isSelectOpen) then return end local r, g, b = colorPicker.updateTempColors() if (veh and isElement(veh)) then r1, g1, b1, r2, g2, b2 = getVehicleColor(veh, true) if (guiCheckBoxGetSelected(checkColor1)) then r1, g1, b1 = r, g, b end if (guiCheckBoxGetSelected(checkColor2)) then r2, g2, b2 = r, g, b end setVehicleColor(veh, r1, g1, b1, r2, g2, b2) end end addEventHandler("onClientRender", root, updateColor) --[[addCommandHandler("xx", function() local x, y, z, lx, ly, lz = getCameraMatrix() setCameraMatrix(x, y, z, lx, ly, lz) outputChatBox(x..", "..y..", "..z..", "..lx..", "..ly..", "..z) end)]] addEventHandler("onClientMarkerHit", resourceRoot, function(player) if getElementType(player) ~= "player" or player ~= localPlayer or isPedInVehicle(player) then return end if ShopMarkersTable[source] then i = tonumber(getElementID(source)) guiGridListClear(carGrid) for i, v in ipairs(ShopTable[i]["ID"]) do local carName = customCarNames[ v[1] ] or getVehicleNameFromModel(v[1]) local row = guiGridListAddRow(carGrid) guiGridListSetItemText(carGrid, row, 1, carName, false, true) guiGridListSetItemText(carGrid, row, 2, tostring(v[2]), false, true) end setCameraMatrix(ShopTable[i]["CamX"], ShopTable[i]["CamY"], ShopTable[i]["CamZ"], ShopTable[i]["lookAtX"], ShopTable[i]["lookAtY"], ShopTable[i]["lookAtZ"]) guiSetVisible(VehicleShop_Window, true) showCursor(true) setElementData ( player, "atVehShop", getElementData ( source, "shopID")) guiGridListSetSelectedItem(carGrid, 0, 1) setTimer(function() setElementFrozen(localPlayer, true) local carName = guiGridListGetItemText(carGrid, 0, 1) local carID = getVehicleModelFromNewName(carName) or getVehicleModelFromName(carName) local x, y, z = ShopTable[i]["vPosX"], ShopTable[i]["vPosY"], ShopTable[i]["vPosZ"] if isElement(veh) then destroyElement(veh) end if isTimer(timer) then killTimer(timer) end r1, g1, b1, r2, g2, b2 = math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255), math.random(0, 255) veh = createVehicle(carID, x, y, z) setVehicleDamageProof(veh, true) setElementFrozen(veh, true) setVehicleColor(veh, r1, g1, b1, r2, g2, b2) timer = setTimer(function() local x, y, z = getElementRotation(veh) setElementRotation(veh, x, y, z+3) end, 50, 0) end, 100, 1) end end) addEventHandler("onClientRender", getRootElement(), function() local x2, y2, z2 = getElementPosition(localPlayer) for index, car in pairs(getElementsByType('vehicle')) do if(getElementData(car,'ownercar')) then local x, y, z = getElementPosition(car) z = z+1 local sx, sy = getScreenFromWorldPosition(x, y, z) if(sx) and (sy) then local distance = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) if(distance < 20) then local fontbig = 2-(distance/10) local owner = getElementData(car, "ownercar") if(owner) then dxDrawBorderedCarText("Proprietário: "..(owner), sx, sy, sx, sy, tocolor(255, 255, 255, 255), fontbig, "default-bold", "center") end end end end end for i, v in ipairs ( ShopTable ) do local sx, sy = getScreenFromWorldPosition(v.PosX, v.PosY, v.PosZ+1) if(sx) and (sy) then local distance = getDistanceBetweenPoints3D ( x2, y2, z2,v.PosX, v.PosY, v.PosZ ) if distance < 30 then local fontbig = 3-(distance/10) --dxDrawBorderedCarText("", sx, sy, sx, sy, tocolor(212, 179, 17, 200), fontbig, "default-bold", "center") end end end end) function dxDrawBorderedCarText( text, x, y, w, h, color, scale, font, alignX, alignY, clip, wordBreak, postGUI ) dxDrawText ( text, x - 1, y - 1, w - 1, h - 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x + 1, y - 1, w + 1, h - 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x - 1, y + 1, w - 1, h + 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x + 1, y + 1, w + 1, h + 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x - 1, y, w - 1, h, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x + 1, y, w + 1, h, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x, y - 1, w, h - 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x, y + 1, w, h + 1, tocolor ( 0, 0, 0, 255 ), scale, font, alignX, alignY, clip, wordBreak, false ) dxDrawText ( text, x, y, w, h, color, scale, font, alignX, alignY, clip, wordBreak, postGUI ) end function outputMessage (text, r, g, b) return exports["scr-Lib"]:outputMessage(text, r, g, b); end Server: customCarNames = -- новые названия { } shopsVehSpawns = { [1] = { 2131, -1133, 25.6, 0,0,359 }, [2] = { 555, -1278, 18, 0,0,100 }, [3] = { 1941, 2097, 10.8, 0,0,350 }, [4] = { -1988, 272, 36, 0,0,259 }, [5] = { -1642, 1213, 7.17, 0,0, 227 }, } function getFreeID() local result = dbPoll(dbQuery(db, "SELECT ID FROM VehicleList ORDER BY ID ASC"), -1) newID = false for i, id in pairs (result) do if id["ID"] ~= i then newID = i break end end if newID then return newID else return #result + 1 end end function getVehicleByID(id) v = false for i, veh in ipairs (getElementsByType("vehicle")) do if getElementData(veh, "ID") == id then v = veh break end end return v end function updateVehicleInfo(player) if isElement(player) then local result = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ?", getAccountName(getPlayerAccount(player))), -1) if type(result) == "table" then setElementData(player, "VehicleInfo", result) end end end addEventHandler("onResourceStart", resourceRoot, function() db = dbConnect("sqlite", "database.db") dbExec(db, "CREATE TABLE IF NOT EXISTS VehicleList (ID, Account, Model, X, Y, Z, RotZ, Colors, Upgrades, Paintjob, Cost, HP, new_hydr)") for i, player in ipairs(getElementsByType("player")) do updateVehicleInfo(player) end end) addEvent("onOpenGui", true) addEventHandler("onOpenGui", root, function() updateVehicleInfo(source) end) function destroyVehicle(theVehicle) if isElement(theVehicle) then local Owner = getElementData(theVehicle, "Owner") if Owner then local x, y, z = getElementPosition(theVehicle) local _, _, rz = getElementRotation(theVehicle) local r1, g1, b1, r2, g2, b2 = getVehicleColor(theVehicle, true) local color = r1..","..g1..","..b1..","..r2..","..g2..","..b2 upgrade = "" for _, upgradee in ipairs (getVehicleUpgrades(theVehicle)) do if upgrade == "" then upgrade = upgradee else upgrade = upgrade..","..upgradee end end local Paintjob = getVehiclePaintjob(theVehicle) or 3 local id = getElementData(theVehicle, "ID") dbExec(db, "UPDATE VehicleList SET X = ?, Y = ?, Z = ?, RotZ = ?, HP = ?, Colors = ?, Upgrades = ?, Paintjob = ?, new_hydr = ? WHERE Account = ? AND ID = ?", x, y, z, rz, getElementHealth(theVehicle), color, upgrade, Paintjob, getElementData ( theVehicle, "NewHydr") and 1 or 0, getAccountName(getPlayerAccount(Owner)), id) updateVehicleInfo(Owner) local attached = getAttachedElements(theVehicle) if (attached) then for k,element in ipairs(attached) do if getElementType(element) == "blip" then destroyElement(element) end end end end destroyElement(theVehicle) end end addEvent("onBuyNewVehicle", true) addEventHandler("onBuyNewVehicle", root, function(Model, cost, r1, g1, b1, r2, g2, b2) abc = false local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ?", getAccountName(getPlayerAccount(source))), -1) for i, data in ipairs (data) do if data["Model"] == Model then abc = true break end end if #data >= 10 then outputMessage("#c1c1c1Desculpe, mas você só pode comprar #00FF6610#FFFFFF veiculos.", source, 38, 122, 216, true) return end if abc then outputMessage("#c1c1c1Você já tem este veiculo.", source, 38, 122, 216, true) return end if getPlayerMoney(source) >= tonumber(cost) then takePlayerMoney ( source, cost ) local x, y, z = getElementPosition(source) local _, _, rz = getElementRotation(source) local shopID = getElementData ( source, "atVehShop") local color = r1..","..g1..","..b1..","..r2..","..g2..","..b2 if shopID and shopsVehSpawns[shopID] then vehicle = createVehicle(Model, shopsVehSpawns[shopID][1], shopsVehSpawns[shopID][2], shopsVehSpawns[shopID][3], shopsVehSpawns[shopID][4], shopsVehSpawns[shopID][5], shopsVehSpawns[shopID][6]) else vehicle = createVehicle(Model, x-5, y+5, z, 0, 0, rz) end setVehicleColor(vehicle, r1, g1, b1, r2, g2, b2) setElementData(vehicle, "Owner", source) local NewID = getFreeID() setElementData(vehicle, "ID", NewID) dbExec(db, "INSERT INTO VehicleList VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", NewID, getAccountName(getPlayerAccount(source)), Model, x-5, y+5, z, rz, color, "", 3, cost, 1000, 0) outputMessage("#c1c1c1Por: #00FF66$"..cost, source, 38, 122, 216, true) updateVehicleInfo(source) setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) warpPedIntoVehicle ( source, vehicle ) vv[vehicle] = setTimer(function(source) if not isElement(source) then killTimer(vv[source]) vv[source] = nil end if isElement(source) and getElementHealth(source) <= 255 then setElementHealth(source, 255.5) setVehicleDamageProof(source, true) setVehicleEngineState(source, false) end end, 150, 0, vehicle) addEventHandler("onVehicleDamage", vehicle, function(loss) local account = getAccountName(getPlayerAccount(getElementData(source, "Owner"))) setTimer(function(source) if isElement(source) then dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND Model = ?", getElementHealth(source), account, getElementModel(source)) updateVehicleInfo(getElementData(source, "Owner")) end end, 100, 1, source) end) addEventHandler("onVehicleEnter", vehicle, function(player) if getElementHealth(source) <= 255.5 then setVehicleEngineState(source, false) else if isVehicleDamageProof(source) then setVehicleDamageProof(source, false) end end end) else outputMessage("#c1c1c1Você não tem grana para comprar este veiculo.", source, 38, 122, 216, true) end end) vv = {} addEvent("SpawnMyVehicle", true) addEventHandler("SpawnMyVehicle", root, function(id) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then if getVehicleByID(id) then outputMessage("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1já está spawnado.", source, 38, 122, 216, true) else local color = split(data[1]["Colors"], ',') r1 = color[1] or 255 g1 = color[2] or 255 b1 = color[3] or 255 r2 = color[4] or 255 g2 = color[5] or 255 b2 = color[6] or 255 vehicle = createVehicle(data[1]["Model"], data[1]["X"], data[1]["Y"], data[1]["Z"], 0, 0, data[1]["RotZ"]) setElementData(vehicle, "ID", id) local upd = split(tostring(data[1]["Upgrades"]), ',') for i, upgrade in ipairs(upd) do addVehicleUpgrade(vehicle, upgrade) end local Paintjob = data[1]["Paintjob"] or 3 setVehiclePaintjob(vehicle, Paintjob) setVehicleColor(vehicle, r1, g1, b1, r2, g2, b2) if tonumber(data[1]["HP"]) <= 255.5 then data[1]["HP"] = 255 end if data[1]["new_hydr"] and data[1]["new_hydr"] == 1 then setElementData(vehicle, "NewHydr", true) else setElementData(vehicle, "NewHydr", false) end setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) setElementHealth(vehicle, data[1]["HP"]) setElementData(vehicle, "Owner", source) vv[vehicle] = setTimer(function(source) if not isElement(source) then killTimer(vv[source]) vv[source] = nil end if isElement(source) and getElementHealth(source) <= 255 then setElementHealth(source, 255.5) setVehicleDamageProof(source, true) setVehicleEngineState(source, false) end end, 50, 0, vehicle) addEventHandler("onVehicleDamage", vehicle, function(loss) local account = getAccountName(getPlayerAccount(getElementData(source, "Owner"))) setTimer(function(source) if isElement(source) then dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND Model = ?", getElementHealth(source), account, getElementModel(source)) updateVehicleInfo(getElementData(source, "Owner")) end end, 100, 1, source) end) addEventHandler("onVehicleEnter", vehicle, function(player) if getElementHealth(source) <= 255.5 then setVehicleEngineState(source, false) else if isVehicleDamageProof(source) then setVehicleDamageProof(source, false) end end end) outputMessage("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1foi spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Há um problema com o veiculo, notifique o administrador.", source, 38, 122, 216, true) end end) addEvent("DestroyMyVehicle", true) addEventHandler("DestroyMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then destroyVehicle(vehicle) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1foi removido.", source, 38, 122, 216, true) else outputMessage("#c1c1c1Selecione um veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("LightsMyVehicle", true) addEventHandler("LightsMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then local Vehicle = getPedOccupiedVehicle(source) if Vehicle == vehicle then if getVehicleOverrideLights(vehicle) ~= 2 then setVehicleOverrideLights(vehicle, 2) outputMessage("#c1c1c1Seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1teve as luzes acesas.", source, 38, 122, 216, true) elseif getVehicleOverrideLights(vehicle) ~= 1 then setVehicleOverrideLights(vehicle, 1) outputMessage("#c1c1c1Seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1teve as luzes apagadas.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não está no veiculo!", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end end) addEvent("LockMyVehicle", true) addEventHandler("LockMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then if not isVehicleLocked(vehicle) then setVehicleLocked(vehicle, true) setVehicleDoorsUndamageable(vehicle, true) setVehicleDoorState(vehicle, 0, 0) setVehicleDoorState(vehicle, 1, 0) setVehicleDoorState(vehicle, 2, 0) setVehicleDoorState(vehicle, 3, 0) outputMessage("#c1c1c1O seu transporte #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi #00FF66fechado.", source, 38, 122, 216, true) elseif isVehicleLocked(vehicle) then setVehicleLocked(vehicle, false) setVehicleDoorsUndamageable(vehicle, false) outputMessage("#c1c1c1O seu transporte #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi #00FF66aberto.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("BlipMyVehicle", true) addEventHandler("BlipMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then if not getElementData(vehicle, "ABlip") then setElementData(vehicle, "ABlip", true) createBlipAttachedTo(vehicle, 41, 2, 255, 0, 0, 255, 0, 65535, source) outputMessage("#c1c1c1O seu transporte #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi marcado no mapa, usar #00FF66F11#c1c1c1 para encontrá-lo.", source, 38, 122, 216, true) else local attached = getAttachedElements(vehicle) if (attached) then for k,element in ipairs(attached) do if getElementType(element) == "blip" then destroyElement(element) end end end setElementData(vehicle, "ABlip", false) outputMessage("#c1c1c1O seu veículo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1teve o blip removido.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end end) addEvent("FixMyVehicle", true) addEventHandler("FixMyVehicle", root, function(id) if getPlayerMoney(source) >= tonumber(500) then takePlayerMoney ( source, 500 ) local vehicle = getVehicleByID(id) if isElement(vehicle) then fixVehicle(vehicle) setVehicleEngineState(vehicle, true) if isVehicleDamageProof(vehicle) then setVehicleDamageProof(vehicle, false) end end dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND ID = ?", 1000, getAccountName(getPlayerAccount(source)), id) updateVehicleInfo(source) outputMessage ("#c1c1c1O seu transporte foi reparado.", source, 38, 122, 216, true) else outputMessage("#c1c1c1Você não tem dinheiro suficiente para reparar.", source, 38, 122, 216, true) outputMessage("#c1c1c1Preço: #00FF66$500.", source, 38, 122, 216, true) end end) addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(500) then local vehicle = getVehicleByID(id) if isElement(vehicle) then takePlayerMoney ( source, 500 ) local x, y, z = getElementPosition(source) setElementPosition(vehicle, x, y, z) warpPedIntoVehicle ( source, vehicle ) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue a você.", source, 38, 122, 216, true) else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end) addEvent("SellMyVehicle", true) addEventHandler("SellMyVehicle", root, function(id) local vehicle = getVehicleByID(id) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then local Money = math.ceil((data[1]["Cost"]*.9)*math.floor(data[1]["HP"])/100/10) givePlayerMoney (source, Money) if isElement(vehicle) then destroyElement(vehicle) end dbExec(db, "DELETE FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id) updateVehicleInfo(source) outputMessage("#c1c1c1Você vendeu o seu veiculo por #00FF66$"..Money, source, 38, 122, 216, true) end end) function getDataOnLogin(_, account) updateVehicleInfo(source) end addEventHandler("onPlayerLogin", root, getDataOnLogin) function SaveVehicleDataOnQuit() for i, veh in ipairs (getElementsByType("vehicle")) do if getElementData(veh, "Owner") == source then destroyVehicle(veh) end end end addEventHandler("onPlayerQuit", root,SaveVehicleDataOnQuit) addEvent("inviteToBuyCarSended", true) addEventHandler("inviteToBuyCarSended", root, function(player, price, veh_name, veh_id) if player and price and veh_name and veh_id then local pl = getPlayerFromName ( player ) if pl then triggerClientEvent ( pl, "recieveInviteToBuyCar", pl, getPlayerName (source), getAccountName(getPlayerAccount(source)), price, veh_name, veh_id ) else outputMessage ( "#c1c1c1O jogador não foi encontrado, a venda foi cancelada", source, 250, 10, 10, true) triggerClientEvent ( source, "cleanCarInvitations", source ) end end end) addEvent("invitationBuyCarNotAccepted", true) addEventHandler("invitationBuyCarNotAccepted", root, function(player, acc, price, veh_name, veh_id) local pl = getPlayerFromName ( player ) if pl then triggerClientEvent ( pl, "cleanCarInvitations", pl ) outputMessage ( "#c1c1c1O jogador recusou-se a comprar o seu carro", pl, 250, 10, 10,true) end end) addEvent("invitationBuyCarAccepted", true) addEventHandler("invitationBuyCarAccepted", root, function(player, acc, price, veh_name, veh_id) local pl = getPlayerFromName ( player ) local avail = false if pl and getAccountName ( getPlayerAccount (pl)) == acc then avail = true triggerClientEvent ( pl, "cleanCarInvitations", pl ) --outputMessage ( "Игрок отказался покупать ваше авто", pl, 250, 10, 10) else for i, v in ipairs( getElementsByType ( 'player' ) ) do if getAccountName(getPlayerAccount ( v )) == acc then avail = true pl = v break end end end price = tonumber(price) or 0 if avail then if isGuestAccount ( getPlayerAccount ( source ) ) then triggerClientEvent ( pl, "cleanCarInvitations", pl ) outputMessage ( "#c1c1c1Você não está logado em sua conta, a transação foi cancelada", source, 250, 10, 10,true ) outputMessage ( "#c1c1c1O jogador não entrou na conta, a transação foi cancelada", pl, 250, 10, 10,true ) return true end if getPlayerMoney ( source ) >= price then local vehicle = getVehicleByID(tonumber(veh_id)) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(pl)), veh_id), -1) if type(data) == "table" and #data ~= 0 and isElement ( vehicle ) then givePlayerMoney ( pl, price ) takePlayerMoney ( source, price ) dbExec(db, "UPDATE VehicleList SET Account = ? WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), getAccountName(getPlayerAccount(pl)), veh_id) updateVehicleInfo(source) updateVehicleInfo(pl) setElementData(vehicle, "Owner", source) setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) outputMessage("#c1c1c1Você vendeu o seu veiculo por #00FF66$"..price, pl, 38, 122, 216, true) outputMessage("#c1c1c1Você comprou um carro por #00FF66$"..price, source, 38, 122, 216, true) triggerClientEvent ( pl, "cleanCarInvitations", pl ) else outputMessage ( "#c1c1c1A máquina não pode ser encontrado, o negócio é cancelado", source, 250, 10, 10,true ) outputMessage ( "#c1c1c1A máquina não pode ser encontrado, o negócio é cancelado. Tente carro desova.", pl, 250, 10, 10,true ) triggerClientEvent ( pl, "cleanCarInvitations", pl ) end else outputMessage ( "#c1c1c1Você não tem dinheiro suficiente, a transação foi cancelada", source, 250, 10, 10,true ) end else outputMessage ( "#c1c1c1O jogador não foi encontrado, a operação foi cancelada", source, 250, 10, 10,true) end end) function outputMessage (text, player, r, g, b) return exports["scr-Lib"]:outputMessage(player, text, r, g, b); end
  8. Olá pessoal, tudo bom ? Coloquei um radar no meu servidor e queria saber como faço para a Area-Verde aparecer nele! Ja tenho as areas verdes criadas! Pórem quero saber como faz para elas aparecerem no radar, pois no radar elas nao aparecem. Agradeço muito se poderem tirar um tempinho pra me ajudar Script do Radar: -------------------------------------------------------------------------------------------------- -- Distributed under the Creative Commons Attribution-NonCommercial 4.0 International license -- -- Version: (release) 1.0.0 -- -- Original author: Kacper "MrTasty (aka Addon)" Stasiak -- -- Special thanks to: Doomed_Space_Marine (useful functions) -- -- robhol (useful functions) -- -------------------------------------------------------------------------------------------------- --Features local enableBlips = true local renderNorthBlip = true local alwaysRenderMap = false --true = always render map, false = only render when in interior world 0 (radar will stay, only the map will stop rendering) local alwaysRenderOxygen = false --true = always render oxygen, false = only when oxygen not full/local player in water local disableGTASAhealth = true --Disable GTASA's HUD health display local disableGTASAarmor = true --Disable GTASA's HUD armour display local disableGTASAoxygen = true --Disable GTASA's HUD oxygen display --Dimensions & Sizes local worldW, worldH = 3072, 3072 --map image dimensions - if map image changed, please edit appropriately local blip = 12 --Blip size, pixels relative to 1366x768 resolution --Colours - Notice: Health colours smoothly according it local player's HP. local healthOkayR, healthOkayG, healthOkayB = 102, 204, 102 --RGB for health which is 'okay' (50% or more) local healthBadR, healthBadG, healthBadB = 200, 200, 0 --RGB for health which is 'bad' (25%) local healthCriticalR, healthCriticalG, healthCriticalB = 200, 0, 0 --RGB for health which is 'critically low' (near/at 0%) local armorColorR, armorColorG, armorColorB = 0, 102, 255 local oxygenColorR, oxygenColorG, oxygenColorB = 255, 255, 0 ------------------------------------------------------------------------------------ --Do not modify anything below unless you're absolutely sure of what you're doing.-- ------------------------------------------------------------------------------------ local sx, sy = guiGetScreenSize() local rt = dxCreateRenderTarget(290, 175) local xFactor, yFactor = sx/1366, sy/768 local yFactor = xFactor --otherwise the radar looses it's 2:3 ratio. -- Useful functions -- function findRotation(x1,y1,x2,y2) --Author: Doomed_Space_Marine & robhol local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end function getPointFromDistanceRotation(x, y, dist, angle) --Author: robhol local a = math.rad(90 - angle); local dx = math.cos(a) * dist; local dy = math.sin(a) * dist; return x+dx, y+dy; end function drawRadar() showPlayerHudComponent("radar", false) if disableGTASAhealth then showPlayerHudComponent("health", false) end if disableGTASAarmor then showPlayerHudComponent("armour", false) end if disableGTASAoxygen then showPlayerHudComponent("breath", false) end if (not isPlayerMapVisible()) then local mW, mH = dxGetMaterialSize(rt) local x, y = getElementPosition(localPlayer) local X, Y = mW/2 -(x/(6000/worldW)), mH/2 +(y/(6000/worldH)) local camX,camY,camZ = getElementRotation(getCamera()) dxSetRenderTarget(rt, true) if alwaysRenderMap or getElementInterior(localPlayer) == 0 then dxDrawRectangle(0, 0, mW, mH, 0xFF7CA7D1) --render background dxDrawImage(X - worldW/2, mH/5 + (Y - worldH/2), worldW, worldH, "image/mapa.jpg", camZ, (x/(6000/worldW)), -(y/(6000/worldH)), tocolor(255, 255, 255, 255)) end dxSetRenderTarget() dxDrawRectangle((10)*xFactor, sy-((200+10))*yFactor, (300)*xFactor, (200)*yFactor, tocolor(0, 0, 0, 175)) dxDrawImage((10+5)*xFactor, sy-((200+5))*yFactor, (300-10)*xFactor, (175)*yFactor, rt, 0, 0, 0, tocolor(255, 255, 255, 150)) local health = math.max(math.min(getElementHealth(localPlayer)/(0.232018558500192*getPedStat(localPlayer, 24) -32.018558511152), 1), 0) local armor = math.max(math.min(getPedArmor(localPlayer)/100, 1), 0) local oxygen = math.max(math.min(getPedOxygenLevel(localPlayer)/(1.5*getPedStat(localPlayer, 225) +1000), 1), 0) local r, g, b if health >= 0.25 then r, g, b = interpolateBetween(healthBadR, healthBadG, healthBadB, healthOkayR, healthOkayG, healthOkayB, math.floor(health*20)/10, "InOutQuad") else r, g, b = interpolateBetween(healthCriticalR, healthCriticalB, healthCriticalB, healthBadR, healthBadG, healthBadB, math.floor(health*20)/10, "InOutQuad") end local col = tocolor(r, g, b, 190) local bg = tocolor(r, g, b, 100) dxDrawRectangle((15)*xFactor, sy-(25)*yFactor, (142.5)*xFactor, (10)*yFactor, bg) dxDrawRectangle((15)*xFactor, sy-(25)*yFactor, (142.5*health)*xFactor, (10)*yFactor, col) if alwaysRenderOxygen or (oxygen < 1 or isElementInWater(localPlayer)) then dxDrawRectangle((162.5)*xFactor, sy-(25)*yFactor, (67.5)*xFactor, (10)*yFactor, tocolor(armorColorR, armorColorG, armorColorB, 100)) dxDrawRectangle((162.5)*xFactor, sy-(25)*yFactor, (67.5*armor)*xFactor, (10)*yFactor, tocolor(armorColorR, armorColorG, armorColorB, 190)) dxDrawRectangle((237.5)*xFactor, sy-(25)*yFactor, (67.5)*xFactor, (10)*yFactor, tocolor(oxygenColorR, oxygenColorG, oxygenColorB, 100)) dxDrawRectangle((237.5)*xFactor, sy-(25)*yFactor, (67.5*oxygen)*xFactor, (10)*yFactor, tocolor(oxygenColorR, oxygenColorG, oxygenColorB, 190)) else dxDrawRectangle((162.5)*xFactor, sy-(25)*yFactor, (142.5)*xFactor, (10)*yFactor, tocolor(armorColorR, armorColorG, armorColorB, 100)) dxDrawRectangle((162.5)*xFactor, sy-(25)*yFactor, (142.5*armor)*xFactor, (10)*yFactor, tocolor(armorColorR, armorColorG, armorColorB, 190)) end local rx, ry, rz = getElementRotation(localPlayer) local lB = (15)*xFactor local rB = (15+290)*xFactor local tB = sy-(205)*yFactor local bB = tB + (175)*yFactor local cX, cY = (rB+lB)/2, (tB+bB)/2 +(35)*yFactor local toLeft, toTop, toRight, toBottom = cX-lB, cY-tB, rB-cX, bB-cY for k, v in ipairs(getElementsByType("blip")) do local bx, by = getElementPosition(v) local actualDist = getDistanceBetweenPoints2D(x, y, bx, by) local maxDist = getBlipVisibleDistance(v) if actualDist <= maxDist and getElementDimension(v)==getElementDimension(localPlayer) and getElementInterior(v)==getElementInterior(localPlayer) then local dist = actualDist/(6000/((worldW+worldH)/2)) local rot = findRotation(bx, by, x, y)-camZ local bpx, bpy = getPointFromDistanceRotation(cX, cY, math.min(dist, math.sqrt(toTop^2 + toRight^2)), rot) local bpx = math.max(lB, math.min(rB, bpx)) local bpy = math.max(tB, math.min(bB, bpy)) local bid = getElementData(v, "customIcon") or getBlipIcon(v) local _, _, _, bcA = getBlipColor(v) local bcR, bcG, bcB = 255, 255, 255 if getBlipIcon(v) == 0 then bcR, bcG, bcB = getBlipColor(v) end local bS = getBlipSize(v) dxDrawImage(bpx -(blip*bS)*xFactor/2, bpy -(blip*bS)*yFactor/2, (blip*bS)*xFactor, (blip*bS)*yFactor, "image/blip/"..bid..".png", 0, 0, 0, tocolor(bcR, bcG, bcB, bcA)) end end if renderNorthBlip then local rot = -camZ+180 local bpx, bpy = getPointFromDistanceRotation(cX, cY, math.sqrt(toTop^2 + toRight^2), rot) --get position local bpx = math.max(lB, math.min(rB, bpx)) local bpy = math.max(tB, math.min(bB, bpy)) --cap position to screen local dist = getDistanceBetweenPoints2D(cX, cY, bpx, bpy) --get distance to the capped position local bpx, bpy = getPointFromDistanceRotation(cX, cY, dist, rot) --re-calculate position based on new distance if bpx and bpy then --if position was obtained successfully local bpx = math.max(lB, math.min(rB, bpx)) local bpy = math.max(tB, math.min(bB, bpy)) --cap position just in case dxDrawImage(bpx -(blip*2)/2, bpy -(blip*2)/2, blip*2, blip*2, "image/blip/4.png", 0, 0, 0) --draw north (4) blip end end dxDrawImage(cX -(blip*2)*xFactor/2, cY -(blip*2)*yFactor/2, (blip*2)*xFactor, (blip*2)*yFactor, "image/player.png", camZ-rz, 0, 0) end end addEventHandler("onClientRender", root, drawRadar) addEventHandler("onClientResourceStop", resourceRoot, function() showPlayerHudComponent("radar", true) if disableGTASAhealth then showPlayerHudComponent("health", true) end if disableGTASAarmor then showPlayerHudComponent("armour", true) end if disableGTASAoxygen then showPlayerHudComponent("breath", true) end end)
  9. Olá pessoal do forum, tenho um ''DX Money'' no meu servidor, abaixo mostrarei a imagem dele pelo print https://prnt.sc/kytkfg Eu escrevi no print, onde quero mais ou menos q ele apareça, caso possam me ajudar! No print, ele esta entre o velocimetro não sei se conseguiram ver escrito "- $799,200", eu queria que ele aparecesse mais ou menos a partir dali onde esta a seta do mta, não muito perto do hud, porque ele esta praticamente dentro do velocimetro, o script dele esta abaixo, OBS:Ele tem só´1 arquivo.lua q é o client ------------------------------------------------------------------------- Client: local playerMoney = getPlayerMoney ( localPlayer ) local messages = { } local sx, sy = guiGetScreenSize ( ) addEventHandler ( "onClientRender", root, function ( ) local tick = getTickCount ( ) if ( playerMoney ~= getPlayerMoney ( localPlayer ) ) then local pM = getPlayerMoney ( localPlayer ) if ( pM > playerMoney ) then local diff = pM - playerMoney table.insert ( messages, { diff, true, tick + 5000, 180 } ) else local diff = playerMoney - pM table.insert ( messages, { diff, false, tick + 5000, 180 } ) end playerMoney = pM end if ( #messages > 7 ) then table.remove ( messages, 1 ) end for index, data in ipairs ( messages ) do local v1 = data[1] local v2 = data[2] local v3 = data[3] local v4 = data[4] dxDrawRectangle ( sx - 220, (sy-20)-(index*25), 200, 20, tocolor ( 0, 0, 0, v4 ) ) if ( v2 ) then dxDrawText ( "+ $"..convertNumber ( v1 ), sx - 200, (sy-18)-(index*25), 50, 20, tocolor ( 0, 255, 0, v4+75 ), 1, 'default-bold' ) else dxDrawText ( "- $"..convertNumber ( v1 ), sx - 200, (sy-18)-(index*25), 50, 20, tocolor ( 255, 0, 0, v4+75 ), 1, 'default-bold' ) end if ( tick >= v3 ) then messages[index][4] = v4-2 if ( v4 <= 25 ) then table.remove ( messages, index ) 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
  10. Boa tarde, alguem sabe o nome desse mod? usam ele em todos os servidores praticamente. LINK DA IMAGEM DELE ABAIXO: https://imgur.com/a/fXq0oRK
  11. Maruchan

    AYUDA CON MI SISTEMA

    Tengo errores en esta funciones dentro de mi sistema de nivel me ayudarían a solucionarlo por favor?. ---EN EL SERVER TENGO ESTE ERROR AQUI: getPlayerEXP = function(l_13_0) if not tonumber(getElementData(l_13_0, "exp")) then -- return not l_13_0 or type(l_13_0) ~= "userdata" or getElementType(l_13_0) ~= "player" or 0 -- do return end -- AQUI end outputDebugString("Bad argument @ 'getPlayerEXP' [Expected player element at argument 1, got " .. tostring(l_13_0) .. "]", 2) return false end -- EN EL CLIENTE TENGO ESTE ERROR AQUI EN LAS MIMAS LINEAS: getPlayerEXP = function(l_7_0) if not tonumber(getElementData(l_7_0, "exp")) then return not l_7_0 or type(l_7_0) ~= "userdata" or getElementType(l_7_0) ~= "player" or 0 do return end -- AQUI end outputDebugString("Bad argument @ 'getPlayerEXP' [Expected player element at argument 1, got " .. tostring(l_7_0) .. "]", 2) return false end -- LOS ERRORES SON DE: `end`expected (to close `if` at line 197) near do
  12. Maruchan

    Una consultita nada mas...

    local vehicles = { [1] = { -- {id, x, y, z, MAX_Slots, colSphereSize}, -- Barracks {433, 2611.8000488281, 237.5, 59.5, 65, 2}, {433, 277.7998046875, 2024.19921875, 18.200000762939, 65, 2}, -- Bobcats {422, -2051.8000488281, 144.19999694824, 28.89999961853, 20, 2}, {422, -237.19999694824,2812.5,61.799999237061, 20, 2}, -- Sanchez {468, -2039.5, 1108.69921875, 53, 8, 2}, {468, -1813.8994140625, -1598.7998046875, 22.799999237061, 8, 2}, -- Mesa {500, 1552.4000244141, -2088, 25.700000762939, 25, 2}, {500, 2786.69921875, 2244.2998046875, 11.199999809265, 25, 2}, -- Dodo {593, -1238.5999755859, -652.09997558594, 14.699999809265, 25, 2}, {593, 290.60000610352, 2538.6999511719, 17.39999961853, 25, 2}, -- QuadBike {471, 1931.6999511719, -587.79998779297, 27.200000762939, 10, 2}, {471, -386.2998046875, 1976.69921875, 92, 10, 2},, -- Freeway {541, -701, 945, 12, 8, 2}, {541, 2903.69921875, 1586, 10.39999961853, 8, 2}, }, -- [2] = { -- {id, x, y, z, MAX_Slots, colSphereSize}, -- Camper {483, 1527.5, -661.5, 94.5, 12, 2}, {483, 1318.19921875, -641.69921875, 108.90000152588, 12, 2}, }, -- [3] = { -- {id, x, y, z, MAX_Slots, colSphereSize}, -- Buffalo {402, -106.8994140625, -1573.2998046875, 2.5, 12, 2}, {402, -2137.8000488281, 1219.4000244141, 47.099998474121, 12, 2}, -- Bandito {456, -2304.69921875, -1643.099609375, 483.70001220703, 15, 5}, {456, -482.20001220703, -2026.4000244141, 50.400001525879, 15, 5}, }, -- [4] = { -- {id, x, y, z, MAX_Slots, colSphereSize}, -- COACH {437, -271.29998779297, -2162.1000976563, 30, 190, 5}, }, } addCommandHandler("spawncars", function(p, cmd, n) if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount(p)), aclGetGroup("Admin")) ) then if ( n ) and ( vehicles[n] ) then for i, k in ipairs(vehicles[n]) do local v = createVehicle(k[1], k[2], k[3], k[4]) local c = createColSphere(k[2], k[3], k[4], k[6]) -- attachElements(c, v, 0, 0, 0) setElementData(c, "parent", v) setElementData(v, "parent", c) setElementData(c, "vehicle", true) setElementData(c, "MAX_Slots", k[5]) setElementData(c, "fuel", 5) -- local tires, engine, parts = getVehicleAddonInfos(k[1]) if ( not tonumber(tires) ) then tires = math.random(0, 4) end if ( not tonumber(engine) ) then engine = math.random(0, 1) end if ( not tonumber(parts) ) then parts = math.random(0, 4) end setElementData(c, "Rueda_inVehicle", math.random(0, tires)) setElementData(c, "Motor_inVehicle", math.random(0, engine)) setElementData(c, "Parts_inVehicle", math.random(0, parts)) setElementData(c, "spawn", {k[1], k[2], k[3], k[4]}) -- outputChatBox("¡Has respawneado todos los vehiculos!.", p, 0, 255, 120, true) end else outputChatBox("Error Syntax: /spawncars [1-4]", p, 255, 50, 0, true) outputChatBox("Ejemplo: /spawncars #ffffff1", p, 255, 50, 0, true) end end end ) Pues nada, ¿quería saber porque esta pequeña script no me funciona? Como ven es una simple script que sirve para spawnear vehículos dentro del servidor a través de un comando, pero cuando presiono "T" y tipeo /spanwcars 1, etc, me tira el siguiente mensaje: Error Syntax: /spawncars [1-4] Ejemplo: /spawncars 1 Pero no me dice que los autos hayan spawneado, la verdad no entiendo el problema y en el debugscript 3 no me tira ninguna clase de error con respecto a este LUA.
  13. Hello there scripters, Im in a secret project of starting officially new and most popular idea In mta me and my friends started this project I dont want to say the name of it but it needs such a proffesional scriptors and 2 staff's which is need to be trusted and not paid at all, but the scriptors will be [aid and we need to discuss how much depends on the scriptors and on the script itself and on us, so imma tell some of what it indicates : - Systems ( alot of kinds ) - Custom gui - And much more Note: the idea will be explained to the scripter and tell him what to script, and this thread will be on until 5/26/2018. After this time done ill contact who posted in this thread, so when you tell me to contact you I WONT until this time done. bye and thanks we need atleast 5 scriptors tho c:
  14. GonzaloBuenosAires

    NETWORK TROUBLE

    Alguién me ayuda a solucionar el NETWORK TROUBLE?... =( Siempre que refrescan los items me da un lagaso... local h1,h2,h3 = debug.gethook() debug.sethook() timetorefresh = math.random(2700000,3600000) local itemTable = { farm = { { "Madera", 1463, 0.4, 0, 13 }, { "Vendaje", 1578, 0.5, 0, 4 }, { "Cantimplora de Agua LLena", 2683, 1, 0, 6 }, { "Lata de Pasta", 2770, 1, 0, 6 }, { "Lata de Judías", 2601, 1, 0, 6 }, { "Hamburguesa", 2768, 1, 0, 6 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 12 }, { "British Assault Pack", 2406, 1, 0, 2.5 -- }, -- { -- "Patrol Pack", -- 2407, -- 1, -- 0, -- 3.5 }, { "Vest Pouch Pack", 2408, 1, 0, 2.2 }, { "Coca Cola", 2647, 1, 0, 9 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 10 }, { "Cuchillo", 335, 1, 90, 4 }, { "Caja de Cerillas", 328, 0.4, 90, 8 }, { "Revólver", 348, 1, 90, 0.2 }, { "Morfina", 1579, 1, 0, 4 }, { "Tienda de Campaña", 1279, 1, 0, 0.5 }, { "Makarov PM", 346, 1, 90, 4 }, { "Analgésico", 2709, 3, 0, 3.5 }, { "M14 AIM", 357, 1, 90, 0.3 }, { "Remington 870", 349, 1, 90, 0.3 }, { "Rueda", 1073, 1, 0, 2 }, { "Depósito", 1008, 1, 0.8, 2 -- }, -- { -- "Civilian Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 }, { "Mapa", 1277, 0.8, 90, 6 }, { "GPS", 2976, 0.15, 0, 2 } }, residential = { { "Caja de Cerillas", 328, 0.4, 90, 5 }, { "Madera", 1463, 0.4, 0, 5 -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 }, { "Makarov PM", 346, 1, 90, 1.5 }, { "British Assault Pack", 2406, 1, 0, 1.5 -- }, -- { -- "Patrol Pack", -- 2407, -- 1, -- 0, -- 1.5 }, { "Vest Pouch Pack", 2408, 1, 0, 1.2 }, { "M9 SD", 347, 1, 90, 1.9 }, { "Remington 870", 349, 1, 90, 0.1 }, { "PDW", 352, 1, 90, 1 }, { "Cuchillo", 335, 1, 90, 3 }, { "Hacha", 339, 1, 90, 1 }, { "Pizza", 1582, 1, 0, 7 }, { "Coca Cola", 2647, 1, 0, 7 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 9 }, { "Bengala", 324, 1, 90, 9 }, { "Leche", 2856, 1, 0, 7 }, { "Assault Pack (ACU)", 3026, 1, 0, 4 }, { "Analgésico", 2709, 3, 0, 7 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 12 }, { "Granada", 342, 1, 0, 0.01 }, { "Revólver", 348, 1, 90, 0.4 }, { "Escopeta Recortada", 350, 1, 90, 0.3 }, { "SPAZ-12 Combat Shotgun", 351, 1, 90, 0.4 }, { "MP5A5", 353, 1, 90, 0.4 }, { "Reloj", 2710, 1, 0, 3 }, { "Bolsa Térmica", 1576, 5, 0, 6 }, { "Alambrada", 933, 0.25, 0, 1 }, { "M14 AIM", 357, 1, 90, 0.3 }, { "Alice Pack", 1248, 1, 0, 1.5 }, { "Rueda", 1073, 1, 0, 1 }, { "Depósito", 1008, 0.8, 0, 1 }, { "Morfina", 1579, 1, 0, 2 -- }, -- { -- "Civilian Clothing", -- 1241, -- 2, -- 0, -- 9 }, { "Mapa", 1277, 0.8, 90, 10 }, { "GPS", 2976, 0.15, 0, 3 }, { "Lata de Pasta", 2770, 1, 0, 7 }, { "Lata de Judías", 2601, 1, 0, 7 }, { "Hamburguesa", 2768, 1, 0, 7 }, { "Palo de Golf", 333, 1, 90, 3 }, { "Bate", 336, 1, 90, 3 }, { "Pala", 337, 1, 90, 3 } }, military = { { "Caja de Cerillas", 328, 0.4, 90, 2 }, { "Makarov PM", 346, 1, 90, 5 }, { "M9 SD", 347, 1, 90, 4 }, { "Remington 870", 349, 1, 90, 3 }, { "PDW", 352, 1, 90, 4 }, { "Cuchillo", 335, 1, 90, 2.4 }, { "Hacha", 339, 1, 90, 2.1 }, { "Pizza", 1582, 1, 0, 2 }, { "Coca Cola", 2647, 1, 0, 2 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 4 }, { "Bengala", 324, 1, 90, 4 }, { "Leche", 2856, 1, 0, 1 }, { "Analgésico", 2709, 3, 0, 4 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 12 }, { "Granada", 342, 1, 0, 0.5 }, { "Escopeta Recortada", 350, 1, 90, 2.3 }, { "SPAZ-12 Combat Shotgun", 351, 1, 90, 2.3 }, { "MP5A5", 353, 1, 90, 2.8 }, { "Reloj", 2710, 1, 0, 4 }, { "Bolsa Térmica", 1576, 5, 0, 3 }, { "Alambrada", 933, 0.25, 0, 1 }, { "M14 AIM", 357, 1, 90, 3.5 }, { "Alice Pack", 1248, 1, 0, 4 }, { "Visión Nocturna", 368, 1, 90, 4 }, { "Prismáticos", 369, 1, 0, 4 }, { "Rueda", 1073, 1, 0, 2 }, { "Depósito", 1008, 0.8, 0, 2 }, { "Morfina", 1579, 1, 0, 4 -- }, -- { -- "Camouflage Clothing", -- 1247, -- 2, -- 0, -- 4.5 -- }, -- { -- "Civilian Clothing", -- 1241, -- 2, -- 0, -- 3 }, { "AKS-74 Kobra", 355, 1, 90, 3.8 }, { "GPS", 2976, 0.15, 0, 3 }, { "Mapa", 1277, 0.8, 90, 7 }, { "Caja de Herramientas", 2969, 0.5, 0, 1 }, { "Motor", 929, 0.3, 0, 2 }, { "Tienda de Campaña", 1279, 1, 0, 4.5 -- }, -- { -- "Ghillie Suit", -- 1213, -- 2, -- 0, -- 0.3 -- }, -- { -- "Ghillie[F] Suit", -- 1213, -- 2, -- 0, -- 0.4 }, { "M4A3 CCO", 356, 1, 90, 2.4 }, { "CZ 550", 358, 1, 90, 0.4 }, { "Visión Térmica", 369, 1, 90, 3 }, { "Assault Pack (ACU)", 3026, 1, 0, 5 }, { "Czech Backpack", 2472, 1, 0, 2 }, { "Dispositivo de Radio", 330, 1, 0, 6 }, { "Coyote Backpack", 1575, 1, 0, 0.9 }, { "CMRA Backpack", 2405, -- ID DO OBJETO QUE IRÁ FICAR NAS COSTAS, E O QUE NÓS IREMOS SUBISTITUIR PELA BACKPACK 1, 0, 5 -- NIVEL DE RARIDADE DA BACKPACK }, { "Army Backpack", 2404, -- ID DO OBJETO QUE IRÁ FICAR NAS COSTAS, E O QUE NÓS IREMOS SUBISTITUIR PELA BACKPACK 1, 0, 5 -- NIVEL DE RARIDADE DA BACKPACK -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 }, { "Pala", 337, 1, 90, 1 } }, industrial = { { "Alambrada", 933, 0.25, 0, 7 }, { "Caja de Herramientas", 2969, 0.5, 0, 3 }, { "Rueda", 1073, 1, 0, 4 }, { "Motor", 929, 0.3, 0, 3.5 }, { "Depósito", 1008, 1, 0.8, 4 }, { "Remington 870", 349, 1, 90, 3 }, { "Cantimplora de Agua LLena", 2683, 1, 0, 4 }, { "Lata de Pasta", 2770, 1, 0, 4 }, { "Lata de Judías", 2601, 1, 0, 4 }, { "Hamburguesa", 2768, 1, 0, 4 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 10 }, { "Coca Cola", 2647, 1, 0, 4 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 6 }, { "Bidón de Gasolina LLeno", 1650, 1, 0, 1.5 }, { "Mapa", 1277, 0.8, 90, 3 }, { "Reloj", 2710, 1, 0, 2 }, { "Caja de Cerillas", 328, 0.4, 90, 5 }, { "Madera", 1463, 0.4, 0, 2 }, { "Makarov PM", 346, 1, 90, 1.5 }, { "PDW", 352, 1, 90, 2 }, { "Cuchillo", 335, 1, 90, 2 }, { "British Assault Pack", 2406, 1, 0, 2.5 -- }, -- { -- "Patrol Pack", -- 2407, -- 1, -- 0, -- 3.5 }, { "Vest Pouch Pack", 2408, 1, 0, 5.2 }, { "Hacha", 339, 1, 90, 1.5 }, { "Pizza", 1582, 1, 0, 4 }, { "Bengala", 324, 1, 90, 5 }, { "Leche", 2856, 1, 0, 4 }, { "Assault Pack (ACU)", 3026, 1, 0, 6 }, { "Coyote Backpack", 1575, 1, 0, 0.5 }, { "Dispositivo de Radio", 330, 1, 0, 6 }, { "Palo de Golf", 333, 1, 90, 1.5 }, { "Bate", 336, 1, 90, 1.5 }, { "Pala", 337, 1, 90, 1.5 -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 }, { "Visión Nocturna", 368, 1, 90, 1.5 } }, supermarket = { { "Carne Cruda", 2804, 0.5, 90, 8 }, { "Caja de Cerillas", 328, 0.4, 90, 5 }, { "Madera", 1463, 0.4, 0, 5 }, { "Makarov PM", 346, 1, 90, 3.5 }, { "PDW", 352, 1, 90, 2 }, { "Cuchillo", 335, 1, 90, 3 }, { "Hacha", 339, 1, 90, 2.1 }, { "Pizza", 1582, 1, 0, 7 }, { "Coca Cola", 2647, 1, 0, 7 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 5 }, { "Bengala", 324, 1, 90, 6 }, { "Leche", 2856, 1, 0, 7 }, { "Assault Pack (ACU)", 3026, 1, 0, 6 }, { "Lata de Pasta", 2770, 1, 0, 7 }, { "Lata de Judías", 2601, 1, 0, 7 }, { "Hamburguesa", 2768, 1, 0, 7 }, { "Analgésico", 2709, 3, 0, 7 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 12 }, { "MP5A5", 353, 1, 90, 0.5 }, { "Reloj", 2710, 1, 0, 3 }, { "Bolsa Térmica", 1576, 5, 0, 6 }, { "Alambrada", 933, 0.25, 0, 1 }, { "M14 AIM", 357, 1, 90, 0.2 }, { "Alice Pack", 1248, 1, 0, 0.5 }, { "Rueda", 1073, 1, 0, 1 }, { "Depósito", 1008, 1, 0.8, 2 }, { "Morfina", 1579, 1, 0, 2 -- }, -- { -- "Civilian Clothing", -- 1241, -- 2, -- 0, -- 3.5 }, { "Mapa", 1277, 0.8, 90, 4 }, { "GPS", 2976, 0.15, 0, 1 }, { "Dispositivo de Radio", 330, 1, 0, 6 }, { "Palo de Golf", 333, 1, 90, 1.9 }, { "Bate", 336, 1, 90, 1.4 -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 2.5 }, { "Pala", 337, 1, 90, 0.3 } }, other = { { "Carne Cruda", 2804, 0.5, 90 }, { "Carne Cocinada", 2806, 0.5, 90 }, { "Bidón de Gasolina LLeno", 1650, 1, 0 }, { "Cantimplora de Agua Vacía", 2683, 1, 0 -- }, -- { -- "Survivor Clothing", -- 1577, -- 2, -- 0 }, { "Visión Nocturna", 368, 1, 90 }, { "Visión Térmica", 369, 1, 90 }, { "Remington 870 Cartuchos", 2358, 2, 0 }, { "Esc. Recortada Cartuchos", 2358, 2, 0 }, { "SPAZ-12 Pellet", 2358, 2, 0 }, { "MP5A5 Mag", 2358, 2, 0 }, { "30Rnd. AK", 1271, 2, 0 }, { "30Rnd. STANAG", 1271, 2, 0 }, { "Makarov Mun.", 3013, 2, 0 }, { "M9SD Mun.", 3013, 2, 0 }, { ".45 ACP", 3013, 2, 0 }, { "CZ 550 Mag", 2358, 2, 0 }, { "DMR Mun.", 2358, 2, 0 }, { "PDW Mag", 2041, 2, 0 }, { "MP5A5 Mag", 2041, 2, 0 }, { "Caja de Cerillas", 328, 0.4, 90, 5 }, { "Madera", 1463, 0.4, 0, 5 }, { "Makarov PM", 346, 1, 90, 3.5 }, { "PDW", 352, 1, 90, 2 }, { "Cuchillo", 335, 1, 90, 2.5 }, { "Hacha", 339, 1, 90, 1.8 }, { "Pizza", 1582, 1, 0, 7 }, { "Coca Cola", 2647, 1, 0, 7 }, { "Bidón de Gasolina Vacío", 1650, 1, 0, 5 }, { "Bengala", 324, 1, 90, 6 }, { "Leche", 2856, 1, 0, 5 }, { "Assault Pack (ACU)", 3026, 1, 0, 6 }, { "Analgésico", 2709, 3, 0, 7 }, { "Latas Vacías", 2673, 0.5, 0, 12 }, { "Basura", 2675, 0.5, 0, 12 }, { "MP5A5", 353, 1, 90, 1.5 }, { "Reloj", 2710, 1, 0, 3 }, { "Bolsa Térmica", 1576, 5, 0, 6 }, { "Alambrada", 933, 0.25, 0, 1 }, { "M14 AIM", 357, 1, 90, 1.5 }, { "Alice Pack", 1248, 1, 0, 1.5 }, { "Coyote Backpack", 1575, 1, 0, 0.7 }, { "Rueda", 1073, 1, 0, 1 }, { "Depósito", 1008, 1, 0.8, 4 }, { "Morfina", 1579, 1, 0, 2 -- }, -- { -- "Civilian Clothing", -- 1241, -- 2, -- 0, -- 3.5 }, { "Mapa", 1277, 0.8, 90, 4 }, { "Caja de Herramientas", 2969, 0.5, 0, 3 }, { "Motor", 929, 0.3, 0, 3.5 }, { "Remington 870", 349, 1, 90, 2 }, { "Cantimplora de Agua LLena", 2683, 1, 0, 4 }, { "M9 SD", 347, 1, 90, 5 }, { "Granada", 342, 1, 0, 0.5 }, { "Escopeta Recortada", 350, 1, 90, 2 }, { "SPAZ-12 Combat Shotgun", 351, 1, 90, 1.9 }, { "Prismáticos", 369, 1, 0, 4 -- }, -- { -- "Camouflage Clothing", -- 1247, -- 2, -- 0, -- 4.5 }, { "AKS-74 Kobra", 355, 1, 90, 0.9 }, { "M136 Rocket Launcher", 359, 1, 90, 0 -- }, -- { -- "Ghillie Suit", -- 1213, -- 2, -- 0, -- 0.01 }, { "M4A3 CCO", 356, 1, 90, 0.9 }, { "CZ 550", 358, 1, 90, 0.3 }, { "Heat-Seeking RPG", 360, 1, 90, 0 }, { "Vendaje", 1578, 0.5, 0, 4 }, { "Lata de Pasta", 2770, 1, 0, 5 }, { "Lata de Judías", 2601, 1, 0, 6 }, { "Hamburguesa", 2768, 1, 0, 2 }, { "Tienda de Campaña", 1279, 1, 0, 0.5 }, { "Makarov PM", 346, 1, 90, 3 }, { "Revólver", 348, 1, 90, 3 }, { "GPS", 2976, 0.15, 0, 1 }, { "Kit Médico", 2891, 2.2, 0 }, { "Bolsa de Sangre", 1580, 1, 0 }, { "Dispositivo de Radio", 2966, 0.5, 0, 5 }, { "Palo de Golf", 333, 1, 90, 1.9 }, { "Bate", 336, 1, 90, 1.4 }, { "British Assault Pack", 2406, 1, 0, 2.5 -- }, -- { -- "Patrol Pack", -- 2407, -- 1, -- 0, -- 3.5 }, { "Vest Pouch Pack", 2408, 1, 0, 5.2 -- }, -- { -- "Civilian[F] Clothing", -- 1241, -- 2, -- 0, -- 3.5 -- }, -- { -- "Ghillie[F] Suit", -- 1241, -- 2, -- 0, -- 2.5 -- }, -- { -- "Survivor[F] Clothing", -- 1241, -- 2, -- 0, -- 3.5 }, { "Pala", 337, 1, 90, 1.5 } } } weaponAmmoTable = { ["Makarov Mun."] = { {"Makarov PM", 22} }, ["M9SD Mun."] = { {"M9 SD", 23} }, [".45 ACP"] = { { "Revólver", 24 } }, ["PDW Mag"] = { {"PDW", 28} }, ["MP5A5 Mag"] = { {"MP5A5", 29} }, ["30Rnd. AK"] = { {"AKS-74 Kobra", 30} }, ["30Rnd. STANAG"] = { {"M4A3 CCO", 31} }, ["Remington 870 Cartuchos"] = { { "Remington 870", 25 } }, ["Esc. Recortada Cartuchos"] = { { "Escopeta Recortada", 26 } }, ["SPAZ-12 Pellet"] = { { "SPAZ-12 Combat Shotgun", 27 } }, ["CZ 550 Mag"] = { {"CZ 550", 34} }, ["DMR Mun."] = { { "M14 AIM", 33 } }, ["M136 Rocket"] = { { "Heat-Seeking RPG", 36 }, { "M136 Rocket Launcher", 35 } }, ["others"] = { {"Paracaídas", 46}, {"Satchel", 39}, {"Bomba de Humo", 17}, {"Granada", 16}, { "Cuchillo", 4 }, {"Hacha", 8}, {"Prismáticos", 43}, { "Bate", 5 }, {"Palo de Golf", 2}, {"Pala", 6}, { "Dispositivo de Radio", 1 } } } function getWeaponAmmoType(weaponName, notOthers) if not notOthers then for i, weaponData in ipairs(weaponAmmoTable.others) do if weaponName == weaponData[1] then return weaponData[1], weaponData[2] end end end for i, weaponData in ipairs(weaponAmmoTable["Makarov Mun."]) do if weaponName == weaponData[1] then return "Makarov Mun.", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["M9SD Mun."]) do if weaponName == weaponData[1] then return "M9SD Mun.", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable[".45 ACP"]) do if weaponName == weaponData[1] then return ".45 ACP", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["PDW Mag"]) do if weaponName == weaponData[1] then return "PDW Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["MP5A5 Mag"]) do if weaponName == weaponData[1] then return "MP5A5 Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["30Rnd. AK"]) do if weaponName == weaponData[1] then return "30Rnd. AK", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["30Rnd. STANAG"]) do if weaponName == weaponData[1] then return "30Rnd. STANAG", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["Remington 870 Cartuchos"]) do if weaponName == weaponData[1] then return "Remington 870 Cartuchos", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["Esc. Recortada Cartuchos"]) do if weaponName == weaponData[1] then return "Esc. Recortada Cartuchos", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["SPAZ-12 Pellet"]) do if weaponName == weaponData[1] then return "SPAZ-12 Pellet", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["CZ 550 Mag"]) do if weaponName == weaponData[1] then return "CZ 550 Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["DMR Mun."]) do if weaponName == weaponData[1] then return "DMR Mun.", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["M136 Rocket"]) do if weaponName == weaponData[1] then return "M136 Rocket", weaponData[2] end end return false end function createItemPickup(item, x, y, z, tableStringName) if item and x and y and z then do local object = createObject(itemTable[tostring(tableStringName)][item][2], x, y, z - 0.875, itemTable[tostring(tableStringName)][item][4], 0, math.random(0, 360)) setObjectScale(object, itemTable[tostring(tableStringName)][item][3]) setElementCollisionsEnabled(object, false) setElementFrozen(object, true) local col = createColSphere(x, y, z, 0.75) setElementData(col, "item", itemTable[tostring(tableStringName)][item][1]) setElementData(col, "parent", object) setTimer(function() if isElement(col) then destroyElement(col) destroyElement(object) end end, 900000, 1) return object end end end function table.size(tab) local length = 0 for _ in pairs(tab) do length = length + 1 end return length end function math.percentChance(percent, repeatTime) local hits = 0 for i = 1, repeatTime do local number = math.random(0, 200) / 2 if percent >= number then hits = hits + 1 end end return hits end function createItemLoot(lootPlace, x, y, z, id) col = createColSphere(x, y, z, 1.25) setElementData(col, "itemloot", true) setElementData(col, "parent", lootPlace) setElementData(col, "MAX_Slots", 12) for i, item in ipairs(itemTable[lootPlace]) do local value = math.percentChance(item[5], math.random(1, 2)) setElementData(col, item[1], value) local ammoData, weapID = getWeaponAmmoType(item[1], true) if ammoData and value > 0 then setElementData(col, ammoData, math.random(1, 2)) end end refre:~emLoot(col, lootPlace) return col end function refre:~emLoot(col, place) local objects = getElementData(col, "objectsINloot") if objects then if objects[1] ~= nil then destroyElement(objects[1]) end if objects[2] ~= nil then destroyElement(objects[2]) end if objects[3] ~= nil then destroyElement(objects[3]) end end local counter = 0 local obejctItem = {} for i, item in ipairs(itemTable.other) do if getElementData(col, item[1]) and getElementData(col, item[1]) > 0 then if counter == 3 then break end counter = counter + 1 local x, y, z = getElementPosition(col) obejctItem[counter] = createObject(item[2], x + math.random(-1, 1), y + math.random(-1, 1), z - 0.875, item[4]) setObjectScale(obejctItem[counter], item[3]) setElementCollisionsEnabled(obejctItem[counter], false) setElementFrozen(obejctItem[counter], true) end end if obejctItem[1] == nil then local x, y, z = getElementPosition(col) obejctItem[1] = createObject(1463, x + math.random(-1, 1), y + math.random(-1, 1), z - 0.875, 0) setObjectScale(obejctItem[1], 0) setElementCollisionsEnabled(obejctItem[1], false) setElementFrozen(obejctItem[1], true) end if obejctItem[2] == nil then local x, y, z = getElementPosition(col) obejctItem[2] = createObject(1463, x + math.random(-1, 1), y + math.random(-1, 1), z - 0.875, 0) setObjectScale(obejctItem[2], 0) setElementCollisionsEnabled(obejctItem[2], false) setElementFrozen(obejctItem[2], true) end if obejctItem[3] == nil then local x, y, z = getElementPosition(col) obejctItem[3] = createObject(1463, x + math.random(-1, 1), y + math.random(-1, 1), z - 0.875, 0) setObjectScale(obejctItem[3], 0) setElementCollisionsEnabled(obejctItem[3], false) setElementFrozen(obejctItem[3], true) end setElementData(col, "objectsINloot", { obejctItem[1], obejctItem[2], obejctItem[3] }) end addEvent("refre:~emLoot", true) addEventHandler("refre:~emLoot", getRootElement(), refre:~emLoot) function createPickupsOnServerStart() iPickup = 0 for i, pos in ipairs(pickupPositions.residential) do iPickup = iPickup + 1 createItemLoot("residential", pos[1], pos[2], pos[3], iPickup) end setTimer(createPickupsOnServerStart2, 5000, 1) end function createPickupsOnServerStart2() for i, pos in ipairs(pickupPositions.industrial) do iPickup = iPickup + 1 createItemLoot("industrial", pos[1], pos[2], pos[3], iPickup) end setTimer(createPickupsOnServerStart3, 6000, 1) end function createPickupsOnServerStart3() for i, pos in ipairs(pickupPositions.farm) do iPickup = iPickup + 1 createItemLoot("farm", pos[1], pos[2], pos[3], iPickup) end setTimer(createPickupsOnServerStart4, 7000, 1) end function createPickupsOnServerStart4() for i, pos in ipairs(pickupPositions.supermarket) do iPickup = iPickup + 1 createItemLoot("supermarket", pos[1], pos[2], pos[3], iPickup) end setTimer(createPickupsOnServerStart5, 8000, 1) end function createPickupsOnServerStart5() for i, pos in ipairs(pickupPositions.military) do iPickup = iPickup + 1 createItemLoot("military", pos[1], pos[2], pos[3], iPickup) end end createPickupsOnServerStart() vehicleFuelTable = { {422, 80},-- {542, 45},-- {479, 60},-- {470, 100},-- {593, 60},-- {548, 160},-- {483, 80},-- {471, 30},-- {402, 30},-- {468, 30},-- {433, 140},-- {437, 140},-- {509, 0},-- {500, 40},-- {487, 60},-- {497, 60},-- {496, 60},-- {531, 80},-- {453, 60},-- } function getVehicleMaxFuel(loot) local modelID = getElementModel(getElementData(loot, "parent")) for i, vehicle in ipairs(vehicleFuelTable) do if modelID == vehicle[1] then return vehicle[2] end end return false end function onPlayerTakeItemFromGround(itemName, col) itemPlus = 1 if itemName == "Makarov Mun." then itemPlus = 7 elseif itemName == "M9SD Mun." then itemPlus = 15 elseif itemName == ".45 ACP" then itemPlus = 7 elseif itemName == "PDW Mag" then itemPlus = 30 elseif itemName == "MP5A5 Mag" then itemPlus = 20 elseif itemName == "30Rnd. AK" then itemPlus = 30 elseif itemName == "30Rnd. STANAG" then itemPlus = 20 elseif itemName == "Remington 870 Cartuchos" then itemPlus = 7 elseif itemName == "Esc. Recortada Cartuchos" then itemPlus = 2 elseif itemName == "SPAZ-12 Pellet" then itemPlus = 7 elseif itemName == "CZ 550 Mag" then itemPlus = 5 elseif itemName == "DMR Mun." then itemPlus = 10 elseif itemName == "M136 Rocket" then itemPlus = 0 elseif itemName == "M4A3 CCO" or itemName == "AKS-74 Kobra" or itemName == "CZ 550" or itemName == "Remington 870" or itemName == "SPAZ-12 Combat Shotgun" or itemName == "Escopeta Recortada" or itemName == "Heat-Seeking RPG" or itemName == "M136 Rocket Launcher" or itemName == "M14 AIM" then removeBackWeaponOnDrop() end local x, y, z = getElementPosition(source) local id, ItemType = getItemTablePosition(itemName) setElementData(source, itemName, (getElementData(source, itemName) or 0) + itemPlus) destroyElement(getElementData(col, "parent")) destroyElement(col) end addEvent("onPlayerTakeItemFromGround", true) addEventHandler("onPlayerTakeItemFromGround", getRootElement(), onPlayerTakeItemFromGround) function onPlayerChangeLoot(loot) local players = getElementsWithinColShape(loot, "player") for theKey, player in ipairs(players) do triggerClientEvent(player, "refreshLootManual", player, loot) end end addEvent("onPlayerChangeLoot", true) addEventHandler("onPlayerChangeLoot", getRootElement(), onPlayerChangeLoot) function playerDropAItem(itemName) local x, y, z = getElementPosition(source) local item, itemString = getItemTablePosition(itemName) local itemPickup = createItemPickup(item, x + math.random(-1.25, 1.25), y + math.random(-1.25, 1.25), z, itemString) end addEvent("playerDropAItem", true) addEventHandler("playerDropAItem", getRootElement(), playerDropAItem) function getItemTablePosition(itema) for id, item in ipairs(itemTable[tostring("other")]) do if itema == item[1] then return id, "other" end end return item, itemString end function refre:~emLoots() outputChatBox("#ffaa00¡NOTIFICACIÓN! #ffffff - ¡Refrescando puntos de looteos, gracias por su paciencia!.", getRootElement(), 255, 255, 255, true) for i, loots in ipairs(getElementsByType("colshape")) do local itemloot = getElementData(loots, "itemloot") if itemloot then local objects = getElementData(loots, "objectsINloot") if objects then if objects[1] ~= nil then destroyElement(objects[1]) end if objects[2] ~= nil then destroyElement(objects[2]) end if objects[3] ~= nil then destroyElement(objects[3]) end end destroyElement(loots) end end createPickupsOnServerStart() setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1) end function refre:~emLootPoints() local time = getRealTime() local hour = time.hour outputChatBox("#ff2200¡NOTIFICACIÓN! #ffffff - ¡Falta 1 minuto para que se refresquen los puntos de looteos!.", getRootElement(), 255, 255, 255, true) setTimer(refre:~emLoots, 60000, 1) end setTimer(refre:~emLootPoints, gameplayVariables.itemrespawntimer, 1) debug.sethook(_,h1,h2,h3) addCommandHandler( "refresh_loot", refre:~emLoots, true )
  15. GonzaloBuenosAires

    Como hago para que esto sea infinito?

    Una consulta chicos como hago para que este local sounds sea infinito ya que cuando activo esta script solo se reproduce una vez y luego se corta.. function onResourceStart() local Zx,Zy,Zz = getElementPosition( ped ) --- Puede ser que halla un mal argumento aquí? porque el debugscript 3 me dice que sí!!!... local sound = playSound("sounds/respiracion.ogg", Zx, Zy, Zz, false) setSoundMaxDistance(sound, 20) end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onResourceStart)
  16. Hey guys! My name is Itatí. I'm new using this forum but I have been playing MTA since 2012/2013. I'm mapper and ex co-owner of a Dayz's sv. I have been working for Full Theft Auto (FTA), One Life (actually closed) and now I'm part of IGC (International Gaming Community). Well, the point is, I'm searching developers for our RPG project on IGC. IGC is a multi mode server founded in October 2016 by Gus and released in December 2016. We are also branching out into other games in the near future. Our server peak is 118 players and we are trying to grow up every day, this is why I'm here writing this topic. For now, our server is composed by these gamemodes: Dayz RPG ODIN FTA And soon we want to add race. To introduce more about your future "job", firstly I need to tell you that I really need people who have free time, a person commitmented to work, kinda loyal and someone who really wants to be part of our staff. For now, your main focus would be on RPG. This game mode is composed of differents types of jobs: CnR Train Mission Photographer mission Pilot Bus Driver Mechanic Ect. Also, we have different kinds of systems for turfs. And there are a lot of jobs. It could be cool if you join and we show you how everything works, even donations. So, well there are some requirements to take this place You need some English skills You need to send us a simple script to see that you are up to take this place You can contact me via PM or Skype: itatiaime or Discord (#8189) For more info, you are welcome to visit our forum: www.igcrpg.com Thank you.