Sziasztok!
Biztosan láttátok már, hogy egy parancs által meghívott függvénynél létrehozunk egy args megnevezésű második változót(
kaptam még annó PÜ-t is), most erről fogunk beszélni ugyanis elég fontosnak tartom néhány pluginnál. Egy parancs esetében megadhatunk további paramétereket, ez(ek) lenné(nek) az args változó feladata.
public Action smth(int client, int args) {}Próbálok egy konkrét példát hozni, kezdjünk bele.
Most egy olyan plugint hozunk létre, aminek sok értelme nincs, de tökéletes arra, hogy átadjam mire is való.
A következő paranccsal:sm_parancs "Maxi" "420"Ezt az üzenetet kapjuk vissza:Név: Maxi || Szám + 1: 421Parancs létrehozásaKód:
public void OnPluginStart() {
RegConsoleCmd("sm_parancs", fCommandParancs, "Használata: sm_parancs <név> <szám>");
}
public Action fCommandParancs(int client, int args) {
}
EllenőrzésKód:
public Action fCommandParancs(int client, int args) {
if (args != 2) {
ReplyToCommand(client, "Használat: sm_parancs <név> <szám>");
return Plugin_Handled;
}
}
TárolásKód:
public Action fCommandParancs(int client, int args) {
if (args != 2) {
ReplyToCommand(client, "Használat: sm_parancs <név> <szám>");
return Plugin_Handled;
}
char nevArg[MAX_NAME_LENGTH], szamArg[32];
GetCmdArg(1, nevArg, sizeof(nevArg));
GetCmdArg(2, szamArg, sizeof(szamArg));
}
BefejezésKód:
public Action fCommandParancs(int client, int args) {
if (args != 2) {
ReplyToCommand(client, "Használat: sm_parancs <név> <szám>");
return Plugin_Handled;
}
char nevArg[MAX_NAME_LENGTH], szamArg[32];
GetCmdArg(1, nevArg, sizeof(nevArg));
GetCmdArg(2, szamArg, sizeof(szamArg));
int szam = StringToInt(szamArg) + 1;
ReplyToCommand(client, "Név: %s || Szám + 1: %i", nevArg, szam);
return Plugin_Handled;
}
Teljes kód:
► Spoiler mutatása
Kód:
public void OnPluginStart() {
RegConsoleCmd("sm_parancs", fCommandParancs, "teszt");
}
public Action fCommandParancs(int client, int args) {
if (args != 2) {
ReplyToCommand(client, "Használat: sm_parancs <név> <szám>");
return Plugin_Handled;
}
char nevArg[MAX_NAME_LENGTH], szamArg[32];
GetCmdArg(1, nevArg, sizeof(nevArg));
GetCmdArg(2, szamArg, sizeof(szamArg));
int szam = StringToInt(szamArg) + 1;
ReplyToCommand(client, "Név: %s || Szám + 1: %i", nevArg, szam);
return Plugin_Handled;
}
Compiler:
► Spoiler mutatása
Kód:
SourcePawn Compiler 1.10
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2018 AlliedModders LLC
Code size: 3404 bytes
Data size: 2372 bytes
Stack/heap size: 16384 bytes
Total requirements: 22160 bytes
Remélem érthető volt, bármi kérdés van, válaszolok!
Üdv, Maxi.