Beiträge von BlackFoX

    Spoiler anzeigen
    /* Object Streamer
    *
    * (c) Copyright 2009, Einstein
    * Thx here also to Trivial
    */
    #define MAX_STREAM_OBJECTS 10000
    #define MAX_STREAM_AT_SAME_TIME 142
    #define MAXUPDATES 13

    Spoiler anzeigen
    forward ObjectCheck(playerid);

    Spoiler anzeigen
    new ObjectCount[MAX_PLAYERS];
    new haveobject[MAX_PLAYERS][MAX_STREAM_OBJECTS];
    new ID;
    new modelid2[MAX_STREAM_OBJECTS];
    new Float:tx2[MAX_STREAM_OBJECTS];
    new Float:ty2[MAX_STREAM_OBJECTS];
    new Float:tz2[MAX_STREAM_OBJECTS];
    new Float:rt2x[MAX_STREAM_OBJECTS];
    new Float:rt2y[MAX_STREAM_OBJECTS];
    new Float:rt2z[MAX_STREAM_OBJECTS];
    new ViewDistance2[MAX_STREAM_OBJECTS];
    new Float:MoveX2[MAX_STREAM_OBJECTS];
    new Float:MoveY2[MAX_STREAM_OBJECTS];
    new Float:MoveZ2[MAX_STREAM_OBJECTS];
    new Float:MoveSpeed2[MAX_STREAM_OBJECTS];
    new moved[MAX_STREAM_OBJECTS];
    new objectres[MAX_PLAYERS][MAX_STREAM_OBJECTS];
    new Float:playerpos2[MAX_PLAYERS][3];
    new updatespassed[MAX_PLAYERS] = 0;
    //From the Samp Forums: Usual Functions

    Spoiler anzeigen
    stock IsPlayerInBall(playerid,Float:x,Float:y,Float:z,radius)
    {
    if(GetPlayerDistanceToPoint(playerid,x,y,z) < radius)
    {
    return 1;
    }
    return 0;
    }

    Spoiler anzeigen
    stock GetPlayerDistanceToPoint(playerid,Float:x,Float:y,Float:z)
    {
    new Float:x1,Float:y1,Float:z1;
    new Float:tmpdis;
    GetPlayerPos(playerid,x1,y1,z1);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(Float:x,x1)),2)+floatpower(floatabs(floatsub(Float:y,y1)),2)+floatpower(floatabs(floatsub(Float:z,z1)),2));
    return floatround(tmpdis);
    }

    Spoiler anzeigen
    //ObjectStreamer Functions
    stock CreateObjectToStream(modelid, Float:x, Float:y, Float:z, Float:rX, Float:rY, Float:rZ)
    {
    modelid2[ID] = modelid;
    tx2[ID] = Float:x;
    ty2[ID] = Float:y;
    tz2[ID] = Float:z;
    rt2x[ID] = Float:rX;
    rt2y[ID] = Float:rY;
    rt2z[ID] = Float:rZ;
    ViewDistance2[ID] = 142;
    ID++;
    return ID-1;
    }

    Spoiler anzeigen
    stock CreatePlayerObjectToStream(playerid ,modelid, Float:x, Float:y, Float:z, Float:rX, Float:rY, Float:rZ) //untested
    {
    modelid2[ID] = modelid;
    tx2[ID] = Float:x;
    ty2[ID] = Float:y;
    tz2[ID] = z;
    rt2x[ID] = rX;
    rt2y[ID] = rY;
    rt2z[ID] = rZ;
    ViewDistance2[ID] = 142;
    ID++;
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    haveobject[i][ID] = -1;
    }
    haveobject[playerid][ID] = 0;
    return ID-1;
    }

    Spoiler anzeigen
    stock DestroyObjectToStream(streamobjectid)
    {
    modelid2[streamobjectid] = 0;
    tx2[streamobjectid] = 0;
    ty2[streamobjectid] = 0;
    tz2[streamobjectid] = -1000;
    rX2[streamobjectid] = 0;
    rY2[streamobjectid] = 0;
    rZ2[streamobjectid] = 0;
    ViewDistance2[streamobjectid] = 0;
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    DestroyPlayerObject(i, objectres[i][streamobjectid]);
    }
    haveobject[i][streamobjectid] = -1;
    }
    }

    Spoiler anzeigen
    stock DestroyPlayerObjectToStream(playerid, streamobjectid) //untested
    {
    modelid2[streamobjectid] = 0;
    tx2[streamobjectid] = 0;
    ty2[streamobjectid] = 0;
    tz2[streamobjectid] = -1000;
    rX2[streamobjectid] = 0;
    rY2[streamobjectid] = 0;
    rZ2[streamobjectid] = 0;
    ViewDistance2[streamobjectid] = 0;
    if(haveobject[playerid][streamobjectid] == 1)
    {
    DestroyPlayerObject(playerid, objectres[playerid][streamobjectid]);
    }
    haveobject[playerid][streamobjectid] = -1;
    }

    Spoiler anzeigen
    stock MoveObjectToStream(streamobjectid, Float:Movex, Float:Movey, Float:Movez, Float:Speed)
    {
    MoveX2[streamobjectid] = Movex;
    MoveY2[streamobjectid] = Movey;
    MoveZ2[streamobjectid] = Movez;
    MoveSpeed2[streamobjectid] = Speed;
    moved[streamobjectid] = 1;
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    MovePlayerObject(i, objectres[i][streamobjectid], MoveX2[streamobjectid], MoveY2[streamobjectid], MoveZ2[streamobjectid], MoveSpeed2[streamobjectid]);
    }
    }
    }

    Spoiler anzeigen
    stock StopObjectToStream(streamobjectid)
    {
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    StopPlayerObject(i, objectres[i][streamobjectid]);
    }
    }
    }

    Spoiler anzeigen
    stock GetBasePosObjectToStream(streamobjectid, &Float:x, &Float:y, &Float:z) //untested
    {
    x = tx2[streamobjectid];
    y = ty2[streamobjectid];
    z = tz2[streamobjectid];
    }

    Spoiler anzeigen
    stock GetMovePosObjectToStream(stramobjectid, &Float:x, &Float:y, &Float:z) //untested
    {
    x = MoveX2[streamobjectid];
    y = MoveY2[streamobjectid];
    z = MoveZ2[streamobjectid];
    }

    Spoiler anzeigen
    stock GetCurrentPosObjectToStream(streamobjectid, &Float:x, &Float:y, &Float:z) //untested
    {
    if(moved[streamobjectid] == 0)
    {
    x = tx2[streamobjectid];
    y = ty2[streamobjectid];
    z = tz2[streamobjectid];
    }
    else if(moved[streamobjectid] == 1)
    {
    x = MoveX2[streamobjectid];
    y = MoveY2[streamobjectid];
    z = MoveZ2[streamobjectid];
    }
    }

    Spoiler anzeigen
    stock GetCurrentRotObjectToStream(streamobjectid, &Float:Rx, &Float:Ry, &Float:Rz) //untested
    {
    Rx = rX2[streamobjectid];
    Ry = rY2[streamobjectid];
    Rz = rZ2[streamobjectid];
    }

    Spoiler anzeigen
    stock SetObjectPosToStream(streamobjectid, Float:x, Float:y, Float:z)
    {
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    SetPlayerObjectPos(i, objectres[i][streamobjectid], x, y, z);
    }
    }
    tx2[streamobjectid] = x;
    ty2[streamobjectid] = y;
    tz2[streamobjectid] = z;
    }

    Spoiler anzeigen
    stock SetObjectRotToStream(streamobjectid, Float:rX, Float:rY, Float:rZ)
    {
    for(new i=0; i<YOUPLAYERSLOTS; i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    SetPlayerObjectRot(i, objectres[i][streamobjectid], rX, rY, rZ);
    }
    }
    rX2[streamobjectid] = Float:rX;
    rY2[streamobjectid] = Float:rY;
    rZ2[streamobjectid] = Float:rZ;
    }

    Spoiler anzeigen
    stock SetObjectViewDistanceToStream(streamobjectid, Viewdistance)
    {
    ViewDistance2[streamobjectid] = Viewdistance;
    }

    Spoiler anzeigen
    stock SetGloabalViewDistanceToStream(Viewdistance)
    {
    for(new Objects=0; Objects<ID; Objects++)
    {
    ViewDistance2[Objects] = Viewdistance;
    }
    }

    Spoiler anzeigen
    stock SetObjectViewDistanceToStreamEx(streamobjectidMIN, streamobjectidMAX, Viewdistance)
    {
    for(new Objects=streamobjectidMIN; Objects<streamobjectidMAX; Objects++)
    {
    ViewDistance2[Objects] = Viewdistance;
    }
    }

    Spoiler anzeigen
    stock HavePlayerObjectToStream(playerid,streamobjectid)
    {
    if(haveobject[playerid][streamgateid] == 1)
    {
    return 0;
    }
    else if(haveobject[playerid][streamobjectid] == 0)
    {
    return 1;
    }
    }

    Spoiler anzeigen
    stock HavePlayerAnyObjectToStream(playerid)
    {
    for(new object=0; object<ID; object++)
    {
    if(haveobject[playerid][object] == 1)
    {
    return 0;
    }
    }
    return 1;
    }

    Spoiler anzeigen
    stock HaveObjectAnyPlayerToStream(streamobjectid) //untested
    {
    for(new i=0; i<YOUPLAYERSLOTS< i++)
    {
    if(haveobject[i][streamobjectid] == 1)
    {
    return 0;
    }
    }
    return 1;
    }

    Spoiler anzeigen
    stock StreamObject_OnPlayerUpdate(playerid)
    {
    updatespassed++;
    if( updatespassed == MAXUPDATES)
    {
    ObjectCheck(playerid);
    updatespassed = 0;
    }
    }

    Spoiler anzeigen
    stock StreamObject_OnPlayerDisconnect(playerid)
    {
    for(new k=0; k<ID; k++)
    {
    haveobject[playerid][k] = 0;
    objectres[playerid][k] = -1;

    Spoiler anzeigen
    }
    ObjectCount[playerid] = 0; //untested
    }

    Spoiler anzeigen
    public ObjectCheck(playerid)
    {
    new Float:playerx, Float:playery, Float:playerz;
    GetPlayerPos(playerid, playerx, playery, playerz);
    if(playerpos2[playerid][0] != playerx || playerpos2[playerid][1] != playery || playerpos2[playerid][2] != playerz)
    {
    playerpos2[playerid][0] = playerx;
    playerpos2[playerid][1] = playery;
    playerpos2[playerid][2] = playerz;
    for(new objects=0; objects<ID; objects++)
    {
    if(IsPlayerInBall(playerid,tx2[objects], ty2[objects], tz2[objects], ViewDistance2[objects]))
    {
    if(ObjectCount[playerid] < MAX_STREAM_AT_SAME_TIME)
    {
    if(haveobject[playerid][objects] == 0)
    {
    if(moved[objects] == 0)
    {
    objectres[playerid][objects] = CreatePlayerObject(playerid, modelid2[objects], tx2[objects], ty2[objects], tz2[objects], rt2x[objects], rt2y[objects], rt2z[objects]);
    ObjectCount[playerid]++;
    haveobject[playerid][objects] = 1;
    }
    else if(moved[objects] == 1)
    {
    objectres[playerid][objects] = CreatePlayerObject(playerid, modelid2[objects], MoveX2[objects], MoveY2[objects], MoveZ2[objects], rt2x[objects], rt2y[objects], rt2z[objects]);
    ObjectCount[playerid]++;
    haveobject[playerid][objects] = 1;
    }
    }
    }
    }
    else
    {
    if(haveobject[playerid][objects] == 1)
    {
    DestroyPlayerObject(playerid, objectres[playerid][objects]);
    ObjectCount[playerid]--;
    haveobject[playerid][objects] = 0;
    }
    }
    }
    }
    return 1;
    }


    Have Fun

    Wenn die Ordner nicht angezeigt werden sind die Pfade wahrscheinlich Falsch, hatte das selbe Problem bei nem Kumpel,
    haben den Code ein bissl anders verfasst, zu blöd das ich den Code nicht mehr hab & neu schreiben möchte ich jetzt auch nicht,
    schau mal unter Functions/pages & verbessere die Pfade des File Managers.
    Soweit ich mich erinnern kann hat es auch Probleme mit Westies Split Funktion gegeben

    #include <a_samp>
    #define COLOR_RED 0xAA3333AA
    #define COLOR_YELLOW 0xFFFF00AA
    #define COLOR_YELLOW2 0xF5DEB3AA
    #define COLOR_BLUE 0x2641FEAA
    forward checkparea();


    public OnFilterScriptInit()
    {
    CreateObject(1238, -2019.321777, -123.217514, 34.530529, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.406738, -125.664932, 34.535980, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.421997, -127.864853, 34.554913, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.421997, -130.314301, 34.554913, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.421997, -132.688721, 34.554913, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.454834, -135.525513, 34.622669, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.554932, -138.824707, 34.622669, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.179565, -197.198456, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.207275, -202.527023, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.304077, -207.055252, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.543335, -212.524933, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.661987, -217.254898, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.745117, -221.941956, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.963745, -227.461609, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2032.178345, -234.127274, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2032.309692, -241.003113, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2032.544189, -246.926865, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2032.713623, -253.743774, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2032.816162, -259.366394, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.928589, -188.660217, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.898071, -179.841309, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.336914, -170.128677, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.371216, -160.219452, 34.645576, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2029.479004, -150.017609, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2026.584229, -145.527161, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2023.756104, -142.835754, 34.640369, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2021.042969, -140.661774, 34.633461, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.514526, -155.496780, 34.645569, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.022827, -165.334671, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2030.625244, -174.962646, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.002075, -184.361511, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2031.060913, -192.672562, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2012.666748, -148.922348, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2014.721802, -148.265747, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2016.664551, -147.931122, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2018.624023, -147.077652, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2028.160156, -150.601166, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2025.631958, -151.331039, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2022.957520, -152.560730, 34.638493, 0.0000, 0.0000, 0.0000);
    CreateObject(1238, -2019.101074, -154.275528, 34.638493, 0.0000, 0.0000, 0.0000);
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    SetTimer("checkparea",800,1);
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/MPU",cmdtext, true, 10) == 0)
    {
    SetPlayerPos(playerid,-2012.6351,-109.6197,35.3056);
    AddStaticVehicle(426, -2015.3881,-109.2282,35.1006,177.1671,0,0);
    return 1;
    }
    return 0;
    }
    public checkparea()
    {
    new obj[MAX_PLAYERS][22];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    if(IsPlayerInRangeOfPoint(i,20.0,-2018.6139,-255.7931,35.3203))
    {
    SendClientMessage(i, COLOR_RED, "VOLLBREMSUNG!!!");
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2015.430542, -181.890564, 35.118515)) // 10.0 ist der Radius
    {
    obj[i][0] = CreatePlayerObject(i,1454, -2015.430542, -181.890564, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][1] = CreatePlayerObject(i,1454, -2016.764282, -181.837753, 35.118515, 0.0000, 0.0000, 270.0000);
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2020.347290, -206.910614, 35.118515))
    {
    obj[i][2] = CreatePlayerObject(i,1454, -2021.695801, -206.898193, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][3] = CreatePlayerObject(i,1454, -2020.347290, -206.910614, 35.118515, 0.0000, 0.0000, 270.0000);
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2014.804810, -225.240906, 35.118515))
    {
    obj[i][4] = CreatePlayerObject(i,1454, -2014.804810, -225.240906, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][5] = CreatePlayerObject(i,1454, -2016.103882, -225.235367, 35.118515, 0.0000, 0.0000, 270.0000);
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2029.604980, -223.391571, 35.118515))
    {
    obj[i][6] = CreatePlayerObject(i,1454, -2029.604980, -223.391571, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][7] = CreatePlayerObject(i,1454, -2028.321655, -223.420807, 35.118515, 0.0000, 0.0000, 270.0000);
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2022.356689, -245.716034, 35.118515))
    {
    obj[i][8] = CreatePlayerObject(i,1454, -2022.356689, -245.716034, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][9] = CreatePlayerObject(i,1454, -2023.619019, -245.709396, 35.118515, 0.0000, 0.0000, 270.0000);
    }
    if(IsPlayerInRangeOfPoint(i,20.0, -2021.468262, -275.357147, 35.118515))
    {
    obj[i][10] = CreatePlayerObject(i,1454, -2022.356689, -245.716034, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][11] = CreatePlayerObject(i,1454, -2023.619019, -245.709396, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][12] = CreatePlayerObject(i,1454, -2016.316162, -275.366882, 35.118519, 0.0000, 0.0000, 270.0000);
    obj[i][13] = CreatePlayerObject(i,1454, -2017.687378, -275.340576, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][14] = CreatePlayerObject(i,1454, -2018.934448, -275.358612, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][15] = CreatePlayerObject(i,1454, -2020.181519, -275.355225, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][16] = CreatePlayerObject(i,1454, -2021.468262, -275.357147, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][17] = CreatePlayerObject(i,1454, -2022.748169, -275.355988, 35.118515, 0.0000, 0.0000, 270.0000);
    obj[i][18] = CreatePlayerObject(i,1454, -2024.067017, -275.352783, 35.125595, 0.0000, 0.0000, 270.0000);
    obj[i][19] = CreatePlayerObject(i,1454, -2025.312500, -275.359375, 35.125595, 0.0000, 0.0000, 270.0000);
    obj[i][20] = CreatePlayerObject(i,1454, -2026.649780, -275.344879, 35.125595, 0.0000, 0.0000, 270.0000);
    obj[i][21] = CreatePlayerObject(i,1454, -2027.878418, -275.329529, 35.125595, 0.0000, 0.0000, 270.0000);
    }
    for(new j = 0;j<sizeof(obj);j++)
    {
    if(IsValidPlayerObject(i,obj[i][j]))DestroyObject(obj[i][j]);
    }
    }
    return 1;
    }

    Du erstellst die Objekte aber wo zerstörst du sie ? ^^
    sprich du würdest sie immer wieder erstellen.
    Nächster Punkt wäre , du hast keinen Timer gesetzt zudem würde ich das ganze in eine Schleife für alle Spieler ändern
    da du sonst für jeden Spieler einen neuen Timer setzen müsstest und das nur auf die Ressourcen drücken würde.

    Natürlich ist es nicht das tollste jeden Tag eine neue Version mit kleineren Verbesserungen herauszustellen doch man muss bedenken
    das, das wichtigste was zurzeit stark genutzt wird erst einmal intakt ist so das keine größeren Fehler entstehen zudem würde ich mich
    als Entwickler auch nicht besonders toll fühlen wenn die Leute jeden Tag aufs neue druck ausüben schließlich sollte man sich als
    Person die dieses Produkt kostenfrei verwendet etwas zurückhalten & schauen was sich so ergibt, ich meine sonst schätzt die meisten auch
    nicht alles was kein Geld kostet aber wenn es darum kostenfrei immer was neues abzusahnen dann werden die Leute unverschämt & das wären wir
    beim nächsten Punkt angekommen aber das ist eine längere Geschichte die bestimmt auch jeder von selbst versteht bzw. die sich von selbst versteht,
    bevor man etwas zum scheitern verurteilt sollte man abwarten was sich ergibt.


    In diesem Fall ist es ja nicht so das rein gar nichts passiert.
    Wo DaNNy es gerade anspricht, ihr kennt diejenige Person nicht also könnt ihr sicherlich nicht sagen wie sie lebt & was sie macht,
    zudem dann noch Gerüchte aus Wut zusammenzustellen, das sind Dinge in denen die meisten ihren wunden Punkt zeigen .


    Jetzt hab ich wieder einen Roman geschrieben :>

    for(new i = 0;i<MAX_PLAYERS;i++){
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    }


    schont Ressourcen & überspringt gewissen Plätze.
    zum anderen ist GetMaxPlayers(); ein weiterer indirekter Zugriff sprich
    es muss erst ein Zugriff erfolgen der dauert länger als die Direkte Rückgabe des Werts 500( Spieler )


    Des weiteren hängt es davon ab welche Umstände der Code bietet um bestimmte Methoden zu kombinieren & zu verwenden.

    Wisst ihr was ich noch lustig finde das immer alle aus der MTA Community darüber geredet haben das Kye jede Kritik an seinem geliebten Werk ablehnen würde,
    wobei ich doch sehe das einige bzw. eigentlich viele getestet & ordentlich Berichte geliefert haben die Konstruktiv waren, Kye hat sie im IRC jedenfalls dankend angenommen ^^

    Frage mich warum ihr euch über (Ver)Warnungen solche Gedanken macht denn sie sind ein Hinweis darauf das
    ihr euch irgendwo nicht an die Regeln gehalten habt.
    Ja selbst ich habe welche, aber ich weiß warum & wenn ich dann mal zu viel hab bin ich halt weg, ist ja nicht die Welt.

    Du meinst externe Zugriffe ?
    ja kann man aber leider nicht durch Pawn selber sprich du könntest auf die Standardpfade zugreifen wo die Webseite dann ihre Daten speichert
    & diese dann wiedergeben aber durch Sa-mp kann man nicht auf andere Pfade zugreifen. Dazu müsstest du dann ein Plugin schaffen das Funktionen bietet
    auf die der Code zurückgreifen kann sich seine Daten beschafft , das wäre z.b. 100% Möglich.

    Das mit dem JetPack ist so einfach das bekommst du mit nem Timer & einer Abfrage auch hin ;)


    forward timerx();
    public timerx()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
    {
    // Aktion...
    }
    }
    return 1;
    }


    auf 800-1000 ms setzen reicht vollkommen