er soll nur einmal starten, also jedes mal wenn die schwelle von 1 auf 2 Spieler wechselt
Beiträge von Lucy
-
-
Ich möchte das wenn mehr als einer auf dem server ist, also min. 2 ein Timer startet, aber wo muss das hin? unter OnGameModeInit?
-
SetVehicleToRespawn(vehicleid);
Ich möchte es nicht neu spawnen sondern weg haben -
Wie kann ich ein Car dispawnen lassen?
also ich habe eines erstellt und möchte es per if Abfrage löschen
ccar[4] = CreateVehicle(598,1882.2500,957.2402,10.5658,269.0689,0,1,-1); -
wie frage ich ab ob irgend ein Spieler in einem Auto sitzt
-
Wie frage ich ab, wie viel in einem Team sind?
meine Idee:new Teamtest[MAX_PLAYERS];
for(new i; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i) && (abfrage ob im Team)) Teamtest = +1; -
Danke für die schnelle Antwort, aber ist es möglich das nur der der in Team test ist aufgelistet wird, also muss man das so machen?
for(new i; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i) && (Abfrage in welchem team er ist)) tmp[idx] = i,idx++; -
Wie frage ich die kleinste id die online ist ab, und wie die 2 kleinste id die online ist, usw.
-
Ich habe eine if Bedingung, wenn diese erfüllt ist, soll wenn:
1 Spieler in Team Test ist ein car spawnen mit ihm als Fahrer
2 Spieler in Team Test sind 2 cars (beide fahrer)
3 Spieler in Team Test sind 3 cars (alle fahrer)
usw.
sollten bereits alle Fahrzeuge einen Fahrer haben, sollen die Beifahrerplätze gefüllt werden, der reihe nach.
da ich das öfter brauche, wollte ich fragen ob man da eine Art array machen kann, sprich ich hab eine Liste in der 5 Autos sind,
und mit diesen Autos wird gearbeitet, also erst 5 Fahrer dann Beifahrer und falls dann noch Player in Team Test sind, sollen diese zu einer stelle geportet werden.
da ich bisher noch nicht mit arrays gearbeitet habe, habe ich keinen plan wie ich das angehen soll.Ich habe es bereits geschafft den Spieler ein Auto zu spawnen und ihn auf den Fahrersitz zu setzen, jedoch weiß ich nicht wie ich das mache wenn mehr autos/player im team sind,
wegen der Reihenfolge und so
if(gTeam[playerid] == Test)
{
new vehicleid;
vehicleid = CreateVehicle(413,2038.8768,1415.6444,10.6058,180.7780,-1,-1,-1);
PutPlayerInVehicle(playerid, vehicleid, 0);
}
else...
PS: und ist es möglich das array dynamisch zu machen, sprich wenn 6 cars drinnen sind macht er es mit 6 und wenn 7 dann eben 7 cars -
Was ist der unterschied zwischen
SetPlayerTeam(playerid, test);
gTeam[playerid] = test;PS: danke Jeffry
-
Spoiler anzeigen Das so zu machen ( Nemesus Jr: Fabi.StaR
ist keine gute Idee. In einem Befehl mag es zwar funktionieren, da ja dann mindestens ein Spieler online ist, aber setzt man es in einen Timer und kein Spieler ist online, dann hat man eine Endlosschleife, was zur Folge hat, dass auch niemand mehr den Server betreten kann.
Außerdem kann es theoretisch sein, dass es sehr sehr viele Wiederholungen bei der Methode gibt, denn wenn nur ein Spieler online ist, man aber 500 Slots hat, besteht jedes mal nur eine Chance von 1 zu 499 Chance, dass der Wert getroffen wird. Bei 2000 Wiederholungen ist immer noch eine 2%'ige Chance, dass noch kein Spieler gefunden wurde (2000 ist zwar nicht viel, trotzdem sollte man keine theoretischen Lücken lassen).Kaliber: Deine Methode wird auch nicht, bzw. nicht richtig, funktionieren, wenn nur ein/kein Spieler online ist, da ein random aus 0 keinen Sinn gibt.
Für @Mausibiba: ist es sicher am einfachsten und am leichtesten zu verstehen, eine Funktion zu verwenden, die einfach eine random ID ausgibt, ohne viel Code drum herum (fehleranfällig!).
stock GetRandomPlayer(playerid)
{
new onlinecount = 0, oID[MAX_PLAYERS];
for(new i=0; i<max_players; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && i != playerid)
{
oID[onlinecount] = i;
onlinecount++;
}
}
if(onlinecount > 0) return oID[random(onlinecount)];
else return INVALID_PLAYER_ID;
}Wäre dann ganz einfach zu verwenden:
new player1 = GetRandomPlayer(playerid);
if(player1 == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000FF, "Es ist kein Spieler außer dir online!");
SetPlayerPos(player1, x, y, z);
Ich habe das jetzt so gemacht und es funktioniert. Danke dafür schon mal,
aber noch eine frage, wie mach ich es das der Randomplayer zu Position A geportet wird und alle anderen User zu Position B?
ich dachte zuerst daran eine if abfrage zu machen:CMD:random(playerid)
{
new player1 = GetRandomPlayer(playerid);
if(player1 == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000FF, "Es ist kein Spieler außer dir online!");
//SetPlayerPos(player1, 195.7658,-1436.2083,12.9808);
if(player1)
{
SetPlayerPos(player1, 195.7658,-1436.2083,12.9808);
}
else
{
SetPlayerPos(?, 195.7658,-1436.2083,12.9808);
}
return 1;
}aber ich weiß nicht was ich dann bei "?" hin machen soll, und wäre es nicht einfacher dem Player eine variabel zu setzen und diese dann abzufragen?
Wie würdet ihr es machen und warum?
Danke im Voraus Mausibiba -
Hey,
ich habe folgendes Problem:
Ich möchte das mit dem Befehl /random ein Randomplayer der gerade auf dem server ist zu einer Postmition geportet wird.
Ich bin mit meinen Latein am ende, und google konnte mir auch nicht wirklich helfen.
mfg.
Mausibiba