Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Команда /aad - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Команда /aad сообщение всем пользователям от администратора
Оценка: -----

#1
Пользователь офлайн   Jkent_Rockfeller 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Всем привет, сегодня хочу выложить вам команду, с ее помощью вы сможете писать всем игрокам в чат. Если будут баги, пишите исправлю). Так же для работы требуется плагин и инлуд sscanf. И так начнем!



ко всем дефайнам(#define)
#define SCM SendClientMessage
#define SCMTA SendClientMessageToAll
#define Color_Yellow 0xFFFF00FF




Команда:


CMD:aad(playerid, params[])
{
	new string[144];
	if(pInfo[playerid][pAdmin] < 1) return SCM(playerid, -1, "Вы не уполномочены использовать данную команду!");
	if(sscanf(params, "j[144]", params[0])) return SCM(playerid, -1, "{FF9900}[Подсказка]:{ffffff} Используйте: {1EA4EC}/aad {1EA4EC}[{ffffff}Текст{1EA4EC}]");
	format(string, sizeof(string), "Администратор {ffffff}%s: {1EA4EC}%s", pInfo[playerid][pName], params[0]);
	SCMTA(Color_Yellow, string);
	return true;
}





Если помог, будь добр, поставь плюс, и посмотри мои предыдущие работы! Буду очень рад, на днях сделал новую версию мода Jkent Role Play, можешь посмотреть ее кликнув на Jkent Role Play в разделе "Мои работы"

Сообщение отредактировал Jkent_Rockfeller: 21 Август 2019 - 02:52

0

#2
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Эмм, зачем ты даёшь нам это? -_-

Цитата

#define SCM SendClientMessage
#define SCMTA SendClientMessageToAll
#define Color_Yellow 0xFFFF00FF

Это какой-то важный код, который влияет на работоспособность системы? Или просто говнокод, который не нужен тут от слова "совсем"?

И с каких пор в sscanf появился спецификатор "j"? Хотя там sscanf вообще не нужен.

UPD: И ещё. Где вас учат так создавать массивы? Для чего ты его инициализируешь перед проверками, если он в проверках не используется? Хочется просто впустую потратить время на инициализацию?

Сообщение отредактировал DeimoS: 21 Август 2019 - 12:29

0

#3
Пользователь офлайн   sergeyshibaev 

  • Местный
  • Вставить ник
  • Раскрыть информацию
CMD:aad(playerid, params[])
{
	extract params -> new string:text[144]; else
		return SendClientMessage(playerid, -1, !"Ошибка: Используйте /aad [текст]");
		
	if(strlen(text) > 144)
	    return SendClientMessage(playerid, -1, !"Ошибка: Не больше 144 символов!");

	new
	    string[144],
	    PlayerName[MAX_PLAYER_NAME];

	GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Администратор %s: %s", PlayerName, text);
    SendClientMessageToAll(-1, string);
    return 1;
}


Сообщение отредактировал sergeyshibaev: 21 Август 2019 - 15:40

-1

#4
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияsergeyshibaev (21 Август 2019 - 15:38) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]



1) Игрок никак не сможет ввести больше 128 символов в чат, так что твоя проверка на длину строки бессмысленна.
2) Ник можно записать в string, а не выделять отдельный массив.
3) Зачем тут sscanf? Ты просто перезаписываешь данные из одного массива в другой подобным кодом.

Собственно, вот:
CMD:aad(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, !"Ошибка: Используйте /aad [текст]");

	new string[144+1];
	GetPlayerName(playerid, string, MAX_PLAYER_NAME);
	format(string, sizeof(string), "Администратор %s: %s", string, params);
	SendClientMessageToAll(-1, string);
	return 1;
}

0

#5
Пользователь офлайн   Jkent_Rockfeller 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDeimoS (21 Август 2019 - 12:28) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]





Эмммм, как бы так удобнее просто писать SendClientMessage - SCM, SendClientMessageToAll - SCMTA и т.д. Мне так легче.
Я только начинаю осваиваться, для меня sscanf значит нужен. Спецификатор j, никак не влияет на работоспособность.
Да хочется, слушай. У всех новичков есть ошибки. Я же не виноват, что я так пишу код. Если для тебя это не удобно, так будь добр, перепиши код, а не пиши "Кто вас учил код так делать?" Я сам учусь, не по урокам(хотя бывает). Я не понимаю таких людей, которые вроде и профи, а как бы и нет, потому что они срываются на новичков такими блет ответами. Я пишу команды/сервер для таких же новичков как я, я более опытен хотя и делаю такие глупые ошибки.

0

#6
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Эмммм, как бы так удобнее просто писать SendClientMessage - SCM, SendClientMessageToAll - SCMTA и т.д. Мне так легче.


Ну так и пиши подобным образом в своих скриптах, если тебе так легче. Зачем это выкладывать в статье на форуме? Как я уже сказал, они тут совершенно не влияют ни на что. При этом, ты заставляешь людей вставлять эти макросы только для того, чтоб они использовались в твоём коде, состоящем из 10 строк.
Так трудно было перед публикацией заменить все макросы на нормальные функции или что? -_-

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Я только начинаю осваиваться, для меня sscanf значит нужен.

