Fragen zu Logout
- Dr. Frauenarzt
- 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
-
-
Das kannst du hier nachlesen: https://wiki.sa-mp.com/wiki/OnPlayerDisconnect
Und das ist ein Pickup (http://weedarr.wikidot.com/pickups) und da die ID 1275 https://wiki.sa-mp.com/wiki/CreatePickup
und ein 3DTextLabel https://wiki.sa-mp.com/wiki/Create3DTextLabel
Na dann, viel Erfolg!
-
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreatePickup(1275, 4, x, y, z, -1);
new szString[64],
playerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
new szDisconnectReason[3][] =
{
"Timeout/Crash",
"Verlassen",
"Kick/Ban"
};Soweit bin ich mal
Wie lasse ich das (Verlassen) (Timout) (Gekickt/Gebannt) anzeigen in einem 3DTextLabel + Uhrzeit wie auf dem Bild
//E: Update
-
//Ich bin neuling im Scriptingbereich
Entweder du erstellt eine Variable und speicherst dort drin ob er gekickt oder einen timeout hatte.
Und gibst es mit einem format mit der Funktion CreateTextLabel wieder. -
Versuch's mal so:
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreatePickup(1275, 4, x, y, z, -1);
new szString[64],
playerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
new szDisconnectReason[3][] =
{
"Timeout/Crash",
"Verlassen",
"Kick/Ban"
};
format(szString,sizeof(szString),"%s hat Verlassen. Grund: %s", playerName, szDisconnectReason[reason]);
Create3DTextLabel(szString, 0x008080FF, x, y, z, 10.0, 0, 0); -
-
Schreib es so:
CreatePickup(1275, 23, x, y, z, -1);
-
Wie lasse ich die Zeit auslesen?
-
-
public OnPlayerDisconnect(playerid, reason)
{
new Stunden, Minuten, Sekunden, Timestamp;
Timestamp = gettime(Stunden, Minuten, Sekunden);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreatePickup(1275, 23, x, y, z, -1);
new szString[64],
playerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
new szDisconnectReason[3][] =
{
"(Timeout/Crash)",
"(Verlassen)",
"(Kick/Ban)"
};
format(szString,sizeof(szString),"%s\n%s\n%02d:%02d:%02d", playerName, szDisconnectReason[reason], Timestamp);
Create3DTextLabel(szString, 0xFFFFFF, x, y, z, 10.0, 0, 0);
savePlayer(playerid);
resetPlayer(playerid);
return 1;
}Kann das so stimmen :)?
-
public OnPlayerDisconnect(playerid, reason){new Stunden, Minuten, Sekunden, Timestamp;Timestamp = gettime(Stunden, Minuten, Sekunden);new Float:x, Float:y, Float:z;GetPlayerPos(playerid, x, y, z);CreatePickup(1275, 23, x, y, z, -1);new szString[64],playerName[MAX_PLAYER_NAME];GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);new szDisconnectReason[3][] ={"(Timeout/Crash)","(Verlassen)","(Kick/Ban)"};format(szString,sizeof(szString),"%s\n%s\n%02d:%02d:%02d", playerName, szDisconnectReason[reason], Timestamp);Create3DTextLabel(szString, 0xFFFFFF, x, y, z, 10.0, 0, 0);savePlayer(playerid);resetPlayer(playerid);return 1;}
Kann das so stimmen :)?
Hast du es schon ausprobiert Ingame, oder bekommst du Errors/Warnings?
-
-
C
Alles anzeigenpublic OnPlayerDisconnect(playerid, reason) { new Stunden, Minuten, Sekunden; gettime(Stunden, Minuten, Sekunden); new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1275, 23, x, y, z, -1); new szString[64],playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME); new szDisconnectReason[3][] ={"(Timeout/Crash)","(Verlassen)","(Kick/Ban)"}; format(szString,sizeof(szString),"%s\n%s\n%02d:%02d:%02d", playerName, szDisconnectReason[reason], Stunden, Minuten, Sekunden); Create3DTextLabel(szString, 0xFFFFFF, x, y, z, 10.0, 0, 0); savePlayer(playerid); resetPlayer(playerid); return 1; }
-
Logout = CreatePickup(1275, 23, x, y, z, -1);
Logout = SetTimerEx("abort", 6000, false, "i", playerid);Richtig? Der Pickup & 3DText sollen nach 2 Minuten Verschwinden
-
Du kannst einer Variable nicht 2 Dinge zuweisen.
Das heißt du brauchst für jeden Spieler eine eigene Variable. -
Inwiefern ist das jetzt gemeint?
Meinst du Für 3DText & Pickup jeweils einen eigenen timer zum verschwinden lassen?
-
Nein, aber beim erstellen musst du ja den Pickups und den 3D-Texten eine Variable zuweisen, für jeden Spieler eine.
Sprich:new Text3D:Logout3D[MAX_PLAYERS];
new LogoutPickup[MAX_PLAYERS];Beim erstellen zuweisen, und dann erstellst du den Timer beim Logout, ebenfalls mit einer Spieler-Variable.
Und dann lässt du die einfach löschen. -
C:\Users\Natascha\Desktop\Selfmade xGhost\gamemodes\Selfmade.pwn(941) : warning 213: tag mismatch
Logout2[playerid] = Create3DTextLabel(szString, 0xFFFFFFAA , x, y, z, 10.0, 0, 0);
-
Logout2 muss mit dem 3D-Text-Tag erstellt werden.
-
Hier auch eine Möglichkeit wie du es machen könntest:
C
Alles anzeigenpublic OnPlayerDisconnect(playerid, reason) { static const dc[3][] ={"(Timeout/Crash)","(Verlassen)","(Kick/Ban)"}; new Float:x, Float:y, Float:z, tmp[15 + MAX_PLAYER_NAME + 10], h,m,s; gettime(h,m,s),GetPlayerPos(playerid, x, y, z); GetPlayerName(playerid, tmp, MAX_PLAYER_NAME); format(tmp,sizeof(tmp),"%s\n%s\n%02d:%02d:%02d", tmp, dc[reason], h,m,s); SetTimerEx( !"@destroy_Logout",1000*30,0,!"ii", CreatePickup(1275, 23, x, y, z, GetPlayerVirtualWorld(playerid)), _:Create3DTextLabel(tmp, -1, x, y, z, 20.0, GetPlayerVirtualWorld(playerid), 1)); return 1; } static @destroy_Logout(a,Text3D:b);@destroy_Logout(a,Text3D:b) { DestroyPickup(a),Delete3DTextLabel(b); return 1; }
Dann schenkst dir paar Variablen
-