 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
MySQL Plugin
| |
| Rishat | Дата: Суббота, 05.10.2013, 19:08 | Сообщение # 1 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 235
Награды: 3
Город: Nab. Chelny
Репутация: 56
Замечания: 0%
Статус: 
| Всё своё проведённое время в скриптинге я работал с dINI. Знаю для многих это покажется дикостью, но мне было привычнее с ним работать
Со всем не давно решил перевести свой мод на MySQL Plugin R7, нашёл в инете пустышку с мускулом и решил использовать его в качестве примера. Теперь возник такой вопрос, в чём разница между R5, R6 и R7?
Буду очень благодарен если кто то объяснит в чём особенности каждого из них
[off]p.s. С ответами, мол 'гугл в помощь' идите в леc. Спасибо за внимание[/off]
В догонку задам такой вопрос.
Перевёл систему домов на мускул и теперь такая проблема. После приобретения дома игроком всё нормально работает, но стоит только перезапустить сервер игроку выдаёт случайный дом. Но все другие параметры дома нормально сохраняются
Вот код сохранения дома:
Код stock SaveHouses() { new string[512],list[64]; for(new i=1; i<MAX_HOUSES; i++) { f(string, "UPDATE `house` SET "); f(list, "name = '%s',", HouseInfo[i][hName]); strcat(string, list); f(list, "owner = '%s',", HouseInfo[i][hOwner]); strcat(string, list); f(list, "interior = '%d',", HouseInfo[i][hInterior]); strcat(string, list); f(list, "carid = '%d',", HouseInfo[i][hCarID]); strcat(string, list); f(list, "color = '%d',", HouseInfo[i][hColor]); strcat(string, list); f(list, "health = '%d',", HouseInfo[i][hHealth]); strcat(string, list); f(list, "moneys = '%d',", HouseInfo[i][hMoneys]); strcat(string, list); f(list, "clooth = '%d',", HouseInfo[i][hClooth]); strcat(string, list); f(list, "save = '%d',", HouseInfo[i][hSave]); strcat(string, list); f(list, "doors = '%d'", HouseInfo[i][hDoors]); strcat(string, list); f(list, " WHERE `ID` = '%d'", i); strcat(string, list); mysql_function_query(MysqlConnect, string, false, "", ""); } return 1; }
Сохранения стока SaveHouses()
Код stock SaveAllInformation() { SaveHouses(); }
[Open Source] GTO v.0.5.8 - 0.7.2 [all series]
[GM] GTA-EU Role Play (akka Awesome RPg) [GM] MultiGTA - Rishat edition 2011
[MAP] Автошкола. (Los Santos) [MAP] Hospital - Больница (Los Santos)
Сообщение отредактировал Rishat - Суббота, 05.10.2013, 19:09 |
| |
|
|
| Fabervox | Дата: Суббота, 05.10.2013, 22:56 | Сообщение # 2 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 235
Награды: 1
Город: Краматорск
Репутация: 217
Замечания: 0%
Статус: 
| [FAQ] Учимся работать с PAWN+MYSQL Цитата (AirKite) mysql_query(query); в MySQL Plugin R7 попросту нет Цитата (Harris) Я в этом человек серый и безграмотный, но даже я знаю, что Р7 это последняя версия плагина, где команды идут разными потоками что приводит к оптимизации.
Т.е. главное отличие r7 в том что он многопоточен и от этого не совместим с предыдущими. С вопросами лучше соответствующую тему, как это ни странно но там его больше увидят. Вопрос | Ответ
RP в мире - как мух в сортире, а нужного чуда не видать покуда..©_Z_ Как посмотришь, сколько тысяч строчек кода, в одном файле, сразу понимаешь почему моды делают годами. Закон сохранения сложности
|
| |
|
|
| Rishat | Дата: Воскресенье, 06.10.2013, 13:29 | Сообщение # 3 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 235
Награды: 3
Город: Nab. Chelny
Репутация: 56
Замечания: 0%
Статус: 
| Цитата (Fabervox) Т.е. главное отличие r7 в том что он многопоточен и от этого не совместим с предыдущими. С вопросами лучше соответствующую тему, как это ни странно но там его больше увидят. Благодарю.
[off]Native functions: (All parameters in squared brackets are optional) * = R5, R6 (supports threaded and non-threaded scripts) * = R7 (supports only threaded scripts)[/off]
Про многопоточность мне уже объяснили, просто я ожидал, что мб кто нибудь более подробнее разжует. Ну да ладно, теперь осталась только одна проблема Это дома.
Вопрос по поводу систем домов все ещё актуален. Жду помощи
Сегодня поправил слегка таблицу БД, но ничего не изменилось.
Код CREATE TABLE IF NOT EXISTS `house` ( `ID` int(11) NOT NULL, `name` varchar(32) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL DEFAULT 'None', `owner` varchar(32) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL DEFAULT 'None', `level` int(11) NOT NULL, `price` int(11) NOT NULL, `interior` int(11) NOT NULL, `enterX` float NOT NULL, `enterY` float NOT NULL, `enterZ` float NOT NULL, `spawnX` float NOT NULL, `spawnY` float NOT NULL, `spawnZ` float NOT NULL, `spawnA` float NOT NULL, `carid` int(11) NOT NULL, `color` int(11) NOT NULL, `carX` float NOT NULL, `carY` float NOT NULL, `carZ` float NOT NULL, `carA` float NOT NULL, `health` int(11) NOT NULL, `moneys` int(11) NOT NULL, `clooth` int(11) NOT NULL, `save` int(11) NOT NULL, `doors` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
[Open Source] GTO v.0.5.8 - 0.7.2 [all series]
[GM] GTA-EU Role Play (akka Awesome RPg) [GM] MultiGTA - Rishat edition 2011
[MAP] Автошкола. (Los Santos) [MAP] Hospital - Больница (Los Santos)
Сообщение отредактировал Rishat - Воскресенье, 06.10.2013, 13:29 |
| |
|
|
| Rockman | Дата: Воскресенье, 06.10.2013, 20:13 | Сообщение # 4 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 428
Награды: 4
Город: Нижний Новгород
Репутация: 474
Замечания: 0%
Статус: 
| Rishat, если с сохранением все хорошо, то нужно искать ошибку при чтении из базы.
|
| |
|
|
| Rishat | Дата: Понедельник, 07.10.2013, 20:28 | Сообщение # 5 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 235
Награды: 3
Город: Nab. Chelny
Репутация: 56
Замечания: 0%
Статус: 
| Rockman, да, возможно. Я делал по примеру, там так же всё расписано.
в OnGameModeInit Код mysql_function_query(MysqlConnect,"SELECT * FROM `house`",true,"OnLoadHouseCallback","");
Загрузка калбэка
Код forward OnLoadHouseCallback(); public OnLoadHouseCallback() { new rows, fields, i, buf[64]; cache_get_data(rows, fields); for(i = 1; i < rows; i++) { cache_get_field_content(i, "name", buf), strmid(HouseInfo[i][hName], buf, 0, strlen(buf), 32); cache_get_field_content(i, "owner",buf), strmid(HouseInfo[i][hOwner], buf, 0, strlen(buf), 32); cache_get_field_content(i, "level",buf), HouseInfo[i][hLevel] = strval(buf); cache_get_field_content(i, "price", buf), HouseInfo[i][hCost] = strval(buf); cache_get_field_content(i, "interior", buf), HouseInfo[i][hInterior] = strval(buf); cache_get_field_content(i, "enterX", buf), HouseInfo[i][hEnterX]= floatstr(buf); cache_get_field_content(i, "enterY", buf), HouseInfo[i][hEnterY] = floatstr(buf); cache_get_field_content(i, "enterZ", buf), HouseInfo[i][hEnterZ] = floatstr(buf); cache_get_field_content(i, "spawnX", buf), HouseInfo[i][hSpawnX] = floatstr(buf); cache_get_field_content(i, "spawnY", buf), HouseInfo[i][hSpawnY] = floatstr(buf); cache_get_field_content(i, "spawnZ", buf), HouseInfo[i][hSpawnZ] = floatstr(buf); cache_get_field_content(i, "spawnA", buf), HouseInfo[i][hSpawnA] = floatstr(buf); cache_get_field_content(i, "carid", buf), HouseInfo[i][hCarID] = strval(buf); cache_get_field_content(i, "color", buf), HouseInfo[i][hColor] = strval(buf); cache_get_field_content(i, "carX", buf), HouseInfo[i][hCarX] = floatstr(buf); cache_get_field_content(i, "carY", buf), HouseInfo[i][hCarY] = floatstr(buf); cache_get_field_content(i, "carZ", buf), HouseInfo[i][hCarZ] = floatstr(buf); cache_get_field_content(i, "carA", buf), HouseInfo[i][hCarA] = floatstr(buf); cache_get_field_content(i, "health", buf), HouseInfo[i][hHealth] = strval(buf); cache_get_field_content(i, "moneys", buf), HouseInfo[i][hMoneys] = strval(buf); cache_get_field_content(i, "clooth", buf), HouseInfo[i][hClooth] = strval(buf); cache_get_field_content(i, "save", buf), HouseInfo[i][hSave] = strval(buf); cache_get_field_content(i, "doors", buf), HouseInfo[i][hDoors] = strval(buf); if(!strcmp(HouseInfo[i][hOwner], "None", true)) { HousePickupOut[i] = CreateDynamicPickup(1273, 23, HouseInfo[i][hEnterX], HouseInfo[i][hEnterY], HouseInfo[i][hEnterZ]); HouseInfo[i][hIcon] = CreateDynamicMapIcon(HouseInfo[i][hEnterX], HouseInfo[i][hEnterY], HouseInfo[i][hEnterZ], 31, COLOR_WHITE, 0, -1, -1, 400.0); } else { HousePickupOut[i] = CreateDynamicPickup(1272, 23, HouseInfo[i][hEnterX], HouseInfo[i][hEnterY], HouseInfo[i][hEnterZ]); HouseInfo[i][hIcon] = CreateDynamicMapIcon(HouseInfo[i][hEnterX], HouseInfo[i][hEnterY], HouseInfo[i][hEnterZ], 32, COLOR_WHITE, 0, -1, -1, 400.0); } CreateHouseExitPickup(i); HouseOpen[i] = false; } printf(" [Çàãðóæåíî äîìîâ] - %i.", i); return 1; }
Будьте добры, помогите мне  Добавлено (07.10.2013, 20:28) --------------------------------------------- Заметил такую аномалию. Купил я дом и изменил пару параметров (интерьер, гардероб, название дома) и при этом номер дома был (id) 119.
Теперь внимание. Делаю рестарт сервера. Захожу и вижу такую картину. Все параметры дома сохранились, НО ID дома сменился на 118 и теперь этот дом находиться в другом месте.
[Open Source] GTO v.0.5.8 - 0.7.2 [all series]
[GM] GTA-EU Role Play (akka Awesome RPg) [GM] MultiGTA - Rishat edition 2011
[MAP] Автошкола. (Los Santos) [MAP] Hospital - Больница (Los Santos)
Сообщение отредактировал Rishat - Понедельник, 07.10.2013, 12:20 |
| |
|
|
| Weddew | Дата: Понедельник, 07.10.2013, 22:24 | Сообщение # 6 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Rishat) Заметил такую аномалию. Купил я дом и изменил пару параметров (интерьер, гардероб, название дома) и при этом номер дома был (id) 119.
Теперь внимание. Делаю рестарт сервера. Захожу и вижу такую картину. Все параметры дома сохранились, НО ID дома сменился на 118 и теперь этот дом находиться в другом месте.
Ошибка вот тут: Цитата (Rishat) for(i = 1; i < rows; i++) Должно быть: [pwn]for(i = 0; i < rows; i++)[/pwn]
Запомните, у программистов отсчет всегда идет с 0.
www.weddew-shop.ru
|
| |
|
|
| Rishat | Дата: Вторник, 08.10.2013, 15:27 | Сообщение # 7 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 235
Награды: 3
Город: Nab. Chelny
Репутация: 56
Замечания: 0%
Статус: 
| Цитата (Weddew) Запомните, у программистов отсчет всегда идет с 0. Так и делал. Не работает. В БД записи начинаются с единицы.
Чуть чуть по другому сделал. В цикле от каждого значения i отнимал единичку Ещё не тестил, завтра затестю и отпишусь
Да, теперь всё работает. Решение данной проблемы находиться в предыдущем посте. Спасибо всем кто помогал!
Тему можно закрыть.
[Open Source] GTO v.0.5.8 - 0.7.2 [all series]
[GM] GTA-EU Role Play (akka Awesome RPg) [GM] MultiGTA - Rishat edition 2011
[MAP] Автошкола. (Los Santos) [MAP] Hospital - Больница (Los Santos)
Сообщение отредактировал Rishat - Вторник, 08.10.2013, 15:28 |
| |
|
|
| Weddew | Дата: Вторник, 08.10.2013, 21:59 | Сообщение # 8 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Rishat) В БД записи начинаются с единицы. Вы не совсем меня поняли. Я имею в виду, что отсчет списка строк начинается с 0. В вашем примере отсчет начинался со 2 результата, полученного из базы.Добавлено (08.10.2013, 21:59) --------------------------------------------- Если все исправлено, то закрываю
www.weddew-shop.ru
|
| |
|
|
| Rishat | Дата: Четверг, 04.09.2014, 19:36 | Сообщение # 9 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 235
Награды: 3
Город: Nab. Chelny
Репутация: 56
Замечания: 0%
Статус: 
| На офф сайте ссылки на MySQL R7 битые. Будьте добры поделиться! За старенькое вознаграждение, что то вроде плюса в репутацию обещаю)
[Open Source] GTO v.0.5.8 - 0.7.2 [all series]
[GM] GTA-EU Role Play (akka Awesome RPg) [GM] MultiGTA - Rishat edition 2011
[MAP] Автошкола. (Los Santos) [MAP] Hospital - Больница (Los Santos)
Сообщение отредактировал Rishat - Четверг, 04.09.2014, 19:37 |
| |
|
|
|
 |
|
 | |
| |
|