Moin!
Habe eben ein "JoinMessage" 'System' geschrieben. Wie kann ich nochmals verhindert, dass der Spieler welcher sich einloggt die Nachricht selbst sieht ?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Das kommt darauf an, wie du es geschrieben hast xD
Zeig uns doch mal den Code, wo die Nachricht gesendet wird
-
Ich würde behaupten in deiner Schleife einfach abfragen ob i gleich Playerid ist und falls Ja, Continue, oder?
-
Habe das von @Canna bereits getestet, dann kommt die Debugmeldung auch nicht an.
stock SendJoinMessage(playerid){
if(IsPlayerConnected(playerid)){
for(new i=0;i<MAX_PLAYERS;i++){
if(i != INVALID_PLAYER_ID && IsPlayerConnected(i) && GetPVarInt(i, "Logged") == 1){
new string[128];
format(string, sizeof(string), "[LOGIN] Spieler %s hat den Server betreten.", GibName(playerid));
printf("[DEBUG] %s", string);
SendClientMessage(i, -1, string);
return 1;
}
}
}
return 1;
} -
Ich bin verwirrt.
Also es funkt Nicht wie ich es gesagt Habe? -
Ich bin verwirrt.
Also es funkt Nicht wie ich es gesagt Habe?Nein.
-
Sollte eigentlich.
if(i != playerid) ? -
Der Code den du da geschrieben hast, der ist falsch.
Durch das return 1; in der Schleife, wird das nur 1x aufgerufen. Das i != INVALID_PLAYER_ID macht keinen Sinn, da i nur im Bereich zwischen 0-MAX_PLAYERS liegt
Und für jeden Spieler immer den String neu zu deklarieren und zu formatieren ist auch nicht gerade effizient.
Schreib das alles mal so:
C
Alles anzeigenstock SendJoinMessage(playerid) { if(!IsPlayerConnected(playerid)) return 0; new string[128]; format(string, sizeof(string), "[LOGIN] Spieler %s hat den Server betreten.", GibName(playerid)); printf("[DEBUG] %s", string); for(new i=GetPlayerPoolSize(); i!=-1; i--) { if(!GetPVarInt(i, "Logged") || i==playerid) continue; SendClientMessage(i, -1, string); } return 1; }
-
GetPlayerPoolSize kannte ich gar nicht :o
Aber aus welchem grund ziehst du etwas von i ab und fügst nicht ein Int hinzu? Oder interpretiere ich die Schleife gerade falsch
-
GetPlayerPoolSize
Gibts ja auch erst seit 0.3.7
Und diese gibt die höchste Spielerid auf dem Server wieder (Gets the highest playerid currently in use on the server.)
Also angenommen es sind 5 Spieler auf dem Server, gibt Sie ID 4 zurück (0-4).
for(new i=4; //das steht dann da.
Jetzt müssen wir also runter zählen um alle anderen IDs auch noch zu durchlaufen
-
Zeile (46744) : error 001: expected token: "-identifier-", but found "-integer value-"
Zeile (46752) : error 035: argument type mismatch (argument 2)
Zeile (46755) : error 017: undefined symbol "index"
Zeile (46755) : warning 215: expression has no effect
Zeile (46757) : error 017: undefined symbol "index"Code
Alles anzeigenocmd:veh(playerid, params[]) { new vID, color1, color2, Float:x, Float:y, Float:z, Float:rot, index = 0; //46744 if(PlayerInfo[playerid][pAdmin] < 1337)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN); if(sscanf(params, "iii", vID, color1, color2))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/veh [Model-ID] [Farbe 1] [Farbe 2]"); if(vID < 400 || vID > 611)return SendClientMessage(playerid, COLOR_WHITE, "{C3C3C3}Model ID muss zwischen 400 und 611 liegen."); if(color1 < 0 || color1 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{C3C3C3}Farbe 1 muss zwischen 0 und 255 liegen."); if(color2 < 0 || color2 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{C3C3C3}Farbe 2 muss zwischen 0 und 255 liegen."); GetPlayerPos(playerid, x, y, z); new Interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, rot); //46752 for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] != INVALID_VEHICLE_ID)index++; //46755 } if(index == MAX_ADMINVEHS)return SendClientMessage(playerid, COLOR_WHITE, "{C3C3C3}Die maximale Anzahl der erstellbaren Fahrzeuge wurde erreicht."); //46757 for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] == INVALID_VEHICLE_ID) { spawnedVeh[a] = CreateVehicle(vID, x, y, z, rot, color1, color2, -1); PutPlayerInVehicleEx(playerid, spawnedVeh[a], 0); LinkVehicleToInterior(spawnedVeh[a], Interior); break; } } return 1; }
Kann mir da bitte jemand helfen ? :o
-
Kann es sein, dass du rot bereit als Makro hast? Benenne mal rot in angle oder rotation um.
-
Hey,
Ich habe das Timestamptodate inc. aber habe irgendwie das Problem das wenn ich was mache da er mit schreibt z.b wenn ich jetze Geld einzahle sagt er ich habe es am 27.02 gemacht sprich er rechnet immer ein Tag zu wenig ?
Weiß jemand warum ? -
Oh. Kugel kaputt, sorry.
-
http://forum.sa-mp.com/showthread.php?t=347605
Das ist das Include was ich nutze
-
Das könnte an einer Einstellung deines Servers liegen, möglicherweise ist der einen Tag hinterher.
Ich würde da aber einfach Folgendes in der Include anpassen:
Timestamp -= 172800; // Delete two days from the current timestamp. This is necessary, because the timestamp retrieved using gettime() includes two too many days.
Zu
Timestamp -= 86400; // ursprünglich 172800:Delete two days from the current timestamp. This is necessary, because the timestamp retrieved using gettime() includes two too many days.Beachte auch diese Korrektur:
http://forum.sa-mp.com/showpost.php?p=3807026&postcount=72 -
Hey,
Gibt es eine Möglichkeit das Object ( 2901 ) als standhaftes Object zu machen dass man dieses nicht rumschubsen/schießen kann ? -
Hey,
Gibt es eine Möglichkeit das Object ( 2901 ) als standhaftes Object zu machen dass man dieses nicht rumschubsen/schießen kann ?Ich glaube man kann Hitboxen mit einem Include deaktivieren.
http://forum.sa-mp.com/showthread.php?t=586040 glaube das könnte dir Helfen
-
-
Gibt es eine Möglichkeit das Object ( 2901 ) als standhaftes Object zu machen dass man dieses nicht rumschubsen/schießen kann ?
Nein, keine die wirklich gut zu gebrauchen wäre.
Die Frage ist, wofür willst du das denn?!
Das Include was dir Vorgeschlagen wurde, hat damit nichts zu tun.