Jump to content

Einheit-101

Distinguished Members
  • Posts

    662
  • Joined

  • Last visited

  • Days Won

    15

Everything 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 The problem is, that the Peds die correctly 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. 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. Hmm, XX3 i think THIS Video is what you want to say? I have this problem too. But with a clean gta3.img MTA works perfectly. Only if i mod it the game starts going crazyyyy
  7. 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
  8. Hmm yes but a Hunter/seasparrow/Rustler MG is not able to damage the Rhino and that is what i want to do^^ There is no function at the moment that retrieves an "hitElement" for "onVehicleFire" because its still in development^^
  9. Of course. A rhino CAN NOT BE DAMAGED with any weapon except Flamethrowers or Molotovs (Fire.) and you can only damage a rhino with that 2 weapons or if you drive it against a wall. shoot 99999 bullets of a minigun on a rhino. he still has 1001 HP.
  10. 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
  11. You made this to destroy the Helmtet after Quit? Thanks, i even didnt thought about that.
  12. Einheit-101

    Season Greetings

    Top 5? Why not Top 1? 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
  13. EDIT:::: THE RESOURCE WORKS NOW!!!! THANKS TO ALL COMMUNITY GUYS WHO HELPED ME! REALLY THANKS! I will upload the modified resource in ~2 weeks with advanced features! :::can be closed:::
  14. Impossible, my opinion. Client side only no problem, but the object has to be visible for all players (server side). Contacting the server to create and move the object every "PreRender" needs too much resource and too much time. So the object will lag and not move smoothly.
  15. 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... Suggestion: developing "attachElementToBone" function or sth. like that PS: Citicen, congrats to your "101st" post, i like this number^^
  16. No, its not ONE object, every player can create one and it should follow a specific Bone.
  17. 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 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)
  18. Wow you all really know what youre doing.... Answer: Because I have no experience
  19. 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)
  20. 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 )
  21. 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.
  22. Do you mean function Stahlhelm(helmet) to function Stahlhelm() ???
  23. 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' ::::
  24. Hey i have tried to create the object server side and control it client side. But hey, thats breaking my brain 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"....
  25. The Problem is that the rest of the script is not finished. I will be able to test it if the rest works. Rank system
×
×
  • Create New...