Angepinnt Kleine-Scripting-Fragen

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

    • Oh ja ich hatte getRootElement ups egal ist jetzt clientseitig :D

      Habt direkt aber noch eine neue Frage und zwar ist es möglich das auto indem der player einsteigt schon abzufragen ohne das er im auto sitzt? Weil ich mache ein car lock system sprich beim einsteigen öffnet sich ein fenster wo man das password von dem auto eingeben muss. Das password setze ich via setElementData auf das auto die abfragen ist dann halt mit getElementData aber ich kann während dem einsteigen noch kein getElementData nutzen da getPedOccupiedVehicle nil ist. Vielleicht habt ihr ja ideen wie man das komplett anders machen kann
      Full PvP DayZ [MTA DayZ]
      Server: mtasa://185.249.198.123:22003
      :) :) :) :) :) :) :) :) :) :)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Hardcore4435 ()

    • @Hardcore4435 wenn du die Funktion richtig nutzt funktioniert sie auch.

      Hier ein Beispiel, was einem beim "f" drücken im Chat ausgibt, wer welches Fahrzeug betreten wollte und cancelt dann das event und lässt einen nicht einsteigen.

      LUA-Quellcode

      1. function output(enteringPlayer)
      2. name = getPlayerName(enteringPlayer)
      3. auto = getVehicleName(source)
      4. outputChatBox(""..name.." hat versucht das Fahrzeug "..auto.." zu betreten!",enteringPlayer,255,0,0)
      5. cancelEvent()
      6. end
      7. addEventHandler("onVehicleStartEnter",getRootElement(),output)
      Das ganze sieht dann so aus:
      streamable.com/icahb
    • LUA-Quellcode

      1. addEventHandler( "onVehicleStartEnter", function( player )
      2. local veh = getPedOccupiedVehicle(player)
      3. local passwort = getElementData(veh,"pw")
      4. triggerClientEvent(player,"window",player,veh, passwort)
      5. end )
      6. addEvent("checkPassword", true)
      7. function checkPassword(eingegebenesPw,veh,passwort)
      8. If eingegebensPw ~= passwort then
      9. setVehicleLocked( veh, true )
      10. else
      11. outputChatBox("Falsches Passwort!", player, 255,0,0)
      12. end
      13. addEventHandler("checkPassword",getRootElement(),checkPassword)
      Alles anzeigen
    • Servus hab nochmal ne frage. Hab hier ne kleine Funktion die mir den Inhalt von nem Table ausgibt. Möchte diese Funktion jetzt triggern und den wert der returned wird damit abfragen

      Hier die funktion:

      LUA-Quellcode

      1. function getVehiclesFromUser()
      2. for key,value in pairs(fahrzeugeUser) do
      3. outputChatBox(tostring(value))
      4. return tostring(value)
      5. end
      6. end
      7. addEvent("getVehiclesFromUser",true)
      8. addEventHandler("getVehiclesFromUser",root,getVehiclesFromUser)


      trigger es so:

      LUA-Quellcode

      1. triggerEvent("getVehiclesFromUser",localPlayer,localPlayer)
      Full PvP DayZ [MTA DayZ]
      Server: mtasa://185.249.198.123:22003
      :) :) :) :) :) :) :) :) :) :)
    • LUA-Quellcode

      1. function respawnDeadPlayer(ammo, attacker, weapon, bodypart)
      2. fadeCamera(source, false, 7)
      3. setTimer(respawn, 5000, 1,source)
      4. givePlayerXP ( attacker, math.random(350,450) )
      5. end
      6. addEventHandler("onPlayerWasted", getRootElement(), respawnDeadPlayer)
      7. function respawn(p)
      8. spawnPlayer(p, 1173.197265625, -1323.5419921875, 15.395062446594)
      9. fadeCamera(p, true, 5)
      10. end
      Alles anzeigen
      Warum respawned der spieler nicht? Debugscript sagt nichts. Er faded quasi die ganze zeit nur raus sobald der timer abgelaufen ist portet sich die kamera nochmal an die spieler leiche und geht dann wieder weiter nach oben und es passiert einfach NICHTS. Verstehe das nicht
      Full PvP DayZ [MTA DayZ]
      Server: mtasa://185.249.198.123:22003
      :) :) :) :) :) :) :) :) :) :)
    • Servus leute hab hier eine tabelle aus dieser entnehme ich per math.random eine zahl von 1 - 3. Dadurch bekomme ich dann den map namen. jede map hat einen eigenen table mit spawn positionen. Ich möchte nun in zeile 26 den mapnamen den ich per mathrandom bekommen habe benutzen um die jeweilige Tabelle anzusteuern. Allerdings funktionert das so nicht bzw ich weiß nichtmal ob das überhaupt so funktionieren kann.

      Ich bedanke mich für jegliche Hilfe!



      LUA-Quellcode

      1. crossMaps = {
      2. [1]="derby1",
      3. [2]="atmosfera",
      4. [3]="blacksabbath",
      5. [4]="crossly",
      6. [5]="crossmey",
      7. [6]="crossmonde",
      8. [7]="crosss",
      9. [8]="crosst",
      10. [9]="crossxl",
      11. [10]="crossxl-b",
      12. [11]="crosszl",
      13. [12]="crosszy",
      14. [13]="dynamium",
      15. [14]="maracaibo",
      16. [15]="maracaibozm",
      17. }
      18. function createStartPositionCross ()
      19. dasTeam = getPlayerTeam(getLocalPlayer())
      20. local players2 = getPlayersInTeam ( dasTeam )
      21. local rn = math.random(1,3)
      22. local map = crossMaps[rn]
      23. outputChatBox("map: "..map)
      24. for playerKey2, playerValue2 in ipairs ( players2 ) do
      25. local x,y,z,rx,ry,rz = map[playerKey2][1],map[playerKey2][2],map[playerKey2][3],map[playerKey2][4],map[playerKey2][5],map[playerKey2][6]
      26. outputChatBox("Number "..playerKey2.. " and team "..getTeamName(dasTeam) )
      27. outputChatBox(x.. "|"..y.."|"..z.."|"..rx.."|"..ry.."|"..rz)
      28. triggerServerEvent("createVehicle",playerValue2,playerValue2,x,y,z,rx,ry,rz)
      29. playerlist(getPlayerName(playerValue2),playerKey2)
      30. end
      31. end
      Alles anzeigen
      Full PvP DayZ [MTA DayZ]
      Server: mtasa://185.249.198.123:22003
      :) :) :) :) :) :) :) :) :) :)
    • Ich sehe hier ein kleines Problem mit der benennung deiner Variablen

      LUA-Quellcode

      1. local map = crossMaps[rn] -- map ist ein Text
      2. outputChatBox("map: "..map)
      3. for playerKey2, playerValue2 in ipairs ( players2 ) do
      4. local x,y,z,rx,ry,rz = map[playerKey2][1],map[playerKey2][2],map[playerKey2][3],map[playerKey2][4],map[playerKey2][5],map[playerKey2][6] -- du behandelst einen Text wie eine Tabelle



      Weiss nicht wie deine Tabelle "map" aussieht, also schätze ich jetzt einfach mal

      LUA-Quellcode

      1. crossMaps = {
      2. [1]="derby1",
      3. [2]="atmosfera",
      4. [3]="blacksabbath",
      5. [4]="crossly",
      6. [5]="crossmey",
      7. [6]="crossmonde",
      8. [7]="crosss",
      9. [8]="crosst",
      10. [9]="crossxl",
      11. [10]="crossxl-b",
      12. [11]="crosszl",
      13. [12]="crosszy",
      14. [13]="dynamium",
      15. [14]="maracaibo",
      16. [15]="maracaibozm",
      17. }
      18. map = {
      19. ["derby1"] = {
      20. [1] = 2153,
      21. [2] = 124,
      22. [3] = 4521,
      23. [4] = 2453,
      24. [5] = 532,
      25. [6] = 2153,
      26. },
      27. ["atmosfera"] = {
      28. [1] = 2153,
      29. [2] = 124,
      30. [3] = 4521,
      31. [4] = 2453,
      32. [5] = 532,
      33. [6] = 2153,
      34. },
      35. --usw usw
      36. }
      37. function createStartPositionCross ()
      38. dasTeam = getPlayerTeam(getLocalPlayer())
      39. local players2 = getPlayersInTeam ( dasTeam )
      40. local rn = math.random(1,3)
      41. local dieMap = crossMaps[rn]
      42. outputChatBox("map: "..map)
      43. for playerKey2, playerValue2 in ipairs ( players2 ) do
      44. -- Du moechtest glaube ich in die zufallsgenerierte Karte
      45. local x,y,z,rx,ry,rz = map[dieMap][1],map[dieMap][2],map[dieMap][3],map[dieMap][4],map[dieMap][5],map[dieMap][6]
      46. outputChatBox("Number "..playerKey2.. " and team "..getTeamName(dasTeam) )
      47. outputChatBox(x.. "|"..y.."|"..z.."|"..rx.."|"..ry.."|"..rz)
      48. triggerServerEvent("createVehicle",playerValue2,x,y,z,rx,ry,rz)
      49. playerlist(getPlayerName(playerValue2),playerKey2)
      50. end
      51. end
      Alles anzeigen
      Habs jedoch nicht getestet
    • Moin

      Ich habe dir hier mal ein Beispiel zusammengestellt, um das Zusammenspiel von Indizes und Values ein wenig zu zeigen.
      Prinzipiell kannst du deine Tables beliebig verschachteln, du musst dir einfach über die Zugriffe bewusst sein.
      Leider wusste ich nicht ganz genau, was du meinst, daher habe ich ein paar Sachen meinerseits angenommen.
      Dein Code schien mir ein wenig merkwürdig, da er scheinbar Client-Side ausgeführt wird. Ich kann dir an dieser Stelle nur abraten.
      Spawnpoints etc ist eigentlich Sache des Servers, da das ja an alle Clients gehen soll. Es kann schon Situationen geben, wo man Client-Side Sachen umsetzt, jedoch konnte ich das dem Code nicht entnehmen.
      Hier wäre der Code zum anschauen. Wenn du etwas nicht verstehst - einfach fragen.

      LUA-Quellcode

      1. crossMaps = {
      2. {
      3. mapname = "derby1",
      4. spawnpoints = {
      5. {x = 11.11, y = 21.22, z = 31.33, rx = 41.44, ry = 51.55, rz = 61.66},
      6. {x = 12.11, y = 22.22, z = 32.33, rx = 42.44, ry = 52.55, rz = 62.66},
      7. {x = 13.11, y = 23.22, z = 33.33, rx = 43.44, ry = 53.55, rz = 63.66},
      8. {x = 14.11, y = 24.22, z = 34.33, rx = 44.44, ry = 54.55, rz = 64.66},
      9. }
      10. }, -- Dies ist nun eine Map mit einem Map Name derby1 und 4 spawnpoints
      11. -- ...
      12. }
      13. function createStartPositionCross ()
      14. local randomIndex = math.random( 1, #crossMaps ) -- Wähle einen zufälligen Index für eine Map
      15. local map = crossMaps[randomIndex]
      16. print( "Map: " .. map.mapname )
      17. for spawnKey, spawnVal in ipairs ( map.spawnpoints ) do
      18. print( spawnVal.x .. "|" .. spawnVal.y .. "|" .. spawnVal.z .. "|" .. spawnVal.rx .. "|" .. spawnVal.ry .. "|" .. spawnVal.rz )
      19. end
      20. end
      Alles anzeigen

      Derzeitiger Output:

      Quellcode

      1. Map: derby1
      2. 11.11|21.22|31.33|41.44|51.55|61.66
      3. 12.11|22.22|32.33|42.44|52.55|62.66
      4. 13.11|23.22|33.33|43.44|53.55|63.66
      5. 14.11|24.22|34.33|44.44|54.55|64.66