Pay System

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
  • Was habe ich nur falsch?


    {
    // Spieler Befehle <<
    if(strcmp(cmdtext, "/pay",true) == 0)
    {
    if(GetPVarInt(playerid,"/paytime")>gettime())return SendClientMessage(playerid,"Dieser Befehl darf nur alle 5 Sekunden genutzt werden.");
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, WEISS, "INFO: /pay [Spielerid] [geld]");
    new playa = ReturnUser(tmp);
    if(playa==INVALID_PLAYER_ID)return SendClientMessage(playerid,"Spieler nicht gefunden.");
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, WEISS, "INFO: /pay [Spielerid] [geld]");
    new geld_x = strval(tmp);
    if(SpielerInfo[playerid][Level]<3)
    {
    if(geld_x>100)return SendClientMessage(playerid,"Unter Level 3 nur bis 100$ möglich");
    }
    if(playerid==playa)return 1;
    if(spect[playa]==0)
    {
    if(GetPlayerMoney(playerid)>=geld_x&&geld_x>0&&geld_x<9999999)
    {
    new Float:xc,Float:yc,Float:zc;
    GetPlayerPos(playa,xc,yc,zc);
    if(IsPlayerInRangeOfPoint(playerid,10,xc,yc,zc))
    {
    GibGeld(playa,geld_x);
    GibGeld(playerid,-geld_x);
    SpielerSpeichern(playerid);
    SpielerSpeichern(playa);
    savePay(playerid,playa,geld_x);
    new log[128];
    format(log,sizeof(log),"%s hat %s %i$ gegeben.",SpielerName(playerid),SpielerName(playa),geld_x);
    MoneyLog(log);
    new nachricht[128];
    format(nachricht,sizeof(nachricht),"Du hast dem Spieler %s, %d$ gegeben !",SpielerName(playa),geld_x);
    SendClientMessage(playerid,COLOR_WHITE,nachricht);
    PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
    new playanachricht[128];
    format(playanachricht,sizeof(playanachricht),"%s hat dir %d$ gegeben!",SpielerName(playerid),geld_x);
    SendClientMessage(playa,COLOR_WHITE,playanachricht);
    PlayerPlaySound(playa,1054,0.0,0.0,0.0);
    format(nachricht,sizeof(nachricht),"*%s nimmt Geld aus der Tasche und gibt es %s",SpielerName(playerid),SpielerName(playa));
    ProxDetector(10.0,playerid,nachricht,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    SetPVarInt(playerid,"/paytime",gettime()+5);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Spieler ist nicht in deiner Nähe");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Du hast nicht genug Geld");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Spieler ist nicht in deiner Nähe");
    return 1;
    }
    }


    Die Errors:


    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2949) : error 035: argument type mismatch (argument 2)
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2950) : error 017: undefined symbol "tmp"
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2950) : error 017: undefined symbol "strtok"
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2951) : error 017: undefined symbol "tmp"
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2951) : warning 215: expression has no effect
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2951) : error 001: expected token: ";", but found "]"
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2951) : error 029: invalid expression, assumed zero
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2951) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[128], idx;
    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd, "/pay",true) == 0)
    {
    new tmp[128];
    tmp = strtok(cmdtext, idx);
    if(GetPVarInt(playerid,"/paytime")>gettime())return SendClientMessage(playerid,0xFFFFFFFF,"Dieser Befehl darf nur alle 5 Sekunden genutzt werden.");
    if(strlen(tmp)==0)return SendClientMessage(playerid, WEISS, "INFO: /pay [Spielerid] [geld]");
    new playa = ReturnUser(tmp);
    if(playa==INVALID_PLAYER_ID)return SendClientMessage(playerid,"Spieler nicht gefunden.");
    new geld_x = strval(tmp);
    if(SpielerInfo[playerid][Level]<3)
    {
    if(geld_x>100)return SendClientMessage(playerid,"Unter Level 3 nur bis 100$ möglich");
    }
    if(playerid==playa)return 1;
    if(spect[playa]==0)
    {
    if(GetPlayerMoney(playerid)>=geld_x&&geld_x>0&&geld_x<9999999)
    {
    new Float:xc,Float:yc,Float:zc;
    GetPlayerPos(playa,xc,yc,zc);
    if(IsPlayerInRangeOfPoint(playerid,10,xc,yc,zc))
    {
    GibGeld(playa,geld_x);
    GibGeld(playerid,-geld_x);
    SpielerSpeichern(playerid);
    SpielerSpeichern(playa);
    savePay(playerid,playa,geld_x);
    new log[128];
    format(log,sizeof(log),"%s hat %s %i$ gegeben.",SpielerName(playerid),SpielerName(playa),geld_x);
    MoneyLog(log);
    new nachricht[128];
    format(nachricht,sizeof(nachricht),"Du hast dem Spieler %s, %d$ gegeben !",SpielerName(playa),geld_x);
    SendClientMessage(playerid,COLOR_WHITE,nachricht);
    PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
    new playanachricht[128];
    format(playanachricht,sizeof(playanachricht),"%s hat dir %d$ gegeben!",SpielerName(playerid),geld_x);
    SendClientMessage(playa,COLOR_WHITE,playanachricht);
    PlayerPlaySound(playa,1054,0.0,0.0,0.0);
    format(nachricht,sizeof(nachricht),"*%s nimmt Geld aus der Tasche und gibt es %s",SpielerName(playerid),SpielerName(playa));
    ProxDetector(10.0,playerid,nachricht,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    SetPVarInt(playerid,"/paytime",gettime()+5);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Spieler ist nicht in deiner Nähe");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Du hast nicht genug Geld");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Spieler ist nicht in deiner Nähe");
    return 1;
    }
    }
    }

  • Ich habe das mal gekürzt, besser gesagt mir wurde auch geholfen.
    Aber irgendwie - Zieht es bei dem nichts ab - und der andere bekommt kein Geld -.-'
    ocmd:pay(playerid,params[])
    {
    new pID,string[128],string2[128],betrag;
    if(sscanf(params,"ud",pID,betrag))return SendClientMessage(playerid,ROT,"Tippe: /pay [PlayerID] [Betrag]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht Online.");
    if(GetDistanceBetweenPlayers(pID,playerid)>3)return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Nähe.");
    if(pID==playerid)return SendClientMessage(playerid,ROT,"Du kannst dir nicht selbst Geld geben!");
    if(betrag>GetPlayerMoney(playerid))return SendClientMessage(playerid,ROT,"Soviel Geld hast du nicht dabei!");
    GivePlayerMoney(playerid,-betrag);
    GivePlayerMoney(pID,betrag);
    format(string,sizeof string,"Du hast %s %d$ gegeben",SpielerName(pID),betrag);
    SendClientMessage(playerid,BLAU,string);
    format(string2,sizeof string2,"Du hast von %s %d$ bekommen",SpielerName(playerid),betrag);
    SendClientMessage(pID,BLAU,string2);
    return 1;
    }