Та така.
Нега да продължим с днешния туториел.
Предишния туториел ви показах как да си направим регистрационна система, ако искате линк, ето: viewtopic.php?f=260&t=176958
Та, в днешния урок ще ви покажа как да използваме ето това
не знам дали снимката работи, ще използваме pAdmin от системата ни. Тя ни запазва нивото на админ и така ние можем да използваме админ команди който нормалните играчи не могат да използват
Нека да започваме, предполагам вие имате кода който писахме в миналия урок за това направо да продължаваме.
Правим команда /setadmin която ви прави или прави някой играч админ в играта. Първо ще трябва да изтеглите sscanf2 от тук: https://github.com/maddinat0r/sscanf/releases
Ако не се справите ще има урок и за това ако трябва.
Така, слагаме ето това в началото на гейммода ни:
Code: Select all
#include <sscanf2>
След това слагате:
Code: Select all
#define COLOR_RED 0xFF0000FF
Code: Select all
CMD:setadmin(playerid, params[])
{
return 1;
}
добавяме над return 1; това:
Code: Select all
new levels;
new Name[MAX_PLAYER_NAME];
new Name2[MAX_PLAYER_NAME];
new ID;
new string[128];
new Name ще вземем нашето име
new Name2 ще вземем името на играча на който ще дадем админ
new ID; е ид-то на играча на който ще дадем админ
new string[128] е колко букви да има в нашето съобщение което ще видите как ще го направим по късно.
За сега кодът ви трябва да изглежда така:
Code: Select all
CMD:setadmin(playerid, params[])
{
new levels;
new Name[MAX_PLAYER_NAME];
new Name2[MAX_PLAYER_NAME];
new ID;
new string[128];
return 1;
}
Code: Select all
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Трябва да сте RCON ADMIN за да използвате тази команда");
След това слагаме:
Code: Select all
if(sscanf(params, "ui", ID, levels)) return SendClientMessage(playerid, COLOR_RED, "ИЗПОЛЗВАНЕ: /setadmin [ID] [1-5]");
след това:
Code: Select all
if(levels > 5) return SendClientMessage(playerid, COLOR_RED, "Нива достъпни: 1-5");
ще му изпише че има само 5 левела админ.
до тук кода ви трябва да изглежда така:
Code: Select all
CMD:setadmin(playerid, params[])
{
new levels;
new Name[MAX_PLAYER_NAME];
new Name2[MAX_PLAYER_NAME];
new ID;
new string[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Трябва да сте RCON ADMIN за да използвате тази команда");
if(sscanf(params, "ui", ID, levels)) return SendClientMessage(playerid, COLOR_RED, "ИЗПОЛЗВАНЕ: /setadmin [ID] [1-5]");
if(levels > 5) return SendClientMessage(playerid, COLOR_RED, "Нива достъпни: 1-5");
return 1;
}
Code: Select all
GetPlayerName(playerid, Name, sizeof(Name));
GetPlayerName(ID, Name2, sizeof(Name2));
след това съобщението което ще бъде пратено на всички хора в сървърът.
Code: Select all
format(string, sizeof(string), "{FFFFFF}%s {FF0000}направи {FFFFFF}%s {FF0000}Админ с левел {FFFFFF}%d", Name, Name2, levels);
както виждате имаме %s %s %d
%s означава името на нашия играч
%d означава номерът на админ
а останалите са цветовете.
След това има, Name, Name2, levels.
тоест на първото %s слагаме Name, тоест нашето име, което взехме по нагоре.
на второто %s слагаме Name2, тоест името на играчът който дадохме админ, което взехме по нагоре.
и след това %d слагаме levels, тоест нивото което го направихме.
след това слагаме:
Code: Select all
SendClientMessageToAll(COLOR_WHITE, string);
И след това string тоест текстът сме го задали като string и го изпращаме.
И след това
Code: Select all
PlayerInfo[playerid][pAdmin] = levels;
PlayerInfo[playerid][pAdmin] е начинът по който системата ви запазва админа.
след това имаме = и след това levels
тоест задаваме нашия админ, на levels което е нивото което ще напишем.
И накрая кодът ви трябва да изглежда така:
Code: Select all
CMD:setadmin(playerid, params[])
{
new levels;
new Name[MAX_PLAYER_NAME];
new Name2[MAX_PLAYER_NAME];
new ID;
new string[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "Трябва да сте RCON ADMIN за да използвате тази команда");
if(sscanf(params, "ui", ID, levels)) return SendClientMessage(playerid, COLOR_RED, "ИЗПОЛЗВАНЕ: /setadmin [ID] [1-5]");
if(levels > 5) return SendClientMessage(playerid, COLOR_RED, "Нива достъпни: 1-5");
GetPlayerName(playerid, Name, sizeof(Name));
GetPlayerName(ID, Name2, sizeof(Name2));
format(string, sizeof(string), "{FFFFFF}%s {FF0000}направи {FFFFFF}%s {FF0000}Админ с левел {FFFFFF}%d", Name, Name2, levels);
SendClientMessageToAll(COLOR_WHITE, string);
PlayerInfo[playerid][pAdmin] = levels;
return 1;
}
Питайте ако има въпроси, знам че не съм най - добрия учител, но ще отговарям на въпроси което не сте разбрали, питайте.