Skripta koju koristim: iStunt
Detaljan opis problema: ma napravio onu komandu za /mute s timerom ali ima problemcic, ako kucam na recimo 3 minute i odsutkam igraca sa /unmute onda mi se timer nece "ubiti"
Dio skripte:
CMD:mute(playerid, params[])
{
new id, time, string, string2;
if(IsPlayerAdmin(playerid) || GetPVarInt(playerid, "Admin") >= 1)
{
if(sscanf(params, "ud", id, time)) return SendClientMessage(playerid, COLOR_WHITE, "Korištenje: /mute ");
else if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "Pogrešan ID");
else
if(PlayerMuted == 0)
{
PlayerMuted = 1;
SetTimerEx("UnMute",time*1000*60,0,"i", id);
format(string, sizeof(string), "Ušutkali ste %s!", GetName(id));
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string2, sizeof(string2), "Ušutkani ste od administratora %s!", GetName(playerid));
SendClientMessage(id, COLOR_LIME, string2);
}
else SendClientMessage(playerid, COLOR_WHITE, "IgraÄ je već uÅ¡utkan!");
}
else SendClientMessage(playerid, COLOR_KRED, "Niste autorizirani za korištenje ove komande!");
return 1;
}
CMD:unmute(playerid, params[])
{
new id, string, string2;
if(IsPlayerAdmin(playerid) || GetPVarInt(playerid, "Admin") >= 1)
{
if(sscanf(params, "u", id)) return SendClientMessage(playerid, COLOR_WHITE, "Korištenje: /unmute ");
else if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "Pogrešan ID");
else
if(PlayerMuted == 1)
{
PlayerMuted = 0;
format(string, sizeof(string), "Odšutkali ste %s!", GetName(id));
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string2, sizeof(string2), "Odšutkani ste od administratora %s!", GetName(playerid));
SendClientMessage(id, COLOR_LIME, string2);
}
else SendClientMessage(playerid, COLOR_KRED, "IgraÄ nije uÅ¡utkan!");
}
else SendClientMessage(playerid, COLOR_KRED, "Niste autorizirani za korištenje ove komande!");
return 1;
}
forward UnMute(id);
public UnMute(id)
{
PlayerMuted = 0;
SendClientMessage(id, COLOR_LIME, "Odšutkani ste!");
return 1;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
[Pomoc] KillTimerEx?
1,438
pregleda
7
postova
30. Jun 2011.
new timerubistva;
timerubistva = SetTimerEx("TvojaFunkcija", 2000, true, "i", playerid);
KillTimer(timerubistva);
Trebao bi znati gdje sta ide... Promeni ovo playerid ako treba u nesta drugo itd...
Ovo ti je samo primer..
timerubistva = SetTimerEx("TvojaFunkcija", 2000, true, "i", playerid);
KillTimer(timerubistva);
Trebao bi znati gdje sta ide... Promeni ovo playerid ako treba u nesta drugo itd...
Ovo ti je samo primer..
30. Jun 2011.
heh opet ti i mute... nemoj koristit timerex, zasto ne koristis jedan globalni u kojem ces loop kroz igrace i gledat jesu mute, ako jesu samo smanji varijablu za vec koliko zelis... razlog tome: pa recimo da mute 30 igraca, previse timera...
30. Jun 2011.
Dude wrote on June 30, 2011, 6:57 pm:
heh opet ti i mute... nemoj koristit timerex, zasto ne koristis jedan globalni u kojem ces loop kroz igrace i gledat jesu mute, ako jesu samo smanji varijablu za vec koliko zelis... razlog tome: pa recimo da mute 30 igraca, previse timera...
Mislim da neće razumjeti šta mu hoćeš objasniti, ali recimo da koristi varijablu
npr.
new timerCounter;
LocalTimer() // recimo da je namjesten na 1000 milisekundi odnosno na 1 sekundu
{
foreach(Player, i)
{
timerCounter ++;
if(timerCounter == 10) // 10 sekundi
{
// efekt
}
}
return true;
}Još jedna napomena, ne trebaš koristiti new string2[] jer to sve možeš napraviti sa jednim 'string' - om
30. Jun 2011.
hvala aleksandar
dude - ama brate ne otvaram ja CroHerzu pa da cu imat 200 online igraca, ak obudem imao 10 bit ce dobro -.-
hvala i tebi 265 ali lakse mi ej ovako
no aj jos zeru pomozite da ne otvaram temu
sad kad muta igraca onda on moze pricati, dodao sam i u OnPlayertext ali nece, evo OnPlayerText
public OnPlayerText(playerid, text[])
{
ChatLog(playerid, text);
if((strlen(text) < 3) || (text == '/') || (text == '#') || (text == '!')) return 1;
else
{
new offset;
new len;
for(new i = 0; i < MAX_WORDS; i++)
{
offset = strfind(text, swear, true);
if(offset > -1)
{
len = strlen(swear);
if(len < 3) break;
for(new y=0; y {
text[offset+y] = '*';
}
swearCount++;
new string;
format(string, sizeof(string), "Zabranjeno je psovati i vrijeđati, upozorenje %d/%d", swearCount, MAX_SWEARCOUNT);
SendClientMessage(playerid, COLOR_KRED, string);
if(swearCount >= MAX_SWEARCOUNT)
{
new name;
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "iStunt: Server je izbacio %s zbog psovanja i vrijeđanja!", name);
SendClientMessageToAll(COLOR_KRED, string);
TogglePlayerControllable(playerid, 0);
Kick(playerid);
break;
}
break;
}
}
}
if(PlayerMuted == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Nemožete priÄati, uÅ¡utkani ste!");
return 0;
}
return 1;
}
dude - ama brate ne otvaram ja CroHerzu pa da cu imat 200 online igraca, ak obudem imao 10 bit ce dobro -.-
hvala i tebi 265 ali lakse mi ej ovako
no aj jos zeru pomozite da ne otvaram temu
sad kad muta igraca onda on moze pricati, dodao sam i u OnPlayertext ali nece, evo OnPlayerText
public OnPlayerText(playerid, text[])
{
ChatLog(playerid, text);
if((strlen(text) < 3) || (text == '/') || (text == '#') || (text == '!')) return 1;
else
{
new offset;
new len;
for(new i = 0; i < MAX_WORDS; i++)
{
offset = strfind(text, swear, true);
if(offset > -1)
{
len = strlen(swear);
if(len < 3) break;
for(new y=0; y
text[offset+y] = '*';
}
swearCount++;
new string;
format(string, sizeof(string), "Zabranjeno je psovati i vrijeđati, upozorenje %d/%d", swearCount, MAX_SWEARCOUNT);
SendClientMessage(playerid, COLOR_KRED, string);
if(swearCount >= MAX_SWEARCOUNT)
{
new name;
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "iStunt: Server je izbacio %s zbog psovanja i vrijeđanja!", name);
SendClientMessageToAll(COLOR_KRED, string);
TogglePlayerControllable(playerid, 0);
Kick(playerid);
break;
}
break;
}
}
}
if(PlayerMuted == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Nemožete priÄati, uÅ¡utkani ste!");
return 0;
}
return 1;
}
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava