Da haben wir unseren Fehler
255 ist doch NO_TEAM oder ?
und NO_TEAM ist sobald ich gelesen habe standart oder ?
mfg
Da haben wir unseren Fehler
255 ist doch NO_TEAM oder ?
und NO_TEAM ist sobald ich gelesen habe standart oder ?
mfg
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar bräuchte ich mal hilfe hierbei.
test wird geprintet, aber die sachen unten drunter werden nicht aufgerufen!
ocmd:test(playerid)
{
print("test");
if(GetPlayerTeam(playerid) == 1)SetPlayerTeam(playerid, 255),SendClientMessage(playerid, Weis, "deaktiviert");
else if(GetPlayerTeam(playerid) == 255)SetPlayerTeam(playerid, 1),SendClientMessage(playerid, Weis, "aktiviert");
return 1;
}
mfg
Das ganze klappt aktuell nicht so wie es "klappen" soll.
Quellcode:
ocmd:changemusic(playerid, params[])
{
if(!GetPVarInt(playerid, "Eingeloggt"))return SendClientMessage(playerid, Orange, "Fehler: {FFFFFF}Du bist nicht eingeloggt!");
if(!GetPVarInt(playerid, "gblaster"))return SendClientMessage(playerid, Orange, "Fehler: {FFFFFF}Du hast keinen Ghettoblaster aufgestellt!");
GetObjectPos(GetPVarInt(playerid, "gobject"), pPos[0], pPos[1], pPos[2]);
if(GetPlayerDistanceFromPoint(playerid, pPos[0], pPos[1], pPos[2]) >= 3.6)return SendClientMessage(playerid, Orange, "Fehler: {FFFFFF}Du bist nicht in der nähe deines Ghettoblasters");
if(sscanf(params, "s", usage))return SendClientMessage(playerid, Orange, "Fehler: {FFFFFF}/changemusic [Link]");
for(new i;i<sizeof(Stream);i++)
{
if(!strlen(Stream[i][url]))continue;
printf("url: %s | pos: %f,%f,%f | id: %d | usage: %s",Stream[i][url],Stream[i][sPos][0],Stream[i][sPos][1],Stream[i][sPos][2], i, usage);
format(Stream[i][url], 128, usage);
Stream[i][sPos][0] = pPos[0],Stream[i][sPos][1] = pPos[1],Stream[i][sPos][2] = pPos[2];
if(i==sizeof(Stream))break;
}
/*for(new i;i<GetMaxPlayers();i++)
{
if(!IsPlayerConnected(i))continue;
if(IsPlayerNPC(i))continue;
if(!GetPVarInt(playerid, "Eingeloggt"))continue;
if(GetPlayerDistanceFromPoint(i, pPos[0], pPos[1], pPos[2]) >= 45.1)continue;
SetPVarString(i, "stream_played", usage);
}*/
return 1;
}
public OnPlayerUpdate(playerid)
{
static str[128];
GetPVarString(playerid, "stream_played", str, sizeof(str));
for(new i;i<sizeof(Stream);i++)
{
if(strcmp(Stream[i][url], "leer", true)&& strlen(str) != 0 && strcmp(str, Stream[i][url], true) && Stream[i][sPos][0] == 0.0)
{
if(GetPlayerDistanceFromPoint(playerid, Stream[i][sPos][0], Stream[i][sPos][1], Stream[i][sPos][2]) <= 45.0)
{
PlayAudioStreamForPlayer(playerid, Stream[i][url], Stream[i][sPos][0], Stream[i][sPos][1], Stream[i][sPos][2], 45.0, 1);
return SetPVarString(playerid, "stream_played", Stream[i][url]);
}
}
}
return 1;
}
mfg
Alles anzeigendcmd_o(playerid, params[]) // Versuch es mal so []
{
if(!strlen(params)) return SendClientMessage(playerid, COLOR_HGRAD, "Benutze: /o [Text]"); // Zeile 1971
new str[144];
switch(AdminLevelVariableHierEinsetzen) // Zeile 1973
{
case 0: format(str, sizeof(str), "{FFFFFF}(( {00FF00}Mitbürger %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 1: format(str, sizeof(str), "{FFFFFF}(( {FFFF00}Supporter %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 2: format(str, sizeof(str), "{FFFFFF}(( {04B404}Moderator %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 1336: format(str, sizeof(str), "{FFFFFF}(( {848484}Fraktionsverwalter %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 1337: format(str, sizeof(str), "{FFFFFF}(( {0000FF}Administrator %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 1338: format(str, sizeof(str), "{FFFFFF}(( {FA5858}Head Administrator %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 1339: format(str, sizeof(str), "{FFFFFF}(( {990000}Stellv. Projektleiter %s{FFFFFF}: %s ))", nSpieler(playerid), params);
case 2000: format(str, sizeof(str), "{FFFFFF}(( {FF0000}Projektleiter %s{FFFFFF}: %s ))", nSpieler(playerid), params);
}
SendClientMessageToAll(-1, str);
return 1;
}
Setzt es so ein
Edit: Jeffry: Mach ich doch gerne, jedem passieren mal Fehler
Du brauchst aber am anfang kein {FFFFFF} da das sowie weis beginnst.
mfg
Du kannst den string des Streams ja in einer Spielervariable speichern, wenn du es startest (die Funktion könnte man auch hooken) und dann über die Variable auch wieder abfragen, ob der Stream gerade in dieser Variable steht.
Wenn der Stream beendet wird, schreibst du einfach LEER in die Variable.
Kannst es ja erst mal selbst ausprobieren ob du es so hinbekommst, und wenn nicht nochmal Bescheid geben bzw den Code posten den du bis dahin hast. Aber ich bin zuversichtlich, dass du es hinbekommst, ist nicht viel Aufwand.
Ich habe es mal so geschrieben!
SetPVarString(playerid, "stream_played", usage);
for(new i;i<sizeof(Stream);i++){
if(!strcmp(Stream[i][url], "leer", true))continue;
format(Stream[i][url], 128, "%s", usage),
Stream[i][sPos][0] = pPos[0],Stream[i][sPos][1] = pPos[1],Stream[i][sPos][2] = pPos[2];
}
public OnPlayerUpdate(playerid)
{
GetPVarString(playerid, "stream_played", string, sizeof(string));
for(new i;i<sizeof(Stream);i++)
{
if(!strcmp(Stream[i][url], "leer", true))continue;
if(!strcmp(string, Stream[i][url], true))continue;
if(Stream[i][sPos][0] == 0.0)continue;
if(GetPlayerDistanceFromPoint(playerid, Stream[i][sPos][0], Stream[i][sPos][1], Stream[i][sPos][2]) >= 45.1)continue;
PlayAudioStreamForPlayer(playerid, Stream[i][url], Stream[i][sPos][0], Stream[i][sPos][1], Stream[i][sPos][2], 45.0, 1);
}
return 1;
}
Habs noch nicht getestet, sollte aber soweit passen!
mfg
Guten Tag,
Mein Name lautet CIBERKILLER.
Und zwar wollte ich euch mal fragen ob es eine möglichkeit gibt Streamadressen herauszufinden.
Natürlich verbunden mit PlayAudioStreamForPlayer.
Also eine genaue abfrage ob der Spieler einen bestimmten stream hat!
mfg
Alles anzeigenDas Grundprinzip ist einfach:
Zu Deutsch:
Der Alkoholpegel verringert sich bei 50 FPS um 50 pro Sekunde.
Anhand dieses Faktums lässt sich mittels dieser Funktion die FPS Anzahl berechnen.
Vielen Dank für diese Erklärung!
Klappt übrigens nun wunderbar !
mfg
@NicoWiss
Liest du auch mal ?
Und zwar wollte ich mal fragen, ob mir jemand erklären kann wie ich die Frames pro Second eines Spielers ermitteln kann!
Ich habe mir diesen Thread schon angeschauen, wollte nur die genaue erklärung haben. (Wie dies überhaupt funktionieren kann)
mfg
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar wollte ich mal fragen, ob mir jemand erklären kann wie ich die Frames pro Second eines Spielers ermitteln kann!
mfg
Naja wir gehen davon aus dass über dem Kopf "Text" stehen soll!
mfg
Ich denke mal du möchtest das der Text über dem Kopf steht oder ?
mfg
if (strcmp("/pdtuer", cmdtext, true, 10) == 0)
{
if(!IstSpielerInFraktion(playerid, 1))return SendClientMessage(playerid,ROT, "Du bist kein Beamter.");
if (IsPlayerInRangeOfPoint(playerid,3.0, 250.48875, 64.26849, 1002.59192)){ // LSPD DOOR 1
if(!LSPDTuer1)MoveDynamicObject (LSPDinnen1, 250.48875, 64.26849, 1002.59192,3);
else if(LSPDTuer1)MoveDynamicObject (LSPDinnen1,250.48875, 62.26849, 1002.59192,3);
return LSPDTuer1 = !LSPDTuer1;
}
else if (IsPlayerInRangeOfPoint(playerid,3.0, 245.46582, 72.40785, 1002.59192)){ // LSPD DOOR 2
if(!LSPDTuer2)MoveDynamicObject (LSPDinnen2,245.46582, 72.40785, 1002.59192,3);
else if(LSPDTuer2)MoveDynamicObject (LSPDinnen2,245.46582, 70.40785, 1002.59192,3);
return LSPDTuer2 = !LSPDTuer2;
}
return 1;
}
zu
if (strcmp("/pdtuer", cmdtext, true, 10) == 0)
{
if(!IstSpielerInFraktion(playerid, 1))return SendClientMessage(playerid,ROT, "Du bist kein Beamter.");
if (IsPlayerInRangeOfPoint(playerid,3.0, 250.48875, 64.26849, 1002.59192)){ // LSPD DOOR 1
if(!LSPDTuer1)MoveDynamicObject (LSPDinnen1, 250.48875, 64.26849, 1002.59192,3),SendClientMessage(playerid, -1, "Du hast das LSPD Tor geöffnet!");
else if(LSPDTuer1)MoveDynamicObject (LSPDinnen1,250.48875, 62.26849, 1002.59192,3),SendClientMessage(playerid, -1, "Du hast das LSPD Tor geschlossen!");
return LSPDTuer1 = !LSPDTuer1;
}
else if (IsPlayerInRangeOfPoint(playerid,3.0, 245.46582, 72.40785, 1002.59192)){ // LSPD DOOR 2
if(!LSPDTuer2)MoveDynamicObject (LSPDinnen2,245.46582, 72.40785, 1002.59192,3),SendClientMessage(playerid, -1, "Du hast das LSPD Tor geöffnet!");
else if(LSPDTuer2)MoveDynamicObject (LSPDinnen2,245.46582, 70.40785, 1002.59192,3),SendClientMessage(playerid, -1, "Du hast das LSPD Tor geschlossen!");
return LSPDTuer2 = !LSPDTuer2;
}
return 1;
}
mfg
Zeig mal wie du das Objekt erstellt
mfg
if(LSPDTuer2 == 0)
{
MoveObject (LSPDinnen2,245.46582, 72.40785, 1002.59192,3);
LSPDTuer2 = 1;
}
else if(LSPDTuer2 == 1)
{
MoveObject (LSPDinnen2,245.46582, 70.40785, 1002.59192,3);
LSPDTuer2 = 0;
}
Hier veränderst du die Position ja garnicht
MoveObject (LSPDinnen2,245.46582, 70.40785, 1002.59192,3);
MoveObject (LSPDinnen2,245.46582, 72.40785, 1002.59192,3);
mfg
Ich habe das ganze nun mal so geschrieben.
SpielerInfo[userid][sTimeBan] = gettime() + (60*value);
if((gettime()<SpielerInfo[playerid][sTimeBan] && SpielerInfo[playerid][sTimeBan] != 0))
{
new days,hours,mins,wartezeit = SpielerInfo[playerid][sTimeBan],restzeit= wartezeit -gettime();
days = floatround(restzeit / 86400,floatround_floor),
hours = restzeit - (days * 86400),
hours = floatround(hours / 3600,floatround_floor),
mins = restzeit - ( (days * 86400) + (hours * 3600) ),
mins = floatround(mins / 60,floatround_floor);
format(string, sizeof(string), "Timeban: {FFFFFF}Du bist noch für %i Tage %i Stunden und %i Minuten gesperrt!", days, hours, mins),
SendClientMessage(playerid, Orange, string), KickEx(playerid);
return 1;
}
SpielerInfo[playerid][sTimeBan] = 0;
Dies klappt ganz gut.
Auserdem habe ich nun das Prinzip des "Systems" verstanden.
So später es wird, so größer wird der Timestamp in gettime().
Das heißt also wenn ich das ganze mal 60 nehme, und wenn dann nach jedem login abgefragt wird ob der aktuell timestamp größer als der alte, dann ist der spieler noch gesperrt!
mfg
Du musst aber dann auch die Textsize anpassen.
Sonst kann es passieren wenn du auf TextA klickst dass dann TextB ausgewählt wird.
mfg
format(query,sizeof(query),"SELECT * FROM spieler WHERE Username = '$s'", Name);
zu
format(query,sizeof(query),"SELECT * FROM spieler WHERE Username = '%s'", Name);
mfg
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar hätte ich da mal eine Frage.
Ich möchte einen Timeban in mein Skript hinzufügen & frage mich dann immer.
Wie genau soll das ganze Funktionieren.
SpielerInfo[playerid][sTimeBan] = gettime() * 60;
Ich hatte an sowas hier gedacht, aber wie läuft das ding automatisch ab.
Läuft es noch automatisch ab wenn der Server sich kurz neustartet.
Wie kann ich bei einloggen so eine nachricht übergeben lassen, (du bist noch für %i Tage | %i Stunden | %i Minuten | %i Sekunden gebannt)
Und da hätte ich an sowas gedacht.
days = floatround(restzeit / 86400,floatround_floor);
hours = restzeit - (days * 86400);
hours = floatround(hours / 3600,floatround_floor);
mins = restzeit - ( (days * 86400) + (hours * 3600) );
mins = floatround(mins / 60,floatround_floor);
Aber sicher bin ich mir nicht!
mfg
Was verstehst du denn dadran nicht?
Naja wie man herausfinden kann wo das 1. Zeichen von der Zensur oder von dem 2ten.
z.B "Spacko"
mfg
Ich weis, aber verstehe das nie mit der Zeichenposition
mfg