Par Fragen

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
  • SIehst du denn die offensichtliche Klammerfehler nicht? Möglichweise liegt es darans, dass du nicht einrückst. Der letze Abschnitt muss so aussehen:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid, 0.0);
    CarJacks[playerid] = 0;
    } // Die hast vergessen
    } // Und die
    return 1;
    }

  • Hier versteh ich nur den Sinn der Carjack Definition nicht


    if(newstate == PLAYER_STATE_DRIVER)
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    // Was soll mit dem Spieler passieren?
    CarJacks[playerid] = 0;
    }


    }


    [b]if(CarJacks[playerid] == CAR_JACKS)[/b]


    Was genau willst du damit erreichen ?

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

  • Das gleiche was du erreichen willst. Du kannst den Code auch in "OnPlayerEnterVehicle" einfügen (allerdings wird das auch ausgeführt, wenn man nur Enter in der Nähe eines Fahrzeugs drückt, auch wenn man das Carjack abbricht), dann ist der Code genauso wie bei dir. Du müsstest eher dich fragen, was du damit erreichen wolltest. Ich habe bereits oben geschrieben, dass ich deinen Code lediglich umgeschrieben habe.


    EDIT: Habe dein Beitrag nich richtig gelsen. Die Variable wird hochgezählt und wenn man das Auto in meinem Fall 3 Mal "gejackt" hat, kriegt man Energieabzug und der Spass beginnt von vorn

  • muss ich dann nochwas ändern??
    #include <a_samp>
    #define CAR_JACKS 3
    new CarJacks[MAX_PLAYERS];
    #pragma tabsize 0
    #if defined FILTERSCRIPT




    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    public OnPlayerConnect(playerid)
    {
    CarJacks[playerid] = 0;
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid, 0.0);
    CarJacks[playerid] = 0;
    }
    }
    return 1;
    }

    Gruß Nate

  • Ah...hab mir den Code eben nochmal durchgelesen, allerdings ist es ja nun so, das wenn User A nun 3 Mal Enter tippt (ggf. er befindet sich in der Nähe eines Fahrzeuges), sofort gekillt wird.
    Dann gibts da noch einen winzig kleinen Fehler, der User bekommt diese CarJacks auch beim Einsteigen ohne Autojacking ;)

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

  • und muss ich denn jetzt ändern??? :pinch:
    #include <a_samp>
    #define CAR_JACKS 3
    new CarJacks[MAX_PLAYERS];
    #if defined FILTERSCRIPT




    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    public OnPlayerConnect(playerid)
    {
    CarJacks[playerid] = 0;
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid, 0.0);
    CarJacks[playerid] = 0;
    }
    }
    return 1;
    }

    Gruß Nate

  • Zitat

    Ah...hab mir den Code eben nochmal durchgelesen, allerdings ist es ja nun so, das wenn User A nun 3 Mal Enter tippt (ggf. er befindet sich in der Nähe eines Fahrzeuges), sofort gekillt wird.

    Eben nicht, deswegen hab ich ja PLAYER_STATE_DRIVER benutzt

    Zitat

    Dann gibts da noch einen winzig kleinen Fehler, der User bekommt diese CarJacks auch beim Einsteigen ohne Autojacking ;)

    Dann soll "gtatuerke" eben
    CarJacks[playerid] = 0;
    in einem public einbauen, der von einem bereits bestehenden Timer ausgeführt wird, um die Variable zurückzusetzen nach einer gewissen Zeit. Oder man schreibt ein anderes Script, das allerdings auch eine Schleife ausführt beim einsteigen, allerdings nur wenn wirklich jemand Enter drückt und einsteigt und nicht dauerhaft...
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(!ispassanger)
    {
    if(!IsVehicleEmpty(vehicleid))
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid,0.0);
    CarJacks[playerid] = 0;
    }
    }
    }
    return 1;
    }


    stock IsVehicleEmpty(vehicleid)
    {
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInVehicle(i,vehicleid))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    return false;
    }
    }
    }
    }
    return true;
    }

  • Zitat

    (60) : error 017: undefined symbol "ispassanger"

    #include <a_samp>
    #define CAR_JACKS 3
    new CarJacks[MAX_PLAYERS];
    #if defined FILTERSCRIPT
    #pragma tabsize 0




    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    public OnPlayerConnect(playerid)
    {
    CarJacks[playerid] = 0;
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid, 0.0);
    CarJacks[playerid] = 0;
    }
    }
    return 1;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(!ispassanger)
    {
    if(!IsVehicleEmpty(vehicleid))
    {
    CarJacks[playerid]++;
    if(CarJacks[playerid] == CAR_JACKS)
    {
    SetPlayerHealth(playerid,0.0);
    CarJacks[playerid] = 0;
    }
    }
    }
    return 1;
    }


    stock IsVehicleEmpty(vehicleid)
    {
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInVehicle(i,vehicleid))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    return false;
    }
    }
    }
    }
    return true;
    }

    Gruß Nate

  • hast du es villeicht nicht als pastebin??
    weil mir kommen dir zahlen immer mit, keine lust die zu entfernen und das script wird dann iwie komisch:



    • #include <a_samp>


    • #define CAR_JACKS 3


    • new CarJacks[MAX_PLAYERS];


    • #if defined FILTERSCRIPT



    • public OnFilterScriptInit()


    • {


    • print("\n--------------------------------------");


    • print(" Blank Filterscript by your name here");


    • print("--------------------------------------\n");


    • return 1;


    • }



    • public OnFilterScriptExit()


    • {


    • return 1;


    • }



    • #else



    • main()


    • {


    • print("\n----------------------------------");


    • print(" Blank Gamemode by your name here");


    • print("----------------------------------\n");


    • }



    • #endif



    • public OnPlayerConnect(playerid)


    • {


    • CarJacks[playerid] = 0;


    • return 1;


    • }



    • public OnPlayerDisconnect(playerid, reason)


    • {


    • return 1;


    • }



    • public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)


    • {


    • if(!ispassenger)


    • {


    • if(!IsVehicleEmpty(vehicleid))


    • {


    • CarJacks[playerid]++;


    • if(CarJacks[playerid] == CAR_JACKS)


    • {


    • SetPlayerHealth(playerid,0.0);


    • CarJacks[playerid] = 0;


    • }


    • }


    • }


    • return 1;


    • }



    • stock IsVehicleEmpty(vehicleid)


    • {


    • for(new i = 0; i < GetMaxPlayers(); i++)


    • {


    • if(IsPlayerConnected(i))


    • {


    • if(IsPlayerInVehicle(i,vehicleid))


    • {


    • if(GetPlayerState(i) == PLAYER_STATE_DRIVER)


    • {


    • return false;


    • }


    • }


    • }


    • }


    • return true;


    • }

    Gruß Nate