Wie kann ich das machen das eine Schleife alle Spieler in einer Arena durchgeht und die freezt?
Schleife - wie geht das
- Weihnachtsmann
- Geschlossen
- Erledigt
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
-
-
Als erstes musst du den Spielern, die in der Arena drinne sind, eine Variable setzten. Dazu reicht eine boolean veriable, die du auf "true" setzt, wenn der SPieler die Arena betritt.
In der Schleife fragst du dann ab, ob die Variable von den Spielern, die du durch gehst, auf true ist. Trifft die Bedingung zu, so freeze den Spieler mit TogglePlayerControllable(/*playerid*/);
-
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(playerInArena[i] == true) return TooglePlayerControllable(i, 0);
} -
Wie oben schon erwähnt musst Du eine Variale für die Spieler setzen, die sich in der Arena befinden!
Diese dann für die Spieler in der Arena sind auf z.b 1 setzen.Anschließend einfach mit Hilfe der Schleife abfragen.
Zum Beispiel so:
for(new i = 0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i) && IsInArena[i] == 1) return TogglePlayerControllable(i, false);
}Hoffe ich konnte Dir einen kleinen Wink geben wie Du es machen könntest.
Freundliche Grüße
[FoR]Hardcore -
Vielen dank, mit den Schleifen habe ich es nicht so dicke, wie mache ich eine Schleife das jede 1minute durch gehen soll und gucken soll um jemand in der Arena ist wenn nicht Var auf 0 setzen!.
Timer habe ich schon aber die doofe Schleife macht mir sorgen
-
Ich verstehe nicht was du mit dem Schleifen hast, du kannst die Variable auch playerid nennen wenn es dich verwirrt mit i.
for(new playerid; playerid<MAX_PLAYERS; playerid++)
{
}
Den Code kannste selber reinschreiben. -
Du nimmst einfach einen Timer, der jede Minute durchläuft, und da machste dann die Schleife rein
-
Du nimmst einfach einen Timer, der jede Minute durchläuft, und da machste dann die Schleife rein
Ja das weiß ich aber welche Schleife? mit den Schleifen habe ich nicht so dicke habt ihr eventuell ein Tutorial?
-
SetTimer("timer",1000*60,1);
forward timer();
public timer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i,5.0,x,y,z))
{
TogglePlayerControllAble(i,1);
SendClientMessage(i,-1,"Du wurdest gefreezed!");
}
}
}Einrücken bitte selbst machen
// Fehler fixxed
-
Zitat
mit den Schleifen habe ich nicht so dicke habt ihr eventuell ein Tutorial?
Hier mal eine ganz einfach Schleife, die alle Spieler die auf dem Server connected sind freezt.
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
TogglePlayerControllable(i, 1);
}
}Das i steht einfach für den jeweiligen Spieler der grade in der Schleife dran ist.
Also kannst du auch MAX_PLAYERS entfernen und z.B. 20 da hinschreiben. Dann geht die Schleife nur von 0 bis 20.
Korrigiert mich wenn was falsch ist. Ist im Forum geschrieben^^
-
-
Hier mal eine ganz einfach Schleife, die alle Spieler die auf dem Server connected sind freezt.
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
TogglePlayerControllable(i, 1);
}
}Das i steht einfach für den jeweiligen Spieler der grade in der Schleife dran ist.
Also kannst du auch MAX_PLAYERS entfernen und z.B. 20 da hinschreiben. Dann geht die Schleife nur von 0 bis 20.
Korrigiert mich wenn was falsch ist. Ist im Forum geschrieben^^
Meins ist doch shcon perfekt?
-
habt ihr eventuell ein Tutorial?
Meins ist doch shcon perfekt?
Wenn er allerding Schleifen nicht so versteht, ist es denke ich mal anschaulicher wenn es eingerückt ist und dazu evtl. noch eine kleine Erklärung steht, da er schon
nach einem Tutorial gefragt hat.
Hab ja nicht gesagt dass deins falsch ist oder ? o.o -
Einrücken geht hie rim Forum leider nicht schreibe direkt im Editor
also ne Mini erklärung
for // startet die schelife
( //klammer auf
new i = 0; // versteht sich ja die veraibalbe difinieren kann man auch darüber abe rgal
i < MAX_PLAYERS; //Da eine Schleife von 0 beginnt das < als
i++// erhöht die variable um 1;
) //Klammer zuZu verstehen du gehst jeden Spieler einmal durch
Mfg
-
breadfish.de
Hat das Thema geschlossen.