nicht ins auto steigen

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
  • Guten Tag. Ich habe verschiedene Teams und Fahrzeuge, die nur bestimmte Teams fahren können.
    Nun habe ich das so gemacht, das man ins Autosteigt, und wenn man das Auto nicht fahren soll, dann wird man aus dem auto geworfen. Nun habe ich aber ein /lock und /unlock system, man kann einsteigen /lock eingeben und wird rausgeworfen... ich glaube dazu muss ich nicht mehr sagen.


    Wie kann man das nun Machen, das man garnichterst in die autos reinsteigen kann, sondern vorher schon gestoppt wird. also der vorgang "entervehicle" soll unterbrochen werden.

  • Das sollte gehen!
    new copcar[1];//So viele Cars du hast
    copcar[0] = AddStaticVehicle(596,1554.5928,-1615.0944,13.1075,143.0,0,1);
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new j = 0;j<sizeof copcar;j++)
    {
    if(vehicleid == copcar[j])
    {
    if(gTeam[playerid] != TEAM_COPS )
    {
    SendClientMessage(playerid,GRAU,"Du besitzt keinen Schlüssel für dieses Auto!");
    TogglePlayerControllable(playerid,true);
    return 1;
    }
    }
    }
    }

  • jau so hab ichs, nur bei KeyStateChange und RemoveFromVehicle, danke wollte nur den befehl zum vorgang stoppen wissen werde es ma ausprobieren dankeschön...


    //edit: das klappt wunderbar bis auf eins, was ich mir schon gedacht habe: es ist egal ob als beifahrer oder fahrer. als beifahrer soll man noch einsteigen können, ich habe es schon mit STATE_DRIVER versucht, hat aber net so geklappt.

    Einmal editiert, zuletzt von Simon ()

  • OMG :D lesen hilft -.-


    ich habe gerade beschrieben: wen man ein autofährt, kann man es mit /lock abschließen damit es niemand klaut und so. mit /unlock kanns man wieder aufschließen.


    so nun hatte ich das so wie Chry sagt, man steigt ein und wird rausgeworfen was auch geklappt hat. doch in derzeit wo er einsteigt und rausgeschmissen wird, kann man /lock eingeben
    ergebnis: auto ist abgeschlossen, keiner kann rein außer der der es abgeschlossen hat, der kann es aber net fahren weil er rausgeworfen wird.


    deswegen sollen die garnet einsteigen können was auch klappt, damit ist aber nur das einsteigen mit "f" also als fahrer gemeint und ich kenne das von anderen servern, das mann das iwie abfragen kann ob man als fahrer einsteigt. und diese abfrage oder wie auch immer würde ich gerne wissen.


    @ kavkus: wieso soll ich das auto abschließen?? es soll doch gefahren werden, doch nur von bestimmten personen.

  • Zitat

    Wieso schließt du das auto eig. nicht einfach ab? o_O

    Joa kla, nicht ma im scirpt drinne (wie will den Saimon, diese Hirnlose Nudel, es dann abschließen )

    "Stay hungry! Stay foolish!" - Steve Jobs

  • damit ist es ja wie abgeschlossen, und keiner kann einsteigen, und somit können beifahrer auch nicht einsteigen!!!


    ich möchte es so haben: man kann grundsätzlich überall als beifahrer einsteigen, als fahrer aber nur wenn man zu dem jeweiligen team gehört.


    ich habe das immoment so das die mit dem richtigem team einsteigen können, die mit anderen teams werden gestoppt. aber dies soll nur passieren wenn man als fahrer einsteigt.


    da bringt mir abschließen nicht viel.

  • Zitat


    damit ist es ja wie abgeschlossen, und keiner kann einsteigen, und somit können beifahrer auch nicht einsteigen!!!

    Hast du mal auf die parameter gesehen?


    Dort gibt es den parameter playerid.


    Mit einer for schleife und einer ifAbfrage kanns du für jeden Fraktionswagen bestimmen wer einsteigen darf.

  • okay das habe ich übersehen, ich entschuldige mich, ich habe verstanden ich werde es nun versuchen hinzukriegen, dürfte nicht allzu schwer sein ;D


    //edit: ich habe es nun so:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new j = 0;j<sizeof copsauto;j++)
    {
    if(vehicleid == copsauto[j])
    {
    if((gTeam[i] == Team_Cops_LS) || (gTeam[i] = Team_Army))
    {
    }
    else
    {
    SetVehicleParamsForPlayer(vehicleid,i,0,1);


    }
    }
    }
    }
    return 1;
    }


    aber können ist das für beifahrer dann nicht auch abgeschlossen?


    habs getestet :D iwo is da noch ein fehler, ich kann einsteigen..

    2 Mal editiert, zuletzt von Simon ()

  • for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new j = 0;j<sizeof copsauto;j++)
    {
    if(vehicleid == copsauto[j])
    {
    if((gTeam[i] == Team_Cops_LS) || (gTeam[i] = Team_Army))
    {
    }
    else
    {
    SetVehicleParamsForPlayer(vehicleid,i,0,1);


    }
    }
    }
    }


    Setzt das mal bei OnPlayerConnect

  • ich habe es nun anders gemacht und es klappt perfekt. im public OnPlayerEnterVehicle ist ispassenger definiert. also ich frage ab ob er als fahrer oder als beifahrer einsteigt und dann breche ich den vorgang ab:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(ispassenger == 0)
    {
    for(new j = 0;j<sizeof copsauto;j++)
    {
    if(vehicleid == copsauto[j])
    {
    if((gTeam[playerid] == Team_Cops_LS) || (gTeam[playerid] = Team_Army))
    {
    }
    else
    {
    TogglePlayerControllable(playerid,1);


    }
    }
    }
    }
    return 1;
    }