Dobrý den
Zkoušel jsem si udělat jednoduchý admin script s pomocí dcmd. Vše jsem zkompiloval bez errorů, ale když použiju nějaký příkaz ve hře, tak mi to píše "Uknow command" zkrátka, že ten příkaz není.
Některé věci jsou tam zatím na nic ale to proto, že tam chci do budoucna připad ještě pár dalších funkcí
Vložím celý kód, protože netuším kde je chyba:
#include <a_samp>
#include <a_players>
#include <sscanf2>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define MAX_PLAYERS_EX 60
#define COLOR_1 0x33AA33AA
#define COLOR_2 0xFCEE21AA
new AdminLevel[MAX_PLAYERS_EX];
stock PlayerName(playerid)
{
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
dcmd_setadmin(playerid, params[])
{
new id = strval(params);
new string[128];
if (!strlen(params)) return SendClientMessage(playerid, COLOR_2, "[Chyba]: Nemáš admin level");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_2, "[Chyba]: Hráč není připojen na serveru");
if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_2, "[Chyba]: Nemáš RCON oprávnění!!!");
format(string, sizeof(string), "RCON %s udělil hráči %s administrátorská práva", PlayerName(playerid), PlayerName(id));
SendClientMessageToAll(COLOR_2, string);
AdminLevel[id] = 1;
return 1;
}
dcmd_kick(playerid, params[])
{
new id = strval(params);
new bylv[128];
new bylsv[128];
if (!strlen(params)) return SendClientMessage(playerid, COLOR_2, "[Chyba]: /kick (id)");
if (AdminLevel[playerid] != 1) return SendClientMessage(playerid, COLOR_2, "[Chyba]: Nemáš admin level");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_2, "[Chyba]: Hráč není připojen na serveru");
format(bylv, sizeof(bylv), "Administrator %s vyhodil hráče %s ze serveru", PlayerName(playerid), PlayerName(id));
format(bylsv, sizeof(bylsv), "Administrator %s te vyhodil ze serveru", PlayerName(playerid));
SendClientMessageToAll(COLOR_2, bylv);
SendClientMessage(id,COLOR_2, bylsv);
Kick(id);
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[])
{
dcmd(kick,4,cmdtext);
dcmd(setadmin,8,cmdtext);
return 0;
}
Předem děkuji za všechny užitečné rady.