[Selfmade]Problem mit /givelicense

  • [Selfmade]Problem mit /givelicense

    Guten Morgen,

    ich habe gerade mal ein Scheinsystem angefangen also für die Fahrschule habe aber nun ein Problem.
    Code :

    [pwn]#define scheinname1 "Auto"
    #define scheinname2 "Bike"
    #define scheinname3 "LKW"
    #define scheinname4 "Flug"
    #define scheinname5 "Boot"
    #define scheinname6 "Angel"
    #define scheinname7 "Waffen"
    COMMAND:givelicense(playerid,params[])
    {
    new pID,schein[128];
    if(IsPlayerConnected(playerid))
    {
    if(!IsPlayerInFraktion(playerid,7)) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du bist kein Fahrlehrer !");
    if(sscanf(params,"is",pID,schein)) return SendClientMessage(playerid,COLOR_BLUE,"Benutze : /givelicense [Player ID] [Schein]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Fehler : Der gewünschte Spieler ist nicht online !");
    if(playerid == pID) return SendClientMessage(playerid,COLOR_RED,"Fehler : Du kannst dir nicht selber Scheine geben !");
    if(schein == scheinname1){ bInfo[pID][Autoschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Autoschein ! Glückwunsch."); }
    else if(schein == scheinname2){ bInfo[pID][Bikeschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Bikeschein ! Glückwunsch."); }
    else if(schein == scheinname3){ bInfo[pID][LKWschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen LKWschein ! Glückwunsch."); }
    else if(schein == scheinname4){ bInfo[pID][Flugschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Flugschein ! Glückwunsch."); }
    else if(schein == scheinname5){ bInfo[pID][Bootschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Bootsschein ! Glückwunsch."); }
    else if(schein == scheinname6){ bInfo[pID][Angelschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Angelschein ! Glückwunsch."); }
    else if(schein == scheinname7){ bInfo[pID][Waffenschein] = 1; SendClientMessage(pID,COLOR_BLUE,"Du hast nun einen Waffenschein ! Glückwunsch."); }
    else { SendClientMessage(playerid,COLOR_RED,"Fehler : Der Schein muss so heißen : Auto , Bike , LKW , Flug , Boot , Angel , Waffen"); }
    }
    return 1;
    }[/pwn]

    Fehler Meldungen :

    Quellcode

    1. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4751) : error 033: array must be indexed (variable "schein")
    2. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4752) : error 033: array must be indexed (variable "schein")
    3. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4753) : error 033: array must be indexed (variable "schein")
    4. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4754) : error 033: array must be indexed (variable "schein")
    5. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4755) : error 033: array must be indexed (variable "schein")
    6. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4756) : error 033: array must be indexed (variable "schein")
    7. C:\Users\Benedikt\Desktop\Selfmade Server V1.0\gamemodes\PG.pwn(4757) : error 033: array must be indexed (variable "schein")
    8. Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
    9. 7 Errors.
    Alles anzeigen


    Ich hoffe jemand von euch kann mir helfen...

    Mfg
  • Man kann Strings, also Zeichenketten nicht mit == vergleichen.
    Dafür musst du strcmp() nutzen, das heißt "string compare", also "Strings vergleichen".
    Das wäre bei deinem Beispiel so zu benutzen:
    [pwn]if( strcmp(schein, scheinname1) == 0 ) SendClientMessage...[/pwn]
    strcmp gibt 0 zurück, wenn beide Strings gleich sind.

    Edit: Da war ich wohl ein bisschen zu langsam :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mr. Flash ()