-
Sziasztok!Azt szeretném kérdezni,hogy hogyan lehetne azt megoldani,amikor valaki beír egy olyan parancsot ami nincs a szerveren akkor kiírja az hogy \"Nincs ilyen parancs (és ide azt a parancsot írja amit beírt)\" szóval Például beírja hogy /pénz és akkor kiírja a szerver hogy \"Nincs ilyen parancs ( /pénz)\".
A válaszokat előre is köszönöm. :)
-
ycmd, zcmd, cmdtext?
-
zcmd :)
-
Szia,
Ha sima cmdtext:
Az eljárás végén visszatérsz(return) hogy \'Hibás a parancs.\'.
Ha zcmd:
A
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
eljárással, a success paraméter segítségével.
Pl.:
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if (!success) {
SendClientMessage(playerid, -1, \"Hibás parancs!\");
}
return 1;
}
E: Kijavítottam, módból szedtem ki, elnézést!
-
Szia.Köszi csak nekem úgy kellene hogy, azt is kiírja amit beírt szóval beírja : /pénz - és a szerver azt írja ki hogy: Nincs ilyen parancs (/pénz).
Csak ezt nemtudom hogy hogyan kellene megoldani string-el kellene valamit csinálni meg format-olni azt hiszem.
-
format(string, sizeof(string), \"%s használta: %s és azt mondta: K.\", name, cmdtext);
-
format(string, sizeof(string), \"%s használta: %s és azt mondta: K.\", name, cmdtext);
Elfelejtetted a nevet lekérni.
Elé:
new name[36];
GetPlayerName(playerid, name, 36);
VAGY
A módba valahova szúrd be:
(Szerintem könnyebb ezzel eljárni. Használata: pName(playerid) )
stock pName(id)
{
new name[24];
GetPlayerName(id, name, 24);
return name;
}
De akkor erre módosul a format:
format(string, sizeof(string), \"%s használta: %s és azt mondta: K.\", pName(playerid), cmdtext);
-
Nem felejtettem el, szándékosan nem írtam oda. Ahogyan a string változó deklarálását sem jelenítettem meg. Remélve, hogy erre önmagától is képes lesz a kedves témanyitó.
Szerk.: de ha már nevek. Akkor már így csinálja:
Nev(playerid) // stock-ot nem muszáj írni
{
new Neve[MAX_PLAYER_NAME]; // Esetleg MAX_PLAYER_NAME + 1, bár nem hiszem, hogy a sor végi karakter bezavarna
GetPlayerName(playerid, Neve, sizeof(Neve)); // sizeof-al lekérjük a változó méretét, hogy ne kelljen ismét megadni
return Neve; // Visszatérünk a lekérdezett névvel
}
-
Azért írtam oda, mert feltételeztem, hogy a témanyitó kezdő.
Costarica, ha kérdésed van még, írd le nyugodtan.
-
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success)
{
new string[1280];
format(string, sizeof(string), \"{00FF00}HIBA: {FFFFFF}Ismeretlen parancs \'\'{FF0000}%s{FFFFFF}\'\' Parancsokért {FF0000}/cmds /help{FFFFFF}!\", cmdtext);
SendClientMessage(playerid,0x33AA33AA, string);
return true;
}
return true;
}
[gmod]Kitettem a
taget.[/gmod]
-
Azért írtam oda, mert feltételeztem, hogy a témanyitó kezdő.
Valószínűleg az. De ha az is, valószínűleg a név lekérdezést és a változó deklarálást azért csak ismeri... Ha pedig nem, rákeres és azonnal megtalálja. De mindegy is, mert végül csak leírtam én is a név lekérdezését :D
new string[1280];
[/quote]
Nem lesz ez egy kicsit sok? :D
-
Nem nekem így tökéletesen megy :D De lehet kevesebb is!!!
-
Az egy dolog, hogy \"tökéletesen\" működik, de feleslegesen foglal le memóriát. A tökéletest pedig azért tettem idézőjelbe, mert a forráskód nem az elképzelhető leghatékonyabb formában lett megírva, így az nem tökéletes.
-
Erre nem gondoltam ,köszönöm a javítást! ::|
-
Köszönöm szépen a válasokat! :) És valóban kezdő vagyok. Na mindegy, kösz a válaszokat mégegyszer