Beiträge von Kasakow

    Guten Abend,


    Mein Name lautet CIBERKILLER.
    Da ich das überraschen finde, möchte ich diese Entdeckung mit euch teilen.
    Und zwar habe ich einen unsauberen Quellcode in meinem Gamemode.
    Dieser führt jede 4,5 Sekunden 5 Querys aus. Und füllt gleichzeitig 5 Variablen sowie 3 RCON - Commands.
    Dazu kam es das mein Ping von 20 auf 350 anstieg. (Serverping auch, aber ich hatte in jedem ts, auch welche die garnichts mit dem Server zutunen hatten einen hohen ping)
    Ich denke diese entdeckung hat noch niemand gemacht :)
    Wegen einem Gameserver steigt der Ping an sich selber an!
    Nach dem ich den samp03svr Prozess killte war wd alles <20 :)


    Mit freundlichen Grüßen,


    CIBERKILLER

    kleiner tipp es wird aufgerufen...
    test wird geprintet, und so wie dus hast möchte ich es nicht, da er dann alles ändert aber keine veränderung da ist:


    new query[48];
    format(query,sizeof(query),"SELECT `Servername` FROM `Einstellungen` WHERE 1"), mysql_query(query),
    mysql_store_result(),
    mysql_fetch_row(query),
    mysql_free_result();
    if(strlen(query) != 0 && STimer == 255){
    STimer=SetTimer("@UpdateServerSettings", 4500, true);
    }
    else STimer=255;

    Wo genau bleibt dann der Sinn der PlayerTextDraws?
    Arbeiten doch dann genau so wie die normalen.


    Danke.


    Naja, das kann du dann z.B für eine Playerausgabe benutzen was nur der Spieler selbst sehen soll.
    Wenn es ein Globales TD wäre und darin daten ausgegeben werden, sagen wir TextDrawSetString. Dann wird das für jeden angezeigt der das Textdraw bereits sieht. Sollte aber nicht so sein,von daher haben die PlayTextDraw schon ihren sinn

    Ich habe in der Tabelle Einstellungen nur ein Row(Zeile).
    Hör zu das System ist so aufgebaut:
    Es wird alles ausgelesen was in der Datenbank steht und einem string zugewiesen.
    Enspricht der der Hostname, frisch ausgelesen nicht mit dem String Server[0] überein, soll sich das ganze updaten.
    Hier mal der Dialog an sich!
    if(dialogid == DIALOG_SEINTELLUNGEN)
    {
    if(!response)return 1;
    //Servername: %s\nServerversion: %s\nServerrelease: %s\nServerkarte: %s\nServermode: %s\nSpieler: %i/%i\nWhitelist: %s
    switch(listitem)
    {
    case 0:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_HOST, DIALOG_STYLE_INPUT, ".:Servername ändern:.", "{FFFFFF}Gebe nun den neuen Servernamen ein!", "Einstellen", "");
    case 1:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_VERS, DIALOG_STYLE_INPUT, ".:Serverversion ändern:.", "{FFFFFF}Gebe nun die neue Serverversion ein!", "Einstellen", "");
    case 2:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_REAL, DIALOG_STYLE_INPUT, ".:Serverrelease ändern:.", "{FFFFFF}Gebe nun den neuen Serverrelease ein!", "Einstellen", "");
    case 3:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_MAPS, DIALOG_STYLE_INPUT, ".:Serverkarte ändern:.", "{FFFFFF}Gebe nun die neue Serverkarte an!", "Einstellen", "");
    case 4:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_MODE, DIALOG_STYLE_INPUT, ".:Servermode ändern:.", "{FFFFFF}Gebe nun den neuen Servermode ein!", "Einstellen", "");
    case 6:ShowPlayerDialog(playerid, DIALOG_SEINSTELLUNGEN_WHIT, DIALOG_STYLE_MSGBOX, ".:Serverwhitelist ändern:.", "{FFFFFF}Gebe nun ob die Whitelist vom Server aktiviert sein soll!", "Aktiviert", "Deaktiviert");
    }
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_HOST)
    {
    if(!response)return 1;
    if(!strlen(inputtext))return 1;
    mysql_real_escape_string(inputtext, inputtext);
    new string[60], query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Servername`='%s' WHERE 1", inputtext);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    format(string,sizeof(string), "Du hast den Servername auf [%s] umgestellt.", inputtext);
    SendClientMessage(playerid, Weis, string);
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_VERS)
    {
    if(!response)return 1;
    if(!strlen(inputtext))return 1;
    mysql_real_escape_string(inputtext, inputtext);
    new string[60], query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Serverversion`='%s' WHERE 1", inputtext);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    format(string,sizeof(string), "Du hast die Serverversion auf [%s] umgestellt.", inputtext);
    SendClientMessage(playerid, Weis, string);
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_REAL)
    {
    if(!response)return 1;
    if(!strlen(inputtext))return 1;
    mysql_real_escape_string(inputtext, inputtext);
    new string[60], query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Serverrelease`='%s' WHERE 1", inputtext);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    format(string,sizeof(string), "Du hast den Serverrelease auf [%s] umgestellt.", inputtext);
    SendClientMessage(playerid, Weis, string);
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_MAPS)
    {
    if(!response)return 1;
    if(!strlen(inputtext))return 1;
    mysql_real_escape_string(inputtext, inputtext);
    new string[60], query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Serverkarte`='%s' WHERE 1", inputtext);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    format(string,sizeof(string), "Du hast die Serverkarte auf [%s] umgestellt.", inputtext);
    SendClientMessage(playerid, Weis, string);
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_MODE)
    {
    if(!response)return 1;
    if(!strlen(inputtext))return 1;
    mysql_real_escape_string(inputtext, inputtext);
    new string[60], query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Servermode`='%s' WHERE 1", inputtext);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    format(string,sizeof(string), "Du hast die Servermode auf [%s] umgestellt.", inputtext);
    SendClientMessage(playerid, Weis, string);
    }
    if(dialogid == DIALOG_SEINSTELLUNGEN_WHIT)
    {
    new query[65];
    format(query,sizeof(query),"UPDATE `Einstellungen` SET `Whitelist`=%i WHERE 1", response);
    mysql_query(query);
    ClearChat(playerid), PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0);
    switch(response)
    {
    case 0:SendClientMessage(playerid,Weis,"Du hast die Whitelist Deaktiviert.");
    case 1:SendClientMessage(playerid,Weis,"Du hast die Whitelist Aktiviert.");
    }
    }

    Guten Tag,


    Mein Name lautet CIBERKILLER.
    Und zwar brauche ich mal eure Hilfe.
    Ich habe ein Dynamisches Konfigurationssystem in meinem Gamemode in­te­g­riert.
    Es wird alles aus der Datenbank ausgelesen, aber es steht nichts im Dialog und der z.B Servername wird auch nicht gesetzt!


    Quellcode:


    @UpdateServerSettings(); @UpdateServerSettings(){
    print("test");
    new tmp_var[100][100], str[100];
    mysql_query("SELECT * FROM `Einstellungen` WHERE 1");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(tmp_var[0], "Servername");
    mysql_fetch_field_row(tmp_var[1], "Serverversion");
    mysql_fetch_field_row(tmp_var[2], "Serverrelease");
    mysql_fetch_field_row(tmp_var[3], "Serverkarte");
    mysql_fetch_field_row(tmp_var[4], "Servermode");
    }
    if(strcmp(tmp_var[1], Server[1], false)){
    format(Server[1], 100, "%s", tmp_var[1]);
    }
    if(strcmp(tmp_var[2], Server[2], false)){
    format(Server[2], 100, "%s", tmp_var[2]);
    }
    if(strcmp(tmp_var[0], Server[0], false)){
    format(Server[0], 100, "%s %s%s ", tmp_var[0], tmp_var[1], tmp_var[2]);
    format(str, 100, "hostname %s", Server[0]), SendRconCommand(str);
    }
    if(strcmp(tmp_var[3], Server[3], false)){
    format(Server[3], 100, "%s", tmp_var[3]);
    format(str, 100, "mapname %s", Server[3]), SendRconCommand(str);
    }
    if(strcmp(tmp_var[4], Server[4], false)){
    format(Server[4], 100, "%s", tmp_var[4]);
    format(str, 100, "gamemodetext %s", Server[4]), SendRconCommand(str);
    }
    mysql_free_result();
    }


    command(seinstellungen, playerid, params[])
    {
    if(sStats[playerid][Eingeloggt]==0)return SendClientMessage(playerid, Rot, "Du bist nicht Eingeloggt!");
    if(sStats[playerid][sADuty] == 0)return SendClientMessage(playerid, Rot, "Du bist nicht im Dienst!");
    if(sStats[playerid][sAdmin] < 7)return SendClientMessage(playerid, Rot, "Du bist entweder kein Administrator oder dein Rang ist zu niedrig!");
    new count[2], str[12], result, string[150]; count[0] = GetPlayers(), count[1] = GetServerVarAsInt("maxplayers");
    mysql_query("SELECT `Whitelist` FROM `Einstellungen`");
    mysql_store_result();
    result=mysql_fetch_int();
    mysql_free_result();
    if(!result){str="Deaktiviert";} else str="Aktiviert";
    format(string, sizeof(string), "Servername: %s\nServerversion: %s\nServerrelease: %s\nServerkarte: %s\nServermode: %s\nSpieler: %i/%i\nWhitelist: %s", Server[0], Server[1], Server[2], Server[3], Server[4], count[0], count[1], str);
    ShowPlayerDialog(playerid, DIALOG_SEINTELLUNGEN, DIALOG_STYLE_LIST, ".:Server Einstellungen:.", string, "Auswählen", "Schließen");
    return 1;
    }


    Whitelist Funktioniert einwandfrei!


    Ich lass die Variable so erstellen!
    new Server[10][100];


    Mit freundlichen Grüßen,


    CIBERKILLER

    Also ich habe zuerst einmal mit Anfänger Videos von MrMonatTutorials die Birne vollgestopft, dann habe ich mich hier registriert... Irgentwann gab es mal einen Typen Namens T4125Gamer der setze sich mit mir ein Jahr lang hin und lernte.
    Naja für dich würde ich die WIKI empfehlen wiki.sa-mp.com

    Ich weis was sscanf ist und ich verwende es normalerweise für Parameter. (/kick [param1] [param2])
    Müsste nur erklärt bekommen wie das genau Funktioniert ;)