[POMOC]Plata


Započeo Dzole1, Oktobar 23, 2014, 22:49:53 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:BExtazy
Detaljan opis problema:Vec 2 nedelje razbijam glavu kako da resim da onaj ko igra vise od 10 minuta dobije platu, a onaj ko igra manje ne..Da li iko zna u cemu gresim...
Dio skripte: Dole u kodu ima
Neke slike/video za lakse dobivanje pomoci(neobavezno): /

public PayDay()
{
	for(new i = 1; i < MAX_ADMINS; i++)
	{
		if(!IsPlayerConnected(GetPlayerIDS(AdminInfo[i][aIme])))
		{
			AdminInfo[i][aNeakt] ++;
			SaveAdmin(i);
		}
	}
	if(dupliexp == 1)
	{
 		for(new i = 0; i < MAX_IGRACA; i++)
		{
			if(IsPlayerConnected(i))
			{
 				if(PI[i][pLevel] > 0)
 				{
				PI[i][pExp]++;
				}
			}
		}
	}
	if(dupliexpn == 1)
	{
 		for(new i = 0; i < MAX_IGRACA; i++)
		{
			if(IsPlayerConnected(i))
			{
 				if(PI[i][pLevel] < 4)
 				{
				PI[i][pExp]++;
				}
			}
		}
	}
	for(new i = 0; i < MAX_IGRACA; i++)
	{
		if(IsPlayerConnected(i))
		{
		    if(PI[i][pLevel] > 0)
		    {
			    if(MoneyMessage[i]==1)
				{
				    SendClientMessage(i, COLOR_LIGHTRED, "Niste platili vas dug, vreme je za zatvor.");
				    GameTextForPlayer(i, "~r~Uhapsen si!", 2000, 1);
		            JBC_TogglePlayerControllable(i, 0);
                    new djura = random(sizeof(gZatvorSpawn));
		        	JBC_SetPlayerPos(i, gZatvorSpawn[djura][0], gZatvorSpawn[djura][1], gZatvorSpawn[djura][2]);
		            PI[i][pJailed] = 1;
		            SetPlayerVirtualWorld(i, 1);
		            JBC_ResetPlayerWeapons(i);
					PI[i][pJailTime] += 300;
					}
					if(PI[i][pPayDay] >= 5)
					{
				    Tax += TaxValue;//Should work for every player online
				    PI[i][pAccount] -= TaxValue;
				    
				    //POREZ
	                new vdracun;
					new gdracun;
					new ebill;
					new interest;
					new iporez;
					if(PI[i][pPhousekey] != 2555)
					{
					vdracun += 25 + random(20);
					gdracun += 27 + random(20);
					ebill += 30 + random(30);
					iporez += 50 + random(50);
					}
			 		if(PI[i][pPbiskey] != 255)
					{
					vdracun += 25 + random(20);
					gdracun += 27 + random(20);
					ebill += 30 + random(30);
					iporez += 50 + random(50);
					}
					if(PI[i][pPstankey] != 255)
					{
					vdracun += 25 + random(20);
					gdracun += 27 + random(20);
					ebill += 30 + random(30);
					iporez += 50 + random(50);
					}
					PI[i][pAccount] -= vdracun + gdracun + ebill;
					PI[i][pAccount] -= iporez;
					SCMF(i, -1, "** Vas ukupan porez je: $%d, taj novac vam je oduzet iz banke!",vdracun + gdracun + ebill);
					
					if(PI[i][pVip] == 4 || PI[i][pOSC] >= 1)
                    {
                        PI[i][pExp]++;
	                }
	                if(PI[i][pOSC] > 0)
				    {
						SCM(i, BELA, "  Ti si administrator i dobio si 2000$ na bankovni racun !");
						PI[i][pAccount] += 2000;
					}
					if(PI[i][pHelper] > 0)
				    {
						SCM(i, BELA, "  Ti si helper i dobio si 1500$ na bankovni racun !");
						PI[i][pAccount] += 1500;
					}
				    if(PI[i][pOSC] < 1 && PI[i][pMember] > 0)
				    {
						SCM(i, BELA, "  Ti si clan organizacije i dobio si 300$ na bankovni racun !");
						PI[i][pAccount] += 300;
					}
					if(PI[i][pOSC] < 1 && PI[i][pLeader] > 0)
				    {
						SCM(i, BELA, "  Ti si lider organizacije i dobio si 500$ na bankovni racun !");
						PI[i][pAccount] += 500;
					}
					
					new randovann = random(300)+300;
					interest = randovann;
                    PI[i][pExp]++;
					PlayerPlayMusic(i);
					PI[i][pAccount] += interest;
					
					new smrdic1[256];
		            new smrdic[513];
		            new stringpl[64];
		            format(smrdic1,256,"{F3FF02}Stecen Interes: {FFFFFF}$%d\n{F3FF02}Racun za struju: {FFFFFF}$%d\n{F3FF02}Racun za vodu: {FFFFFF}$%d\n{F3FF02}Racun za komunalije: {FFFFFF}$%d\n{F3FF02}Porez na imovinu: {FFFFFF}$%d\n", interest, ebill, vdracun, gdracun, iporez);
		            format(smrdic,sizeof(smrdic),"%s",smrdic1);
					format(stringpl, sizeof(stringpl), "~y~Plata");
					SPD(i,6,DIALOG_STYLE_MSGBOX,"  IZVESTAJ NARODNE BANKE",smrdic,"OK","");
					GameTextForPlayer(i, stringpl, 5000, 1);
					PI[i][pPayCheck] = 0;
					PI[i][pConnectTime]++;
					if(PI[i][pDonateRank] > 0)
					{
					    PI[i][pPayDayHad] += 1;
					    if(PI[i][pPayDayHad] >= 5)
					    {
                           PI[i][pExp]++;
				     	   PI[i][pPayDayHad] = 0;
					    }
					}
					}
					else
					{
				    SendClientMessage(i, COLOR_WHITE, "* Niste igrali dovoljno dugo da biste dobili platu.");
					}
					new nxtlevel = PI[i][pLevel]+1;
	                new expamount = nxtlevel*levelexp;
	                new infostring[128];
					if (PI[i][pExp] >= expamount)
				    {
					PI[i][pLevel]++;
					PI[i][pExp] = 0;
					PI[i][gPupgrade] = PI[i][gPupgrade]+2;
					new rucakxd[300];
					format(rucakxd, sizeof(rucakxd), "~g~LEVEL UP~n~~w~Sada si level %d !", nxtlevel);
					GameTextForPlayer(i, rucakxd, 5000, 1);
					format(infostring, 256, "[ LEVEL UP ] Sada ste level %d. Cestitamo!", nxtlevel);
					SendClientMessage(i, COLOR_RED, infostring);
					format(infostring, 256, "Imate %d nepotrosenih Upgrade Poena",PI[i][gPupgrade]);
					SendClientMessage(i, BELA, infostring);
					SetPlayerScore(i, PI[i][pLevel]);
				    }
			  }
		 }
	}
	SaveAccounts();
	return 1;
}

Ovo ti je vrlo lako za srediti, sve sto trebas jeste da napravis jednu varijablu i nju onda stavis u neki tajmer koji vec imas recimo od 1 sec sto se vrti i sredis onda u callbacku PayDay da u koliko ima toliko i toliko provedenog vremena na Serveru da mu tek onda daje platu...

Pazi ima vec definisano sve, i npr desi se da neko ko bude 10 minuta na srw ne dobije platu, tj pise mu da nije igrao dovoljno dugo, a neko ko je igrao 2 minuta dobije, to me muci

Cekaj jel tu podeseno da moras igrati 10 min da bih dobio platu ili vise od 10 min mozda tipa 30min.. Mislim da na Extazy modu treba vise od 10 min a mozda se i varam, i kazi mi jel ti sacuvavas tu varijablu koja ti meri vreme na srwu a preko toga daje platu ? Proveri ti tu varijablu na koliko se ona povecava tj kolko vremena zaista treba za platu...

Namestena je na 5 minuta, sad cu ti poslati deo, ovo bi trebalo da predstavlja timer da ne bude iskoriscavanja
if(PI[i][pPayDay] < 6) { PI[i][pPayDay] += 1; } //+ 5 min to PayDay anti-abuse
, pa onda ima
if(PI[i][pPayDay] >= 5)
					{
				    Tax += TaxValue;//Should work for every player online
da li si na to mislio?

Da to je to e sada mi kazi na kolko se taj tajmer gde je to pokrece ?

Ne spominje se nigde samo je tako definisani, mozes li mi napisati sta da dodam ?

Hm bas nigde se ne spominje u nekom tajmeru ? Pazi verovatno imas u tom Extazy modu public Production e sada vidi na koliko se on vrti trebalo bi da to bude ovako
SetTimer("Production", 300000, 1);
a to znaci 5min odnosno svakih 5 min da se pokrene i odradi sta mu zadas... I onda jednostavno to sto si mi sada bio dao samo ubacis u ovaj callback i onda u PayDay sredis na koliko ce se plata dobijati ako stavis
if (PlayerInfo[i][pPayDay] == 2)
onda bi to znacilo 10 min jer na 5 pin ti dobijas varijablu +1 sto bi znacilo 2 = 10 min ako ti tako hoces... Mozda ti nisam najbolje pojasnio al mislim da ces razumeti...

Izvini brt za ovo ali ima toga definisano nego nisam znao da na to mislis Sorry evo imam ovde definisano
public Production()
{
	//new string[256];
	for(new i = 0; i < MAX_IGRACA; i++)
	{
		if(IsPlayerConnected(i))
		{
                if(PI[i][pPayDay] < 6) { PI[i][pPayDay] += 1; } //+ 5 min to PayDay anti-abuse   
		}
	}
}

i definisan je timer bas kao sto si ti poslao na 300000, ima ovde tu kao anti-abuse i ono dodato na platu, isto sto si i ti poslao, ali opet kazem ti nije mi jasno kako nece lepo da pise igracu da je dobio platu iako igra 10 minuta a meni koji igram 2 minuta daje...

Onda u callback PayDay mesto ovoga
if(PI[i][pPayDay] >= 5)
stavi
if(PI[i][pPayDay] >= 2)
i radice ti ako je igrac na srwu namanje 10 min.. A to sto si ti dobio a bio 2 min je zato sto se ova varijabla sacuvava i vec si imao dosta toga sacuvano i kad si usao vec si imao sacuvane ove poene i dobio si platu... Valjda ti je sada sve jasnije :D
Poslednja Izmena: Oktobar 24, 2014, 17:39:55 POSLE PODNE od â–… â–† â–ˆ Rudimental â–ˆ â–† â–…

Opet dobijam platu iako dodjem 2 minuta pred platu ne znam sta cu...