SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 18/03/2017, 08:30 PM   #1
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 142
Reputation: 5
Question MySQL | Система личного Т.С.

Начал создавать систему личного Т.С.
Столкнулся с такой проблемой что транспорт тупо не выгружается из Базы Данных.
PHP Code:
enum E_VEHICLE_DATA {
    
ORM_v_ormid,
    
_v_stream_id,
    
_v_stream_url[128],
    
// mysql synced
    
v_uid,
    
v_model,
    
v_owner,
    
Floatv_pos_x,
    
Floatv_pos_y,
    
Floatv_pos_z,
    
Floatv_angle,
    
Floatv_fuel,
    
v_paint_job,
    
v_color_1,
    
v_color_2,
    
v_component[10],
    
Floatv_cost
}
new 
V[MAX_VEHICLES][E_VEHICLE_DATA]; 
Если прогонять через цикл (т.е. sizeof V) то делается 2000 тыс. проверок и машина появляется...но, этот вариант мне не подходит, по скольку Т.С. нужно спавнить при входе игрока на сервер, поэтому в диалоге, который отвечает за успешный вход, я добавил следующее:
PHP Code:
        new P[playerid][p_vehicle];
        new 
ORMormid V[x][_v_ormid] = orm_create("vehicles");

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

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

        
orm_select(ormid"OnMySQL_SelectVehicles""d"playerid); 
PHP Code:
//тут уже проверка на то есть ли у игрока Т.С. или нет.
forward OnMySQL_SelectVehicles(playerid);
public 
OnMySQL_SelectVehicles(playerid)
{
    if(
P[playerid][p_vehicle] >= 1){
        
SendClientMessage(playerid,-1,"asda");
        new 
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 Code:
//не работает
new P[playerid][p_vehicle];
V[x][v_model]...
//не работает
V[playerid][v_model
Что-бы я не пробовал, всегда вижу одно число: 0

Как я делал через цикл:
PHP Code:
forward OnMySQL_SelectVehicles();
public 
OnMySQL_SelectVehicles()
{
    for(new 
x=0sizeof(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: http://pastebin.com/kb0wDmDL

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

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

P.S: Владелец вычисляется из p_vehicle.
PHP Code:
SendClientMessage(playerid,-1,"%d",P[playerid][p_vehicle]);
// выдаст то значение что есть в БД, в моём случае это число 1
// Elegy что должна появлятся по координатам 0 0 3, в БД тоже находится под число 1, т.е. VID = 1 
P.S.S: Если будет нужна еще информация, я с радостью её предоставлю.
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Old 18/03/2017, 09:33 PM   #2
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,405
Reputation: 65
Default Re: MySQL | Система личного Т.С.

Ничего не понял. Что значит не выгружается из БД?
Если ты хочешь подгрузить личный ТС, то в базе можно прочесть ту машину, которая принадлежит игроку по столбцу ""Owner"". Я надеюсь, что в "Owner" ты хранишь БД_ИД игрока.
__________________
White_116 is offline   Reply With Quote
Old 19/03/2017, 12:15 AM   #3
Johhnyllll
Big Clucker
 
Johhnyllll's Avatar
 
Join Date: Sep 2014
Posts: 142
Reputation: 5
Default Re: MySQL | Система личного Т.С.

Quote:
Originally Posted by White_116 View Post
Ничего не понял. Что значит не выгружается из БД?
Если ты хочешь подгрузить личный ТС, то в базе можно прочесть ту машину, которая принадлежит игроку по столбцу ""Owner"". Я надеюсь, что в "Owner" ты хранишь БД_ИД игрока.
Да, в столбце Owner UID игрока, в моем случае это 1.
__________________
Мои проекты: GitHub
Johhnyllll is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Система домов для MySQL R39-3 Johhnyllll Русский/Russian 3 21/08/2015 12:17 PM
Путаються иды личного транспорта. gensek4 Русский/Russian 3 08/03/2015 01:05 PM
Система личного транспорта stabker Русский/Russian 1 30/04/2012 11:24 PM
[FilterScript] Бан-система по дням [MySQL] Splav Релизы/Releases 18 31/01/2012 11:55 AM
На счет личного транспорта(удаление) mid119 Русский/Russian 11 11/08/2011 06:08 PM


All times are GMT. The time now is 06:18 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.