new callid = random(5000);
for(new i=0; i< MAX_PLAYERS; i++)
{
//if-abfrage die ihr nicht braucht
SetPVarInt(playerid,"CallID",callid);
SetPVarInt(i,"CallID",callid++);
printf("%d i %d p",GetPVarInt(i,"CallID"),GetPVarInt(playerid,"CallID"));
}
Wie man sieht, möchte ich für die playerid die Random Zahl speichern, für das Ergebnis der Schleife die Random Zahl +1. Trotzdem werden in beide PVars die gleichen Werte geschrieben, sehe ich anhand von dem Print. Warum ist das so? Eigentlich ist doch eine der PVars auf callid++ gesetzt?
Random++?
- Uppermost
- 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
-
-
Daher auch
SetPVarInt(i,"CallID",++callid);Das ist die Präfix Version des Inkrementoperator, die wo du benutzt ist die Postfix version davon.
Der unterschied dazwischen ist das bei der die variabeln bevor sie genutzt wird um 1 erhöht
Präfix -
Und wie frage ich das dann ab? Muss ich dort auch einen anderen Präfix/Suffix als sonst verwenden?
if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,++"CallID")) {}
if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,"CallID")++) {}
if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,"CallID"++)) {}
? -
Du setzt ja den wert +1 daher ist der auch temporär gespeichert. Du kannst das ganze normal auslesen der Wert wird dein random +1 sein wie du es willst.
aber als kleine korrektur bei den if abfragen
GetPVarInt(i,"CallID")
gibt einen wert zurück daher macht es kein sin den Inkrementoperator bei dem Namen hinzusetzen.Zudem muss man nicht umbedingt ein
Inkrementoperator benutztenSetPVarInt(i,"CallID",callid+1);
würde auch gehen -
Super, danke!
-
Wieso benutzt du PVars und keine Variablen ?
-
breadfish.de
Hat das Thema geschlossen.