[Pomoc] Ad


Započeo Chuck:), Septembar 25, 2011, 18:31:13 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: GF (Nx)
Opis problema: Kako da napravim da igraci ne mogu dati /ad dok nema admina online?
Dio skripte:
Evo /ad:

CMD:ad(playerid, params[])
	{
		new string[200];
		new sendername[MAX_PLAYER_NAME];
		new oglastekst[128], payout;
		if(sscanf(params, "s[128]", oglastekst))
		{
			SCM(playerid, COLOR_GRAD2, "{168BFF}INFO: {959561} (/ad)vertise [tekst oglasa]");
			return 1;
		}
		else
		{
			 if(PlayerInfo[playerid][pMuted] == 1)
			{
					format(string, sizeof(string), " {FFFF80}Real Los Santos Life| {FF4444}Ne mozes oglasavati jer si utisan! Preostalo vrijeme: {FFFF80}%d sekundi(%d minuta)", PlayerInfo[playerid][pMuteTime], (PlayerInfo[playerid][pMuteTime]/60)+1);
				SCM(playerid, 0xFF4444FF, string);
				return 1;
			}
			if(PlayerInfo[playerid][pLevel] <= 2)
			{
			format(string, sizeof(string), " {FFFF80}Real Los Santos Life| {FF4444}Moras biti {FFFF80}lvl 3+ {FF4444}da bi mogao pisati oglase!");
				SCM(playerid, 0xFF4444FF, string);
					return 1;
			}
			if (oglasvrijeme >= 0 && (PlayerInfo[playerid][pAdmin] < 1))
			{
				format(string, sizeof(string), "   Sacekaj jos %d sekundi prije ponovnog postavljanja oglasa !",  oglasvrijeme);
				SendClientMessage(playerid, COLOR_GRAD2, string);
				return 1;

			}
			payout = cijenaoglasa1;
			if(GetPlayerCash(playerid) < payout)
	        {

	            format(string, sizeof(string), "* Nemas dovoljno novca!{FF5E5E} (Potrebno %d$) ", payout);
	            SendClientMessage(playerid, 0xB9B9B9FF, string);
	            return 1;
	        }

			for(new i = 0; i < sizeof(Dionice); i++)
			{
				if(Dionice[i][dType] == 1)
					{
						Dionice[i][dKasa1] += payout/10;
						Dionice[i][dKasa2] += payout/10;
						Dionice[i][dKasa3] += payout/10;
						Dionice[i][dKasa4] += payout/10;
						Dionice[i][dKasa5] += payout/10;
						Dionice[i][dKasa6] += payout/10;
						Dionice[i][dKasa7] += payout/10;
						Dionice[i][dKasa8] += payout/10;
						Dionice[i][dKasa9] += payout/10;
						Dionice[i][dKasa10] += payout/10;
						SaveDionice(i);
					}
			}
			new brojevi[] = { '1','2','3','4','5','6','7','8','9'};
			for(new b = 0; b < sizeof brojevi; b++)
			{
				new tekst = strlen(oglastekst);
				for(new i = 0; i<tekst; i++)
					{
					if(oglastekst[i] == brojevi[b])
					oglastekst[i] = '*' ;
					}
			}
			new ostring[128];
			GetPlayerName(playerid, sendername, sizeof(sendername));
			format(string, sizeof(string), "Oglasavanje | Korisnik: %s | Kontakt broj: %d", sendername,PlayerInfo[playerid][pPnumber]);
			OOCNews(0xA0BE73FF,string);
			format(string, sizeof(string), "{FFFFFF}-%s",  oglastekst);
			OOCNews(COLOR_WHITE,string);
			GivePlayerCash(playerid, - payout);
			format(ostring, sizeof(ostring), "%s -> Oglas: %s", sendername,oglastekst);
			OglasLog(ostring);
			format(string, sizeof(string), "~r~Postavio si Oglas!~n~~w~Cijena: %d$", payout);
			GameTextForPlayer(playerid, string, 5000, 5);
			if (PlayerInfo[playerid][pAdmin] < 1)
			{
			oglasvrijeme = 45;
			}
		}
	  return 1;
	}

Hvala,LP

U ovom kodu ja nevidim nista sto "zabranjuje" izvrsenje komande ako nema admina online :S
Jesi ti to testao IG pa vidio da nemozes dati oglas a nema admina ?

K4[Я]!K3

*

'Respect cannot be learned, it can only be earned.'

@FyoDoR, on to nema ali zeli napravit :/ čitaš li post :D

@pHon, jel to protiv reklamiranja?


Pa ajmo reci da je protiv..
Ovak
Nema Admina online i ne mogu kaznjavati nepravilne oglase i onda ne mogu igraci davati ad..
Kuzis?
Poslednja Izmena: Septembar 25, 2011, 19:42:33 POSLE PODNE od pHon

Recimo ja bi to napravio ovako:

stavim neku varijablu

new adminaOnline=0;


i sad loop
for(i=0;i<MAX_PLAYERS;i++)
{
        if(PlayerInfo[i][pAdmin] == 1) adminaOnline++;
}


i onda stavis ovako:

if(adminaOnline==0) SendClientMessage(playerid,-1,"Nema online admina!!!");



evo stavljeno u tvoju komandu:

