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 ========================== Ничего Не покупаю / Не продаю
|
|
|
|