Jump to content
  • 0

pomoc Pomoc s timerem


LemoNSK

Dotaz

Muže mi někdo do p*dele vysvětlit proč mi Timer nefunguje, když tam nemám žádne errory? Jako všechny errory, které tam byly jsem opravil ale tohle nechápu, když budete vědet co s tím dejte vědět.

 

Nahoře v modu:

new RandomCode1[MAX_PLAYERS];
new RandomCode2[MAX_PLAYERS];
new RandomCode3[MAX_PLAYERS];
new RandomCodeStopTimer[MAX_PLAYERS];


forward Help(playerid);
forward RandomCode();
forward RandomCodeStop();

Vytvořil jsem samostatné publiky:

public RandomCode()
{
new string[256];
new rcode = random(3);
switch(rcode)
{
	case 0:
	{
		for (new i = 0; i < GetMaxPlayers(); i++)
		{
			RandomCode1[i] = 1;
			RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false);
		}
	format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' a5bXOq56i '' získá {33AA33}$50 000{FFFFFF}.");
	SendClientMessageToAll(0xFFFFFFAA,string);
	}
	case 1:
	{
		for (new i = 0; i < GetMaxPlayers(); i++)
	 	{
			RandomCode2[i] = 1;
			RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false); 
		} 
		format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' eBo13zEtp '' získá {33AA33}$55 000{FFFFFF}.");
		SendClientMessageToAll(0xFFFFFFAA,string);
	}
	case 2:
	{
		for (new i = 0; i < GetMaxPlayers(); i++)
		{
			RandomCode3[i] = 1;
			RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false); // Za 2 minuty náhodný text vypne pokud nikdo neodpovi.
		}
		format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' fIXk54fg6 '' získá {33AA33}$35 000{FFFFFF}.");
		SendClientMessageToAll(0xFFFFFFAA,string);
	}
}
return 1;
}


public RandomCodeStop()
{
		SendClientMessageToAll(-1, "[ {C2A2DA}Text{FFFFFF} ] Nikdo nenapsal náhodný text do 2 minut, náhodný text byl zrušen.");
		for (new i = 0; i < GetMaxPlayers(); i++)
		{ 
			RandomCode1[i] = 0;
			RandomCode2[i] = 0; 
			RandomCode3[i] = 0; 
		}
	}
	return 0;
}

Potom jsem přidal texty nasledně do OnPlayerText() jsem přidal tohle:

	new string[120];
	new Jmeno[MAX_PLAYER_NAME];
	GetPlayerName(playerid,Jmeno,sizeof(Jmeno));

	if(RandomCode1[playerid] == 1)
	{ 
		if(!strcmp(text, "a5bXOq56i", true))
		{
			format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' a5bXOq56i '' hráč %s získal {33AA33}$50 000{FFFFFF}.",Jmeno);
			SendClientMessageToAll(0xFFFFFFAA,string);
			GivePlayerMoney(playerid, 50000);
			for (new i = 0; i < GetMaxPlayers(); i++)
			{
				KillTimer(RandomCodeStopTimer[i]);
				RandomCode1[i] = 0;
			}
		}
	}

	if(RandomCode2[playerid] == 1)
	{ 
		if(!strcmp(text, "eBo13zEtp", true))
		{
			format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' eBo13zEtp '' hráč %s získal {33AA33}$55 000{FFFFFF}.",Jmeno);
			SendClientMessageToAll(0xFFFFFFAA,string);
			GivePlayerMoney(playerid, 55000);
			for (new i = 0; i < GetMaxPlayers(); i++)
			{
				KillTimer(RandomCodeStopTimer[i]);
				RandomCode2[i] = 0;
			}
		}
	}

	if(RandomCode3[playerid] == 1)
	{
		if(!strcmp(text, "fIXk54fg6", true))
		{
				format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' fIXk54fg6 '' hráč %s získal {33AA33}$35 000{FFFFFF}.",Jmeno);
				SendClientMessageToAll(0xFFFFFFAA,string);
				GivePlayerMoney(playerid, 35000);
				for (new i = 0; i < GetMaxPlayers(); i++)
				{
					KillTimer(RandomCodeStopTimer[i]);
					RandomCode3[i] = 0;
				}
		}
	}

A ted k tomu problému. Nic to nepíše maximalně když du na server tak to nic neděla nic to nepíše. Prosím o pomoc

Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

Nahoře v modu:

 


