Beiträge von ToastFighter


    #include <a_samp>


    #define FILTERSCRIPT


    #define Rot 0xFF0000FF
    #define White 0xFFFFFFFF


    #if defined FILTERSCRIPT


    new tor; // "Tor" wird erschaffen
    new tor2;
    forward close();


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Filterscript by DeinNameHier");
    print("--------------------------------------\n");


    tor = CreateObject(980, 1300.30005, -2056.80005, 59.7, 0.00, 0.00, 269.25); // Tor wird gespawnt und mit dem Namen "tor" belegt
    tor2= CreateObject(980, 1283.69995, -2056.30005, 60.1, 0.00, 0.00, 269.247);
    return 1;
    }
    #endif


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/tor", cmdtext, true, 10) == 0) // Kommando zum öffnen
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1300.30005, -2056.80005, 59.7) || IsPlayerInRangeOfPoint(playerid,10.0,X, Y, Z)) // Ist der Spieler in der Nähe ?
    {
    MoveObject(tor,1300.30005, -2056.8000, 52.9, 4); // Wenn >Ja<, dann öffne Tor
    MoveObject(tor2,1283.69995, -2056.30005, 53.6, 4);
    SendClientMessage(playerid,Rot,"Das Tor schließt in 5 Sekunden.");
    SetTimer("close", 5000,0); // Timer
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht in der Nähe!"); // Wenn >Nein<, sag es ihm
    return 1;
    }
    }
    }


    public close () // Timer wird gesagt was passieren soll wenn er abgelaufen ist
    {
    MoveObject(tor,1300.30005, -2056.80005, 59.7, 4);
    MoveObject(tor2,1283.69995, -2056.30005, 60.1, 4);
    return 1;
    }



    Dann musst du noch die Koordianten da beim Befehl von Innen eintragen.

    So , hab jetzt zugriff auf mein Script:



    stock SaveCar(vehicleid)
    {
    if(dini_Exists(CarDat(vehicleid)))
    {


    new Float:x, Float:y, Float:z, Float:r;
    GetVehiclePos(vehicleid, Float:x, Float:y, Float:z);
    GetVehicleZAngle(vehicleid, Float:r);
    dini_IntSet(CarDat(vehicleid), "ID", GetVehicleModel(vehicleid));
    dini_FloatSet(CarDat(vehicleid), "F_X", x);
    dini_FloatSet(CarDat(vehicleid), "F_Y", y);
    dini_FloatSet(CarDat(vehicleid), "F_Z", z);
    dini_FloatSet(CarDat(vehicleid), "F_R", r);
    dini_IntSet(CarDat(vehicleid), "F1", 0);
    dini_IntSet(CarDat(vehicleid), "F2", 0);
    }
    else
    {
    new ac[40];
    format(ac, 40, "/Autos/%d.txt", vehicleid);
    dini_Create(ac);
    new Float:x, Float:y, Float:z, Float:r;
    GetVehiclePos(vehicleid, Float:x, Float:y, Float:z);
    GetVehicleZAngle(vehicleid, Float:r);
    dini_IntSet(CarDat(vehicleid), "ID", GetVehicleModel(vehicleid));
    dini_FloatSet(CarDat(vehicleid), "F_X", x);
    dini_FloatSet(CarDat(vehicleid), "F_Y", y);
    dini_FloatSet(CarDat(vehicleid), "F_Z", z);
    dini_FloatSet(CarDat(vehicleid), "F_R", r);
    dini_IntSet(CarDat(vehicleid), "F1", 0);
    dini_IntSet(CarDat(vehicleid), "F2", 0);
    }
    }


    stock CarDat(vehicleid)
    {
    new ms[40];
    format(ms ,40, "/Autos/%d.txt", vehicleid);
    return ms;
    }


    Den Stock benutze ich dann in einem Befehl, sprich /parken bei dir.

    CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float: DrawDistance);


    Wenn du einen Streamer benutzt, wird das Objekt zwar aber der eingestellten Range erstellt, aber ist nicht zwingend auf deinem Bildschirm zu sehen.


    Bei CreateObject ist es seit 0.3x mit der DrawDistance möglich, das Objekt auf die gewünschte Range sichtbar zu machen.

    Welche Serverbefehle meinst du? Ich kann nicht Hellsehen. Noch nicht ;)


    Meinst du RCON Befehle oder die von deinem Script? Ich finde das Problem nicht klein wenn die Befehle nicht gehen :D

    stock CarSpeichern(vid)
    {
    new pfad[40];
    format(pfad, 40, "/Autos/%d.txt", vid);
    new Float:x, Float:y, Float:z, Float:r;
    GetVehiclePos(vid, x, y, z);
    GetVehicleZAngle(vid, r);
    dini_FloatSet(pfad, "X", x);
    dini_FloatSet(pfad, "Y", y);
    dini_FloatSet(pfad, "Z", z);
    dini_FloatSet(pfad, "R", r);
    dini_IntSet(pfad, "Model", GetVehicleModel(vid));
    dini_IntSet(pfad, "Farbe1", 1);
    dini_IntSet(pfad, "Farbe2", 1);
    }
    stock CarsLaden()
    {
    new pfad[40];
    for(new i; i < MAX_VEHICLES; i++)
    {
    DestroyVehicle(i);
    if(dini_Exists(pfad))
    {
    format(pfad, 40, "/Autos/%d.txt", i);
    CreateVehicle(dini_Int(pfad, "Model"), dini_Float(pfad, "X"),dini_Float(pfad, "Y"),dini_Float(pfad, "Z"),dini_Float(pfad, "R"), dini_Int(pfad, "Farbe1"), dini_Int(pfad, "Farbe2"), -1);
    }
    }


    }


    Müsste eigentlich so gehen. Nicht getestet


    //edit: Ups hab dini_Exists vergessen gehabt.


    Wozu da 256 Zeichen ?
    Unnötig.


    Hab ich gesagt dass es Resourcensparend ist? Habs grade im Forum's Editor geschrieben, da achte ich da nicht so drauf tut mir leid Chef.
    -----------------------------------------------------------------------


    Damit speicherst du Autos.
    Dann brauchst du noch einen Stock, der die Autos wieder daraus läd.

    stock CarSpeichern(vid)
    {
    new pfad[256];
    format(pfad, 256, "/Autos/%d.txt", vid);
    new Float:x, Float:y, Float:z, Float:r;
    GetVehiclePos(vid, x, y, z);
    GetVehicleZAngle(vid, r);
    dini_FloatSet(pfad, "X", x);
    dini_FloatSet(pfad, "Y", y);
    dini_FloatSet(pfad, "Z", z);
    dini_FloatSet(pfad, "R", r);
    }

    Du musst die Autos erstmal speichern, damit diese auch am gleichen Ort nach einem restart spawnen, wie sie sollen.


    un dann machst du eine Abfrage, ob die Fraktions ID des Spielers, die gleiche ist wie dem Auto in der Datei unter z.B "FrakID" gespeichert ist.

    SetPVarInt bleibt ja auch nur bis zu einem Relogg. Danach sind die Daten futsch.


    Also musst du es speichern. Ich denke du arbeitest mit Dini.

    new Pfad[256], pnam[MAX_PLAYER_NAME];
    GetPlayerName(i, pnam, MAX_PLAYER_NAME);
    format(Pfad, 256, "/DEINORDNER/%s.txt", pnam);
    dini_IntSet(Pfad, "PayDayZeit", GetPVarInt(playerid, "PayDay"));
    dini_IntSet(Pfad, "Respektpunkte", GetPVarInt(playerid, "Respektpunkte"));


    Wenn du schon einen Stock zum speichern hast, füge einfach nur


    dini_IntSet(Pfad, "PayDayZeit", GetPVarInt(playerid, "PayDay"));
    dini_IntSet(Pfad, "Respektpunkte", GetPVarInt(playerid, "Respektpunkte"));[/pwn]
    Die ein, aber änder "Pfad" in den String der beim Speicher Stock verwendet wird.

    Versuch es mal so:
    Anstatt BallasCar dann z.b Roller[0] oder so ..



    SetVehicleNumberPlate(z.b.BallasCar[0],"{FARBE}[BDR]{00ff00}");

    Was soll das Nummernschild mit der Respawnzeit des Fahrzeuges zu tun haben ???


    ---------------------------------------------------------------


    CreateVehicle(462,146.2613,-1946.0831,3.3728,182.0563,1,3,-1)
    So respawnt der garnicht. Das liegt an der "-1".


    CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)


    und die respawn_delay wird in Sekunden angegeben.