19:22
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[Include] RemoveBuilding (2)
JasonGordon 24.05.2017 23:48
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 212»
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » не создается машина
не создается машина
_BigSm0ke_Дата: Воскресенье, 24.06.2012, 22:12 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Code
for(new i = 1; i == car_num; i++)
   {
       if(CarInfo[i][cSale] ==1)
       {
     CarMassive[i] = CreateVehicle(CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],1);
     printf("CarMassive[%d]=%d",i,CarMassive[i]);
    }
   }


Code
LoadCarInfo()
{
      new query[1024],result[1024];
      format(query,sizeof(query),"SELECT COUNT(*) FROM `pcars`");
   mysql_query(query);
   mysql_store_result();
   car_num = mysql_num_rows();
   printf("Car_Nums: %d",car_num);
      for(new i = 1; i == car_num; i++)
   {
       format(query, sizeof(query), "SELECT * FROM `pcars` WHERE `cID` = '%i'" ,i);
        mysql_query(query);
       mysql_store_result();
       if(mysql_num_rows() == 1)
    {
        mysql_fetch_row_format(result, "|");
        sscanf(result, "p<|>iiiiiiiffffii",
        CarInfo[i][cID],
        CarInfo[i][cOwnerID],
        CarInfo[i][cModel],
        CarInfo[i][cCost],
        CarInfo[i][cSale],
        CarInfo[i][cWeapon],
        CarInfo[i][cAmmo],
        CarInfo[i][cx],
        CarInfo[i][cy],
        CarInfo[i][cz],
        CarInfo[i][cangle],
     CarInfo[i][cColor1],
     CarInfo[i][cColor2]);
        mysql_free_result();
        printf("Çàãðóçêà ìàøèí:");
      printf("ID %d, Âëàäåëåö %d, Ìîäåëü %d, Öåíà %d",CarInfo[i][cID],CarInfo[i][cOwnerID],CarInfo[i][cModel],CarInfo[i][cCost]);
    }
   }
   return 1;
}


