Beiträge von BlackFoX

    forward Speedometer_Update();
    new Float:SavedPOSx[MAX_PLAYERS],Float:SavedPOSy[MAX_PLAYERS],Float:SavedPOSz[MAX_PLAYERS];
    public Speedometer_Update()
    {
    new back[128];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(GetPlayerState(i)==2)
    {
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    GetPlayerPos(i, xg, yg, zg);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[i])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[i])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[i])),2));
    value = floatround(distance * 11000);
    SavedPOSx[i] = xg;
    SavedPOSy[i] = yg;
    SavedPOSz[i] = zg;
    format(back,sizeof(back),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~ Km/h: %d",floatround(value/3200));
    GameTextForPlayer(playerid,back,2000,3);
    }
    }
    return 1;
    }


    Bei OnGameModeInit:


    SetTimer("Speedometer_Update",1000,1);

    PlayerInZone(playerid,Float:maxX,Float:minX,Float:maxY,Float:minY)
    {
    new Float:jx,Float:jy,Float:jz;
    GetPlayerPos(playerid,jx,jy,jz);
    if(jx < maxX && jx > minX && jy < maxY && jy > minY){return true;}else{return false;}
    }


    kannst du einfach abfrage mit Timer oder so machen,


    Maximalen Zonen X , minimal X , max Y und minimal Y


    Über das Minimal X der Zone, unter dem Maximalen X der Zone , bei Y genau das Gleiche

    new send[MAX_PLAYERS];
    new verlassen[MAX_PLAYERS];
    forward ptpclass();


    public ptpclass()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(PlayerToPoint(Radius,playerid,x,y,z))
    {
    if(send[playerid] == 0)
    {
    send[playerid] = 1;
    SendClientMessage(playerid,Farbe,"Du bist iwo.");
    verlassen[playerid] = 0;
    }
    }
    else
    {
    send[playerid] = 0;
    if(verlassen[playerid] == 0)
    {
    SendClientMessage(playerid,farbe,"verlassen");
    verlassen[playerid] = 1;
    }
    }
    }
    }

    PlayerToPoint ?

    forward PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs);
    public PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -xs);
    tempposy = (oldposy -ys);
    tempposz = (oldposz -zs);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }


    Bei OnGameModeInit:


    SetTimer("ptpclass",1000,1);



    new send[MAX_PLAYERS];


    forward ptpclass();


    public ptpclass()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(PlayerToPoint(Radius,playerid,x,y,z))
    {
    if(send[playerid] == 0)
    {
    send[playerid] = 1;
    SendClientMessage(playerid,Farbe,"Du bist iwo.");
    }
    }
    else
    {
    send[playerid] = 0;
    }
    }
    }

    PlayerInZone(playerid,Float:maxX,Float:minX,Float:maxY,Float:minY)
    {
    new Float:jx,Float:jy,Float:jz;
    GetPlayerPos(playerid,jx,jy,jz);
    if(jx < maxX && jx > minX && jy < maxY && jy > minY){return true;}else{return false;}
    }


    Dann per Timer:


    forward myclass();


    public myclass()
    {
    if(PlayerInZone(playerid,Float:maxX,Float:minX,Float:maxY,Float:minY))
    {
    // aktion
    }
    return 1;
    }