[4/10] strcat/format или Изменение текста - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[4/10] strcat/format или Изменение текста
Saint[yl] Дата: Суббота, 14.12.2013, 23:55 | Сообщение # 1
^^SвYтый YлЬка
Сообщений: 248
Статус: Offline
strcat - функция для присоединения текста/string'а к string'у.
format - функция форматирования текста, добавления разнообразных переменных.

Давайте осмотрим разнообразные примеры применения данных функций.

Сначала рассмотрим strcat, ибо мне он больше нравится :3

Код
new all[32];
GetPlayerName(playerid, all, 24);
strcat(all, "_p14");
//Тут код поиска по БД :3

Этот код берет у игрока с идом playerid его ник, и добавляет к нему _p14, при этом ник у игрока никоим образом не меняется. Переменная all имеет значение Nick_Name_p14. Думаю было бы полезно при переносе аккаунтов (А-ля Samp-RP :])

А теперь приступим к format. Например сделаем комманду для приветствия игроков сервера =3

Код
new fstring[80], GN[24];  
GetPlayerName(playerid, GN, 24);
format(fstring, 80, "Всем привет, меня зовут %s, мой ID %d", GN, playerid);
SendClientMessageToAll(-1, fstring);


Теперь усложним задачу, будем использовать две этих функции, да еще и в цикле. А именно создадим /admins на диалоге :3

Код
CMD:admins(playerid, params[]);
{
new strcatadmins[1024], stringadmins[64], nameadmin[24], all;
foreach(Player, aid)
{
if(PlayerInfo[aid][pAdmin]<1) continue;
if(all == 15) strcat(strcatadmins, "\n\n Кол-во администрации превышает 15 человек :)"), break;
all++;
GetPlayerName(aid, nameadmin, 24);
format(stringadmins, 64, "Администратор %s [%d id]\t %d уровень администрирования\n", nameadmin, aid, PlayerInfo[aid][pAdmin);
strcat(strcatadmins, stringadmins);
}
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Администрация онлайн", strcatadmins, "x", "x");
return true;
}


Сначала мы создаем три массива и одну переменную.
Массив strcatadmins размером в 1024 ячейки для размещения таблицы администрации до 15 человек (Вместо 16 администратора, цикл завершается и отправляется итоговая таблица).
Массив stringadmins размером в 64 ячейки для сохранения строки с данными администратора.
Массив nameadmin размером в 24 ячейки, для кратковременного хранения ника администратора.
И переменную all, для подсчета кол-ва администрации (Что-бы не было не валид строк).
После запускаем цикл с помощью инклюда foreach с параметром Player (500 максимум) и переменной для хранения порядкового числа aid;
Затем проверяем игрока с идом aid на наличие админки, в случае если есть админка, то проверяет переменную all, чтобы та была не больше 15, если all больше 15, то STRCAT'ится строчка и прерывается цикл с помощью break;
После чего прибавляется эта самая переменная all, и берется ник администратора.
Далее форматируется строчка посредством функции format.
А функция strcat присоединяет отформатированную строчку к массиву strcatadmins.

После окончания цикла вызывается функция ShowPlayerDialog, которая показывает игроку диалог с содержимым strcatadmins. Вот и все

Следующий урок будет завтра, по выходным я более менее свободный


==========================
[+] Skype: saint.yl
[+] ВКонтакте: vk.com/saintyl
==========================

Ничего Не покупаю / Не продаю
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума