Guten Tag,
wie erstelle ich einen timer im /o Chat .. also das man z.B nur alle 10sec im /o Chat schreiben kann.
MFG
Guten Tag,
wie erstelle ich einen timer im /o Chat .. also das man z.B nur alle 10sec im /o Chat schreiben kann.
MFG
ochat.....
ganz oben!
new ochat[MAX_PLAYERS];
if(ochat==1)
{
SendClientMessage(playerid,ROT,"Erst in 10 Sec wieder!");
return 1;
}
else if(ochat==0)
{
SetTimerEx("ochat",10000,0,"d",playerid);
ochat[playerid]=1;
return 1;
}
forward ochat(playerid);
public ochat(playerid)
{
ochat=0;
return 1;
}
Dazu wird kein Timer benötigt:
new oLastChatTime[MAX_PLAYERS];
/o command (playerid, ....)
{
if(gettime() - oLastChatTime[playerid] < 10) return SendClientMessage(playerid, 0xFF0000FF, "Nur alle 10 Sekunden!!!!");
oLastChatTime[playerid] = gettime();
//........
}
if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht Eingeloggt !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, " Du kannst nicht sprechen, du bist gemutet !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
if(Maske[playerid] == 1)
{
sendername = "Maskierter";
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "NUTZUNG: (/o)oc [ooc chat]");
return 1;
}
if(PlayerInfo[playerid][pAdmin] == 1)
{
//format(string, sizeof(string), "(( 1339 Admin %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2)
{
//format(string, sizeof(string), "(( Moderator %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 3)
{
//format(string, sizeof(string), "(( Support Admin 3 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 4)
{
//format(string, sizeof(string), "(( Support Admin 4 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 5)
{
//format(string, sizeof(string), "(( Support Admin 5 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 1337)
{
//format(string, sizeof(string), "(( 1337 Admin %s: %s))", sendername, result);
format(string, sizeof(string), "(( %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2001)
{
//format(string, sizeof(string), "(( Stellv. Projektleiter %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2002)
{
//format(string, sizeof(string), "(( Projektleiter %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pSupporter] == 1)
{
format(string, sizeof(string), "(( Uservertreter %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 0 && (noooc))
{
format(string, sizeof(string), "(( %s: %s))", sendername, result);
}
else return 1;
OOCOff(COLOR_OOC,string);
Log("OA-Chat.txt",string);
}
return 1;
}
das ist sind jetz die Zeilen wie muss ich das jetz machen
genau so wie ich es gepostet habe....
genau so fügst du es in den command ein
geht nicht :O
ganz oben!
new oocchat[MAX_PLAYERS];if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht Eingeloggt !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, " Du kannst nicht sprechen, du bist gemutet !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
if(Maske[playerid] == 1)
{
sendername = "Maskierter";
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "NUTZUNG: (/o)oc [ooc chat]");
return 1;
}
if(oocchat[playerid]==1)
{
SendClientMessage(playerid,COLOR_RED,"Erst in 10 Sekunden wieder!");
return 1;
}
else if(oocchat[playerid]==0)
{
if(PlayerInfo[playerid][pAdmin] == 1)
{
//format(string, sizeof(string), "(( 1339 Admin %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2)
{
//format(string, sizeof(string), "(( Moderator %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 3)
{
//format(string, sizeof(string), "(( Support Admin 3 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 4)
{
//format(string, sizeof(string), "(( Support Admin 4 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 5)
{
//format(string, sizeof(string), "(( Support Admin 5 %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 1337)
{
//format(string, sizeof(string), "(( 1337 Admin %s: %s))", sendername, result);
format(string, sizeof(string), "(( %s: %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2001)
{
//format(string, sizeof(string), "(( Stellv. Projektleiter %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 2002)
{
//format(string, sizeof(string), "(( Projektleiter %s : %s))", sendername, result);
format(string, sizeof(string), "(( %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pSupporter] == 1)
{
format(string, sizeof(string), "(( Uservertreter %s : %s))", sendername, result);
}
else if(PlayerInfo[playerid][pAdmin] == 0 && (noooc))
{
format(string, sizeof(string), "(( %s: %s))", sendername, result);
}
else return 1;
OOCOff(COLOR_OOC,string);
oocchat[playerid]=1;
SetTimerEx("oocchat",10000,0,"d",playerid);
Log("OA-Chat.txt",string);
}
}
return 1;
}
forward oocchat(playerid);
public oochat(playerid)
{
oocchat[playerid]=0;
return 1;
}
Geht nicht, gibts nicht...
Du brauchst einen Timestamp. Das ist die Anzahl der Sekunden seit dem 01.01.1970. Somit kannst Du ohne einen Timer zu verwenden, abfragen, ob man etwas eingeben darf.
Dazu machst du folgendes im /o Befehl:
if(GetPVarInt(playerid,"ochattstamp") > gettime()){
SendClientMessage(playerid,FARBE,"Du kannst noch nicht im OOC schreiben.);
}else{
SetPVarInt(playerid,ochattstamp,gettime() + 10);
//Hier den text an alle Spieler senden(OOC)
}
Das Ganze läuft folgendermaßen ab:
Du fragst ab, ob der Timestamp der zeit, wo man wieder schrieben darf größer der aktuelle Timestamp ist.
Denn wenn der größer ist, als der aktuelle ist die Zeit noch nicht angekommen.
Wenn nein, darf man schreiben und setzt den Wert von der PlayerVariable auf gettime() (Aktueller Timestamp) +10(10 Sekunden später).
Alles anzeigenGeht nicht, gibts nicht...
Du brauchst einen Timestamp. Das ist die Anzahl der Sekunden seit dem 01.01.1970. Somit kannst Du ohne einen Timer zu verwenden, abfragen, ob man etwas eingeben darf.
Dazu machst du folgendes im /o Befehl:
if(GetPVarInt(playerid,"ochattstamp") > gettime()){
SendClientMessage(playerid,FARBE,"Du kannst noch nicht im OOC schreiben.);
}else{
SetPVarInt(playerid,ochattstamp,gettime() + 10);
//Hier den text an alle Spieler senden(OOC)
}
Das Ganze läuft folgendermaßen ab:
Du fragst ab, ob der Timestamp der zeit, wo man wieder schrieben darf größer der aktuelle Timestamp ist.
Denn wenn der größer ist, als der aktuelle ist die Zeit noch nicht angekommen.
Wenn nein, darf man schreiben und setzt den Wert von der PlayerVariable auf gettime() (Aktueller Timestamp) +10(10 Sekunden später).
geht nicht
C:\Users\p\Desktop\0.3x Force-Reallife\gamemodes\Force-Reallife.pwn(21686) : error 017: undefined symbol "ooc"
if(GetPVarInt(playerid,"ooc") > gettime()){
SendClientMessage(playerid,0xFF004BFF,"Du kannst noch nicht im OOC schreiben.");
}
else
{
SetPVarInt(playerid,ooc,gettime() + 10);
SendClientMessage(playerid,0xFF004BFF,"Du kannst nur alle 10sec im /o Chat schreiben.");
}
SetPVarInt(playerid,"ooc",gettime() + 10);
Anführungszeichen.