PDA

Просмотр полной версии : [Вопрос] Сис-ма личного транспорта. (MySql)



Camelot
18.08.2014, 17:49
С БД всё в порядке.
Проблема при создании 3D-текста к транспорту.
При загрузке транспорта, прикрепляется 3D-TEXT не купленного транспорта. (не зависимо, куплен или не куплен)


const MAX_BUYCARS = 3;
enum cInfo { veh,Owner[MAX_PLAYER_NAME],Model,Level,Price,Text3D:Text }
new carInfo[MAX_BUYCARS][cInfo], allCars;
publics: BuyCarsLoad()
{
new timewe = GetTickCount();
cache_get_data(rows, fields);
if(!rows) return print("Error: Личный транспорт - Таблица пуста");
for(new car; car < rows; car++)
{
getstr(car, "Owner", carInfo[car][Owner], MAX_PLAYER_NAME);
carInfo[car][Model] = getint(car, "Model");
carInfo[car][Level] = getint(car, "Level");
carInfo[car][Price] = getint(car, "Price");
carInfo[car][veh] = CreateVehicle(carInfo[car][Model], 0,0,0,0, 1,1, 0);
static const
fmt1[] = "«Стоимость: %d$»\n«Уровень: %d»\nID: %d",
fmt2[] = "{ccff00}Владелец: {FFFFFF}%s\n{ccff00}ID: {FFFFFF}%d";
new msg[sizeof(fmt2) - 2 + MAX_PLAYER_NAME - 2 + 4];
if(!strcmp(carInfo[car][Owner], "No Name")) format(msg, sizeof(msg), fmt1, carInfo[car][Price], carInfo[car][Level], car);
else format(msg, sizeof(msg), fmt2, carInfo[car][Owner], car);
carInfo[car][Text] = Create3DTextLabel(msg, 0xFF0000FF, 0, 0, 0.6, 15, 0,1);
Attach3DTextLabelToVehicle(carInfo[car][Text], carInfo[car][veh], 0, 0, 0.6);
allCars++;
}
return printf("Загружено личных машин: %i. Времени затрачено: (%i мс)",allCars,GetTickCount()-timewe);
}

L0ndl3m
18.08.2014, 18:17
if(!strcmp(carInfo[car][Owner], "No Name"))
format(msg, sizeof(msg), fmt1, carInfo[car][Price], carInfo[car][Level], car);
else
{
format(msg, sizeof(msg), fmt2, carInfo[car][Owner], car);
carInfo[car][Text] = Create3DTextLabel(msg, 0xFF0000FF, 0, 0, 0.6, 15, 0,1);
Attach3DTextLabelToVehicle(carInfo[car][Text], carInfo[car][veh], 0, 0, 0.6);
}

Разберёшься что менять?

Camelot
18.08.2014, 18:24
if(!strcmp(carInfo[car][Owner], "No Name"))
format(msg, sizeof(msg), fmt1, carInfo[car][Price], carInfo[car][Level], car);
else
{
format(msg, sizeof(msg), fmt2, carInfo[car][Owner], car);
carInfo[car][Text] = Create3DTextLabel(msg, 0xFF0000FF, 0, 0, 0.6, 15, 0,1);
Attach3DTextLabelToVehicle(carInfo[car][Text], carInfo[car][veh], 0, 0, 0.6);
}

Разберёшься что менять?

Я знаю что проблема в этих строках. По этому и обратился сюда.

L0ndl3m
18.08.2014, 19:41
Я знаю что проблема в этих строках. По этому и обратился сюда.
Я уже код готовый дал.

Camelot
18.08.2014, 20:51
Я уже код готовый дал.
Не работает.

Camelot
18.08.2014, 22:56
Есть еще у кого какие предложения?

Camelot
19.08.2014, 02:14
Сделал тест:


//Загрузка:
getstr(car, "Owner", carInfo[car][Owner], MAX_PLAYER_NAME);
printf("Машина - %s",carInfo[car][Owner]);

//В логе:
[01:13:31] Машина -
[01:13:31] Машина -
[01:13:31] Машина -
[01:13:31] Загружено личных машин: 3. Времени затрачено: (3 мс)

L0ndl3m
19.08.2014, 02:17
if(!strcmp(carInfo[car][Owner], "No Name") || !strlen(carInfo[car][Owner]))
format(msg, sizeof(msg), fmt1, carInfo[car][Price], carInfo[car][Level], car);
else
{
format(msg, sizeof(msg), fmt2, carInfo[car][Owner], car);
carInfo[car][Text] = Create3DTextLabel(msg, 0xFF0000FF, 0, 0, 0.6, 15, 0,1);
Attach3DTextLabelToVehicle(carInfo[car][Text], carInfo[car][veh], 0, 0, 0.6);
}

Camelot
19.08.2014, 02:45
if(!strcmp(carInfo[car][Owner], "No Name") || !strlen(carInfo[car][Owner]))
format(msg, sizeof(msg), fmt1, carInfo[car][Price], carInfo[car][Level], car);
else
{
format(msg, sizeof(msg), fmt2, carInfo[car][Owner], car);
carInfo[car][Text] = Create3DTextLabel(msg, 0xFF0000FF, 0, 0, 0.6, 15, 0,1);
Attach3DTextLabelToVehicle(carInfo[car][Text], carInfo[car][veh], 0, 0, 0.6);
}


Здесь дело не в этом.
Проблема в том, что при записи в "carInfo[car][Owner]" из "Owner" не записывается.
P.S. Вставил Ваш код - 3D-TEXT перестали появляться.

- - - Добавлено - - -

Вот БД.


CREATE TABLE IF NOT EXISTS `Cars` (
`Owner` varchar(20) NOT NULL,
`Model` int(3) NOT NULL,
`Level` int(6) NOT NULL,
`Price` int(8) NOT NULL,
`Clr1` int(3) NOT NULL,
`Clr2` int(3) NOT NULL,
`X` float NOT NULL,
`Y` float NOT NULL,
`Z` float NOT NULL,
`A` float NOT NULL,
`Heal` float NOT NULL,
`Dmg1` int(12) NOT NULL,
`Dmg2` int(12) NOT NULL,
`Dmg3` int(12) NOT NULL,
`Dmg4` int(12) NOT NULL,
`PJob` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `Cars`
--

INSERT INTO `Cars` (`Owner`, `Model`, `Level`, `Price`, `Clr1`, `Clr2`, `X`, `Y`, `Z`, `A`, `Heal`, `Dmg1`, `Dmg2`, `Dmg3`, `Dmg4`, `PJob`) VALUES
('No Name', 411, 4, 100, 4, 5, 1628.89, -1159.24, 23.8961, 61.9159, 1000, 0, 0, 0, 0, 0),
('No Name', 438, 3, 600, 2, 7, 1637.83, -1158.51, 23.8995, 272.257, 1000, 0, 0, 0, 0, 0),
('Camelot', 522, 2, 300, 3, 4, 1645.29, -1158.78, 23.8984, 266.554, 1000, 0, 0, 0, 0, 0);

Camelot
19.08.2014, 02:56
Тему можно закрывать. Решил проблему.
У меня MySql r34. Не хватало ID подключения - "cHandle"

getstr(car, "Owner", carInfo[car][Owner], cHandle, MAX_PLAYER_NAME);
Спасибо за старательную помощь. ;)