Sanek_Matvienko
Компетентный
Всего уровней хелпера - 3.
1. Что бы задать вопрос хелперам, введите /vopros [текст] - если хелпер не на дежурстве, он не увидет что написал кто-то вопрос.
2. Что бы хелперу ответить нужно ввести /ans [id/nick] [текст] - если хелпер не на дежурстве то хелпер не сможет ответить игроку.
3. Что бы написать в чат хелперов, введите /hc [текст].
4. Что бы выйти на дежурство, введите /hduty, что бы покинуть дежурство, снова введите /hduty.
5. Что бы выдать хелперку игроку, введите /makehelper [id/nick] [уровень хелперки 1-3] - 0 - снять. Эта команда доступна только администратору 1338 уровня и хелперу 3 уровня.
Начинаем делать
1. Для начала найдем 'pInfo'. И вставим туда.. Желательно после, ниже pAdmin,
2. А теперь найдем 'new'. И вставим туда.. - Просто рядом со всеми new -вами вставляйте этот.
3. А теперь найдем 'public OnPlayerConnect(playerid)'. И вставим туда.. Желательно после, ниже PlayerInfo[playerid][pAdmin] = 0;
4. Теперь снова найдем 'public OnPlayerConnect(playerid)'. И вставим туда.. - Найдите что-то похожее в этом паблике на HelperDuty[playerid] = 0; - и вставьте рядом с ними это.
5. А теперь найдем 'public OnPlayerRegister(playerid, password[])'. И вставим туда.. Желательно после, ниже iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
6. А теперь найдем 'public OnPlayerUpdate_GF(playerid)'. И вставим туда.. Желательно после, ниже iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
7. А теперь найдем 'public OnPlayerLogin(playerid,password[])'. И вставим туда.. Желательно после, ниже iniGetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
8. Теперь снова найдем 'public OnPlayerLogin(playerid,password[])'. Найдите там что-то вроде.. "Вы зашли администратором, таким-то уровня.", нашли? хорошо. Ниже "примерно" этого:
Вставьте это:
9. А теперь найдем 'forward'. И вставим туда.. - Просто рядом со всеми forward -дами вставляйте этот.
10. И теперь самом конце мода вставим этот паблик.
Ну что-же, структуру мы приготовили. А теперь о командах.
1. Команда для просмотра "Помощников онлайн" и "Помощников онлайн на дежурстве". - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
2. Команда для выхода на дежурство и окончание дежурства. - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
3. Команда для подачи вопроса Хелперам. - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
4. Команда для ответа на вопрос. - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
5. Команда для того, что бы писать в чат хелперов. - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
6. Команда для того, что бы дать/изменить уровень хелпера игрока. - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
На этом всё.
1. Что бы задать вопрос хелперам, введите /vopros [текст] - если хелпер не на дежурстве, он не увидет что написал кто-то вопрос.
2. Что бы хелперу ответить нужно ввести /ans [id/nick] [текст] - если хелпер не на дежурстве то хелпер не сможет ответить игроку.
3. Что бы написать в чат хелперов, введите /hc [текст].
4. Что бы выйти на дежурство, введите /hduty, что бы покинуть дежурство, снова введите /hduty.
5. Что бы выдать хелперку игроку, введите /makehelper [id/nick] [уровень хелперки 1-3] - 0 - снять. Эта команда доступна только администратору 1338 уровня и хелперу 3 уровня.
Начинаем делать
1. Для начала найдем 'pInfo'. И вставим туда.. Желательно после, ниже pAdmin,
PHP:
pHelper,
PHP:
new HelperDuty[MAX_PLAYERS];
PHP:
PlayerInfo[playerid][pHelper] = 0;
PHP:
HelperDuty[playerid] = 0;
PHP:
iniSetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
PHP:
iniSetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
PHP:
iniGetInt(File,"HelperLevel",PlayerInfo[playerid][pHelper]);
PHP:
if (PlayerInfo[playerid][pAdmin] > 0)
{
format(string2, sizeof(string2), "Вы вошли администратором, %d уровня.",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_WHITE,string2);
}
PHP:
if (PlayerInfo[playerid][pHelper] >= 1)
{
format(string2, sizeof(string2), "Вы вошли хелпером, %d уровня.",PlayerInfo[playerid][pHelper]);
SendClientMessage(playerid, COLOR_WHITE,string2);
}
PHP:
forward SendHelperMessage(color, string[]);
PHP:
public SendHelperMessage(color, string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pHelper] >= 1)
{
SendClientMessage(i, color, string);
}
}
}
}
1. Команда для просмотра "Помощников онлайн" и "Помощников онлайн на дежурстве". - Вставляем в паблик public OnPlayerCommandText(playerid, cmdtext[])
PHP:
if (strcmp(cmd, "/helpers", true) == 0)
{
if(IsPlayerConnected(playerid))
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pHelper] >= 1)
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "* Помощники онлайн:");
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, 256, "* %s[id: %d]. Hlvl: %d",sendername, i, PlayerInfo[i][pHelper]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
if(PlayerInfo[i][pHelper] >= 1 && HelperDuty[playerid] == 1)
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 256, "* Помощники онлайн на дежурстве:");
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, 256, "* %s[id: %d]. Hlvl: %d",sendername, i, PlayerInfo[i][pHelper]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
}
return 1;
}
PHP:
if(strcmp(cmdtext, "/hduty", true) == 0 || strcmp(cmdtext, "/helperduty", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Вы не авторизированы!");
return 1;
}
if(PlayerInfo[playerid][pHelper] >= 1)
{
if(HelperDuty[playerid] == 0)
{
HelperDuty[playerid] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "(( [H] Хелпер %s ждет ваши вопросы! (/вопрос) ))", sendername);
BroadCast(COLOR_OOC,string);
return 1;
}
else if(HelperDuty[playerid] == 1)
{
HelperDuty[playerid] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "(( [H] Хелпер %s не активен. ))", sendername);
BroadCast(COLOR_OOC,string);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "У вас нет прав на использование данной команды.");
return 1;
}
}
return 1;
}
PHP:
if(strcmp(cmd, "/vopros", true) == 0 || strcmp(cmd, "/вопрос", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /vopros [text]");
return 1;
}
if(HelperDuty[playerid] == 1)
{
format(string, sizeof(string), "Вопрос от %s[%d]: %s", sendername, playerid, (result));
SendHelperMessage(0x10F441AA, string);
}
SendClientMessage(playerid, COLOR_YELLOW, "Ваш вопрос отправлен хелперам!");
format(string, sizeof(string), "Вопрос от %s[%d]: %s", sendername, playerid, (result));
SendClientMessage(playerid, COLOR_LIGHTRED, string);
}
return 1;
}
PHP:
if(strcmp(cmd, "/ans", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pHelper] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /ans [PlayerID] [text]");
return 1;
}
if(HelperDuty[playerid] == 1)
{
giveplayerid = ReturnUser(tmp);
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /ans [PlayerID] [text]");
return 1;
}
format(string, sizeof(string), "[HELPER] %s: %s", sendername, (result));
SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "*[H] %s ответил %s[%d]: %s", sendername, giveplayer, giveplayerid,(result));
SendHelperMessage(COLOR_LIGHTRED, string);
return 1;
}
}
else
{
format(string, sizeof(string), "%d не в сети", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не на дежурстве.");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Нет прав на использование данной команды.");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не авторизированы.");
}
return 1;
}
PHP:
if(strcmp(cmd, "/helper", true) == 0 || strcmp(cmd, "/hc", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pHelper] >= 1)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: (/hc) [helpers chat]");
return 1;
}
format(string, sizeof(string), "* %d Хелпер %s: %s", PlayerInfo[playerid][pHelper], sendername, result);
SendHelperMessage(COLOR_GREEN, string);
printf("Helper %s: %s", sendername, result);
}
}
return 1;
}
PHP:
if(strcmp(cmd, "/makehelper", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}Введите: /makehelper [playerid] [level(1-3, 0-убрать хеллперку]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pHelper] == 3 || PlayerInfo[playerid][pAdmin] >= 1338)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pHelper] = level;
if(level < 0 || level > 3) return SendClientMessage(playerid, COLOR_GREY, "Не меньше '0' и не больше '3'.");
format(string, sizeof(string), "You have been promoted to a level %d helper by %s.", level, sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "You are promoted %s to helper level %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "{ffffff}Вам не доступна эта функция");
}
}
return 1;
}
