Камерончик Новичок 1 Новичок Posted June 13, 2018 · Report post У меня есть команда для выдачи префиксов админам, но можно ли как-то сделать, чтобы можно было ещё установить цвет префикса?Команда выдачи префикса: CMD:setprefix(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 14) return 1; if(sscanf(params,"ds[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "setprefix [id] [префикс]"); new fstring[400]; format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pNames], params[1]); SendClientMessage(playerid, 0xFFCC00FF, fstring); adminprefix[params[0]] = EOS; strmid(adminprefix[params[0]], params[1], 0, strlen(params[1]), 50); printf("%s - admpref", adminprefix[params[0]]); return 1; } Массив для команды: new adminprefix[50]; И на всякий случай команда /a ALTX:admin("/a"); CMD:admin(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 1) return 1; if(gAdminReason[playerid][ADMIN_CHAT]) return SCM(playerid, -1, ""#NET"?????????? ???????? ??? ???????????? ???? ????????!"); if(sscanf(params,"s[100]",params[0])) return SCM(playerid, -1, ""#INFO"???????: (/a)dmin [???]"); new arank[64]; string[0] = EOS; switch (PlayerInfo[playerid][bAdmin]) { case 1: arank = "{33AA33}(??????????)"WHITE""; case 2: arank = "{33AA33}(??.??????????)"WHITE""; case 3: arank = "{33AA33}(??.?????????)"WHITE""; case 4: arank = "{33AA33}(?????????)"WHITE""; case 5: arank = "{33AA33}(??.?????????)"WHITE""; case 6: arank = "{33CCFF}(??.?????????)"WHITE""; case 7: arank = "{33CCFF}(??.?????????????)"WHITE""; case 8: arank = "{"#cBLUE"}(?????????????)"WHITE""; case 9: arank = "{"#cBLUE"}(??????? ?????????????)"WHITE""; case 10: arank = "{D900D3}(??????? ?????????????)"WHITE""; case 11: arank = "{EAC700}(????.?????????????)"WHITE""; case 12: arank = "{FF8C00}(???????? ??????????)"WHITE""; case 13: arank = "{717780}(????????????)"WHITE""; case 14: arank = "{FF0000}(????????? ???????)"WHITE""; } format(string, BIG_SIZE, "{00FF00}[A] %s {0080FF}%s[%d]: {FFFFFF}%s", adminprefix[playerid], PlayerInfo[playerid][pNames], playerid, params[0]); ABroadCast(-1, string, 1); return 1; } Буду благодарен, если ответите. 0 Share this post Link to post
0 Talex Постоянный 45 Постоянный Posted June 13, 2018 (edited) · Report post @Камерончик, можешь добавить такую команду в мод: Спойлер CMD:prefixcolor(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 14) return 1; else if(isnull(params)) return SendClientMessage(playerid, -1, "Используйте /prefixcolor [цвет HEX]"); new id, hex[6+1]; if(sscanf(params, "us[6]", id, hex)) return SendClientMessage(playerid, -1, "Используйте /prefixcolor [цвет HEX]"); else if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Указанный вами игрок не в сети."); if(!(strlen(hex) == 6)) return SendClientMessage(playerid, -1, "Цвет HEX должен быть длиной в шесть символов"); for(new i = 0; i < 6; i++) { switch(hex[i]) { case '0'..'9', 'A'..'F': continue; default: return SendClientMessage(playerid, -1, "Вы ввели неправильный цвет HEX (должен содержать цифры 0..9 и буквы A-F"); } } format(adminprefix[id], 100, "{%s}", hex); SendClientMessage(playerid, -1, "Префикс игрока успешно обновлен."); return 1; } Должно все работать. Edited June 13, 2018 by Talex 0 Share this post Link to post
0 Камерончик Новичок 1 Новичок Posted June 13, 2018 · Report post @Talex Я ввожу Hex код FF0000 и мне пишет типа цвет должен иметь 6 символов 48 минут назад, Talex сказал: @Камерончик, можешь добавить такую команду в мод: команда (открыть спойлер) CMD:prefixcolor(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 14) return 1; else if(isnull(params)) return SendClientMessage(playerid, -1, "Используйте /prefixcolor [цвет HEX]"); new id, hex[6+1]; if(sscanf(params, "us[6]", id, hex)) return SendClientMessage(playerid, -1, "Используйте /prefixcolor [цвет HEX]"); else if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Указанный вами игрок не в сети."); if(!(strlen(hex) == 6)) return SendClientMessage(playerid, -1, "Цвет HEX должен быть длиной в шесть символов"); for(new i = 0; i < 6; i++) { switch(hex[i]) { case '0'..'9', 'A'..'F': continue; default: return SendClientMessage(playerid, -1, "Вы ввели неправильный цвет HEX (должен содержать цифры 0..9 и буквы A-F"); } } format(adminprefix[id], 100, "{%s}", hex); SendClientMessage(playerid, -1, "Префикс игрока успешно обновлен."); return 1; } Должно все работать. 0 Share this post Link to post
0 Cawfee Великий Гуру 525 Великий Гуру Posted June 13, 2018 · Report post @Камерончик, автор опечатку допустил. Сначала ID игрока нужно ввести, а потом код. 0 Share this post Link to post
0 Камерончик Новичок 1 Новичок Posted June 13, 2018 · Report post @odosenok Я так и сделал, пишет что длина Hex должна состоять из 6 символов. Пишу /prefixcolor свой ид и цвет FF0000 0 Share this post Link to post
0 DEST Maintainer 1,037 Maintainer Posted June 13, 2018 · Report post @Камерончик после 2 часа назад, Talex сказал: if(sscanf(params, "us[6]", id, hex)) return SendClientMessage(playerid, -1, "Используйте /prefixcolor [цвет HEX]"); добавить: printf("[DEBUG] %s - hex, %d - strlen(hex)", hex, strlen(hex)); после необходимо выполнить команду на сервере и скинуть логи 0 Share this post Link to post
0 MuhammadPawn Великий Гуру 248 Великий Гуру Posted June 13, 2018 (edited) · Report post FF0000 - RGB где ты тут HEX увидел? тут кроме этой команды надо изменять ещё и 2 команду с выводом в чат текста (утром скину код если до меня это не сделают) Edited June 13, 2018 by MuhammadPawn 0 Share this post Link to post
0 Камерончик Новичок 1 Новичок Posted June 13, 2018 · Report post @MuhammadPawn Окей, жду. 0 Share this post Link to post
0 Cawfee Великий Гуру 525 Великий Гуру Posted June 15, 2018 · Report post @Камерончик, видимо, пользователь за Вас забыл. Напишите конкретно сюда то, что Вы вводите для вызова этой команды. 0 Share this post Link to post
0 MuhammadPawn Великий Гуру 248 Великий Гуру Posted June 16, 2018 · Report post @odosenok не я не забыл, просто уежал 0 Share this post Link to post
Камерончик Новичок 1
У меня есть команда для выдачи префиксов админам, но можно ли как-то сделать, чтобы можно было ещё установить цвет префикса?
Команда выдачи префикса:
CMD:setprefix(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 14) return 1; if(sscanf(params,"ds[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "setprefix [id] [префикс]"); new fstring[400]; format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pNames], params[1]); SendClientMessage(playerid, 0xFFCC00FF, fstring); adminprefix[params[0]] = EOS; strmid(adminprefix[params[0]], params[1], 0, strlen(params[1]), 50); printf("%s - admpref", adminprefix[params[0]]); return 1; }Массив для команды:
new adminprefix[50];И на всякий случай команда /a
ALTX:admin("/a"); CMD:admin(playerid, params[]) { if(PlayerInfo[playerid][bAdmin] < 1) return 1; if(gAdminReason[playerid][ADMIN_CHAT]) return SCM(playerid, -1, ""#NET"?????????? ???????? ??? ???????????? ???? ????????!"); if(sscanf(params,"s[100]",params[0])) return SCM(playerid, -1, ""#INFO"???????: (/a)dmin [???]"); new arank[64]; string[0] = EOS; switch (PlayerInfo[playerid][bAdmin]) { case 1: arank = "{33AA33}(??????????)"WHITE""; case 2: arank = "{33AA33}(??.??????????)"WHITE""; case 3: arank = "{33AA33}(??.?????????)"WHITE""; case 4: arank = "{33AA33}(?????????)"WHITE""; case 5: arank = "{33AA33}(??.?????????)"WHITE""; case 6: arank = "{33CCFF}(??.?????????)"WHITE""; case 7: arank = "{33CCFF}(??.?????????????)"WHITE""; case 8: arank = "{"#cBLUE"}(?????????????)"WHITE""; case 9: arank = "{"#cBLUE"}(??????? ?????????????)"WHITE""; case 10: arank = "{D900D3}(??????? ?????????????)"WHITE""; case 11: arank = "{EAC700}(????.?????????????)"WHITE""; case 12: arank = "{FF8C00}(???????? ??????????)"WHITE""; case 13: arank = "{717780}(????????????)"WHITE""; case 14: arank = "{FF0000}(????????? ???????)"WHITE""; } format(string, BIG_SIZE, "{00FF00}[A] %s {0080FF}%s[%d]: {FFFFFF}%s", adminprefix[playerid], PlayerInfo[playerid][pNames], playerid, params[0]); ABroadCast(-1, string, 1); return 1; }Буду благодарен, если ответите.
Share this post
Link to post