Beiträge von ...

    So, den Code fürs GF hab ich:


    Als erstes das zu den anderen Forwards:


    forward IsAShamal(carid);


    Dann irgendwo ins Script das hier:


    public IsAShamal(carid)
    {
    if((carid == Nummer) || (carid == Nummer) || (carid == Nummer)) // Bei Belieben einfach erweitern
    {
    return 1;
    }
    return 0;
    }


    Und dann noch das unter "public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)":


    if(IsAShamal(vehicleid) && ispassenger)
    {
    SetPlayerPos(playerid, 0.0, 0.0, 0.0);
    SetPlayerInterior(playerid, 1);
    }


    Edit: Ach, do it yourself ist sowieso besser :/

    Also:


    Standartmäßig ist es NICHT so dass man per Drücken von "G" in das Interior einer Mission aus dem Singleplayer Modus kommt.


    Ich weiß leider gerade selber nicht wie man einstellen kann dass man in jenes Interior teleportiert wird. Ich werde mir einen Code überlegen und dann ggf. hier veröffentlichen.

    Also:


    Gespeichert werden die Coords in einer "savedpositions.txt" Datei im GTA SA Verzeichnis.


    Debug Mode:


    "/v [CarID]" zum Carspawnen.
    "/vsel" um eine Car Auswahl aufzurufen.
    "/player_skin [SkinID]" um den Skin zu ändern.
    "/interior" um nachzusehen in welchem Interior du dich befindest.

    Zuerst das zu den anderen forwards:
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


    Dann das ganz unten ins Script:
    PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z)
    {
    new Float:oldpos[3], Float:temppos[3];
    GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]);
    temppos[0] = (oldpos[0] -X);
    temppos[1] = (oldpos[1] -Y);
    temppos[2] = (oldpos[2] -Z);
    if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius)))
    {
    return true;
    }
    return false;
    }


    Dann für den eigentlichen Port:


    if(PlayerToPoint(Radius, playerid, X, Y, Z)
    {
    SetPlayerPos(playerid, X, Y, Z);
    return 1;
    }

    Local Server über Home PC kostet nur Strom.


    Online Server über Home PC kostet auch nur Strom.


    Online Server über Root kostet Geld.

    LoL.


    Dann bekommt man nur die Meldung dass XXX ein Taxi braucht.


    Hier eine Version mit Checkpoint und Message nur an die Taxifahrer.
    if(strcmp(cmd, "/taxi", true) == 0)
    {
    new Float:px, Float:py, Float:pz;
    new pname[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerPos(playerid, px, py, pz);
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s hat ein Taxi gerufen.", pname);
    SendClientMessage(playerid, 0xFF0000FF, "Du hast ein Taxi bestellt. Warte bitte einen Moment.");
    }
    for(new i = 0, i < MAX_PLAYERS;i++);
    {
    if(gTeam[i] == Taxi) // Wenn du die Fraktion Taxifahrer per gTeam erstellt hast.
    {
    SendClientMessage(i, 0xFF0000FF, string);
    SetPlayerCheckpoint(i, px, py, pz, 5);
    }
    return 1;
    }


    Bin mir ned sicher obs ganz stimmt. Habs ausm Stegreif geschrieben.

    Mhm, glaub ned dass man den irgendwie ändern kann, aber du könntest ja mal versuchen per Timer das Vehicle Health jede Sekunde wieder auf 250 zu stellen. Weiß aber ned obs funktioniert. :S

    OnGameModeInit.


    Geht zwar auch unter OnPlayerConnect, führt aber dann dazu dass bei jedem User der connectet der Timer gestartet wird. Dann bei 20 Usern sind 20 Timer aktiv, Serverbelastung=Hoch.