new RandomCode[3];
new RandomCodeStopTimer;


forward Help(playerid);
forward RandomCode();
forward RandomCodeStop();

 

 

Publiky:

 

 

public RandomCode()
{
new string[128];
new rcode = random(3);
switch(rcode)
{
    case 0:
    {
            RandomCode[0] = 1;
            RandomCodeStopTimer = SetTimer("RandomCodeStop", 120000, false);
    format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' a5bXOq56i '' získá {33AA33}$50 000{FFFFFF}.");
    SendClientMessageToAll(0xFFFFFFAA,string);
    }
    case 1:
    {
            RandomCode[1] = 1;
            RandomCodeStopTimer = SetTimer("RandomCodeStop", 120000, false);
        format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' eBo13zEtp '' získá {33AA33}$55 000{FFFFFF}.");
        SendClientMessageToAll(0xFFFFFFAA,string);
    }
    case 2:
    {
            RandomCode[2] = 1;
            RandomCodeStopTimer = SetTimer("RandomCodeStop", 120000, false); // Za 2 minuty náhodný text vypne pokud nikdo neodpovi.
        format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' fIXk54fg6 '' získá {33AA33}$35 000{FFFFFF}.");
        SendClientMessageToAll(0xFFFFFFAA,string);
    }
}
return 1;
}


public RandomCodeStop()
{
        SendClientMessageToAll(-1, "[ {C2A2DA}Text{FFFFFF} ] Nikdo nenapsal náhodný text do 2 minut, náhodný text byl zrušen.");
            RandomCode[0] = 0;
            RandomCode[1] = 0;
            RandomCode[2] = 0;
    return 0;
}

 

 

 

 do OnPlayerText() :

 

 

new string[120];
    new Jmeno[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Jmeno,sizeof(Jmeno));

    if(RandomCode[0] == 1)
    {
        if(!strcmp(text, "a5bXOq56i", true))
        {
            format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' a5bXOq56i '' hráč %s získal {33AA33}$50 000{FFFFFF}.",Jmeno);
            SendClientMessageToAll(0xFFFFFFAA,string);
            GivePlayerMoney(playerid, 50000);
            KillTimer(RandomCodeStopTimer);
            RandomCode[0] = 0;
        }
    }

    else if(RandomCode[1] == 1)
    {
        if(!strcmp(text, "eBo13zEtp", true))
        {
            format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' eBo13zEtp '' hráč %s získal {33AA33}$55 000{FFFFFF}.",Jmeno);
            SendClientMessageToAll(0xFFFFFFAA,string);
            GivePlayerMoney(playerid, 55000);
            KillTimer(RandomCodeStopTimer);
            RandomCode[1] = 0;
        }
    }

    else if(RandomCode[2] == 1)
    {
        if(!strcmp(text, "fIXk54fg6", true))
        {
                format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' fIXk54fg6 '' hráč %s získal {33AA33}$35 000{FFFFFF}.",Jmeno);
                SendClientMessageToAll(0xFFFFFFAA,string);
                GivePlayerMoney(playerid, 35000);
                KillTimer(RandomCodeStopTimer);
                RandomCode[2] = 0;
        }
    }

 

 

 

Doufám že máš pak někde (OnGameModeInit) SetTimer("RandomCode", 300000, true); nebo podobně

Edited by Matess
Link to comment
Share on other sites

  • 0

~> Další s cyklusem pro všechny hráče... Proč proboha? Kde jste tuhle blbost viděli?

~> Založil si místo proměnné pro hráče, obyčejnou boolenovou bez pole. A s ní kontroluj jestli jede code nebo ne (true/false).

~> Také stačí jeden timer, který začne spolu s nastavením proměnné na true.

~> V OnPlayerText() už jen pak kontroluje s jestli napsal ten kód správně. A jestli jo, zastavíš timer, nastavíš proměnnou na false a dáš mu odměnu. Hotovo, easy. Nikde nic není třeba něco s cyklusem.

SkiBig18 to čo si aj mne podobne radel nefungoval vôbec :d to moje aspon išlo ale zas to nedalo na 0

Link to comment
Share on other sites

  • 0

~> Jo, protože sis to blbě poupravil už podle svého... Také kdo ví, co si tam ještě dodělat/oddělal.

j po upravel ale potom som to dal presne ako ty si to dal na Pawno a dal iba CTRL + C a potom som dal CTRL + V a to iste :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...