Problem mit Auto verkaufen

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 Com,
    Ich hab mal wieder eine Frage und zwar ich möchte machen das man sein Auto verkaufen kann oder ein Spieler weiter geben kann ..
    so aber ich hab mich jetzt sehr verwirrt.
    Ich erkläre es mal ..
    Der User gibt /carsell ein dann kommt ein Dialog wo steht 'Möchtest du dein Auto an dem Autohaus verkaufen oder an einem Spieler' wenn der Autohaus drückt direkt verkauft und wenn der Spieler kommt öffnet sich das nächste Dialog dort drin steht: 'An wem möchtest du dein Auto (Infernus) veraufen?' dann gibt er die SpielerID ein und dann bekommt der andere Spieler ein Dialog mit 'Der Spieler xyz bietet der ein Infernus an für 14000, möchtest du dieses Angebot annehmen?' wenn er das ablehnt ist der Kauf abgebrochen ... drückt der aber ja so wird ihm das auto übertragen und ..
    nur wie soll ich das mahcen was ich bis jz. habe ist:



    case AUTO_VERKAUF:
    {
    if(response)//hat weiter gewählt
    {
    new string[128];
    format(string,sizeof(string),"Möchtest du dein Auto an einem Autohändler verkaufen\noder möchtest du dein Auto an einem Spieler verkaufen?");
    ShowPlayerDialog(playerid,AUTO_VERKAUF1,DIALOG_STYLE_MSGBOX,"Verkaufen",string,"Autohändler","Spieler");
    return 1;
    }
    else // hat abbruch gewählt
    {
    SendClientMessage(playerid,-1,"Du verkaufst dein Auto nicht!");
    }
    }
    case AUTO_VERKAUF1:
    {
    new veh = GetPlayerVehicleID(playerid),id = getSlotID(veh),str[128];
    if(response)// hat Autohändler gewählt
    {
    GivePlayerMoney(playerid,sCarInfo[id][VKPreis]);
    format(str, sizeof(str), "Hinweis: Du hast dein Fahrzeug für $%d (60 prozent vom normalen Preis) verkauft.", sCarInfo[id][VKPreis]);
    deleteCar(id);
    return SendClientMessage(playerid,-1,str);
    }
    else //hat Spieler gewählt
    {
    new pid = strval(inputtext);
    format(str,sizeof(str),"An welcher ID möchtest du den dein Auto verkaufen?",pid);
    ShowPlayerDialog(playerid,AUTO_VERKAUF2,DIALOG_STYLE_INPUT,"Verkaufen",str,"Weiter","Abbruch");
    }
    }
    case AUTO_VERKAUF2:
    {
    if(response)//hat weiter gewählt
    {
    new pid = strval(inputtext);
    if(IsPlayerConnected(pid) && pid != INVALID_PLAYER_ID)return SendClientMessage(playerid,-1,"Ungültige Spieler ID!");
    if(IsPlayerNPC(pid))return SendClientMessage(playerid,-1,"Diese ID ist ein NPC!");
    new veh = GetPlayerVehicleID(playerid),id = getSlotID(veh),str[128];
    format(str,sizeof(str),"Der Spieler %s möchte dir sein Auto (%s) verkaufen, möchtest du das Auto haben für $%d?",PlayerName(pid),GetVehicleName(sCarInfo[id][CarModelID]),sCarInfo[id][VKPreis]);
    ShowPlayerDialog(pid,AUTO_VERKAUF3,DIALOG_STYLE_MSGBOX,"Verkaufen",str,"Ja!","Abbruch!");
    }
    else
    {
    SendClientMessage(playerid,-1,"Abgebrochen!");
    }
    }
    case AUTO_VERKAUF3:
    {
    if(response)
    {

    }
    else
    {
    }
    }

    und

    CMD:carsell(playerid, params[]){
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,-1, "Du bist in keinem Fahrzeug.");
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid,-1, "Du bist kein Fahrer eines Fahrzeugs.");
    new veh = GetPlayerVehicleID(playerid);
    new id = getSlotID(veh);
    new string[128];
    if(id == -1)return SendClientMessage(playerid,-1,"Dieses Fahrzeug kannst du nicht verkaufen");
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName]) != 0)return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir.");
    format(string,sizeof(string),"Willst du dein Auto wirklich verkaufen?\nDies kostet %d\nWenn du es verkaufen möchtest drücke 'Weiter'!",sCarInfo[id][VKPreis]);
    return ShowPlayerDialog(playerid,AUTO_VERKAUF,DIALOG_STYLE_MSGBOX,"Verkaufen",string,"Weiter","Abbruch");
    }

  • CMD:carsell(playerid,params[]){
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,-1,"Du bist in keinem Fahrzeug!");
    if(GetPlayerVehicleSeat(playerid)!=0)return SendClientMessage(playerid,-1,"Du bist kein Fahrer eines Fahrzeuges!");
    new string[128],id=getSlotID(GetPlayerVehicleID(playerid));
    if(id==-1)return SendClientMessage(playerid,-1,"Dieses Fahrzeug kannst du nicht verkaufen!");
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName])!=0)return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir!");
    format(string,128,"Willst du dein Auto wirklich verkaufen?\nDies kostet %d!\nWenn du es verkaufen möchtest, drücke 'Weiter'!",sCarInfo[id][VKPreis]);
    return ShowPlayerDialog(playerid,AUTO_VERKAUF,DIALOG_STYLE_MSGBOX,"Verkaufen",string,"Weiter","Abbruch");
    }
    case AUTO_VERKAUF:{
    if(!response)return SendClientMessage(playerid,-1,"Du verkaufst dein Auto nicht!");
    return ShowPlayerDialog(playerid,AUTO_VERKAUF1,DIALOG_STYLE_MSGBOX,"Verkaufen","Möchtest du dein Auto an einem Autohändler verkaufen\noder möchtest du dein Auto an einem Spieler verkaufen?","Autohändler","Spieler");
    }
    case AUTO_VERKAUF1:{
    new str[128],id=getSlotID(veh);
    if(!response)return ShowPlayerDialog(playerid,AUTO_VERKAUF2,DIALOG_STYLE_INPUT,"Verkaufen","An welcher ID möchtest du denn dein Auto verkaufen?","Weiter","Abbruch");
    return GivePlayerMoney(playerid,sCarInfo[id][VKPreis]),format(str,128,"Hinweis: Du hast dein Fahrzeug für $%d (60 Prozent vom normalen Preis) verkauft!",sCarInfo[id][VKPreis]),deleteCar(id),SendClientMessage(playerid,-1,str);
    }
    case AUTO_VERKAUF2:{
    if(!response)return SendClientMessage(playerid,-1,"Abgebrochen!");
    new pid=strval(inputtext),id=getSlotID(veh),str[128];
    if(IsPlayerConnect(pid) && pid != INVALID_PLAYER_ID)return SendClientMessage(playerid,-1,"Ungültige Spieler ID!");
    if(IsPlayerNPC(pid))return SendClientMessage(playerid,-1,"Diese ID ist ein NPC!");
    format(str,128,"Der Spieler %s möchte dir sein Auto (%s) verkaufen, möchtest du das Auto für $%d haben?",PlayerName(playerid),GetVehicleName(sCarInfo[id][CarModelID]),sCarInfo[id][VKPreis]);
    return ShowPlayerDialog(pid,AUTO_VERKAUF3,DIALOG_STYLE_MSGBOX,"Verkaufen",str,"Ja!","Abbruch!");
    }
    case AUTO_VERKAUF3:{
    if(!response)return SendClientMessage(playerid,-1,"Du hast das Auto nicht gekauft!");
    else{
    //Hier die Daten übertragen!
    //Array vom Fahrzeug auslesen und in die Datenbank eintragen...
    }
    return 1;
    }


    Unten habe ich dir etwas reingeschrieben

  • Dann zeig mal her, wie du es in die Spalte speichern möchtest.

  • Der SpielerName wird NICHT ausgegeben, sprich in die Datenbank eingespeichert...
    Der Code:
    if(dialogid == AUTO_VERKAUF){
    if(!response)return SendClientMessage(playerid,-1,"Du verkaufst dein Auto nicht!");
    return ShowPlayerDialog(playerid,AUTO_VERKAUF1,DIALOG_STYLE_MSGBOX,"Verkaufen","Möchtest du dein Auto an einem Autohändler verkaufen\noder möchtest du dein Auto an einem Spieler verkaufen?","Autohändler","Spieler");
    }
    if(dialogid == AUTO_VERKAUF1){
    new str[128],veh = GetPlayerVehicleID(playerid),id=getSlotID(veh);
    if(!response)return ShowPlayerDialog(playerid,AUTO_VERKAUF2,DIALOG_STYLE_INPUT,"Verkaufen","An welcher ID möchtest du denn dein Auto verkaufen?","Weiter","Abbruch");
    return GivePlayerMoney(playerid,sCarInfo[id][VKPreis]),format(str,128,"Hinweis: Du hast dein Fahrzeug für $%d (60 Prozent vom normalen Preis) verkauft!",sCarInfo[id][VKPreis]),deleteCar(id),sCarInfo[veh][CarKM] = 0.00,SendClientMessage(playerid,-1,str);
    }
    if(dialogid == AUTO_VERKAUF2){
    if(!response)return SendClientMessage(playerid,-1,"Abgebrochen!");
    new pid=strval(inputtext),veh = GetPlayerVehicleID(playerid),id=getSlotID(veh),str[128];
    SetPVarInt(playerid,"Käufer",pid);
    if(!IsPlayerConnected(pid) || pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Dieser Spieler ist nicht online oder es ist eine ungültige SpielerID!");
    if(IsPlayerNPC(pid))return SendClientMessage(playerid,-1,"Diese ID ist ein NPC!");
    format(str,128,"Der Spieler %s möchte dir sein Auto (%s) verkaufen, möchtest du das Auto für $%d haben?",PlayerName(playerid),GetVehicleName(sCarInfo[id][CarModelID]),sCarInfo[id][VKPreis]);
    return ShowPlayerDialog(pid,AUTO_VERKAUF3,DIALOG_STYLE_MSGBOX,"Verkaufen",str,"Ja!","Abbruch!");
    }
    if(dialogid == AUTO_VERKAUF3){
    if(!response)return SendClientMessage(playerid,-1,"Du hast das Auto nicht gekauft!");
    else{
    new /*query[128],*/veh = GetPlayerVehicleID(playerid),id=getSlotID(veh);
    format(query,128,"UPDATE `autos` SET `Name`='%s' WHERE `CarID`='%d'",GetPVarInt(playerid,"Käufer"),sCarInfo[id][CarID]);
    mysql_query(query);
    SendClientMessage(PlayerName(GetPVarInt(playerid,"Käufer")),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!");
    GivePlayerMoney(PlayerName(GetPVarInt(playerid,"Käufer")),sCarInfo[id][VKPreis]);
    DeletePVar(playerid,"Käufer");
    }
    return 1;
    }

  • Ist doch eigl. easy.


    verkaufen an Händler -> Aus der DB löschen und die Variablen löschen
    Verkaufen an Spieler -> anderen Spieler Dialog anzeigen, Kopie des Fahrzeug für den neuen Spieler anlegen und beim alten löschen.
    Beim neuen in die DB eintragen.


    Ich lern jetzt nicht dein Programmierung auswendig um dir zu helfen xd

    ik bin der vito c:

  • verkaufen an Händler -> Aus der DB löschen und die Variablen löschen

    Das geht ja.

    Verkaufen an Spieler -> anderen Spieler Dialog anzeigen, Kopie des Fahrzeug für den neuen Spieler anlegen und beim alten löschen.
    Beim neuen in die DB eintragen.

    Der Spieler kriegt den Dialog, was ich möchte ist aber das der Name einfach in der Datenbank umgeändert wird.

  • Naja wenn du die ID speicherst solltest du dir den Namen der ID holen



    new playername[MAX_PLAYER_NAME];
    GetPlayerName(GetPVarInt(playerid,"Käufer"), playername, MAX_PLAYER_NAME);
    format(query,128,"UPDATE `autos` SET `Name`='%s' WHERE `CarID`='%d'",playername,sCarInfo[id][CarID]);


    Grüße

    ik bin der vito c:

  • Jetzt ist das Problem, es kommt der Error:
    "error 035: argument type mismatch (argument 1)" (2 mal, ich makiere die Zeilen)



    if(dialogid == AUTO_VERKAUF3){
    if(!response)return SendClientMessage(playerid,-1,"Du hast das Auto nicht gekauft!");
    else{
    new query1[128],veh = GetPlayerVehicleID(playerid),id=getSlotID(veh);
    format(query1,128,"UPDATE `autos` SET `Name`='%s' WHERE `CarID`='%d'",SpielerName(GetPVarInt(playerid,"Player")),sCarInfo[id][CarID]);
    mysql_query(query1);
    SendClientMessage(SpielerName(GetPVarInt(playerid,"Player")),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
    GivePlayerMoney(SpielerName(GetPVarInt(playerid,"Player")),-sCarInfo[id][VKPreis]); //HIER
    }
    return 1;
    }

  • SendClientMessage(SpielerName(GetPVarInt(playerid,"Player")),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
    GivePlayerMoney(SpielerName(GetPVarInt(playerid,"Player")),-sCarInfo[id][VKPreis]); //HIER
    zu ->
    SendClientMessage(GetPVarInt(playerid,"Player"),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
    GivePlayerMoney(GetPVarInt(playerid,"Player"),-sCarInfo[id][VKPreis]); //HIER
    Wie gesagt, die Funktion rausnehmen^^

  • SendClientMessage(SpielerName(GetPVarInt(playerid,"Player")),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
    GivePlayerMoney(SpielerName(GetPVarInt(playerid,"Player")),-sCarInfo[id][VKPreis]); //HIER
    zu ->
    SendClientMessage(GetPVarInt(playerid,"Player"),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
    GivePlayerMoney(GetPVarInt(playerid,"Player"),-sCarInfo[id][VKPreis]); //HIER
    Wie gesagt, die Funktion rausnehmen^^

    Dem Player, den ich das Car aber anbiete gehört das Car nicht.
    Sprich er drückt "Ja!" sollte normalerweise das Fahrzeug IHM gehören, was aber nicht stimmt.