Skripta koju koristim:Blood City HardPlay
Detaljan opis problema:Mogu dati bezbroj oglasa na /ad kako da napravim timer da se moze svake minute dati oglas!!!
Dio skripte: if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Niste se prijavili !");
return 1;
}
if(PlayerInfo[playerid][pLevel] < 2)
{
SendClientMessage(playerid, COLOR_GREY, "[PAZNJA] Morate biti Level 2 da bi davali oglas !");
return 1;
}
if(!PlayerToPoint(5.0,playerid,1461.2137,-1011.1375,26.8438))
{
SendClientMessage(playerid, COLOR_GREY, "[PAZNJA] Niste na mjestu davanja oglasa !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
strreplace(sendername, '_', ' ');
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: (/ad)vertise [tekst oglasa]");
}
if ((!adds) && (PlayerInfo[playerid][pAdmin] < 1))
{
format(string, sizeof(string), "Molimo pokusajte jer treba da prodje 60 sekundi izmedju oglasa !");
SendClientMessage(playerid, COLOR_GRAD2, string);
return 1;
}
new payout = idx * 5;
if(GetPlayerMoney(playerid) < payout)
{
format(string, sizeof(string), "* Vi ste iskoristili %d slova sto kosta $%d, nemate dovoljno novca.", offset, payout);
SendClientMessage(playerid, COLOR_GREEN, string);
return 1;
}
new brojevi[] = { '1','2','3','4','5','6','7','8','9'};
for(new b = 0; b < sizeof brojevi; b++)
{
new tekst = strlen(result);
for(new i = 0; i<tekst; i++)
{
if(result == brojevi)
result = '*' ;
}
}
new string123[300];
JBC_GivePlayerMoney(playerid, - payout);
SBizzInfo[7][sbTill] += payout;
ExtortionSBiz(7, payout);
format(string, sizeof(string), "{80C8FE}[OGLASNIK] {498C12}%s {80C8FE}Tel: %d {498C12}( %s )", result, PlayerInfo[playerid][pPnumber], sendername);
OOCNews(TEAM_GROVE_COLOR,string);
// format(string, sizeof(string), "{6EF83C}[Tekst Oglasa] {46BAE8}%s", result);
// OOCNews(TEAM_GROVE_COLOR,string);
format(string, sizeof(string), "~b~Racun ~w~$%d~n~~b~Slova: ~w~%d", payout, idx);
GameTextForPlayer(playerid, string, 4000, 1);
format(string123, sizeof(string123), "~g~|ID:%d|Dao oglas:%s|Text oglasa:%s|",playerid,sendername,result);
PosaljiAdminima(COLOR_LIGHTRED,string123);
for(new i; i < sizeof(ZabranjeneReci); i++)
{
if(strfind(result, ZabranjeneReci, true) != -1)
{
new strMy[256];
GetPlayerName(playerid, sendername, sizeof(sendername));
strreplace(sendername, '_', ' ');
format(strMy, sizeof(strMy), "[BC ANTICHEAT]Igrac:[%d][%s]>%s< !",playerid,sendername,result);
PosaljiAdminima(COLOR_LIGHTGREEN, strMy);
}
}
if (PlayerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
if(strcmp(cmd, "/smsadvertise", true) == 0 || strcmp(cmd, "/smsad", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_WHITE, "Niste se prijavili!");
return 1;
}
if(PlayerInfo[playerid][pLevel] < 3)
{
SendClientMessage(playerid, COLOR_WHITE,"Morate biti level 3 da bih ste dali oglas.");
return 1;
}
if(PlayerInfo[playerid][pMuteAD] == 1)
{
SendClientMessage(playerid, COLOR_GRAD2, "Imas zabranu davanja oglasa nemozes to !");
return 1;
}
if(PlayerInfo[playerid][pJailed] >= 1)
{
SendClientMessage(playerid, COLOR_GRAD2, "U Zatvoru si nemozes to!");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koristi: (/smsad)vertise [advert text]");
return 1;
}
if ((!adds) && (PlayerInfo[playerid][pAdmin] < 2))
{
format(string, sizeof(string), "Molimo pokusajte jer treba da prodje %d sekundi izmedju sms ad-a!", (addtimer/1000));
SendClientMessage(playerid, COLOR_GRAD2, string);
return 1;
}
new payout = idx * 5;
if(PlayerInfo[playerid][pKredit1] < payout)
{
format(string, sizeof(string), "* Vi ste iskoristili %d slova sto kosta $%d, nemate dovoljno kredita na mobilnom za oglas.", offset, payout);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
PlayerInfo[playerid][pKredit1] -= payout;
format(string, sizeof(string), "[ID:%d] %s je dao oglas", playerid, sendername);
ABroadCast(COLOR_BLUE,string,1);
SBizzInfo[7][sbTill] += payout;
ExtortionSBiz(7, payout);
format(string, sizeof(string), "{80C8FE}[OGLASNIK] | {498C12}%s {80C8FE}Tel: %d | {498C12}( %s )", result, PlayerInfo[playerid][pPnumber], sendername);
OOCNews(TEAM_GROVE_COLOR,string);
format(string, sizeof(string), "~r~Racun $%d~n~~w~Poruka je sadrzala: %d Slova", payout, idx);
GameTextForPlayer(playerid, string, 5000, 1);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
if (PlayerInfo[playerid][pAdmin] < 2){SetTimer("AddsOn", addtimer, 0);adds = 0;}
}
return 1;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno): http://i.imgur.com/mPPvdiK.png eto i slika
Spremi varijablu npr:
new DaoOglas[MAX_PLAYERS];
Ovo stavljas na pocetku moda, valjda to znas
Onda u tom delu komande kad on postavlja oglas postavljas mu varijablu na = 1; i pokreni SetTimerEx
DaoOglas[playerid] = 1;
SetTimerEx("OglasTimer", 60000*5, true, "i", playerid);
U publicu kada istekne timer gasis mu varijablu tj. postavljas vrednost na 0 da bi on mogao da kuca ponovo oglas
forward OglasTimer(playerid);
public OglasTimer(playerid)
{
DaoOglas[playerid] = 0;
return 1;
}
I u komandi ubacis proveru (Na pocetku komande):
if(DaoOglas[playerid] == 1) return SendClientMessage(playerid, -1,"Ne mozete jos uvek davati oglas");
Riješeno može lock
Denise hvala mnogo :D