Repair

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
  • Der Spieler kann immer /acceptrepair machen , somit wird sein car "kostenlos" repariert.


    ocmd:acceptrepair(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    new car = GetPlayerVehicleID(playerid);
    new angebot = GetPVarInt(playerid,"RepairAngebot");
    if(GetPVarInt(playerid,"RepairAngebotjanein") == 1)
    if(GetPlayerMoney(playerid)< GetPVarInt(playerid,"RepairAngebotPreis")) return SendClientMessage(playerid,ROT,"Fehler: Du hast zuwenig Geld bei dir!");
    if(!IsPlayerInVehicle(playerid,car)) return SendClientMessage(playerid,ROT,"Fehler:Du bist in keinem Auto!");
    GetPlayerPos(angebot,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
    {
    GivePlayerMoney(playerid,-GetPVarInt(playerid,"RepairAngebotPreis"));
    GivePlayerMoney(angebot,GetPVarInt(playerid,"RepairAngebotPreis"));
    SendClientMessage(playerid,BLAU,sprintf("Du hast das Angebot angenommen!-%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SendClientMessage(angebot,BLAU,sprintf("Das Angebot wurde angenommen!+%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SetPVarInt(playerid,"RepairAngebot",0);
    SetPVarInt(playerid,"RepairAngebotPreis",0);
    SetPVarInt(playerid,"RepairAngebotjanein",0);
    RepairVehicle(car);
    return 1;
    }
    }
    ocmd:repair(playerid,params[])
    {
    new zid,preis,Float:x,Float:y,Float:z;
    if(sscanf(params,"ui",zid,preis)) return SendClientMessage(playerid,ROT,"Fehler:/repair ID Preis");
    if(!IsPlayerConnected(zid)) return SendClientMessage(playerid,ROT,"Fehler: Spieler nicht Online!");
    if(preis < 1) return SendClientMessage(playerid,ROT,"Fehler: mindestens 1$!");
    GetPlayerPos(zid,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
    SetPVarInt(zid,"RepairAngebot",playerid);
    SetPVarInt(zid,"RepairAngebotPreis",preis);
    SetPVarInt(zid,"RepairAnbebotjanein",1);
    SendClientMessage(zid,BLAU,sprintf("%s bietet die eine Reperatur für %i$ an! Benutze /acceptrepair",GetName(playerid),preis));
    SendClientMessage(playerid,BLAU,sprintf("Du bietest %s eine Reperatur für %i$ an!",GetName(zid),preis));
    return 1;
    }

  • so genau kann ich kein Fehler erkennen durchs schnell überfliegen außer das es an deiner command ordnung
    liegen könnte

    ocmd:acceptrepair(playerid,params[])
    {
    new Float:x,Float:y,Float:z, car = GetPlayerVehicleID(playerid), angebot = GetPVarInt(playerid,"RepairAngebot");
    GetPlayerPos(angebot,x,y,z);
    if(GetPlayerMoney(playerid)< GetPVarInt(playerid,"RepairAngebotPreis")) return SendClientMessage(playerid,ROT,"Fehler: Du hast zuwenig Geld bei dir!");
    if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
    if(!IsPlayerInVehicle(playerid,car)) return SendClientMessage(playerid,ROT,"Fehler:Du bist in keinem Auto!");
    if(GetPVarInt(playerid,"RepairAngebotjanein") == 1){
    GivePlayerMoney(playerid,-GetPVarInt(playerid,"RepairAngebotPreis"));
    GivePlayerMoney(angebot,GetPVarInt(playerid,"RepairAngebotPreis"));
    SendClientMessage(playerid,BLAU,sprintf("Du hast das Angebot angenommen!-%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SendClientMessage(angebot,BLAU,sprintf("Das Angebot wurde angenommen!+%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SetPVarInt(playerid,"RepairAngebot",0);
    SetPVarInt(playerid,"RepairAngebotPreis",0);
    SetPVarInt(playerid,"RepairAngebotjanein",0);
    RepairVehicle(car);
    }
    return 1;
    }

  • Ich hab den Befehl bei mir selber getestet, und so hat er funktioniert:


    ocmd:acceptrepair(playerid,params[])
    {
    new Float:x,Float:y,Float:z, angebot = GetPVarInt(playerid,"RepairAngebot");
    GetPlayerPos(angebot,x,y,z);
    if(GetPlayerMoney(playerid)< GetPVarInt(playerid,"RepairAngebotPreis")) return SendClientMessage(playerid,ROT,"Fehler: Du hast zuwenig Geld bei dir!");
    if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"Fehler:Du bist in keinem Auto!");
    if(GetPVarInt(playerid,"RepairAngebotjanein") == 1)
    {
    GivePlayerMoney(playerid,-GetPVarInt(playerid,"RepairAngebotPreis"));
    GivePlayerMoney(angebot,GetPVarInt(playerid,"RepairAngebotPreis"));
    SendClientMessage(playerid,BLAU,sprintf("Du hast das Angebot angenommen!-%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SendClientMessage(angebot,BLAU,sprintf("Das Angebot wurde angenommen!+%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SetPVarInt(playerid,"RepairAngebot",0);
    SetPVarInt(playerid,"RepairAngebotPreis",0);
    SetPVarInt(playerid,"RepairAngebotjanein",0);
    RepairVehicle(car);
    }
    else
    {
    SendClientMessage(playerid,ERROR,"Du hast keine Anfrage bekommen.");
    return 1;
    }
    return 1;
    }


    Eine Abfrage, ob der Spieler der Fahrer des Fahrzeuges ist, wäre auch vom Vorteil.