Stock gibt falschen Wert zurück

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
  • Tag,


    habe folgendes Problem, dass er mir immer sagt, dass ich in keinem Gebiet bin.

    Code:

    Spoiler anzeigen
    stock IsPlayerInGangzone(playerid)
    {
    for(new i;i<sizeof(Gangzones);i++)
    {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);
    if(Gangzones[i][gMinX] < GetX && Gangzones[i][gMaxX] > GetX && Gangzones[i][gMinY] < GetY && Gangzones[i][gMaxY] > GetY)
    {
    return i;
    }
    return -1;
    }
    return -1;
    }CMD:invade(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pFraktion] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pFraktion] == 3)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pRank] < 7)return SendClientMessage(playerid, COLOR_GREY, "** Du bist kein Co-Leader oder höher.");
    if(IsPlayerInGangzone(playerid) > -1)
    {
    new string[128];
    new zone = IsPlayerInGangzone(playerid);
    if(Gangzones[zone][gRunning] == 1)return SendClientMessage(playerid,COLOR_GREY,"** Das Gebiet wird bereits angegriffen!");
    if(Gangzones[zone][gOwner] == Spieler[playerid][pFraktion]) return SendClientMessage(playerid,COLOR_GREY,"** Ihr seid bereits im Besitz dieses Gebietes.");
    Gangzones[zone][gAttacker] = Spieler[playerid][pFraktion];
    Gangzones[zone][gRunning] = 1;
    SetTimerEx("Gangfight",1800000,0,"i",zone);
    format(string, sizeof(string), "[ GANGFIGHT ] Die Fraktion %s greift ein Gebiet der Fraktion %s an!", GetFraktionName(Gangzones[zone][gAttacker]), GetFraktionName(Gangzones[zone][gOwner]));
    SendClientMessageToAll(COLOR_ORANGE, string);
    }else{
    SendClientMessage(playerid, COLOR_GREY, "** Du bist in keinem Gebiet.");
    }
    return 1;
    }


    Danke im Voraus
    Exqool

    Mit freundlichen Grüßen
    Exqool

  • Mit dem return - 1 innerhalb der schleife brichst du die schleife nach dem ersten durchlauf ab und gibst - 1 aus. D. H. Das erste return - 1 muss raus.

  • enum e_Gangzone
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gRunning,
    gScore1,
    gScore2,
    gAttacker
    }


    new Gangzones[MAX_GANGZONES][e_Gangzone] = {
    {0,1856.0,-1132.0,2063.0,-1257.0,0,0,0,0},
    {0,0.0,0.0,0.0,0.0,0,0,0,0}
    };

    Mit freundlichen Grüßen
    Exqool