Perfekt, klappt wunderbar, ich danke dir @Jeffry!
Beiträge von TheDivine
-
-
@Jeffry, funktioniert leider nicht. Die Spieler, die auf die anderen Sitze verteilt werden sollten, werden nicht in die Fahrzeuge gesetzt.
-
rand = random(SpielerInRunde - count);zu:
rand = random(sizeof(RoundCars) - count);Ist halt nicht passend, wenn die Fahrzeuge hintereinander stehen. Falls wild durcheinander, dann geht das so und es ist viel zufälliger bei geringen Spielerzahlen.
Okay danke dir @Jeffry :3
Ein Problem habe ich noch... aktuell ist es ja so das maximal so viele Spieler wie Fahrzeuge existieren auf den Seat 0 gesetzt werden. Sprich, wenn mehr Spieler als Fahrzeuge existieren, würden diese die anderen Spieler aus dem Fahrzeug werfen. Wie kann ich es am besten machen das die Spieler die in die Fahrzeuge gesetzt werden wenn schon jemand anderes im Fahrzeug sitzt auf einen anderen Platz gesetzt werden? -
-
Funktioniert soweit, danke dir! Gibt es eventuell eine Möglichkeit das noch zufälliger zu machen? Aktuell kommt es vor das ein Spieler 3-4 mal hintereinander das selbe Fahrzeug bekommt. @Jeffry
-
Inwiefern?
PS: Bitte keine Code-Zitate / Kompletter-Post-Zitate.Naja, durch die Schleife sollen ja alle Spieler in ein random Fahrzeug teleportiert werden. Leider passiert das nicht. Bei deinem Code wir immer nur rand--; ausgeführt.
-
Danke dir schonmal aber ab if(rand == 0) wird nichts ausgeführt.
-
Warum muss es denn random() sein? Passt hier nicht viel mehr eine Variable, die du einfach hoch zählst?
Ich lasse pro Runde mehrere Fahrzeuge spawnen. Damit nicht jeder Spieler jede Runde das selbe Fahrzeug hat, sollen die Fahrzeuge bei jedem Runden beginn neu verteilt werden. Lässt sich mit einer Variable die hochzählt schlecht machen weil dann alle immer die selben Fahrzeuge bekommen, oder nicht? :o
-
Hey, wie bekomme ich es hin das bei der random Funktion jeder Wert nur einmal rauskommen kann.
for(new i=0;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"JointInRunde") == 1 && IsPlayerConnected(i))
{
new rand = random(SpielerInRunde);
RoundCars[i][carID] = CreateVehicle(RoundCars[i][carModel],RoundCars[i][X],RoundCars[i][Y],RoundCars[i][Z],RoundCars[i][R],RoundCars[i][color1],RoundCars[i][color2],0);
if(!IsPlayerInAnyVehicle(i))
{
PutPlayerInVehicle(i,RoundCars[rand][carID],0);
}
new string[128];
format(string,sizeof(string),"[DEBUG] Random: %i, PlayerID: %i, SpielerInRunde: %i",rand,i,SpielerInRunde);
SendClientMessageToAll(-1,string);
}
}
Sprich das von 0 - 10 jede Zahl nur einmal ausgegeben wird. Aktuell ist es so das sagen wir mal der Wert 2 doppelt vorkommt und somit zwei Personen in ein Fahrzeug setzt. Das soll halt vermieden werden so das jedes Fahrzeug einen Insasse hat. -
Du hast die Objekte doch auf Index 0 und 1 attatcht, dann musst du die auch wieder löschen... Das hat nichts mit der Objektid zutun.
RemovePlayerAttachedObject(playerid, 0);
RemovePlayerAttachedObject(playerid, 1); -
er stürzt ab heißt das fenster bleibt leer
Dann zeig uns mal den Code an dem du gearbeitet hast wo der Compiler vorher noch funktioniert hat.
-
@Lukas_freiman der Compiler gibt doch sicherlich eine Fehlermeldung aus oder nicht?
-
Ja wenn er über 0.60 ist dann soll er die 0.60 weg machen und +0.1 rechnen
aber was passiert dann wenn es 0.1 ja dann ist dann ist der Wert ja über 0.60Meinst du nicht eher das der Wert auf 1 gesetzt werden soll da die 60 ja eine ganze Stunde voll machen? Und naja ich frage mich grade wieso du die Spielstunden dann extra nochmal umrechnen willst. Speicher die Spielminuten doch einfach als Minuten ab und lass dir den Wert dann einfach /60 ausgeben. Dieses hin und her ist einfach unnötig.
Sprich:
forward Spielstunde();
public Spielstunde()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
//Erhöht den Wert in pSpielstunden jede Minute um 1
pInfo[i][pSpielstunden] ++;
}
return true;
}Und wenn du dir den Wert dann irgendwo als gesamte Spielzeit ausgeben willst machst du das zum Beispiel einfach so:
new string[128];
format(string ,sizeof(string),"Spielstunden: %i ", pInfo[playerid][pSpielstunden]/60);
SendClientMessage(playerid,-1,string);//Handy
-
Es ist schade, das dort so viele Objekte genutzt wurden, man hätte es bestimmt lösen können.
Sorry aber bei solchen Kommentaren könnte ich wieder kotzen... Wie möchtest du den bitte eine detailliert map in so einer größe mit weniger Objekten erstellen? Klar man könnte das Gebäude nur als Exterior erstellen und dann einfach einen Teleport ins Interior erstellen. Sieht aber bei weitem nicht so gut aus.
Wenn du schon schreibst "man hätte es bestimmt lösen können", dann mach doch einfach mal einen Vorschlag wie.Zurück zur Map.. finde die recht gut gelungen nur für die Location etwas zu modern vom Aufbau.
-
Zitat von BrightLeaN
Ich kann ja nicht abfragen ob der Wert größer als 0.60 ist oder?
Klar geht das?
forward Spielstunde();
public Spielstunde()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(pInfo[i][pSpielstunden] < 0.60)
{
pInfo[i][pSpielstunden] +=0.01;
}
else
{
//Was passieren soll wenn der Wert 0.60 oder höher ist.
}
}
return true;
}//Handy
-
Drück mal F5 und schau ObjectSoltsInUse.
Wenn das bei ~999 liegt, dann haste iwas falsch gemachtFüg das mal bei OnGameModeInit ein und probier es nochmal aus.
Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, 1000); -
Ja, mit dem Streamer Plugin
Habe den Streamer 2.9.3 aber bisher nichts gefunden für eine Virtuale Welt.
Das Objekt:
MedicalInterior[0] = CreateDynamicObject(18981, 1295.0079, -1397.0930, 910.0504, 0.0000, 90.0000, 0.0000);
Habe sonst nichts gefunden
Hast du überhaupt gesucht?
CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 300.0); -
Externer Inhalt youtu.beInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
hallo wie mache ich das wenn sich jemand einloggt das ich eine message bekomme ?
Was genau hat das jetzt mit dem Thema hier zutun?
-
Soweit ich weiß ist das nicht möglich.