Beiträge von [DT]deed

    Hier ein noch sparender Code :)


    oben im Script
    #define getname(%0,%1) GetPlayerName(%0,%1,sizeof(%1))


    Verwendung:
    new string[50];
    format(string,sizeof(string),"%s bla",getname(playerid,string));


    Es kommen keine Errors doch ich garantiere nicht dass es funkt, müsste es aber :)

    Ja, kommt aber auch drauf an wie du es verwendest. Wenn du es bei format(........,GetPlayerName(playerid,name[playerid],MAX_PLAYERS)); verwendest, dann könnte es schohnender sein, aber einfach zu umständlich.

    colorpicker.com


    Den Code dann zwischen { } setzen ;)


    ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "San Andreas Roleplay: Login", "{FAFAFA}Willkommen zurück auf {468CE8} San Andreas Roleplay {FAFAFA}Loge dich mit deinem Passwort ein.","Login","Abbruch");

    Hast schon Recht es ist resourcenschohnender, aber aufwändiger. Zudem frisst die Funktion nicht viel mehr.


    //edit


    Jedoch wenn du es öfters verwendest kommst du im Schnitt weiter raus als bei der Funktion.

    erik


    Ist es nicht resourcenschohnender wenn er einmal eine Funktion erstellt und dann diese im format verwendet, falls er es öffters mal braucht, oder im Falle der öfteren Verwendung , ständig GetPlayerName hinzufügen muss ?

    Ist nicht die beste Methode aber ich habe keine Lust jetzt ein code hinzuklatschen den ich dann erklären muss ^^


    new bool:tot[MAX_PLAYERS];



    Unter OnPlayerDeath


    tot[playerid] = 1;


    Unter OnplayerSpawn

    if(tot[playerid] == 1)
    {
    SetTimerEx("Auferstehung", 1000*60, false ,"i",playerid);
    // Und halt die Funktion die ihr noch haben wollt, z.B wo er warten soll..


    }



    forward Auferstehung(playerid);
    public Auferstehung(playerid)
    {
    SpawnPlayer(playerid);
    tot[playerid] = 0;
    return 1;
    }

    Zum stoppen kannst du auch "ps -ax" dir die Prozesse anzeigen lassen und mit "kill -9 PROZESSID" kannst du sie stoppen, soweit ich noch weiß bewirkt -9 dass du sämtliche Prozesse die mit dem samp server client verbunden sind, auch stoppen.

    MrMonat hat wahrscheinlich MySQL über seinen Homerechner gestartet mit xampp, daher benutzt er die IP, du solltest nicht die IP benutzen weil du wahrscheinlich dein MySQL und den SAMP server nicht auf dem Homerechner hast? Stattdessen wäre "localhost" richtig.


    Erklärung
    127.0.0.1 ist keine "echte" IP-Adresse, sondern eine "Funktionsadresse", die immer den eigenen Rechner adressiert, also den Rechner, der die Verbindung aufbaut:

    Erklärung
    "
    localhost steht in der Netzwerktechnik für das momentan genutzte System oder dessen IP-Adresse

    Wenn ich mich nicht Irre hast du hier einen Denkfehler oder Schreibfehler.
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",name); //Die Abfrage zum Verzeichnis

    Schau dir mal das Verzeichnis an.



    Eine etwas kürzere Methode.

    Spoiler anzeigen
    Unter OnPlayerConnect
    if (Whitelist(playerid)) {
    } else {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Betatester!");
    Kick(playerid);
    }
    OCMD Befehl

    ocmd:whitelist(playerid, params[]){
    new Namee[24];
    if(IstAdmin(playerid)){
    if(sscanf(params, "s", Namee)) return SendClientMessage(playerid, COLOR_CORNSILK, "Benutzung: /whitelist [Name]");
    new
    File:hFile,coordsstring[128],
    string[128];
    format(coordsstring,128, "%s\r\n",Namee);
    hFile = fopen("Whitelist.cfg", io_append);
    fwrite(hFile, coordsstring);
    fclose(hFile);
    format(string,sizeof(string),"%s wurde zur Whitelist hinzugefügt!",Namee);
    SendClientMessage(playerid,COLOR_YELLOW,string);}
    return 1;
    }
    Whitelist Funktion

    Whitelist(playerid)
    {
    if (gdebug==1){printf("DEBUG Whitelist Check(%d) (%s)", playerid);}
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    new File: file = fopen("Whitelist.cfg", io_read);
    if (file)
    {
    new valtmp[MAX_PLAYER_NAME];
    while (fread(file, valtmp)) {
    StripNewLine(valtmp);
    if (!strcmp(valtmp, playername2, true, strlen(playername2))) {
    fclose(file);
    return 1;
    }
    }
    }
    fclose(file);
    return 0;
    }

    Soweit so gut, ich hab mich jetzt nicht auf alles konzentriert, habe aber gemerkt, dass du zu oft GetPlayerName benutzt, ich meine klar du brauchst es aber die "new name[24];" sind mir zu viel, wäre es nicht einfacher eine Funktion zu erstellen und diese dann ständig zu verwenden ? Gemeint >> GetName(playerid); "(stock) GetName(playerid) { new ......... }"