Beiträge von SLaYz

    Wo Speichert er denn das Ab das der Spieler Überhabt Spawnchange gemacht hat? Der wert wird zwar Gesetzt aber nicht Gespeichert ;) Dann kann es ja nicht Gehen da ja neu einen Relog/Server Neustart der Wert wieder auf 0 ist


    zum Speichern z.b. SpielerSpeichern(playerid);

    CMD:goto(playerid,params[])//params nicht parmas
    {
    if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,Weiss,"[SERVER]Du hast nicht die Rechte dazu!");
    new pID,Float:X,Float:Y,Float:Z;
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Weiss,"[FEHLER]Der Spieler ist nicht Online!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Türkis,"[FEHLER]/goto [ID]"); <-- Erro Zeile
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerPos(playerid,X,Y,Z);
    return 1;
    }

    Dann hättest du die .ini-Dateien nicht Bearbeiten/Editieren dürfen. Da bei manchen Servern die Sachen nicht Übernommen und die Passwärter nicht mehr gehen


    Schlimmster Fall: Alle Accs Löschen

    new string[68];
    format(string, sizeof(string), "%s hat die Fabrik DM Zone(/fdm) betreten.",SpielerName(playerid));
    SendClientMessageToAll(BLAU, string);


    Getestet: Ja
    Funktioniert: Ja

    i-welche Warnings?


    Wenn nicht versuchs mal so


    ocmd:gmx(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,5))
    {
    SetTimer("Serverrestart",60000*20,1);//Wieso nur 60 Sekunen? wenn du 20 Minuten willst dann 60000*20
    SendClientMessageToAll(Rot,"______________________________________________");
    SendClientMessageToAll(Rot,"Der Server wird in 20 Minuten neu gestartet");
    SendClientMessageToAll(Rot,"______________________________________________");
    }
    else
    {
    SendClientMessage(playerid,Rot,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Projektleiter");
    }
    return 1;
    }

    Behoben ;) Du hast Das Login Dialog außerhalb der OnDialogResponse gehabt.


    Kopier das und Ersetze das mit deinen public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_LOGIN) // DIALOG_LOGIN wird abgerufen.
    {
    if(response == 0) // Der Abbrech Button
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Login Vorgang abgebrochen!");
    Kick(playerid); // Kickt den Spieler
    return 1;
    }
    if(response == 1) // Der Login Button
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein eingegebenes Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Login","Ihr Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","Login", "Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext); // Diese Funktion erstellen wir gleich
    return 1;
    }
    }
    }


    if(dialogid == DIALOG_REGISTER) // Ruft DIALOG_REGISTER auf
    {
    if(response == 0) // Der Abbrech Button
    {
    SendClientMessage(playerid,COLOR_RED,"Sie haben die Registrierung abgebrochen!");
    Kick(playerid); // Kickt den Spieler
    return 1;
    }
    if(response == 1) // Der Register Button
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein eingegebenes Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrierung auf DeinRL","Willkommen auf DeinRL City!\nBitte geben sie nun ihr gewünschtes Passwort ein","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext); // Funktion wird gleich erstellt.
    return 1;
    }
    }
    }
    return 1;
    }


    Dein Code:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_LOGIN) // DIALOG_LOGIN wird abgerufen.
    {
    if(response == 0) // Der Abbrech Button
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Login Vorgang abgebrochen!");
    Kick(playerid); // Kickt den Spieler
    return 1;
    }
    if(response == 1) // Der Login Button
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein eingegebenes Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Login","Ihr Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","Login", "Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext); // Diese Funktion erstellen wir gleich
    return 1;
    }
    }
    }
    return 1;
    } //Hier hört bei dir OnDialogResponse auf Aber das DIALOG_REGISTER muss auch rein ;) Sonst wird das nix^^
    if(dialogid == DIALOG_REGISTER) // Ruft DIALOG_REGISTER auf
    {
    if(response == 0) // Der Abbrech Button
    {
    SendClientMessage(playerid,COLOR_RED,"Sie haben die Registrierung abgebrochen!");
    Kick(playerid); // Kickt den Spieler
    return 1;
    }
    if(response == 1) // Der Register Button
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Dein eingegebenes Passwort war nicht lang genug!");
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrierung auf DeinRL","Willkommen auf DeinRL City!\nBitte geben sie nun ihr gewünschtes Passwort ein","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext); // Funktion wird gleich erstellt.
    return 1;
    }
    }
    }

    Füg das mal in den GameMode (Am besten Ganz unten)


    Spoiler anzeigen
    /*=====[sscanf]=====*/
    stock sscanf(sstring[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(sstring))
    #else
    if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    sstringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
    {
    sstringPos++;
    }
    while (paramPos < paramCount && sstring[sstringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = sstring[sstringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = sstring[++sstringPos];
    }
    do
    {
    sstringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = sstring[sstringPos];
    do
    {
    sstringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, sstring[sstringPos++]);
    }
    case 'f':
    {

    Spoiler anzeigen
    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }