Jump to content

elke keer als de klok half en heel slaat 1000 krijgen

Geplaatst:
comment_1310931

ik probber al een tijdje te maken dat als de klok heel of half slaat je 1000 krijgt en word ge healed.

maar ik krijg het niet echt in elkaar. ik weet wel dat je. getplayertime en public en forward nodig hebt.

Het is me wel gelukt om omde 30 minuten het te laten gebeuren maar als je dan om kwart over joined dan krijg je om kwart voor.

ik hoop dat iemand mij kan helpen.

Featured Replies

Geplaatst:
comment_1310954

Je hebt ergens een timer staan die de klok update als het goed is (Real time klok, neem ik aan?).

Stel, je hebt dit:

new hours, minutes, seconds;
gettime(hours, minutes, seconds);

Dan voeg je bij die updater, zoals ik het nu maar even noem dit toe:

if(minutes == 0  || minutes == 30)
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
	GivePlayerMoney(i, 1000);
}
}

Bewerkt: door Big Boss

Geplaatst:
  • Auteur
comment_1311093

ik sanp het niet

heb nu dit:

bovenaan:

new hours, minutes;

bij OnGameModeInit

		SetTimer("PayDay", 30000, 1);

zodat het onderste om de 30 sec wordt uitgevoerd

onderaan:

forward PayDay();
public PayDay()
{
for(new i; i<MAX_PLAYERS; i++)
{
	if(IsPlayerConnected(i))
	{	   
			GetPlayerTime(i, hours, minutes);
			if(minutes == 39  || minutes == 38)
			{
					if(logged[i] == 1){
					new string[50];
					format(string, sizeof(string), "~r~ Payday!!!~n~~w~ you got $%d", 1000*level[i]);
					GameTextForPlayer(i, string, 6000, 1);
					GivePlayerMoney(i, 1000*level[i]);
					}
					else if(logged[i] == 0){
					SendClientMessage(i, COLOR_RED, "Sorry because you aren't logged in you don't get anything");
					}
			}
	}
}
}

het lukt wel voor elk halfuur dat je ingelogd bent wat geven dan moet

new hours, minutes;

weg en zit het onderste er zo uit:

forward PayDay();
public PayDay()
{
for(new i; i<MAX_PLAYERS; i++)
{
	if(IsPlayerConnected(i))
	{	   
			if(logged[i] == 1){
			new string[50];
			format(string, sizeof(string), "~r~ Payday!!!~n~~w~ you got $%d", 1000*level[i]);
			GameTextForPlayer(i, string, 6000, 1);
			GivePlayerMoney(i, 1000*level[i]);
			}
			else if(logged[i] == 0){
			SendClientMessage(i, COLOR_RED, "Sorry because you aren't logged in you don't get anything");
			}
	}
}
}

Bewerkt: door jorD1

Geplaatst:
comment_1315108

Die moet je dan veranderen in 1 minuut (60000), anders krijg je twee keer in die minuut die 1000. Wat je beter kunt doen is controleren of de seconden op 0 staan, en wel zo:

forward PayDay();
new hours, minutes, seconds;
public PayDay()
{
for(new i; i<MAX_PLAYERS; i++)
{
	if(IsPlayerConnected(i))
	{	   
			GetTime(hours, minutes, seconds);
			if(minutes == 39  || minutes == 38)
			{
					if(seconds == 0)
					{
							 if(logged[i] == 1)
							 {
							 new string[50];
							 format(string, sizeof(string), "~r~ Payday!!!~n~~w~ you got $%d", 1000*level[i]);
							 GameTextForPlayer(i, string, 6000, 1);
							 GivePlayerMoney(i, 1000*level[i]);
							 }
							 else if(logged[i] == 0)
							 {
							 SendClientMessage(i, COLOR_RED, "Sorry because you aren't logged in you don't get anything");
							 }
					}
			}
	}
}
}

Zoiets zou moeten werken :)

Mvg,

NeoSyp

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.