Befehl nur möglich, wenn Ein anderer spieler aus einer bestimmten Fraktion online ist?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo.. Ich habe einen Befehl, um ein Tor zu hacken.
    allerdings sollte es nicht aufgehen, wenn kein Cop online ist..
    Wie stelle ich das an? (Fraktion ID 1 ist cop.)


    Befehl:

    ocmd:torhacken(playerid,params[])//Prisontor
    {
    if(IsPlayerInRangeOfPoint(playerid,25,-400.05902, 2705.42676, 61.38676))
    {
    if(isPlayerInFrakt(playerid,2))
    {
    if(hackTimer > gettime()) return SendClientMessage(playerid, KID_COL_RED, "ERROR: INVALID PASSWORD - Hacken nur einmal die Stunde möglich");
    hackTimer = gettime() + 86400;
    {
    hackTimer = SetTimerEx("TorHacken", 20000, 0, "d", 1);
    {
    if(!ptorStatus)
    {
    MoveObject(ptor,-400.05902, 2705.42676, 73.38676,5);
    ptorStatus = !ptorStatus;
    }
    }
    }
    }
    }
    return 1;
    }


    MFG

  • Mit einer Schleife durch alle Spieler (?) wo du schaust ob diese in einer Gang / Fraktion sind.

  • new bool bedingungerfuellt;
    for(new i; i != MAX_PLAYERS; i++)
    {
    if(isPlayerInFrakt(i,1) && bedingungerfuellt == false)){
    bedingungerfuellt = true;
    }
    }
    if(!bedingungerfuellt)return SendClientMessage(playerid, -1, "Keine Cops online.");


    So ungefähr, das unter mir ist aber deutlich schneller.

  • stock IsACopOnline()
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i) && SpielerInfo[i][Fraktion] == 1) return 1;
    return 0;
    }


    Im Befehl:
    if(!IsACopOnline()) return SendClientMessage(playerid, 0xFF0000FF, "Error: Es ist kein Cop online.");