Hallo, mein /getarmour - Befehl funktioniert nur bei der ersten Fraktion.
Was kann man da machen? Bei der ersten Fraktion funktioniert alles prima, dann bei der zweiten wird die Schleife zwar ausgeführt,
doch es geht bei der Fraktionsabfrage nicht mehr weiter. Das habe ich gedebuggt und getestet. Warum funktioniert es nur bei der ersten Fraktion?
Hier der Code
ocmd:getarmour(playerid)
{
if(!DarfPlayerCommand(playerid))return ErrorMsg(playerid,"Du kannst keine Befehle benutzen.");
if(!IsPlayerInFrakt(playerid,2)&&!IsPlayerInFrakt(playerid,4)&&!IsPlayerInFrakt(playerid,5)&&!IsPlayerInFrakt(playerid,8)&&!IsPlayerInFrakt(playerid,9)&&!IsPlayerInFrakt(playerid,10))return ErrorMsg(playerid,"Du bist nicht in der jewaligen Fraktion.");
if(IsPlayerInFrakt(playerid,2))
{
if(!IsPlayerInRangeOfPoint(playerid,3,1712.0771,-1640.1244,20.2239))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
if(Fbank[i][fwesten]>0)
{
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
if(IsPlayerInFrakt(playerid,4))
{
if(!IsPlayerInRangeOfPoint(playerid,3,1174.6534,-1186.5641,995.9297))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
if(Fbank[i][fwesten]>0)
{
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
if(IsPlayerInFrakt(playerid,5))
{
if(!IsPlayerInRangeOfPoint(playerid,3,2498.6194,-1710.2561,1014.7422))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
if(Fbank[i][fwesten]>0)
{
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
if(IsPlayerInFrakt(playerid,8))
{
if(!IsPlayerInRangeOfPoint(playerid,3,505.9581,-87.2091,998.9609))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
if(Fbank[i][fwesten]>0)
{
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
if(IsPlayerInFrakt(playerid,9))
{
if(!IsPlayerInRangeOfPoint(playerid,3,960.7534,-59.3062,1001.1172))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
SendClientMessage(playerid,COLOR_YELLOW,"Forschleife überwunden.");
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
SendClientMessage(playerid,COLOR_YELLOW,"Fraktabfrage überwunden.");
if(Fbank[i][fwesten]>0)
{
SendClientMessage(playerid,COLOR_YELLOW,"Westenabfrage überwunden.");
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
if(IsPlayerInFrakt(playerid,10))
{
if(!IsPlayerInRangeOfPoint(playerid,3,-559.5900,2544.5581,31.5023))return ErrorMsg(playerid,"Du kannst dich hier nicht ausrüsten.");
if(gettime()<SpielerInfo[playerid][AntiHealInFight])
{
new healtime=SpielerInfo[playerid][AntiHealInFight]-gettime();
format(string,sizeof(string),"Du kannst dich erst wieder in %i:%02d Minuten heilen oder eine Rüstung überziehen.",healtime/60,healtime%60);
return ErrorMsg(playerid,string);
}
for(new i=0; i<MAX_FBANKEN; i++)
{
if(Fbank[i][Fraktion]==SpielerInfo[playerid][Frakt])
{
if(Fbank[i][fwesten]>0)
{
Fbank[i][fwesten]-=1;
format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eine Schutzweste aus der Fbank genommen. >>",SpielerName(playerid));
sendFraktMsg(SpielerInfo[playerid][Frakt],COLOR_LIGHTBLUE,string);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SetPlayerArmour(playerid,100);
return 1;
}
return ErrorMsg(playerid,"Es befinden sich nicht mehr genügend Westen in der F-Bank.");
}
return 1;
}
return 1;
}
return 1;
}