Geldtransfer

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
  • Überschrift ist wirklich einfach nur unpassend.
    Also du willst einen FILTERSCRIPT ???? für ein /pay /zahlken system ?
    naja wie soll der Befehl heißen ? irgendwelche Besonderheiten ?
    gib mir mehr infos


  • dcmd_geld(playerid, params[])
    {
    new pID, betrag;
    if(sscanf(params, "uu", giveplayer, betrag))
    {
    return SendClientMessage(playerid, COLOR_RED, "FEHLER: Benutze: /geld [ID] [Betrag]")
    }
    new spender[20] string[128], giveplayer[20];
    GetPlayerName(playerid, spender, sizeof(spender);
    GetPlayerName(pID, giveplayer, sizeof(giveplayer);
    format(string, sizeof(string), " %s hat %s %u gegeben", spender, giveplayer, betrag);
    //Hier müsste eine Funktion hin - ProxDetector(); weiß die syntax nicht auswendig. ProxDetector ist, damit Spieler in der Nähe das sehen können ;)
    // Und hier kommen die Befehle fürs Geld abziehen bzw. zufügen hin, einfach den dem der es dem anderen gibt den betrag abziehen und dem anderen drauf zählen.
    }





    bin zwar kein profi scripter, aber ich denke so müsste das ungefähr stimmen ;)


  • So würd das nicht funktionieren, versuch mal das:



    dcmd_geld(playerid, params[])
    {
    new pID, betrag;
    if(sscanf(params, "ud", pID, betrag))
    {
    return SendClientMessage(playerid, COLOR_RED, "FEHLER: Benutze: /geld [ID] [Betrag]")
    }
    new spender[MAX_PLAYER_NAME], string[128], giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid, spender, sizeof(spender);
    GetPlayerName(pID, giveplayer, sizeof(giveplayer);
    format(string, sizeof(string), " %s hat %s %d gegeben", spender, giveplayer, betrag);
    //Hier müsste eine Funktion hin - ProxDetector(); weiß die syntax nicht auswendig. ProxDetector ist, damit Spieler in der Nähe das sehen können ;)
    // Und hier kommen die Befehle fürs Geld abziehen bzw. zufügen hin, einfach den dem der es dem anderen gibt den betrag abziehen und dem anderen drauf zählen.
    }


  • Willst du Liber noch sicherrer sein nimm meins *G*



    if(strcmp(cmd, "/pay", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "NUTZUNG: /pay [playerid/PartOfName] [amount]");
    return 1;
    }
    //giveplayerid = strval(tmp);
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "NUTZUNG: /pay [playerid/PartOfName] [amount]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Level 3 sein, um über $1000 abgeben zu können.");
    return 1;
    }
    if(moneys < 1 || moneys > 99999)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Der Betrag muss zwischen $1 und $90000 sein!");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[giveplayerid][pLocal] == 106)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Der Befehl ist in dieser Lage nicht erlaubt.");
    return 1;
    }
    if (ProxDetectorS(5.0, playerid, giveplayerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerMoney(playerid);
    if (moneys > 0 && playermoney >= moneys)
    {
    ConsumingMoney[giveplayerid] = 1;
    GivePlayerMoney(playerid, (0 - moneys));
    GivePlayerMoney(giveplayerid, moneys);
    format(string, sizeof(string), " Du hast %s(player: %d), $%d gegeben.", giveplayer,giveplayerid, moneys);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Du hast $%d von %s(player: %d) bekommen.", moneys, sendername, playerid);
    SendClientMessage(giveplayerid, COLOR_GRAD1, string);
    format(string, sizeof(string), "%s hat $%d dem Spieler %s gegeben.", sendername, moneys, giveplayer);
    PayLog(string);
    if(moneys >= 1000000)
    {
    ABroadCast(COLOR_YELLOW,string,1);
    }
    PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "* %s nimmt Geld aus seiner Tasche und gibt es %s.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Ungültiger Betrag.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du musst näher an dem Spieler sein!");
    }
    }//invalid id
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }