• 0
Sign in to follow this  
Followers 0
Mason

GetPlayerHouse/Bizz

Question

Всем Привет! Столкнулся я с такой проблемой, на аккаунте числится что есть дом/бизнес/заправка но на самом деле нет. Соответственно при выборе спавна предлагает вариант "в доме", купить дом, бизнес, и прочую фигню нельзя т.к пишет что уже есть дом..
Прилагаю код проверки на наличие того или иного имущества у игрока

Спойлер

stock GetPlayerHouse(playerid)//Это дома(впрочем такая же проверка стоит у бизнесов/заправок и.т.д)
{
    new house = 0;
    for(new i = 0; i <= HouseCount; i++)
    {
        if(!strcmp(HouseInfo[i][hOwner],PlayerInfo[playerid][pSendername],true)) house++, SetPVarInt(playerid, "PlayerHouse", i);
    }
    return house;
}

 


Произошло это всё после того как я на шаманил с i = 0, до этого вместо 0 стояла 1 почти везде(загрузка, взаимодействие с пикапом и так далее.) но т.к из за единицы не прогружалось имущество с 1 ид, было принято решение поставить 0.

Share this post


Link to post

35 answers to this question

  • 0

@Mason, вы решите для себя сначала твердо, с какого индекса вы хотите хранить имущество: с нуля или с единицы. Далее показывайте код создания дома и настройки поля с идентификатором дома в базе данных. Затем показывайте, как вы загружаете дома из базы данных, их сохранение.

Share this post


Link to post
  • 0

TS Posted (edited) · Report post

@Cawfee, С индексом я определился давно уже это - 0. Пояснение этому я как раз описывал в 1 сообщении, по поводу кодов создания, и настройки полей, вот.
Настройки поля в базе - скрин который ниже скрытого кода.

Код создания дома, их загрузка, и их сохранение.

Спойлер

#define MAX_HOUSE 2000//Enum(Надеюсь я правильно понимаю что это создание дома)
enum hInfo
{
    id,
    Float:hEntrx,
    Float:hEntry,
    Float:hEntrz,
    Float:hExitx,
    Float:hExity,
    Float:hExitz,
    hOwner[32],
    hDiscript[16],
    hPrice,
    hBuyPrice,
    hInt,
    hVirtual,
    hLock,
    hMIcon,
    hPickup,
    hPickupExit,
    hOplata,
    hHeal,
    bool:hRob
};
new HouseCount;
new Text3D:LABELHOUSE[MAX_HOUSE];
new HouseInfo[MAX_HOUSE][hInfo];

stock Load_House()//Загрузка дома
{
    print("===================[НАЧАЛАСЬ ЗАГРУЗКА C БАЗЫ ДАННЫХ]=====================");
    new time = GetTickCount();
    new string[128];
    new Cache:result;
    result = mysql_query(ConnectDB, "SELECT * FROM `"TABLE_HOUSE"`");
    HouseCount = cache_num_rows();
    for(new i; i < HouseCount; i++)
    {
        strmid(HouseInfo[i][hOwner],"None_Nones",0,strlen("None_Nones"),32);
    }
    for(new i = 0; i < HouseCount; i++)
    {
        cache_get_value_name_int(i, "id", HouseInfo[i][id]);
        cache_get_value_name(i, "owner", HouseInfo[i][hOwner]);
        cache_get_value_name_float(i, "enterX", HouseInfo[i][hEntrx]);
        cache_get_value_name_float(i, "enterY", HouseInfo[i][hEntry]);
        cache_get_value_name_float(i, "enterZ", HouseInfo[i][hEntrz]);
        cache_get_value_name_float(i, "exitX", HouseInfo[i][hExitx]);
        cache_get_value_name_float(i, "exitY", HouseInfo[i][hExity]);
        cache_get_value_name_float(i, "exitZ", HouseInfo[i][hExitz]);
        cache_get_value_name(i, "discript", HouseInfo[i][hDiscript]);
        cache_get_value_name_int(i, "price", HouseInfo[i][hPrice]);
        cache_get_value_name_int(i, "buyprice", HouseInfo[i][hBuyPrice]);
        cache_get_value_name_int(i, "int", HouseInfo[i][hInt]);
        cache_get_value_name_int(i, "virtual", HouseInfo[i][hVirtual]);
        cache_get_value_name_int(i, "lock", HouseInfo[i][hLock]);
        cache_get_value_name_int(i, "oplata", HouseInfo[i][hOplata]);
        cache_get_value_name_int(i, "heal", HouseInfo[i][hHeal]);
        if(!strcmp(HouseInfo[i][hOwner],"The State",true))
        {
            HouseInfo[i][hMIcon] = CreateDynamicMapIcon(HouseInfo[i][hEntrx], HouseInfo[i][hEntry], HouseInfo[i][hEntrz], 310,-1,-1,-1,50.0);
            HouseInfo[i][hPickup] = CreatePickup(12731, HouseInfo[i][hEntrx], HouseInfo[i][hEntry], HouseInfo[i][hEntrz]);
            format(string, 128"ID: {FFFFFF}%d\n{FF9900}Дом продается\nКласс: {FFFFFF}%s\n{FF9900}Цена: {FFFFFF}$%d",HouseInfo[i][id],HouseInfo[i][hDiscript],HouseInfo[i][hPrice]);
            LABELHOUSE[i] = Create3DTextLabel(string,0xFF9900FF,HouseInfo[i][hEntrx],HouseInfo[i][hEntry],HouseInfo[i][hEntrz],5.0,0,0);
        }
        else
        {
            HouseInfo[i][hMIcon] = CreateDynamicMapIcon(HouseInfo[i][hEntrx], HouseInfo[i][hEntry], HouseInfo[i][hEntrz], 320,-1,-1,-1,50.0);
            HouseInfo[i][hPickup] = CreatePickup(195221, HouseInfo[i][hEntrx], HouseInfo[i][hEntry], HouseInfo[i][hEntrz]);
            format(string, 128"ID: {FFFFFF}%d\n{FF9900}Владелец: {FFFFFF}%s",HouseInfo[i][id],HouseInfo[i][hOwner]);
            LABELHOUSE[i] = Create3DTextLabel(string,0xFF9900FF,HouseInfo[i][hEntrx],HouseInfo[i][hEntry],HouseInfo[i][hEntrz],5.0,0,0);
        }
        HouseInfo[i][hPickupExit] = CreatePickup(13181, HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz], HouseInfo[i][hVirtual]);
    }
    cache_delete(result);
    print("===============================");
    print("Результат загрузки ДОМОВ:");
    printf("Всего домов [%d]",HouseCount);
    printf("Загружено за [%d](ms)",GetTickCount() - time);
}

