[Pomoc] KillTimerEx?

Započeo System32
30. Jun 2011.
1,438
pregleda
7
postova
Mr.Lowrey
5
Godfather
30. Jun 2011.
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):
fixman
5
Underboss
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..
Dude
5
Crime Lord
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...
taft
5
Underboss
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
Mr.Lowrey
5
Godfather
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;
}
taft
5
Underboss
30. Jun 2011.
Zato jer ti je na kraju return 1; znači ipak je ishod točan odnosno izvede se, stavi zadnji return na false i ja mislim da bi onda trebalo raditi.
Mr.Lowrey
5
Godfather
30. Jun 2011.
ipak neće :S

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha