Jump to content

Neffax

Members
  • Posts

    30
  • Joined

  • Last visited

Posts posted by Neffax

  1.  
     
    I have problm with voice script, the icon voice doesn't visible to localplayer, and i need how to make it when a player is talking that only the closest players can hear it
     
     
     
     
     
     
    SETTINGS_REFRESH = 2000 -- Interval in which team channels are refreshed, in MS.
    bShowChatIcons = true
     
    voicePlayers = {}
    globalMuted = {}
    local range = 5
     
    ---
    addEventHandler ( "onClientPlayerVoiceStart", root,
    if (source and isElement(source) and getElementType(source) == "player") and localPlayer ~= source then
     
        local sX, sY, sZ = getElementPosition(localPlayer)
     
        local rX, rY, rZ = getElementPosition(source)
     
        local distance = getDistanceBetweenPoints3D(sX, sY, sZ, rX, rY, rZ)
     
        if distance <= range then
     
            voicePlayers[source] = true
     
        else
     
            cancelEvent()--This was the :~
     
        end
     
    end
     
    end
    )
     
    addEventHandler ( "onClientPlayerVoiceStop", root,
        function()
            voicePlayers[source] = nil
        end
    )
     
    addEventHandler ( "onClientPlayerQuit", root,
        function()
            voicePlayers[source] = nil
        end
    )
    ---
     
    function checkValidPlayer ( player )
        if not isElement(player) or getElementType(player) ~= "player" then
            outputDebugString ( "is/setPlayerVoiceMuted: Bad 'player' argument", 2 )
            return false
        end
        return true
    end
     
    ---
     
    setTimer (
        function()
            bShowChatIcons = getElementData ( resourceRoot, "show_chat_icon", show_chat_icon )
        end,
    SETTINGS_REFRESH, 0 )
  2. addEvent("fadeCameraOnSpawn", true)
     
    addEventHandler("fadeCameraOnSpawn", getLocalPlayer(),
     
        function()
     
            start = getTickCount()
     
        end
     
    )
     
    local bRespawn = nil
     
     function showRespawnButton(victimDropItem)
     
        local width, height = 201,54
     
        local scrWidth, scrHeight = guiGetScreenSize()
     
        local x = scrWidth/2 - (width/2)
     
        local y = scrHeight/1.1 - (height/2)
     
        bRespawn = guiCreateButton(x, y, width, height,"Respawn",false)
     
            guiSetFont(bRespawn,"sa-header")
       
       
        addEventHandler("onClientGUIClick", bRespawn, function ()
       
       
            if bRespawn then
     
                destroyElement(bRespawn)
     
                bRespawn = nil
     
                showCursor(false)
     
                guiSetInputEnabled(false)
     
            end
     
            triggerServerEvent("es-system:acceptDeath", getLocalPlayer(), getLocalPlayer(), victimDropItem)
       
            showCursor(false)
     
        end, false)
     
    end
     
    addEvent("es-system:showRespawnButton", true)
     
    addEventHandler("es-system:showRespawnButton", getLocalPlayer(),showRespawnButton)


     
    function closeRespawnButton()
     
        if bRespawn then
     
            destroyElement(bRespawn)
     
            bRespawn = nil
     
            showCursor(false)
     
            guiSetInputEnabled(false)
     
        end
     
    end
     
    addEvent("es-system:closeRespawnButton", true)
     
    addEventHandler("es-system:closeRespawnButton", getLocalPlayer(),closeRespawnButton)
  3. local g_screenX,g_screenY = guiGetScreenSize()
    local BONE_ID = 8
    local WORLD_OFFSET = 0.4
    local ICON_PATH = "images/voice.png"
    local ICON_WIDTH = 0.35*g_screenX
    -- local ICON_HEIGHT = 0.213333333333*g_screenY
    --
    local iconHalfWidth = ICON_WIDTH/2
    -- local iconHalfHeight = ICON_HEIGHT/2
     
    local ICON_DIMENSIONS = 16
    local ICON_LINE = 20
    local ICON_TEXT_SHADOW = tocolor ( 236, 209, 28, 255 )
     
    --Draw the voice image
    addEventHandler ( "onClientRender", root,
        function()
            local index = 0
            if not bShowChatIcons then return end
            for player in pairs(voicePlayers) do
                local color = tocolor(236, 209, 28, 255)
                dxDrawVoiceLabel ( player, index, color )
                index = index + 1
                while true do
                    --is he streamed in?
                    if not isElementStreamedIn(player) then
                        break
                    end
                    --is he on screen?
                    if not isElementOnScreen(player) then
                        break
                    end
                    local headX,headY,headZ = getPedBonePosition(player,BONE_ID)
                    headZ = headZ + WORLD_OFFSET
                    --is the head position on screen?
                    local absX,absY = getScreenFromWorldPosition ( headX,headY,headZ )
                    if not absX or not absY then
                        break
                    end
                    local camX,camY,camZ = getCameraMatrix()
                    --is there anything obstructing the icon?
                    if not isLineOfSightClear ( camX, camY, camZ, headX, headY, headZ, true, false, false, true, false, true, false, player ) then
                        break
                    end
                    dxDrawVoice ( absX, absY, color, getDistanceBetweenPoints3D(camX, camY, camZ, headX, headY, headZ) )
                    break
                end
            end
        end
    )
     
    function dxDrawVoice ( posX, posY, color, distance )
        distance = 1/distance
        dxDrawImage ( posX - iconHalfWidth*distance, posY - iconHalfWidth*distance, ICON_WIDTH*distance, ICON_WIDTH*distance, ICON_PATH, 0, 0, 0, color, false )
    end
     
    function dxDrawVoiceLabel ( player, index, color )
        local sx, sy = guiGetScreenSize ()
        local scale = sy / 800
        local spacing = ( ICON_LINE * scale )
        local px, py = sx - 200, sy * 0.7 + spacing * index
        local icon = ICON_DIMENSIONS * scale
     
        dxDrawImage ( px, py, icon, icon, ICON_PATH, 0, 0, 0, color, false )
     
        px = px + spacing
     
        -- shadows
        dxDrawText ( getPlayerName ( player ), px + 1, py + 1, px, py, ICON_TEXT_SHADOW, scale )
        -- text
        dxDrawText ( getPlayerName ( player ), px, py, px, py, color, scale )
    end

     
  4. Client Side
     
    local transport_points = {
        --{x,y,z}
            {-2403.8276367188,-2182.9929199219,32.2890},
        {2345.8913574219,2774.1667480469,9.8203125},
        {1495.2940673828,769.93530273438,9.8203125},
            {220.42324829102,7.6310353279114,1.578125},
    }
     
    local screenW,screenH = guiGetScreenSize()
     
    local window = guiCreateWindow(screenW*0.4083, screenH*0.3194, screenW*0.1833, screenH*0.3620, "نقل السيارات", false)
    guiWindowSetSizable(window,false)
    guiWindowSetMovable(window,false)
    guiSetVisible(window,false)
     
    local memo = guiCreateMemo(screenW*0.0052, screenH*0.0259, screenW*0.1729, screenH*0.1722, "المهمة هي توصيل السيارات إلى وجهتها ، أرباح 1.500 دولار", false, window)
    guiMemoSetReadOnly(memo, true)
     
    local button = {
        guiCreateButton(screenW*0.0526, screenH*0.2379, screenW*0.0786, screenH*0.0435, "ابدأ", false, window),
        guiCreateButton(screenW*0.0526, screenH*0.2907, screenW*0.0786, screenH*0.0435, "أغلق", false, window),  
    }
     
    addEvent("show_gui",true)
    local function show_gui(marker)
        job_marker = marker
        guiSetVisible(window,true)
        showCursor(true)
    end
    addEventHandler("show_gui",resourceRoot,show_gui)
     
    local function button_click()
        if source == button[1] then
            guiSetVisible(window,false)
            showCursor(false)
            triggerServerEvent("job_started",resourceRoot,job_marker)
            job_marker = nil
        elseif source == button[2] then
            guiSetVisible(window,false)
            showCursor(false)
        end
    end
    addEventHandler("onClientGUIClick",resourceRoot,button_click)
     
    addEvent("transport_started",true)
    local function transport_started()
        local random = math.random(#transport_points)
        checkpoint = createMarker(transport_points[random][1],transport_points[random][2],transport_points[random][3],"checkpoint",4,0,0,200,200)
        blip = createBlipAttachedTo(checkpoint,41)
    end
    addEventHandler("transport_started",resourceRoot,transport_started)
     
    local function unload_vehicles(plr,md)
        if plr ~= localPlayer or not md then return end
        if source ~= checkpoint then return end
        local veh = getPedOccupiedVehicle(plr)
        triggerServerEvent("unload_vehicles",resourceRoot,veh)
        destroyElement(checkpoint)
        destroyElement(blip)
        checkpoint = nil
        blip = nil
    end
    addEventHandler("onClientMarkerHit",resourceRoot,unload_vehicles)
     
    addEvent("remove_checkpoint",true)
    local function remove_checkpoint()
        if checkpoint then
            destroyElement(checkpoint)
            destroyElement(blip)
            checkpoint = nil
            blip = nil
        end
    end
    addEventHandler("remove_checkpoint",resourceRoot,remove_checkpoint)
     
    addEvent("set_component",true)
    local function set_component(veh)
        setVehicleAdjustableProperty(veh,2500)
    end
    addEventHandler("set_component",resourceRoot,set_component)
     
     
     
     
     
    Server Side
     
     
     

     

    local packer_job = {    

        ls = {

            start_job_marker = {2798.003,-2393.987,12.956},

            spawn_vehicle_position = {2779.835,-2400.775,14.241, 0,0,90},

            get_vehicles_marker = {2791.269,-2417.781,12.632},

        },

    }

     

    for i,v in pairs(packer_job) do

        local job_marker = createMarker(v.start_job_marker[1],v.start_job_marker[2],v.start_job_marker[3],"cylinder",1.5,10,10,200,255)

        local colsphere = createColSphere(v.spawn_vehicle_position[1],v.spawn_vehicle_position[2],v.spawn_vehicle_position[3],7)

        createBlipAttachedTo(job_marker,58,2, 255, 0, 0, 255, 0, 500)

        setElementData(job_marker,"spawn",v.spawn_vehicle_position)

        setElementData(job_marker,"start_job",true)

        setElementData(job_marker,"colsphere",colsphere)

       

        local vehicle_marker = createMarker(v.get_vehicles_marker[1],v.get_vehicles_marker[2],v.get_vehicles_marker[3],"cylinder",5,200,200,200,200)

        setElementData(vehicle_marker,"get_vehicles",true)

    end

     

     -- pozycje pojazdów na packerze

    local transport_vehicles_positions = {

        {0,-2,0.5,0,0,0},

        {0,1,2.2,1,0,0},

        {0,-5,2.1,1.2,0,0},

    }

    local transport_vehicles_models = {429,541,415,480,562,565,411,559,560,506,451,558,555,477}

     

    local function load_vehicles(vehicle,x,y,z,rx,ry,rz)

        for i,v in pairs(transport_vehicles_positions) do

            local model = math.random(1,#transport_vehicles_models)

            local veh = createVehicle(transport_vehicles_models[model],x,y,z,rx,ry,rz)

            attachElements(veh,vehicle,v[1],v[2],v[3],v[4],v[5],v[6])

            setElementCollisionsEnabled(veh,false)

        end

    end

     

    local function hit_marker(el,md)

        if getElementType(el) ~= "player" or not md then return end

        if getElementData(source,"start_job") then

            if getPedOccupiedVehicle(el) then return end

            triggerClientEvent(el,"show_gui",resourceRoot,source)

        elseif getElementData(source,"get_vehicles") then

            if not getElementData(el,"packer_job") then return end

            local veh = getPedOccupiedVehicle(el)

            if veh then

                if getElementData(veh,"loaded") or getElementModel(veh) ~= 443 then return end

                setElementFrozen(veh,true)

                toggleControl(el,"enter_exit",false)

                setTimer(function(plr,veh)

                    local x,y,z = getElementPosition(veh)

                    local rx,ry,rz = getElementRotation(veh)

                    load_vehicles(veh,x,y,z,rx,ry,rz)

                    setElementFrozen(veh,false)

                    setElementData(veh,"loaded",true)

                    toggleControl(plr,"enter_exit",true)

                    triggerClientEvent(plr,"transport_started",resourceRoot)

                end,5000,1,el,veh)

            end

        end

    end

    addEventHandler("onMarkerHit",resourceRoot,hit_marker)

     

    addEvent("job_started",true)

    local function job_started(marker)

        local colsphere = getElementData(marker,"colsphere")

        if #getElementsWithinColShape(colsphere,"vehicle") > 0 then

            outputChatBox("بعض المركبات تعوق الرحلة.",client,255,255,255,true)

        return end

        local spawn = getElementData(marker,"spawn")

        local veh = createVehicle(443,spawn[1],spawn[2],spawn[3],spawn[4],spawn[5],spawn[6])

        warpPedIntoVehicle(client,veh)

        toggleControl(client,"special_control_down",false)

        toggleControl(client,"special_control_up",false)

        setElementData(client,"packer_job",true)

        triggerClientEvent("set_component",resourceRoot,veh)

    end

    addEventHandler("job_started",resourceRoot,job_started)

     

    local function end_job(veh)

        local cars = getAttachedElements(veh)

        for i,v in pairs(cars) do

            destroyElement(v)

        end

        destroyElement(veh)

    end

     

    addEvent("unload_vehicles",true)

    local function unload_vehicles(veh)

        setElementFrozen(veh,true)

        toggleControl(client,"enter_exit",false)

        setTimer(function(plr,veh)

            local cars = getAttachedElements(veh)

            for i,v in pairs(cars) do

                destroyElement(v)

            end

            setElementData(veh,"loaded",false)

            exports.global:giveMoney(plr,1500)

            outputChatBox("قدت السيارات وحصلت على 1.500 دولار , يمكنك الرجوع واخذ مهمه جديده",plr,255,255,255,true)

            setElementFrozen(veh,false)

            toggleControl(plr,"enter_exit",true)

        end,5000,1)

    end

    addEventHandler("unload_vehicles",resourceRoot,unload_vehicles)

     

    local function vehicle_exit(plr,seat)

        if seat == 0 then

            setElementData(plr,"packer_job",false)

            end_job(source)

            triggerClientEvent(plr,"remove_checkpoint",resourceRoot)

            toggleControl(plr,"special_control_down",true)

            toggleControl(plr,"special_control_up",true)

        end

    end

    addEventHandler("onVehicleExit",resourceRoot,vehicle_exit)

     

    local function player_quit()

        if getElementData(source,"packer_job") then

            local veh = getPedOccupiedVehicle(source)

            end_job(veh)

        end

    end

    addEventHandler("onPlayerQuit",root,player_quit)

     

    local function cancel_enter(plr,seat)

        if seat == 0 then

            cancelEvent()

        end

    end

    addEventHandler("onVehicleStartEnter",resourceRoot,cancel_enter)

     
  5. (in this script, i wanna make a gym sale like the one in gta sa )

    server Side : 

     

       local mark1 = createMarker (2229.80322, -1721.16260, 14.06020, "arrow", 1, 255, 0, 0, 50)
       local mark2 = createMarker (772.22845, -5.51261, 1001.3833, "arrow", 1, 255, 0, 0, 50)
       local mark3 = createMarker (770.36554, 5.59896, 999.8, "cylinder", 1,  255, 0, 100 )
       local obg2 =  createObject (3071, 772.01453, 5.57546, 999.98021, 0, 100, 100)
       local obg =  createObject (3071, 772.01453, 4.7546, 999.98021, 0, 100, 100)
     
    function inter(hitElement, matchingDimension)
       
       
        setElementInterior (hitElement, 5, 768.0793, 5.8606, 1000.7160)
        setElementDimension (hitElement, 46)
        setElementInterior (mark2, 5)
        setElementDimension (mark2, 46)
        setElementInterior (mark3, 5)
        setElementDimension (mark3, 46)
        setElementDimension  (obg, 46)
       setElementInterior (obg, 5)
       setElementDimension  (obg2, 46)
       setElementInterior (obg2, 5)



     
    end
    addEventHandler ("onMarkerHit", mark1, inter)



     
    function exiit (hitElement, matchingDimension)
     
        setElementInterior (hitElement, 0, 2230.84985, -1723.47961, 13.55957)
        setElementDimension (hitElement, 0)
     
    end
    addEventHandler ("onMarkerHit", mark2, exiit)
     
    function object1 (hitElement, matchingDimension)
       
       setPedAnimation (hitElement, "freeweights", "gym_free_pickup", -1, false, false, false, false)
       setTimer (function ()
       exports.pAttach:attach(obg, hitElement, "right-hand", 0, -0.15, 0, 90, 0, 0)
       exports.pAttach:attach(obg2, hitElement, "left-hand", 0, -0.15, 0, 90, 0, 0)
       end, 4000, 1 )
       triggerClientEvent (root, "gymm", source)
    end
    addEventHandler ("onMarkerHit", mark3, object1)
     
    Client Side : 
     
    function aa()
    local screenW, screenH = guiGetScreenSize()
     
    addEventHandler("onClientRender", root,
        function()
            dxDrawLine((screenW * 0.8828) - 1, (screenH * 0.4248) - 1, (screenW * 0.8828) - 1, screenH * 0.4375, tocolor(0, 0, 0, 255), 1, true)
            dxDrawLine(screenW * 0.9797, (screenH * 0.4248) - 1, (screenW * 0.8828) - 1, (screenH * 0.4248) - 1, tocolor(0, 0, 0, 255), 1, true)
            dxDrawLine((screenW * 0.8828) - 1, screenH * 0.4375, screenW * 0.9797, screenH * 0.4375, tocolor(0, 0, 0, 255), 1, true)
            dxDrawLine(screenW * 0.9797, screenH * 0.4375, screenW * 0.9797, (screenH * 0.4248) - 1, tocolor(0, 0, 0, 255), 1, true)
            dxDrawRectangle(screenW * 0.8828, screenH * 0.4248, screenW * 0.0969, screenH * 0.0127, tocolor(70, 80, 93, 192), true)
            dxDrawText("POWER", (screenW * 0.7555) - 1, (screenH * 0.4150) - 1, (screenW * 0.8750) - 1, (screenH * 0.4473) - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, true, true, false)
            dxDrawText("POWER", (screenW * 0.7555) + 1, (screenH * 0.4150) - 1, (screenW * 0.8750) + 1, (screenH * 0.4473) - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, true, true, false)
            dxDrawText("POWER", (screenW * 0.7555) - 1, (screenH * 0.4150) + 1, (screenW * 0.8750) - 1, (screenH * 0.4473) + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, true, true, false)
            dxDrawText("POWER", (screenW * 0.7555) + 1, (screenH * 0.4150) + 1, (screenW * 0.8750) + 1, (screenH * 0.4473) + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "center", "center", false, false, true, true, false)
            dxDrawText("POWER", screenW * 0.7555, screenH * 0.4150, screenW * 0.8750, screenH * 0.4473, tocolor(13, 148, 131, 192), 1.00, "bankgothic", "center", "center", false, false, true, true, false)
            dxDrawText("REPS", (screenW * 0.7758) - 1, (screenH * 0.4756) - 1, (screenW * 0.8828) - 1, (screenH * 0.5078) - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "left", "top", false, false, true, true, false)
            dxDrawText("REPS", (screenW * 0.7758) + 1, (screenH * 0.4756) - 1, (screenW * 0.8828) + 1, (screenH * 0.5078) - 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "left", "top", false, false, true, true, false)
            dxDrawText("REPS", (screenW * 0.7758) - 1, (screenH * 0.4756) + 1, (screenW * 0.8828) - 1, (screenH * 0.5078) + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "left", "top", false, false, true, true, false)
            dxDrawText("REPS", (screenW * 0.7758) + 1, (screenH * 0.4756) + 1, (screenW * 0.8828) + 1, (screenH * 0.5078) + 1, tocolor(0, 0, 0, 255), 1.00, "bankgothic", "left", "top", false, false, true, true, false)
            dxDrawText("REPS", screenW * 0.7758, screenH * 0.4756, screenW * 0.8828, screenH * 0.5078, tocolor(40, 120, 80, 192), 1.00, "bankgothic", "left", "top", false, false, true, true, false)
        end
    )
    end
    addEvent ("gymm", true)
    addEventHandler ("gymm", root, aa)
  6. that's the full code, I just started but when I faced dimension problem I couldn't finish it.

     

      local mark = createMarker (-2409.56738, -598.22534, 130.64844, "cylinder", 3,  0, 255, 0, 155)
     
    function enter (hitElement, matchingDimension)
     
        if  (getElementType (hitElement)) == "player" then
                outputChatBox("you are in the Marker")
        end


     
            if (matchingDimension) then
                  outputChatBox ("please enter the marker", 255, 255, 0)
                    setElementDimension (mark, 44)
            end
     local interio = setElementInterior (hitElement, 3, -2027.9200, -105.1830, 1035.1720)
    outputChatBox ("you're dimension is "..getElementDimension (hitElement))
    setElementDimension (interio, 44)
    end
    addEventHandler ("onMarkerHit", mark, enter)

     

  7. no, iwant change interior dimension from 0 to 44 like this 
     

     if (matchingDimension) then
                  outputChatBox ("please enter the marker", 255, 255, 0)
                    setElementDimension (mark, 44)
            end
     local interio = setElementInterior (hitElement, 3, -2027.9200, -105.1830, 1035.1720)
    outputChatBox ("you're dimension is "..getElementDimension (hitElement))

     

  8.   local mark = createMarker (-2409.56738, -598.22534, 130.64844, "cylinder", 3,  0, 255, 0, 155)
     
    function enter (hitElement, matchingDimension)
     
        if  (getElementType (hitElement)) == "player" then
                outputChatBox("you are in the Marker")
        end


     
            if (matchingDimension) then
                  outputChatBox ("please enter the marker", 255, 255, 0)
                    setElementDimension (mark, 44)
            end
     local interio = setElementInterior (hitElement, 3, -2027.9200, -105.1830, 1035.1720)
    outputChatBox ("you're dimension is "..getElementDimension (hitElement))
     
    end
    addEventHandler ("onMarkerHit", mark, enter)
  9. local function on_exit_hit (hitElement,  matchingDimension)

        if getElementType (hitElement) ~= "player" then

            outputChatBox (getPlayerName (hitElement).."  ".."Join The Marker")

         return

       end

    end

    local function on_enter_hit (hitElement,  matchingDimension)

        if getElementType (hitElement) ~= "player" then

            outputChatBox (getPlayerName (hitElement).."  ".."Join The Marker")

         return

       end

        setElementInterior (

            hitElement,

            207.5430,

            -109.0040,

            1005.1330

        )

    end

    local function stp ()

        local enter = createMarker (

             1154.11340,

             -1772.66272,

             17.59375,

             "arrow",

              2,

              255,

              0,

              0,

              155

            )

            local exit = createMarker (

                -2029.67358,

                -118.98129,

                1035.17188,

                "arrow",

                2,

                255,

                0,

                0,

                155

            )

            addEventHandler ("onMarkerHit", enter, on_enter_hit)

            addEventHandler ("onMarkerHit", exit, on_exit_hit)

        end

    addEventHandler ("onResourceStart", resourceRoot, stp)

  10. function walk ()
     
     
     
           setPedAnimation (localPlayer, "ped", "walk_gang1")
     
     
     
    end
    addCommandHandler ("walk_gang", walk)
     
     
     
    error = Bad Argument @  'setPedAnimation' [Expected element at argument 1, got string 'player' ]
×
×
  • Create New...