Hallo zusammen,
und zwar wollte ich Fragen, wie man es schafft, dass wenn man in der Nähe ist kommt. In deiner Nähe ist bereits..
Bitte ein bespiel Posten, also nur mit der Abfrage und der Nachricht, kein Command.
MFG
Hallo zusammen,
und zwar wollte ich Fragen, wie man es schafft, dass wenn man in der Nähe ist kommt. In deiner Nähe ist bereits..
Bitte ein bespiel Posten, also nur mit der Abfrage und der Nachricht, kein Command.
MFG
Und jetzt nochmal auf Deutsch.
Nochmal ausführlich:
Also ich bin dabei ein System zu machen mit enum.
Er geht bei einem Command mit einer Schleife alle sachen halt durchgeht also die MAX_PUNKTE
Jetzt ist meine Frage wie ich das mache, wenn er in einem Punkt ist das dann eine Fehlermeldung kommt mit, in deiner Nähe ist bereits ein Punkt.
Weil ein return Beendet ja die Schleife, deswegen Frage ich.
MFG
ich raff nicht was du willst....
for(new i=0; i != MAX_PUNKTE; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 10, PunktX[i], PunktY[i], PunktZ[i]))
return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");
}
PunktX usw durch die Koordinaten deines enums ersetzen
Also ich mache ein System grad.
Jetzt habe ich einen Command gemacht, der mit einer for schleife arbeitet, damit man schauen kann ob der Spieler in der Nähe von einem Punkt ist.
Beispiel:
for(new ABP = 0; ABP<MAX_POINT; ABP++)
{
if(IsPlayerInRangeOfPoint(playerid,10,abInfo[playerid][ABP][Px],abInfo[playerid][ABP][Py],abInfo[playerid][ABP][Pz]))
{
//Jetzt soll eine Fehlermeldung kommen, dass er in der Nähe ist bereits
}
}
return 1;
//Edit: Kann ich jetzt wo die Fehlermeldung kommen soll einfach return reinschreiben? also return SendClientMessage?
MFG
return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");
Und nein, es beendet die Schleife nicht, nur wenn du in der Nähe eines Punktes bist.
Klappt doch nicht so wie du es mir geschrieben hast. Kann trotzdem noch weitere Punkte machen.
MFG
versuchs mal mit continue;
Funktioniert nicht.
Sonst noch jemand eine Idee?
Funktioniert nicht.
Sonst noch jemand eine Idee?
xD ok hab nur gedacht das du nur nix haben willst an dem punkt wo du willst
new bool:ja;
for(new ABP = 0; ABP<MAX_POINT; ABP++){
if(IsPlayerInRangeOfPoint(playerid,10,abInfo[playerid][ABP][Px],abInfo[playerid][ABP][Py],abInfo[playerid][ABP][Pz])){
ja = true;
break;
}
else{ //deine Function
}
return 1;
}
if(ja) return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");
Klappt noch nicht hier mal mein code:
if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
{
if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
{
for(new ABP = 0; ABP<MAX_PFLANZEN; ABP++)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez]))
{
PflanzeNaehe[playerid] = true;
break;
}
else
{
}
}
if(PflanzeNaehe[playerid] == true)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
}
}
return 1;
if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein."); { if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein."); { for(new ABP = 0; ABP
hier test es mal so
new bool:ja, ABP;
if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
for(; ABP<MAX_PFLANZEN; ABP++){
if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez])){
SendClientMessage(playerid,ROT,"Da kannst du bauen");
ja = false;
break;
}else{ ja= true;}
}
if(ja)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
return 1;
//edit code eingerückt
nee das break stimmt
Klappt immer noch nicht.
Klappt immer noch nicht.
zeig mal dein array wie du das verwendest
abInfo[playerid][ABP][Pflanzex]
und was genau geht nicht was wird ausgeben ?
Hab jetzt mal so ausprobiert.
new bool:PflanzeNaehe, ABP;
if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
for(; ABP<MAX_PFLANZEN; ABP++)
{
if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez]))
{
PflanzeNaehe = false;
break;
}
else
{
PflanzeNaehe = true;
}
return 1;
}
if(PflanzeNaehe)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
if(PflanzeNaehe == false)
{
//Was dann passieren soll
}
return 1;
}
Bei dem ersten klappt es, aber dort wird keine Meldung angezeigt. Wenn ich dann das zweite erstelle klappt es nemmer.
MFG
Alles anzeigenHab jetzt mal so ausprobiert.
new bool:PflanzeNaehe, ABP;
if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
for(; ABP<MAX_PFLANZEN; ABP++)
{
if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez]))
{
PflanzeNaehe = false;
break;
}
else
{
PflanzeNaehe = true;
}
return 1;
}
if(PflanzeNaehe)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
if(PflanzeNaehe == false)
{
//Was dann passieren soll
}
return 1;
}
Bei dem ersten klappt es, aber dort wird keine Meldung angezeigt. Wenn ich dann das zweite erstelle klappt es nemmer.
MFG
poste mal dein array abInfo
und wieso fügst du dort noch playerid ein
new abInfo[MAX_PLAYERS][MAX_PFLANZEN][AnbauSystem];
Damit er genuer rausliesst oder get das auch ohne?
MFG