Jump to content
  • 0

pomoc freeze na odpočet


Brunes

Dotaz

čaute, takže robil som prikaz na freeze a na odpočet. ale buguje mi to .. v timeroch sa moc nevyznam ..

dcmd_freezetime(playerid, params[])
{
   new pID;
new Cas;
	if(sscanf(params,"uu",pID,Cas))return SendClientMessage(playerid,ROT,"/freezetime [id] [0-60s]");
	if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Hrac neni pripojeny.");
if(Odpocet > 0) return SendClientMessage(playerid,  ORANGE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Odpocet jiz probiha.");
TogglePlayerControllable(pID, 0);
  	Odpocet = Cas;
  	OdpocetFreeze(pID);
  	SetTimer("OdpocetFreeze",1000, false);
  	return true;
}
public OdpocetFreeze(playerid)
{
new string[8];
	if(Odpocet <= 0)
 	{
 		GameTextForPlayer(playerid,"~r~UnFreeze!", 2000, 4);
     	TogglePlayerControllable(playerid, 1);
  	}else{
	format(string,8,"~g~%d",Odpocet);
     	GameTextForPlayer(playerid,string, 1000, 4);
     	Odpocet--;
     	SetTimer("OdpocetFreeze", 1000, false);
  	}
}

mam to dobre?.. Bug je takýže mi tam napíše číslo 3987 ked som dal na 2 sekundy..

som lama a čo?!

"help"

ďakujem

BrUn3S

Link to comment
Share on other sites

16 odpovědí na tuto otázku

Recommended Posts

  • 0
čaute, takže robil som prikaz na freeze a na odpočet. ale buguje mi to .. v timeroch sa moc nevyznam ..

dcmd_freezetime(playerid, params[])
{
   new pID;
new Cas;
	if(sscanf(params,"uu",pID,Cas))return SendClientMessage(playerid,ROT,"/freezetime [id] [0-60s]");
	if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Hrac neni pripojeny.");
if(Odpocet > 0) return SendClientMessage(playerid,  ORANGE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Odpocet jiz probiha.");
TogglePlayerControllable(pID, 0);
  	Odpocet = Cas;
  	OdpocetFreeze(pID);
  	SetTimer("OdpocetFreeze",1000, false);
  	return true;
}
public OdpocetFreeze(playerid)
{
new string[8];
	if(Odpocet <= 0)
 	{
 		GameTextForPlayer(playerid,"~r~UnFreeze!", 2000, 4);
     	TogglePlayerControllable(playerid, 1);
  	}else{
	format(string,8,"~g~%d",Odpocet);
     	GameTextForPlayer(playerid,string, 1000, 4);
     	Odpocet--;
     	SetTimer("OdpocetFreeze", 1000, false);
  	}
}

mam to dobre?.. Bug je takýže mi tam napíše číslo 3987 ked som dal na 2 sekundy..

som lama a čo?!

"help"

ďakujem

BrUn3S

hmm, nevidim v tom nic zle. A co ty buguje?

Link to comment
Share on other sites

  • 0

BrUn3s hlavne ako ty vzdy vsetko okomentujes, že by si to vedel každý sám spraviť!

k téme: zo scanff ti neporadim ale keby si do mal napr strlen(params) tak ti pomozem, sprav to tak ako hovorim a ked tam budes mat chybu opravim no dalej som to ani nepozeral ked som videl scanff

 

a preco new pID;?

skôr takto ne?

new pID = strval(params);

Link to comment
Share on other sites

  • 0

dcmd_freezetime(playerid, params[])
{
   new pID;
  new Cas;
  if(sscanf(params,"uu",pID,Cas))return SendClientMessage(playerid,ROT,"/freezetime [id] [0-60s]");
  if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Hrac neni pripojeny.");
if(Odpocet > 0) return SendClientMessage(playerid,  ORANGE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Odpocet jiz probiha.");
  TogglePlayerControllable(pID, 0);
     Odpocet = Cas;
     SetTimer("OdpocetFreeze",Cas*1000, false);
     return true;
}
public OdpocetFreeze(playerid)
{
  new string[8];
  if(Odpocet <= 0)
    {
       GameTextForPlayer(playerid,"~r~UnFreeze!", 2000, 4);
        TogglePlayerControllable(playerid, 1);
     }else{
     format(string,8,"~g~%d",Odpocet);
        GameTextForPlayer(playerid,string, 1000, 4);
        Odpocet--;
        SetTimer("OdpocetFreeze", 1000, false);
     }
}

 

Tu premenu Odpocet sprav pre hráča... NIE GLOBÁLNU

Link to comment
Share on other sites

  • 0
dcmd_freezetime(playerid, params[])
{
   new pID;
  new Cas;
  if(sscanf(params,"uu",pID,Cas))return SendClientMessage(playerid,ROT,"/freezetime [id] [0-60s]");
  if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Hrac neni pripojeny.");
if(Odpocet > 0) return SendClientMessage(playerid,  ORANGE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Odpocet jiz probiha.");
  TogglePlayerControllable(pID, 0);
     Odpocet = Cas;
     SetTimer("OdpocetFreeze",Cas*1000, false);
     return true;
}
public OdpocetFreeze(playerid)
{
  new string[8];
  if(Odpocet <= 0)
    {
       GameTextForPlayer(playerid,"~r~UnFreeze!", 2000, 4);
        TogglePlayerControllable(playerid, 1);
     }else{
     format(string,8,"~g~%d",Odpocet);
        GameTextForPlayer(playerid,string, 1000, 4);
        Odpocet--;
        SetTimer("OdpocetFreeze", 1000, false);
     }
}

 

Tu premenu Odpocet sprav pre hráča... NIE GLOBÁLNU

skúšal som to a stále nefunguje.. :(

Link to comment
Share on other sites

  • 0

 

QCMD:mute(playerid,params[])
{
    if(Alvl[playerid] >= 1)
    {
        new id = strval(params),
        string[128],
        minuty,
        duvod = strlen(params);
        if(sscanf(params,"udz",id,minuty,duvod)) return SCM(playerid,COLOR_RED,"Použití: /mute [iD] [MINUTY] [DUVOD]");
        else if(Mute[id] == true) return SCM(playerid,COLOR_RED,"Hráè již je umlèený");
        else if(Alvl[id] >= 1) return SCM(playerid,COLOR_RED,"Nemùžeš umlèet administrátora");
        else
        Mute[id] = true;
        Timer[id] = SetTimerEx("muted",minuty*60000,0,"i",id);
        format(string,sizeof(string),"Administrátor %s umlèel hráèe %s na %d minut s dùvodem %s",PlayerName(playerid),PlayerName(id),minuty,duvod);
        SCMTA(COLOR_RED,string);
    }else SCM(playerid,COLOR_RED,"Nemáš dostateèné práva pro tento pøíkaz");
    return true;
}

public muted(playerid)
{
    if(Mute[playerid] == true)
    {
        Mute[playerid] = false;
        SCM(playerid,COLOR_YELLOW,"A nyní již mùžeš zase psát !:)");
    }
    return true;
}

 

 

Já jsem dělal takto /mute, a funguje mi to na milisekundu přesně ..

Zkus podle tohoto návodu udělat i /freeze, pokud ti to nepůjde tak mi napiš do soukromé zprávy

Link to comment
Share on other sites

  • 0
ale on chce aby to ukazovalo čas koľko sekúnd tam ešte ostane...

 

 

Tak to je jiná ...

 

 

Jako globální proměnná:

new Timer[MAX_PLAYERS];

 

Mezi ten příkaz dej:

 

SetTimer("OdpocetFreeze",1000,true);
Timer[id] = SetTimerEx("Unfreeze",Cas*1000, false,"i",id);

 

A pak někam:

 

public OdpocetFreeze(playerid)
{
format(string,8,"~g~%d",Odpocet);
GameTextForPlayer(playerid,string, 1000, 1);
Odpocet--;
return true;
}

public Freeze(playerid)
{
KillTimer(Timer[playerid]);
GameTextForPlayer(playerid,"Unfreeze!", 1000, 4);
TogglePlayerControllable(playerid,true);
return true;
}

 

Zkus tohle a napiš

Link to comment
Share on other sites

  • 0
QCMD:freeze(playerid,params[])
{

       new id,minuty,;
       if(sscanf(params,"ud",id,minuty)) return SCM(playerid,COLOR_RED,"Použití: /freeze [iD] [MINUTY]");
       SetPVarInt(id,"Freeze",minuty)
       SetTimerEx("UnFreze",1000,false,"i",id);
TogglePlayerControllable(id,0);
 return true;
}

public UnFreze(playerid){
if(GetPVarInt(playerid,"Freeze") > 0){
SetPVarInt(playerid,"Freeze",GetPVarInt(playerid,"Freeze")-1);
new s[5];
format(s,5,"%d",GetPVarInt(playerid,"Freeze") );
GameTextForPlayer(playerid,s,999,1);
       SetTimerEx("UnFreze",1000,false,"i",playerid);
}else{
DeletePVar(playerid,"Freeze");
SCM(bol si unfeeznuty)
TogglePlayerControllable(id,1);
}
}

Link to comment
Share on other sites

  • 0
ale on chce aby to ukazovalo čas koľko sekúnd tam ešte ostane...

 

 

Tak to je jiná ...

 

 

Jako globální proměnná:

new Timer[MAX_PLAYERS];

 

Mezi ten příkaz dej:

 

SetTimer("OdpocetFreeze",1000,true);
Timer[id] = SetTimerEx("Unfreeze",Cas*1000, false,"i",id);

 

A pak někam:

 

public OdpocetFreeze(playerid)
{
format(string,8,"~g~%d",Odpocet);
GameTextForPlayer(playerid,string, 1000, 1);
Odpocet--;
return true;
}

public Freeze(playerid)
{
KillTimer(Timer[playerid]);
GameTextForPlayer(playerid,"Unfreeze!", 1000, 4);
TogglePlayerControllable(playerid,true);
return true;
}

 

Zkus tohle a napiš

 

zkúšal som to na iný príkaz a šlape to :) ďakujem :clap:

lenže je jedna chyba a to už asi nie v pawne tak isko aj u QWERA ukaže mi to čas ale sa obnoví po 8 sekundách aj ked tam mám že sa bude zobrazovať po 999ml.. Ale to už nevadí :)

QWER - Je to Super mám to tam a šlape to :) ďíky ;)

:clap: ďaujeem :):d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...