stock GetHome()//Сохранения как такового у меня в моде нет. Но есть этот сток который выполняется когда пробивает PayDay.
{
    print("F: GetHome");
    new htax, bank, texts[16], text[3], warr[12];
    for(new i = 0; i <= HouseCount; i++)
    {
        if(!strcmp("The State",HouseInfo[i][hOwner],true)) continue;
        else if(!strcmp("E",HouseInfo[i][hDiscript],true)) htax = 50;
        else if(!strcmp("D",HouseInfo[i][hDiscript],true)) htax = 50;
        else if(!strcmp("C",HouseInfo[i][hDiscript],true)) htax = 100;
        else if(!strcmp("B",HouseInfo[i][hDiscript],true)) htax = 150;
        else if(!strcmp("A",HouseInfo[i][hDiscript],true)) htax = 200;
        if(HouseInfo[i][hOplata] < htax)
        {
            new playd = GetPlayerID(HouseInfo[i][hOwner]);
            if(playd != INVALID_PLAYER_ID)
            {
                PlayerInfo[playd][pBank] += HouseInfo[playd][hBuyPrice];
                SetPVarInt(playd, "GetHome"1);
            }
            else
            {
                mysql_format(ConnectDB, query,sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s'",HouseInfo[i][hOwner]);
                new Cache:result = mysql_query(ConnectDB, query);
                if(!result)
                {
                    return;
                }
                cache_set_active(result);
                new const nRows = cache_num_rows();
                if(nRows == 0)
                {
                    return;
                }
                cache_get_value_name(0"bank", warr);
                cache_get_value_name(0"text", texts);
                bank = strval(warr);
                sscanf(texts, "p<,>a<i>[3]", text);
                format(texts, sizeof(texts),"1, %i, %i", text[1], text[2]);
                bank += HouseInfo[i][hBuyPrice];
                mysql_format(ConnectDB, query,sizeof(query), "UPDATE "TABLE_ACCOUNT"  SET text = '%s', bank = %i WHERE name = '%s'",texts,bank, HouseInfo[i][hOwner]);
                mysql_query(ConnectDB, query);
            }
            SetHouseStr(i, "owner""The State");
            SetHouseInt(i, "oplata"0);
            SetHouseInt(i, "buyprice"0);
            HouseInfo[i][hBuyPrice] = 0;
            HouseInfo[i][hOplata] = 0;
            strmid(HouseInfo[i][hOwner],"The State",0,strlen("The State"),MAX_PLAYER_NAME);
            HouseInfo[i][hLock] = 0;
            SetHouseInt(i, "lock", HouseInfo[i][hLock]);
            UpdateHouse(i);
        }
        else
        {
            HouseInfo[i][hOplata] -= htax;
            SetHouseInt(i, "oplata", HouseInfo[i][hOplata]);
            Exchequer+=htax;
        }
        HouseInfo[i][hRob] = false;
    }
    mysql_format(ConnectDB, query, 256"UPDATE "TABLE_MAYOR" SET exchequer = %d", Exchequer);
    mysql_query(ConnectDB, query);
    print("F: GetHome End All");
}

 

 

изображение_2024-06-01_201153684.png

Edited by Mason

Share this post


Link to post
  • 0

@Mason, автоинкремент в базе данных начинается с какого значения? Создание дома не увидел.

Share this post


Link to post
  • 0

@Cawfee с 545(то бишь домов в базе 544), а раз enum это не создание дома то что это тогда?(извиняюсь за возможно глупый вопрос)

Share this post


Link to post
  • 0

@Mason, дома можно создавать из игры (под аккаунтом администратора)?

Share this post


Link to post
  • 0

@Cawfee Да. То бишь мне приклалывать код создания дома(командой)?

Share this post


Link to post
  • 0

@Cawfee, тогда вот
 

Спойлер

        case D_ADDNED+1:
        {
            if(response)
            {
                new price,type, Float:x,Float:y,Float:z;
                if(sscanf(inputtext,"p<,>ii",price,type))
                {
                    new string1[1000];
                    strcat(string1,"{ffffff}Пишите чере запятую: Цена, Тип интерьера (смотрите ниже)\n\n{ff0000}Пример: 2500000, 27\n\n");
                    strcat(string1,"{ffffff}1. [Класс: A]\t12. [Класс: C]\t23. [Класс: C]\t34. [Класс: C]\n");
                    strcat(string1,"{ffffff}2. [Класс: C]\t13. [Класс: C]\t24. [Класс: B]\t35. [Класс: C]\n");
                    strcat(string1,"{ffffff}3. [Класс: A]\t14. [Класс: B]\t25. [Класс: B]\t36. [Класс: L]\n");
                    strcat(string1,"{ffffff}4. [Класс: C]\t15. [Класс: C]\t26. [Класс: E]\n");
                    strcat(string1,"{ffffff}5. [Класс: B]\t16. [Класс: B]\t27. [Класс: E]\n");
                    strcat(string1,"{ffffff}6. [Класс: B]\t17. [Класс: B]\t28. [Класс: E]\n");
                    strcat(string1,"{ffffff}7. [Класс: E]\t18. [Класс: A]\t29. [Класс: C]\n");
                    strcat(string1,"{ffffff}8. [Класс: B]\t19. [Класс: C]\t30. [Класс: A]\n");
                    strcat(string1,"{ffffff}9. [Класс: A]\t20. [Класс: E]\t31. [Класс: C]\n");
                    strcat(string1,"{ffffff}10. [Класс: B]\t21. [Класс: A]\t32. [Класс: C]\n");
                    strcat(string1,"{ffffff}11. [Класс: C]\t22. [Класс: B]\t33. [Класс: E]\n");
                    return ShowPlayerDialog(playerid,D_ADDNED+1,1,"Добавить дом",string1,"Принять","Закрыть");
                }
                HouseCount++;
                GetPlayerPos(playerid,x,y,z);
                HouseInfo[HouseCount][hEntrx] = x;
                HouseInfo[HouseCount][hEntry] = y;
                HouseInfo[HouseCount][hEntrz] = z;
                switch(type)
                {
                    case 1: format(string,90,"140.2660,1366.1091,1083.8594,A,5");   // [интерьер 9 звёздочный](меню) int 5
                    case 2: format(string,90,"260.8800,1237.2365,1084.2578,C,9");   // [интерьер 2 звёздочный](меню) int 9
                    case 3: format(string,90,"234.1541,1063.7206,1084.2123,A,6");   // [интерьер 9 звёздочный](меню) int 6
                    case 4: format(string,90,"327.9864,1477.7328,1084.4375,C,15");  // [интерьер 3 звёздочный](меню) int 15
                    case 5: format(string,90,"2237.5413,-1081.1516,1049.04,B,2");   // [интерьер 10 звёздочный](меню) int
                    case 6: format(string,90,"24.0716,1340.1615,1084.3750,B,10");   // [интерьер 8 звёздочный](меню) int id 10
                    case 7: format(string,90,"2259.5068,-1135.9337,1050.6328,D,10");    // [Интерьер 1 звёздочный](меню) int id 10
                    case 8: format(string,90,"2196.8469,-1204.3524,1049.0234,B,6"); // [Интерьер 7 звёздочный](меню) int id 6
                    case 9: format(string,90,"2317.7983,-1026.7651,1050.2178,A,9"); // [Интерьер 7 звёздочный](меню) int id 9
                    case 10: format(string,90,"2365.3345,-1135.5907,1050.8826,B,8");    // [Интерьер 6 звёздочный](меню) int id 8
                    case 11: format(string,90,"2282.8831,-1140.0713,1050.8984,C,11");   // [Интерьер 3 звёздочный](меню) int id 11
                    case 12: format(string,90,"2218.3875,-1076.1580,1050.4844,C,1");    // [Интерьер 3 звёздочный](меню) int id 1
                    case 13: format(string,90,"-68.8411,1351.3397,1080.2109,C,6");  // [Интерьер 2 звёздочный](меню) int id 6
                    case 14: format(string,90,"-283.6001,1471.2211,1084.3750,B,15");    // [Интерьер 5 звёздочный](меню) int id 15
                    case 15: format(string,90,"-42.5525,1405.6432,1084.4297,C,8");  // [интерьер 3 звёздочный](меню) int 8
                    case 16: format(string,90,"83.0791,1322.2808,1083.8662,B,9");   // [интерьер 9 звёздочный](меню) int 9
                    case 17: format(string,90,"447.2238,1397.2926,1084.3047,B,2");  // [интерьер 9 звёздочный](меню) int 2
                    case 18: format(string,90,"235.2748,1186.6809,1080.2578,A,3");  // [интерьер 6 звёздочный](меню) int 3
                    case 19: format(string,90,"226.4436,1239.9277,1082.1406,C,2");  // [интерьер 3 звёздочный](меню) int 2
                    case 20: format(string,90,"244.0883,305.0291,999.1484,D,1");    // [интерьер 2 звёздочный](меню) int 1
                    case 21: format(string,90,"226.2956,1114.1615,1080.9929,A,5");  // [интерьер 6 звёздочный](меню) int 5
                    case 22: format(string,90,"295.2479,1472.2650,1080.2578,B,15"); // [интерьер 4 звёздочный](меню) int 15
                    case 23: format(string,90,"261.1874,1284.2982,1080.2578,C,4");  // [интерьер 4 звёздочный](меню) int 4
                    case 24: format(string,90,"-260.4934,1456.8430,1084.3672,B,4"); // [интерьер 8 звёздочный](меню) int 4
                    case 25: format(string,90,"22.9848,1403.3345,1084.4370,B,5");   // [интерьер 5 звёздочный](меню) int 5
                    case 26: format(string,90,"2468.2080,-1698.2988,1013.5078,D,2");    // [интерьер 6 звёздочный](меню) int 3
                    case 27: format(string,90,"266.9498,304.9866,999.1484,D,2");    // [интерьер 3 звёздочный](меню) int 2
                    case 28: format(string,90,"422.3438,2536.4980,10.0000,D,10");   // [интерьер 2 звёздочный](меню) int 1
                    case 29: format(string,90,"443.4504,509.2181,1001.4195,C,12");  // [интерьер 6 звёздочный](меню) int 5
                    case 30: format(string,90,"2324.3977,-1149.0601,1050.7101,A,12");   // [интерьер 4 звёздочный](меню) int 15
                    case 31: format(string,90,"2807.6919,-1174.2933,1025.5703,C,8");    // [интерьер 4 звёздочный](меню) int 4
                    case 32: format(string,90,"2233.6965,-1115.1270,1050.8828,C,5");
                    case 33: format(string,90,"221.7789,1140.1970,1082.6094,D,4");
                    case 34: format(string,90,"387.1313,1471.7137,1080.1949,C,15");
                    case 35: format(string,90,"377.1231,1417.3163,1081.3281,C,15"); // [интерьер 4 звёздочный](меню) int 4
                    case 36: format(string,90,"140.2660,1366.1091,1083.8594,L,5");  // [интерьер 9 звёздочный](меню) int 5
                }
                sscanf(string,"p<,>fffs[32]i",
                HouseInfo[HouseCount][hExitx],HouseInfo[HouseCount][hExity],HouseInfo[HouseCount][hExitz],
                HouseInfo[HouseCount][hDiscript],HouseInfo[HouseCount][hInt]);
                HouseInfo[HouseCount][hVirtual] = HouseCount;
                HouseInfo[HouseCount][hPrice] = price;
                strmid(HouseInfo[HouseCount][hOwner], "The State"0, strlen("The State"), MAX_PLAYER_NAME);
                HouseInfo[HouseCount][hMIcon] = CreateDynamicMapIcon(HouseInfo[HouseCount][hEntrx], HouseInfo[HouseCount][hEntry], HouseInfo[HouseCount][hEntrz], 310,-1,-1,-1,200.0);
                HouseInfo[HouseCount][hPickup] = CreatePickup(1273,1, HouseInfo[HouseCount][hEntrx], HouseInfo[HouseCount][hEntry], HouseInfo[HouseCount][hEntrz]);
                HouseInfo[HouseCount][hPickupExit] = CreatePickup(13181, HouseInfo[HouseCount][hExitx], HouseInfo[HouseCount][hExity], HouseInfo[HouseCount][hExitz], HouseInfo[HouseCount][hVirtual]);
                format(string, 128"ID: {FFFFFF}%d\n{FF9900}Дом продается\nКласс: {FFFFFF}%s\n{FF9900}Цена: {FFFFFF}$%d",HouseCount,HouseInfo[HouseCount][hDiscript],HouseInfo[HouseCount][hPrice]);
                LABELHOUSE[HouseCount] = Create3DTextLabel(string,0xFF9900FF,HouseInfo[HouseCount][hEntrx],HouseInfo[HouseCount][hEntry],HouseInfo[HouseCount][hEntrz],5.0,0,0);
                format(totalstring,sizeof(totalstring),"INSERT INTO "TABLE_HOUSE" (id,hEntrx,hEntry,hEntrz,hExitx,hExity,hExitz,hDiscript,hPrice,hInt,hVirtual) VALUES (%i,'%f','%f','%f','%f','%f','%f','%s',%i,%i,%i)",
                HouseCount,
                HouseInfo[HouseCount][hEntrx],HouseInfo[HouseCount][hEntry],HouseInfo[HouseCount][hEntrz],
                HouseInfo[HouseCount][hExitx],HouseInfo[HouseCount][hExity],HouseInfo[HouseCount][hExitz],
                HouseInfo[HouseCount][hDiscript],HouseInfo[HouseCount][hPrice],HouseInfo[HouseCount][hInt],HouseInfo[HouseCount][hVirtual]);
                mysql_query(ConnectDB, totalstring);
                return SendMes(playerid,COLOR_ORANGE,"Дом №%d был успешно создан",HouseCount);
            }
            TPC[playerid] = false;
        }

 

Но в этом моменте кстати есть свой казус, когда я создаю дом, он вроде создается, ID в 3d тексте отоброжается, в сообщении которое в конце тоже, но вот когда появляется диалог в нём уже id дома 0, запись в базу не идёт, но в коде создания бизнесов такой же код, я сравнивал его не раз всё идентично..

Share this post


Link to post
  • 0

@Mason, если из базы данных удалить все дома (можно экспортировать таблицу домов, удалить дома из базы данных, а потом, по окончании эксперимента, импортировать обратно), под каким идентификатором в базе данных создастся этот дом? Если вы решили работать с индексами, начинающимися с нуля, желательно, чтобы в базе данных нумерация всегда тоже шла с нуля.

Share this post


Link to post
  • 0

@Cawfee, ну вот удалил я все дома, зашёл в игру начал создавать дома, всё так же ничего не происходит так же под 0 ид в диалоге создается дом, хотя в 3д тексте и в сообщении всё отлично, когда второй дом создаю всё тоже самое только ид прибавляется в 3д тексте и сообщении, в базе так же ничего не записывается...

P.S Но я не понимаю, что не так, бизнесы у меня создаются отлично, а дома нет, хотя коды идентичны...

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

@Cawfee, Ничего. То бишь переменная HouseCount прибавляется, а в базу данные не записываются...

Share this post


Link to post
  • 0

@Mason, а что в логах MySQL? Почему добавление записи в базу данных не произошло?

Share this post


Link to post
  • 0

@Cawfee А в логах вот
 

[06/01/24 22:01:10] [plugins/mysql] error #1064 while executing query "INSERT INTO house (id,enterX,enterY,enterZ,exitX,exitY,ExitZ,discript,price,int,virtual) VALUES (2,'2831.800292','1291.751831','10.774929','140.266006','1366.109130','1083.859375','L',1,5,2)": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int,virtual) VALUES (2,'2831.800292','1291.751831','10.774929','140.266006','136' at line 1

 

Share this post


Link to post
  • 0

@Mason, почему во фрагменте кода, связанным с созданием домов, имена столбцов одни, а в строке логов – другие? При создании дома приведенный вами фрагмент кода не исполнялся. 

INSERT INTO "TABLE_HOUSE" (id,hEntrx,hEntry,hEntrz,hExitx,hExity,hExitz,hDiscript,hPrice,hInt,hVirtual) VALUES (%i,'%f','%f','%f','%f','%f','%f','%s',%i,%i,%i)
INSERT INTO house (id,enterX,enterY,enterZ,exitX,exitY,ExitZ,discript,price,int,virtualVALUES (2,'2831.800292','1291.751831','10.774929','140.266006','1366.109130','1083.859375','L',1,5,2)

 

Share this post


Link to post
  • 0

@Cawfee Я увидел что у меня имена столбцов не изменены(т.к я менял их названия) и изменил их.

Share this post


Link to post
  • 0

@Mason, в логах представлен текущий вариант названия столбцов? Если да, то обратите внимание, что int и virtual входят в перечень ключевых слов, а значит их использование в качестве имен таблиц и столбцов требует оборачивания самих слов в специальные символы: `.

INSERT INTO house (id,enterX,enterY,enterZ,exitX,exitY,ExitZ,discript,price,`int`,`virtual`)

 

Share this post


Link to post
  • 0

@Cawfee А тойсть их требуется оборачивать.. А я думал что нет, да и в интернете сейчас тоже шаркал говорили что не надо кто то говорил что надо.. В общем создание домов у меня наконец-таки заработало, в базу данные записываются всё отлично функционирует.

Share this post


Link to post
  • 0

@Mason  Ты точно уверен, что HouseCount правильно отображает количество домов? Возможно, стоит проверить, корректно ли он инициализируется и обновляется.

Также интересно, как именно происходит загрузка имущества игрока. Ты говорил, что раньше использовался индекс 1, а теперь 0. Возможно, стоит проверить, правильно ли обновились все части кода, где идет работа с этими индексами.

И последний момент: точно ли у тебя корректно обрабатывается удаление имущества? Может быть, где-то остаются следы старых данных, которые и создают такую проблему.

Share this post


Link to post
  • 0

@D2DChat По поводу, HouseCount да я уверен, ибо это обычная переменная которая создается после emum, используется она в загрузке домов, в создании домов, в взаймодействии с пикапом. По поводу индекса я ставил обратно еденицу вместо нуля но увы, если я так делаю то дом с 1 ид пропадает, так же с бизнесами и заправками. По поводу удаления имущества, такого у меня нет... 0_0

Share this post


Link to post
  • 0

@Mason

 

11 часов назад, Mason сказал:

А я думал что нет

 

Я надеюсь вы поняли, как определять, надо оборачивать или нет? На всякий случай прикреплю ссылку.

 

11 часов назад, Mason сказал:

в базу данные записываются всё отлично функционирует

В этой связи жду ответ на ранее заданный мною вопрос:

 

12 часов назад, Cawfee сказал:

под каким идентификатором в базе данных создастся этот дом

 

Share this post


Link to post
  • 0

@Cawfee, Да, я всё понял, спасибо, по поводу идентификатора, в базе создаёт от 1 ид

Share this post


Link to post
  • 0
18 часов назад, Mason сказал:

for(new i = 0; i <= HouseCount; i++)

В функции GetHome тогда условием выхода из цикла должно быть строгое неравенство:

for(new i = 0; i < HouseCount; i++)

Какие на данный момент проблемы с этой системой?

Share this post


Link to post
  • 0

TS Posted (edited) · Report post

@Cawfee, Точно GetHome? у меня проверка идёт через GetPlayerHouse

Edited by Mason

Share this post


Link to post
  • 0

@Mason Может быть, стоит посмотреть, как именно идет процесс загрузки домов. Возможно, где-то в этом процессе идет некорректное присвоение владельцев.

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

Убедись, что PlayerInfo[playerid][pSendername] правильно инициализируется и не содержит лишних данных, которые могут мешать правильному сравнению.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • vernettoalex
      By vernettoalex
      Приветствую, у меня возникла проблема, мне для работы с диалогом который будет выводить информацию о тексте написанным в окне в базу данных нужен inputext, когда я его вписал рядом с ShowPlayerDialog, у меня не появляется диалог и не идёт процесс, но если я его уберу, то функция станет бесполезной. Помогите пожалуйста
       
      p.s - if(sscanf(inputtext, "s[90]", surname)) return SPD
       
       

    • Артём Профиков
      By Артём Профиков
      При входе в лаунчер информация о сервере не отображается, зайти нельзя. В панели нагрузки нет
      Логи:
      Server.cfg:
       
    • Iskon
      By Iskon
      const ID_AUTH_KEY = 12; OInternalPacket:ID_AUTH_KEY(playerid, BitStream:bs) {     new auth_key[512];     BS_IgnoreBits(bs, 8); // packetid     BS_ReadValue(bs, PR_STRING8, auth_key, sizeof(auth_key));     printf("incoming auth_key %s", auth_key);     new BitStream:newBs = BS_New();     BS_WriteValue(newBs,      PR_UINT8, 12, PR_STRING8, "2DC8A9B16332F78", 15);     PR_SendPacket(newBs, playerid, PR_SYSTEM_PRIORITY, PR_RELIABLE_SEQUENCED);     BS_Delete(newBs);     return 0; } По идее, этот код должен не отправить оригинальный idauthkey клиенту, а подменять значение idauthkey'a на "2DC8A9B16332F78", но пакет не отправляется клиенту. Как будто функция PR_SendPacket не срабатывает, и клиент ждет ответа от сервера. Как заставить отправить пакет?