Beiträge von Hagi

    Also ich hab das trotz der Warnings mal ausprobiert.
    Es geht zwar, aber warum gibt er mir diese Warnings.


    Und vorher, befor ich getestet habe, hab ich noch was verändert


    Beim lezten


    {983, 783.74005126953, -1340.2840576172, 13.224402427673, 0, 0, 89.637451171875,-1},
    in ObjectArray bekomme ich zusätzlich zu den TagMissmatch diese Errors


    newsreporter.pwn(70) : error 029: invalid expression, assumed zero
    newsreporter.pwn(70) : error 008: must be a constant expression; assumed zero
    Bezieht sich auf diese Zeile
    Direkt unterhalb des letzten von Object Array
    };


    Wenn ich allerdings beim lezten das , wegmache
    {983, 783.74005126953, -1340.2840576172, 13.224402427673, 0, 0, 89.637451171875,-1}


    Bekomme ich nur noch Tag Missmatch, welche sich auf alle Dinge in ObjectArray beziehen
    Allerdings wird das letzte Object nicht mehr gelöscht beim Beenden

    Hab das jetzt in mein Script eingefügt aber.
    Bekomme ganz viele Errors wengen tag missmatch.


    Hier der Code


    Spoiler anzeigen
    enum daten
    {
    object_model,
    Float:x,
    Float:y,
    Float:z,
    Float:rx,
    Float:ry,
    Float:rz,
    obid,
    };

    Spoiler anzeigen
    new ObjectArray[][daten]=
    {
    {4021,774.44512939453, -1377.1868896484, 19.089702606201, 0, 0, 179.52978515625,-1},
    {18284, 741.8193359375, -1334.31640625, 15.487449645996, 0, 0, 89.637451171875,-1},
    {18284, 758.3291015625, -1334.4228515625, 15.464859008789, 0, 0, 89.681396484375,-1},
    {11472, 739.52795410156, -1360.5679931641, 21.517259597778, 0, 0, 271.06530761719,-1},
    {8168, 784.31585693359, -1334.2930908203, 14.488562583923, 0, 0, 286.34997558594,-1},
    {966, 774.46942138672, -1338.0792236328, 12.536458969116, 0, 0, 180.16491699219,-1},
    {968, 774.40106201172, -1338.0791015625, 13.361457824707, 0, 0.0150146484375, 1.9849853515625,-1},
    {983, 774.02416992188, -1333.6032714844, 13.226024627686, 0, 0, 0,-1},
    {983, 774.02545166016, -1335.1796875, 13.222462654114, 0, 0, 0,-1},
    {2921, 781.81372070313, -1337.4370117188, 15.977033615112, 0, 0, 0,-1},
    {3030, 783.22552490234, -1371.9456787109, 23.801792144775, 0, 0, 0,-1},
    {3030, 779.05944824219, -1371.2769775391, 23.801788330078, 0, 0, 75.744964599609,-1},
    {3030, 767.79534912109, -1370.9716796875, 23.759822845459, 0, 0, 91.760009765625,-1},
    {1596, 754.31842041016, -1360.7225341797, 27.246898651123, 0, 0, 91.714996337891,-1},
    {1596, 752.30578613281, -1382.0170898438, 27.246898651123, 0, 0, 268.28527832031,-1},
    {3920, 787.05065917969, -1363.9964599609, 15.902317047119, 0, 0, 89.684936523438,-1},
    {3920, 787.13592529297, -1351.341796875, 15.902317047119, 0, 0, 89.681396484375,-1},
    {3920, 787.18902587891, -1338.6889648438, 15.902317047119, 0, 0, 89.681396484375,-1},
    {638, 783.00817871094, -1369.5528564453, 13.236062049866, 0, 0, 89.684936523438,-1},
    {638, 778.9580078125, -1369.4934082031, 13.236062049866, 0, 0, 89.681396484375,-1},
    {638, 767.83673095703, -1369.3292236328, 13.236062049866, 0, 0, 89.681396484375,-1},
    {638, 763.76550292969, -1371.0560302734, 13.236062049866, 0, 0, 128.94134521484,-1},
    {1364, 785.87005615234, -1366.3546142578, 13.324427604675, 0, 0, 270.31518554688,-1},
    {1364, 785.95611572266, -1361.6044921875, 13.324427604675, 0, 0, 270.31311035156,-1},
    {1364, 758.38098144531, -1361.4814453125, 13.30126285553, 0, 0, 93.75341796875,-1},
    {1364, 759.63287353516, -1371.5882568359, 13.302644729614, 0, 0, 150.43835449219,-1},
    {983, 783.798828125, -1358.2828369141, 13.224402427673, 0, 0, 89.638000488281,-1},
    {1251, 783.53759765625, -1354.7705078125, 12.699187278748, 0, 0, 270.00524902344,-1},
    {1251, 783.59710693359, -1351.2917480469, 12.699187278748, 0, 0, 270,-1},
    {1251, 783.58215332031, -1347.8089599609, 12.699187278748, 0, 0, 270,-1},
    {1251, 783.54333496094, -1344.0799560547, 12.699187278748, 0, 0, 270,-1},
    {983, 783.74005126953, -1340.2840576172, 13.224402427673, 0, 0, 89.637451171875,-1},
    };

    Probier das mal so


    public Ports()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    if (IsPlayerInRangeOfPoint(i, 1.0, 1544.5673, -1645.5866, 4.85562)) // LSPD Eingang in Zelle // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
    {
    SetPlayerInterior(i, 6);
    SetPlayerPos(i, 269.1224, 79.5670, 1000.1520); // Wo der Spieler hin kommen soll
    SetPlayerFacingAngle(i, 0.0);
    }
    else if (IsPlayerInRangeOfPoint(i, 1.0, 269.7615, 76.1335, 1000.0042)) // PD Ausgang
    {
    SetPlayerInterior(i, 0);
    SetPlayerPos(i, 1552.4490, -1674.9897, 16.1953);
    SetPlayerFacingAngle(i, 90.0);
    }
    return 1;
    }

    Hallo Breadfisher;


    Ich habe eine Frage:


    Wenn man mit einem FS Objekte erstellt, werden diese beim LAden des FS ja generiert.
    Wie muss man diese Objekte im Script erstellen, damit man beim Beenden des FS diese gelöscht bekommt.


    Ich hätte gerne eine Platzsparende Methode.


    Sowas wie das bitte nicht, da ich mehrere Objekte habe und ich nicht für jedes Objekt eine Eigene Variable erstellen möchte.


    ob1 = Crea...
    ob2 = Crea...


    DestroyObject(ob1);
    DestroyObject(ob2);


    usw..


    MFG
    Hagi

    Nein du kannst es durchaus verwenden.


    Wollte nur sagen, dass es eine andere Möglichkeit gibt, die Ressourcen spart.


    Wäre dann so


    IsPlayerInRangeOfPoint(playerid,range,x,y,z);


    public Ports()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    if (IsPlayerInRangeOfPoint(i, 1, 1544.5673, -1645.5866, 4.85562)) // LSPD Eingang in Zelle // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
    {
    SetPlayerInterior(i, 6);
    SetPlayerPos(i, 269.1224, 79.5670, 1000.1520); // Wo der Spieler hin kommen soll
    SetPlayerFacingAngle(i, 0.0);
    }
    else if (IsPlayerInRangeOfPoint(i, 1, 269.7615, 76.1335, 1000.0042)) // PD Ausgang
    {
    SetPlayerInterior(i, 0);
    SetPlayerPos(i, 1552.4490, -1674.9897, 16.1953);
    SetPlayerFacingAngle(i, 90.0);
    }
    return 1;
    }


    Dann brauchst du PlayerToPoint nicht zu definieren und zu benutzen

    Sorry hab vergessen, dass du bei PlayerToPoint playerid durch i ersetzten musst


    public Ports()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    if (PlayerToPoint(1, i, 1544.5673, -1645.5866, 4.85562)) // LSPD Eingang in Zelle // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
    {
    SetPlayerInterior(i, 6);
    SetPlayerPos(i, 269.1224, 79.5670, 1000.1520); // Wo der Spieler hin kommen soll
    SetPlayerFacingAngle(i, 0.0);
    }
    else if (PlayerToPoint(1, i, 269.7615, 76.1335, 1000.0042)) // PD Ausgang
    {
    SetPlayerInterior(i, 0);
    SetPlayerPos(i, 1552.4490, -1674.9897, 16.1953);
    SetPlayerFacingAngle(i, 90.0);
    }
    return 1;
    }


    Mal abgesehen davon, hat 0.3 einen besseren Public


    IsPlayerInRangeOfPoint

    Also erstmal eine Frage:
    Hast du ganz oben in deinem Script

    #include <a_samp>


    Wenn es drin ist, sollte es eigentlich funktionieren.
    Aber ich würde den Public nicht mir Playerid machen sondern mit einer for Schleife, sonst kann nur ID 0 die Ports benutzen.
    Also so


    forward Ports();



    public Ports()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    if (PlayerToPoint(1, playerid, 1544.5673, -1645.5866, 4.85562)) // LSPD Eingang in Zelle // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
    {
    SetPlayerInterior(playerid, 6);
    SetPlayerPos(playerid, 269.1224, 79.5670, 1000.1520); // Wo der Spieler hin kommen soll
    SetPlayerFacingAngle(playerid, 0.0);
    }
    else if (PlayerToPoint(1, playerid, 269.7615, 76.1335, 1000.0042)) // PD Ausgang
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 1552.4490, -1674.9897, 16.1953);
    SetPlayerFacingAngle(playerid, 90.0);
    }
    return 1;
    }




    Probier das mal aus und schau nach ob #include <a_samp> im Script ist.

    Hast du das aus dem Post über mir schon im Script drin ?


    Weil dein Error heißt ja soviel wie: strtok wird nicht benutzt


    Wenn dir das aus dem Post über mir fehlen sollte, lautete die Fehlermeldung


    strtok is not implendet oder so ähnlich.


    Heißt im Entefekt, dass du strtok nicht benutzt.
    Ist aber eigentlich auch nichts schlimmes.

    Müsste man bei OnPlayerEnterVehicle dann return 0; machen ?
    Anstatt return 1;


    @dit


    Ansonsten mach doch einfach unter OnPlayerEnterVehicle



    if(GetVehicleModel(vehicleid) == Deine Modell ID)
    {
    new Float:x,Float:,Float:z,Float:rot;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,rot);
    SetPlayerPos(playerid,x,y,z);
    SetPlayerFacingAngle(playerid,rot);
    SendClientMessage(playerid,farbe,"Nur für COPS");
    }


    Sollte ja dann auch funktionieren.

    Unter OnPlayerState


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == Deine Copcar modell id)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,farbe,"Nur für Cops");
    return 1;
    }
    }


    Sollte es auch tun

    if(strcmp(cmd, "/aduty", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >=1)
    {
    SetPlayerHealth(playerid, 999);
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "%s arbeitet nun als Admin und hilft euch bei Problemen!", sendername);
    SendClientMessageToAll(COLOR_RED, string);
    {
    }
    }
    else SendClientMessage(playerid, COLOR_RED, "Du bist kein Admin!");
    }


    if(strcmp(cmd, "/aoffduty", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >=1)
    {
    SetPlayerHealth(playerid, 999);
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "%s nimmt nun wieder am Spiel teil", sendername);
    SendClientMessageToAll(COLOR_RED, string);
    {
    }
    }
    else SendClientMessage(playerid, COLOR_RED, "Du bist kein Admin!");
    }

    Error posten


    @dit


    Weiß warscheinlich wo der Fehler liegt. Die Rotation


    machs so


    new rcvehicle[MAX_PLAYERS]; Ganz oben ins Script


    dann unter OnPlayerCommand


    if (strcmp(cmdtext, "/getin", true) == 0)
    {
    new Float:px,Float:py,Float:pz,Float:prot;
    GetPlayerPos(playerid,px,py,pz);
    GetPlayerFacingAngle(playerid,prot);
    rcvehicle[playerid] = CreateVehicle(441,px,py,pz,prot,-1,-1,-1);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "RC Racer Test");
    PutPlayerInVehicle(playerid,rcvehicle[playerid], 0);
    return 1;
    }
    if (strcmp(cmdtext, "/getout", true) == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "RC Racer Test beendet");
    RemovePlayerFromVehicle(playerid);
    DestroyVehicle(rcvehicle[playerid]);
    return 1;
    }

    Oder einfach das Hier ins Script einfügen:



    forward OnPlayerPrivmsg(playerid, recieverid, text[]);
    public OnPlayerPrivmsg(playerid, recieverid, text[])
    {
    return 1;
    }

    Machs doch so


    new rcvehicle[MAX_PLAYERS];
    if (strcmp(cmdtext, "/getin", true) == 0)
    {
    new Float:px,Float:py,Float:pz;
    GetPlayerPos(playerid,px,py,pz);
    rcvehicle[playerid] = CreateVehicle(441,px,py,pz,-1,-1,-1);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "RC Racer Test");
    PutPlayerInVehicle(playerid,rcvehicle[playerid], 0);
    return 1;
    }
    if (strcmp(cmdtext, "/getout", true) == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "RC Racer Test beendet");
    RemovePlayerFromVehicle(playerid);
    DestroyVehicle(rcvehicle[playerid]);
    return 1;
    }


    @dit


    Erster :D

    Lass die Autos doch nicht beim OnGameModeInit spawnen sondern nach 20 Sekunden über einen forward mit public.
    Ist zwar nicht super aber sonst kannst du nur einen Carstreamer benutzen ( Siehe post unter mir )