[Pomoc] Oglas


Započeo BIRSAâ„¢, Novembar 07, 2013, 18:20:24 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Od 0
Detaljan opis problema: Ima dva problema, Kada dam oglas nikako ga ne izbaci, i kada jednom dam oglas odma mi izbrise mob -.-.
Dio skripte: Dole
Neke slike/video za lakse dobivanje pomoci(neobavezno): http://prntscr.com/22jiip , http://prntscr.com/22jizc

COMMAND:oglas(playerid, params[])
{
    new result[256],string[256];
	if(sscanf(params, "s[100]", result)) return SCM(playerid,-1,"{009DFF}----- {FFFFFF}Koristite /oglas za davanje oglasa");
	if(GetPlayerMoney(playerid) <  20) return SCM(playerid,-1,"{009DFF}------ {FFFFFF}Nemas dovoljno Novca");
    if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, COLOR_WHITE, "{009DFF}------ {FFFFFF}Nemas telefon");
    if(gettime() < toglas) return SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
    GetPlayerMoney(playerid, -13); toglas = gettime() + 40;
	format(string, sizeof(string), "{48E31C}Oglasavanje | Autor: %s{48E31C} | {F3FF02}Kontakt broj: %d",GetPlayerName(playerid),PlayerInfo[playerid][pTelefon]);
	SendClientMessageToAll(COLOR_WHITE,string);
	format(string, sizeof(string), "%s.",  result);
	SendClientMessageToAll(COLOR_WHITE,string);
	GameTextForPlayer(playerid,"~w~Uspjesno ste dali oglas za ~r~13$!",5000,3);
    return 1;
}

Citat: [LG:RP]| Kris poslato Novembar 07, 2013, 18:34:06 POSLE PODNE
COMMAND:oglas(playerid, params[])
{
    new result[256],string[256];
	if(sscanf(params, "s[100]", result)) return SCM(playerid,-1,"{009DFF}----- {FFFFFF}Koristite /oglas za davanje oglasa");
	if(GetPlayerMoney(playerid) <  20) return SCM(playerid,-1,"{009DFF}------ {FFFFFF}Nemas dovoljno Novca");
    if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, COLOR_WHITE, "{009DFF}------ {FFFFFF}Nemas telefon");
    if(gettime() < toglas) return SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
    GetPlayerMoney(playerid, -13); toglas = gettime() + 40;
	format(string, sizeof(string), "{48E31C}Oglasavanje | Autor: %s{48E31C} | {F3FF02}Kontakt broj: %d",GetPlayerName(playerid),PlayerInfo[playerid][pTelefon]);
	SendClientMessageToAll(COLOR_WHITE,string);
	GameTextForPlayer(playerid,"~w~Uspjesno ste dali oglas za ~r~13$!",5000,3);
    return 1;
}


Ja kako vidim ti nisi nista uradio u vezi telefona, a izbrisao si samo ono gdje ide text oglasa -.-

Citat: Hitmanâ,,¢ poslato Novembar 07, 2013, 18:44:47 POSLE PODNE
Probaj moju,ali nisam siguran.

Sta ti je ovo O.o

CitatSendClientToMessage
Poslednja Izmena: Novembar 07, 2013, 18:53:33 POSLE PODNE od BIRSA

Gangula

COMMAND:oglas(playerid, params[])
{
    new string[128];
	if(isnull(params)) return SCM(playerid,-1,"{009DFF}----- {FFFFFF}Koristite /oglas za davanje oglasa");
	if(GetPlayerMoney(playerid) <  20) return SCM(playerid,-1,"{009DFF}------ {FFFFFF}Nemas dovoljno Novca");
    if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, COLOR_WHITE, "{009DFF}------ {FFFFFF}Nemas telefon");
    if(gettime() < toglas) return SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
    GetPlayerMoney(playerid, -13); 
	new ime[MAX_PLAYER_NAME];
	GetPlayerName(playerid,ime,24);
	toglas = gettime() + 40;
	format(string, sizeof(string), "{48E31C}Oglasavanje | Autor: %s{48E31C} | {F3FF02}Kontakt broj: %d",ime,PlayerInfo[playerid][pTelefon]);
	SendClientMessageToAll(COLOR_WHITE,string);
	format(string, sizeof(string), "%s.",  params);
	SendClientMessageToAll(COLOR_WHITE,string);
	GameTextForPlayer(playerid,"~w~Uspjesno ste dali oglas za ~r~13$!",5000,3);
    return 1;
}

