"Supermarkt" für Drogen und Mats

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
  • Hi ;)
    Ich möchte einen "Punkt" scripten , an dem die Leute sich Drogen und Mats zu bestimmten Preisen kaufen können.
    Nun habe ich aber das Problem , dass immer der Text " Sie haben g Drogen für 0$ gekauft" ausgegeben wird, außer mal ist nicht an dem Punkt oder das Geld des Spieler ist im Minus.


    Hier mal der Schnipsel:


    if(strcmp(cmd, "/kaufen", true) == 0)
    {
    if(PlayerToPoint(3.0, playerid,1119.1843,-1370.7273,13.9844))
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xBFC0C2FF, "/kaufen [Mats/Drogen] [Anzahl]");
    return 1;
    }
    new Anzahl;
    new Preis;
    tmp = strtok(cmdtext, idx);
    Anzahl = strval(strtok(cmdtext, idx));
    if(tmp = "Drogen")
    {
    if(Anzahl * 500 > (GetPlayerMoney(playerid)))
    {
    SendClientMessage(playerid, 0xAA3333AA, "Sie haben nicht genug Geld");
    return 1;
    }
    Preis = Anzahl * 500;
    GivePlayerMoney(playerid, -Preis);
    PlayerInfo[playerid][pDrugs] += Anzahl;
    format(string, sizeof(string), "Sie haben %s g Drogen für %d $ gekauft", Anzahl, Preis);
    SendClientMessage(playerid, 0xAA3333AA, string);
    return 1;
    }
    if(tmp = "Mats")
    {
    if(Anzahl * 6 > (GetPlayerMoney(playerid)))
    {
    SendClientMessage(playerid, 0xAA3333AA, "Sie haben nicht genug Geld");
    return 1;
    }
    Preis = Anzahl * 6;
    GivePlayerMoney(playerid, -Preis);
    PlayerInfo[playerid][pMats] += Anzahl;
    format(string, sizeof(string), "Sie haben %s Materialien für %d $ gekauft", Anzahl, Preis);
    SendClientMessage(playerid, 0xAA3333AA, string);
    return 1;
    }
    SendClientMessage(playerid, 0xAA3333AA, "Sie müssen Drogen oder Mats wählen");
    }
    }
    SendClientMessage(playerid, 0xAA3333AA, "Sie befinden sich nicht am Markt");
    }


    Ich hoffe es kann mir jemand dabei helfen ;)


    P.S.: Ich bin ein N00b , sry :(

    4 Mal editiert, zuletzt von Docean ()

  • if(strcmp(cmd, "/kaufen", true) == 0)
    {
    if(PlayerToPoint(3.0, playerid,1119.1843,-1370.7273,13.9844)) {
    if(IsPlayerConnected(playerid)) {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, 0xBFC0C2FF, "/kaufen [Mats/Drogen] [Anzahl]");
    return 1;
    }
    new Anzahl;
    new Preis;
    tmp = strtok(cmdtext, idx);
    Anzahl = strval(strtok(cmdtext, idx));
    if(!strcmp(tmp,"Drogen")) {
    if(Anzahl * 500 > (GetPlayerMoney(playerid))) {
    SendClientMessage(playerid, 0xAA3333AA, "Sie haben nicht genug Geld");
    return 1;
    }
    Preis = Anzahl * 500;
    GivePlayerMoney(playerid, -Preis);
    PlayerInfo[playerid][pDrugs] += Anzahl;
    format(string, sizeof(string), "Sie haben %s g Drogen für %d $ gekauft", Anzahl, Preis);
    SendClientMessage(playerid, 0xAA3333AA, string);
    return 1;
    }
    if(!strcmp(tmp,"Mats")) {
    if(Anzahl * 6 > (GetPlayerMoney(playerid))) {
    SendClientMessage(playerid, 0xAA3333AA, "Sie haben nicht genug Geld");
    return 1;
    }
    Preis = Anzahl * 6;
    GivePlayerMoney(playerid, -Preis);
    PlayerInfo[playerid][pMats] += Anzahl;
    format(string, sizeof(string), "Sie haben %s Materialien für %d $ gekauft", Anzahl, Preis);
    SendClientMessage(playerid, 0xAA3333AA, string);
    return 1;
    }
    SendClientMessage(playerid, 0xAA3333AA, "Sie müssen Drogen oder Mats wählen");
    }
    }
    SendClientMessage(playerid, 0xAA3333AA, "Sie befinden sich nicht am Markt");
    }


    Zum String-Vergleichen "strcmp" benutzen.

  • Leider wird immernoch nur ""Sie haben g Drogen für 0 $ gekauft" ausgegeben , wenn man alle Parameter angibt ? :(
    Ich weiß leider nicht was hier falsch läuft.
    Ich hoffe es kann sich jemand nochmal das Schnipselchen durchlesen und ggf. verbessern ;)


    Gruß Docean