Benötige Hilfe

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
  • unzwar ich habe dieses Gangfight System (Tutorial) hier im forum übernommen
    mein Problem ist wenn ich ein Gebiet eines Gegners angreife Greife ich immmer nur das erste gebiet an
    Ich möchte nur das gebiet angreifen in dem ich mich befinde und nicht immer das selbe
    Könnte mir vlt jemand Helfen hier die benötigten Codes :


    /edit
    Ich habe bereits nach Lösungen im Forum gesucht jedoch taucht das Problem bei vielen auf ..


    stock IsPlayerInGebiet(playerid)//Funktion bennen mit den jeweiligen Variablen oder auch Parameter genannt.
    {
    for(new i = 0; i < sizeof(Gebiete); i++)//Damit wieder nach allen Zonen geschaut wird.
    {
    new Float:GetXx,Float:GetYy,Float:GetZz;//Neue Float Variablen erstellen, damit wir dort die Positionen des Spielers speichern können
    GetPlayerPos(playerid,GetXx,GetYy,GetZz);//Die Position des Spielers in den oben genannten Variablen speichern.
    if(Gebiete[i][gMinX] < GetXx && Gebiete[i][gMaxX] > GetXx && Gebiete[i][gMinY] < GetYy && Gebiete[i][gMaxY] > GetYy)//Hier wird abgefragt ob die Spielerkooridnanten in dem Bereich der Gangzone sind.
    {
    return i;//Hier wird die Gebietsid returned
    }
    }
    return 0;//Das ist das entscheidende zum Bugfixx.
    }




    Und der Gangwar Befehl



    if(strcmp(cmd, "/gangwar", true) == 0)
    {
    //new time[3]; gettime(time[0], time[1], time[2]); FixHour(time[0]);


    if(PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pLeader] == 10 || PlayerInfo[playerid][pLeader] == 14)//Hier wird abefragt welche Fraktion einen Gangfight starten darf
    {
    if(IsPlayerInGebiet(playerid) >= 0)//Das bezieht sich auf das stock PlayerInZone
    {
    new zone = IsPlayerInGebiet(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
    if(Gebiete[zone][gOn] == 1)
    {
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Das Gebiet wird schon Umkämpft!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
    return 1;
    }
    if(Gebiete[zone][gOwner] == PlayerInfo[playerid][pLeader])
    {
    SendClientMessage(playerid,COLOR_LIGHTBLUE," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
    return 1;
    }
    Gebiete[zone][gAngreifer] = PlayerInfo[playerid][pLeader];//Hier wird der Angreifer gesetzt.
    Gebiete[zone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
    SetTimerEx("GangFight",60000,0,"i",zone); //Dies startet einen Timer der eine Stunde läuft , damit beenden wir den Gangifght. Die Zoneid wird mit übergeben
    for(new i = 0; i < MAX_PLAYERS; i++)//Damit jeder Spieler abgefragt wird
    {



    if(PlayerInfo[i][pLeader] == Gebiete[zone][gOwner] || PlayerInfo[i][pMember] == Gebiete[zone][gOwner])//Ob spieler oder Leader in dieser Fraktion ist
    {


    SendClientMessage(playerid,COLOR_RED,"Eines ihrer Gebiete wird angegriffen.");//Sendet eine Mitteilung
    }
    if(PlayerInfo[i][pLeader] == Gebiete[zone][gAngreifer] ||PlayerInfo[i][pMember] == Gebiete[zone][gAngreifer])//siehe oben
    {
    SendClientMessage(playerid,COLOR_RED,"Dein Leader hat ein Gangwar gestartet!");
    }
    }


    }
    }


    return 1;
    }

    Einmal editiert, zuletzt von jaykay ()