Probaj nesto tako ako nista od onog ne bude radilo, iako ovo moje dodje slican fazon ko od nekoga gore ali probaj...

Citat: [LG:RP]| Kris poslato Novembar 07, 2013, 18:51:52 POSLE PODNE
Citat: BIRSA poslato Novembar 07, 2013, 18:43:06 POSLE PODNE
Citat: [LG:RP]| Kris poslato Novembar 07, 2013, 18:34:06 POSLE PODNE
COMMAND:oglas(playerid, params[])
{
    new result[256],string[256];
	if(sscanf(params, "s[100]", result)) return SCM(playerid,-1,"{009DFF}----- {FFFFFF}Koristite /oglas za davanje oglasa");
	if(GetPlayerMoney(playerid) <  20) return SCM(playerid,-1,"{009DFF}------ {FFFFFF}Nemas dovoljno Novca");
    if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, COLOR_WHITE, "{009DFF}------ {FFFFFF}Nemas telefon");
    if(gettime() < toglas) return SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
    GetPlayerMoney(playerid, -13); toglas = gettime() + 40;
	format(string, sizeof(string), "{48E31C}Oglasavanje | Autor: %s{48E31C} | {F3FF02}Kontakt broj: %d",GetPlayerName(playerid),PlayerInfo[playerid][pTelefon]);
	SendClientMessageToAll(COLOR_WHITE,string);
	GameTextForPlayer(playerid,"~w~Uspjesno ste dali oglas za ~r~13$!",5000,3);
    return 1;
}


Ja kako vidim ti nisi nista uradio u vezi telefona, a izbrisao si samo ono gdje ide text oglasa -.-
Ja kolko vidim netrebam nista uradit jel ti se tu ne gubi telefon joj

Dobro a zasto si izbrisao ono O.o

Citat: Hitmanâ,,¢ poslato Novembar 07, 2013, 18:53:20 POSLE PODNE

