Anfänger braucht Hilfe

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo liebe Community ,
    Ich hab frisch mit dem Scripten angefangen und jetzt
    mit dem Login/register System leider hab ich jetzt Plötzlich 4 Errors drin und ich weiß nicht
    wie ich sie rausbekommt hab schon alles durchgeschaut und nichts gefunden


    Errors:
    _______________________________________________________________________________________________



    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 017: undefined symbol "MAX_STRING"
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 036: empty statement
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.
    __________________________________________________________________________________________


    Script :


    pwn Datein bisschen übersichtlicher: http://www.multiupload.com/02B24LKHBH

    pastebin : http://pastebin.com/dzcZtJZm



    Ich freue mich auf schnelle Hilfe
    Dakeschön !

    - Ab$olut

    Einmal editiert, zuletzt von Ab$olut ()

  • #include
    #include
    #include
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    //enums

    enum Info //Info ist der name des enums
    {
    //deine sachen, die gepseichert werden sollen
    }

    enum Info
    {
    passwort[128], // 128 steht für die maximale länge des passworts
    skin,
    };

    new pInfo[MAX_PLAYERS][Info];
    new bool:loggedin[MAX_PLAYERS];
    //Farben

    #define Blau 0x0005FFFF
    #define Rot 0xFF1400FF
    #define Weis 0xFAFAFAFF
    #define Gelb 0xFFFA00FF
    #define Grau 0x8C8C8CFF

    //Variablen

    new Variabele = 1,Variabeleleer;
    new Pickupm;
    new ammunationenter;
    new ammunationexit;

    main()
    {
    print("\n----------------------------------");
    print(" Test/Anfänger Script Server");
    print("----------------------------------\n");
    }

    public OnGameModeInit()
    {
    DisableInteriorEnterExits();
    //Pickups
    Pickupm = CreatePickup(1239,1,1089.8258,-1788.5428,13.6543,-1);
    ammunationenter = CreatePickup(1239,1,1368.0730,-1279.7357,13.5469,-1);
    ammunationexit = CreatePickup(1239,1,285.3749,-40.9756,1001.5156,-1);
    //skins

    SetGameModeText("Test Gamemode");
    AddPlayerClass(0,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(1,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(2,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(3,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange

    //3D Texte
    Create3DTextLabel("Wilkommen am Spawnpunkt",Blau,1108.1499,-1796.5588,16.5938,25.0,0);

    //Autos
    AddStaticVehicle(411,1062.5868,-1775.6394,12.8493,271.3270,112,1); // Infernus

    printf("%d",Variabele);
    }

    public OnGameModeExit()
    {
    return 1;
    }

    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerVirtualWorld(playerid,1+playerid);
    SetPlayerPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraLookAt(playerid, 1399.6635,-917.1542,47.1435);
    return 1;
    }

    public OnPlayerConnect(playerid)
    {
    new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
    GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
    format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
    if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
    { // Wenn ja, sende einen Text und lade den Skin und das Geld
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
    GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
    }
    else
    {
    if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
    { //Sende einen Text
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
    }
    }
    return 1;
    new string[100];
    Variabeleleer = 100;
    SendClientMessage(playerid,Blau,"Wilkommen auf meinen Test/Anfänger Server");
    format(string,sizeof(string),"Hier kommt die Zahl %d",Variabeleleer);
    SendClientMessage(playerid,Blau,string);
    return 1;
    }

    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    }
    return 1;
    }

    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid); // Kicke den Spieler
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
    return 1;
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,1108.1499,-1796.5588,16.5938);//Spawn
    SetPlayerFacingAngle(playerid,87.9678);
    return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }

    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }

    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }

    public OnPlayerText(playerid, text[])
    {
    return 1;
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256]; //gleiche wie oben
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save)) // wenn Datei existiert
    {
    s2=dini_Get(save,"passwort"); // lade das Passwort
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
    {
    loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
    SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
    SpawnPlayer(playerid);
    }
    else // wenn das passwort nicht stimmt
    {
    SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
    }
    }
    return 1;
    }

    new spieler[MAX_PLAYER_NAME]
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
    SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
    }
    }
    return 1;
    }
    dcmd(kick,4,cmdtext);
    if (strcmp("/help", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe Commands|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    return 1;
    }
    return 0;
    }

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }

    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }

    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }

    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }

    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }

    public OnRconCommand(cmd[])
    {
    return 1;
    }

    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }

    public OnObjectMoved(objectid)
    {
    return 1;
    }

    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Pickupm)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe für neue User|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    }
    if(pickupid == ammunationenter)
    {
    SetPlayerPos(playerid,287.0065,-39.5749,1001.5156);
    SetPlayerFacingAngle(playerid,296.3441);
    SetPlayerInterior(playerid,1);
    }
    if(pickupid == ammunationexit)
    {
    SetPlayerPos(playerid,1365.8484,-1279.7980,13.5469);
    SetPlayerFacingAngle(playerid,87.5324);
    SetPlayerInterior(playerid,0);
    }
    return 1;
    }

    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }

    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }

    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }

    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }

    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }

    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }

    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }

    public OnPlayerUpdate(playerid)
    {
    return 1;
    }

    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }

    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }

    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }

    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }

    //DCMD Befehle

    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params,"us")) return SendClientMessage(playerid,Grau,"/kick [ID] [Grund]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Rot,"Der Spieler konnte nicht gefunden werden !");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurden vom Server gekickt! Grund: %s",Spieler,str);
    SendClientMessageToAll(Rot,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,Weis,"Du bist kein Administrator!");
    return 1;
    }

    //DCMD Befehle Ende !

    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    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 = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {

    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[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(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++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
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }
    und
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 017: undefined symbol "MAX_STRING"
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : error 036: empty statement
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46) : fatal error 107: too many error messages on one line

    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.


    so einfach.

  • Ich meinte das SO:



    #include <a_samp>
    #include <dini>
    #include <Dudb>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    //enums


    enum Info //Info ist der name des enums
    {
    //deine sachen, die gepseichert werden sollen
    }


    enum Info
    {
    passwort[128], // 128 steht für die maximale länge des passworts
    skin,
    };


    new pInfo[MAX_PLAYERS][Info];
    new bool:loggedin[MAX_PLAYERS];
    //Farben


    #define Blau 0x0005FFFF
    #define Rot 0xFF1400FF
    #define Weis 0xFAFAFAFF
    #define Gelb 0xFFFA00FF
    #define Grau 0x8C8C8CFF


    //Variablen


    new Variabele = 1,Variabeleleer;
    new Pickupm;
    new ammunationenter;
    new ammunationexit;


    main()
    {
    print("\n----------------------------------");
    print(" Test/Anfänger Script Server");
    print("----------------------------------\n");
    }


    public OnGameModeInit()
    {
    DisableInteriorEnterExits();
    //Pickups
    Pickupm = CreatePickup(1239,1,1089.8258,-1788.5428,13.6543,-1);
    ammunationenter = CreatePickup(1239,1,1368.0730,-1279.7357,13.5469,-1);
    ammunationexit = CreatePickup(1239,1,285.3749,-40.9756,1001.5156,-1);
    //skins


    SetGameModeText("Test Gamemode");
    AddPlayerClass(0,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(1,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(2,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(3,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange


    //3D Texte
    Create3DTextLabel("Wilkommen am Spawnpunkt",Blau,1108.1499,-1796.5588,16.5938,25.0,0);


    //Autos
    AddStaticVehicle(411,1062.5868,-1775.6394,12.8493,271.3270,112,1); // Infernus


    printf("%d",Variabele);
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerVirtualWorld(playerid,1+playerid);
    SetPlayerPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraLookAt(playerid, 1399.6635,-917.1542,47.1435);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
    GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
    format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
    if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
    { // Wenn ja, sende einen Text und lade den Skin und das Geld
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
    GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
    }
    else
    {
    if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
    { //Sende einen Text
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
    }
    }
    return 1;
    new string[100];
    Variabeleleer = 100;
    SendClientMessage(playerid,Blau,"Wilkommen auf meinen Test/Anfänger Server");
    format(string,sizeof(string),"Hier kommt die Zahl %d",Variabeleleer);
    SendClientMessage(playerid,Blau,string);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid); // Kicke den Spieler
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
    return 1;
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,1108.1499,-1796.5588,16.5938);//Spawn
    SetPlayerFacingAngle(playerid,87.9678);
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256]; //gleiche wie oben
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save)) // wenn Datei existiert
    {
    s2=dini_Get(save,"passwort"); // lade das Passwort
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
    {
    loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
    SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
    SpawnPlayer(playerid);
    }
    else // wenn das passwort nicht stimmt
    {
    SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
    }
    }
    return 1;
    }


    new spieler[MAX_PLAYER_NAME]
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
    SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
    }
    }
    return 1;
    }
    dcmd(kick,4,cmdtext);
    if (strcmp("/help", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe Commands|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Pickupm)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe für neue User|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    }
    if(pickupid == ammunationenter)
    {
    SetPlayerPos(playerid,287.0065,-39.5749,1001.5156);
    SetPlayerFacingAngle(playerid,296.3441);
    SetPlayerInterior(playerid,1);
    }
    if(pickupid == ammunationexit)
    {
    SetPlayerPos(playerid,1365.8484,-1279.7980,13.5469);
    SetPlayerFacingAngle(playerid,87.5324);
    SetPlayerInterior(playerid,0);
    }
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    //DCMD Befehle


    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params,"us")) return SendClientMessage(playerid,Grau,"/kick [ID] [Grund]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Rot,"Der Spieler konnte nicht gefunden werden !");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurden vom Server gekickt! Grund: %s",Spieler,str);
    SendClientMessageToAll(Rot,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,Weis,"Du bist kein Administrator!");
    return 1;
    }


    //DCMD Befehle Ende !


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    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 = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[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(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++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
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }



    E:// Verdammt, da war jemand ne Sekunde schneller :D

  • Les ma

    Code
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46)


    Lad dir mal die dini.inc neu runter und ersetz die datei

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Les ma

    Code
    C:\Dokumente und Einstellungen\alex\Desktop\Server Management\Server\pawno\include\dini.inc(46)


    Lad dir mal die dini.inc neu runter und ersetz die datei

    Nope , geht leider nicht
    Noch mal meine Errors Irgendwas ist in Zeile 170




    -Ab$olut