Jump to content

Einheit-101

Distinguished Members
  • Posts

    661
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by Einheit-101

  1. LoL thanks TAPL, i found a similar way 1 minute ago!

    Client:

      
    function zombiedamaged ( attacker, weapon, bodypart ) 
        local health = getElementHealth ( source ) 
      
        if (health < 60) then 
        thePed = source 
        angreifer = attacker 
        triggerServerEvent("onDamage", angreifer, thePed ) 
        end 
    end 
    addEventHandler ( "onClientPedDamage", getRootElement(), zombiedamaged ) 
      
    

    Server:

      
    function damageHandler(thePed) 
    killPed(thePed) 
    givePlayerMoney ( source, 30 ) 
    end 
    addEvent("onDamage", true) 
    addEventHandler("onDamage", getRootElement(), damageHandler) 
      
    

  2. Hello Community,

    I have written a little script that lets Peds die earlier, because

    setElementHealth does not work for peds :shock:

    The problem is, that the Peds die correctly :redhotevil:

    But the Player that killed the Ped should get his 30 Dollar and he gets the money only if the script

    knows, that the Player has killed this ped. My code down there kills the ped, but the Player gets no money.

    I hope you understand what i mean^^

      
    function zombiedamaged ( attacker, weapon, bodypart ) 
    local health = getElementHealth ( source ) 
        if (health < 60) then 
        thePed = source 
        angreifer = attacker 
        triggerServerEvent("onDamage", getRootElement(), thePed, angreifer ) 
        end 
    end 
    addEventHandler ( "onClientPedDamage", getRootElement(), zombiedamaged ) 
      
    

      
    function damageHandler(thePed, angreifer) 
    killPed(thePed) 
    givePlayerMoney ( angreifer, 30 ) 
    end 
    addEvent("onDamage", true) 
    addEventHandler("onDamage", getRootElement(), damageHandler) 
      
    

    As alternative i would prefer setPedStat ( thePed, 24, 90)

    (means: Ped name, MAX_HEALTH, value)

    but setPedStat with max_health seems not to work^^

  3. The errors are the following:

    If a player gets promoted, the sound (clientscript) can hear everyone

    and the picture gets changed for all players. We worked on the script for some hours today and fixed most other errors.

    But the picture bug is still a problem.

    EDIT:::

    This is the updated, full version of the server-side script.

    function scorebrett() 
    exports.scoreboard:addScoreboardColumn("Kills")
    exports.scoreboard:addScoreboardColumn("Rank")
    end
    addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), scorebrett )
     
    function onLogin()
    local player = getPlayerAccount ( source )
    local myRank = getAccountData(player,"rank")
    local zombieKills = getAccountData(player, "zombieKills")
    triggerClientEvent("image", getRootElement())
        if (myRank == "" or myRank == nil or myRank == false) then
            myRank = "[1]PVT"
     
            else
        setElementData (source, "Rank", myRank)
        setElementData (source, "Kills", tostring ( zombieKills ))
        zombieKills = tonumber(zombieKills)
    if myRank == "[1]PVT" then
            triggerClientEvent("image", getRootElement())
    else if myRank == "[2]PFC" then
            triggerClientEvent("r2", getRootElement())
    else if myRank == "[3]SPC" then
            triggerClientEvent("r3", getRootElement())
    else if myRank == "[4]CPL" then
            triggerClientEvent("r4", getRootElement())
    else if myRank == "[5]SGT" then
            triggerClientEvent("r5", getRootElement())
    else if myRank == "[6]SSG" then
            triggerClientEvent("r6", getRootElement())
    else if myRank == "[7]SFC" then
            triggerClientEvent("r7", getRootElement())
    else if myRank == "[8]MSG" then
            triggerClientEvent("r8", getRootElement())
    else if myRank == "[9]1SG" then
            triggerClientEvent("r9", getRootElement())
    else if myRank == "[10]SGM" then
            triggerClientEvent("r10", getRootElement())
    else if myRank == "[11]CSM" then
            triggerClientEvent("r11", getRootElement())
    else if myRank == "[12]SMA" then
            triggerClientEvent("r12", getRootElement())
    else if myRank == "[13]2LT" then
            triggerClientEvent("r13", getRootElement())
    else if myRank == "[14]1LT" then
            triggerClientEvent("r14", getRootElement())
    else if myRank == "[15]CPT" then
            triggerClientEvent("r15", getRootElement())
    else if myRank == "[16]MAJ" then
            triggerClientEvent("r16", getRootElement())
    else if myRank == "[17]LTC" then
            triggerClientEvent("r17", getRootElement())
    else if myRank == "[18]COL" then
            triggerClientEvent("r18", getRootElement())
    else if myRank == "[19]BG" then
            triggerClientEvent("r19", getRootElement())
    else if myRank == "[20]MG" then
            triggerClientEvent("r20", getRootElement())
    else if myRank == "[21]LTG" then
            triggerClientEvent("r21", getRootElement())
    else if myRank == "[22]GEN" then
            triggerClientEvent("r22", getRootElement())
    else if myRank == "[23]GA" then
            triggerClientEvent("r23", getRootElement())
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        end
        if (zombieKills == "" or zombieKills == nil or zombieKills == false or zombieKills == true) then
            zombieKills = 0
        end
    end
    addEventHandler("onPlayerLogin", getRootElement(), onLogin)
     
    function reward(ammo, killer)
        if ( killer ) and ( killer ~= source ) then
        local player = getPlayerAccount ( killer )
        local myRank = getAccountData(player,"rank")
        local zombieKills = getAccountData(player, "zombieKills")
        if (zombieKills == "" or zombieKills == nil or zombieKills == false or zombieKills == true) then
                zombieKills = 0
        end
            if (getElementData (source, "zombie") == true) then
            if myRank == nil then
                myRank = "[1]PVT"
            end
            givePlayerMoney(killer, 30 )
            zombieKills = zombieKills+1
            setAccountData (player,"zombieKills", tostring ( zombieKills ))
            setElementData ( killer, "Kills", tostring ( zombieKills ))
            if (getAccountData (player,"zombieKills") == "100") then
                myRank = "[2]PFC"
                setAccountData (player,"rank",myRank)
                setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Private First Class.", getRootElement())
                triggerClientEvent("r2", getRootElement())
            else if (getAccountData (player,"zombieKills") == "150") then
            myRank = "[3]SPC"
                      setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Specialist.", getRootElement())
                triggerClientEvent("r3", getRootElement())
            else if (getAccountData (player,"zombieKills") == "225") then
            myRank = "[4]CPL"
                      setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Corporal.", getRootElement())
                triggerClientEvent("r4", getRootElement())
            else if (getAccountData (player,"zombieKills") == "350") then
            myRank="[5]SGT"
                      setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant.", getRootElement())
                triggerClientEvent("r5", getRootElement())
            else if (getAccountData (player,"zombieKills") == "500") then
            myRank="[6]SSG"
                      setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Staff Sergeant.", getRootElement())
                triggerClientEvent("r6", getRootElement())
            else if (getAccountData (player,"zombieKills") == "750") then
            myRank="[7]SFC"
              setAccountData (player,"rank", myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant First Class.", getRootElement())
                triggerClientEvent("r7", getRootElement())
            else if (getAccountData (player,"zombieKills") == "1150") then
            myRank="[8]MSG"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Master Sergeant.", getRootElement())
                triggerClientEvent("r8", getRootElement())
            else if (getAccountData (player,"zombieKills") == "1700") then
            myRank="[9]1SG"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a First Sergeant.", getRootElement())
                triggerClientEvent("r9", getRootElement())
            else if (getAccountData (player,"zombieKills") == "2550") then
            myRank="[10]SGM"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant Major.", getRootElement())
                triggerClientEvent("r10", getRootElement())
            else if (getAccountData (player,"zombieKills") == "3800") then
            myRank = "[11]CSM"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Command Sergeant Major.", getRootElement())
                triggerClientEvent("r11", getRootElement())
            else if (getAccountData (player,"zombieKills") == "5750") then
            myRank="[12]SMA"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant Major of the Army.", getRootElement())
                triggerClientEvent("r12", getRootElement())
            elseif (getAccountData (player,"zombieKills") == "8650") then
            myRank="[13]2LT"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Second Lieutenant.", getRootElement())
                triggerClientEvent("r13", getRootElement())
            else if (getAccountData (player,"zombieKills") == "12500") then
            myRank="[14]1LT"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a First Lieutenant.", getRootElement())
                triggerClientEvent("r14", getRootElement())
            else if (getAccountData (player,"zombieKills") == "19500") then
            myRank="[15]CPT"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Captain.", getRootElement())
                triggerClientEvent("r15", getRootElement())
            else if (getAccountData (player,"zombieKills") == "29000") then
            myRank="[16]MAJ"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Major.", getRootElement())
                triggerClientEvent("r16", getRootElement())
            else if (getAccountData (player,"zombieKills") == "43500") then
            myRank="[17]LTC"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Lieutenant Colonel.", getRootElement())
                triggerClientEvent("r17", getRootElement())
            else if (getAccountData (player,"zombieKills") == "65500") then
            myRank="[18]COL"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Colonel.", getRootElement())
                triggerClientEvent("r18", getRootElement())
            else if (getAccountData (player,"zombieKills") == "98500") then
            myRank="[19]BG"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Brigadier General.", getRootElement())
                triggerClientEvent("r19", getRootElement())
            else if (getAccountData (player,"zombieKills") == "150000") then
            myRank="[20]MG"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Major General.", getRootElement())
                triggerClientEvent("r20", getRootElement())
            else if (getAccountData (player,"zombieKills") == "221000") then
            myRank="[21]LTG"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a Lieutenant General.", getRootElement())
                triggerClientEvent("r21", getRootElement())
            else if (getAccountData (player,"zombieKills") == "350000") then
            myRank="[22]GEN"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has been promoted. He is now a General.", getRootElement())
                triggerClientEvent("r22", getRootElement())
            else if (getAccountData (player,"zombieKills") == "500000") then
            myRank="[23]GA"
              setAccountData (player,"rank",myRank)
            setElementData ( killer, "Rank", myRank )
    outputChatBox (getPlayerName(killer).." has reached the highest rank! He is General of the Army!", getRootElement())
                triggerClientEvent("r23", getRootElement())
            end
            end
            end
            end
            end
            end
            end
            end
            end
            end
  4. Hello Community,

    I created this script some months ago. It is a rank system and there is a little problem:

    Ive tested it ALONE in the map editor and it worked PERFECTLY. It counted Kills, updates the rank, plays the sound and draws the image.

    BUT

    Then i tested the script with more people and it was CRAZY! I dont Know what exactly it did but i had very strange

    kill numbers and ranks.

    I think the server-side script counts 1 kill of any player for ALL Players but i dont know how to make it correct working.

    If you want the whole script for testing yourself ask me, here is a cut version because there is a lot of unnessecary stuff (i marked it)

    I really hope anyone can help me out here and this script will work later because my players ask me everytime WHEN THIS GOD DAMN RANK SYSTEM IS FINISHED. :mrgreen:

    Clinet stuff

      
    -- This creates an image on the right side of the screen, it works and is not important 
    addEvent("image", true) 
    image1 = nil 
    function imager() 
    local xp,yp = guiGetScreenSize() 
    x = xp/2 - 150/2+500 
    y = yp/2 - 250 
    image1 = guiCreateStaticImage( x,y, 150, 150, "rang/r1.png", false ) 
    end 
    addEventHandler("image", getRootElement(), imager) 
      
    -- this changes the image according to a new rank and plays a sound. it Works too. 
    for i = 1, 23 do 
    addEvent ( "r"..tostring ( i ), true ) 
    addEventHandler ( "r"..tostring ( i ), getResourceRootElement ( ), 
    function ( ) 
        guiStaticImageLoadImage(  image1, "rang/r"..tostring( i )..".png" ) 
        lvlup = playSound("lvlup.mp3",false) 
        setSoundVolume(lvlup,1) 
    end ) 
    end 
    

    Server Stuff

      
    -- this adds the scoreboard columns, it works. 
    function scorebrett() 
    exports.scoreboard:addScoreboardColumn("Kills") 
    exports.scoreboard:addScoreboardColumn("Rank") 
    end 
    addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), scorebrett ) 
      
    -- this gets the rank/kill data onPlayerLogin. 
    function onLogin() 
    local player = getPlayerAccount ( source ) 
    local myRank = getAccountData(player,"rank") 
    local zombieKills = getAccountData(player, "zombieKills") 
    triggerClientEvent("image", getRootElement()) 
        if (myRank == "" or myRank == nil or myRank == false) then -- if rank doesnt exist or there is an error 
            myRank = "[1]PVT" 
            else 
        setElementData (source, "Rank", myRank) 
        setElementData (source, "Kills", tostring ( zombieKills )) 
        zombieKills = tonumber(zombieKills) 
    if myRank == "[1]PVT" then 
            triggerClientEvent("image", getRootElement()) 
    else if myRank == "[2]PFC" then 
            triggerClientEvent("r2", getRootElement()) 
    else if myRank == "[3]SPC" then 
            triggerClientEvent("r3", getRootElement()) 
    else if myRank == "[4]CPL" then 
            triggerClientEvent("r4", getRootElement()) 
    else if myRank == "[5]SGT" then 
            triggerClientEvent("r5", getRootElement()) 
    else if myRank == "[6]SSG" then 
            triggerClientEvent("r6", getRootElement()) 
    -- ...there are 23 ranks... 
        end 
            end 
        end 
        end 
        end 
        end 
        if (zombieKills == "" or zombieKills == nil or zombieKills == false) then 
            zombieKills = 0 
        end 
    end 
    addEventHandler("onPlayerLogin", getRootElement(), onLogin) 
      
    -- this gives money and counts the kills and sets the ElementData. 
    function reward(ammo, killer) 
        if ( killer ) and ( killer ~= source ) then 
        local player = getPlayerAccount ( killer ) 
        local myRank = getAccountData(player,"rank") 
        local zombieKills = getAccountData(player, "zombieKills") 
            if (getElementData (source, "zombie") == true) then 
            if zombieKills == nil then 
                zombieKills = 0 
            end 
            if myRank == nil then 
                myRank = "[1]PVT" 
            end 
            givePlayerMoney(killer, 30 ) 
            zombieKills = zombieKills+1 
            setAccountData (player,"zombieKills", tostring ( zombieKills )) 
            setElementData ( killer, "Kills", tostring ( zombieKills )) 
            if (getAccountData (player,"zombieKills") == "20") then 
                myRank = "[2]PFC" 
                setAccountData (player,"rank",myRank) 
                setElementData ( killer, "Rank", myRank ) 
            outputChatBox (getPlayerName(killer).." has been promoted. He is now a Private First Class.", getRootElement()) 
                triggerClientEvent("r2", getRootElement()) 
            else if (getAccountData (player,"zombieKills") == "40") then 
            myRank = "[3]SPC" 
                      setAccountData (player,"rank",myRank) 
            setElementData ( killer, "Rank", myRank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Specialist.", getRootElement()) 
                triggerClientEvent("r3", getRootElement()) 
            else if (getAccountData (player,"zombieKills") == "100") then 
            myRank = "[4]CPL" 
                      setAccountData (player,"rank",myRank) 
            setElementData ( killer, "Rank", myRank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Corporal.", getRootElement()) 
                triggerClientEvent("r4", getRootElement()) 
            else if (getAccountData (player,"zombieKills") == "200") then 
            myRank="[5]SGT" 
                      setAccountData (player,"rank",myRank) 
            setElementData ( killer, "Rank", myRank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant.", getRootElement()) 
                triggerClientEvent("r5", getRootElement()) 
            else if (getAccountData (player,"zombieKills") == "350") then 
            myRank="[6]SSG" 
                      setAccountData (player,"rank",myRank) 
            setElementData ( killer, "Rank", myRank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Staff Sergeant.", getRootElement()) 
                triggerClientEvent("r6", getRootElement()) 
            else if (getAccountData (player,"zombieKills") == "600") then 
            myRank="[7]SFC" 
              setAccountData (player,"rank", myRank) 
            setElementData ( killer, "Rank", myRank ) 
                outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant First Class.", getRootElement()) 
                triggerClientEvent("r7", getRootElement()) 
            --....and so on..... 
            end 
            end 
            end 
            end 
            end 
            end 
            end 
        end 
    end 
    addEventHandler("onPedWasted", getRootElement(), reward) 
      
    -- this is used to reset all data to 0 
    function nullAccount(playersource)  
    local acc = getPlayerAccount ( playersource ) 
    setAccountData (acc,"zombieKills", "0") 
    setAccountData (acc,"rank", "[1]PVT") 
    triggerClientEvent("image", getRootElement()) 
    outputChatBox("Account reset succesfully.", source) 
    end 
    addCommandHandler("zero", nullAccount) 
    

    And, oh, excuse my english.

  5. What about fixing the Custom model Stream issues which drop your Performance like hell in MTA?

    And i hope that the Heat-Seeking missiles will be fixed this time because you can not avoid them, they hit everytime.

  6. Hello Guys! I have a new Question about setting Weather/SkyGradient clientsided. The script below is the CLIENT part of my disco club and the problem is: If anyone hits the entrance arrow marker the Weather and SkyGradient is set for EVERYONE. YES. But the script works Client sided so i just dont understand why everyone is getting a new weather!!!

    If anyone has a solution or is able to explain me that issue please write^^

      
    disco = createMarker( 2722.5, -2071, 2064, "corona", 100, 0, 0, 0, 0 ) 
    discoausgang = createMarker( 2740.48, -2082.05, 2069.88, "arrow", 1.3, 0, 255, 0, 200 ) 
    discoeingang = createMarker ( 62.88, -211.5, 1.5, "arrow", 1.5, 255, 255, 0, 200 ) 
    standeingang = createMarker( 2738.32, -2082.05, 2069.88, "arrow", 1.3, 0, 0, 255, 200 ) 
    drinnen = false 
      
    function onResourceStart1() 
            discosoundHIGH = playSound3D("techno.mp3", 2735, -2071.1, 2100, true) 
            discosoundHIGH2 = playSound3D("techno.mp3", 2730.93, -2071.5, 2100, true) 
            setSoundVolume(discosoundHIGH, 5.0) 
            setSoundMaxDistance(discosoundHIGH, 200) 
            setSoundVolume(discosoundHIGH2, 5.0) 
            setSoundMaxDistance(discosoundHIGH2, 200) 
            setSoundMinDistance(discosoundHIGH2, 190) 
            setSoundMinDistance(discosoundHIGH, 190) 
        setSkyGradient( 155, 155, 255, 155, 155, 155 ) 
        setWeather(9) 
    end 
    addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onResourceStart1) 
      
      
    function indisco(hitPlayer) 
        if getElementType(hitPlayer) == "player" then -- in dem Discomarker 
            drinnen = true 
            setWeather ( 0 ) 
            toggleControl("fire", false) 
        end 
    end 
    addEventHandler("onClientMarkerHit", disco, indisco) 
      
      
    function ausgang(hitPlayer) 
        if getElementType(hitPlayer) == "player" then 
        setTimer ( setElementPosition, 1000, 1, hitPlayer, 68, -211, 1.6 ) 
        setTimer ( setElementRotation, 1100, 1, hitPlayer, 0, 0, 0 ) 
            -- Fade the camera to make it look nicer 
        fadeCamera ( hitPlayer, false, 1, 0, 0, 0 ) 
            -- Fade it back once it's all complete! 
        setTimer ( fadeCamera, 1100, 1, hitPlayer, true, 1 )    -- aus der Disco rausteleportieren 
        drinnen = false 
        setSkyGradient( 155, 155, 255, 155, 155, 155 ) 
        setWeather(9) 
        toggleControl("fire", true) 
        end 
    end 
    addEventHandler("onClientMarkerHit", discoausgang, ausgang) 
      
    function eingang(hitPlayer) 
        if getElementType(hitPlayer) == "player" then    -- in die Disco reinteleportieren 
        setTimer ( setElementPosition, 1000, 1, hitPlayer, 2740.54, -2079.37, 2069.97 ) 
        setTimer ( setElementPosition, 3000, 1, hitPlayer, 2740.54, -2079.37, 2069.97 ) 
        setTimer ( setElementRotation, 3100, 1, hitPlayer, 0, 0, 0 ) 
            -- Fade the camera to make it look nicer 
        fadeCamera ( hitPlayer, false, 1, 0, 0, 0 ) 
            -- Fade it back once it's all complete! 
        setTimer ( fadeCamera, 1100, 1, hitPlayer, true, 1 ) 
        setTimer (disco, 2000, true) 
        end 
    end 
    addEventHandler("onClientMarkerHit", discoeingang, eingang) 
      
    function disco() 
        if drinnen == true then 
        r = math.random(50,200) 
        g = math.random(50,200) 
        b = math.random(50,200) 
        setSkyGradient(r,g,b,r,g,b) --Himmelfarbe 
        setTimer(disco, 1500, 1) 
        end 
    end 
      
    

  7. Hello Community!

    I want to write a script that improves the damage system of the rhino (more fragile, making damage with heavy MG`s and so on) but now i dont know how to make damage to the rhino if a Hunter`s machine gun hits the tank because there is no useful function onVehicleWeaponFire that returns a hitElement.

    So I want to retrieve when a Hunter is Firing his MG and if this MG hits the Rhino, it should loose 5 health points

    like that: setElementHealth(getElementHealth()-5)

    So is there anything i can do to damage a rhino with MG`s?

    I hope for an Answer :D

  8. Top 5?

    Why not Top 1? :lol:

    But a better elementstreamer with more than 255 elements at the same place would be awsome.

    And a more logical stream method.

    At the moment it seems to work like:

    1. Vehicles

    2. Players

    3. Objects (walls etc...)

    better:

    1. Objects

    2. Players

    3. Vehicles (or second?)

    Anyway, very good work and good luck with 1.1 :twisted:

  9. Man, i make this already with my code, but my local host is totally ownd by just 4 players (My Home-PC is my Server, DSL 6000 xDDD)

    so i need a rlly good server and my Playerlimit is 16 anyway and most of the players got just 30 FPS... :mrgreen::mrgreen:

    :arrow: Suggestion:

    developing "attachElementToBone" function or sth. like that :!:

    PS: Citicen, congrats to your "101st" post, i like this number^^ 8)

  10. Very Special Thanks to CrystalMV.

    EDIT:::

    Ive tried the final code, and the Object was visible For all players. But it moved client side, that means, if the script starts the Object spawns and does not move. Only the local player can see his own object moving, the others dont move and stay at their spawn.

    I tried to avoid this by making the movement server-side, but now the Objects LAG LIKE HELL :redhotevil:

    this is the newest code:

    Clinet

    helmet = nil 
    zahl = 0 
    player = getLocalPlayer() 
      
    addEvent("movehelm", true) 
    function lolmao(helm) 
    helmet = helm 
    zahl = 1 
    end 
    addEventHandler("movehelm", getRootElement(), lolmao) 
      
    function stahlhelm() 
        if (zahl ~= 0) then 
    if (getElementData(player, "helmeted") == true) then 
        rz = getPedRotation (player) 
        px, py, pz = getPedBonePosition(player, 8) 
        px = px+( ( math.cos ( math.rad ( rz ) ) ) * 0.02 ) - math.sin ( math.rad ( rz ) ) * 0.007 
        py = py+( ( math.sin ( math.rad ( rz ) ) ) * 0.02 ) + math.cos ( math.rad ( rz ) ) * 0.007 
                if (zahl == 1) then 
            setObjectScale(helmet, 0.85) 
            triggerServerEvent ( "movethehelm", getLocalPlayer(), px, py, pz, rz, helmet )  
            end 
        end 
        end 
    end 
    addEventHandler ( "onClientPreRender", getRootElement(), stahlhelm ) 
      
    addEvent("zahlnull", true) 
    function nulll(helm) 
    zahl = 0 
    end 
    addEventHandler("zahlnull", getRootElement(), nulll) 
      
    function res() 
        outputChatBox("Stahlhelm by Einheit-101 loaded", 245,0,0) 
    end 
    addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), res) 
    

    Server

    helmart = nil 
    helm = nil 
      
    addEvent "onPlayerHeadshot" 
    addEventHandler("onPlayerDamage", getRootElement(), 
        function (attacker, weapon, bodypart, loss) 
            if bodypart == 9 then 
                local helmet = getElementData( source, "helmeted" ) 
                if (helmet == false) then 
                local result = triggerEvent("onPlayerHeadshot", source, attacker, weapon, loss) 
                if result == true then 
                killPed(source, attacker, weapon, bodypart) 
                end 
            end 
        end 
    end 
    ) 
      
    addEvent("movethehelm", true) 
    function setPos(px, py, pz, rz, helmet) 
        setElementPosition (helmet, px, py, pz+0.1 ) 
        setElementRotation (helmet, 0,0,(rz-180) ) 
    end 
    addEventHandler("movethehelm", getRootElement(), setPos) 
      
    function helmi(sourcePlayer, cmd, helmart) 
    helmart = tonumber(helmart) 
    if (helmart == "" or helmart == nil) then 
        outputChatBox ( "Valid numbers are 0,1 and 2.", sourcePlayer ) 
    end 
      
    if (helmart == 0) then 
        destroyElement(helm) 
        setElementData ( sourcePlayer, "helmeted", false ) 
        triggerClientEvent("zahlnull", getRootElement(), helm) 
    end 
      
        if (helmart == 1) then 
        setElementData ( sourcePlayer, "helmeted", true ) 
            helm = createObject (2052, 1, 0, 1 ) -- tommy 
        outputChatBox ( "Tommy helmet" ) 
        setElementDoubleSided ( helm, true ) 
        triggerClientEvent( "movehelm", getRootElement(), helm) 
    end 
      
        if (helmart == 2) then 
        setElementData ( sourcePlayer, "helmeted", true ) 
            helm = createObject (2053, 1, 0, 1 ) -- jerry 
        outputChatBox ( "Jerry helmet" ) 
        setElementDoubleSided ( helm, true ) 
        triggerClientEvent( "movehelm", getRootElement(), helm) 
    end 
        if (helmart > 2) then 
            outputChatBox ( "Valid numbers are 0,1 and 2." ) 
        end 
    end 
    addCommandHandler("stahl", helmi) 
    

  11. Hm okay but why does THAT not work? Thats my last question^^

      
     if (helmart == 1) then 
        setElementData ( sourcePlayer, "helmeted", true ) 
            helm = createObject (2052, 1, 0, 1 ) -- tommy 
        outputChatBox ( "Tommy helmet" ) 
        setObjectScale(helm, 0.85)  -- SET OBECT SCALE DOES NOT WORK 
        setElementDoubleSided ( helm, true ) -- ATTEMPT TO CALL GLOBEL BLABLA, NIL VALUE... 
        triggerClientEvent( "movehelm", getRootElement(), helm) 
      
    

  12. Okay i know i`m getting annoying, but my brand new rank script for my server has some confusing errors. Nothing works exactly as it should. I have commented most of the functions that you know what they do.

    server

    function scorebrett() 
    call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Rank") -- ON RESOURCE START SETUP 
    call(getResourceFromName("scoreboard"), "scoreboardAddColumn", "Zombie kills")  
    local players = getElementsByType ( "player" ) 
    for theKey,thePlayer in ipairs(players) do 
    display = textCreateDisplay() 
    textDisplayAddObserver (display,thePlayer) 
    end 
    end 
    addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), scorebrett ) 
      
    function killtherank(source) 
        local player = getPlayerAccount ( source ) 
        local myRank = getAccountData(player,"rank") 
        setAccountData(player,"rank","[1]PVT") 
        local zombieKills = getAccountData(player, "zombieKills") -- SET ALL DATA TO 0 (Doesnt work  ) 
    outputChatBox ("Account deleted.", client) 
        zombieKills = 0 
    end 
    addCommandHandler("killrank", killtherank) 
      
    addEventHandler ("onPlayerJoin",getRootElement(), 
    function (source) 
    playerac = getPlayerAccount(source) 
    look = nil 
    local accountname = getAccountName(playerac) -- SET ELEMENT DATA TO IDENTIFY ADMINS 
    if isObjectInACLGroup ( "user." .. accountname, aclGetGroup ( "Admin" ))  then 
    setElementData(client, "Admin") 
    end 
    end) 
      
    addEvent("onZombieWasted") 
    addEventHandler( "onZombieWasted", getRootElement(), 
              function (killer) 
                  local player = getPlayerAccount ( killer ) 
                  local myRank = getAccountData(player,"rank") -- GET THE ACCOUNT 
            local zombieKills = getAccountData(player, "zombieKills") 
                  if (myRank == "" or myRank == nil or myRank == false) then 
            myRank = "[1]PVT" 
            setElementData ( killer, "Rank", "[1]PVT") -- IF RANK DOESNT EXIST, MAKE RANK 1 
                  end 
                  if (zombieKills == "" or zombieKills == nil or zombieKills == false) then 
                   zombieKills = 0 
                  end 
                  if look == nil then 
                   look = 0 
                   kills = textCreateTextItem ("Kills: "..zombieKills,0.8,0.5,"medium",255,255,255,255,1.5)  
     -- CREATE THE TEXT ITEMS 
                   rank = textCreateTextItem ("Rank: "..myRank,0.8,0.53,"medium",255,255,255,255,1.5) 
                   textDisplayAddText (display,kills) 
                   textDisplayAddText (display,rank) 
                  elseif look == 0 then 
                   textItemSetText (kills,"Kills: "..zombieKills) -- SET THE TEXT FOR THE TEXTDISPLAY 
                   textItemSetText (rank,"Rank: "..myRank) 
                  end 
            givePlayerMoney (killer, 25) 
            setAccountData (player,"zombieKills",zombieKills+1) -- SET ZOMBIEKILLS +1 
            setElementData ( killer, "Zombie Kills", zombieKills+1) 
                   
    if (getAccountData (player,"zombieKills") == 20) then -- SET THE ACCOUNT & ELEMENT DATA FOR ZOMBIE KILLS 
                      setAccountData (player,"rank","[2]PFC") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Private First Class.") 
                triggerClientEvent("r1", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 40) then 
                      setAccountData (player,"rank","[3]SPC") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Specialist.") 
                triggerClientEvent("r2", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 100) then 
                      setAccountData (player,"rank","[4]CPL") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Corporal.") 
                triggerClientEvent("r3", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 200) then 
                      setAccountData (player,"rank","[5]SGT") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant.") 
                triggerClientEvent("r4", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 350) then 
                      setAccountData (player,"rank","[6]SSG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Staff Sergeant.") 
                triggerClientEvent("r5", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 600) then 
              setAccountData (player,"rank","[7]SFC") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant First Class.") 
                triggerClientEvent("r6", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 900) then 
              setAccountData (player,"rank","[8]MSG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Master Sergeant.") 
                triggerClientEvent("r7", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 1500) then 
              setAccountData (player,"rank","[9]1SG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a First Sergeant.") 
                triggerClientEvent("r8", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 1800) then 
              setAccountData (player,"rank","[10]SGM") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant Major.") 
                triggerClientEvent("r9", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 2300) then 
              setAccountData (player,"rank","[11]CSM") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Command Sergeant Major.") 
                triggerClientEvent("r10", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 3000) then 
              setAccountData (player,"rank","[12]SMA") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Sergeant Major of the Army.") 
                triggerClientEvent("r11", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 4000) then 
              setAccountData (player,"rank","[13]2LT") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Second Lieutenant.") 
                triggerClientEvent("r12", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 5500) then 
              setAccountData (player,"rank","[14]1LT") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a First Lieutenant.") 
                triggerClientEvent("r13", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 7000) then 
              setAccountData (player,"rank","[15]CPT") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Captain.") 
                triggerClientEvent("r14", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 9000) then 
              setAccountData (player,"rank","[16]MAJ") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Major.") 
                triggerClientEvent("r15", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 11500) then 
              setAccountData (player,"rank","[17]LTC") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Lieutenant Colonel.") 
                triggerClientEvent("r16", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 14000) then 
              setAccountData (player,"rank","[18]COL") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Colonel.") 
                triggerClientEvent("r17", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 17000) then 
              setAccountData (player,"rank","[19]BG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Brigadier General.") 
                triggerClientEvent("r18", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 21000) then 
              setAccountData (player,"rank","[20]MG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Major General.") 
                triggerClientEvent("r19", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 26000) then 
              setAccountData (player,"rank","[21]LTG") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a Lieutenant General.") 
                triggerClientEvent("r20", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 35000) then 
              setAccountData (player,"rank","[22]GEN") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has been promoted. He is now a General.") 
                triggerClientEvent("r21", getRootElement()) 
            elseif (getAccountData (player,"zombieKills") == 50000) then 
              setAccountData (player,"rank","[23]GA") 
            setElementData ( killer, "Rank", myrank ) 
                      outputChatBox (getPlayerName(killer).." has reached the highest rank! He is General of the Army!") 
                triggerClientEvent("r22", getRootElement()) 
            end 
    end 
    ) 
    

    Client

    function imagedraw() 
          local px, py, pz, tx, ty, tz, dist 
          px, py, pz = getCameraMatrix() 
          for k, v in ipairs(getElementsByType("player")) do 
        if(getElementData(v, "Admin") == true) then 
             tx, ty, tz = getElementPosition(v) 
             dist = math.sqrt((px - tx) ^ 2 + (py - ty) ^ 2 + (pz - tz) ^ 2) 
             if dist < 30.0 then 
                if isLineOfSightClear(px, py, pz, tx, ty, tz, true, false, false, true, false, false, getLocalPlayer()) then 
                   local sx, sy, sz = getPedBonePosition(v, 5) 
                   local x,y = getScreenFromWorldPosition(sx, sy, sz + 0.3) 
                   if x then 
            dxDrawImage ( x, y, 50, 50, "rang/admin.png" ) -- DRAW A IMAGE ABOVE ADMIN`S HEAD 
            end 
            end 
        end 
        end 
    end 
    end 
    addEventHandler("onClientRender",getRootElement(),imagedraw) 
      
    local xp,yp = guiGetScreenSize() 
    x = xp/2 - 100/2+ 500 
    y = yp/2 - 100/2 + yp/4.5 
    image1 = guiCreateStaticImage( x,y, 100, 100, "rang/r1.png", false ) 
      
    addEvent("r1", true) 
    function image2() 
    guiStaticImageLoadImage(  image1, "rang/r2.png" ) -- ADD EVENTS FOR NEW RANK PICTURES 
    end 
    addEvent("r2", true) 
    function image3() 
    guiStaticImageLoadImage(  image1, "rang/r3.png" ) 
    end 
    addEvent("r3", true) 
    function image4() 
    guiStaticImageLoadImage(  image1, "rang/r4.png" ) 
    end 
    addEvent("r4", true) 
    function image5() 
    guiStaticImageLoadImage( image1, "rang/r5.png" ) 
    end 
    addEvent("r5", true) 
    function image6() 
    guiStaticImageLoadImage( image1, "rang/r6.png" ) 
    end 
    addEvent("r6", true) 
    function image7() 
    guiStaticImageLoadImage( image1, "rang/r7.png" ) 
    end 
    addEvent("r7", true) 
    function image8() 
    guiStaticImageLoadImage( image1, "rang/r8.png" ) 
    end 
    addEvent("r8", true) 
    function image9() 
    guiStaticImageLoadImage( image1, "rang/r9.png" ) 
    end 
    addEvent("r9", true) 
    function image10() 
    guiStaticImageLoadImage( image1, "rang/r10.png" ) 
    end 
    addEvent("r10", true) 
    function image11() 
    guiStaticImageLoadImage( image1, "rang/r11.png" ) 
    end 
    addEvent("r11", true) 
    function image12() 
    guiStaticImageLoadImage(  image1, "rang/r12.png" ) 
    end 
    addEvent("r12", true) 
    function image13() 
    guiStaticImageLoadImage(  image1, "rang/r13.png" ) 
    end 
    addEvent("r13", true) 
    function image14() 
    guiStaticImageLoadImage( image1, "rang/r14.png" ) 
    end 
    addEvent("r14", true) 
    function image15() 
    guiStaticImageLoadImage(  image1, "rang/r15.png" ) 
    end 
    addEvent("r15", true) 
    function image16() 
    guiStaticImageLoadImage( image1, "rang/r16.png" ) 
    end 
    addEvent("r16", true) 
    function image17() 
    guiStaticImageLoadImage( image1, "rang/r17.png" ) 
    end 
    addEvent("r17", true) 
    function image18() 
    guiStaticImageLoadImage(  image1, "rang/r18.png" ) 
    end 
    addEvent("r18", true) 
    function image19() 
    guiStaticImageLoadImage( image1, "rang/r19.png" ) 
    end 
    addEvent("r19", true) 
    function image20() 
    guiStaticImageLoadImage( image1, "rang/r20.png" ) 
    end 
    addEvent("r20", true) 
    function image21() 
    guiStaticImageLoadImage(  image1, "rang/r21.png" ) 
    end 
    addEvent("r21", true) 
    function image22() 
    guiStaticImageLoadImage( image1, "rang/r22.png" ) 
    end 
    addEvent("r22", true) 
    function image23() 
    guiStaticImageLoadImage( image1, "rang/r23.png" ) 
    end 
    addEventHandler( "r1", getResourceRootElement(), image2 ) -- ADD EVENT HANDLERS FOR THE NEW PICTURES 
    addEventHandler( "r2", getResourceRootElement(), image3 ) 
    addEventHandler( "r3", getResourceRootElement(), image4 ) 
    addEventHandler( "r4", getResourceRootElement(), image5 ) 
    addEventHandler( "r5", getResourceRootElement(), image6 ) 
    addEventHandler( "r6", getResourceRootElement(), image7 ) 
    addEventHandler( "r7", getResourceRootElement(), image8 ) 
    addEventHandler( "r8", getResourceRootElement(), image9 ) 
    addEventHandler( "r9", getResourceRootElement(), image10 ) 
    addEventHandler( "r10", getResourceRootElement(), image11 ) 
    addEventHandler( "r11", getResourceRootElement(), image12 ) 
    addEventHandler( "r12", getResourceRootElement(), image13 ) 
    addEventHandler( "r13", getResourceRootElement(), image14 ) 
    addEventHandler( "r14", getResourceRootElement(), image15 ) 
    addEventHandler( "r15", getResourceRootElement(), image16 ) 
    addEventHandler( "r16", getResourceRootElement(), image17 ) 
    addEventHandler( "r17", getResourceRootElement(), image18 ) 
    addEventHandler( "r18", getResourceRootElement(), image19 ) 
    addEventHandler( "r19", getResourceRootElement(), image20 ) 
    addEventHandler( "r20", getResourceRootElement(), image21 ) 
    addEventHandler( "r21", getResourceRootElement(), image22 ) 
    addEventHandler( "r22", getResourceRootElement(), image23 ) 
    

  13. it still does not work... here is what ive done:

      
    function imagedraw() 
          local px, py, pz, tx, ty, tz, dist 
          px, py, pz = getCameraMatrix() 
          for k, v in ipairs(getElementsByType("player")) do 
        if(getElementData(v, "Admin") == true) then 
             tx, ty, tz = getElementPosition(v) 
             dist = math.sqrt((px - tx) ^ 2 + (py - ty) ^ 2 + (pz - tz) ^ 2) 
             if dist < 30.0 then 
                if isLineOfSightClear(px, py, pz, tx, ty, tz, true, false, false, true, false, false, getLocalPlayer()) then 
                   local sx, sy, sz = getPedBonePosition(v, 5) 
                   local x,y = getScreenFromWorldPosition(sx, sy, sz + 0.3) 
                   if x then 
            dxDrawImage ( x, y, 50, 50, "rang/admin.png" ) 
            end 
            end 
        end 
        end 
    end 
    end 
    addEventHandler("onClientRender",getRootElement(),imagedraw) 
      
    

    I have set the Element Data to admin in another script.

  14. Okay I have changed some things like this:

      
    function lolmao(helm) 
    helmet = helm 
    zahl = 1 
    end 
    addEventHandler("movehelm", getRootElement(), lolmao) 
    ... 
      
    

      
    function stahlhelm(helmet) 
        if (zahl ~= 0) then 
    if (getElementData(player, "helmeted") == true) then 
        rz = getPedRotation (player) 
    ... 
      
    

    EDIT #1:::: You can watch the changed code a few posts above, ive edited it::::

    EDIT #2:::: I still get lots of bad arguments @

    stahlhelm.lua:20: Bad argument @ 'setElementPosition'

    stahlhelm.lua:21: Bad argument @ 'setElementRotation'

    ::::

  15. Hey i have tried to create the object server side and control it client side. But hey, thats breaking my brain :o

    Server

      
    helmart = nil 
      
    addEvent "onPlayerHeadshot" 
    addEventHandler("onPlayerDamage", getRootElement(), 
        function (attacker, weapon, bodypart, loss) 
            if bodypart == 9 then 
                local helmet = getElementData( source, "helmeted" ) 
                if (helmet == false) then 
                local result = triggerEvent("onPlayerHeadshot", source, attacker, weapon, loss) 
                if result == true then 
                killPed(source, attacker, weapon, bodypart) 
                end 
            end 
        end 
    end 
    ) 
      
    function helmi(sourcePlayer, cmd, helmart) 
    helmart = tonumber(helmart) 
    if (helmart == "" or helmart == nil) then 
        outputChatBox ( "Valid numbers are 0,1 and 2.", sourcePlayer ) 
    end 
      
    if (helmart == 0) then 
        destroyElement(helm) 
        setElementData ( sourcePlayer, "helmeted", false ) 
        triggerClientEvent("zahlnull", getRootElement(), helm) 
    end 
      
        if (helmart == 1) then 
        setElementData ( sourcePlayer, "helmeted", true ) 
            helm = createObject (2052, 1, 0, 1 ) -- tommy 
        outputChatBox ( "Tommy helmet" ) 
        -- setObjectScale(helm, 0.85) 
        setElementDoubleSided ( helm, true ) 
        triggerClientEvent( "movehelm", getRootElement(), helm) 
    end 
      
        if (helmart == 2) then 
        setElementData ( sourcePlayer, "helmeted", true ) 
            helm = createObject (2053, 1, 0, 1 ) -- jerry 
        outputChatBox ( "Jerry helmet" ) 
        -- setObjectScale(helm, 0.85) 
        setElementDoubleSided ( helm, true ) 
        triggerClientEvent( "movehelm", getRootElement(), helm) 
    end 
        if (helmart > 2) then 
            outputChatBox ( "Valid numbers are 0,1 and 2." ) 
        end 
    end 
    addCommandHandler("stahl", helmi) 
      
    

    Client

      
     helmet = nil 
    zahl = 0 
    player = getLocalPlayer() 
      
    addEvent("movehelm", true) 
    function lolmao(helm) 
    helmet = helm 
    zahl = 1 
    end 
    addEventHandler("movehelm", getRootElement(), lolmao) 
      
    function stahlhelm(helmet) 
        if (zahl ~= 0) then 
    if (getElementData(player, "helmeted") == true) then 
        rz = getPedRotation (player) 
        px, py, pz = getPedBonePosition(player, 8) 
        px = px+( ( math.cos ( math.rad ( rz ) ) ) * 0.02 ) - math.sin ( math.rad ( rz ) ) * 0.007 
        py = py+( ( math.sin ( math.rad ( rz ) ) ) * 0.02 ) + math.cos ( math.rad ( rz ) ) * 0.007 
                if (zahl == 1) then 
                    setElementPosition (helmet, px, py, pz+0.1 ) 
                    setElementRotation (helmet, 0,0,(rz-180) ) 
            end 
        end 
        end 
    end 
    addEventHandler ( "onClientPreRender", getRootElement(), stahlhelm ) 
      
    addEvent("zahlnull", true) 
    function nulll(helm) 
    zahl = 0 
    end 
    addEventHandler("zahlnull", getRootElement(), nulll) 
      
    function res() 
        outputChatBox("Stahlhelm by Einheit-101 loaded", 245,0,0) 
    end 
    addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), res) 
      
    

    I really hope that someguy knows whats wrong, however, it seems that the client "function stahlhelm(helm)" does not know the object helm because i get a "bad argument @ setElementPosition" and "setElementRotation".... :redhotevil:

×
×
  • Create New...