Započeo M.Bond
•2. Feb. 2022.foreach
611
pregleda
10
postova
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
46
Postovi:
14
Teme:
Pridružio se:Avg. 2018
2. Feb. 2022.
Problem: Imam problem sa foreachom. Detaljno cu objasniti sada. Ovo je deo skripte mobitela sa tdovima. Testirao sam ovo sa troje ljudi. Ukoliko ID veci od 0 zove ID 0 sve radi kako treba. Problem nastaje kada ID 0 zove druge igrace koji su IDevi veci od 0. I takodje nastaje kada IDovi veci od 0 se medjusobno zovu. Nadam se da ste skapirali. Problem je taj da im baca eror "Taj igrac nije na serveru!". Sada ovako, "new broj = PlayerInfo;" ovo je ispravno uporedjivao sam i sve je to dobro. Kolko sam ja razumeo problem je sa forechom. Da li neko ima neko resenje ?
Deo skripte:
Deo skripte:
if(playertextid == MobitelImenikTD41)
{
if(PlayerInfo == 0) return SendErrorMessage(playerid, "Vi nemate kontakt pod ovim slotom!");
if(TelefonZvoni == true) return SendErrorMessage(playerid, "Telefon vam zvoni, prvo se javite ili prekinite!");
new broj = PlayerInfo;
new string;
UgasiMobitelBackGround(playerid);
foreach(Player, i)
{
if(IsPlayerConnected(i))
{
if(broj == PlayerInfo)
{
if(TelefonZvoni == true) return SendErrorMessage(playerid, "Tom igracu vec zvoni telefon!");
if(TelefonRazgovor != -1) return SendErrorMessage(playerid, "Taj igrac vec prica na telefon!");
TelefonRazgovor = playerid;
TelefonRazgovor = i;
TelefonZvoni = true;
format(string, sizeof(string), "{999793} "BELA"Zvoni vam mobilni telefon | Za javljanje /p, da prekines /h | Pozivatelj : %d", PlayerInfo);
SCM(i, -1, string);
format(string,sizeof(string), "* Mobilni od %s zvoni.", GetName(i));
ProxDetector(10.0, i, string, proxy_boja,proxy_boja,proxy_boja,proxy_boja,proxy_boja);
format(string,sizeof(string), "* %s zove na telefon.", GetName(playerid));
ProxDetector(10.0, playerid, string, proxy_boja,proxy_boja,proxy_boja,proxy_boja,proxy_boja);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
UgasiMobitelBackGround(playerid);
return 1;
} else return SendErrorMessage(playerid, "Taj igrac nije na serveru!");
}
}
}Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
46
Postovi:
14
Teme:
Pridružio se:Avg. 2018
2. Feb. 2022.
U sustini ova varijabla "broj" je broj telefona tog lika sto mu je u kontaktu. Moram da napomenem. To sve radi perfektno uporedjivao sam. Problem je sto foreach kao da u ovom primerom ima propusta. Naveo sam gore.
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
964
Postovi:
65
Teme:
Pridružio se:Dec. 2019
2. Feb. 2022.
A sto bi izbacivalo da li je igrac na serveru za proveru na neki drugi zahtev, ako nije na serveru nije, nema potrebe za jos jedan if
Ne razumem zasto sve morate da iskomplikujete bez ikakve logike...
Ne razumem zasto sve morate da iskomplikujete bez ikakve logike...
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
46
Postovi:
14
Teme:
Pridružio se:Avg. 2018
3. Feb. 2022.
Nisi razumeo onda poentu ovoga. Funkcijom foreach pretrazujem sve igrace koji su online da li je njihov broj telefona jednak broju iz imenika. A problemi nastaju (imas gore).
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
964
Postovi:
65
Teme:
Pridružio se:Dec. 2019
3. Feb. 2022.
try this!
if(playertextid == MobitelImenikTD41)
{
if(PlayerInfo == 0)
return SendErrorMessage(playerid, "Vi nemate kontakt pod ovim slotom!");
if(TelefonZvoni)
return SendErrorMessage(playerid, "Telefon vam zvoni, prvo se javite ili prekinite!");
new string[22 + MAX_PLAYER_NAME],
broj = PlayerInfo;
UgasiMobitelBackGround(playerid);
foreach(Player, i)
{
if(broj != PlayerInfo)
return false;
else continue;
if(IsPlayerConnected(i))
return SendErrorMessage(playerid, "Taj igrac nije connectovan!")
if(TelefonZvoni)
return SendErrorMessage(playerid, "Tom igracu vec zvoni telefon!");
if(TelefonRazgovor != -1)
return SendErrorMessage(playerid, "Taj igrac vec prica na telefon!");
TelefonRazgovor = playerid;
TelefonRazgovor = i;
TelefonZvoni = !TelefonZvoni; // true - fasle / false - true
va_SendClientMessage(playerid, 0XFFFFFFFF, "{999793} "BELA"Zvoni vam mobilni telefon | Za javljanje /p, da prekines /h | Pozivatelj : %d", PlayerInfo);
format(string,sizeof(string), "* Mobilni od %s zvoni.", GetName(i));
ProxDetector(10.0, i, string, proxy_boja,proxy_boja,proxy_boja,proxy_boja,proxy_boja);
format(string,sizeof(string), "* %s zove na telefon.", GetName(playerid));
ProxDetector(10.0, playerid, string, proxy_boja,proxy_boja,proxy_boja,proxy_boja,proxy_boja);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
UgasiMobitelBackGround(playerid);
}
}Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava