Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[ MySQL ] Система очных авто

Статус
В этой теме нельзя размещать новые ответы.

Jeff_Hardy

Компетентный
И так добрый день. Этот урок для тех кто хочет научиться пользоваться MySQL.
Вот самая лёгкая система, ставьте её сибе в мод и разбирайте на части узучайте её..
И так, может у вас чтото получиться. Таким же обзаром смотрите по таблице. Команды на ZCMD + SSCANF;

Таблица:
PHP:
CREATE TABLE IF NOT EXISTS `simplecars` (
  `ID` int(5) NOT NULL,
  `Model` int(5) NOT NULL,
  `Car_x` double NOT NULL,
  `Car_y` double NOT NULL,
  `Car_z` double NOT NULL,
  `Car_a` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin;
define
PHP:
#define MAX_BUYABLE_CARS 100// define
new
PHP:
new SIMPLECARS;// new
enum, массив
PHP:
enum scInfo// enum
{
    scUID,
    scModel,
	Float:scCar_x,
	Float:scCar_y,
	Float:scCar_z,
    Float:scCar_a,
};
new SimpleCar[MAX_SIMPLE_CAR][scInfo];
OnGameModeinit
PHP:
LoadSimpleCars();// ongamemodeinit
OnGameModeinit
PHP:
	for(new idx = 0; idx < SIMPLECARS; idx++)// ongamemodeinit
    {
    	AddStaticVehicleEx(SimpleCar[idx][scModel], SimpleCar[idx][scCar_x], SimpleCar[idx][scCar_y], SimpleCar[idx][scCar_z]+1, SimpleCar[idx][scCar_a], -1, -1, 6000);
	}
Загрузка, и сохранение:
PHP:
stock LoadSimpleCars() {// Загрузка
    new query[512];
    mysql_query("SELECT * FROM `simplecars`");
	mysql_store_result();
	if(mysql_num_rows() > 0)
	{
		for(new idx = 0; idx < mysql_num_rows(); idx++)
		{
		   	mysql_fetch_row(query);
        	sscanf(query, "p<|>idffff",
        	SimpleCar[idx][scUID],
        	SimpleCar[idx][scModel],
			SimpleCar[idx][scCar_x],
			SimpleCar[idx][scCar_y],
			SimpleCar[idx][scCar_z],
			SimpleCar[idx][scCar_a]);
        	SIMPLECARS++;
        }
    }
    mysql_free_result();
    printf("Загружено очных авто: %d", SIMPLECARS);
    return 1;
}

stock SaveSimpleCars() {// Сохранение
    for(new idx = 0; idx < SIMPLECARS; idx++)
    {
		new sql[256];
		format(sql, sizeof(sql), "UPDATE simplecars SET Model='%d',Car_x='%f',Car_y='%f',Car_z='%f',Car_a='%f' WHERE ID=%d",
		SimpleCar[idx][scModel],
		SimpleCar[idx][scCar_x],
		SimpleCar[idx][scCar_y],
		SimpleCar[idx][scCar_z],
		SimpleCar[idx][scCar_a],
		SimpleCar[idx][scUID]);
		mysql_query(sql);
		print("SIMPLECARS save'ed");
	}
	mysql_free_result();
	return 1;
}
Ну и теперь сами команды, так-же можно создать авто, и потом сразу удалить его:
PHP:
CMD:addscar(playerid, params[])
{
  	if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,-1,"Вы не должны быть в транспорте!");
	if(sscanf(params, "d", params[0]))return SendClientMessage(playerid,-1, "Введите: [модель]");
  	if(params[0] < 400 || params[0] > 611)return SendClientMessage(playerid, -1,"От 400 до 611!");
	new Float:X,Float:Y,Float:Z,Float:A; GetVehiclePos(GetPlayerVehicleID(playerid), X,Y,Z),
	GetVehicleZAngle(GetPlayerVehicleID(playerid),A);
	new string2[256];
	format(string2,256,"INSERT INTO `simplecars` (`ID`,`Model`,`Car_x`,`Car_y`,`Car_z`,`Car_a`) VALUES (%d,%d,'%f','%f','%f','%f');", SIMPLECARS,params[0],X,Y,Z,A);
	mysql_query(string2), mysql_free_result();
	SimpleCar[SIMPLECARS][scUID] = SIMPLECARS;
	SimpleCar[SIMPLECARS][scModel] = params[0];
 	SimpleCar[SIMPLECARS][scCar_x] = X;
 	SimpleCar[SIMPLECARS][scCar_y] = Y;
 	SimpleCar[SIMPLECARS][scCar_z] = Z;
 	SimpleCar[SIMPLECARS][scCar_a] = A;
 	SIMPLECARS++;
	format(string2, sizeof(string2), "Симпл кар номер %d создан.", SIMPLECARS), SendClientMessage(playerid, -1,string2);
	return 1;
}

CMD:deletecar(playerid, params[])// Недописана, сёня допишу скину.
{
	new carid = GetPlayerVehicleID(playerid)-1;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1, "Вы должны быть в авто!");
	SimpleCar[carid][scModel] = 0;
	SimpleCar[carid][scCar_x] = 0;
	SimpleCar[carid][scCar_y] = 0;
	SimpleCar[carid][scCar_z] = 0;
	SimpleCar[carid][scCar_a] = 0;
	SaveSimpleCars();
	SIMPLECARS --;// Минус
	new query[128];
	format(query, sizeof(query), "DELETE FROM `simplecars` WHERE `ID` = '%d'", SimpleCar[carid][scUID]);
	mysql_query(query);
	SendClientMessage(playerid, -1,"Машина уничтожена!");
	return 1;
}
Ну вот и всё, урок закончен.
Автор кода: Jeff_Hardy
Если можно +
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу