/givegun - Fehler

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,


    ich mahc garde ein /givegun befehl für die Waffen Dealer, jedoch geht es nicht ordentlich. An folgender stelle versagt das script:



    jedoch geht das hier :


    Zitat


    if(gun <= 0){ return SendClientMessage(playerid, COLOR_GRAD2,"Falsche Waffen ID");}
    if(gun >= 9){ return SendClientMessage(playerid, COLOR_GRAD2,"Falsche Waffen ID");}


    Naja ich weiß nicht warum wen ich /givegun 0 8 100 0 eingebe steht dort folgendes


    Zitat

    Du hast nun eine 0 - 8.

    und wen ich /givegun 0 10 100 0eingebe steht da


    Zitat

    Falsche Waffen ID


    hier das ganze script einmal :




  • Entweder strtok/strval oder sscanf, nicht beides gleichzeitig. Ich habe mal die falsche Stellen entfernt. Du musst den Code noch um die restlichen Waffen vervollständigen, damit er richtig funktioniert...
    dcmd_givegun(playerid, params[])
    {
    if(PlayerInfo[playerid][pJob] != 2)
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Waffenhändler");
    return 1;
    }
    new
    string[60], // Dein Output kann maximal 128 groß sein, nicht 256, in deinem Fall noch weniger
    giveplayerid,
    price,
    weapon,
    mats,
    ammo;
    if(sscanf(params, "uddd", giveplayerid, weapon, ammo, price))
    {
    SendClientMessage(playerid, COLOR_GREEN, "________________________________________________");
    SendClientMessage(playerid, COLOR_WHITE, "*** Waffen ***");
    SendClientMessage(playerid, COLOR_RED, "Verwendung: /givegun [ID] [WAFFEN ID] [AMMO] [PREIS]");
    SendClientMessage(playerid, COLOR_GRAD5, "Waffen: 1.flowers(25) 2.sdpistol(100) 3.eagle(200) 4.mp5(200) 5.shotgun(200)");
    SendClientMessage(playerid, COLOR_GRAD5, "Waffen: 6.ak47(600) 7.m4(600) 8.rifle(600)");
    SendClientMessage(playerid, COLOR_GREEN, "________________________________________________");
    }
    else if(giveplayerid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, COLOR_RED, "Dieser Spieler exitiert nicht");
    }
    else if(weapon < 1 | weapon > 8)
    {
    SendClientMessage(playerid, COLOR_RED, "Diese Waffe existiert nicht");
    }
    else
    {
    if(weapon == 1)
    {
    weapon = 14;
    mats = 25,
    }
    else if(weapon == 2)
    {
    weapon = WAFFENID;
    mats = MATS,
    }
    // hier immer so weiter
    if(PlayerInfo[playerid][pMats] < mats)
    {
    SendClientMessage(playerid, COLOR_RED, "Du hast so viele Materialien nicht");
    return 1;
    }
    GivePlayerWeapon(giveplayerid, weapon, price);
    GivePlayerMoney(giveplayerid, -price);
    GivePlayerMoney(playerid, price);
    format(string, sizeof(string), "Du hast eine %d mit %d Munition für $%d verkauft", weapon, ammo, price);
    SendClientMessage(playerid, COLOR_GREEN, string);
    format(string, sizeof(string), "Du hast eine %d mit %d Munition für $%d gekauft", weapon, ammo, price);
    SendClientMessage(giveplayerid, COLOR_GREEN, string);
    }
    return 1;
    }