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
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
ZitatAlles anzeigenHier, schreib es so:
for(new i,pos;i<sizeof(BadWords);i++) {
pos = strfind(text, BadWords[i], true);
if(pos == -1) continue;
new tmp[16],l=strlen(BadWords[i]);
strdel(text,pos,pos+l);
for(new x; x<l; x++) tmp[x] = '*';
strins(text,tmp,pos,144);
}
Vielen Dank, dieser Quellcode klappt sehr gut.
Jetzt erkläre mir aber doch noch den Vorgang von
strdel(text,pos,pos+l);
und
strins(text,tmp,pos,144);
mfg.
Alles anzeigenfor(new i;i<sizeof(BadWords);i++)
{
new j;
if((j = strfind(text, BadWords[i], true)) != -1)
{
for(new i,l=strlen(BadWords[i]); i<l; i++)
{
BadWords[j+1] = '*';
}
}
}
Okey jetzt stellt sich die frage ich ich das nun in den string packen kann.
Beispiel:
Alter String - Man man was bist du denn für ein Spacko!
Neuer String - Man man was bist du denn für ein ******!
mfg
Guten Abend,
Mein Name lautet CIBERKILLER.
Und zwar bräuchte ich mal eure Hilfe!
Ich möchte eine "Zensur" im Chat haben.
Das soll bedeuten, Person a schreibt "Spacko" dann wird aus Spacko ****** da "Spacko" 6 Zeichen enthält.
Ich habe mal so angefangen
for(new i;i<sizeof(BadWords);i++)
{
if(strfind(text, BadWords[i], true) != -1)
{
for(new j,l=strlen(BadWords[i]); j<l; j++)
{
format(BadWords[j], 1, "*");
}
}
}
Weiterhin hätte ich die Idee mit strdel & strins zu arbeiten, da ich dies aber noch nicht gemacht habe bräuchte ich dabei hilfe.
mfg
Auch da ist die Klammersetzung deines If-Clauses wieder falsch
Ja das war einer der 2 Fehler
Jetzt Funktioniert es wie gewollt!
Danke
mfg
Alles anzeigenJa.
Aber vorerst lass es mal so laufen:
value = GetPlayerSpeed(playerid);
printf("Model: %d == 520 && %d >= 250", GetVehicleModel(GetPlayerVehicleID(playerid)), value);
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 520 && value >= 250)
{
printf("Ban wegen %d km/h", value);
printf("%d", value);
mysql_format(dbhandle, query, sizeof(query), "INSERT INTO `Bans` (`Datum`,`Uhrzeit`,`Benutzername`,`Grund`,`Verantwortlicher`,`active`) VALUES ('%e','%e','%e','Speedhack','Anti-Cheat System',1)",gDate(), gTime(), GetName(playerid));
mysql_pquery(dbhandle, query, "", "");
format(string, sizeof(string), "Ban: {FFFFFF}%s wurde vom Anti - Cheat gebannt. Grund: Speedhack (Geschwindigkeit: %d)", GetName(playerid), value);
SendClientMessageToAll(Orange, string);
KickEx(playerid);
return 1;
}
Und poste dann was im Log steht.
Dann poste dazu den gesamten, aktualisierten, Timer.
Das ist ein bisschen komisch
[22:48:07] Number of vehicle models: 0
[22:48:17] 520
[22:48:17] Model: 520 == 520 && 1 >= 250
[22:48:18] 520
[22:48:18] Model: 520 == 520 && 0 >= 250
[22:48:19] 520
[22:48:19] Model: 520 == 520 && 0 >= 250
[22:48:20] 520
[22:48:20] Model: 520 == 520 && 0 >= 250
[22:48:21] 520
[22:48:21] Model: 520 == 520 && 3 >= 250
[22:48:22] 520
[22:48:22] Model: 520 == 520 && 11 >= 250
[22:48:23] 520
[22:48:23] Model: 520 == 520 && 20 >= 250
[22:48:24] 520
[22:48:24] Model: 520 == 520 && 16 >= 250
[22:48:25] 520
[22:48:25] Model: 520 == 520 && 12 >= 250
[22:48:26] 520
[22:48:26] Model: 520 == 520 && 21 >= 250
[22:48:27] 520
[22:48:27] Model: 520 == 520 && 63 >= 250
[22:48:28] 520
[22:48:28] Model: 520 == 520 && 120 >= 250
[22:48:29] 520
[22:48:29] Model: 520 == 520 && 163 >= 250
[22:48:30] 520
[22:48:30] Model: 520 == 520 && 205 >= 250
[22:48:31] 520
[22:48:31] Model: 520 == 520 && 232 >= 250
[22:48:31] 232
Alles anzeigen
Ich glaub ich hab den Fehler gefunden
Der Fehler müsste hier liegen
if(GetVehicleModel(GetPlayerVehicleID(playerid) != 520) && GetPlayerSpeed(playerid) >= 225)
{
printf("%d", GetPlayerSpeed(playerid));
mysql_format(dbhandle, query, sizeof(query), "INSERT INTO `Bans` (`Datum`,`Uhrzeit`,`Benutzername`,`Grund`,`Verantwortlicher`,`active`) VALUES ('%e','%e','%e','Speedhack','Anti-Cheat System',1)",gDate(), gTime(), GetName(playerid));
mysql_pquery(dbhandle, query, "", "");
format(string, sizeof(string), "Ban: {FFFFFF}%s wurde vom Anti - Cheat gebannt. Grund: Speedhack (Geschwindigkeit: %d)", GetName(playerid), GetPlayerSpeed(playerid));
SendClientMessageToAll(Orange, string);
KickEx(playerid);
return 1;
}
ZitatZeig uns am Besten mal die komplette Funktion. Ich fange langsam an daran zu zweifeln, dass wir uns im richtigen Abteil befinden.
Du meinst den ganzen Timer ?
Es Funktioniert trotz den logischen argumenten immer noch nicht
value = GetPlayerSpeed(playerid);
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 520 && value >= 250)
{
printf("%d", value);
mysql_format(dbhandle, query, sizeof(query), "INSERT INTO `Bans` (`Datum`,`Uhrzeit`,`Benutzername`,`Grund`,`Verantwortlicher`,`active`) VALUES ('%e','%e','%e','Speedhack','Anti-Cheat System',1)",gDate(), gTime(), GetName(playerid));
mysql_pquery(dbhandle, query, "", "");
format(string, sizeof(string), "Ban: {FFFFFF}%s wurde vom Anti - Cheat gebannt. Grund: Speedhack (Geschwindigkeit: %d)", GetName(playerid), value);
SendClientMessageToAll(Orange, string);
KickEx(playerid);
return 1;
}
Liegt es vllt daran das ich den Spieler beim Kicken freezen lasse (Unwarscheinlich da KickEx ganz unten ausgeführt wird)
stock KickEx(playerid)
{
TogglePlayerControllable(playerid, false);
return SetTimerEx("KickTimer", 10, false, "i", playerid);
}
[22:39:36] 520
[22:39:37] 520
[22:39:38] 520
[22:39:39] 520
[22:39:40] 520
[22:39:41] 520
[22:39:42] 520
[22:39:43] 520
[22:39:44] 520
[22:39:45] 520
[22:39:46] 520
[22:39:47] 520
[22:39:48] 520
[22:39:49] 520
[22:39:50] 520
[22:39:51] 520
[22:39:52] 520
[22:39:53] 520
[22:39:53] 239
Alles anzeigen
mfg
Du versteht nicht Kaliber, ich fliege in einer Hydra mit der Geschwindigkeit 238/239. Dafür werde ich wegen Speedhack gesperrt, erlaubt für die Hydra sind aber 250!