Führerscheine Geben geht nicht

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 Brotfische,


    Ich habe einige befehle geschrieben die gleich aufgebaut sind und dennoch anderes Bewirken, in der Theorie funktionieren ie auch aber leider in der Praxis nicht :/
    hier mal ein beispiel beim /agibschein befehl:


    (Beispiele passieren auf dem Home Server wenn ich alleine auf dem Server bin)
    Gebe ich /agibschein ein dann kommt ganz normal "Info: /agibschein [SpielerID] [ScheinID]" gebe ich allerdings z.b. "/agibschein 7 1" oder "/agibschein 0 3"
    dann kommt die Meldung "Du hast ID: 7 den Autoschein gegeben." oder "Du hast ID: 0 den Autoschein gegeben." anders gesagt egal was ich eingebe und egal ob der spieler Online ist man bekommt nur den Autoschein
    dcmd_agibschein(playerid,params[])
    {
    new pID;
    new ascheinid;
    new string[128];
    new string2[256];
    if (sscanf(params, "ui", pID, ascheinid)) SendClientMessage(playerid, Rot, "Info: /agibschein [SpielerID] [ScheinID]");
    else if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) SendClientMessage(playerid, Rot, "*:: Dieser Spieler kann nicht erreicht werden. ::*");
    else if (ascheinid < 0 || ascheinid > 7) SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    else
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(pInfo[playerid][Adminlevel] >= 5)
    {
    if(ascheinid == 0)
    {
    pInfo[pID][Auto] = 1; //Auto
    format(string, sizeof(string),"Du hast ID: %d den Autoschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Autoschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 1)
    {
    pInfo[pID][LKW] = 1; //Motorrad
    format(string, sizeof(string),"Du hast ID: %d den Motorradschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Motorradschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 2)
    {
    pInfo[pID][LKW] = 1; //LKW
    format(string, sizeof(string),"Du hast ID: %d den LKWschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den LKWschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 3)
    {
    pInfo[pID][Bus] = 1; //Bus
    format(string, sizeof(string),"Du hast ID: %d den Busschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Busschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 4)
    {
    pInfo[pID][Boot] = 1; //Boot
    format(string, sizeof(string),"Du hast ID: %d den Bootschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Bootschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 5)
    {
    pInfo[pID][Flug] = 1; //Flug
    format(string, sizeof(string),"Du hast ID: %d den Flugschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Flugschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 6)
    {
    pInfo[pID][Panzer] = 1; //Panzer
    format(string, sizeof(string),"Du hast ID: %d den Panzerschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Panzerschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 7)
    {
    pInfo[pID][Waffen] = 1; //Waffen
    format(string, sizeof(string),"Du hast ID: %d den Waffenschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Waffenschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Admin");
    }
    }
    return 1;
    }


    Hoffe ihr könnt mir helfen


    MfG: Wuppi

  • so sollte es gehen


    dcmd_agibschein(playerid,params[])
    {
    new pID;
    new ascheinid;
    new string[128];
    new string2[256];
    if (sscanf(params, "ui", pID, ascheinid)) return SendClientMessage(playerid, Rot, "Info: /agibschein [SpielerID] [ScheinID]");
    if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) return SendClientMessage(playerid, Rot, "*:: Dieser Spieler kann nicht erreicht werden. ::*");
    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(pInfo[playerid][Adminlevel] >= 5)
    {
    if(ascheinid == 0)
    {
    pInfo[pID][Auto] = 1; //Auto
    format(string, sizeof(string),"Du hast ID: %d den Autoschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Autoschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 1)
    {
    pInfo[pID][LKW] = 1; //Motorrad
    format(string, sizeof(string),"Du hast ID: %d den Motorradschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Motorradschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 2)
    {
    pInfo[pID][LKW] = 1; //LKW
    format(string, sizeof(string),"Du hast ID: %d den LKWschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den LKWschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 3)
    {
    pInfo[pID][Bus] = 1; //Bus
    format(string, sizeof(string),"Du hast ID: %d den Busschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Busschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 4)
    {
    pInfo[pID][Boot] = 1; //Boot
    format(string, sizeof(string),"Du hast ID: %d den Bootschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Bootschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 5)
    {
    pInfo[pID][Flug] = 1; //Flug
    format(string, sizeof(string),"Du hast ID: %d den Flugschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Flugschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 6)
    {
    pInfo[pID][Panzer] = 1; //Panzer
    format(string, sizeof(string),"Du hast ID: %d den Panzerschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Panzerschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    if(ascheinid == 7)
    {
    pInfo[pID][Waffen] = 1; //Waffen
    format(string, sizeof(string),"Du hast ID: %d den Waffenschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Waffenschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Admin");
    }
    }
    return 1;
    }

  • dcmd_agibschein(playerid,params[])
    {
    new pID;
    new ascheinid;
    new string[128];
    new string2[256];
    if (sscanf(params, "ui", pID, ascheinid)) return SendClientMessage(playerid, Rot, "Info: /agibschein [SpielerID] [ScheinID]");
    if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) return SendClientMessage(playerid, Rot, "*:: Dieser Spieler kann nicht erreicht werden. ::*");
    printf("pID = %i || ascheinid = %i", pID, ascheinID);
    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(pInfo[playerid][Adminlevel] >= 5)
    {
    if(ascheinid == 0)
    {
    pInfo[pID][Auto] = 1; //Auto
    format(string, sizeof(string),"Du hast ID: %d den Autoschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Autoschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 1)
    {
    pInfo[pID][LKW] = 1; //Motorrad
    format(string, sizeof(string),"Du hast ID: %d den Motorradschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Motorradschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 2)
    {
    pInfo[pID][LKW] = 1; //LKW
    format(string, sizeof(string),"Du hast ID: %d den LKWschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den LKWschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 3)
    {
    pInfo[pID][Bus] = 1; //Bus
    format(string, sizeof(string),"Du hast ID: %d den Busschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Busschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 4)
    {
    pInfo[pID][Boot] = 1; //Boot
    format(string, sizeof(string),"Du hast ID: %d den Bootschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Bootschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 5)
    {
    pInfo[pID][Flug] = 1; //Flug
    format(string, sizeof(string),"Du hast ID: %d den Flugschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Flugschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 6)
    {
    pInfo[pID][Panzer] = 1; //Panzer
    format(string, sizeof(string),"Du hast ID: %d den Panzerschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Panzerschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    else if(ascheinid == 7)
    {
    pInfo[pID][Waffen] = 1; //Waffen
    format(string, sizeof(string),"Du hast ID: %d den Waffenschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Waffenschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Admin");
    }
    }
    return 1;
    }


    Probier es mal so, und poste danach bitte direkt die Log was ausgegeben wird wenn du versuchst dir einen Schein zu geben.

  • Ja, probiere mal N0SKILLs Variante mit dem debuggen, ansonsten probier dieser Version nochmal^^
    dcmd_agibschein(playerid,params[])
    {
    new pID;
    new ascheinid;
    new string[128];
    new string2[256];
    if (sscanf(params, "ui", pID, ascheinid)) return SendClientMessage(playerid, Rot, "Info: /agibschein [SpielerID] [ScheinID]");
    if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) return SendClientMessage(playerid, Rot, "*:: Dieser Spieler kann nicht erreicht werden. ::*");
    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot, "Der Spieler ist nicht online.");
    if(pInfo[playerid][Adminlevel] < 5) return SendClientMessage(playerid,Rot,"Du bist kein Admin.");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    switch(ascheinid)
    {
    case 0:
    {
    pInfo[pID][Auto] = 1; //Auto
    format(string, sizeof(string),"Du hast ID: %d den Autoschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Autoschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 1:
    {
    pInfo[pID][LKW] = 1; //Motorrad
    format(string, sizeof(string),"Du hast ID: %d den Motorradschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Motorradschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 2:
    {
    pInfo[pID][LKW] = 1; //LKW
    format(string, sizeof(string),"Du hast ID: %d den LKWschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den LKWschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 3:
    {
    pInfo[pID][Bus] = 1; //Bus
    format(string, sizeof(string),"Du hast ID: %d den Busschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Busschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 4:
    {
    pInfo[pID][Boot] = 1; //Boot
    format(string, sizeof(string),"Du hast ID: %d den Bootschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Bootschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 5:
    {
    pInfo[pID][Flug] = 1; //Flug
    format(string, sizeof(string),"Du hast ID: %d den Flugschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Flugschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 6:
    {
    pInfo[pID][Panzer] = 1; //Panzer
    format(string, sizeof(string),"Du hast ID: %d den Panzerschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Panzerschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 7:
    {
    pInfo[pID][Waffen] = 1; //Waffen
    format(string, sizeof(string),"Du hast ID: %d den Waffenschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Waffenschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    }
    return 1;
    }

  • ich weis zwar nicht was du geändert hast aber das Problem besteht leider weiterhin :/


    habe Testweise auch mal die ScheinID 67 rausgegeben und die meldung "Die Schein ID muss zwischen 0 und 7 sein!" kommt leider auch nicht


    ich hab den else kramm oeben weg gemacht den das wahr unnsin :D


    aber geht also immer noch nicht
    teste ma von Codex seine version weil eigendlich is so alles richtig

  • Hier erstmal die Variante von N0SKILL:


    [02:51:31] Incoming connection: 127.0.0.1:59036
    [02:51:31] [join] Wuppertaler93 has joined the server (0:127.0.0.1)
    [02:51:57] pID = 0 || ascheinid = 0
    [02:52:07] pID = 3 || ascheinid = 0
    [02:52:21] pID = 44 || ascheinid = 0
    [02:52:25] [part] Wuppertaler93 has left the server (0:1)


    er scheint die ScheinID nicht auszugeben aber das dachte ich mir schon sonst würde ich ja nicht immer "Du hast ID: [ID] den Autoschein gegeben." kommen

  • so sollte es gehen die reinfolge is auch wichtig bei sowas



    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    switch(ascheinid)
    {


    {
    new pID;
    new ascheinid;
    new string[128];
    new string2[256];
    if (sscanf(params, "ui", pID, ascheinid)) return SendClientMessage(playerid, Rot, "Info: /agibschein [SpielerID] [ScheinID]");
    if (pID == INVALID_PLAYER_ID || IsPlayerNPC(pID)) return SendClientMessage(playerid, Rot, "*:: Dieser Spieler kann nicht erreicht werden. ::*");
    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot, "Der Spieler ist nicht online.");
    if(pInfo[playerid][Adminlevel] < 5) return SendClientMessage(playerid,Rot,"Du bist kein Admin.");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if (ascheinid < 0 || ascheinid > 7) return SendClientMessage(playerid, Rot, "Die Schein ID muss zwischen 0 und 7 sein!");
    switch(ascheinid)
    {
    case 0:
    {
    pInfo[pID][Auto] = 1; //Auto
    format(string, sizeof(string),"Du hast ID: %d den Autoschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Autoschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 1:
    {
    pInfo[pID][LKW] = 1; //Motorrad
    format(string, sizeof(string),"Du hast ID: %d den Motorradschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Motorradschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 2:
    {
    pInfo[pID][LKW] = 1; //LKW
    format(string, sizeof(string),"Du hast ID: %d den LKWschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den LKWschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 3:
    {
    pInfo[pID][Bus] = 1; //Bus
    format(string, sizeof(string),"Du hast ID: %d den Busschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Busschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 4:
    {
    pInfo[pID][Boot] = 1; //Boot
    format(string, sizeof(string),"Du hast ID: %d den Bootschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Bootschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 5:
    {
    pInfo[pID][Flug] = 1; //Flug
    format(string, sizeof(string),"Du hast ID: %d den Flugschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Flugschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 6:
    {
    pInfo[pID][Panzer] = 1; //Panzer
    format(string, sizeof(string),"Du hast ID: %d den Panzerschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Panzerschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    case 7:
    {
    pInfo[pID][Waffen] = 1; //Waffen
    format(string, sizeof(string),"Du hast ID: %d den Waffenschein gegeben.",pID);
    format(string2, sizeof(string2),"Du hast von Admin %s den Waffenschein Bekommen.",name);
    SendClientMessage(pID, Gelb, string2);
    SendClientMessage(playerid, Gelb, string);
    }
    }
    return 1;