Beiträge von 4#Future

    Hallo Bocky!


    Dies ist ganz einfach möglich, in dem Du beispielsweise
    einfach eine Log-Datei im Server erstellst und diese mit
    Deinen Chateinträgen füllen lässt.


    forward ChatLog(string[]);
    public ChatLog(string[])
    {
    new entry[512];
    gettime(hour, minute, second);
    getdate(year, month, day);
    format(entry, sizeof(entry), "[d.d.%d - d:d:d] %s\n", day, month, year, hour, minute, second, string);
    new File:logFile;
    logFile = fopen("logs/chat.log", io_append);
    fwrite(logFile, entry);
    fclose(logFile);
    }
    Um den Chat nun in der Log-Datei zu speichern, fügst
    Du die ChatLog() Funktion einfach nach Deinem
    Chatbefehl bzw. nach Deiner Chateingabe ein.


    ChatLog(string);


    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo SanFierro!


    Nimm's mir nicht übel, aber ich habe nun gemerkt, dass
    Du viele Threads gestartet hast, bezüglich MySQL Probleme.


    Wie wäre es, wenn Du Dir mal einen Scripter suchst oder
    Du Dir mal professionelle Hilfe suchst, bzw. einen anderen Gamemode?!


    Solltest Du wirklich gar keine Lösung finden, würde auch
    ich Dir helfen, aber unter der Voraussetung, dass ich merke,
    dass Du Dich mit dem PAWN-Scripting etwas auskennst...


    //Edit


    Dein Server stürzt ab, weil die Includes, die in Deinem Script
    geladen wurden, nicht mit dem verwendeten Serverplugin
    übereinstimmen.


    Lade Dir das Plugin nochmals herunter und ebenfalls die Include
    und compile Dein Script nochmals und starte den Server!


    Freundliche Grüße


    4#Future - Fake | Philip


    Da ich annehme, dass Du diese TextDraw Deklaration in
    OnGameModeInit(...) eingetragen hast, muss ich einsehen,
    dass Du meinen Beitrag nicht sorgfälltig gelesen hast.


    Du sollst den TextDraw deklarieren, egal mit welchem Starttext
    und ihn dann in einem Timer mit TextDrawSetString(...)
    ständig aktualisieren.



    Und diesen TextDraw aktualisierst Du in einem Timer ganz
    einfach, eben zur gewünschten Zeit, wenn Du es magst.


    Einfach mit folgender Methode:


    format(string, sizeof(string), ... );
    TextDrawSetString(PayDaytext, string);

    Hallo Canary!


    Das ist eigentlich recht simpel.


    Aktualisiert sich die gewünschte Anzeige beispielsweise jede
    Minute, so erstellst Du einfach einen, sich jede Minute
    wiederholenden Timer, in den Du einfach per Funktion
    TextDrawSetString(...) , die Anzeige aktualisierst.


    Am besten Du schaust vorher in Dein Script, ob es vielleicht
    schon einen Timer gibt, der jede Minute ausgeführt wird.
    So musst Du keinen zweiten extra hinzufügen... (spart Ressourcen)


    Übrigens, vergiss nicht Deinen gewünschten TextDraw in
    OnGameModeInit zu deklarieren, mit Position u.ä.



    Freundliche Grüße


    4#Future - Fake | Philip

    Ok... dann beuge ich mich dem Meister. :D

    Vergiss alles was ich gesagt habe, nur Benjamin hat die Macht an sich :D



    Hehe, bin immer für'n Späßchen zu haben^^



    // Edit


    NIEMALS :D

    @Benjamin


    Es ist schon klar, dass man auch Warnungen nicht ignorieren
    sollten, nur ist es das beste, was mir selbst grade eingefallen ist
    ^^


    Und mit dem kleinen Satz nach meinem Hinweis, habe ich
    Deine Aussage eigentlich schon wiedergespiegelt...


    _______________________________________________________________


    Außerdem war mein Ziel, dass Du auchmal wieder was schreibst...


    Also, das tat ich alles nur, um Dich zu ärgern... :P


    (bisschen Spaß, muss immer dabei sein ^^)

    Eine Warnung kannst Du theoretisch immer ignorieren...


    Doch für Scripter, die Ihre Sache ordentlich, sauber und
    präzise erledigen wollen, werden diese Warnung natürlich
    nicht einfach so stehen lassen.


    Aber prinzipiell ist egal, d.h. Du kannst diese Warnung ignorieren!


    Ich rate Dir trotzdem für die Zukunft, einfach alle
    Warnungen, Fehler u.ä. zu entfernen...
    Einfach der Sauberkeit halber und der Ordnung.



    Freundliche Grüße


    4#Future - Fake | Philip

    Ja... natürlich kannst Du bei auftretenden Fehlern nicht
    erwarten, dass Dein Gamemode erfolgreich compiled wird.


    Als Scriptanfänger würde ich Dir raten, an dieser Stelle
    nicht weiter zu versuchen den Server zu starten, sondern
    nicht mit SA-MP zu beschäftigen oder im Falle Du hast vor
    einen Server zu starten, Dir jemand zu suchen, der dies beherrscht.


    Sonst würde sich dieser Thread unendlich in die Länge ziehen...


    An dieser Stelle noch einen schönen Abend!



    Freundliche Grüße


    4#Future - Fake | Philip

    Ah... siehste, Problem geklärt!


    Lösung:


    Die Gamemode PWN-Datei öffnen und Dein Script per F5 compilen
    und dann die erhaltene AMX-Datei in gamemodes hochladen.



    Jetzt sollte Dein Server starten...



    Freundliche Grüße


    4#Future - Fake | Philip

    Hey PAN, Du musst unbedingt beachten, dass Du auch im
    richtigen Ordner, nämlich gamemodes Deinen Gamemode
    hochgeladen hast.


    Und es ist wichtig, dass Du die *.amx Datei Deines Gamemodes
    hochlädst und die die *.pwn Datei, welche Du nur zum scripten
    brauchst...


    Schau nochmal nach, ob die o.g. Dinge erfüllt sind.



    Freundliche Grüße


    4#Future - Fake | Philip

    Aha... gut zu wissen, dass es sowas doch gibt.


    Aber ich muss eben zugeben, dass ich solche Funktionen
    noch nicht gebraucht habe und mir nicht ganz sicher war...


    Naja auch von mir der nochmals der Tipp:


    > Schaue Dich mal im englischen Forum um!



    Freundliche Grüße


    4#Future - Fake | Philip

    Loose indentation würde in Deinem Falle heißen, dass
    Du in Deinem Script was falsch eingerückt hast, um genau
    zu sein in der Zeile 354.


    Um solche Probleme in Zukunft nichtmehr anzuzeigen,
    könntest Du einfach folgendes ins Script einfügen, dass
    diese Warnungen nicht mehr kommen:


    #pragma tabsize 0



    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo Pan!


    Kopiere uns doch bitte einmal Deine Server Log in einen Beitrag,
    um zu sehen, welche Fehler diese eventuell ausgibt.


    Andernfalls kann Dir leider niemand helfen, da auch wir nicht
    wissen welche Fehler vom Server auftreten oder welche Du
    eventuell machst.



    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo Jones!


    Ich glaube nicht, dass es möglich ist den Spieler in den AFK
    Modus zu versetzen, wenn dieser das Spiel minimiert, da
    GTA San Andreas selbst zwar, dass es minimiert wurde, was
    Du daran erkennst, dass Du beim Wiederherstellen im Menü
    landest, aber der Server weiß es leider nicht.


    Ich kann mich natürlich auch irren, aber ich glaube nicht, dass
    es Funktionen oder Parameter gibt, die dies erkennen könnten.


    (Sollte ich mich irren, wäre eine Berichtung sehr freundlich!)


    Ansonsten kannst Du auch mal im englischen Forum schauen,
    da dort natürlich mehr Filterscripts, Plugins u.a. released werden.



    Freundliche Grüße


    4#Future - Fake | Philip

    @marco_polo & andere Scripter


    Es ist grundsätzlich zu beachten, dass Ihr bei eigenen Funktionen,
    die Ihr selbst erstellt habt oder aus einem anderem Script kopiert
    habt, eine Forward-Deklaration zu schreiben.


    Tritt bei Euch ein Fehler auf, welcher zu meistens eine Warnung ist,
    mit dem Titel:
    public function lacks forward declaration müsst Ihr
    Euch fragen, welchen Funktion oder welche Variable Ihr vergessen
    habt zu deklarieren.


    Deklariert daher immer sofort nach Erstellung einer neuen Funktion
    Eure Variablen oder eben die Funktion, um Warnungn zu vermeiden.



    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo Simplefire!


    Ob diese "Spawn-Buttons" direkt zu entfernen sind, weiß ich selbst
    leider auch nicht genau oder glaube es zumindest nicht.


    Eine Variante, die Buttons allerdings unschädlich zu machen,
    wäre folgende...

    Benutzt Dein Server eine Loginfunktion:


    public OnPlayerRequestClass(playerid, classid)
    {
    ...
    return 1;
    }
    Aus dem return 1; müsstest Du zwangsläufig ein return 0;
    machen, um Deine Buttons erfolgreich außer Kraft zu setzen.



    Benutzt Dein Server keine Loginfunktion:


    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(...);
    SpawnPlayer(playerid);
    return 1;
    }
    Im letzen Fall würde der Spieler einfach spawnen, sobald
    er connected ist...


    Zur Funktion SetSpawnInfo(...) findest Du natürlich Hilfe
    und zwar wie bekanntlich in der Wiki: SetSpawnInfo



    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo Jenkins!


    Also für welchen Zweck Deine Carkey-Funktion gedacht ist,
    sehe ich grade nicht so wirklich ein, aber das ist zunächst egal.


    Zitat

    Ich will die Autoschlüssel im Dualog wählen können.


    Wenn Du Deinen Carkey per Dialog auswählen möchtest,
    frage ich Dich, warum Du noch keine ShowPlayerDialog(...)
    Funktion nach Deinem Befehl eingebaut hast.


    Was Du wo abfragen möchtest und welches Resultat Du
    damit erreichen möchtest, so muss ich Dir sagen, hast Du Dich
    viel zu kurz gefasst...


    Bitte schreibe nochmals genau und ausführlich, was Du möchtest.



    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo TheRealSlimShady!


    Also warum Dein Server abstürzt kann Dir wahrscheinlich keiner
    so wirklich sagen, also das wäre meine Meinung...


    Du sagtest Du nutzt einen Linux Root Server...


    Benutzt Du als Plugins, welche der Opa_Objects wohl sein
    sollte, nehme ich mal unverbindlich an, auch die *.so Dateien,
    welche Linux benötigt und nicht die *.dll Dateien?


    Kontrolliere mal ob es daran liegt, denn es könnte ja sein,
    dass der Server, sobald er Objekte streamen muss, aber keinen
    Streamer findet, einfach abstürzt...


    Sollte das keine Lösung für Dich darstellen hätte ich noch einen Tipp:


    Ersetze einfach per Ersetzen-Funktion alle StreamObjekt
    Deklarationen in Pawno und verwende diese einfach so, aber
    unter Voraussetzung das es nicht all zu viele Objekte sind.



    Ich hoffe, dass ich Dir wenigstens ein klein bisschen helfen konnte!


    Freundliche Grüße


    4#Future - Fake | Philip

    Hallo Xtreame!


    Also ich muss zunächst mal sagen, dass ich Dein Problem noch nicht
    so richtig einsehe und auch Deiner Beschreibung nicht richtig folgen kann.


    Soweit ich es eingesehen habe, versuchst Du für einige Spieler Rampen
    zu spawnen, die aber nicht für alle Spieler erscheinen sollen... Richtig?


    Kennst Du den Unterschied zwischen i und playerid nicht, dann
    hast Du hier eine ganz kurze und simple Erklärung:


    (1)


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ...
    }


    (2)


    function ...(playerid)
    {
    ...
    }
    Im ersten Fall durchläuft der Server eine Schleife, welche alle auf
    dem Server befindlichen Spieler betrifft, d.h. mit diesem Verfahren
    kannst Du Aktionen durchführen, die alle Spieler auf dem Server betreffen.


    Im zweiten Fall wird nur der Spieler, also nur die Spieler ID,
    benutzt/verwendet, die, in diesem Falle, diese Funktionen verwendet/ausführt.
    D.h. nur der Spieler, der eben diese Funktion ausführt, ist von allen darin
    befindlichen Funktionen oder Befehlen, bzw. Variablen betroffen.



    Ich hoffe ich konnte Dir zumindest etwas helfen, auch wenn ich mir noch
    nicht ganz im klaren bin, ob das überhaupt Deine Frage war...


    (Bitte entschuldigt die simple/umständige Erklärung, aber wie denn sonst?!)



    Freundliche Grüße


    4#Future - Fake | Philip