[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 ?

@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