Guest User

Server side

a guest
Aug 21st, 2012
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.99 KB | None | 0 0
  1. ablauf = {}
  2. ped = {}
  3. stat = {}
  4. firetimer = {}
  5. timer = {}
  6. jx, jy, jz = {}, {}, {}
  7. pedSayTimer = {}
  8.  
  9. local say_messages = {
  10.     [1] = "Hallo!",
  11.     [2] = "Ich mache nur meinen Job.",
  12.     [3] = "Brauchst du Hilfe? Nein? Ich auch nicht.",
  13.     [4] = "Du befindest dich in einer sehr gefaehrlichen Lage.",
  14.     [5] = "Menschen koennen unterwasser ueberleben. Aber nicht lange.",
  15.     [6] = "Der Koerper eines Menschens enthaelt ein halbes kilo Salz.",
  16.     [7] = "Kopiere einen Spiegel, und du erhaelst einen Fotokopierer.",
  17.     [8] = "Der erste Passagierflug fand 1940 statt. Alle an Bord kreischten waerend des gesammten Flug's.",
  18.     [9] = "Der erste Mensch der bewies, das Kuhmlich trinkbar ist, war sehr, sehr durstig.",
  19.     [10] = "Bevor das Flugzeug erfunden wurde, musste jeder Mensch 100 Kilo Helium essen, um fliegen zu koennen.",
  20.     [11] = "Mobiltelefone verursachen kein Krebs. Nur Hepatitis.",
  21.     [12] = "69 Prozent aller Zaubertricks sind keine Zaubertricks, sondern hexerei.",
  22.     [13] = "Ratten koennen nicht spucken.",
  23.     [14] = "Auf jeden quadratzentimeter Mensch leben 32 Millionen Bakterien.",
  24.     [15] = "Der Mond umkreist die Erde alle 27,32 Tage.",
  25.     [16] = "Die Milliardste stelle von Pi ist 9.",
  26.     [17] = "Ein Liter Wasser wiegt 9,99 Kilogramm.",
  27.     [18] = "Heisses Wasser gefriert schneller als kaltes.",
  28.     [19] = "China ist der zweitgroesste Hersteller von Sojabohnen.",
  29.     [20] = "Wolfram besitzt den zweithoechsten Siedepunk. 3410.C",
  30.     [21] = "Die Zahene 2x Taeglich zu Reinigen ist die beste Methode gegen Mundgeruch.",
  31.     [22] = "Die Autobremse wurde erst 1895 erfunden. Zuvor musste der Fahrer solange im Kreis fahren, bis alle Insassen ihre Geschaefte erledigt hatten.",
  32.     [23] = "Der erste Mensch auf dem Mount Everest betrat ihn ausversehn, als er einen Vogel jagte.",
  33.     [24] = "Der Karpfen ist der giftigste Fisch der Welt.",
  34.     [25] = "Rechtshaender leben im Durchschnitt neun Jahre laenger als Linkshaender.",
  35.     [26] = "Eine Schlange kann bis zu 3 Jahren schlafen.",
  36.     [27] = "Wenn man 6 Jahre und 9 Monate ununterbrochen furzt, hat man genug Gas gesammelt, um die Energie einer Atombombe darzustellen.",
  37.     [28] = "Mit dem Kopf gegen die Wand zu knallen verbraucht 150 Kalorien die Stunde.",
  38.     [29] = "Es ist unmoeglich mit offenen Augen zu niesen.",
  39.     [30] = "Man stirbt eher an einem Champagner-Korken als von einer giftigen Spinne.",
  40.     [31] = "1567 stolperte der Mann mit dem laengsten Bart Europas ueber eben diesen, stuerzte die Treppe herab und brach sich das Genick.",
  41.     [32] = "In Indien ist es moeglich Tiere zu heiraten.",
  42.     [33] = "Erhitzt man Eier in der Mikrowelle explodieren sie.",
  43.     [34] = "Ein Mensch wiegt weniger, wenn der Mond genau ueber ihm steht.",
  44.     [35] = "Nach einer Auswertung von 32.000.000 Datensaetzen ist das haeufigste Passwort im Internet 123456.",
  45.     [36] = "Ein Mensch kann durch einen Sprung auf ebenem Boden nicht laenger als eine Sekunde in der Luft bleiben.",
  46.     [37] = "Tritt man gegen eine Laterne mit einer Quecksilberdampflampe, erlischt diese fuer bis zu 5 Minuten.",
  47.     [38] = "Der Halleyscher Komet naehert sich der Erde alle 76 Jahre.",
  48.     [39] = "Zu jeder Uhrzeit sind auf der ganzen Welt rund 50 Millionen Menschen betrunken."
  49. }
  50.  
  51. local function doPedSaySomething(ped)
  52.     if(isTimer(pedSayTimer[ped])) then
  53.         killTimer(pedSayTimer[ped])
  54.     end
  55.     if(isElement(ped)) then
  56.         local message = say_messages[math.random(1, #say_messages)]
  57.         local x, y, z = getElementPosition(ped)
  58.         local col = createColSphere(x, y, z, 10)
  59.         for index, p in ipairs( getElementsWithinColShape(col, "player") ) do
  60.             local x2, y2, z2 = getElementPosition ( p )
  61.             local distance = getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 )
  62.             local rgb = 15 * distance - 125
  63.             local rgb = math.abs ( rgb - 255 ) + 125
  64.             outputChatBox ("Bodyguard sagt: " ..message, p, rgb, rgb, rgb )
  65.         end
  66.         destroyElement(col)
  67.         pedSayTimer[ped] = setTimer(doPedSaySomething, 10000+math.random(5000, 60000), 1, ped)
  68.     end
  69. end
  70.  
  71.  
  72. local function functionscheck()
  73.     for index, p in next, ped do
  74.         if(isElement(p)) then
  75.             local player = getPlayerFromName(getElementData(p, "besitzer"))
  76.             if(player) and (ped[player]) then
  77.                 if(isElement(p)) and (ablauf[player] == true) then
  78.                     if not(stat[p]) then
  79.                         stat[p] = {}
  80.                         timer[p] = {}
  81.                     end
  82.                     local owner = player
  83.                     if(owner) then
  84.                         local x, y, z = getElementPosition(owner)
  85.                         local x2, y2, z2 = getElementPosition(p)
  86.                         if(getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) > 3) then
  87.                             -- SPRINT CHECK --
  88.                             stat[p]["running"] = true
  89.                             if(getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) > 10) then
  90.                                 if(stat[p]["jumping"] ~= true) and (stat[p]["inveh"] ~= true) then
  91.                                     setPedAnimation(p, "ped" , "sprint_civi", -1, true, true, false) -- Sprintet
  92.                                 end
  93.                             else
  94.                                 if(stat[p]["jumping"] ~= true) and (stat[p]["inveh"] ~= true) then
  95.                                     setPedAnimation(p, "ped" , "JOG_maleA", -1, true, true, false) -- Joggt
  96.                                 end
  97.                             end
  98.                             -- ROTATION --
  99.                             local x1, y1 = getElementPosition(p)
  100.                             local x2, y2 = getElementPosition(owner)
  101.                             local rot = math.atan2(y2 - y1, x2 - x1) * 180 / math.pi
  102.                             rot = rot-90
  103.                             setPedRotation(p, rot)
  104.                             -- CAR --
  105.                             local inveh = false
  106.                             if(isPedInVehicle(player)) then
  107.                                 inveh = true
  108.                             end
  109.                             if(inveh == true) and (getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) < 4) then
  110.                                 if(stat[p]["inveh"] ~= true) and (stat[p]["enterveh"] ~= true) then
  111.                                     stat[p]["enterveh"] = true
  112.                                     setPedAnimation(p)
  113.                                     triggerClientEvent(getRootElement(), "doPedEnter", player, p, true)
  114.                                     setTimer(function()
  115.                                         local occupants = getVehicleOccupants(getPedOccupiedVehicle(player))
  116.                                         for i = 1, getVehicleMaxPassengers(getPedOccupiedVehicle(player)), 1 do
  117.                                             if not(occupants[i]) then
  118.                                                 warpPedIntoVehicle(p, getPedOccupiedVehicle(player), i)
  119.                                                 stat[p]["inveh"] = true
  120.                                                 break;
  121.                                             end
  122.                                         end
  123.                                         stat[p]["enterveh"] = false
  124.                                     end, 2000, 1)
  125.                                 end
  126.                             else
  127.                                 if(stat[p]["inveh"] == true) and (stat[p]["enterveh"] == false) and(isPedInVehicle(player) == false) then -- er ist nicht im auto aber ich bin es
  128.                                     stat[p]["enterveh"] = true
  129.                                     triggerClientEvent(getRootElement(), "doPedExitVeh", player, p, true)
  130.                                     setTimer(function()
  131.                                         removePedFromVehicle(p)
  132.                                         stat[p]["enterveh"] = false
  133.                                         stat[p]["inveh"] = false
  134.                                     end, 1000, 1)
  135.                                 end
  136.                             end
  137.                             -- JUMP CHECK  --
  138.                             if(inveh == false) then
  139.                                 if((z-z2) > 0.8) and (getDistanceBetweenPoints3D(x, y, z, x2, y2, z2) < 4) and (stat[p]["jumping"] ~= true) then -- er ist oben
  140.                                     stat[p]["jumping"] = true
  141.                                     setPedAnimation(p)
  142.                                     triggerClientEvent(getRootElement(), "doPedJump", player, p, true)
  143.                                     if(isTimer(timer[p]["jump"])) then killTimer(timer[p]["jump"]) end
  144.                                     timer[p]["jump"] = setTimer(function()
  145.                                         stat[p]["jumping"] = false
  146.                                         triggerClientEvent(getRootElement(), "doPedJump", player, p, false)
  147.                                     end, 800, 1)
  148.                                 end
  149.                             end
  150.                         else
  151.                             if (stat[p]["running"] == true)then
  152.                                 stat[p]["running"] = false
  153.                                 setPedAnimation(p)
  154.                             end
  155.                         end
  156.                     else
  157.                         destroyElement(p)
  158.                     end
  159.                 end
  160.             end
  161.         else
  162.             p = nil
  163.         end
  164.     end
  165. end
  166.  
  167. setTimer(functionscheck, 200, -1)
  168.  
  169.  
  170.  
  171.  
  172. addCommandHandler("getguard", function(p)
  173. if isObjectInACLGroup ( "user." ..getAccountName ( getPlayerAccount ( p ) ), aclGetGroup ( "Admin" ) ) then
  174.     if(ablauf[p] == true) then return end
  175.     ablauf[p] = true
  176.     local x, y, z = getElementPosition(p)
  177.     ped[p] = createPed(164, x, y+1, z)
  178.     setElementData(ped[p], "besitzer", getPlayerName(p))
  179.     setElementData(ped[p], "bodyguard", true)
  180.     giveWeapon(ped[p], 25, 99999, true)
  181.     setPedStat (ped[p], 72, 999)
  182.     addEventHandler("onPedWasted", ped[p], function()
  183.         local ped = source
  184.         setTimer(destroyElement, 1000, 1, ped)
  185.         ablauf[p] = false
  186.  
  187.     end)
  188.   end
  189. end)
Advertisement
Add Comment
Please, Sign In to add comment