Beiträge von Mario

    Tabellenaufbau =

    Lua
    {[1]="map1"
     [2]="map2"
     [3]="map1"
     [4]="map1"
     ...
    }


    Also numerische Indizes ohne Unterbrechung?

    Dann wäre meine Lösung, ansonsten das ipairs durch pairs ersetzen. (Ungetestet)

    Das ist jetzt meine letzte Antwort hier, es wird mir wirklich zu doof:

    Oh JUNGE!

    Kein Kommentar.


    Ich hab nichts kopiert ich hatte das alles schon drin

    Ich gehe davon aus, du hast den verbesserten Code einfach übernommen und deinen qualitativ nicht gerade hochwertigen Code dadurch ersetzt.

    uerber mich zu laestern ist eine frechheit

    Tue ich nicht und habe ich nicht vor, ich äußere, in meinen Augen, konstruktive Kritik.


    so wie du dich ausdrueckst ist einfach nur unangemesen.

    Sehe ich nicht ganz so.


    denk mal nach was du von dir gibst bevor du mich dastellst als waere ich undankbar

    Allein deine Reaktion unterstreicht doch, das du undankbar bist.
    Ich mache mir hier die Mühe, schreibe ewig lange Beiträge, versuche zu verhindern, das du die typischen Anfängerfehler begehst und hangel mich durch deine teilweise schwer lesbaren Fragestellungen.


    wie Domme sagte ich hbab zu ihm gesagt ich will das machen sonst haette er es gemacht und ich lernte da durch nichts.

    Trotz alledem gehst du nicht auf meine gut gemeinten Vorschläge ein (aus diesem Thema und vor allem dem anderen Beitrag) ein, diese könnten dir sehr viel weiterhelfen.
    Außerdem kann man sehr wohl durch zuschauen etwas lernen, so würdest du evtl. mehr lernen, als wenn du dir grobe Fehler angewöhnst, indem du es selbst machst.


    Over and out

    Er nutzt das Wiki nicht, dazu nutzt er keinen gescheiten Editor( er nutzt einen Ingame Resourcen Manager) was seine Einrückung rechtfertigt.

    Solche Fehler haben wohl viele gemacht und unser Bestreben ist es, zu verhindern, dass die Leute falsch anfangen.
    Wenn du dich im Moment mit ihm beschäftigst, versuch bitte, ihm das "einzuhämmern".
    Ist vermutlich sowieso besser, wenn ihr beide das macht, vlt. könnt ihr bald vom jeweils anderen was lernen, notfalls sind wir ja da.

    1.

    auserdem hab ich das was du im Beitrag hast schon lengst ersetzt

    Du solltest aus meinem Beitrag nicht kopieren, sondern lernen.
    Was hilft es dir, wenn du jetzt ein Stück guten Code hast und katastrophal weitermachst?

    2.

    mein text mit der function das hast es gekauft
    else
    wieder text du hast nicht genug geld bla bla bla
    end
    end
    end
    addEventHandler


    ordentlichen, vollständigen Quellcode vorlegen.

    Ist hier eindeutig nicht gegeben.
    Ordentlich heißt eingerückt und mit der Quellcode Funktion gepostet.
    Vollständig heißt den ganzen relevanten Code (oder auch nur einen Versuch) zu posten.
    Auch wenn du darüber beschreibst, was du machen möchtest, hilft uns der Code wirklich weiter.
    Erstens können wir so herausfinden, was mit möglicherweise ungenauen Formulierungen gemeint ist.
    Zweitens kann man so auch auf gemachte Fehler eingehen.

    3.
    Lernen heißt verstehen.
    Und offensichtlich hast du es nicht verstanden.
    In dem Beitrag kam eine if else Abfrage vor, zudem in einem anderen Code auch eine Abfrage, ob genug Geld vorhanden ist.
    Kombiniert ergibt das?
    Richtig, genau das was du suchst.
    Und nichts anderes als Kombinieren ist Scripten. Man hat seine Bausteine (vordefinierte Funktionen) und baut sich daraus immer komplexere Sachen zusammen (eigene Funktionen, Gamemodes, etc.)
    Das mag am Anfang schwierig sein, aber Übung macht den Meister.
    Darum versuch es einfach ( siehe 2.), es wird dich hier kaum einer auslachen.

    Ich bekomme hier langsam das Gefühl, du möchtest nichts lernen.
    Ich habe dir einen riesigen Beitrag geschrieben (Klick), in der Hoffnung, dir wirklich weiterhelfen zu können.
    Dort kommt eine solche Abfrage auch dran, nur habe ich das Gefühl, du hast entweder nur den Anfang gelesen oder das ganze Ding mal schnell überflogen.
    Zudem ist deine Frage katastrophal formuliert; wir sind außerdem kein Team nach dem Motto "Toll Ein Anderer Machts", sondern eher nach dem Motto "Together Everyone Achieves More" (Zusammen erreicht jeder mehr).
    Also würde ich dir zu einer anderen Ausdrucksweise raten, zudem könntest du ja auch deinen Versuch als ordentlichen, vollständigen Quellcode vorlegen.
    Ich schließe mich hiermit Bonus an:

    Ich gebe es auf ...


    Und BTT: Evtl. sollte man diese Fragen mittlerweile in Kleine Scripting Fragen posten, da diese mit dem Titel des Themas nichts mehr zu tun haben

    Wäre jetzt ja nicht meine Empfehlung, da unique einzigartig bedeutet und damit ein Wert nur einmal in der Spalte vorkommen darf.
    Wären zwei Leute in der selben Fraktion gäbe es einen Fehler, so wäre das auch mit Geld Rang, adminlvl etc.

    Nimm einfach Namen als Primärschlüssel und fertig

    So, dann einmal Schritt für Schritt:
    1. Wie werden Leute eingesperrt?

    1.1 Von einem Polizisten eingesperrt:

    Lua
    if arrest_wanteds >= 1 then
    			...									
    	arrestPlayer ( player, target, time, fine, kaution )


    Lua
    function arrestPlayer ( officer, player, time, fine, bail )
        ...
        putPlayerInJail ( player )
    end

    1.2 Erschossen werden
    Erste Vermutung: Muss ja was mit Tod zu tun haben, zudem gibt es da ja die tolle Nachricht, das man von nem Cop erledigt wurde. Also Notepad++ an und danach suchen.
    Man sieht aber auch, dass er hier noch nicht in den Knast transportiert wird, sondern nur seine Jailtime wird gesetzt.
    Also weitersuchen:
    Man weiß ja, dass er, sobald er wieder am Leben ist, im Knast ist. Hat also was mit wiederbeleben zu tun. Man liest die Funktion in der er stirbt und angelt sich über die Timer durch, bis man in dem zweiten Code ankommt.
    Dort sieht man die nächste Funktion, diese ist leider nicht mehr in der selben Datei, also wieder Notepad++ an und suchen.
    So landet man zu guter Letzt im dritten Code, dieser verlinkt wieder auf die bereits bekannte Funktion vom normalen Einsperren

    Lua
    if isOnDuty ( killer ) or isArmy ( killer ) then
    					...
    					setPlayerWantedLevel ( player, 0 )
    					...
    					vioSetElementData ( player, "jailtime", time )
    					vioSetElementData ( player, "bail", 0 )
    				...		
    				end
    Lua
    function revive ( player )
    ...
    RemoteSpawnPlayer ( player )
    end
    Lua
    function RemoteSpawnPlayer ( player )
        ...
        if tonumber(vioGetElementData ( player, "jailtime" )) >= 1 then
    	putPlayerInJail ( player )
        end
    end

    Zeit für die erste Erkenntnis:
    Es ist egal, ob man erschossen oder eingesperrt wird, es läuft auf die selber Funktion hinaus.
    Zudem weiß man nun auch, dass jailtime die verbleibende Zeit speichert.

    Neuer Ansatz:
    Es gibt den Command /bail über welchen man die Kaution bezahlen kann, dadurch wird man auch sofort freigelassen.
    Sucht man diesen, findet man folgenden Code:

    Lua
    function bail_func ( player )
    ...
        freePlayerFromJail ( player )
    ...			
    end
    addCommandHandler ( "bail", bail_func )

    Und zuletzt:

    Und jetzt siehst du zu, was genau beim Ausknasten passiert.

    Nun kannst du bei Fehlschlagen deines Transporters diese Funktion auf alle Spieler anwenden, die Jailtime haben:

    Lua
    for _,v in ipairs(getElementsByType("player")) do
       if vioGetElementData(v, "jailtime) >=1 then
           freePlayerFromJail(v)
       end
    end


    Sorry, falls das zu ausführlich ist, wollte zeigen, wie man das logisch nachvollziehen kann.
    Bestehen noch Fragen, bin ich auf dem mta-sa.org TS zu finden

    War jetzt auch mal drauf, muss sagen: Ich bin begeistert!
    Soviel Liebe zum Detail habe ich selten gesehen, das Team ist immer gut drauf und verdammt schnell (der liebe @Sorginator schiebt Leute, die AFK nen Marker blockieren mit nem Monstertruck durch die Gegend ^^), das Interaktionssystem gefällt mir auch und das hier

    Spoiler anzeigen


    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    fand ich auch nicht schlecht ^^

    Tabellen einfach immer als Tabelle deklarieren:

    Lua
    local mytable = {}
    mytable[1]={}
    mytable[1]["abc"]={}


    Für Spieler beim Joinen eine solche Tabelle erstellen:

    Lua
    local PlayerInfo = {}
    addEventHandler("onPlayerJoin", root, function ()
        PlayerInfo[source]={}
    end)

    Abfragen kannst du dann immer, wenn du den Spieler hast:

    Lua
    function getPlayerData(player, data)
        if isElement(player) and getElementType(player)=="player" and data then
            return PlayerInfo[player][data]
        else
            return false
        end
    end