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
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
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 ?
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;
}
Ahhh problem :D http://prntscr.com/22k37d
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
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;
}
Hvala, sad radi.
btw. sto mi ovdje izbacuje number of arguments does not match definition. GetPlayerMoney(playerid, -13);
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);
Hvala sve ok sad, moze lock ;)
Nema na Äemu, tu sam da pomognem :D
Citat: Pasa poslato Novembar 07, 2013, 19:56:02 POSLE PODNE
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
Tacno tako, jbg zurba, a nisam obracao paznju. Hvala na ispravci :)