Repair 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
  • Hallo


    Ich habe schon einmal gefragt, jedoch kam nie wirklich etwas raus.


    Ich habe einen /repair ID Kosten Befehl und einen /acceptrepair Befehl. Mein Problem ist, das ich irgendwie nicht weiss, wie ich die playerid, id aus /repair speichern kann und bei /acceptrepair brauchen kann.
    Angebote sind gemacht, daher poste ich den Code dafür nicht.


    dcmd_repair(playerid,params[])
    {
    new string[156],id,preis;
    if (sscanf(params, "dd", id,preis)) SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /repair [ID] [Preis]");
    else if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Die ID ist ungültig");
    else
    {
    format(string,sizeof(string),"Du bietest ID %s an, sein Auto fuer $%d zu reparieren",ReadName(id),preis);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string,sizeof(string),"%s bietet dir an, dein Auto fuer $%d zu reparieren. Gebe /acceptrepair ein",ReadName(playerid),preis);
    SendClientMessage(id, COLOR_WHITE, string);
    PlayerInfo[playerid][pJPoints] += 1;
    Angebot[0][id] = id;
    Angebot[1][id] = preis;
    Angebot[2][id] = 1;
    Angebot[3][playerid] = playerid;
    }
    return 1;
    }


    dcmd_acceptrepair(playerid,params[])
    {
    #pragma unused params
    new string[156];
    if(Angebot[2][playerid] != 1) return SendClientMessage(playerid, COLOR_GREY, "Dir hat keiner etwas angeboten");
    format(string,sizeof(string),"%s hat dir dein Auto für $%d repariert", ReadName());
    SendClientMessage(playerid, COLOR_WHITE, string);
    JB_GivePlayerMoney(playerid, -Angebot[1][playerid]);
    JB_GivePlayerMoney(Angebot[0][playerid], -Angebot[1][playerid]);
    Angebot[0][playerid] = 999;
    Angebot[1][playerid] = 999;
    Angebot[2][playerid] = 999;
    RepairVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }


    Eben, wie kann ich id und playerid abspeichern ? Habe bereits im Script geschaut, jedoch finde ich dort nicht wirklich einen 2-CMDler.
    MfG dUDA

  • Ok was ist nun das Problem, oder ist es gelöst? ?(

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Hallo


    Das Geld wird nicht übergeben. Zudem gehts/schaffe ich es nicht, das es zB heisst:


    Dein Auto wurde von %s für %d Dollar repariert.


    Werde nachher schauen, ob ich es etwas änderne (Mechaniker und Kunde), dann mach ich das ganze ewt immer auf diese Weise, da ich sonst immer playeid und id vewechsle.

  • Hier das was du wolltest ^^ Sogar mit Abfrage ob Spieler und Mechaniker im gleichen Auto sind und es wird angezeigt in Prozent wieviel repariert wurde ^^
    Edit: Ok habs nun richtig gemacht...


    dcmd_repair(playerid,params[])
    {
    new string[156],id,preis;
    if (sscanf(params, "dd", id,preis)) SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /repair [ID] [Preis]");
    else if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Die ID ist ungültig");
    else if(!IsPlayerInVehicle(playerid, GetPlayerVehicleID(id))) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im gleichen Fahrzeug mit ausgewähltem Spieler!");
    else
    {
    format(string,sizeof(string),"Du bietest ID %s an, sein Auto fuer $%d zu reparieren",ReadName(id),preis);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string,sizeof(string),"%s bietet dir an, dein Auto fuer $%d zu reparieren. Gebe /acceptrepair ein",ReadName(playerid),preis);
    SendClientMessage(id, COLOR_WHITE, string);
    PlayerInfo[playerid][pJPoints] += 1;
    Angebot[0][id] = playerid;
    Angebot[1][id] = preis;
    Angebot[2][id] = 1;
    }
    return 1;
    }


    dcmd_acceptrepair(playerid,params[])
    {
    #pragma unused params
    if(Angebot[2][playerid] != 1) return SendClientMessage(playerid, COLOR_GREY, "Dir hat keiner etwas angeboten");
    if(!IsPlayerInVehicle(playerid, GetPlayerVehicleID(Angebot[0][playerid])) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im gleichen Fahrzeug wie vom Mechaniker!");
    new string[156], Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    format(string,sizeof(string),"%s hat dir dein Auto für $%d um %0.f repariert", ReadName(Angebot[0][playerid]), Angebot[1][playerid], floatsub(100.0, floatmul(0.1, health)));
    SendClientMessage(playerid, COLOR_WHITE, string);
    JB_GivePlayerMoney(playerid, -Angebot[1][playerid]); JB_GivePlayerMoney(Angebot[0][playerid], Angebot[1][playerid]);
    RepairVehicle(GetPlayerVehicleID(playerid)); SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
    Angebot[0][playerid] = 999;
    Angebot[1][playerid] = 999;
    Angebot[2][playerid] = 999;
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Hallo


    Ok, werdes gleich essen, aber vorher schnell Cremeschnitte essen ;)
    Man dankt, habes jetzt selber mit kunde und mchaniker versucht, weiss jedoch nochnicht wie ich das im 2.CMD definieren/auslesen kann, jetzt weiss ich es aber.


    Danke


    Edit:Ok vielen dank, es geht perfekt ;)