• 0
Vitaliy_Piterskiy

[закрыто] Система билбордов

Вопросы

помогите решить проблему, я сделал Систему рекламы на билбордах, и билборды с базы данных не читает в моде все норм, в чем может быть проблема,

вот сток кода базы

Спойлер


stock LoadBildboards()
{
    new currenttime = GetTickCount();
    new Cache:result = mysql_query(mysql, "SELECT * FROM `Billboards`");
    TotalBildboards = cache_get_row_count(mysql);
    for(new idx = 0;idx < TotalBildboards; idx++)
    {
        BildInfo[idx][bModel] = cache_get_field_content_int(idx, "bModel", mysql);
        
        cache_get_field_content(idx, "bText", BildInfo[idx][bText],mysql,144);
        cache_get_field_content(idx, "bPosText", BildInfo[idx][bPosText],mysql,32);
        cache_get_field_content(idx, "bOwner", BildInfo[idx][bOwner],mysql,MAX_PLAYER_NAME);
        
        BildInfo[idx][bBackColor] = cache_get_field_content_int(idx, "bBackColor", mysql);
        BildInfo[idx][bFontFace] = cache_get_field_content_int(idx, "bFontFace", mysql);
        BildInfo[idx][bAligment] = cache_get_field_content_int(idx, "bAligment", mysql);
        BildInfo[idx][bFontSize] = cache_get_field_content_int(idx, "bFontSize", mysql);
        BildInfo[idx][bPos][0] = cache_get_field_content_float(idx, "PosX", mysql);
        BildInfo[idx][bPos][1] = cache_get_field_content_float(idx, "PosY", mysql);
        BildInfo[idx][bPos][2] = cache_get_field_content_float(idx, "PosZ", mysql);
        BildInfo[idx][bPos][3] = cache_get_field_content_float(idx, "PosA", mysql);
        BildInfo[idx][bDay] = cache_get_field_content_int(idx, "bDay", mysql);
        BildInfo[idx][bHours] = cache_get_field_content_int(idx, "bHours", mysql);
        
        BildInfo[idx][bObjectID] = CreateObject(BildInfo[idx][bModel], BildInfo[idx][bPos][0], BildInfo[idx][bPos][1], BildInfo[idx][bPos][2],
            0.000000000.00000000, BildInfo[idx][bPos][3], 300); // bObject
            
        UpdateBuildText(idx);
    }
    cache_delete(result, mysql);
    printf("LoadBildboards загрузился за %i ms", GetTickCount() - currenttime);
    return 1;
}
stock SaveBildboard(bildid)
{
    new string[1024];
    format(string, sizeof(string), "\
        UPDATE `Billboards` SET `bText` = '%s', `bOwner` = '%s', `bBackColor` = '%d', `bFontFace` = '%d', \
        `bAligment` = '%d', `bFontSize` = '%d', `bDay` = '%d', `bHours` = '%d' WHERE `id` = '%i'",
        BildInfo[bildid][bText],
        BildInfo[bildid][bOwner],
        BildInfo[bildid][bBackColor],
        BildInfo[bildid][bFontFace],
        BildInfo[bildid][bAligment],
        BildInfo[bildid][bFontSize],
        BildInfo[bildid][bDay],
        BildInfo[bildid][bHours],
        bildid);
    
    mysql_query(mysql, string, false);
    return true;


 

 

Отредактировано пользователем Cawfee

Поделиться сообщением


Ссылка на сообщение

13 ответов на этот вопрос

  • 0
case 1:
{
    new str[24], strs[1024];
    for(new i, z = sizeof(Colors_LOW); i<z; i++) format(str,24,"{%s}Фон\n",Colors_LOW[i]), strcat(strs, str);
    SPD(playerid,1183,DIALOG_STYLE_LIST,"{E5D81E}Цвет фона",strs,"Изменить","Назад");
}

Просто у вас одна глобальная переменная, а судя по всему, даже перед её редактированием её не "чистят", попробуйте так, как сделано выше.

 

Поделиться сообщением


Ссылка на сообщение
  • 0

загрузка LoadBildboards(), есть в OnGameModeInit() ?

Поделиться сообщением


Ссылка на сообщение
  • 0

@danya_white нету

Поделиться сообщением


Ссылка на сообщение
  • 0
1 минуту назад, Vitaliy_Piterskiy сказал:

@danya_white нету

добавь, и проверь.

Отредактировано пользователем danya_white

Поделиться сообщением


Ссылка на сообщение
  • 0

@danya_white все заработало спасибо.

Поделиться сообщением


Ссылка на сообщение
  • 0

@danya_white при выборе фона появилось вот это скриншот

Поделиться сообщением


Ссылка на сообщение
  • 0
17 минут назад, Vitaliy_Piterskiy сказал:

@danya_white при выборе фона появилось вот это скриншот

Это уже в диалоге - "Цвет фона", нужно смотреть.

Поделиться сообщением


Ссылка на сообщение
  • 0

@danya_white 

    case 1183:
        {
            if(!response) return ShowPlayerEditMenu(playerid);
            new p_var = GetPVarInt(playerid,"SelectBildID");
            BildInfo[p_var][bBackColor] = listitem;
            SendClientMessage(playerid,COLOR_LIME,"Öâåò ôîíà ðåêëàìíîãî áèëáîðäà óñïåøíî èçìåíåí");
            ShowPlayerEditMenu(playerid), UpdateBuildText(p_var);
            SaveBildboard(p_var);
        }

 

Поделиться сообщением


Ссылка на сообщение
  • 0
stock ShowPlayerEditMenu(playerid) покажи

Поделиться сообщением


Ссылка на сообщение
  • 0

@danya_white 

stock ShowPlayerEditMenu(playerid)
{
    new string[256] = "{33AA33}Ïàðàìåòð\t{33AA33}Çíà÷åíèå\n", str[64], p_var = GetPVarInt(playerid,"SelectBildID"), font_face[12], aligment_name[18];

    BildIntro(playerid, p_var, -13);

    switch(BildInfo[p_var][bFontFace])
    {
        case 0: font_face = "Arial";
        case 1: font_face = "Calibri";
        case 2: font_face = "Tahoma";
        case 3: font_face = "Verdana";
    }

    switch(BildInfo[p_var][bAligment])
    {
        case 0: aligment_name = "Ïî ëåâîìó êðàþ";
        case 1: aligment_name = "Ïî öåíòðó";
        case 2: aligment_name = "Ïî ïðàâîìó êðàþ";
    }

    strcat(string,"\nÒåêñò\t{BDB76B}Èçìåíèòü...");
    format(str,64,"\nÖâåò ôîíà\t{%s}Ôîí",Colors_LOW[BildInfo[p_var][bBackColor]]), strcat(string,str);
    format(str,64,"\nØðèôò òåêñòà\t%s",font_face), strcat(string,str);
    format(str,32,"\nÐàçìåð òåêñòà\t%i",BildInfo[p_var][bFontSize]), strcat(string,str);
    format(str,64,"\nÂûðàâíèâàíèå òåêñòà\t%s",aligment_name), strcat(string,str);
//  format(str,32,"\n[!] Èíôîðìàöèÿ î áàííåðàõ");
    strcat(string,"\nÀðåíäà {1A8FA9}àêòèâíà\t{EE4000}Ðàçîðâàòü äîãîâîð...");

    return SPD(playerid,1173,DIALOG_STYLE_TABLIST_HEADERS,"{E5D81E}Íàñòðîéêà ïàðàìåòðîâ ðåêëàìû.",string,"Âûáðàòü","Çàêðûòü");
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Покажите пожалуйста 1173 диалог, и его скриншот (для нашего понимания)

Поделиться сообщением


Ссылка на сообщение
  • 0

@Sleash`en 

    case 1173:
        {
            if(!response) return SetCameraBehindPlayer(playerid), f_TogglePlayerControllable(playerid, true), SetPlayerInterior(playerid, 1), true;
            switch(listitem)
            {
                case 0: SPD(playerid,1182,DIALOG_STYLE_INPUT,"{E5D81E}Редактирование текста",""W"Настоятельно рекомендуем прочитать {1A8FA9}помощь по размещению рекламы"W", которая находится слева от Вас\nВведите текст объявления в поле ниже","Изменить","Назад");
                case 1:
                {
                    new str[24];
                    for(new i, z = sizeof(Colors_LOW); i<z; i++) format(str,24,"{%s}Фон\n",Colors_LOW[i]), strcat(string, str);
                    SPD(playerid,1183,DIALOG_STYLE_LIST,"{E5D81E}Цвет фона",string,"Изменить","Назад");
                }
                case 2: SPD(playerid,1184,DIALOG_STYLE_LIST,"{E5D81E}Шрифт","Arial\nCalibri\nTahoma\nVerdana","Выбрать","Назад");
                case 3: SPD(playerid,1185,DIALOG_STYLE_INPUT,"{E5D81E}Размер текста",""W"Укажите размер текста (от 1 до 255)","Выбрать","Назад");
                case 4: SPD(playerid,1189,DIALOG_STYLE_LIST,"{E5D81E}Выравнивания текста","По левому краю\nПо центру\nПо правому краю","Выбрать","Назад");
                case 5: SPD(playerid,1187,DIALOG_STYLE_MSGBOX,"{E5D81E}Расторжение договора",""W"Вы действительно хотите разорвать договор с этим билбордом?","Да","Нет");
            }
        }

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Sleash`en помогло спасибо.

Заметка от _bogdan_ , создано

2.8. Если вы нашли ответ на свой вопрос, рекомендуется поощрить автора лучшего ответа поднятием репутации, а также обязательно пометить ответ на вопрос лучшим.  Как пометить ответ лучшим?

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Danya_Lucky
      От Danya_Lucky
      CMD:car(playerid, params[])
      {
          new fmt_text[2640], Cache: result, id;
          mysql_format(mysql, fmt_text, sizeof fmt_text, "SELECT * FROM ownable_cars WHERE owner_id='%d'", GetPlayerAccountID(playerid));
          result = mysql_query(mysql, fmt_text, true);
          new rows = cache_num_rows();
          if(!rows) return SendClientMessage(playerid, 0x999999FF, "У Вас нет личного транспорта");
          new model_id, region[10], car_number[10];
          format(fmt_text, sizeof fmt_text, "");
          for(new i = 0; i < rows; i ++)
          {
              id = cache_get_field_content_int(i, "id");
              model_id = cache_get_field_content_int(i, "model_id") - 400;
              cache_get_field_content(i, "number", car_number);
              cache_get_field_content(i, "region", region);
              STRING_GLOBAL[0] = EOS;
              format(STRING_GLOBAL, sizeof STRING_GLOBAL, "{FFFFFF}%d. %s {888888}[%s | %s]\n", i + 1, GetVehicleInfo(model_id, VI_NAME), car_number, region);
              strcat(fmt_text, STRING_GLOBAL);
              SetPlayerListitemValue(playerid, i, id);
          }
          Dialog(playerid, DIALOG_OWNABLE_CAR_LIST, DIALOG_STYLE_LIST,"{0099FF}Выберите транспорт",fmt_text,"Выбрать", "Закрыть");
          cache_delete(result);
          return 1;
      }
    • Danya_Lucky
      От Danya_Lucky
      Как сделать /gh на визуал ник?
       
    • Danya_Lucky
      От Danya_Lucky
      Как сделать падающие машины /addpcar как на поинте?
    • Iskon
      От Iskon
      Что не так?
      IPacket:12(playerid, BitStream:bs)
      {
      print("packet 12 recieved");
       
        new authKey[PR_INCOMING_PACKET];
          BS_IgnoreBits(bs, 8);
          print(BS_ReadValue(bs, PR_STRING, authKey[authkeyv], sizeof(authKey[authkeyv)));
        return 1;
      }
       
      Структура пакета:
      struct stAuthKey
      {
      uint8_t packetId;
      uint8_t keyLength;
      char[] key;
      };
       
      Ошибка:
      error 017: undefined symbol "authkeyv"
      error 080: unknown symbol, or not a constant symbol (symbol "authkeyv")
    • NOD28
      От NOD28
      Есть код и не могу понять, где я ошибся. Нужно сделать так, чтобы при запуске сервера ставилось имя сервера, которое берётся из дейфайна. Но когда захожу CR-MP Браузер, показывается SERVER_NAME. (вопрос банальный, но я не понимаю)
      //---defines--- #define SERVER_NAME "Test RP" //---code--- public OnGameModeInit() {     /*  print("GameModeInit()");     SetGameModeText("Blank Script");*/     SendRconCommand("hostname SERVER_NAME");     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);     return 1; }