Hier auch eine Möglichkeit wie du es machen könntest:
CAlles 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
Hab dazu jetzt einfach mal ein paar Fragen, ich bin selber nicht wirklich der Erfahrenste Scripter, besonders in den Funktionen die du da benutzt hast.
static const dc[3][] ={"(Timeout/Crash)","(Verlassen)","(Kick/Ban)"};
Wieso static const und nicht ein "new"? Was ist der Unterschied?
Wofür sind im SetTimerEx die ganzen Ausrufezeichen, wieso "@destroy_Logout" und funktioniert so ein static immer, oder nur zu bestimmten Punkten?
Sprich, kann ich ein static immer ausführen lassen, ohne extra forward+public zu erstellen, oder wie funktioniert das?
Und wieso steht das 2x da unten? Also 2x @destroy_Logout([..]);@destroy_Logout([..])
Danke dir.