Skripta koju koristim:Svoja
Detaljan opis problema: Znaci pogledajte sliku to se desi kada upisem komandu i ja sam admin na srvu nije mi nista doslo o.O
Dio skripte:
CMD:askq(playerid, params[])
{
new string[128];
format(string, 128, "/askq [Pitanje]");
AdminSupporterMessage(-1, string);
}
CMD:report(playerid, params[])
{
new string[128];
format(string, 128, "/report [Prijava]");
AdminSupporterMessage(-1, string);
}
forward AdminSupporterMessage(color, string[]);
public AdminSupporterMessage(color, string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pSupp] >= 1 || PlayerInfo[i][pAdmin] >= 1)
{
SendClientMessage(i, color, string);
}
}
}
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
SLIKA 1 : http://imageshack.com/a/img912/3415/mO7rID.png (http://imageshack.com/a/img912/3415/mO7rID.png)
SERVER: Unknown command. ti izlazi jer nisi stavio return 1; na kraju komande.
Edit: Kako ti ništa nije došlo? Poslao si string u kome piše /report [Prijava] i to ti je stiglo...
Ako hoćeÅ¡ da ta komanda prima unos od korisnika onda si trebao drugaÄije da je odradiÅ¡...
CMD:report(playerid, params[])
{
if(!strlen(params)) return SendClientMessage(playerid, -1, "/report [Prijava]");
AdminSupporterMessage(-1, params);
}
Naravno, params mozes da formatiraš kako želiš, to je unos korisnika, nakon razmaka od naziva komande. Možeš dodati ime, id itd..
TakoÄ'e možeÅ¡ koristiti sscanf za detaljniju proveru unosa, sve po volji..
Zbunjuje me malo ovo o.O Znas li kako dodati Ime da mu pise i prefix da dolazi adminima Report od igraca % [Report razlog]
Tako nekako id igraca ili tako nesto jer sam novi u skriptanju malo pojasnjenja a ne samo komanda i to bih molio hvala :)
Posto si novi naravno da neke stvari ne razumes. I ovako ovde nije na izvolite da ti neko sve uradi ja cu ti uraditi ovo caskom jer nije nesto komplikovano ali naravno ove komande su minimalne kolike mogu biti. Nemaju nista sem onog sto ti za sada zelis da imaju :D Pa da pocnemo.
Na vrh stavi ovu definiciju u koliko je nemas
#define SCM SendClientMessage
Zatim tamo gde su ti komande sve na jednom mestu stavi ove komande
CMD:askq(playerid, params[])
{
new
string[128],
text[128];
if (sscanf(params, "s[128]", text)) return SCM (playerid, -1, "/askq [Pitanje]"); // Odredjujes parametre koji da se popune kako bi komanda radila
format(string, sizeof(string), "Pitanje: %s", text);
AdminSupporterMessage(-1, string); // Salje poruku
return 1;
}
CMD:report(playerid, params[])
{
new
string[128],
id,
text[128];
if (sscanf(params, "us[128]", id, text)) return SCM (playerid, -1, "/report [ID Igraca/Deo Imena] [Prijava]"); // Odredjujes parametre koji da se popune kako bi komanda radila
format(string, sizeof(string), "Report na igraca %s: %s", GetName(id), text);
AdminSupporterMessage(-1, string); // Salje poruku
return 1;
}
Zatim ti treba GetName koji cita ime igraca u koliko to nemas stavi ovo
stock GetName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
I na kraju definicija koja salje Adminima poruku
stock AdminSupporterMessage(color, string[])
{
foreach (new i : Player)
{
if(PlayerInfo[i][pSupp] >= 1 || PlayerInfo[i][pAdmin] >= 1)
{
SCM (i, color, string);
}
}
return 1;
}
Moj savet je da u nekim stvarima koristis stock jer nema potrebe uvek za publicom... Ja public koristim samo za tajmere. Takodje ih stavljaj na jedno mesto obicno to radim na kraj scripte da ih ne mesam svugde. Takodje koristio sam ti ovde foreach jer je bolji nego ono sto si ti imao :D u koliko nemas foreach mozes ga skinuti sa linka http://forum.sa-mp.com/showthread.php?t=92679
Takodje posto si nov i verujem da ne poznajes dobro parametre za komande a ima tu nesto i van komandi sto ceti trebati njih mozes ovde prouciti malo http://wiki.sa-mp.com/wiki/Sscanf_code taj pocetak te zanima ovo ispod je vec sscanf kod pa da te ne zbuni :D U koliko jos nesto bude trebalo tu sam.
proÄitaj ovaj tutorial http://balkan-samp.com/forum/index.php?topic=28770.0
pa ćeÅ¡ možda neÅ¡to i skužit, mnpr ja sam najbolje nauÄio koristit sscanf Å¡ta se tiÄe komanda tak oda sam gledao druge komande i istraživa
Nisam skuzio to o sscanfu ali mozete lockat temu jer idem malo pretrazit forum (balkan samp) i google :D o tome :)
TEMA MOZE NA LOCK HVALA SVIMA NA POMOCI ;)