Beiträge von AliBobMali

    Danke erstmal für die Hilfe.
    Habs grad ausprobiert und mir wird die Nachricht nur einmal geschickt.
    Nur leider Checkt der Befehl nur ob ich an der 1. von mir angegebenen Tankstelle bin. Wenn nicht kommt die Nachricht "Du bist nicht an einer Tankstelle!".
    Nur mal so ne vermutung...
    MfG


    //Edit: Habs hinbekommen, trotzdem danke :)
    //Edit 2: Anstatt für den selben Command einen neuen Thread zu starten stell ich meine Frage hier. Der Command funktioniert nich richtig, findet jemand Fehler?
    MfG
    COMMAND:repair(playerid,params[])
    {
    new vID, vID2, Float:vDamage, Float:vHealth, Money, msg[128];
    vID = GetClosestCar(playerid, 7.0);
    vID2 = GetPlayerVehicleID(playerid);
    if(Motor[vID]==true)return SCM(playerid, COLOR_RED,"Willst du den Motor nicht noch ausschalten?");
    if(IsPlayerInVehicle(playerid, vID2))return SCM(playerid, COLOR_RED,"Willst du das Auto wirklich von innen heraus reparieren?");
    GetVehicleHealth(vID, vHealth);
    if(vHealth>=1000)return SCM(playerid, COLOR_RED, "Das Fahrzeug hat keinen Schaden!");
    vDamage=1000-vHealth;
    Money = floatround(vDamage/1000*100);
    if(GetPVarInt(playerid,"Fraktion") == 5)
    {
    if(Motorschaden[vID]==true)
    {
    for(new i=0;i<MAX_TANKSTELLEN;i++)
    {
    if(i==MAX_TANKSTELLEN+1)return SendClientMessage(playerid,COLOR_RED,"Motorschäden können nur an Tankstellen repariert werden!");
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2])) continue;
    {
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert! Du kannst %d$ verlangen!", Money*3, Money*5);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }


    }
    else
    {
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert! Du kannst %d$ verlangen!", Money*3, Money*5);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }
    else
    {
    for(new i=0;i<MAX_TANKSTELLEN+1;i++)
    {
    if(i==MAX_TANKSTELLEN)return SendClientMessage(playerid,COLOR_RED,"Du bist nicht an einer Tankstelle!");
    if(!IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2])) continue;
    {
    WithdrawPlayerMoney(playerid,Money*8);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast dein Fahrzeug für %d$ repariert!", Money*10);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }
    }
    return 1;
    }

    Nach dem if ist nix dasses Ausführen kann...
    Edit: Trix war schneller :D
    ocmd:su(playerid,params[])
    {
    if(!isPlayerInFrak(playerid,1)) return SendClientMessage(playerid, ROT, "Du bist kein Polizist!");
    new grund,string[200],string2[200],aname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],anzahl,pID;
    if(sscanf(params,"uis",pID,anzahl,grund))return SendClientMessage(playerid,ROT,"Fehler: /su [playerid] [wanteds] [grund]");
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,name,sizeof(name));
    format(string,sizeof(string),"WPS: %s hat dir %i WPS gegeben! Grund: %s ",name,anzahl,grund);
    format(string2,sizeof(string2),"WPS: %s + %i WPS | Reporter: %s | Grund:%s",name,anzahl,aname,grund);
    SendClientMessage(playerid,GREEN,string);
    SendPDMessage(BLAU,string2);
    givePlayerWanted(playerid,anzahl);
    return 1;
    }

    Wenn grund ein String ist, brauchts ne länge... Probiers mal mit grund[26].
    Edit: Aber scheint wohl nich das Hauptproblem zu sein...
    Edit 2: 26 Langen wohl :D
    MfG

    Hab das ganze jetzt mal umgescriptet aber jetzt geht nichts mehr...
    *Edit: Problem besteht immernoch... Kann mir keiner helfen?
    COMMAND:repair(playerid,params[])
    {
    new vID, Float:vDamage, Float:vHealth, Money, msg[128];
    vID = GetClosestVehicle(playerid, 7.0);
    GetVehicleHealth(vID, vHealth);
    vDamage=1000.0-vHealth;
    Money = floatround(vDamage,floatround_ceil);
    if(GetPVarInt(playerid,"Fraktion") != 5)
    {
    for(new i=0;i<=MAX_TANKSTELLEN;i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2])) continue;
    if(i==MAX_TANKSTELLEN)return SCM(playerid, COLOR_RED, "Du befindest dich an keiner Tankstelle!");
    WithdrawPlayerMoney(playerid,Money*8);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast dein Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }
    if(GetPVarInt(playerid,"Fraktion") == 5)
    {
    if(Motorschaden[vID]==true)
    {
    for(new i=0;i<MAX_TANKSTELLEN;i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2])) continue;
    if(i==MAX_TANKSTELLEN)return SCM(playerid, COLOR_RED, "Motorschäden können nur an Tankstellen repariert werden!");
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }
    if(Motorschaden[vID]==false)
    {
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }


    }
    return 1;
    }

    Moin Leute,
    sry für die etwas blöde Überschrift :D Ich habn Problem mit meinem Repair-Befehl. Immer wenn ich /repair eingebe wird geprüft, ob ich in der Nähe einer Tankstelle bin. Wenn ich nirgendwo in der Nähe bin wird mir die Nachricht "Du bist nicht an einer Tankstelle" so oft geschickt, wie Tankstellen rein"gescriptet" sind.+
    COMMAND:repair(playerid,params[])
    {
    new vID, Float:vDamage, Float:vHealth, Money, msg[128];
    vID = GetClosestVehicle(playerid, 7.0);
    GetVehicleHealth(vID, vHealth);
    vDamage=1000.0-vHealth;
    Money = floatround(vDamage,floatround_ceil);
    if(GetPVarInt(playerid,"Fraktion") != 5)
    {
    for(new i=0;i<MAX_TANKSTELLEN;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2]))
    {
    WithdrawPlayerMoney(playerid,Money*8);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast dein Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht an einer Tankstelle!");
    }
    }
    }
    else
    {
    if(Motorschaden[vID]==true)
    {
    for(new i=0;i<MAX_TANKSTELLEN;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,Tankstellen[i][0],Tankstellen[i][1],Tankstellen[i][2]))
    {
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Motorschäden können nur an Tankstellen repariert werden!");
    }
    }


    }
    else
    {
    WithdrawPlayerMoney(playerid,Money*3);
    RepairVehicle(vID);
    Motorschaden[vID]=false;
    format(msg, sizeof(msg),"Du hast das Fahrzeug für %d$ repariert!", Money);
    SCM(playerid, COLOR_GREEN, msg);
    return 1;
    }
    }
    return 1;
    }
    Danke im Vorraus.
    MfG,
    AliBobMali