Tram SCript

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
  • Ich suche ein Script, wo man in die Straßenbahn San fierro (Car ID 449) einsteigen kann. Alles was ich bis jetzt benutzt hatte hat nicht geklappt.

  • #include <a_samp>


    #define COLOR_ORANGE 0xFF9900AA
    #define COLOR_YELLOW 0xFFFF00AA


    new gTram;
    new gPass[4] = {-1, -1, -1, -1};
    new gCheckState[MAX_PLAYERS];


    forward TramInit();
    forward CheckUp();


    public OnFilterScriptInit()
    {
    SetTimer("CheckUp", 200, 1);


    gTram = AddStaticVehicle(449,-2006.5890,154.2374,27.5020,0.2065,-1,-1);


    return 1;
    }


    public CheckUp()
    {
    new Float:tx, Float:ty, Float:tz;
    new Float:px, Float:py, Float:pz;


    GetVehiclePos(gTram, tx, ty, tz);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gCheckState[i] == 2)
    {
    gCheckState[i] = 1;
    }


    if(!IsPlayerInAnyVehicle(i))
    {
    GetPlayerPos(i, px, py, pz);


    if(floatsqroot(floatpower(tx - px, 2) + floatpower(tx - px, 2)) < 25.0)
    {
    if(gCheckState[i] == 0)
    {
    SetPlayerCheckpoint(i, tx, ty, tz, 7.5);
    }
    gCheckState[i] = 2;
    }
    }


    if(gCheckState[i] == 1)
    {
    DisablePlayerCheckpoint(i);
    gCheckState[i] = 0;
    }
    }
    }
    }


    public OnPlayerConnect(playerid)
    {
    SetVehicleParamsForPlayer(gTram, playerid, 0, 1);


    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i = 0; i < 4; i++)
    {
    if(gPass[i] == playerid)
    {
    gPass[i] = -1;
    }
    }


    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(vehicleid == gTram)
    {
    for(new i = 0; i < 4; i++)
    {
    if(gPass[i] == playerid)
    {
    gPass[i] = -1;
    }
    }
    }


    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(gCheckState[playerid] == 2)
    {
    SendClientMessage(playerid, 0xFF9900AA, "Guten Tag, Steige einfach in die Tram !");
    SendClientMessage(playerid, 0xFF9900AA, "Und los gehts !");


    return 1;
    }


    return 0;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if((gCheckState[playerid] == 2) && IsPlayerInCheckpoint(playerid))
    {
    if(IsKeyJustDown(1, newkeys, oldkeys))
    {
    for(new i = 1; i < 4; i++)
    {
    if(gPass[i] == -1)
    {
    PutPlayerInVehicle(playerid, gTram, i);
    gPass[i] = playerid;
    break;
    }

    if(i == 3)
    {
    }
    }
    }


    if(IsKeyJustDown(16, newkeys, oldkeys))
    {
    if(gPass[0] == -1)
    {
    PutPlayerInVehicle(playerid, gTram, 0);
    gPass[0] = playerid;
    } else
    {
    }
    }
    }

    }


    IsKeyJustDown(key, newkeys, oldkeys)
    {
    if((newkeys & key) && !(oldkeys & key))
    return 1;
    return 0;
    }




    das muss funzen :D

  • Ich bin mehrmals um den Zug gelaufen und "F" und "enter" gedrückt. Hat nicht geklappt.

  • anmerk bei mir geht das auch nicht hab das ja mal vo sa mp com genutzt aber da steigt der spiele völlig falsch ein..

  • Allgemein muss man gesehen haben wie man in Zügen einsteigt
    man stellt sich da hin wo die Türe ist und läuft richtung hinteres Zugende, dabei immer F drücken.
    Wenn die kamera sich auf den Zug ändert geht der Spieler zurück zur Tür und steigt ein.

    you have been Traceured.


  • Ich weis schon wie man in Züge einsteigt..
    nur bei dem Tram Script... steigt der föllig falsch ein..


    -.-
    BUGMELDUNG!

  • 1. Nutze ich dieses FS



    #include <a_samp>
    #define SLOTS 4


    forward keys();


    public OnFilterScriptInit() {
    print(" ");
    print(" 0.2 TRAM SCRIPT");
    print(" thanks to Cam!");
    print(" ");
    SetTimer("keys",200,1);
    }


    public keys() {
    new lKeys, Mike1, Mike2;
    new Float:px,Float:py,Float:pz;
    new Float:cx,Float:cy,Float:cz;

    for(new i = 0; i < SLOTS; i++) {
    if(IsPlayerConnected(i)) {
    GetPlayerPos(i,px,py,pz);
    for(new j = 0; j < MAX_VEHICLES; j++) {
    if(GetVehicleModel(j) == 449) {
    GetVehiclePos(j,cx,cy,cz);
    if( floatsqroot( floatpower(px-cx,2.0) + floatpower(py-cy,2.0) + floatpower(pz-cz,2.0)) < 3.0) {
    GetPlayerKeys(i, lKeys, Mike1, Mike2);


    if (lKeys & KEY_SECONDARY_ATTACK) {
    PutPlayerInVehicle(i, j, 0);
    }
    }
    }
    }
    }
    }
    }


    Guckt euch mal den Screen an wie sieht das denn aus --.--

    Einmal editiert, zuletzt von Sanchos ()

  • Kann man das denn wenigstens so machen das man mehrere Hänger ankoppeln kann ? und das halt mehrere Personen einsteigen können ?

  • Man könnte eigentlich jedes Objekt zu einem Fahrzeug "umbauen"
    So zb. den Alten Schulbus, man müsste da einfach die Einsteig Animation also


    ApplyAnimation(playerid,"CAR","Sit_relaxed",4.1,0,1,1,1,1);


    Nehmen + Timer und dann die Camera auf den Schulbus freezen.

    Zitat


    Kann man das denn wenigstens so machen das man mehrere Hänger ankoppeln kann ? und das halt mehrere Personen einsteigen können ?


    Es können unendlich viele Spieler einsteigen und was meinst du mit Hänger ? Es gibt keine Straßenbahnanhänger^

    [align=center]
    Mta Script Editor - Work in Progress

  • Hmm... Nein es gehen immer nur 2 da die Tram nicht als Tram benutz wird sondern eher als 2 türiges auto :/