ma zajebao se,to bi trebalo biti SendClientMessageToAll  :-[

Znam :D
Poslednja Izmena: Novembar 07, 2013, 18:56:29 POSLE PODNE od BIRSA

Sry za spamm, Gagi radi ova tvoja komanda :D hvala ti.
Samo bih da pitam kako mogu dodati timer ovdje ? npr da odbrojava koliko vremena je ostalo do sledeceg oglasa ? npr kada upisem /oglas ... vrijeme do sledeceg oglasa 15 sec, i opet kad napisem da bude 12 sec i tako :D ?

Gangula

Umesto:
if(gettime() < toglas) return SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");

Ide:

if(gettime() < toglas) 
{
	SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
	new time = tooglas - gettime();//Mislim da tako ide nisam siguran mozda gresim oduzimam vreme koje treba da bude od trenutnog i time mislim da ce dobiti odredjeno vreme koje ostaje do isticanja
        //Ako je to iznad ok nisam siguran kako radi gettime ali videces vec...
	format(string,sizeof(string),"Vreme do sledeceg oglasa: %d",time);
	SCM(playerid,-1,string);
	return 1;
}


Gangula

Citat: BIRSA poslato Novembar 07, 2013, 19:34:56 POSLE PODNE
Ahhh problem :D http://prntscr.com/22k37d
E jbg, kao sto sam i ocekivao ne radi kako treba :D
//Promenljive
new VremeO[MAX_PLAYERS], novoglas;
//Kada das oglas:

VremeO[playerid] = SetTimer("VremeOglas",1000,true);
novoglas = 40;

//Ona provera:
if(gettime() < toglas) 
{
	SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
	format(string,sizeof(string),"Vreme do sledeceg oglasa: %d",novoglas);
	SCM(playerid,-1,string);
	return 1;
}

//Timer
forward VremeOglas();
public VremeOglas()
{
	novoglas--;
	if(novoglas == 0) KillTimer(VremeO[playerid]);
	return 1;
}

Citat: Gangula a.k.a Mr.Gagi poslato Novembar 07, 2013, 19:43:15 POSLE PODNE
Citat: BIRSA poslato Novembar 07, 2013, 19:34:56 POSLE PODNE
Ahhh problem :D http://prntscr.com/22k37d
E jbg, kao sto sam i ocekivao ne radi kako treba :D
//Promenljive
new VremeO[MAX_PLAYERS], novoglas;
//Kada das oglas:

VremeO[playerid] = SetTimer("VremeOglas",1000,true);
novoglas = 40;

//Ona provera:
if(gettime() < toglas) 
{
	SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
	format(string,sizeof(string),"Vreme do sledeceg oglasa: %d",novoglas);
	SCM(playerid,-1,string);
	return 1;
}

//Timer
forward VremeOglas();
public VremeOglas()
{
	novoglas--;
	if(novoglas == 0) KillTimer(VremeO[playerid]);
	return 1;
}


Koliko me oči služe:

if(gettime() < toglas) 
{
	SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
	new time = tooglas - gettime();//Mislim da tako ide nisam siguran mozda gresim oduzimam vreme koje treba da bude od trenutnog i time mislim da ce dobiti odredjeno vreme koje ostaje do isticanja
        //Ako je to iznad ok nisam siguran kako radi gettime ali videces vec...
	format(string,sizeof(string),"Vreme do sledeceg oglasa: %d",time);
	SCM(playerid,-1,string);
	return 1;
}


u provjeri koristiÅ¡  "toglas"
if(gettime() < toglas)

dok na mjestu gddje poruku izbacuje "tooglas"
new time = tooglas - gettime();

što u suštini izbacuje "-gettime()" u poruci jer "tooglas" ne koristiš nigdje u kodu i tako je tooglas = -1/0
Poslednja Izmena: Novembar 07, 2013, 19:57:18 POSLE PODNE od Pasa
NAPUSTIO SAM SAMP

Oproštajni post

Cekaj jel ovo trebam staviti pod OnGameModeInit???
Ja stavio i izbaci mi error http://prntscr.com/22kbv5

Moja preporuka jeste da koristiš prvu soluciju gagija sa fixom (rekao sam gdje je prob i evo fix na ovom mjestu)

if(gettime() < toglas) 
{
	SCM(playerid, COLOR_WHITE, "{009DFF}------- {FFFFFF}Oglas se moze koristiti svakih 40 sekundi!");
	new time = toglas - gettime();
	format(string,sizeof(string),"Vreme do sledeceg oglasa: %d",time);
	SCM(playerid,-1,string);
	return 1;
}
NAPUSTIO SAM SAMP

Oproštajni post

Hvala, sad radi.
btw. sto mi ovdje izbacuje number of arguments does not match definition.
    GetPlayerMoney(playerid, -13);
Poslednja Izmena: Novembar 07, 2013, 20:18:22 POSLE PODNE od BIRSA

Predpostavljam da si mislio koristiti
GivePlayerMoney(playerid,-13);


dok GetPlayerMoney(playerid) radiš provjere dal ima igrač dovoljno novca NPR:
if(GetPlayerMoney(playerid) >= 13) GivePlayerMoney(playerid,-13);
else return SendClientMessage(playerid,-1,"Nemate dovolčjno novca!");
dok ovaj dole primjer isto obavlja funkciju a mnogo ljepše izgleda
if(GetPlayerMoney(playerid) < 13) return SendClientMessage(playerid,-1,"Nemate dovolčjno novca!");
GivePlayerMoney(playerid,-13);
NAPUSTIO SAM SAMP

Oproštajni post