Angepinnt Nützliche Codeschnipsel

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Nützliche Codeschnipsel

      Jop, hier findet ihr wichtige Codeschnipsel.

      Definiert bitte, ob es sich um Client oder Serverside Snippets handelt.

      ---

      Ich mach dann mal den Anfang:

      Etwas realere Waffensounds. CLIENTSIDE

      Quellcode

      1. function realisticWeaponSounds(weapon)
      2. local x, y, z = getElementPosition(getLocalPlayer())
      3. local tX, tY, tZ = getElementPosition(source)
      4. local distance = getDistanceBetweenPoints3D(x, y, z, tX, tY, tZ)
      5. if distance < 25 and weapon >= 22 and weapon <= 34 then
      6. local randSound = math.random(27, 30)
      7. playSoundFrontEnd(randSound)
      8. end
      9. end
      10. addEventHandler("onClientPlayerWeaponFire", getRootElement(), realisticWeaponSounds)
      Alles anzeigen
      Q: How many programmers does it take to change a light bulb?
      A: None. It’s a hardware problem.
    • Ein Script, dass ingame die Position, die Rotation und die Veh Rotation des Spielers rausgibt! Man kann die Koordinaten über die Konsole (F8 ) sehr leicht kopieren ! (Benutzung : /recordpos)
      Die zweite Funktion gibt den Interrior und die Koordinaten heraus! (/int)
      (Format: Int,X,Y,Z)

      Serverseitig !

      Brainfuck-Quellcode

      1. function savePosDataCMD ( player, command, ... )
      2. local xfloat,yfloat,zfloat = getElementPosition ( player )
      3. local rotstring = tostring ( getPedRotation ( player ) )
      4. local intstring = tostring ( getElementInterior ( player ) )
      5. local xstring = tostring ( xfloat )
      6. local ystring = tostring ( yfloat )
      7. local zstring = tostring ( zfloat )
      8. local note = table.concat({...}, " ")
      9. outputChatBox ( "SavePos Record: " .. note, player )
      10. outputChatBox ( "Position: " .. xstring .. ", " .. ystring .. ", " .. zstring, player )
      11. outputChatBox ( "Rotation: " .. rotstring, player )
      12. outputChatBox ( "Interior: " .. intstring, player )
      13. if ( isPedInVehicle ( player ) ) then
      14. local vx, vy, vz = getVehicleRotation ( getPedOccupiedVehicle ( player ) )
      15. outputChatBox ( "Veh Rot XYZ: " .. tostring ( vx ) .. ", " .. tostring ( vy ) .. ", " .. tostring ( vz ), player )
      16. end
      17. outputChatBox ( "-----------------------------", player )
      18. end
      19. addCommandHandler ( "recordpos", savePosDataCMD )
      Alles anzeigen



      Quellcode

      1. function saveIntDataCMD ( player, command, ... )
      2. local xfloat,yfloat,zfloat = getElementPosition ( player )
      3. local intstring = tostring ( getElementInterior ( player ) )
      4. local xstring = tostring ( xfloat )
      5. local ystring = tostring ( yfloat )
      6. local zstring = tostring ( zfloat )
      7. local note = table.concat({...}, " ")
      8. outputChatBox ( "SavePos Record: " .. note, player )
      9. outputChatBox ( ""..intstring.."|".. xstring .. "|" .. ystring .. "|" .. zstring, player )
      10. end
      11. addCommandHandler ( "int", saveIntDataCMD )
      Alles anzeigen
      Ich bin nicht mehr in MTA aktiv!

      rewrite.hacksand.win

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von [Vio]ReWrite ()

    • Attacht zwei Objekte aneinander und berücksichtigt dabei deren Position:

      Quellcode

      1. function attachElementsInCorrectWay ( element1, element2 )
      2. local x1, y1, z1 = getElementPosition ( element1 )
      3. local x2, y2, z2 = getElementPosition ( element2 )
      4. attachElements ( element1, element2, x1-x2, y1-y2, z1-z2 )
      5. end

      Gib Godfather/Gates keine Chance!
    • Unendliche Welt

      Enstand für ein Projekt, portet den Spieler korrekt an das andere Ende der Welt, somit das San Andreas unendlich scheint.

      Quellcode

      1. local worldcycle
      2. local localPlayer = getLocalPlayer()
      3. function startWorld()
      4. worldcycle = createColCircle(0, 0, 3700)
      5. end
      6. addEventHandler('onClientResourceStart', getResourceRootElement(), startWorld)
      7. function onWorldShapeLeave(element)
      8. if element == localPlayer then
      9. local x, y, z = getElementPosition(localPlayer)
      10. local r = getPedRotation(localPlayer)
      11. x, y = x + -7120*math.cos(math.rad(r + 90)), y + -7120*math.sin(math.rad(r + 90))
      12. local vehicle = getPedOccupiedVehicle(localPlayer)
      13. if vehicle then
      14. local vx, vy, vz = getElementVelocity(vehicle)
      15. setElementPosition(vehicle, x, y, z, false)
      16. setElementVelocity(vehicle, vx, vy, vz)
      17. else
      18. local vx, vy, vz = getElementVelocity(localPlayer)
      19. setElementPosition(localPlayer, x, y, z, false)
      20. setElementVelocity(localPlayer, vx, vy, vz)
      21. end
      22. end
      23. end
      24. addEventHandler("onClientColShapeLeave",getRootElement(), onWorldShapeLeave)
      Alles anzeigen
      Q: How many programmers does it take to change a light bulb?
      A: None. It’s a hardware problem.
    • Damit hat man bei PD in SF ein Tor das sich mit mvpd1 und mvpd2 öffnen und schliessen lässt:

      Quellcode

      1. gate1 = createObject ( 10184, -1631.654296875, 688.544921875, 8.709262809753, 0, 0, 270 )
      2. function Gate_down ()
      3. moveObject (gate1, 3500, -1631.654296875, 688.544921875, 12.999262809753, 0, 0, 0 )
      4. end
      5. addCommandHandler ("mvpd1", Gate_down)
      6. function Gate_Up ()
      7. moveObject (gate1, 3500, -1631.654296875, 688.544921875, 8.709262809753, 0, 0, 0 )
      8. end
      9. addCommandHandler ("mvpd2", Gate_Up)
      Alles anzeigen
      Jo Liebe User!
      Ihr sucht einen guten Reallife Server?
      Ihr seit keine Kiddies? ^^
      Ihr könnt supporten,mappen und scripten?
      Dann meldet euch doch mal auf teo-rl.de




    • Bevor ein Spieler den Server betritt, anzeigen.

      Betreten, gibt es schon bei joinquit

      Quellcode

      1. function playerConnect(playerNick, playerIP, playerUsername, playerSerial, playerVersionNumber)
      2. -- outputChatBox("* " .. playerNick .. " hat den Server betreten", getRootElement(), 255, 100, 100, false)
      3. -- oder was bevorzugt ist auf Englisch
      4. -- outputChatBox("* " .. playerNick .. " has connected the Server", getRootElement(), 255, 100, 100, false)
      5. -- Was ihr nimmt macht ihr beim Anfang den -- weg!
      6. end
      7. addEventHandler("onPlayerConnect", getRootElement(), playerConnect)

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von Syping ()

    • Formatiert einen Preis den man als Wert hat ( z.b. 5000000 ) um zu einem
      String ( z.b. "5.000.000 $" :(

      Quellcode

      1. function formNumberToMoneyString ( value )
      2. if tonumber ( value ) then
      3. value = tostring ( value )
      4. if string.sub ( value, 1, 1 ) == "-" then
      5. return "-"..setDotsInNumber ( string.sub ( value, 2, #value ) ).." $"
      6. else
      7. return setDotsInNumber ( value ).." $"
      8. end
      9. end
      10. return false
      11. end
      12. local function setDotsInNumber ( value )
      13. if #value > 3 then
      14. return setDotsInNumber ( string.sub ( value, 1, #value - 3 ) ).."."..string.sub ( value, #value - 2, #value )
      15. else
      16. return value
      17. end
      18. end
      Alles anzeigen

      Gib Godfather/Gates keine Chance!
    • ---->MiniScript[Serverside]
      Portet den Spieler in die gewünschte X/Y/Z/Interior/Dimension Position!

      LUA-Quellcode

      1. function TelePort(thePlayer,command,X,Y,Z,int,Dim)
      2. if (X) and (Y) and (Z) and (int) and (Dim) then
      3. setElementPosition (thePlayer,X,Y,Z )
      4. setElementInterior (thePlayer, int)
      5. setElementDimension(thePlayer,Dim)
      6. outputChatBox("Port! [Dim:"..Dim.."] [Int: "..int.."]",thePlayer,10,200,10)
      7. else
      8. outputChatBox("Der Command lautet: /po (X) (Y) (Z) (Int) (Dim)",thePlayer,255,0,0)
      9. end
      10. end
      11. addCommandHandler("po",TelePort)
      Alles anzeigen




      ---->MiniScript[Serverside]
      Mit dem Script kann man seinen Kopf abnehmen und wieder aufsetzen!

      LUA-Quellcode

      1. function Head2(thePlayer)
      2. setPedHeadless(thePlayer, true)
      3. outputChatBox("TRUE", thePlayer, 255, 0, 0)
      4. end
      5. addCommandHandler("Ko1", Head2)
      6. function Head1(thePlayer)
      7. setPedHeadless(thePlayer, false)
      8. outputChatBox("FALSE", thePlayer, 5, 250, 0)
      9. end
      10. addCommandHandler("Ko2", Head1)
      Alles anzeigen
      Dateien
      Life of San Andreas Reallife Script Verkauf Skype: ShadyGRs *klick to add

      Vorteile des Scripts:
      • Schnelle Installation!
      • Keine versteckten Backdoors!
      • Extra Website mit Lizenzschlüssel!
      • Keine MySQL Module notwendig!
      • Gut durchdachtes und konzeptorientiertes Script!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von [RR]Shady ()

    • -> Freie Dimension bekommen [Client & Server-Seitig]
      Mit dieser Funktion kann man eine Freie Dimension bekommen, in der kein Element vorhanden ist.
      Einfach als Parameter das Element dranhängen, das sich auf die Abfrage konzentriert.

      LUA-Quellcode

      1. function getFreeDimension(typ)
      2. local var
      3. local rand = math.random(1, 65535)
      4. for index, element in pairs(getElementsByType(typ)) do
      5. if(var == 1) then return end
      6. if(getElementDimension(element) == rand) then
      7. var = 1
      8. getFreeDimension(typ)
      9. else
      10. var = 0
      11. return rand;
      12. end
      13. end
      14. end
      Alles anzeigen
      Mit freundlichen Grüßen,
      Noneatme
      WEBSITE | GITHUB | STACKOVERFLOW | E-MAIL | DONATE
      VERFÜGBAR VON MON-FRI 7-9 PM | SAT-SUN 1-10PM

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von MuLTi ()

    • Deine Funktion ist nicht wirklich Effizient. Es gibt zum einen nur 65535 Dimensionen, daher ist eine Zahl größer als 65535 für setElementDimension ungültig. Weiterhin kann es passieren, dass du mehrere Schleifendurchläufe benötigst.

      Ich würds so machen:
      getDimension = freie Dimensionsid abfragen
      freeDimension = Dimensionsid wieder freigeben

      LUA-Quellcode

      1. -- Dimensionslist, Dimension 0 ist in Benutzung
      2. local usedDimensions = { true }
      3. function getDimension()
      4. local id = #usedDimensions+1
      5. usedDimensions[id] = true
      6. return id <= 65535 and id or -1
      7. end
      8. function freeDimension(id)
      9. usedDimensions[id] = nil
      10. end
      Alles anzeigen
      Mich per PN bezüglich Freischaltungen zu nerven ist der beste Weg eine Freischaltung zu verhindern.

      neon-gaming.de
    • [email protected], leider besteht das Problem, dass man mit setElementDimension(bla, bla) nicht den Table usedDimensions verändert, deshalb ist es möglich, dass Spieler sich auf der Gleichen Dimension treffen.
      //edit, Bei deiner Funktion wird man gezwungen nur mit getDimension() zu Arbeiten.
      Mit freundlichen Grüßen,
      Noneatme
      WEBSITE | GITHUB | STACKOVERFLOW | E-MAIL | DONATE
      VERFÜGBAR VON MON-FRI 7-9 PM | SAT-SUN 1-10PM
    • LUA-Quellcode

      1. function trimTextIntoLines(text, maxLettersPerRow)
      2. words = {}
      3. i=1
      4. while (gettok(text,i, " ") ~= false) do
      5. words[i] = gettok(text, i , " ")
      6. i = i+1;
      7. end
      8. count=0
      9. text = ""
      10. for index, value in pairs(words) do
      11. count = count + #value
      12. if (count > maxLettersPerRow) then
      13. text = text.."\n"..value.." "
      14. count = 0
      15. else
      16. text = text..value.." "
      17. end
      18. end
      19. return text
      20. end
      Alles anzeigen


      Eine Funktion, die eine Zeichenkette in mehrere Zeilen aufteilt (mit \n) .

      Gibt die in Zeilen getrimmte Zeichenkette zurück.
      Ich bin nicht mehr in MTA aktiv!

      rewrite.hacksand.win
    • Pay funktion :)

      Pay funktion ist jz jeden eigl klar aber trozden Serverside!

      LUA-Quellcode

      1. function money_func(player,cmd,playername,money)
      2. if playername and money then
      3. local player2 = getPlayerFromName(playername)
      4. if player2 then
      5. if tonumber(money) and tonumber(money) >= 1 then
      6. givePlayerMoney(player2,tonumber(money))
      7. takePlayerMoney(player,tonumber(money))
      8. outputChatBox("Du hast von "..getPlayerName(player).." "..tonumber(money).." $ Bekommen!", player2)
      9. outputChatBox("Du hast "..getPlayerName(player2).." "..tonumber(money).." $ gegeben!", player)
      10. end
      11. end
      12. else
      13. outputChatBox("Benutzung: /pay [Spieler] [Geld]",player)
      14. end
      15. end
      16. addCommandHandler("pay",money_func)
      Alles anzeigen
    • --> Serverside

      Erklärung: Macht einen User unsichtbar (falls nicht Freeroam, ansonsten '/ap 0' verwenden) und mit dem gleichen Befehl wieder sichtbar.
      Befehl: '/invs'

      LUA-Quellcode

      1. iv = 0
      2. function toggleInvis( source )
      3. if iv == 0 then
      4. iv = 1
      5. setPlayerNametagShowing(source, false)
      6. setElementAlpha(source, 0)
      7. else
      8. iv = 0
      9. setPlayerNametagShowing(source, true)
      10. setElementAlpha(source, 255)
      11. end
      12. end
      13. addCommandHandler ( "invs", toggleInvis )
      Alles anzeigen



      M.f.G.
      Nikoo