- Регистрация
- 2 Мар 2011
- Сообщения
- 395
- Лучшие ответы
- 0
- Репутация
- 211
Доброе время суток.
Хочу поделится своей системой создания пикапов.
Писал сам...
Подобных тем не нашел... Были только FS
Ну так вот начнем:
С пункта 1 по пункт 3 в любое место кода
1.Для начала создадим переменные:
2.Создадим enum
3.Создадим паблик загрузки пикапов из БД:
4.в OnGameModeInit добавим:
5.В OnPlayerPickUpDynamicPickup добавим
6.Добавим саму команду
7.Создадим Таблицу в БД
Вот вроде и все...
Если нужны будут инклуды то завтра добавлю...
Хочу поделится своей системой создания пикапов.
Писал сам...
Подобных тем не нашел... Были только FS
Ну так вот начнем:
С пункта 1 по пункт 3 в любое место кода
1.Для начала создадим переменные:
PHP:
#define TABLE_TELEPORT "teleports"
new bool:Creat[MAX_PLAYERS];//для команды
new Float:Xt, Float:Yt, Float:Zt, Model, VW, Intor;//позиция пикапа с мирами и интом
new Float:eXt, Float:eYt, Float:eZt ,eVW ,eIntor;//позиция телепорта
PHP:
enum tTeleport
{
tID,//ид в базе
tModel,//модель
Float:tX,//Координата пикапа
Float:tY,//Координата пикапа
Float:tZ,//Координата пикапа
tVW,//ид мира пикапа
tIntor,//ид интора пикапа
Float:txX,//Координата телепорта
Float:txY,//Координата телепорта
Float:txZ,//Координата телепорта
txVW,//ид мира телепорта
txIntor,//ид мира телепорта
tPickup//используется для создания пикапа
}
new TeleportInfo[MAX_TELEPORT][tTeleport];
new TOTAL_TELEPORT = 0;
#define MAX_TELEPORT 100
PHP:
forward LoadTeleportCallback();
public LoadTeleportCallback()
{
new rows, fields;//переменые для MySql
cache_get_data(rows, fields);//результат загрузки
if(rows > MAX_TELEPORT)return print("Количество телепортов превышает разрешимое.");//проверяем на кол-во пикапов
if(rows > 0)
{
for(new t = 0; t < rows; t++)//цикл всех пикапов из БД
{
TeleportInfo[t][tID] = cache_get_row_int(t, 0);
TeleportInfo[t][tModel] = cache_get_row_int(t, 1);
TeleportInfo[t][tX] = cache_get_row_float(t, 2);
TeleportInfo[t][tY] = cache_get_row_float(t, 3);
TeleportInfo[t][tZ] = cache_get_row_float(t, 4);
TeleportInfo[t][tVW] = cache_get_row_int(t, 5);
TeleportInfo[t][tIntor] = cache_get_row_int(t, 6);
TeleportInfo[t][txX] = cache_get_row_float(t, 7);
TeleportInfo[t][txY] = cache_get_row_float(t, 8);
TeleportInfo[t][txZ] = cache_get_row_float(t, 9);
TeleportInfo[t][txVW] = cache_get_row_int(t, 10);
TeleportInfo[t][txIntor] = cache_get_row_int(t, 11);
TeleportInfo[t][tPickup] = CreateDynamicPickup(TeleportInfo[t][tModel], 23, TeleportInfo[t][tX], TeleportInfo[t][tY], TeleportInfo[t][tZ], TeleportInfo[t][tVW], TeleportInfo[t][tIntor], -1, 100);//создаем пикап
TOTAL_TELEPORT++;
}
}
printf("Загружено пикапов: %d", TOTAL_TELEPORT);
return true;
}
PHP:
mysql_function_query(dbHandle, "SELECT * FROM "TABLE_TELEPORT"", true, "LoadTeleportCallback", "", "");//запрос в БД
PHP:
for(new t=0;t<TOTAL_TELEPORT;t++)//цикл
{
if(pickupid == TeleportInfo[t][tPickup])//проверка на пикап который встали
{
SetPlayerPos(playerid,TeleportInfo[t][txX],TeleportInfo[t][txY],TeleportInfo[t][txZ]);//тп на координаты
SetPlayerInterior(playerid, TeleportInfo[t][txIntor]);//устанавливаем инт
SetPlayerVirtualWorld(playerid, TeleportInfo[t][txIntor]);//устанавливаем мир
}
}
PHP:
CMD:pickup(playerid, params[0])
{
if(Creat[playerid] == false)
{
if(sscanf(params,"d",params[0]))return SendClientMessage(playerid, ORANGE, "/pickup [модель]");
Model = params[0];
GetPlayerPos(playerid, Xt, Yt,Zt);
Intor = GetPlayerInterior(playerid);
VW = GetPlayerVirtualWorld(playerid);
Creat[playerid] = true;
}
else
{
new query[520];
GetPlayerPos(playerid, eXt, eYt,eZt);
eIntor = GetPlayerInterior(playerid);
eVW = GetPlayerVirtualWorld(playerid);
format(query,sizeof query,"INSERT INTO "TABLE_TELEPORT" (Model, X, Y, Z, VW, Intor, xX, xY, xZ, xVW, xIntor) VALUES (%d, %f, %f, %f, %d, %d, %f, %f, %f, %d, %d)",Model, Xt, Yt,Zt, VW, Intor,eXt, eYt,eZt, eVW, eIntor);
mysql_function_query(dbHandle, query, false, "", "");
Creat[playerid] = false;
TeleportInfo[TOTAL_TELEPORT][tModel] = Model;
TeleportInfo[TOTAL_TELEPORT][tX] = Xt;
TeleportInfo[TOTAL_TELEPORT][tY]= Yt;
TeleportInfo[TOTAL_TELEPORT][tZ] = Zt;
TeleportInfo[TOTAL_TELEPORT][tVW] = VW;
TeleportInfo[TOTAL_TELEPORT][tIntor] = Intor;
TeleportInfo[TOTAL_TELEPORT][txX] = eXt;
TeleportInfo[TOTAL_TELEPORT][txY] = eYt;
TeleportInfo[TOTAL_TELEPORT][txZ] = eZt;
TeleportInfo[TOTAL_TELEPORT][txVW] = eVW;
TeleportInfo[TOTAL_TELEPORT][txIntor] = eIntor;
TeleportInfo[TOTAL_TELEPORT][tPickup] = CreateDynamicPickup(TeleportInfo[TOTAL_TELEPORT][tModel], 23, TeleportInfo[TOTAL_TELEPORT][tX], TeleportInfo[TOTAL_TELEPORT][tY], TeleportInfo[TOTAL_TELEPORT][tZ], TeleportInfo[TOTAL_TELEPORT][tVW], TeleportInfo[TOTAL_TELEPORT][tIntor], -1, 100);
TOTAL_TELEPORT++;
printf("Создан пикап №%d", TOTAL_TELEPORT);
}
return true;
}
PHP:
CREATE TABLE IF NOT EXISTS `teleports` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Model` int(11) NOT NULL,
`X` float NOT NULL,
`Y` float NOT NULL,
`Z` float NOT NULL,
`VW` int(11) NOT NULL,
`Intor` int(11) NOT NULL,
`xX` float NOT NULL,
`xY` float NOT NULL,
`xZ` float NOT NULL,
`xVW` int(11) NOT NULL,
`xIntor` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
Если нужны будут инклуды то завтра добавлю...
Последнее редактирование: