Beiträge von Jason_Gregory

    Keine Sache.


    for(new i,a = GetMaxPlayers();i < a;i++)


    for ist im Prinzip nichts anderes als eine sich wiederholende Schleife die sich nach den in der Klammer stehenden Ziffern richtet.
    Zuerst mal definierst du oben new i das Standartmässig den Wert 0 hat, danach gibst du der mitdefinierten Variable a den Wert
    deiner derzeit spielenden User die sich auf dem Server befinden. (new i,a = GetMaxPlayers();)
    Das i in diesem Fall ist die Startposition des Loops (der sich wiederholenden Schleife) die hier bei 0 startet.
    0 deswegen weil es 0-499 Spielerid´s gibt.


    Im zweiten Abschnitt wird überprüft ob i < a -> i kleiner als a (deine Useranzahl) ist, das ist das Limit der Schleife.
    Sooft wiederholt sich der Loop, also einfach erklärt sooft bis alle Nummern bis zu der Spielerid des letzten Benutzers dranwaren. (i < a;)


    Am Ende eines Loops kommt optional noch die Schrittweite, das kannst du dir so vorstellen...
    i++;
    ist nichts anderes als
    i = i + 1;
    Das heißt jetzt im Verständlichen das er immer eine Id nach vorne hüpft, wäre natürlich auch möglich nach hinten oder Dezimalstellen (Kommastellen/Floats) nach vorne zu hüpfen
    was wir aber hier nicht brauchen, weil die Playerid´s Vollzahlen = Integer´s sind, Ziffern ohne Kommas.


    0
    1
    2
    3
    4
    5
    6
    7
    ...


    Dass was danach folgt ist eigentlich einfach, man überprüft ob die Id die gerade überprüft wird, sich auf dem Server befindet.
    Kann ja sein, das Playerid: 8 unbesetzt ist aber 9, 10 auf dem Server sind, weil der Benutzer frühzeitig ging.
    if(IsPlayerConnected(i))


    Danach kommt deine Variable die checkt ob die Spielerid die Variable auf 1 gestellt hat.
    Anschließend deine Funktionen :rolleyes:

    Statt unsinniges Zeugs zu posten hätte man ihm in der Zwischenzeit die kurze Lösung schreiben können...


    for(new i,a = GetMaxPlayers();i < a;i++)
    {
    if(IsPlayerConnected(i) && medic_im_dienst[i] == 1)
    {
    SendPlayerMessageToPlayer(i, playerid, "Ich benötige hier einen Arzt (Rote Makierung)!");
    SetPlayerMarkerForPlayer(i, playerid, RED);
    }
    }

    Zitat

    <script src="skript.lua"/>


    Du hast keinen type definiert ob es Serverseitig ist oder Clientseitig.
    Aber es sollte Serverseitig sein, weil der Handler onPlayerJoin nur Serverseitig definiert ist.


    Zitat

    <script src="skript.lua" type="server" />

    Ccmd - by Jason :P
    __________________________________________________________
    http://wiki.multitheftauto.com/wiki/Ccmd


    Struktur/Aufbau von Chatcommands in Mta 1.0 +


    Code
    c_cmds = {
     "kick", "k_player",
     "ban", "b_player"
     }


    Update auf Version 6.35:


    - Syntax sowie komplette Spielerlistenumstellung auf Playerid´s
    - Überarbeitetes Statistiksystem nun mit SMF-Board Userprofil verlinkt


    - Signaturstatistik mit Php SDK Module


    - Level/Exp System eingeführt
    - XIII All in One C# Software geupdatet (kleiner Abstürze des Chat Servers behoben)
    - Lua Consolen Errors nun zu 99.9999 % gefixxt (Abweichungen möglich :P )
    - !top um eine Liste der besten 10 Spieler auszugeben
    - 5 Neue Maps
    - Video mit EPG Race Server gedreht

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Wieso fragst du jeden Wert einzeln ab und nicht direkt die ganze Tabelle?


    SELECT * FROM `copcars`


    Danach einfach mit fetch_assoc die einzelnen Spalten abfragen.
    Normal muss man die Werte (falls du es in deiner Datenbank nicht als Varchar speicherst, sondern als Int/Tinyints)
    nicht mehr umwandeln, wobei ich mir bei der Anzahl an MySQL Modulen nicht sicher sein kann.

    @Zipper lies dich mal weiter durch


    The source of this event is the player that joined the server.


    Ich rede nicht von getLocalPlayer(), außerdem wäre es grober Unfug
    zu behaupten man können vom eigenen Clientscript andere Clienten ansteuern.


    Wenn dann...


    'Client' >' Server' > 'Client' Global aufrufen


    Sonst könnte man mit nem gehackten/modifizierten Clientscript ja andere Spieler hacken
    bzw. deren Accounts regelrecht durchlöchern.

    Außerdem kann man sich den Map Editor auch selber nachbauen, was aber nicht nötig ist :D


    Am meißten freu ich mich auf


    - 0005120: [Installer] Require nickname/player name on install (Flobu) - assigned.


    und


    - 0005162: [Server] Download timeouts caused by temporary internal web server failure - new.
    - 0004361: [Scripting] Water elements destroyed through resetMapInfo do not reappear - new.


    ging mir schon langsam auf den Senkel das bei uns -XIII- einige Spieler Download Timeouts hatten
    obwohl vollständige Caches angelegt waren.

    Nö die Function wird schon für den Spieler ausgelöst der gerade den Server betretten hat,
    ein Ding der Unmöglichkeit Clientseitig auf andere Clienten überzuspringen.
    Client bleibt Client.
    Vermutlich ist es hier so, dass das Element (source) gerade diese File noch nicht geladen hat.
    oder die noch nicht im Cache liegt. Dann wundert es nicht das er sie nicht abspielen kann.
    Einfach einen Timer oder onClientResourceStart (wie Zipper schon sagt) verwenden.
    Das müsste nach dem Download der Files aufgerufen werden.

    Geht auch einfacher...


    Code
    s_find = {}
    s_find["s_Start#1"], s_find["s_Ende#1"] = string.find(text, "Schrimps")
    if(s_find["s_Start#1"] and s_find["s_Ende#1"] ~= false)then
       return s_find["s_Start#1"]
    else
        return false
    end


    Gibt die genaue Startposition von "Ich mag Schrimps" in einem Text an, falls es weder Start noch Ende des Strings
    erfassen kann, gibt es false zurück.


    Multidimensionale Datengruppen/Arrays in Lua


    local rootElement = getRootElement()
    local screenWidth,screenHeight = guiGetScreenSize()


    function renderDisplay ( )
    local seconds = getTickCount() / 1000
    local angle = math.sin(seconds) * 80
    dxDrawImage ( screenWidth/2 - 50, 0, 325, 42, "test_logo.png", angle, 0, -120 )
    end


    function HandleTheRendering ( )
    addEventHandler("onClientRender",rootElement, renderDisplay)
    end
    addEventHandler("onClientResourceStart",rootElement, HandleTheRendering)


    Kann an vielem liegen, wenn die resource zb. nicht in deiner Meta / mtaserverconfig steht.
    Oder du hast das test_logo.png nicht als gültige File drin.
    Außerdem sollte man sowas selber bauen, ich riech von hier das dass wieder ne Clientseitig runtergeladene Resource
    von irgendeinem Server ist.


    Wieso willst du dein Logo überhaupt drehen ?