Эмм, что? Как то, что ты осваиваешься связано с нужностью sscanf? -_- Если ты только осваиваешься, тебе нужно слушать более опытных людей, а не делать неправильно, оправдывая это тем, что ты где-то там осваиваешься.
В данном случае ты впустую вызываешь функцию sscanf, которая просто перезаписывает одни и те же данные в массив. Убери её и ровным счётом ничего не изменится. Спрашивается, зачем она там? Зачем ты пихаешь в код то, предназначение чего не понимаешь?

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Спецификатор j, никак не влияет на работоспособность.

Спецификатора "j" не существует, лол. Плагин sscanf просто выплюнет предупреждение в консоль, а-ля "Unknown format specifier 'j', skipping" и твой код, опять же, ничего не сделает.


Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Да хочется, слушай. У всех новичков есть ошибки.


Просто фейспалм...
А ничего, что я тебе на эти ошибки указываю как раз чтоб ты учёл эту информацию и чтоб в будущем не допускал тех же ошибок? К чему эти твои обидки и нежелание слушать что тебе говорят?

И да, если ты новичок, то зачем ты вообще взялся за написание статей? Тебе настолько важно кармодpoчеpство на форуме, что ты готов ради этого научить других новичков неправильно писать код?

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Я же не виноват, что я так пишу код.

Лол, а кто виноват? Может я? Или создатель этого форума?
В этом виноват только ты :) И вместо того, чтоб оправдываться и говорить: "Как хочу, так и делаю. Я новичок!", - стоит прислушаться к тому, на какие ошибки тебе указывают, учесть это и стать лучше. Своими "обидками" ты только себе вредишь. Ну и своими статьями вредишь другим новичкам, которые будут учиться по ним и будут допускать те же ошибки.

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Если для тебя это не удобно, так будь добр, перепиши код, а не пиши "Кто вас учил код так делать?"


Лол, я так написал не потому что мне так неудобно, а потому что это неправильно. И написал "кто вас учил код так писать?", чтоб ты понял, что так делать неправильно, задался вопросом "а как же тогда делать правильно?", начал гуглить и саморазвился как скриптер. Но ты решил начать оправдываться, а не прислушиваться.

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Я не понимаю таких людей, которые вроде и профи, а как бы и нет, потому что они срываются на новичков такими блет ответами.


Ты очень странный, если воспринимаешь критику как личностное оскорбление. Опять же, повторюсь: я лишь указываю тебе на твои ошибки, чтоб ты учёл их и не допускал в будущем. И ты сейчас, мягко говоря, странно себя ведёшь в отношении критики, которую тебе озвучили. Желание получать похвалу за всё, что ты делаешь - поведение ребёнка. Научись здраво реагировать на критику.

Просмотр сообщенияJkent_Rockfeller (22 Август 2019 - 04:38) писал:

Я пишу команды/сервер для таких же новичков как я, я более опытен хотя и делаю такие глупые ошибки.


Ну а теперь представь, что врачи начнут так же друг друга обучать. Представь, что ты пришёл к доктору, а он на самом деле учился у новичка-самоучки. Думаю, ты не очень обрадуешься, если тебе, например, хирург удалит не то, что нужно, ибо тот доктор-новичок, у которого твой хирург учился, просто неправильной информации научил его.
Обучать должны люди с опытом. И даже эти люди должны перепроверять себя перед публикацией информации. А попытки новичков проводить обучение других новичков приводят только к тому, что "учителя" лишь учат своим ошибкам "учеников", вводя их в заблуждение.

Сообщение отредактировал DeimoS: 22 Август 2019 - 11:40

0

#7
Пользователь офлайн   Jkent_Rockfeller 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Лол, я так написал не потому что мне так неудобно, а потому что это неправильно. И написал "кто вас учил код так писать?", чтоб ты понял, что так делать неправильно, задался вопросом "а как же тогда делать правильно?", начал гуглить и саморазвился как скриптер. Но ты решил начать оправдываться, а не прислушиваться.

Лол, я не оправдываюсь, я говорю свои факты.

Спецификатора "j" не существует, лол. Плагин sscanf просто выплюнет предупреждение в консоль, а-ля "Unknown format specifier 'j', skipping" и твой код, опять же, ничего не сделает.

В моем моде функция работает, в консоли нет такого предупреждения.

Сообщение отредактировал Jkent_Rockfeller: 23 Август 2019 - 04:13

-1

#8
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияJkent_Rockfeller (23 Август 2019 - 04:12) писал:

Лол, я не оправдываюсь, я говорю свои факты.


Факт тут только один: если ты пишешь код для других людей, то он должен соответствовать общему качеству, а не быть написанным "как тебе удобно".


Просмотр сообщенияJkent_Rockfeller (23 Август 2019 - 04:12) писал:

В моем моде функция работает, в консоли нет такого предупреждения.


Ну а теперь зайди вот в эту тему, в которой автор плагина оставил описание принципов его работы; найди пункт "Specifiers" и удивись тому, что такого спецификатора нет.
Вот зачем ты опять пытаешься идти против советов и здравого смысла?

Да ещё и минусить пытаешься меня в других темах, лол.
Дружок-пирожок, я, в отличии от тебя, не гонюсь за профильной репутацией, так что можешь хоть заминуситься. Это ни тебя умнее не сделает, ни твой код лучше.

Сообщение отредактировал DeimoS: 24 Август 2019 - 11:47

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика