Fraktionsfahrzeug mit Nummernschild aufrufen

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 Zusammen,


    daher es nicht anderst geht muss ich es so machen, kann mir bitte einer helfen, sitze seit 11:00 Uhr dran, ich kann einfach nicht mehr! Bitte jetzt echt um Hilfe


    Ich wollte nun fragen, wie mache ich es das ich ein Fraktions Auto nicht per Fraktions Auto aufrufe sondenr per Nummernschild, jedes Frak Fahrzeug hat ein Nummern Schild:


    LSPD 1
    LSPD 2
    LSPD 3
    LSPD 4 usw...


    Hier ist die Anfrage


    new carid = GetPlayerVehicleID(playerid);
    {
    for(new v=0; v<MAX_VEHICLES; v++)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(carid == PolizeiVehs[v])
    {
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)return 1;
    else{RemovePlayerFromVehicle(playerid);SendClientMessage(playerid, COLOR_GRAD2, "Du hast keinen Schlüssel für dieses Auto.");}
    }
    }


    Wollte es so machen das nur die Polizisten mit den Fahrzeugen wo im Kennzeichen " LSPD entahlten haben " fahren können, kann mir wer ein beispiel machen bitte?


    Gruß Metin2

  • Das z.B?


    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    SetVehicleNumberPlate(PolizeiVehs[pv], "SFPD");
    SetVehicleToRespawn(PolizeiVehs[pv]);
    }

  • Ich meinte das so:


    new carid = GetPlayerVehicleID(playerid);
    {
    for(new v=0; v<MAX_VEHICLES; v++)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(SetVehicleNumberPlate(PolizeiVehs[v],"SAPD %d")//if(carid == PolizeiVehs[v])
    {
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)return 1;
    else{RemovePlayerFromVehicle(playerid);SendClientMessage(playerid, COLOR_GRAD2, "Du hast keinen Schlüssel für dieses Auto.");}
    }
    }


    Weis wer was ich meine?^^ also wenn das Fahrzeug dieses Kennzeichen hat und dieser Spieler wo einsteigen will ein Polizist ist, kann er damit Fahren, die Fahrzeuge haben allerdings
    SAPD 1
    SAPD 2
    SAPD 3
    usw.. deshalb dieses %d wenn es richtig ist, also es muss einfach nur ne Zahl dahinter stehen, was genau ist egal...

  • puuhh mhh...


    Weiss ich auch nicht so richtig

  • if(SetVehicleNumberPlate(PolizeiVehs[v],"SAPD %d") irgendwie so! Aber weiter weis ich auch nicht, hoffe das mir hier einer helfen kann...

  • Du hattest es auf deinem server mal das weiss ich mit /buycar war ich noch da da sezt sich doch das nummernschild ^^

  • ne if Anfrage, kannst du mir das genauer erklären? ich glaub du weist nicht was ich meine?


    - Hat das Nummernschild SAPD enthalten
    - Ist der Spieler Polizist
    - Darf er mit dem Fahrzeug fahren


    - Hat das Nummernschild SAPD enthalten
    - Ist der Spieler kein Polizist
    - Darf er damit nicht fahren


    so meine ich das nun brauche ich ne if Anfrage für das Nummernschild, nur leider weis ich seit 11:11 Uhr nicht wie das nicht!

  • Muss gehen, weil momentan wird abgefragt ob ein ein Fraktionsfahrzeug ist und das ist Buggy sobald es respawnt gehört das Polizeifahrzeug der Feuerwehr, weil es in einem Textdokument gespeichert ist...

  • Anstatt abzufragen was auf dem Nummernschild steht, sorg einfach dafür das alle SAPD Autos das Nummernschild beim erstellen bekommen.


    Z.B. so:


    new SAPDCars[10];
    SAPDCars[0] = [Fahrzeug erstellen]
    SetVehicleNumberPlate(SAPDCars[0],"SAPD 1");
    ...


    Bei der IF-Abfrage musste dann nur Abfragen ob das Fahrzeug ein SAPDCars[] ist...


    Dann haste eig. genau das was du wolltest. Nur Polizisten können mit dem Fahrzeug fahren bei dem auf dem Nummernschild SAPD 1, 2, 3 etc steht.


    Ich hoffe du bekommst den Code selbst hin.


    //Edit:


    Vielleicht hilft dir aber auch das, dann griegste es so hin wie du es willst. http://forum.sa-mp.com/showthread.php?p=1894836&langid=5


    Musst aber den String anpassen. Also einfach nur die ersten 4 Zeichen im String abfragen und schauen ob da SAPD steht ;).

    Einmal editiert, zuletzt von DraloX ()

  • Irgendwie kapiert es keiner, aber ich denke das liegt an mir, evtl. kann einer TS3 kommen: 62.141.38.214


    Nochmals:


    Momentan können normale User mit Polizeifahrzeuge fahren, manche gehen manche nicht, Grund dafür wird wohl sein weil die Fahrzeuge nicht im Script sind sondern in einer Extra Datei, weil man sie mit /fpark speichern kann, das Problem wurde oben schon beschrieben, ich will keine Fahrzeuge erstellen, ich will es aufrufen mit einer if Anfrage vom Nummernschild.


    - Hat das Nummernschild SAPD enthalten
    - Ist der Spieler Polizist
    - Darf er mit dem Fahrzeug fahren


    - Hat das Nummernschild SAPD enthalten
    - Ist der Spieler kein Polizist
    - Darf er damit nicht fahren


    Wer mir wirklich helfen will TS3: 62.141.38.214
    Würde mich sehr freuen, weil ich bereits seit 11:11 Uhr daran sitze!!!
    Bin auch kein Profi, deshalb bitte TS3 kommen ^^ Danke !

  • Ok, ich mach mal hier weiter ok?


    die Cars speichern alle in einer SAPDCars.ini Datei! Daraus werden sie ausgelesen.


    new PolizeiVehs[40];


    Die 40 ka? eigl ist das ja Egal, weil die Fahrzeuge in der Datei sind!


    {
    for(new i = 0; i < sizeof(PolizeiVehs); i++)
    {
    if(carid == PolizeiVehs[i])
    {
    return 1;
    }
    }
    return 0;
    }


    for(new i = 0; i < sizeof(PolizeiVehs); i++)
    {
    format(keystring,sizeof(keystring), "Car%i_Model",i);
    fCarparkInfo[1] [i] [ModelId] = dini_Int("LSPDCars.ini",keystring);
    format(keystring,sizeof(keystring), "Car%i_X",i);
    fCarparkInfo[1] [i] [ParkX] = dini_Float("LSPDCars.ini",keystring);
    format(keystring,sizeof(keystring), "Car%i_Y",i);
    fCarparkInfo[1] [i] [ParkY] = dini_Float("LSPDCars.ini",keystring);
    format(keystring,sizeof(keystring), "Car%i_Z",i);
    fCarparkInfo[1] [i] [ParkZ] = dini_Float("LSPDCars.ini",keystring);
    format(keystring,sizeof(keystring), "Car%i_Angle",i);
    fCarparkInfo[1] [i] [ParkAngle] = dini_Float("LSPDCars.ini",keystring);
    if(fCarparkInfo[1] [i] [ModelId] >= 400 && fCarparkInfo[1] [i] [ModelId] <= 611)
    {
    PolizeiVehs[i] = CreateVehicle(fCarparkInfo[1] [i] [ModelId], fCarparkInfo[1] [i] [ParkX], fCarparkInfo[1] [i] [ParkY], fCarparkInfo[1] [i] [ParkZ], fCarparkInfo[1] [i] [ParkAngle], 79, 1, 900);
    format(platestring, sizeof(platestring), "SAPD %i", i);
    SetVehicleNumberPlate(PolizeiVehs[i],platestring);
    }
    }


    new carid = GetPlayerVehicleID(playerid);
    {
    for(new v=0; v<MAX_VEHICLES; v++)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(carid == PolizeiVehs[v])//if(SetVehicleNumberPlate(PolizeiVehs[v],"SAPD")
    {
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)return 1;
    else{RemovePlayerFromVehicle(playerid);SendClientMessage(playerid, COLOR_GRAD2, "Du hast keinen Schlüssel für dieses Auto.");}
    }
    }


    else if (!strcmp(Autoname, "Streifenwagen", true))
    {
    if(GetPlayerMoney(playerid) >= FcarStreifenwagen)
    {
    DestroyVehicle(PolizeiVehs[slot]);
    PolizeiVehs[slot] = CreateVehicle(596, x+1.5, y+1.5, z+1.5, 0, 79, 1, 900);
    GivePlayerMoney(playerid, -FcarStreifenwagen);
    }
    else
    {
    return SendClientMessage(playerid, COLOR_GOLD, "Du hast nicht genügend Geld");
    }
    }


    }
    for(new i = 0; i < sizeof(PolizeiVehs); i++)
    {
    if(vehi == PolizeiVehs[i])
    {
    RemovePlayerFromVehicle(playerid);
    DestroyVehicle(PolizeiVehs[i]);
    PolizeiVehs[i] = CreateVehicle(vehmodel, vehx+0.5, vehy+0.5, vehz+0.5, vehangle, 79, 1, 900);
    format(platestring, sizeof(platestring), "SAPD %i", i);
    SetVehicleNumberPlate(PolizeiVehs[i],platestring);
    fCarparkInfo[1] [i] [ModelId] = vehmodel;
    fCarparkInfo[1] [i] [ParkX] = vehx;
    fCarparkInfo[1] [i] [ParkY] = vehy;
    fCarparkInfo[1] [i] [ParkZ] = vehz;
    fCarparkInfo[1] [i] [ParkAngle] = vehangle;


    format(modelstring,sizeof(modelstring), "Car%i_Model",i);
    dini_IntSet("LSPDCars.ini",modelstring,fCarparkInfo[1] [i] [ModelId]);


    format(xstring,sizeof(xstring), "Car%i_X",i);
    dini_FloatSet("LSPDCars.ini",xstring,fCarparkInfo[1] [i] [ParkX]);


    format(ystring,sizeof(ystring), "Car%i_Y",i);
    dini_FloatSet("LSPDCars.ini",ystring,fCarparkInfo[1] [i] [ParkY]);


    format(zstring,sizeof(zstring), "Car%i_Z",i);
    dini_FloatSet("LSPDCars.ini",zstring,fCarparkInfo[1] [i] [ParkZ]);


    format(anglestring,sizeof(anglestring), "Car%i_Angle",i);
    dini_FloatSet("LSPDCars.ini",anglestring,fCarparkInfo[1] [i] [ParkAngle]);
    }
    }


    Hab nun mal das gepostet wo ich denke was nötig ist, das momentane Problem ist das jeder Spieler mit fast jedem Fahrzeug fahren kann, aber was ziemlich komisch ist wenn ich /veh mache und ein Fahrzeug mache gehört das irgendwie dann der Polizei? Ich hoffe wirklich das du mir helfen kannst, wäre über ein /flock System als alternative auch Dankbar, evtl. fällt dir was ein aber momentan mit der Anfrage geht das 100% nicht weil da ein Fehler ist. Sollte was fehlen, sag bescheid! Juhu morgen werden es 3 Tage, keiner hilft mir :(


    Gruß Metin2


    //Edit ( Was vergessen zu posten )

    Einmal editiert, zuletzt von Metin2 ()

  • Naja immer nur mit ein paar Cars.. weis aber nicht wieso das so ist! Komisch ist dann eben wenn ein Neuer User ein Fahrzeug kauft, daran wird es dann verlegen, also wenn er in sein Fahrzeug dann einsteigt steht da: Du bist kein Polizist, bzw.. Du hast keine Schlüssel für dieses Auto.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen