Beiträge von Snail

    Hallo zusammen,
    ich habe derzeit ein Problem mit einem Dialog:
    Ich lese einen String aus einer MySQL Tabelle aus. Funktioniert soweit fehlerfrei.
    Dann formatiere ich einen String und füge den String aus der Tabelle hinzu.
    Das Problem ist, der String aus der Tabelle enthält Zeilenumbrüche. Diese funktionieren allerdings nicht.
    Beispiel:



    // string1: "zeile1\nzeile2"


    format(string2, 128, "Hier ist der Text:\n\n%s", string1);
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "test", string2, "ok", "");


    Erstaunlicherweise gehen die Zeilenumbrüche vor dem string1. Es kommt dann folgender Text:
    Hier ist der Text:


    zeile1\nzeile2


    Ich hoffe jemand kennt ne Lösung, da ich nur ungern für jede Zeile eine eigene Spalte erstellen möchte.


    Lg Snail


    // Hat sich erledigt

    Einen Tab "Fraktionen", der nur sichtbar ist, wenn man Mitglied einer Fraktion ist.
    Da kann man dann zum Beispiel alle Mitglieder einer Fraktion einsehen. Oder der Leader kann wichtige Nachrichten hinterlassen.

    Ich verweise mal auf mein HTTP Tutorial.
    In diesem Post wird erklärt, wie ihr eure .amx Datei vor unbefugter Verwendung schützen könnt.
    Das ganze funktioniert folgendermaßen:
    Auf einem Webspace erstellt ihr eine Datei mit einem bestimmten Inhalt.
    Der Server überprüft dann mit der HTTP-Funktion den Inhalt der Datei. Sollte diese nicht mehr existieren oder einen anderen Inhalt haben kann man den Server abschalten. Alles weitere findet ihr in dem Tutorial


    Lg Snail

    Naja ist nichts weltbewegendes, außerdem wurde sowas schon öfters releast.
    Bei deinem Code könntest du mal die ganzen leeren Callbacks rauslöschen, damits ein bisschen übersichtlicher wird.
    Außerdem würde ich anstatt der ganzen If-Abfragen switch + case verweden.


    Lg Snail


    PS: Menüs sind veraltet, verwende lieber Dialoge


    format(string, sizeof(string), "Zeit bis zum PayDay: %d", VARIABLE);
    TextDrawSetString(PayDaytext, string);
    VARIABLE = Variable, in der die Zeit bis zum Payday gespeichert wird

    Ein SA:MP-Server sollte maximal 50mb RAM verbrauchen, alles darüber währe mehr als nur ineffizient gescriptet [...]


    Wenn ein Server mehr RAM braucht muss er nicht ineffizient gescriptet sein. Verwendet man beispielsweise das MapAndreas Plugin benötigt man ca. 70-80MB RAM mehr.

    du benötigst keinen Array für das Wetter. Es reicht wenn du das globale Wetter in einer Variable speicherst.

    new Wetter;

    Das Wetter wird ja vom Gamemode aus gesetzt. D.h. an der Stelle wo das Wetter gesetzt wird:
    Wetter = ...;


    Und dann an der Stelle wo der Spieler vom Friedhof wegkommt:
    SetPlayerWeather(playerid, Wetter);

    Bei mir klappt das wunderbar. Du musst dann aber auch die Funktion des Streamers verwenden (z.B. MoveDynamicObject)


    // edit :



    if(dialogid == Dialog_Tor)
    {
    if(strlen(inputtext) <1 || !response) return 1;
    if(!strcmp(inputtext,TorPasswort,true))//Dadurch wird geprüft ob das Passwort das Passwort ist welches wir oben definiert haben.
    {
    if(TestTorvar == 0)//Falls das Tor zu ist:
    {
    MoveObject(TestTor,1539.5653076172, -1623.5965576172, 8.65305519104,5);//Das Tor wird geöffnet.
    SendClientMessage(playerid,COLOR_GREEN,"*Das Tor ist nun Auf!");//Die Nachricht das das Tor offen ist.
    TestTorvar = 1;//Dadurch wird das Tor auf 1 gesetzt sprich das es offen ist.
    }
    else if(TestTorvar == 1)
    {
    MoveObject(TestTor,1539.5653076172, -1623.5965576172, 15.02795791626,5);//Dadurch wird das Tor geschlossen.
    SendClientMessage(playerid,COLOR_GREEN,"*Das Tor ist nun Zu!");//Die Nachricht das das Tor zu ist.
    TestTorvar = 0;//Dadurch wird das Tor auf 0 gesetzt sprich das es geschlossen ist.
    }
    }
    else return SendClientMessage(playerid,COLOR_RED,"Das Passwort ist falsch!");//Falls das Passwort falsch ist kommt diese Nachricht.
    }


    Damit sollte es gehen:
    if(strlen(inputtext) <1 || !response) return 1;

    Zitat

    noch zu wissen ist das man das Tor nicht streamen darf.


    Wieso sollte man das Tor nicht streamen dürfen ?


    forward bla();
    public bla()
    {
    new Pos[3];
    GetPlayerPos(BOTID, Pos[0], Pos[1], Pos[2]);
    for(new i=0; i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5, Pos[0], Pos[1], Pos[2])
    {
    // Pauserec...
    }
    else // resumerec...
    }
    }


    // ongamemdeinit: SetTimer("bla", 2000, 1);


    @ HEiTZER: Du kannst mit Trigonometrie einen Punkt vor dem Bus berechnen und dann IsPlayerInRangeOfPoint benutzen

    Wenn du Freeware willst, lad dir avast runter. Ansonsten würd ich dir gData empfehlen, was allerdings kostenpflichtig ist.
    Im Normalfall ist kostenpflichtige Software ja besser als die Gratis-Variante, daher würde ich mir an deiner Stelle gData, o.ä. runterladen.

    Zitat


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


    MAX_PLAYER ist als 500 definiert, die Spielerids starten bei 0. D.h. die höchstmögliche ID ist 499.
    Daher solltest du die Schleife ändern:
    for(new i=0; i<MAX_PLAYERS; i++)


    Ist zwar nur ne Kleinigkeit, aber man sollte trotzdem darauf achten ;)