- Регистрация
- 4 Дек 2017
- Сообщения
- 537
- Лучшие ответы
- 20
- Репутация
- 129
Доброго времени суток форум pawno-info.
Решил сделать такую простенькую систему динамический иконок себе в мод, в последствие решил выложить сюда.
Знаю что система очень проста, но возможно кому то и пригодиться, особенно тем кто хочет вывести иконки у себя на сайте в UCP.
Требуются плагины MySQL r40 и выше. sscanf2 и streamer.
Решил сделать такую простенькую систему динамический иконок себе в мод, в последствие решил выложить сюда.
Знаю что система очень проста, но возможно кому то и пригодиться, особенно тем кто хочет вывести иконки у себя на сайте в UCP.
Требуются плагины MySQL r40 и выше. sscanf2 и streamer.
Для начала давайте выполним запрос в Базе данных phpMyAdmin
PHP:
CREATE TABLE IF NOT EXISTS `icon` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`PosX` float NOT NULL,
`PosY` float NOT NULL,
`PosZ` float NOT NULL,
`IconID` int(11) NOT NULL,
`Distance` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=11 ;
PHP:
enum e:_ICON_INFO
{
iID,
Float:iPosX,
Float:iPosY,
Float:iPosZ,
iIconID,
iDistance
};
#define MAX_ICON 20 // Максимальное кол-во иконок на сервере.
new
IconInfo[MAX_ICON][e_ICON_INFO],
TOTALICON
;
PHP:
mysql_tquery(/*переменная коннекта к MySQL*/, "SELECT * FROM `icon` WHERE 1", "LoadIcon", "");
PHP:
forward LoadIcon();
public LoadIcon()
{
new
rows,
time = GetTickCount();
cache_get_row_count(rows);
if(!rows) print("Иконки не были загружены!");
else
{
for(new index = 1; index < rows + 1; index++)
{
cache_get_value_name_int(index-1, "ID", IconInfo[index][iID]);
cache_get_value_name_float(index-1, "PosX", IconInfo[index][iPosX]);
cache_get_value_name_float(index-1, "PosY", IconInfo[index][iPosY]);
cache_get_value_name_float(index-1, "PosZ", IconInfo[index][iPosZ]);
cache_get_value_name_int(index-1, "IconID", IconInfo[index][iIconID]);
cache_get_value_name_int(index-1, "Distance", IconInfo[index][iDistance]);
CreateDynamicMapIcon(IconInfo[index][iPosX], IconInfo[index][iPosY], IconInfo[index][iPosZ], IconInfo[index][iIconID], 0, -1, -1, -1, IconInfo[index][iDistance]); //создаём иконку на карте
TOTALICON++;
}
}
printf("[LOAD]: Иконки успешно загружены - %d шт %d m.s", TOTALICON, GetTickCount() - time);
return true;
}
PHP:
CMD:addicon(playerid, params[])
{
/* Здесь проверка на администратора */
if(sscanf(inputtext, "dd", params[0], params[1])) return SendClientMessage(playerid, -1, "Используйте: /addicon [Номер иконки] [Дистанция прорисовки]");
else if(!(5 <= params[0] <= 63)) return SendClientMessage(playerid, -1, "ID иконок не может быть меньше 5 и больше чем 63");
new
string[128];
TOTALICON++;
new Float:PosX, Float:PosY, Float:PosZ;
GetPlayerPos(playerid, PosX, PosY, PosZ); // Узнаём положения игрока
CreateDynamicMapIcon(PosX, PosY, PosZ, params[0], 0, -1, -1, -1, params[1]); //Создаём иконку
format(string, sizeof(string), "INSERT INTO `icon` (PosX, PosY, PosZ, IconID, Distance) VALUES ('%f', '%f', '%f', '%d', '%d')", PosX, PosY, PosZ, params[0], params[1]);
mysql_tquery(/*переменная коннекта к MySQL*/, string, "", ""); // Создаём новую запись в таблице icon
format(string, sizeof(string), "Иконка номер: %d создана, айди иконки: %d", TOTALICON, params[0]);
SendClientMessage(playerid, -1, string);// Выводим сообщение в чат о успешном создании.
return true;
}
Вот такая вот простая система)) спасибо за внимания.
Автор: #pragma
Последнее редактирование: