Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 26, 2012, 19:31:17 POSLE PODNE

Naslov: [Pomoc] /mutead
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 26, 2012, 19:31:17 POSLE PODNE
Skripta koju koristim:Moj gm
Detaljan opis problema: E ovako napravio sam /mutead na vreme i sad kad nekom dam to vreme mu se nepomera mora da ode relog, kako da namestim da kad vreme koje mu ja stavim kad prodje da moze opet da daje /ad ?
Dio skripte:
if(strcmp(cmd, "/mutead", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koristi: /mutead [ID Igraca/Deo Imena] [vreme] [razlog]");
return 1;
}
new playa;
new time;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
time = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1340)
{
    if(IsPlayerConnected(playa))
    {
        if(playa != INVALID_PLAYER_ID)
        {
        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
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, "Koristi: /mutead [ID Igraca/Deo Imena] [vreme] [razlog]");
return 1;
}
if(PlayerInfo[playa][pMuted] == 0)
{
format(string, sizeof(string), "* {FFFFFF}%s {00C0FF}ti je oduzeo pravo na /ad {FFFFFF}%d {00C0FF}minuta | Razlog: {FFFFFF}%s",sendername,time,(result));
SendClientMessage(playa, COLOR_WHITE, string);
format(string, sizeof(string), "* Ucutkao si "COL_RED"%s.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerInfo[playa][pADMute] = 1;
PlayerInfo[playa][pADMuteTime] = time*60;
format(string, sizeof(string), ""rd" %s je zabranjeno /ad od %s na %d minuta(s) | Razlog: "rd"%s",giveplayer ,sendername,time,(result));
ABroadCast(COLOR_WHITE,string,1);
printf("%s je ucutkao %s",sendername,  giveplayer);
}
else
{
PlayerInfo[playa][pADMute] = 0;
PlayerInfo[playa][pADMuteTime] = 0;
format(string, sizeof(string), ""rd"{FFFFFF} "rd"%s {FFFFFF}je skinuta zabranu /ad od "rd"%s!",giveplayer ,sendername);
ABroadCast(COLOR_WHITE,string,1);
printf(""COL_RED"%s unsilenced %s",sendername,  giveplayer);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1," Niste ovlasteni da koristite tu komandu !");
}
}
return 1;
}
Naslov: Odg: [Pomoc] /mutead
Poruka od: rloveution poslato Jun 26, 2012, 21:21:07 POSLE PODNE
prije sveg napravi kopiju pwn fajla jer ne garantujem da ce radit malo sam zahrdaljo xD

na vrh skripte

forward UnmuteADt(playa)



komandu zamjeni sa
if(strcmp(cmd, "/mutead", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koristi: /mutead [ID Igraca/Deo Imena] [vreme] [razlog]");
return 1;
}
new playa;
new time;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
time = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1340)
{
    if(IsPlayerConnected(playa))
    {
        if(playa != INVALID_PLAYER_ID)
        {
        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
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, "Koristi: /mutead [ID Igraca/Deo Imena] [vreme] [razlog]");
return 1;
}
if(PlayerInfo[playa][pMuted] == 0)
{
format(string, sizeof(string), "* {FFFFFF}%s {00C0FF}ti je oduzeo pravo na /ad {FFFFFF}%d {00C0FF}minuta | Razlog: {FFFFFF}%s",sendername,time,(result));
SendClientMessage(playa, COLOR_WHITE, string);
format(string, sizeof(string), "* Ucutkao si "COL_RED"%s.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerInfo[playa][pADMute] = 1;
PlayerInfo[playa][pADMuteTime] = time*60000;
format(string, sizeof(string), ""rd" %s je zabranjeno /ad od %s na %d minuta(s) | Razlog: "rd"%s",giveplayer ,sendername,time,(result));
ABroadCast(COLOR_WHITE,string,1);
printf("%s je ucutkao %s",sendername,  giveplayer);
SetTimer("UnmuteADt(playa)", 1000, true);
}
else
{
PlayerInfo[playa][pADMute] = 0;
PlayerInfo[playa][pADMuteTime] = 0;
format(string, sizeof(string), ""rd"{FFFFFF} "rd"%s {FFFFFF}je skinuta zabranu /ad od "rd"%s!",giveplayer ,sendername);
ABroadCast(COLOR_WHITE,string,1);
printf(""COL_RED"%s unsilenced %s",sendername,  giveplayer);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1," Niste ovlasteni da koristite tu komandu !");
}
}
return 1;
}




na dno skripte dodaj


public UnmuteADt(playa)
{   
      if(PlayerInfo[playa][pADMuteTime] == 1000  )
      {
       KillTimer(timer1);
       SendClientMessage(playa,COLOR_RED,"Sada opet mozete davati oglase.);
       PlayerInfo[playa][pADMute] = 0;
       PlayerInfo[playa][pADMuteTime] = - 1000;"
       return 1;
      }
      else
      {
      PlayerInfo[playa][pADMuteTime] = - 1000;
      }

return 0;
}
Naslov: Odg: [Pomoc] /mutead
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 26, 2012, 21:52:56 POSLE PODNE
Netreba meni unmutead posto sam napravim da mu odredim vreme na kolko je mute al to vreme neprolazi...
Naslov: Odg: [Pomoc] /mutead
Poruka od: rloveution poslato Jun 26, 2012, 22:19:29 POSLE PODNE
unmutead ti je funkcija koja se poziva svako 1 sekunde i sa PlayerInfo[playa][pADMuteTime] skida 1000 milisekundi sto je 1 sekunda :)
kada unmutead tajmer dodje do tog da je pADMuteTime == 1000 tj da je ostala jos jedna sekunda skida tu jednu sekundu i skida taj ad mute..

da si procitao kod mozda bi i shvatio ;)