shape1
shape2
shape3
shape4
shape7
shape8

Никнейм администратора (дм сервер)


Статус
Закрыто для дальнейших ответов.

Alexandr

Новичок
Пользователь
03.11.2014
138
2
0
У меня ДМ сервер.

Хочу сделать так, чтобы перед ником администратора в чате было всегда написано "[Админ]".
Пример:
[Админ] Alexander(2): Как дела?

Но не знаю как сделать  :crying: 
Помогите пожалуйста...

 

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Ну примерно вот так, работать должно:

В начало public OnPlayerCommandText добавьте:

GetPlayerName(playerid, playername, sizeof(playername));

if(strcmp(cmd, "/a", true ) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
   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)) return SCM(playerid, COLOR_WHITE, "Введите: /a [{FFFF00}текст{FFFFFF}]");
format(string, sizeof(string), "%s {00BFFF}%s{FFFFFF}[{FFFF00}%d{FFFFFF}]: {FFFFFF}%s", GetPlayerAdmins(playerid), playername, playerid, result);
ASCM(COLOR_ORANGE, string, 1);
}
else SendClientMessage(playerid, COLOR_GREY, "Вы не уполномочены использовать данную команду!");
}




stock ASCM(color,const string[],level)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pAdmin] >= level)
{
SendClientMessage(i, color, string);
}
}
}
return true;
}

stock GetPlayerAdmins(playerid)
{
new arank[32];
switch(PlayerInfo[playerid][pAdmin])
{
case 1:
{
arank = "Модератор";
}
case 2:
{
arank = "Администратор";
}
case 3:
{
arank = "Главный Администратор";
}
case 4:
{
arank = "Основатель";
}
}
return arank;
}

 

 

Не забудьте выполнить табуляцию, так как форум её сожрал.
 
Последнее редактирование модератором:

Alexandr

Новичок
Пользователь
03.11.2014
138
2
0
А все игроки будут видеть то что админ пишет?

 

Alexandr

Новичок
Пользователь
03.11.2014
138
2
0
C:\Ðàá.ñò\May\Nepbx\crmp03\gamemodes\EDM.pwn(803) : error 028: invalid subscript (not an array or too many subscripts): "PlayerInfo"
C:\Ðàá.ñò\May\Nepbx\crmp03\gamemodes\EDM.pwn(803) : warning 215: expression has no effect
C:\Ðàá.ñò\May\Nepbx\crmp03\gamemodes\EDM.pwn(803) : error 001: expected token: ";", but found "]"
C:\Ðàá.ñò\May\Nepbx\crmp03\gamemodes\EDM.pwn(803) : error 029: invalid expression, assumed zero
C:\Ðàá.ñò\May\Nepbx\crmp03\gamemodes\EDM.pwn(803) : fatal error 107: too many error messages on one line
 
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
4 Errors.
 

Sten

Unknown
Пользователь
08.05.2014
830
77
0
Я вот на одном сервере делал такую вещицу.Просто перед строчкой которая отвечает за чат, в OnPlayerText просто поставил проверку на администратора и все работало исправно.

 

Kostyaev

Магистр
Пользователь
19.07.2014
1 123
274
0
26
Добавь проверку в каллбэк OnPlayerText . Держи проверку:

Код:
if(PlayerInfo[playerid][pAdmin] > 1) //свою проверку на админа
{	
	format(text, 1024, "[Администратор]{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
	SendClientMessageToAll(0x00000000, text);
}
else
{
	format(text, 1024, "{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
	SendClientMessageToAll(0x00000000, text);
}
 
Последнее редактирование модератором:

Alexandr

Новичок
Пользователь
03.11.2014
138
2
0
Добавь проверку в каллбэк OnPlayerText . Держи проверку:

if(PlayerInfo[playerid][pAdmin] > 1) //свою проверку на админа
{
format(text, 1024, "[Администратор]{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
SendClientMessageToAll(0x00000000, text);
}
else
{
format(text, 1024, "{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
SendClientMessageToAll(0x00000000, text);
}
ну вставил и вот че:

C:\Раб.ст\May\Nepbx\crmp03\gamemodes\EDM.pwn(7929) : error 028: invalid subscript (not an array or too many subscripts): "PlayerInfo"
C:\Раб.ст\May\Nepbx\crmp03\gamemodes\EDM.pwn(7929) : warning 215: expression has no effect
C:\Раб.ст\May\Nepbx\crmp03\gamemodes\EDM.pwn(7929) : error 001: expected token: ";", but found "]"
C:\Раб.ст\May\Nepbx\crmp03\gamemodes\EDM.pwn(7929) : error 029: invalid expression, assumed zero
C:\Раб.ст\May\Nepbx\crmp03\gamemodes\EDM.pwn(7929) : fatal error 107: too many error messages on one line
 
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
4 Errors.


if(PlayerInfo[playerid][pAdmin] > 1) //своя проверка на админа
 
Последнее редактирование модератором:

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Замените PlayerInfo на свое.

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Покажите enum игрока.

 

Alexandr

Новичок
Пользователь
03.11.2014
138
2
0
Покажите enum игрока.
enum pInfo
{
    pAdmin,
    pCash,
    pMoney, // Â äàëüíåéøåì áóäåò èñîëüçîâàòñÿ äëÿ ñîõðàíåíèÿ äåíåã
    pAdminname,// /aduty
    pScore,
pKills,
Muted,
Kills,
Jailed,
pChar,
SpecID[MAX_PLAYERS],
SpecType[MAX_PLAYERS],
Freeze,
Zhertva,
Spawned,
}
 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
После этого, какая переменная идет?

 

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Добавь проверку в каллбэк OnPlayerText . Держи проверку:

if(PlayerInfo[playerid][pAdmin] > 1) //свою проверку на админа
{
format(text, 1024, "[Администратор]{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
SendClientMessageToAll(0x00000000, text);
}
else
{
format(text, 1024, "{%06x}%s(%d): {FFFFFF}%s", GetPlayerColor(playerid) >>> 8, PlayerName, playerid, text);
SendClientMessageToAll(0x00000000, text);
}
Хмм... А вы точно уверены, что у него в моде есть GetPlayerColor, PlayerName?

 

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Я же написал, скиньте команду /kick для проверки.

 
Статус
Закрыто для дальнейших ответов.