Hilfe bei /givemoney

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,
    also ich wollte testweise mal nen Befehl machen, bin noch Scripteinsteiger, aber jetzt häng ich das erste mal fest:D



    if (strcmp("/giveMoney", cmdtext, true, 10) == 0)
    {
    GivePlayerMoney(playerid, 5000);
    SendClientMessage(playerid, rot, "Du hast 5000$ bekommen!");
    return 1;


    Das ist mein funktionierenden Code der mir immer 5000 Dollar ausgibt... JEtzt möchte ich aber Im Spiel folgendes eingeben:


    /giveMoney 1234


    damit ich 1234 Dollar bekomme...


    Allerdings hänge ich da, kann mir jemand verraten wie das geht?


    Danke euch schon mal!

  • hey kleiner tipp benutz mal die nette suchmaschine ^^


    also zu deinem /giveMoney


    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    GivePlayerMoney(playerid,cash);
    return 1;
    }



    also so müsste es gehen
    wenn nicht sag bescheid!


    MFG Guillaume

    Wenn der klügere immer nachgibt, wird die Welt bald von dummen regiert.

  • Danke dir erstmal^^


    Allerdings meckert Pawno 2mal bei diesem STRGET


    error 017: undefined symbol "strget"


    Den Schnipsel hatte ich schon mal getestet aber ging ja nicht :D Wo liegt denn da der Fehler?


    Edit: Ich nutz Pawno, hab mal PawnoX geladen und guck mal wie das geht^^
    Edit2: Geht auch nicht, selber Fehler bei PawnoX

    2 Mal editiert, zuletzt von Lexcen ()

  • Das Ligt nich an PawnoX ... Es Ligt warscheinlich an denn Cod xD :thumbup:


    Mfg. Frankenstein

  • nö ihm fehlt strget :rolleyes:
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }

  • Noch eine kleine Frage:


    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    GivePlayerMoney(playerid,cash);
    SendClientMessage(playerid,rot, "Du hast bekommen!");
    return 1;
    }


    Wie änder ich den Code um, dass ich in der Message den genau Betrag angezeigt bekomme??^^

  • Probire mahr:


    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    GivePlayerMoney(playerid,cash);
    SendClientMessage(playerid,rot, "Du hast %s bekommen!");
    return 1;
    }

  • hmm Dasist Meiner meinung nach Flasch ich kenn das nur so....

    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    new string[24];
    format(string,sizeof(string),"Du hast %d$ bekommen!",cash);
    GivePlayerMoney(playerid,cash);
    SendClientMessage(playerid,rot,string);
    return 1;
    }


    so ist es richtig meiner meinung nach :thumbup:
    PS: ist ungetestet
    mfg Guillaume

    Wenn der klügere immer nachgibt, wird die Welt bald von dummen regiert.

    Einmal editiert, zuletzt von StickMan ()

  • -Wie soll das Funktionieren wenn du keine Summe angibst Junge, wenn es sich bei /givemoney um auf dt. übersetzt Geld übergeben handelt dann nimm doch lieber das hier.


    Falsch


    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    new string[24];
    format(string,sizeof(string),"Du hast %d$ bekommen!",cash);
    GivePlayerMoney(playerid,cash);
    SendClientMessage(playerid,rot,string);
    return 1;
    }


    Richtig


    dcmd(givemoney, 9, cmdtext); //Unter OnPlayerCommandText


    dcmd_givemoney(playerid, params[]) //Irgendwohin
    {
    new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
    new targetid = strval(tmp);
    new NewMoney = strval(tmp2);
    if (!IsPlayerConnected(targetid))
    {
    format(myString, sizeof(myString), "%i ist kein aktiver Spieler.", targetid);
    SendClientMessage(playerid, RED, myString);
    return 1;
    }
    GivePlayerMoney(targetid, NewMoney);


    dUserSetINT(PlayerName(targetid)).("money",GetPlayerMoney(targetid));


    Player[playerid][TypedSpawn] = true;
    return 1;
    }



    Sollte funktionieren gib aber keine Garantie 8)

    [align=center]
    Mta Script Editor - Work in Progress

  • Also bei dem letzten Code kommt wieder "undefined symbol "dcmd" und dmcd_givemoney und strok ...


    Fehlt mir da wieder was?


    Hab auch mal was anderes versucht, dass man keine negative zahlen eingeben kann



    if(!strcmp(strget(cmdtext,0),"/givemoney"))
    {
    new cash = strval(strget(cmdtext,1));
    GivePlayerMoney(playerid,cash);
    SendClientMessage(playerid,rot, "Du hast Geld bekommen!");
    return 1;
    }


    if(!strcmp(strget(cmdtext,0),"/givecash"))
    {
    new cash = strval(strget(cmdtext,2)),
    receiver = strval(strget(cmdtext,1));
    if(strval(strget(cmdtext,2)) == 0)
    {
    SendClientMessage(playerid,rot, "Nein");
    return 1;
    }
    else
    {
    GivePlayerMoney(playerid,-cash);
    GivePlayerMoney(receiver,cash);
    }
    return 1;
    }


    return 0;
    }


    Aber auch da kommt ein Fehler Losse Indentation^^ Verdammt

    Einmal editiert, zuletzt von Lexcen ()

  • LOL was ist den bei meinem bitte falsch..... naja bei mir klappt es weis ja net was du gemacht hast....



    Mfg guillaume

    Wenn der klügere immer nachgibt, wird die Welt bald von dummen regiert.