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

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

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Тема закрыта

[ Pawn ]
Возможно упростить

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Возможно упростить? И на сколько эта фигня память сожрёт при больших юзах?
stock SCMInfo(playerid, const text[])
{
	new string[144];
	format(string, sizeof(string), "[Информация]"WHITE" %s", text);
	SCM(playerid, COLOR_LIGHTBLUE, string);
	return 1;
}


Primer uza
SCMInfo(playerid, "HOLLA");

Делал я ее сам, возможно первое что я сам сделал. Так вот хочу услышать можно ли упростить, эта функция нужна не только ради [Информация] а и диалогов и тд я потом риализую

Сообщение отредактировал crazyvalik: 13 февраля 2020 - 20:41

0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
#define в помощь! ;-) А таких костылей я давно не видел
0

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

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

Просмотр сообщенияSonic X (13 февраля 2020 - 20:49) писал:

#define в помощь! ;-) А таких костылей я давно не видел

Я тебя понял "увидел == покажи"

Просмотр сообщенияSonic X (13 февраля 2020 - 20:49) писал:

#define в помощь! ;-) А таких костылей я давно не видел

Как реализовать "Информация" в дефайне мм?
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
#define INFO ("[Информация]")

SendClientMessage(playerid, -1, ""INFO" твой текст");

1

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

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

Просмотр сообщенияSonic X (13 февраля 2020 - 20:56) писал:

#define INFO ("[Информация]")

SendClientMessage(playerid, -1, ""INFO" твой текст");

Хммм
инфо можно релиазовать в еще один дефайн?
#define SCMInfo(%0,%1) SendClientMessage(%0, -1, ""INFO" %1");
??
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Проще тогда вот так:
#define ISCM(%0, %1) (SendClientMessage(%0, -1, "[Информация] %1"))

Сообщение отредактировал Sonic X: 13 февраля 2020 - 21:02

1

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

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

Просмотр сообщенияSonic X (13 февраля 2020 - 21:01) писал:

Проще тогда вот так:
#define ISCM(%0, %1) (SendClientMessage(%0, -1, "[Информация] %1))

Ну оно завёркает?
И зачем ты берёшь SendClienMessage в скоби(я для информации хочу узнать зачем)
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Чисто для удобства, можно и без них. Всё заработает.

#define просто сокращает тот код, который у тебя справа в то, что ты пишешь слева, если очень грубо говорить. Спецификаторы "%0", "%1" и т.д. это тот текст, который ты напишешь внутри этой функции или который поступит в эту функцию через переменные
1

#9
Пользователь офлайн   crazyvalik 

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

Просмотр сообщенияSonic X (13 февраля 2020 - 21:04) писал:

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

Это я знал вот про скобки не знал незнал ну так спасибо мэн:)
0

#10
Пользователь офлайн   Sonic X 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
То есть, всё, что будет в стоять в аргументе, который под %0, будет замещаться в дефайне на то, что ты указал. И не обязательно, чтобы этот аргумент был один, например, если тебе нужно вывести ID игрока, который использует эту же функцию. То есть ты сначала используешь ID игрока, помещая его в аргумент, который заменяется где стоит %0, а потом где-то дальше внутри функции можешь так же указать его. Наверное, не очень понятно объяснил
1

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


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Тема закрыта

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


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