Beiträge von tobialvarez

    Hallo Leutz,
    ich hab ein Problem mit /carlock und zwar, ich möchte es so machen, das nur wenn der Spieler in der Nähe von "5.0" das Auto auf schließen kann ..
    wenn er weiter weg ist als "5.0" dann nicht mehr.
    (Ich bin müde, da ich unbedingt noch was fertig kriegen wollte, also deswegen kann es sein das ich viel falsch mache ^^)



    CMD:carlock(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),id = getSlotID(veh),Float:x,Float:y,Float:z;
    if(strcmp(PlayerName(playerid),sCarInfo[id][sName]) != 0)return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht dir.");
    if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
    GetVehiclePos(veh,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,5.0,x,y,z)) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe deines Fahrzeuges!");
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(sCarInfo[id][CarLock] == 0){
    sCarInfo[id][CarLock] = 1;
    SetDoors(sCarInfo[id][VehID], true);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug abgeschlossen");
    }else if(sCarInfo[id][CarLock] == 1){
    sCarInfo[id][CarLock] = 0;
    SetDoors(sCarInfo[id][VehID], false);
    soundHorn(sCarInfo[id][VehID]);
    SendClientMessage(playerid,-1,"Fahrzeug aufgeschlossen");
    }
    return 1;
    }
    return 1;
    }

    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");
    }


    stock SaveFrakCar(CarID)
    {
    while(mysql_fetch_row())
    {
    new str[16];
    format(str,sizeof str,"%d",CarID);
    SetMySQLstring("Frakcars", "Numplate", FrakCar[CarID][cNumplate], "ID", str);
    SetMySQLint("Frakcars", "Color1", FrakCar[CarID][cColor1], "ID", str);
    SetMySQLint("Frakcars", "Color2", FrakCar[CarID][cColor2], "ID", str);
    SetMySQLint("Frakcars", "Tank", FrakCar[CarID][cTank], "ID", str);
    SetMySQLint("Frakcars", "Battery", FrakCar[CarID][cBattery], "ID", str);
    SetMySQLint("Frakcars", "Engine", FrakCar[CarID][cEngine], "ID", str);
    SetMySQLint("Frakcars", "Lights", FrakCar[CarID][cLights], "ID", str);
    SetMySQLint("Frakcars", "Locked", FrakCar[CarID][cLocked], "ID", str);
    SetMySQLint("Frakcars", "Destroyed", FrakCar[CarID][cDestroyed], "ID", str);
    }
    return 1;
    }

    Denke ich, ich habe eine while Schleife auch bei meinem FrakCar Sys drin. ^^

    Ist doch logisch ...
    Da ist doch gar keine Schleife ...
    sCarInfo nimmt doch pro Spieler auch nur ein Fahrzeug hier.



    CMD:carinfo(playerid, params[]){
    new status[30],status2[30],status3[30],str[128],str9[1000],str8[258],Cars = 0;
    if(sCarInfo[playerid][CarLock] == 0)
    {status3 = "{21DD00}Aufgeschlossen";}
    else{status3 = "{FF0000}Abgeschlossen";}
    if(sCarInfo[playerid][CarAbgeschleppt] == 1)
    {status2 = "{FF0000}Abgeschleppt";}
    else{status2 = "{21DD00}Nicht abgeschleppt";}
    if(sCarInfo[playerid][NeedRep] == 1)
    {status = "{FF0000}Benötigt Reparatur";}
    else{status = "{21DD00}Fahrtüchtig";}
    new veh = GetPlayerVehicleID(playerid);
    new id = getSlotID(veh);
    for(new i; i != MAX_VEHICLES; ++i)
    {
    format(str8,sizeof(str8),"{FFFFFF}ID: %d | Fahrzeugname: %s | Fahrzeug Türen: %s{FFFFFF} | Fahrzeug Status: %s{FFFFFF} | Fahrzeug Verwahrung: %s{FFFFFF}Kennzeichen: %s{FFFFFF}\n",id,AHCarKauf[i][FahrzeugName],status3,status,status2,sCarInfo[i][CarSchildName]);
    strcat(str9, str8);
    Cars++;
    format(str,sizeof(str),"Du hast %d Fahrzeuge.",Cars);
    }
    ShowPlayerDialog(playerid,542,DIALOG_STYLE_MSGBOX,str,str9,"Bestätigen","");
    return 1;
    }


    wäre dies so richtig?

    Hallo Leutz, ich hab folgendes Problem und zwar:
    - wenn ich /carinfo mache .. kommt immer nur ein Auto raus z.B. anstatt 2 ..


    Code:



    CMD:carinfo(playerid, params[]){
    new status[30],status2[30],status3[30],str[128],str9[1000],str8[258],Cars = 0;
    if(sCarInfo[playerid][CarLock] == 0)
    {status3 = "{21DD00}Aufgeschlossen";}
    else{status3 = "{FF0000}Abgeschlossen";}
    if(sCarInfo[playerid][CarAbgeschleppt] == 1)
    {status2 = "{FF0000}Abgeschleppt";}
    else{status2 = "{21DD00}Nicht abgeschleppt";}
    if(sCarInfo[playerid][NeedRep] == 1)
    {status = "{FF0000}Benötigt Reparatur";}
    else{status = "{21DD00}Fahrtüchtig";}
    new veh = GetPlayerVehicleID(playerid);
    new id = getSlotID(veh);
    format(str8,sizeof(str8),"{FFFFFF}ID: %d | Fahrzeugname: %s | Fahrzeug Türen: %s{FFFFFF} | Fahrzeug Status: %s{FFFFFF} | Fahrzeug Verwahrung: %s{FFFFFF}Kennzeichen: %s{FFFFFF}\n",id,AHCarKauf[id][FahrzeugName],status3,status,status2,sCarInfo[id][CarSchildName]);
    strcat(str9, str8);
    Cars++;
    format(str,sizeof(str),"Du hast %d Fahrzeuge.",Cars);
    ShowPlayerDialog(playerid,542,DIALOG_STYLE_MSGBOX,str,str9,"Bestätigen","");
    return 1;
    }

    Könnte ich es eigentlich direkt speichern sprich mit format und ein INSERT INTO ?
    format(query, 200, "INSERT INTO autos (tuevvorhanden, tuevzeit) VALUES ('%d', '%d-%d-%d')", sCarInfo[OfferKZ[playerid][tVehicle]][tuevvorhanden], jahr, monat, tag);



    Und dann unter OnPlayerConnect halt das Datum Abfragen lassen?

    new duration = getdate() + tzeit; // Timestamp des Ablaufs
    Wichtig dabei ist, dass als Parameter für die Zeit Sekunden angegeben wird. Wenn Du das beispielsweise in Tage angeben möchtest, müsstest Du es umrechnen lassen, da am Ende immer die Zeit in Sekunden stehen muss.


    nun speicherst Du die Variable "duration" in der Datenbank, Datei, whatever.

    Ok, danke dir :thumbup:
    Aber Frage:
    Wenn ich jetzt /tuev eingeben würde und halt die Zeit (/tuev [CarID] [Preis] [Zeit]) 5 wird das dann + 5 Tage gerechnet.
    Das wenn das Datum 24.06.2014 ist, das er dann +5 rechnet sprich das er dann 29.06.2014 in die Datenbank speichert.
    Grüße

    Speicher die Zeit nicht als String, sondern als Integer in Form eines Timestamps (die Sekunden seit dem 01.01.70). Mit dem kannst Du das viel besser realisieren, als so.


    Der Fehler liegt im Übrigen hier:
    ii",vehicle,tpreis,tzeit
    Du hast nur zwei Platzhalter für drei Parameter angegeben.

    Ups, habe es grade selber übersehen X(
    Könntest du mir das vielleicht vor machen? Weil ich grad nicht weiß, wie du das meinst. ^^

    Bevor kleine Information:
    -> Holt euch ein Mittelsmann
    _______________________________________________
    Dann zeig mir doch mal bitte, die Lizenz sprich das die vorhanden ist ;)
    -> da ich mich absichern schon mal möchte.
    Was hättest du dir eigentlich so vorgestellt am Preis?


    Grüße,
    Tobi

    So, habe dazu noch eine Frage .. da es bei mir nicht geht .. wie kann ich jetzt Abfragen bzw. wie kann ich machen das wenn er nicht genau an dem Punkt ist das er die Nachricht bekommt "Das Fahrzeug ist nicht in der Nähe vom Kennzeichen Stand" ?


    "new Float:Distanz = GetVehicleDistanceFromPoint(vehicle,919.3960,-1264.7429,15.1719); return SendClientMessage(playerid,-1,"Das Fahrzeug ist nicht in der Nähe!");"

    Prinzipiell fängt es mit dem Logo an und hört später mit einem Design für WBB4 auf.
    Sind halt Aufgaben die Zeit in Anspruch nehmen.
    Ich weiß nicht ob ihr Projekt "KingArts" geeignet dafür ist. Sie müssen mich davon überzeugen, außer Sie sagen im Vorfeld direkt dass Sie dieser Aufgabe nicht gewachsen sind.

    Mich hat es nur Interessiert, ich wollte hier nichts eingehen.
    Aber, viele Leute die Grafiken erstellen können auch Designs .. können aber (so wie ich das sehe) keine WBB4 Designs desginen.-
    Außerdem ist KingArts ein "Freizeit - Projekt" auf freiwilliger Basis, dort sind Leute drin die Signaturen, Avatare, Rang Grafiken, Aufschriften oder auch WBB3 Designs machen .. via Facebook kann man bei uns "bestellen". Aber ich möchte hier keine Werbung machen, nur bisschen erläutern für euch.

    Sorry, hab die Variable verwechselt, war schon spät.


    savedID[pID] = id;


    Zu
    savedID[pID] = veh;

    Danke klappt :thumbup:
    Jetzt wieder neu .. ich hab es versucht aber iwie will es nicht :<
    Die Variable "sCarInfo[id][CarSchild] = 1;" wird in der Datenbank nicht auf "1" gesettet sondern bleibt auf 0 ..
    /E: Speichern tut es nun!


    Dann kommen wir zum Code, er sieht nun so aus wie Jeffry es gesagt hat.

    CMD:kennzeichen(playerid,params[])
    {
    new string[128],veh,id,kspreis,ksz,pID,str[28];
    if(sscanf(params,"iii",veh,kspreis,ksz)) return SendClientMessage(playerid,-1,"Verwende: /kennzeichen [CarID] [Preis] [KennschildName (1-4 Zahlen)]");
    id = getSlotID(veh);
    if(sInfo[playerid][pFraktion] != 1)return SendClientMessage(playerid,-1,"Du bist nicht im Ordnungsamt");
    if(!IsPlayerInRangeOfPoint(playerid,5.0,919.3960,-1264.7429,15.1719))return SendClientMessage(playerid,-1,"Hinweis: Du bist nicht beim TÜV (Ordnungsamt Base)");
    for(new i; i < MAX_VEHICLES; i++){
    if(strcmp(sCarInfo[i][CarSchildName],str)) return SendClientMessage(playerid,-1,"Hinweis: Das Kennzeichen gibt es schon!");
    }
    if(kspreis > 100000 || kspreis < 1) return SendClientMessage(playerid,-1,"Hinweis: Maximal nur 100.000$");
    if(sCarInfo[id][CarSchild])return SendClientMessage(playerid,-1,"Hinweis: Das Auto besitzt schon ein Kennschild!");
    if(kspreis > GetPlayerMoney(pID))return SendClientMessage(playerid,-1,"Hinweis: Soviel Geld hat der Spieler nicht!");
    savedID[pID] = id;
    sscanf(sCarInfo[id][sName],"u",pID);
    format(string,sizeof string,"Der Ordnungsbeamte %s will dir ein Kennzeichen anbieten.\nDies Kostet: %i\nKennzeichen-Name: DSZ-%i",SpielerName(playerid),kspreis,ksz);
    ShowPlayerDialog(pID, AUTO_KENNZEICHEN, DIALOG_STYLE_MSGBOX, "Kennzeichen - Antrag",string,"Annehmen","Ablehnen");
    return 1;
    }


    stock kzanfrage(veh)
    {
    new pID,id = getSlotID(veh),kspreis,ksz,str[28];
    sscanf(sCarInfo[id][sName],"u",pID);
    //GetVehiclePos(sCarInfo[id][VehID],Pos[0],Pos[1],Pos[2]);
    SetVehicleToRespawn(sCarInfo[id][VehID]);
    sCarInfo[id][CarSchild] = 1;
    format(str,sizeof(str),"DSZ-%i",ksz);
    SetVehicleNumberPlate(sCarInfo[id][VehID],str);
    GivePlayerMoney(pID, -kspreis);
    SetVehiclePos(sCarInfo[id][VehID],909.2155,-1262.9668,14.4228);
    SendClientMessage(pID,-1,"Dein Fahrzeug hat ein Nummerschild bekommen.");
    saveCar(sCarInfo[id][VehID]);
    return 1;
    }