Идея такая,есть таблица с машинами, добавляются они туда владельцем авторынка, если машина продается cSale = 1 то спавним её при запуске мода .. ну и так далее кто в нее сядет тот купит и т.п., а те которые уже куплены cSale = 0; то они заспавнятся при заходе в игру владельца...
Пока тестирую только на одной машине. Есть машина, она продается cSale=1; но она не появляется почемуто... хотя из таблицы все данные записываются нормально проверял сто раз... в чем может быть проблема



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Воскресенье, 24.06.2012, 22:13
BorogДата: Воскресенье, 24.06.2012, 23:10 | Сообщение # 2
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус:
_BigSm0ke_,
  • Во-первых зачем ты начинаешь читать массив со второй ячайки?

    for(new i = 1; i == car_num; i++)
    {
    if(CarInfo[i][cSale] ==1)
    ...
    Массив с 0 начинается, а не с 1
    Во втором коде тоже самое. Только в нем не забудь еще в запросе к i единицу прибавлять

  • Во-вторых некорректно используется ф-ия
    if(mysql_num_rows() == 1)

    Она возвращает кол-во найденных строк. А ты записываешь данные, только если найдена одна единственная
    Оставь просто: if(mysql_num_rows())

    Больше беглым взглядом никаких косяков не увидел. Исправляй эти пока


    Silver Break
    http://s-break.ru/
    http://vk.com/sbreak
  • _BigSm0ke_Дата: Понедельник, 25.06.2012, 00:03 | Сообщение # 3
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    насчет первого я знаю, просто чтобы без смещений этих было начинаю с 1 .. а то запутаюсь....
    насчет второго ок...
    все равно данные все считываются нормально, в массив записываются, проверено, а машина не создается.. почему?



    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    KämpferДата: Понедельник, 25.06.2012, 01:09 | Сообщение # 4
    Освоившийся
    Группа: Продвинутые
    Сообщений: 114
    Награды: 15
    Город: /
    Репутация: 163
    Замечания: 40%
    Статус:
    Идет обработка первого запроса, он прерывается вторым => первый уже не продолжиться, у тебя полученные результаты заменены новыми со 2 запроса.. Зачем тут 2 запроса не понятно, достаточно одного:
    Code
    stock    LoadCarInfo( )  
    {  
        
       mysql_query( "SELECT * FROM `pcars`" );  
       mysql_store_result( );  
       if( !mysql_num_rows( ) ) print( "Таблица пуста!" );  
       else
       {
        new result[1024];  
        while( mysql_fetch_row_format( result, "|" ) )
        {
         sscanf( result, "p<|>iiiiiiiffffii",  CarInfo[ i ][ cID ],  
                                  CarInfo[ i ][ cOwnerID ],  
                                  CarInfo[ i ][ cModel ],  
                                  CarInfo[ i ][ cCost ],  
                                  CarInfo[ i ][ cSale ],  
                                  CarInfo[ i ][ cWeapon ],  
                                  CarInfo[ i ][ cAmmo ],  
                                  CarInfo[ i ][ cx ],  
                                  CarInfo[ i ][ cy ],  
                                  CarInfo[ i ][ cz ],  
                                  CarInfo[ i ][ cangle ],  
                                  CarInfo[ i ][ cColor1 ],  
                                  CarInfo[ i ][ cColor2 ] );  
        }
        print( "Данные выгружены!" );  
       }
       mysql_free_result( );  
       return true;  
    }

    Добавлено (25.06.2012, 01:09)
    ---------------------------------------------
    забыл переменную i инициализировать и прибавлять, там сам уже разберешься!


    Гитлер капут

    Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. ©

    Оплачиваемая личная помощь, исправление и оптимизация кода, написание небольших скриптов.
    skype: kampfer_88
    _BigSm0ke_Дата: Понедельник, 25.06.2012, 11:27 | Сообщение # 5
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    первый запрос чтобы посчитать к-во записей и сохранить их в переменную car_num


    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    _BigSm0ke_Дата: Понедельник, 25.06.2012, 13:36 | Сообщение # 6
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    Народ ну помогите в чем проблема... я не пойму.. вот .. упрощу даже задачу...
    есть команда:
    Code
    CMD:cveh(playerid, params[])
    {
         new i=1;
         CreateVehicle(CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],0);
         new strstr[512];
         format(strstr,sizeof(strstr),"id=%d,model=%d,x: %f, y: %f, z: %f,angle=%f",CarInfo[i][cID],CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle]);
         SendClientMessage(playerid,COLOR_LTBLUE,strstr);
         return 1;
    }


    вот что в игре

    [cut noguest=результат от команды 1]

    [/cut]

    Хотя если я например сделаю вот такую команду:

    Code
    CMD:cveh(playerid, params[])
    {
         new i=1;
          new Float:px,Float:py,Float:pz;
          GetPlayerPos(playerid,px,py,pz);
          CreateVehicle(CarInfo[i][cModel],px,py,pz,CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],0);
         //CreateVehicle(CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],0);
         new strstr[512];
         format(strstr,sizeof(strstr),"id=%d,model=%d,x: %f, y: %f, z: %f,angle=%f",CarInfo[i][cID],CarInfo[i][cModel],px,py,pz,CarInfo[i][cangle]);
         SendClientMessage(playerid,COLOR_LTBLUE,strstr);
         return 1;
    }


    то машина сразу создается...

    [cut noguest=результат от команды 2]

    [/cut]

    получается проблема в координатах... но какая?? ....что за бред? помогите плиз



    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут


    Сообщение отредактировал _BigSm0ke_ - Понедельник, 25.06.2012, 13:43
    ПлохишДата: Понедельник, 25.06.2012, 14:25 | Сообщение # 7
    Новенький
    Группа: Пользователи
    Сообщений: 62
    Награды: 0
    Город: Йошкар-Ола
    Репутация: -93
    Замечания: 60%
    Статус:
    _BigSm0ke_, я не понял, в чем у тебя проблема?
    если ты хочешь узнать почему создается машина, то во втором случае, ты узнаешь координаты местоположения игрока и создаешь там машину, а в первом, ты координаты загружаешь насколько я понял из файла и машина не создается, т.к. либо неправильно прописаны координаты в файле, либо их вообще нету.



    Plohysh Style
    [img]http://s006.radikal.ru/i214/1206/5e/893d7989eb30.gif[/img]
    КАК ВСТАВИТЬ КАРТИНКУ В ПОДПИСЬ?!?!!?
    _BigSm0ke_Дата: Понедельник, 25.06.2012, 15:54 | Сообщение # 8
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    а че по скрину не видно чтоли что в первом случае координаты нормальные? а машина почему то блин не создается....


    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    SoupДата: Понедельник, 25.06.2012, 16:56 | Сообщение # 9
    Новенький
    Группа: Пользователи
    Сообщений: 26
    Награды: 0
    Город: Москоу
    Репутация: -386
    Замечания: 100%
    Статус:
    Проблема в цикле.
    for(new i = 1; i == car_num; i++)

    Что такое car num и с чем его едят ?
    Попробуй так:

    Code
    for(new i = 1; i == car_num; i++)
        {
            if(CarInfo[i][cSale] ==1)
            {
            car_num ++;
          CarMassive[i] = CreateVehicle(CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],1);
          printf("CarMassive[%d]=%d",i,CarMassive[i]);
         }
        }


    Либо:

    Quote
    for(new i = 1; i < car_num; i++)
    {
    if(CarInfo[i][cSale] ==1)
    {
    CarMassive[i] = CreateVehicle(CarInfo[i][cModel],CarInfo[i][cx],CarInfo[i][cy],CarInfo[i][cz],CarInfo[i][cangle],CarInfo[i][cColor1],CarInfo[i][cColor2],1);
    printf("CarMassive[%d]=%d",i,CarMassive[i]);
    }

    KämpferДата: Понедельник, 25.06.2012, 21:36 | Сообщение # 10
    Освоившийся
    Группа: Продвинутые
    Сообщений: 114
    Награды: 15
    Город: /
    Репутация: 163
    Замечания: 40%
    Статус:
    _BigSm0ke_, вы меня, конечно, извините, но вы идиот или да?
    Я постом выше все разжевал и даже ВСЕ за вас написал, в чем трудность взять мой код и разобрать, ебн*й в рот, совсем обленились "скриптеры"...



    Гитлер капут

    Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. ©

    Оплачиваемая личная помощь, исправление и оптимизация кода, написание небольших скриптов.
    skype: kampfer_88
    _BigSm0ke_Дата: Понедельник, 25.06.2012, 23:49 | Сообщение # 11
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    я конечно извиню вас, но все что вы пишите мне не надо и система сохранения и загрузки данных из бд у меня работает как часы... а проблема была в другом и она уже решена, так что спасибо за внимание, тему можете закрыть...


    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    KämpferДата: Вторник, 26.06.2012, 00:21 | Сообщение # 12
    Освоившийся
    Группа: Продвинутые
    Сообщений: 114
    Награды: 15
    Город: /
    Репутация: 163
    Замечания: 40%
    Статус:
    Quote (_BigSm0ke_)
    но все что вы пишите мне не надо и система сохранения и загрузки данных из бд у меня работает как часы...

    эт вряд ли, после выложенного кода выше, который осуществляет взаимодействие с базой (запросы)...
    Там где достаточно одного запроса после которого циклом можно обработать все полученные из базы данные, у вас 2 запроса, да и к тому же в случае удаления например элемента с идентификатором (идом) 3, вы уже потеряете одну запись (в конце), при выгрузке данных в мод.
    Вприцнипи если вы не принимаете советов, тех кто знает поболее вас, то смысла что-то объяснять я не вижу, удачи.



    Гитлер капут

    Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. ©

    Оплачиваемая личная помощь, исправление и оптимизация кода, написание небольших скриптов.
    skype: kampfer_88
    _BigSm0ke_Дата: Среда, 27.06.2012, 16:41 | Сообщение # 13
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    Quote (Kämpfer)
    эт вряд ли, после выложенного кода выше, который осуществляет взаимодействие с базой (запросы)...
    Там где достаточно одного запроса после которого циклом можно обработать все полученные из базы данные, у вас 2 запроса, да и к тому же в случае удаления например элемента с идентификатором (идом) 3, вы уже потеряете одну запись (в конце), при выгрузке данных в мод.
    Вприцнипи если вы не принимаете советов, тех кто знает поболее вас, то смысла что-то объяснять я не вижу, удачи.


    да чето я погорячился)) Я понял что вы имеете ввиду...

    Quote (Kämpfer)
    stock    LoadCarInfo( )  
    {  
        
       mysql_query( "SELECT * FROM `pcars`" );  
       mysql_store_result( );  
       if( !mysql_num_rows( ) ) print( "Таблица пуста!" );  
       else
       {
        new result[1024];  
        while( mysql_fetch_row_format( result, "|" ) )
        {
         sscanf( result, "p<|>iiiiiiiffffii",  CarInfo[ i ][ cID ],  
                                  CarInfo[ i ][ cOwnerID ],  
                                  CarInfo[ i ][ cModel ],  
                                  CarInfo[ i ][ cCost ],  
                                  CarInfo[ i ][ cSale ],  
                                  CarInfo[ i ][ cWeapon ],  
                                  CarInfo[ i ][ cAmmo ],  
                                  CarInfo[ i ][ cx ],  
                                  CarInfo[ i ][ cy ],  
                                  CarInfo[ i ][ cz ],  
                                  CarInfo[ i ][ cangle ],  
                                  CarInfo[ i ][ cColor1 ],  
                                  CarInfo[ i ][ cColor2 ] );  
        }
        print( "Данные выгружены!" );  
       }
       mysql_free_result( );  
       return true;  
    }


    можете поподробнее расписать как тут считывание происходит? немогу понять... вы сразу всю таблицу считываете а как потом данные в массив заносятся? чето несоображу...



    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    KämpferДата: Среда, 27.06.2012, 16:52 | Сообщение # 14
    Освоившийся
    Группа: Продвинутые
    Сообщений: 114
    Награды: 15
    Город: /
    Репутация: 163
    Замечания: 40%
    Статус:
    SELECT * FROM `pcars`- данный запрос "вытащит" все поля из таблицы pcars, далее, функцией mysql_num_rows( ) - проверяем, если вернуло 0 полей, то просто сообщаем что таблица пуста и все, если же их > 0 то запускаем цикл, while( mysql_fetch_row_format( result, "|" ) ) - который будет выполнятся пока не будет обработана каждая строка таблицы, при каждом проходе цикла, в result записывается новая строка из БД, в которой поля написаны единой строкой и разделяются знаком "|", разделить каждое поле и записать в свою ячейку нам помогает функция sscanf, она раскидывает каждое значение в свою ячейку массива CarInfo, и дальше перескакивает на следующую строку которую вернул запрос, тем самым мы просто циклом перебираем все, вернувшиеся нам в результате запроса, строки таблицы. Ну и в конце мы освобождаем результаты которые были сохранены в памяти плагина после запроса, функцией mysql_free_result( ), собственно все.


    Гитлер капут

    Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. ©

    Оплачиваемая личная помощь, исправление и оптимизация кода, написание небольших скриптов.
    skype: kampfer_88
    _BigSm0ke_Дата: Среда, 27.06.2012, 21:14 | Сообщение # 15
    Местный
    Группа: I'm V.I.P.
    Сообщений: 674
    Награды: 5
    Город: Москва
    Репутация: 127
    Замечания: 0%
    Статус:
    а сохранять как машины лучше?


    LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
    Продаю РП мод: подробнее тут
    Решаю задачи по техническим дисциплинам, подробнее тут
    Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » не создается машина
    Страница 1 из 212»
    Поиск:





     


     


     
    Хостинг от uCoz SAMP-RUS.COM