Jump to content

FrancoNicolas

Members
  • Posts

    4
  • Joined

  • Last visited

Details

  • Location
    Argentina

Recent Profile Visitors

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

FrancoNicolas's Achievements

Vic

Vic (3/54)

1

Reputation

  1. Yo tengo el panel completo de Accesorios . Se abre con F3
  2. Hola gente ando buscando el script para que hace vibrar los parlantes para mta ya que solo se consigue para gta sa en el Tunning Mod y MDPM v.5 estoy dispuesto a comprarlo si alguien esta dispuesto a armar este scrip hableme al wsp 3412124388
  3. yo tengo todo completo perri con Subwoofers, woofers, medios, tweeters, drivers y drivers grafitados (con dibujos del wason y todo eso), cajones vacios y armados, neones de todos colores prenden cuando el server esta de noche y se puede poner muchas mas cosas lo armo a pedido al Panel-Accesorios hablame al 3412124388
  4. Hola gente tengo este resource funcionando el unico problema es que falta el Server.Lua porque cuando activo los 2 script se le va el sonido a los autos y el comando /turbo y /corte no funcionan les agradeceria si me pudieran dar una mano con esto!!... Este es el Client.lua del script SonidosBySantaFe estaria faltando el Server.lua de este script ENGINE_ENABLED = true ENGINE_VOLUME_MASTER = 0.15 -- mnożnik głośności ENGINE_VOLUME_THROTTLE_BOOST = 2.5 -- podgłośnienie dźwięków gdy wciskamy przepustnice (mnożnik) ENGINE_SOUND_FADE_DIMENSION = 6969 -- do jakeigo dima przenosic gdy dzwieki ni sa uzywane ENGINE_SOUND_DISTANCE = 80 DEBUG = false -- pozycje wybuchów z wydechów local als = { [411] = { {0.3, -2.5, -0.45}, {-0.3, -2.5, -0.45}, }, [451] = { {0, -2.5, -0.35}, }, } local streamedVehicles = {} local pi = math.pi function calculateGearRatios(vehicle, maxRPM, startRatio) local ratios = {} local handling = getVehicleHandling(vehicle) local gears = math.max(4, handling.numberOfGears) local maxVelocity = handling.maxVelocity local acc = handling.engineAcceleration local drag = handling.dragCoeff --local c = ((acc*maxVelocity) / maxRPM)*(maxRPM*0.00175) --local c = startRatio or ((acc / drag / maxVelocity) * pi) * 20 local curGear, curRatio = 1, 0 local mRPM = maxVelocity * 100 mRPM = ((maxRPM*gears)/mRPM)*maxRPM repeat if mRPM/curGear > maxRPM*curRatio then curRatio = curRatio+0.1/curGear else ratios[curGear] = curRatio*0.95 curGear = curGear+1 curRatio = 0 end until #ratios == gears ratios[0] = 0 ratios[-1] = ratios[1] --[[ ratios[0] = 0 for gear=1, gears do if gear > 1 then c = c - c*(gear*0.02) end ratios[gear] = (c / gear) end ratios[-1] = ratios[1] --]] return ratios end function updateEngines(dt) if not ENGINE_ENABLED then return end local myVehicle = getPedOccupiedVehicle(localPlayer) if myVehicle and getVehicleController(myVehicle) ~= localPlayer then myVehicle = false end local cx, cy, cz = getCameraMatrix() local now = getTickCount() -- update silników for vehicle, data in pairs(streamedVehicles) do if isElement(vehicle) then local engine = getElementData(vehicle, "vehicle:engine") if engine then local x, y, z = getElementPosition(vehicle) local rx, ry, rz = getElementRotation (vehicle) local distance = getDistanceBetweenPoints3D(x, y, z, cx, cy, cz) if getVehicleEngineState(vehicle) == true and distance < ENGINE_SOUND_DISTANCE*2 then local model = getElementModel(vehicle) local handling = getVehicleHandling(vehicle) local velocityVec = Vector3(getElementVelocity(vehicle)) local velocity = velocityVec.length * 180 local controller = getVehicleController(vehicle) local upgrades = getElementData(vehicle, "vehicle:upgrades") or {} -- dane o silniku engine.gear = engine.gear or 1 engine.turbo = upgrades.turbo engine.turbo_shifts = upgrades.turbo engine.volMult = engine.volMult or 1 engine.shiftUpRPM = engine.shiftUpRPM or engine.maxRPM*0.91 engine.shiftDownRPM = engine.shiftDownRPM or (engine.idleRPM+engine.maxRPM)/2.5 -- dodatkowe dane indywidualne dla kazdego klienta data.prevThrottle = data.throttle data.throttle = controller and (getPedControlState(controller, "accelerate")) if not data.reverse and velocity < 10 then data.reverse = controller and (getPedAnalogControlState(controller, "brake_reverse") > 0.5)or false elseif data.throttle and velocity < 50 then data.reverse = false end local isSkidding = controller and ( ( getPedControlState(controller, "accelerate") and getPedControlState(controller, "brake_reverse") or getPedControlState(controller, "handbrake") ) and velocity < 40 ) or false data.forceNeutral = isSkidding -- jeśli trzymamy w i s lub ręczny stojąc w miejscu odpalamy neutrala or (isLineOfSightClear(x, y, z, x, y, z-(getElementDistanceFromCentreOfMassToBaseOfModel(vehicle)*1.25), true, false, false, true, true, false, false, vehicle) and data.throttle) -- jeśli auto jest w powietrzu odpalamy neutrala or isElementFrozen(vehicle) or isElementInWater(vehicle) -- jeśli zamrożony albo w wodzie odpalamy neutrala or (( rx > 110 ) and ( rx < 250 )) -- jeśli pojazd jest obrócony odpalamy neutrala data.groundRPM = data.groundRPM or 0 data.throttlingRPM = data.throttlingRPM or 0 data.previousGear = data.previousGear or engine.gear data.gear = data.gear or 1 data.currentGear = data.currentGear or 1 data.changingGear = type(data.changingGear) == "number" and data.changingGear or false data.changingRPM = data.changingRPM or 0 data.changingTargetRPM = data.changingTargetRPM or 0 data.turboValue = data.turboValue or 0 data.prevTurboValue = data.turboValue data.als = upgrades.als or false data.effects = data.effects or {} local changedGear = false local gearRatios = calculateGearRatios(vehicle, engine.maxRPM, engine.startRatio or 1) local soundPack = engine.soundPack local wheel_rpm = velocity*100 local rpm = wheel_rpm -- rpmy silnika --if data.reverse then --data.currentGear = -1 --end -- liczenie rpm + neutral if getVehicleController(vehicle) then rpm = rpm*gearRatios[data.gear] else rpm = engine.idleRPM end if not data.forceNeutral then data.throttlingRPM = math.max(0, data.throttlingRPM - (engine.maxRPM*0.0012)*dt) else if data.throttle then data.throttlingRPM = data.throttlingRPM + (engine.maxRPM*0.0012)*dt else data.throttlingRPM = math.max(0, data.throttlingRPM - (engine.maxRPM*0.0012)*dt) end data.throttlingRPM = math.min(data.throttlingRPM, engine.maxRPM) end rpm = rpm+data.throttlingRPM -- płynna zmiana obrotów rpm = rpm+data.changingRPM if data.changingGear then local progress = (now-data.changingTargetRPM.time) / 300 -- czas płynnej zmiany obrotów data.changingRPM = interpolateBetween(data.changingTargetRPM.target, 0, 0, 0, 0, 0, progress, "InQuad") if progress >= 1 then data.changingGear = false data.changingGearDirection = false data.changingRPM = 0 data.changingTargetRPM = false end end if data.previousGear ~= data.currentGear then changedGear = (data.currentGear < data.previousGear) and "down" or "up" data.changingGear = data.currentGear data.changingGearDirection = changedGear local nextrpm = engine.maxRPM if gearRatios[data.changingGear] then nextrpm = wheel_rpm*gearRatios[data.changingGear] end data.changingRPM = rpm-nextrpm data.changingTargetRPM = {target=data.changingRPM, time=now} data.gear = data.currentGear data.turboValue = 0 end -- aktualizacja poprzedniego biegu data.previousGear = data.currentGear -- zmiana biegów if not data.changingGear and data.throttlingRPM == 0 and wheel_rpm > 200 then if rpm > engine.shiftUpRPM and data.throttle then data.currentGear = math.min(data.currentGear+1, math.max(4, getVehicleHandling(vehicle).numberOfGears)) elseif rpm < engine.shiftDownRPM then data.currentGear = math.max(1, data.currentGear-1) end end -- limitowanie rpm if rpm < engine.idleRPM then rpm = engine.idleRPM+math.random(0,100) elseif rpm > engine.maxRPM then rpm = engine.maxRPM-math.random(0,100) data.wasRevLimited = true end -- ALS if data.wasRevLimited then -- jeśli gazujemy if (data.rpm or 0) < engine.maxRPM*0.98 then data.wasRevLimited = false if data.als then data.activeALS = true end end else if changedGear == "up" and math.random(1, 4) == 1 then -- losowo przy zmianie biegów if data.als then data.activeALS = true end elseif data.prevThrottle and not data.throttle and data.rpm > engine.maxRPM*0.5 and math.random(1, 2) == 1 then if data.als then data.activeALS = true end end end -- zapisujemy rpmy data.rpm = rpm -- turbo if engine.turbo then if data.throttle and rpm > engine.maxRPM/2 then data.turboValue = math.min(0.5, data.turboValue+ 0.0008*dt) else data.turboValue = math.max(0, data.turboValue - 0.0005*dt) end end -- dźwięki local svol = {} if not data.sounds then data.sounds = {} data.sounds[1] = playSound3D("sounds/"..soundPack.."/1.wav", x, y, z, true) data.sounds[2] = playSound3D("sounds/"..soundPack.."/2.wav", x, y, z, true) data.sounds[3] = playSound3D("sounds/"..soundPack.."/3.wav", x, y, z, true) data.sounds[4] = playSound3D("sounds/turbo.wav", x, y, z, true) for i=1, 3 do setSoundEffectEnabled(data.sounds, "compressor", true) end else -- silnik local minMidProgress = math.min(1, (rpm+500)/(engine.maxRPM/2)) local maxMidProgress = minMidProgress - ((engine.maxRPM/2)/rpm) local highProgress = (rpm-(engine.maxRPM/2.2))/(engine.maxRPM/2.2) svol[1] = 1 - 2^(rpm/(engine.idleRPM*1.5) - 2) svol[2] = minMidProgress < 1 and interpolateBetween(0, 0, 0, 0.8, 0, 0, minMidProgress, "InQuad") or interpolateBetween(0.8, 0, 0, 0, 0, 0, maxMidProgress, "OutQuad") svol[3] = interpolateBetween(0, 0, 0, 1, 0, 0, highProgress, "OutQuad") local vol = svol[1] vol = vol*ENGINE_VOLUME_MASTER*engine.volMult if data.throttle then vol = vol*ENGINE_VOLUME_THROTTLE_BOOST end setSoundVolume(data.sounds[1], math.max(0, vol)) setSoundSpeed(data.sounds[2], rpm/(engine.idleRPM*2)) local vol = svol[2] vol = vol*ENGINE_VOLUME_MASTER*engine.volMult if data.throttle then vol = vol*ENGINE_VOLUME_THROTTLE_BOOST end if data.changingGearDirection == "up" and vol > 0.1 then vol = vol/2 end setSoundVolume(data.sounds[2], math.max(0, vol)) setSoundSpeed(data.sounds[2], rpm/(engine.maxRPM*0.6)) local vol = svol[3] vol = vol*ENGINE_VOLUME_MASTER*engine.volMult if data.throttle then vol = vol*ENGINE_VOLUME_THROTTLE_BOOST end if data.changingGearDirection == "up" and vol > 0.1 then vol = vol/2 end setSoundVolume(data.sounds[3], math.max(0, vol)) setSoundSpeed(data.sounds[3], rpm/(engine.maxRPM*0.925)) svol[4] = data.turboValue local vol = svol[4]*ENGINE_VOLUME_MASTER if data.throttle then vol = vol*ENGINE_VOLUME_THROTTLE_BOOST end setSoundVolume(data.sounds[4], math.max(0, vol*0.9)) setSoundSpeed(data.sounds[4], svol[4]+0.8) if ((changedGear == "up" and data.prevTurboValue > 0.2) or (not data.throttle and data.prevTurboValue > 0.2)) and engine.turbo_shifts then local sound = 1 if changedGear then sound = changedGear and changedGear == "up" and tostring(2) or tostring(1) end data.sounds[5] = playSound3D("sounds/turbo_shift"..sound..".wav", x, y, z, false) setSoundVolume(data.sounds[5], 0.6*ENGINE_VOLUME_MASTER) if not data.throttle then data.turboValue = 0 end end if data.activeALS and not isElement(data.sounds[6]) then data.sounds[6] = playSound3D("sounds/als"..math.random(1, 13)..".wav", x, y, z, false) setSoundVolume(data.sounds[6], 0.8) setSoundSpeed(data.sounds[6], 1.1) --setSoundEffectEnabled(data.sounds[6], "reverb", true) setSoundEffectEnabled(data.sounds[6], "echo", true) setSoundEffectEnabled(data.sounds[6], "compressor", true) for _, offset in ipairs((als[model] or {})) do local ef = createEffect("gunflash", x, y, z, 0, 0, 0) setEffectSpeed(ef, 0.25) setEffectDensity(ef, 2) data.effects[ef] = {offset[1], offset[2], offset[3], 90, 0, 180} setTimer(function() data.effects[ef] = nil destroyElement(ef) end, 1000, 1) end data.activeALS = false end for i=1, #data.sounds do local v = data.sounds if isElement(v) then setElementPosition(v, x, y, z) setElementDimension(v, (svol or 1) > 0 and getElementDimension(vehicle) or ENGINE_SOUND_FADE_DIMENSION) if vehicle == getPedOccupiedVehicle(localPlayer) then setSoundMaxDistance(v, ENGINE_SOUND_DISTANCE*2) else setSoundMaxDistance(v, ENGINE_SOUND_DISTANCE) end end end local rx, ry, rz = getElementRotation(vehicle) for ef, offset in pairs(data.effects) do if isElement(ef) then local ox, oy, oz = getPositionFromElementOffset(vehicle, offset[1], offset[2], offset[3]) setElementPosition(ef, ox, oy, oz) setElementRotation(ef, offset[4]-rx, offset[5]-ry, offset[6]-rz) end end end -- prowadzimy pojazd: możemy go aktualizować if DEBUG and vehicle == myVehicle then dxDrawText("Silnik\nTyp: "..tostring(engine.name).."\nRPM: "..tostring(rpm).."\nVol1: "..tostring(svol[1]).."\nVol2: "..tostring(svol[2]).."\nVol3: "..tostring(svol[3]).."\nTurboVol: "..tostring(svol[4]), 300, 300) local t = "Biegi\nBieg: "..tostring(data.gear).."/"..tostring(#gearRatios).."\n" for k, v in ipairs(gearRatios) do t = t.."Ratio "..tostring(k)..": "..v.."\n" end dxDrawText(t, 300, 440) end else if data.sounds then for k, v in ipairs(data.sounds) do if isElement(v) then destroyElement(v) end end data.sounds = false end data.rpm = 0 data.gear = 1 data.previousGear = 0 end end end end end addEventHandler("onClientPreRender", root, updateEngines) function streamInVehicle(vehicle) if not streamedVehicles[vehicle] then if isElement(vehicle) and getElementData(vehicle, "vehicle:engine") then streamedVehicles[vehicle] = {} addEventHandler("onClientElementDestroy", vehicle, function() streamOutVehicle(source) end) end end end function streamOutVehicle(vehicle) if streamedVehicles[vehicle] then if streamedVehicles[vehicle].sounds then for k, v in ipairs(streamedVehicles[vehicle].sounds) do if isElement(v) then destroyElement(v) end end end streamedVehicles[vehicle] = nil end end function toggleGTAEngineSounds(bool) setWorldSoundEnabled(7, bool) setWorldSoundEnabled(8, bool) setWorldSoundEnabled(9, bool) setWorldSoundEnabled(10, bool) setWorldSoundEnabled(11, bool) setWorldSoundEnabled(12, bool) setWorldSoundEnabled(13, bool) setWorldSoundEnabled(14, bool) setWorldSoundEnabled(15, bool) setWorldSoundEnabled(16, bool) setWorldSoundEnabled(40, bool) end function getGTARPM(vehicle) if (vehicle) then local velocityVec = Vector3(getElementVelocity(vehicle)) local velocity = velocityVec.length * 180 if (isVehicleOnGround(vehicle)) then if (getVehicleEngineState(vehicle) == true) then if(getVehicleCurrentGear(vehicle) > 0) then vehicleRPM = math.floor(((velocity/getVehicleCurrentGear(vehicle))*150) + 0.5) if (vehicleRPM < 650) then vehicleRPM = math.random(650, 750) elseif (vehicleRPM >= 8000) then vehicleRPM = 8000 end else vehicleRPM = math.floor(((velocity/1)*220) + 0.5) if (vehicleRPM < 650) then vehicleRPM = math.random(650, 750) elseif (vehicleRPM >= 8000) then vehicleRPM = 8000 end end else vehicleRPM = 0 end else if (getVehicleEngineState(vehicle) == true) then vehicleRPM = vehicleRPM - 150 if (vehicleRPM < 650) then vehicleRPM = math.random(650, 750) elseif (vehicleRPM >= 8000) then vehicleRPM = 8000 end else vehicleRPM = 0 end end return tonumber(vehicleRPM) else return 0 end end -- EKSPORT function getVehicleRPM(vehicle) if streamedVehicles[vehicle] then return streamedVehicles[vehicle].rpm or getGTARPM(vehicle) else return getGTARPM(vehicle) end end function getVehicleGear(vehicle) if streamedVehicles[vehicle] then return streamedVehicles[vehicle].gear or getVehicleCurrentGear(vehicle) else return getVehicleCurrentGear(vehicle) end end function toggleEngines(bool) ENGINE_ENABLED = bool toggleGTAEngineSounds(not ENGINE_ENABLED) if bool == true then -- wczytanie zestreamowanych aut w pobliżu for k, v in ipairs(getElementsByType("vehicle", root, true)) do streamInVehicle(v) end else for vehicle, data in pairs(streamedVehicles) do streamOutVehicle(vehicle) end streamedVehicles = {} end end -- eventy addEvent("onClientRefreshEngineSounds", true) addEventHandler("onClientRefreshEngineSounds", root, function() for _, v in pairs(streamedVehicles) do for _, sound in pairs(v.sounds or {}) do if isElement(sound) then stopSound(sound) end end v.sounds = nil end end) addEventHandler("onClientElementStreamIn", root, function() if getElementType(source) == "vehicle" then streamInVehicle(source) end end ) addEventHandler("onClientElementStreamOut", root, function() streamOutVehicle(source) end ) addEventHandler("onClientVehicleEnter", root, function(player, seat) if seat == 0 then setTimer(streamInVehicle, 200, 1, source) end end) addEventHandler("onClientResourceStart", resourceRoot, function() toggleEngines(true) end) addEventHandler("onClientResourceStop", resourceRoot, function() for k, v in pairs(streamedVehicles) do if v.sounds and #v.sounds > 0 then for _, sound in pairs(v.sounds) do if isElement(sound) then destroyElement(sound) end end end end toggleGTAEngineSounds(true) end) function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z -- Return the transformed point end
  5. Hola gente tengo este panel F4 para poner musica en el mta y queria saber como es la linea que falta para que las canciones se repitan porque es el unico "boton" que falta creo porque nose nada de scriptear y queria saber tambien si se le puede poner algun comando o como se llame en lenguaje de script para agregarle mas bass al volumen osea mas bajo graves gracias!!! --//You can edit these defaultlinks = {} defaultlinks[1] = {"", "Edit these from client.lua file"} defaultlinks[2] = {"", ""} defaultlinks[3] = {"", ""} defaultlinks[4] = {"", ""} defaultlinks[5] = {"", ""} defaultlinks[6] = {"", ""} defaultlinks[7] = {"", ""} defaultlinks[8] = {"", ""} openKey = "f4" maxdistance = 20000 defaultdistance = 50 --//Dont edit these! triggerServerEvent ("clientIsReady", getRootElement()) width, height = guiGetScreenSize () speakers = {} linkTable = {} selectedURLName = "N/A" function startScript () --//Create main GUI mainWindow = guiCreateWindow ((width/2) - (500/2), (height/2) - (417/2), 500, 417, "Speaker system", false) guiWindowSetSizable (mainWindow, false) --Buttons and event handlers closeButton = guiCreateButton (450, 25, 40, 35, "Close", false, mainWindow) addEventHandler ("onClientGUIClick", closeButton, closeGUI) createButton = guiCreateButton (30, 87, 80, 40, "Create speaker", false, mainWindow) addEventHandler ("onClientGUIClick", createButton, onCreateSpeakerKlick) destroyButton = guiCreateButton (130, 87, 80, 40, "Destroy speaker", false, mainWindow) addEventHandler ("onClientGUIClick", destroyButton, onDestroySpeakerClick) myLinksButton = guiCreateButton (420, 114, 70, 35, "My links", false, mainWindow) addEventHandler ("onClientGUIClick", myLinksButton, onMyLinksButtonClick) guiSetEnabled (myLinksButton, false) --URL Stuff guiCreateLabel (90, 23, 100, 30, "Radio URL:", false, mainWindow) urlEdit = guiCreateEdit (22, 44, 200, 35, "", false, mainWindow) --50 --Max distance guiCreateLabel (259, 23, 200, 30, "Max distance (1 - " .. tostring(maxdistance) .. "):", false, mainWindow) distanceEdit = guiCreateEdit (290, 44, 50, 35, tostring(defaultdistance), false, mainWindow) -- nowPlayingText = guiCreateLabel (34, 133, 70, 30, "Now playing:", false, mainWindow) guiSetVisible (nowPlayingText, false) nowPlayingEditLabel = guiCreateLabel (112, 133, 288, 30, "-", false, mainWindow) guiSetVisible (nowPlayingEditLabel, false) guiCreateLabel (25, 145, 600, 30, "_______________________________________________________________", false, mainWindow) --Links --Edit 1 edit1 = guiCreateEdit (105, 168, 313, 23, defaultlinks[1][2], false, mainWindow) guiCreateLabel (30, 170, 200, 30, defaultlinks[1][1], false, mainWindow) guiEditSetReadOnly (edit1, true) defaultUseButton1 = guiCreateButton (423, 168, 40, 23, "use", false, mainWindow) --Edit 2 edit2 = guiCreateEdit (105, 198, 313, 23, defaultlinks[2][2], false, mainWindow) guiCreateLabel (30, 200, 200, 30, defaultlinks[2][1], false, mainWindow) guiEditSetReadOnly (edit2, true) defaultUseButton2 = guiCreateButton (423, 198, 40, 23, "use", false, mainWindow) --Edit 3 edit3 = guiCreateEdit (105, 228, 313, 23, defaultlinks[3][2], false, mainWindow) guiCreateLabel (30, 230, 200, 30, defaultlinks[3][1], false, mainWindow) guiEditSetReadOnly (edit3, true) defaultUseButton3 = guiCreateButton (423, 228, 40, 23, "use", false, mainWindow) --Edit 4 edit4 = guiCreateEdit (105, 258, 313, 23, defaultlinks[4][2], false, mainWindow) guiCreateLabel (30, 260, 200, 30, defaultlinks[4][1], false, mainWindow) guiEditSetReadOnly (edit4, true) defaultUseButton4 = guiCreateButton (423, 258, 40, 23, "use", false, mainWindow) --Edit 5 edit5 = guiCreateEdit (105, 288, 313, 23, defaultlinks[5][2], false, mainWindow) guiCreateLabel (30, 290, 200, 30, defaultlinks[5][1], false, mainWindow) guiEditSetReadOnly (edit5, true) defaultUseButton5 = guiCreateButton (423, 288, 40, 23, "use", false, mainWindow) --Edit 6 edit6 = guiCreateEdit (105, 318, 313, 23, defaultlinks[6][2], false, mainWindow) guiCreateLabel (30, 320, 200, 30, defaultlinks[6][1], false, mainWindow) guiEditSetReadOnly (edit6, true) defaultUseButton6 = guiCreateButton (423, 318, 40, 23, "use", false, mainWindow) --Edit 7 edit7 = guiCreateEdit (105, 348, 313, 23, defaultlinks[7][2], false, mainWindow) guiCreateLabel (30, 350, 200, 30, defaultlinks[7][1], false, mainWindow) guiEditSetReadOnly (edit7, true) defaultUseButton7 = guiCreateButton (423, 348, 40, 23, "use", false, mainWindow) --Edit 8 edit8 = guiCreateEdit (105, 378, 313, 23, defaultlinks[8][2], false, mainWindow) guiCreateLabel (30, 380, 200, 30, defaultlinks[8][1], false, mainWindow) guiEditSetReadOnly (edit8, true) defaultUseButton8 = guiCreateButton (423, 378, 40, 23, "use", false, mainWindow) --//-- guiSetVisible (mainWindow, false) --Add some events addEvent ("speakerStuffFromServer", true) addEventHandler ("speakerStuffFromServer", getRootElement(), createSpeaker) addEvent ("destroySpeaker", true) addEventHandler ("destroySpeaker", getRootElement(), destroySpeaker) addEvent ("onPQuit", true) addEventHandler ("onPQuit", getRootElement(), onPlayerQuit) addEvent ("createMyLinksGUI", true) addEventHandler ("createMyLinksGUI", getRootElement(), createMyLinksGUI) addEvent ("onPlayerLogout", true) addEventHandler ("onPlayerLogout", getRootElement(), onPlayerLogout) end addEventHandler ("onClientResourceStart", getResourceRootElement(), startScript) function openOrCloseGUI () if guiGetVisible (mainWindow) then guiSetVisible (mainWindow, false) guiSetVisible (linkWindow, false) showCursor (false) else guiSetVisible (mainWindow, true) showCursor (true) end end addCommandHandler ("speaker", openOrCloseGUI) bindKey (openKey, "down", openOrCloseGUI) function closeGUI () if source == closeButton then guiSetVisible (mainWindow, false) showCursor (false) end end function createMyLinksGUI (tableoflinks) linkTable = tableoflinks guiSetEnabled (myLinksButton, true) --//Create my links window linkWindow = guiCreateWindow ((width/2) - (483/2), (height/2) - (375/2), 483, 375, "My links", false) guiWindowSetSizable (linkWindow, false) guiSetAlpha (linkWindow, 0.8) guiSetVisible (linkWindow, false) saveLinksButton = guiCreateButton (428, 25, 40, 35, "Close", false, linkWindow) guiCreateLabel (63, 48, 100, 30, "Name", false, linkWindow) guiCreateLabel (260, 48, 100, 30, "Link", false, linkWindow) --Link pad 1 linkname1 = guiCreateEdit (17, 70, 125, 23, linkTable[1]["name"], false, linkWindow) linkedit1 = guiCreateEdit (145, 70, 253, 23, linkTable[1]["link"], false, linkWindow) linkUseButton1 = guiCreateButton (428, 70, 40, 23, "use", false, linkWindow) removeButton1 = guiCreateButton (400.5, 70, 23, 23, "X", false, linkWindow) --Link pad 2 linkname2 = guiCreateEdit (17, 100, 125, 23, linkTable[2]["name"], false, linkWindow) linkedit2 = guiCreateEdit (145, 100, 253, 23, linkTable[2]["link"], false, linkWindow) linkUseButton2 = guiCreateButton (428, 100, 40, 23, "use", false, linkWindow) removeButton2 = guiCreateButton (400.5, 100, 23, 23, "X", false, linkWindow) --Link pad 3 linkname3 = guiCreateEdit (17, 130, 125, 23, linkTable[3]["name"], false, linkWindow) linkedit3 = guiCreateEdit (145, 130, 253, 23, linkTable[3]["link"], false, linkWindow) linkUseButton3 = guiCreateButton (428, 130, 40, 23, "use", false, linkWindow) removeButton3 = guiCreateButton (400.5, 130, 23, 23, "X", false, linkWindow) --Link pad 4 linkname4 = guiCreateEdit (17, 160, 125, 23, linkTable[4]["name"], false, linkWindow) linkedit4 = guiCreateEdit (145, 160, 253, 23, linkTable[4]["link"], false, linkWindow) linkUseButton4 = guiCreateButton (428, 160, 40, 23, "use", false, linkWindow) removeButton4 = guiCreateButton (400.5, 160, 23, 23, "X", false, linkWindow) --Link pad 5 linkname5 = guiCreateEdit (17, 190, 125, 23, linkTable[5]["name"], false, linkWindow) linkedit5 = guiCreateEdit (145, 190, 253, 23, linkTable[5]["link"], false, linkWindow) linkUseButton5 = guiCreateButton (428, 190, 40, 23, "use", false, linkWindow) removeButton5 = guiCreateButton (400.5, 190, 23, 23, "X", false, linkWindow) --Link pad 6 linkname6 = guiCreateEdit (17, 220, 125, 23, linkTable[6]["name"], false, linkWindow) linkedit6 = guiCreateEdit (145, 220, 253, 23, linkTable[6]["link"], false, linkWindow) linkUseButton6 = guiCreateButton (428, 220, 40, 23, "use", false, linkWindow) removeButton6 = guiCreateButton (400.5, 220, 23, 23, "X", false, linkWindow) --Link pad 7 linkname7 = guiCreateEdit (17, 250, 125, 23, linkTable[7]["name"], false, linkWindow) linkedit7 = guiCreateEdit (145, 250, 253, 23, linkTable[7]["link"], false, linkWindow) linkUseButton7 = guiCreateButton (428, 250, 40, 23, "use", false, linkWindow) removeButton7 = guiCreateButton (400.5, 250, 23, 23, "X", false, linkWindow) --Link pa d8 linkname8 = guiCreateEdit (17, 280, 125, 23, linkTable[8]["name"], false, linkWindow) linkedit8 = guiCreateEdit (145, 280, 253, 23, linkTable[8]["link"], false, linkWindow) linkUseButton8 = guiCreateButton (428, 280, 40, 23, "use", false, linkWindow) removeButton8 = guiCreateButton (400.5, 280, 23, 23, "X", false, linkWindow) --Link pad 9 linkname9 = guiCreateEdit (17, 310, 125, 23, linkTable[9]["name"], false, linkWindow) linkedit9 = guiCreateEdit (145, 310, 253, 23, linkTable[9]["link"], false, linkWindow) linkUseButton9 = guiCreateButton (428, 310, 40, 23, "use", false, linkWindow) removeButton9 = guiCreateButton (400.5, 310, 23, 23, "X", false, linkWindow) --Link pad 10 linkname10 = guiCreateEdit (17, 340, 125, 23, linkTable[10]["name"], false, linkWindow) linkedit10 = guiCreateEdit (145, 340, 253, 23, linkTable[10]["link"], false, linkWindow) linkUseButton10 = guiCreateButton (428, 340, 40, 23, "use", false, linkWindow) removeButton10 = guiCreateButton (400.5, 340, 23, 23, "X", false, linkWindow) end function onMyLinksButtonClick () if source == myLinksButton then guiSetVisible (linkWindow, true) guiMoveToBack (mainWindow) end end function closeLinkWindow () if source == closeLinkWindowButton then guiSetVisible (linkWindow, false) reloadLinkPads () end end function onCreateSpeakerKlick () if source == createButton then if speakers[player] then outputChatBox ("You already have a speaker!", 255, 0, 0) else local guiText = guiGetText (urlEdit) if guiText == "" then outputChatBox ("You need to type radio url!", 255, 0, 0) else local distance = guiGetText (distanceEdit) distance = tonumber (distance) if type (distance) ~= "number" then outputChatBox ("Distance have to be number!", 255, 0, 0) else if distance > maxdistance then outputChatBox ("Distance have to be between 1 - " .. maxdistance .. "!", 255, 0, 0) return false else if distance < 1 then outputChatBox ("Distance have to be between 1 - " .. maxdistance .. "!", 255, 0, 0) return false else player = localPlayer local url = guiGetText (urlEdit) local distance = guiGetText (distanceEdit) triggerServerEvent ("onSpeakerCreate", getRootElement(), player, url, distance) end end end end end end end function onDestroySpeakerClick() if source == destroyButton then if not speakers[player] then outputChatBox ("You dont have a speaker!", 255, 0, 0) else triggerServerEvent ("onSpeakerDestroy", getRootElement(), player) end end end function createSpeaker (player, url, distance, x, y, z, rotation) local url = tostring (url) speakers[player] = {} speakers[player]["sound"] = playSound3D (url, x, y, z) setSoundMaxDistance (speakers[player]["sound"], distance) if isPedInVehicle(player) then attachElements(speakers[player]["sound"], getPedOccupiedVehicle (player)) speakers[player]["invehicle"] = "true" else speakers[player]["object"] = createObject (2229, x, y, z, 0, 0, rotation) speakers[player]["invehicle"] = "false" end if string.find (selectedURLName, ":") then a, b = string.find (selectedURLName, ":") selectedURLName = tostring (string.sub(selectedURLName, 0, b - 1)) end guiSetText (nowPlayingEditLabel, selectedURLName) guiSetVisible (nowPlayingText, true) guiSetVisible (nowPlayingEditLabel, true) end function destroySpeaker (player) destroyElement (speakers[player]["sound"]) if speakers[player]["invehicle"] == "false" then destroyElement (speakers[player]["object"]) end selectedURLName = "Own URL" speakers[player] = false guiSetText (nowPlayingEditLabel, "-") guiSetVisible (nowPlayingText, false) guiSetVisible (nowPlayingEditLabel, false) end function onPlayerQuit (player) if speakers[player] then destroyElement (speakers[player]["sound"]) if speakers[player]["invehicle"] == "false" then destroyElement (speakers[player]["object"]) end speakers[player] = false end end function onDefaultUseClick () if source == defaultUseButton1 then guiSetText (urlEdit, defaultlinks[1][2]) selectedURLName = defaultlinks[1][1] elseif source == defaultUseButton2 then guiSetText (urlEdit, defaultlinks[2][2]) selectedURLName = defaultlinks[2][1] elseif source == defaultUseButton3 then guiSetText (urlEdit, defaultlinks[3][2]) selectedURLName = defaultlinks[3][1] elseif source == defaultUseButton4 then guiSetText (urlEdit, defaultlinks[4][2]) selectedURLName = defaultlinks[4][1] elseif source == defaultUseButton5 then guiSetText (urlEdit, defaultlinks[5][2]) selectedURLName = defaultlinks[5][1] elseif source == defaultUseButton6 then guiSetText (urlEdit, defaultlinks[6][2]) selectedURLName = defaultlinks[6][1] elseif source == defaultUseButton7 then guiSetText (urlEdit, defaultlinks[7][2]) selectedURLName = defaultlinks[7][1] elseif source == defaultUseButton8 then guiSetText (urlEdit, defaultlinks[8][2]) selectedURLName = defaultlinks[8][1] end end addEventHandler ("onClientGUIClick", getRootElement(), onDefaultUseClick) function saveLinks () if source == saveLinksButton or source == linkUseButton1 or source == linkUseButton2 or source == linkUseButton3 or source == linkUseButton4 or source == linkUseButton5 or source == linkUseButton6 or source == linkUseButton7 or source == linkUseButton8 or source == linkUseButton9 or source == linkUseButton10 then linkTable = {{}, {}, {}, {}, {}, {}, {}, {}, {}, {}} linkTable[1]["name"] = guiGetText (linkname1) linkTable[1]["link"] = guiGetText (linkedit1) linkTable[2]["name"] = guiGetText (linkname2) linkTable[2]["link"] = guiGetText (linkedit2) linkTable[3]["name"] = guiGetText (linkname3) linkTable[3]["link"] = guiGetText (linkedit3) linkTable[4]["name"] = guiGetText (linkname4) linkTable[4]["link"] = guiGetText (linkedit4) linkTable[5]["name"] = guiGetText (linkname5) linkTable[5]["link"] = guiGetText (linkedit5) linkTable[6]["name"] = guiGetText (linkname6) linkTable[6]["link"] = guiGetText (linkedit6) linkTable[7]["name"] = guiGetText (linkname7) linkTable[7]["link"] = guiGetText (linkedit7) linkTable[8]["name"] = guiGetText (linkname8) linkTable[8]["link"] = guiGetText (linkedit8) linkTable[9]["name"] = guiGetText (linkname9) linkTable[9]["link"] = guiGetText (linkedit9) linkTable[10]["name"] = guiGetText (linkname10) linkTable[10]["link"] = guiGetText (linkedit10) local player = localPlayer triggerServerEvent ("saveLinks", getRootElement(), player, linkTable) guiSetVisible (linkWindow, false) end end addEventHandler ("onClientGUIClick", getRootElement(), saveLinks) function onMyLinkUse () if source == linkUseButton1 then guiSetText (urlEdit, guiGetText (linkedit1)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname1) elseif source == linkUseButton2 then guiSetText (urlEdit, guiGetText (linkedit2)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname2) elseif source == linkUseButton3 then guiSetText (urlEdit, guiGetText (linkedit3)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname3) elseif source == linkUseButton4 then guiSetText (urlEdit, guiGetText (linkedit4)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname4) elseif source == linkUseButton5 then guiSetText (urlEdit, guiGetText (linkedit5)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname5) elseif source == linkUseButton6 then guiSetText (urlEdit, guiGetText (linkedit6)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname6) elseif source == linkUseButton7 then guiSetText (urlEdit, guiGetText (linkedit7)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname7) elseif source == linkUseButton8 then guiSetText (urlEdit, guiGetText (linkedit8)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname8) elseif source == linkUseButton9 then guiSetText (urlEdit, guiGetText (linkedit9)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname9) elseif source == linkUseButton10 then guiSetText (urlEdit, guiGetText (linkedit10)) guiSetVisible (linkWindow, false) selectedURLName = guiGetText (linkname10) end end addEventHandler ("onClientGUIClick", getRootElement(), onMyLinkUse) function onMyLinkRemoveButtonClick () if source == removeButton1 then guiSetText (linkname1, "") guiSetText (linkedit1, "") elseif source == removeButton2 then guiSetText (linkname2, "") guiSetText (linkedit2, "") elseif source == removeButton3 then guiSetText (linkname3, "") guiSetText (linkedit3, "") elseif source == removeButton4 then guiSetText (linkname4, "") guiSetText (linkedit4, "") elseif source == removeButton5 then guiSetText (linkname5, "") guiSetText (linkedit5, "") elseif source == removeButton6 then guiSetText (linkname6, "") guiSetText (linkedit6, "") elseif source == removeButton7 then guiSetText (linkname7, "") guiSetText (linkedit7, "") elseif source == removeButton8 then guiSetText (linkname8, "") guiSetText (linkedit8, "") elseif source == removeButton9 then guiSetText (linkname9, "") guiSetText (linkedit9, "") elseif source == removeButton10 then guiSetText (linkname10, "") guiSetText (linkedit10, "") end end addEventHandler ("onClientGUIClick", getRootElement(), onMyLinkRemoveButtonClick) function onPlayerLogout () guiSetEnabled (myLinksButton, false) if guiGetVisible (linkWindow) then guiSetVisible (linkWindow, false) end end
  6. Compre un panel de accesorios el de los parlantes volantes amplificadores todo eso a un brazilero me dijo que estaba descomilado pero el archivo template solo guarda los accesorios para todos los jugadores osea yo hago un car audio lo guardo y otro jugador lo puede ver en su panel y usarlo ayudenme no encuentro solocion y si el brazuca jamas volvio a responder Jajaj hdp
×
×
  • Create New...