Beiträge von Bluescreen

    Es ist gibt so ein angebliches "teuflisches" Programm mit dem man alle Maps auf dem Server aufnehmen kann, dagegen schützen kannst du dich um es einfach zu sagen - gar nicht - da das Programm sich einklinkt wenn die Objekte geladen werden und er schreibt das ganze dann in eine Textdatei -> siehe djnoob und Life of German, da hat er es bspw. angewandt.


    edit: es ist eigentlich kein Programm sondern eine einfach .dll Datei die du in deinen gta Ordner machst.

    Mach es doch so:


    SInfo[playerid][pid] = mysql_get_field("id", var);
    SInfo[playerid][pLevel] = mysql_get_field("Level", var);


    Einerseits ist das meiner Meinung nach schneller da, das was du machen willst noch eine Zwischensequenze eingebaut ist und deshalb "etwas" langsamer ist, aber ich verstehe noch immer nicht so ganz wieso du das anders machen willst, erläutere mal bitte etwas genauer.

    Edit: Mal gucken, ob diese DDoS-Sache in Bezug auf die reinen SA:MP Server da was tatsächliches bringt... im deutschen Raum ist es ja leider zum Standard geworden dauernd angegriffen zu werden.


    Kalcor hat nun geschrieben was "messageholelimit" bewirkt:


    Als einzige Lösung dafür wäre alle Nametags zu deaktivieren (die von SAMP aus) und einfach 3DTextLabels über dem Kopf erstellen mit dem Namen, ist dann halt ohne Health und Armour anzeige, aber dann funktioniert das Ding nicht mehr.

    Und.. warum? xD


    Bin mir nicht sicher ob du mich meinst, aber ich habe ein kleines Race System geschrieben wo die komplette Rennstrecke gemappt ist und um das nicht für jedes Rennen anzupassen hab ich Global einfach 10.000 genommen hab dann, aber erst sehr spät gemerkt das der Server beim löschen der Objekte sich für ca. 15 Sekunden aufhängt, mittlerweile habe ich es auf eine andere Art gelöst. :p

    Also ich habe meinen Server dazubekommen das er 15 Sekunden lang überhaupt nichts gemacht hat.


    Die Schleife von Blackace und in der Schleife noch eine, mein Code war so:


    for(new ob; ob < CountDynamicObjects(); ob++)
    {
    for(new ro; ro < sizeof(RaceObjects); ro++)
    {
    if(RaceObjects[ro] != -1)
    {
    if(ob == RaceObjects[ro])
    {
    DestroyDynamicObject(RaceObjects[ro]);
    RaceObjects[ro] = -1;
    }
    }
    }
    }


    RaceObjects wurde so definiert:


    RaceObjects[10000];


    und auf dem Server waren ca. 18.000 Objekte d.h. ist er 18.000 mal 10.000 mal durchgegangen, das hat auf dem Server zu einem 15 Sekunden lagg geführt, du kannst dann halt bei CountDynamicObjects irgendeine höhere Zahl eingeben, das der Server dann über einen viel längeren Zeitraum laggt bzw. nichts mehr macht außer dem Code.

    Du musst das dann so machen:


    cache_get_data(Rows, Fields);
    for(r=0; r < Rows; ++r)
    In Rows ist dann die aktuelle Anzahl an Datensätzen in der Tabelle und du bist dir sicher wie das ganze mit den Threaded Query funktioniert? Da das mit dem "stock" nicht funktionieren wird.

    Wenn du den Key für Windows noch hast kannst du das bei beliebig vielen Computern aktivieren. Habe auch eine und mit der laufen momentan Drei PCs und läuft alles noch einwandfrei, deshalb kannst du das machen.


    Um das Update benutzen zu können müsstes du aber vorher Windows 7 installieren und aktivieren dann das Update auf Windows 8 drauf packen, müsste dann das Updaten funktionieren oder meinst du etwas anderes?

    Kannst entweder wenn du das mit Enums regelt so machen:


    enum p_info
    {
    pName[MAX_PLAYER_NAME+1],
    pSlot[4]
    }
    new SpielerInfo[MAX_PLAYERS][p_info];


    Dann kannst du jetzt bei pName nur so benutzen:


    SpielerInfo[playerid][pName] //...


    aber bei pSlot kannst du es so machen:


    SpielerInfo[playerid][pSlot][0], SpielerInfo[playerid][pSlot][1], SpielerInfo[playerid][pSlot][2], SpielerInfo[playerid][pSlot][3]//Meinst du das?


    Wenn nicht du kannst mehrere enums in eine Variable packen z.b.:


    enum p_info
    {
    pName[MAX_PLAYER_NAME+1],
    pIP[17]
    }


    enum weapon_info
    {
    pWeapon,
    pAmmu
    }
    new SpielerInfo[MAX_PLAYERS][p_info][weapon_info];


    Dann kannst du es so benutzen:


    SpielerInfo[playerid][pName][pWeapon]//usw. ist eig. unsinnig das was ich gemacht habe, aber es dient ja nur zur veranschaulichung


    Du kannst es aber auch ganz ohne enum machen:


    SpielerInfo[MAX_PLAYERS][49][1000]//Maximal 49 Waffen und (Optional) 1000 Munition




    Meinst du das so ungefähr?