[Pomoc]Baca error /askq /report

Započeo purgerrr, Decembar 14, 2014, 23:27:31 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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
Poslednja Izmena: Decembar 14, 2014, 23:30:46 POSLE PODNE od purgerrr

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..
Poslednja Izmena: Decembar 15, 2014, 06:17:48 PRE PODNE od Vodka Play




Progress doesn't come from early risers — progress is made by lazy men looking for easier ways to do things. - Robert A. Heinlein

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.
Poslednja Izmena: Decembar 16, 2014, 01:09:12 PRE PODNE od â–… â–† â–ˆ Rudimental â–ˆ â–† â–…

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 ;)