CMD:ad(playerid, params[])
	{
	    new adminaOnline=0;
	    for(i=0;i<MAX_PLAYERS;i++)
		{
        	if(PlayerInfo[i][pAdmin] == 1) adminaOnline++;
		}
		if(adminaOnline==0) SendClientMessage(playerid,-1,"Nema online admina!!!");
		else
	    {
			new string[200];
			new sendername[MAX_PLAYER_NAME];
			new oglastekst[128], payout;
			if(sscanf(params, "s[128]", oglastekst))
			{
				SCM(playerid, COLOR_GRAD2, "{168BFF}INFO: {959561} (/ad)vertise [tekst oglasa]");
				return 1;
			}
			else
			{
				 if(PlayerInfo[playerid][pMuted] == 1)
				{
						format(string, sizeof(string), " {FFFF80}Real Los Santos Life| {FF4444}Ne mozes oglasavati jer si utisan! Preostalo vrijeme: {FFFF80}%d sekundi(%d minuta)", PlayerInfo[playerid][pMuteTime], (PlayerInfo[playerid][pMuteTime]/60)+1);
					SCM(playerid, 0xFF4444FF, string);
					return 1;
				}
				if(PlayerInfo[playerid][pLevel] <= 2)
				{
				format(string, sizeof(string), " {FFFF80}Real Los Santos Life| {FF4444}Moras biti {FFFF80}lvl 3+ {FF4444}da bi mogao pisati oglase!");
					SCM(playerid, 0xFF4444FF, string);
						return 1;
				}
				if (oglasvrijeme >= 0 && (PlayerInfo[playerid][pAdmin] < 1))
				{
					format(string, sizeof(string), "   Sacekaj jos %d sekundi prije ponovnog postavljanja oglasa !",  oglasvrijeme);
					SendClientMessage(playerid, COLOR_GRAD2, string);
					return 1;

				}
				payout = cijenaoglasa1;
				if(GetPlayerCash(playerid) < payout)
		        {

		            format(string, sizeof(string), "* Nemas dovoljno novca!{FF5E5E} (Potrebno %d$) ", payout);
		            SendClientMessage(playerid, 0xB9B9B9FF, string);
		            return 1;
		        }

				for(new i = 0; i < sizeof(Dionice); i++)
				{
					if(Dionice[i][dType] == 1)
						{
							Dionice[i][dKasa1] += payout/10;
							Dionice[i][dKasa2] += payout/10;
							Dionice[i][dKasa3] += payout/10;
							Dionice[i][dKasa4] += payout/10;
							Dionice[i][dKasa5] += payout/10;
							Dionice[i][dKasa6] += payout/10;
							Dionice[i][dKasa7] += payout/10;
							Dionice[i][dKasa8] += payout/10;
							Dionice[i][dKasa9] += payout/10;
							Dionice[i][dKasa10] += payout/10;
							SaveDionice(i);
						}
				}
				new brojevi[] = { '1','2','3','4','5','6','7','8','9'};
				for(new b = 0; b < sizeof brojevi; b++)
				{
					new tekst = strlen(oglastekst);
					for(new i = 0; i<tekst; i++)
						{
						if(oglastekst[i] == brojevi[b])
						oglastekst[i] = '*' ;
						}
				}
				new ostring[128];
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "Oglasavanje | Korisnik: %s | Kontakt broj: %d", sendername,PlayerInfo[playerid][pPnumber]);
				OOCNews(0xA0BE73FF,string);
				format(string, sizeof(string), "{FFFFFF}-%s",  oglastekst);
				OOCNews(COLOR_WHITE,string);
				GivePlayerCash(playerid, - payout);
				format(ostring, sizeof(ostring), "%s -> Oglas: %s", sendername,oglastekst);
				OglasLog(ostring);
				format(string, sizeof(string), "~r~Postavio si Oglas!~n~~w~Cijena: %d$", payout);
				GameTextForPlayer(playerid, string, 5000, 5);
				if (PlayerInfo[playerid][pAdmin] < 1)
				{
				oglasvrijeme = 45;
				}
			}
		}
	  return 1;
	}


ovo bi trebalo radit, al mislim da ima i bolje rijesenje ;)

nisam kompajlao komandu tak da neznam dal radi, ak neradi onda sam vjerojatno sjebo neku zagradu

nadam se da sam pomogao :)


@Fyodor: takve ko ti ja jednostavno ne kuzim, sta imas odgovarat ak neznas, i ak ne kuzis njegovo pitanje? procitaj jos par puta i razumijet ces, ak jos uvijek ne razumijes, onda imas problema s razumijevanjem Hrvatskog jezika
Poslednja Izmena: Septembar 25, 2011, 20:31:15 POSLE PODNE od #marcus.

Registrirajte se na Pecalicu! (Rewards1 & Prizerebel tip stranice samo sto je ova za Balkan!) Molim preko ovog linka :)

Speedo & Fuel by #marcus.

Što se tiče skriptanja mogu vam pomoći sa manjim problemima, za nešto veliko me ne ispitujte!

C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : error 017: undefined symbol "i"
C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : warning 205: redundant code: constant expression is zero
C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : error 017: undefined symbol "i"
C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : warning 215: expression has no effect
C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : error 001: expected token: ")", but found ";"
C:\Documents and Settings\PC\Desktop\Real Los Santos Life\gamemodes\RLRP.pwn(28726) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Provjeri zagrade i izmijeni ovo (nisam jedno vrijeme skripto i sad radimo c++ u skoli i rasturam ga i zaboravio sam nesto pawna xD, slicni su jezici ali ne i isti  ;) )

for(new i=0;i<MAX_PLAYERS;i++) //znaci stavi new jos

Registrirajte se na Pecalicu! (Rewards1 & Prizerebel tip stranice samo sto je ova za Balkan!) Molim preko ovog linka :)

Speedo & Fuel by #marcus.

Što se tiče skriptanja mogu vam pomoći sa manjim problemima, za nešto veliko me ne ispitujte!

a errora al i dalje mogu dat ad :D