Problem mit /createwaffe

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
  • Guten Abend!

    Habe leider ein Problem mit meinem Createwaffe Befehl!


    Könnt ihr bitte einmal drüberschauen?


    Hier der Befehl:


    if(strcmp(cmd,"/createwaffe",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pJob] != 23)
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du bist kein Waffen Händler!");
    return 1;
    }
    if (PlayerInfo[playerid][pJailed] >= 1)
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Im Gefängnis kannst du keine Waffe Erstellen!");
    return 1;
    }
    new level = PlayerInfo[playerid][pWeapSkill];
    new x_weapon[128]
    if(!strlen(tmp))
    {
    if(level >= 0 || level <= 50)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50) sdpistole (100)");
    return 1;
    }
    else if(level >= 51 || level <= 75)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50) sdpistole (100) shotgun (150)");
    return 1;
    }
    else if(level >= 76 || level <= 125)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), deagle (200)");
    return 1;
    }
    else if(level >= 126 || level <= 200)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), deagle (200), granate (500)");
    return 1;
    }
    else if(level >= 201)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), deagle (200)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: granate (500), ak47 (650)");
    return 1;
    }
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok2(cmdtext, idx);
    createprice[playerid] = strval(tmp);
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    x_weapon = strtok2(cmdtext, idx);
    if(!strlen(x_weapon))
    {
    if(level >= 0 || level <= 50)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50) sdpistole (100)");
    return 1;
    }
    else if(level >= 51 || level <= 75)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50) sdpistole (100) shotgun (150)");
    return 1;
    }
    else if(level >= 76 || level <= 125)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), deagle (200)");
    return 1;
    }
    else if(level >= 126 || level <= 200)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), deagle (200), armor (500)");
    return 1;
    }
    else if(level >= 201)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /createwaffe [Spieler ID] [Waffe] [Preis]");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: blumen (25), schlagring (50), sdpistole (100)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: shotgun (150), mp5 (200), granate (200)");
    SendClientMessage(playerid, COLOR_GRAD1, "Verfügbare Waffen: granate (500), ak47 (650)");
    return 1;
    }
    }
    }
    if(strcmp(x_weapon,"blumen",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 25)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 14;
    createmuni[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"schlagring",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 50)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 1;
    createmuni[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"sdpistole",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 100)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 23;
    createmuni[playerid] = 50;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"shotgun",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 150)
    {
    if(level >= 50)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 25;
    createmuni[playerid] = 50;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Für diese Waffe brauchst du mindestens Skill Level 2!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"mp5",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 200)
    {
    if(level >= 75)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 29;
    createmuni[playerid] = 250;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Für diese Waffe brauchst du mindestens Skill Level 3!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"deagle",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 200)
    {
    if(level >= 75)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 24;
    createmuni[playerid] = 100;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Für diese Waffe brauchst du mindestens Skill Level 3!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"granate",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 200)
    {
    if(level >= 75)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 16;
    createmuni[playerid] = 5;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Für diese Waffe brauchst du mindestens Skill Level 3!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    if(strcmp(x_weapon,"ak47",true) == 0)
    {
    if(PlayerInfo[playerid][pMats] >= 500)
    {
    if(level >= 650)
    {
    if(createprice[playerid] < 1 || createprice[playerid] > 5000) { SendClientMessage(playerid, COLOR_WHITE, "Der Preis kann nicht unter 1 und nicht über 5000 liegen!"); return 1; }
    createweapon[playerid] = 30;
    createmuni[playerid] = 250;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Für diese Waffe brauchst du mindestens Skill Level 5!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Du hast nicht genug Materials!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD1, "Unbekannter Waffen Name!");
    return 1;
    }
    if (ProxDetectorS(5.0, playerid, giveplayerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "Du hast %s eine %s mit %d Munition für $%d Angeboten!", giveplayer, x_weapon, createmuni[playerid], createprice[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Du hast von Waffenhändler %s eine %s mit %d für $%d Angeboten bekommen!",sendername, x_weapon, createmuni[playerid], createprice[playerid]);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Tippe /accept waffe um den Deal zu Akzeptieren!");
    WaffenOffer[giveplayerid] = playerid;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist nicht in deiner Nähe!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Unbekannte Spieler ID!");
    }
    }
    return 1;
    }



    Und zwar, liegt da folgender Fehler vor:


    Wenn ich den Befehl eingebe, kommt immer die Fehlermeldung: "Benutze /createwaffe....".
    Woran mag das liegen?


    MFG, Razor!

  • Dir ist klar das der Befehl nur mit anderen Spielern geht ne ?

  • Warum erstellst du für jeden Spieler eine Variable ?


    createprice[playerid]
    so reicht es auch createprice

  • tmp = strtok2(cmdtext, idx);
    x_weapon = strtok2(cmdtext, idx);
    Vllt vertragen sich die beiden nicht so ?

  • das klappt glaub ich nicht.


    giveplayerid = ReturnUser(tmp);
    tmp = strtok2(cmdtext, idx);
    createprice[playerid] = strval(tmp);
    Grund du gibst die ID des Spieler aus und willst sie dem Preis zu Ordnung.
    Liege ich falsch ?

  • auf ocmd wechseln.. weil damit kenne ich mich nicht so gut aus sry..
    Eher mehr mit ocmd und scanff da ich das nur gelernt habe.