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

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

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

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

MySQL | Система личного Т.С.

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

Johhny

Компетентный
Начал создавать систему личного Т.С.
Столкнулся с такой проблемой что транспорт тупо не выгружается из Базы Данных.​
PHP:
enum E_VEHICLE_DATA {
	ORM: _v_ormid,
	_v_stream_id,
	_v_stream_url[128],
	// mysql synced
	v_uid,
	v_model,
	v_owner,
	Float: v_pos_x,
	Float: v_pos_y,
	Float: v_pos_z,
	Float: v_angle,
	Float: v_fuel,
	v_paint_job,
	v_color_1,
	v_color_2,
	v_component[10],
	Float: v_cost
}
new V[MAX_VEHICLES][E_VEHICLE_DATA];
Если прогонять через цикл (т.е. sizeof V) то делается 2000 тыс. проверок и машина появляется...но, этот вариант мне не подходит, по скольку Т.С. нужно спавнить при входе игрока на сервер, поэтому в диалоге, который отвечает за успешный вход, я добавил следующее:
PHP:
        new x = P[playerid][p_vehicle];
        new ORM: ormid = V[x][_v_ormid] = orm_create("vehicles");

        orm_addvar_int(ormid, V[x][v_uid], "VID");
        orm_setkey(ormid, "VID");
        orm_addvar_int(ormid, V[x][v_model], "Model");
        orm_addvar_int(ormid, V[x][v_owner], "Owner");
        orm_addvar_float(ormid, V[x][v_pos_x], "Pos_X");
        orm_addvar_float(ormid, V[x][v_pos_y], "Pos_Y");
        orm_addvar_float(ormid, V[x][v_pos_z], "Pos_Z");
        orm_addvar_float(ormid, V[x][v_angle], "Angle");
        orm_addvar_float(ormid, V[x][v_fuel], "Fuel");
        orm_addvar_int(ormid, V[x][v_paint_job], "Paint_Job");
        orm_addvar_int(ormid, V[x][v_color_1], "Color_1");
        orm_addvar_int(ormid, V[x][v_color_2], "Color_2");
        orm_addvar_float(ormid, V[x][v_cost], "Cost");

        va_SendClientMessage(playerid,-1,"%d",V[playerid][v_model]); // для дебага

        orm_select(ormid, "OnMySQL_SelectVehicles", "d", playerid);
PHP:
//тут уже проверка на то есть ли у игрока Т.С. или нет.
forward OnMySQL_SelectVehicles(playerid);
public OnMySQL_SelectVehicles(playerid)
{
	if(P[playerid][p_vehicle] >= 1){
		SendClientMessage(playerid,-1,"asda");
		new x = P[playerid][p_vehicle];
		Vehicle_Add(V[x][v_model],V[x][v_pos_x],V[x][v_pos_y],V[x][v_pos_z],V[x][v_angle],V[x][v_color_1],V[x][v_color_2]);
		va_SendClientMessage(playerid,-1,"%d | %.4f | %.4f | %.4f | %.4f | %d | %d",V[x][v_model],V[x][v_pos_x],V[x][v_pos_y],V[x][v_pos_z],V[x][v_angle],V[x][v_color_1],V[x][v_color_2]);
	}
}
Тут проблема в том что везде пишет 0, а если это Float, то 00.0000.
Я еще пробовал сделать так:
PHP:
//не работает
new x = P[playerid][p_vehicle];
V[x][v_model]...
//не работает
V[playerid][v_model]
Что-бы я не пробовал, всегда вижу одно число: 0

Как я делал через цикл:
PHP:
forward OnMySQL_SelectVehicles();
public OnMySQL_SelectVehicles()
{
	for(new x=0; x < sizeof(V); x++){
		V[x][_v_ormid] = orm_create("vehicles");

        orm_addvar_int(V[x][_v_ormid], V[x][v_uid], "VID");
        orm_setkey(V[x][_v_ormid], "VID");
        orm_addvar_int(V[x][_v_ormid], V[x][v_model], "Model");
        orm_addvar_int(V[x][_v_ormid], V[x][v_owner], "Owner");
        orm_addvar_float(V[x][_v_ormid], V[x][v_pos_x], "Pos_X");
        orm_addvar_float(V[x][_v_ormid], V[x][v_pos_y], "Pos_Y");
        orm_addvar_float(V[x][_v_ormid], V[x][v_pos_z], "Pos_Z");
        orm_addvar_float(V[x][_v_ormid], V[x][v_angle], "Angle");
        orm_addvar_float(V[x][_v_ormid], V[x][v_fuel], "Fuel");
        orm_addvar_int(V[x][_v_ormid], V[x][v_paint_job], "Paint_Job");
        orm_addvar_int(V[x][_v_ormid], V[x][v_color_1], "Color_1");
        orm_addvar_int(V[x][_v_ormid], V[x][v_color_2], "Color_2");
        orm_addvar_float(V[x][_v_ormid], V[x][v_cost], "Cost");

		orm_apply_cache(V[x][_v_ormid], x);

		Vehicle_Add(V[x][v_model],V[x][v_pos_x],V[x][v_pos_y],V[x][v_pos_z],V[x][v_angle],V[x][v_color_1],V[x][v_color_2]);

		printf("%d | %.4f | %.4f | %.4f | %.4f | %d | %d",V[x][v_model],V[x][v_pos_x],V[x][v_pos_y],V[x][v_pos_z],V[x][v_angle],V[x][v_color_1],V[x][v_color_2]);
	}
}
Результат который выдает printf:

У меня больше нету идей...
Смотрел код у модах из паблика, но там какая-то дичь...

Вопрос: Как сделать так, что-бы при входе, спавнилась машина игрока.

P.S: Владелец вычисляется из p_vehicle.
PHP:
SendClientMessage(playerid,-1,"%d",P[playerid][p_vehicle]);
// выдаст то значение что есть в БД, в моём случае это число 1
// Elegy что должна появлятся по координатам 0 0 3, в БД тоже находится под число 1, т.е. VID = 1
P.S.S: Если будет нужна еще информация, я с радостью её предоставлю.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу