Denis2131 6 Опубликовано 22 февраля, 2018 Добрый день, у меня такая проблема, когда покупаю бизнес, все хорошо он мой и на бизнесе три де текстом пишет владельца, но как только я сделаю рестарт, то бизнес пропадает, его уже может купить другой игрок, но если буду покупать его я, то мне пишет, что я им владею. if(strcmp(cmd,"/buyatm",true) == 0) { if(PlayerInfo[playerid][pAtm] != 255) return SendClientMessage(playerid, COLOR_WHITE, "У вас уже есть банкомат."); for(new b = 0; b < sizeof(Atm); b++) { if(PlayerToPoint(5.0, playerid, Atm[b][atmX], Atm[b][atmY], Atm[b][atmZ]) && Atm[b][atmOwned] == 0) { if(PlayerInfo[playerid][pCash] < Atm[b][atmCena]) return SendClientMessage(playerid, COLOR_WHITE, "На Вашем счету нет столько денег!"); if(PlayerInfo[playerid][pLevel] < Atm[b][atmLevel]) { SFCM(playerid, -1, "У вас недостаточный уровен, нужен: %i", Atm[b][atmLevel]); return 1; } PlayerInfo[playerid][pAtm] = b; Atm[b][atmOwned] = 1; Atm[b][atmMoney] = 100; Atm[b][atmLock] = 0; strmid(Atm[b][atmOwner], NamePlayer[playerid], 0, strlen(NamePlayer[playerid]), 255); GivePlayerMoney(playerid, -Atm[b][atmCena]), PlayerInfo[playerid][pCash] -= Atm[b][atmCena]; SendClientMessage(playerid, COLOR_LIGHTGREEN, "Поздравляем с успешной покупкой."); SendClientMessage(playerid, COLOR_GREEN, "Каждый час с вашего банкомата будет взыматься плата за электричество."); SendClientMessage(playerid, COLOR_WHITE, "(( Помощь по банкомата: /atmenu ))"); UpdateAtm(b); mysql_function(MySQLGo,128,"UPDATE `accounts` SET `pAtm` = '%i' WHERE `id` = '%d' LIMIT 1",false,"","", PlayerInfo[playerid][pAtm],PlayerInfo[playerid][pID]); } } return true; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DENAKEMPS 4 Опубликовано 23 февраля, 2018 загрузку и сохранение бизнесов Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 23 февраля, 2018 @DENAKEMPS,только вот это есть, обновление сохранение нет. // Система банкоматов stock UpdateAtm(idx) { glob_str = ""; format(glob_str, sizeof(glob_str), "UPDATE `atm` SET `owner` = '%s',`cena` = '%i',`money` = '%i',`lvl` = '%i',`lock` = '%i' WHERE `ID` = '%i'", Atm[idx][atmOwner],Atm[idx][atmCena],Atm[idx][atmMoney],Atm[idx][atmLevel],Atm[idx][atmLock],Atm[idx][atmID]); mysql_tquery(MySQLGo, glob_str); glob_str = ""; format(glob_str, sizeof(glob_str), "UPDATE `atm` SET `x` = '%f',`y` = '%f',`z` = '%f',`owned` = '%i' WHERE `ID` = '%i'", Atm[idx][atmX],Atm[idx][atmY],Atm[idx][atmZ],Atm[idx][atmOwned],Atm[idx][atmID]); mysql_tquery(MySQLGo, glob_str); glob_str = ""; if(mysql_errno()) printf("Ошибка сохранения банкомата: [%d]", Atm[idx][atmID]); else printf("Успешно сохранение банкомата: [%d]", Atm[idx][atmID]); // DestroyDynamic3DTextLabel(Atm[idx][atmText]); if(!strcmp(Atm[idx][atmOwner],"None",true)) { format(glob_str, sizeof(glob_str), "{008cf0}Банкомат №{FFFFFF}%i {008cf0}продается!\n\n{008cf0}Стоимость: {FFFFFF}%d рублей\n{008cf0}Уровень: {FFFFFF}%d", idx, Atm[idx][atmCena], Atm[idx][atmLevel]); Atm[idx][atmText] = CreateDynamic3DTextLabel(glob_str,-1, Atm[idx][atmX],Atm[idx][atmY],Atm[idx][atmZ], 10.0); glob_str = ""; } else { format(glob_str, sizeof(glob_str), "{008cf0}Банкомат №{FFFFFF}%i\n\n{008cf0}Владелец: {FFFFFF}%s", idx, Atm[idx][atmOwner]); Atm[idx][atmText] = CreateDynamic3DTextLabel(glob_str,-1, Atm[idx][atmX],Atm[idx][atmY],Atm[idx][atmZ], 10.0); glob_str = ""; } return true; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DENAKEMPS 4 Опубликовано 23 февраля, 2018 И зачем ты создаешь переменную и присваиваешь ее к пустой ячейке, и потом пытаешься отформатировать запрос отталкиваясь от длины этой ячейки? Понятно, что у тебя ничего работать не будет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 23 февраля, 2018 @DENAKEMPS,ну и как будет правильно ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 23 февраля, 2018 @DENAKEMPS, а где ты здесь объявление переменной увидел? Все здесь нормально, не наводи лишний шорох. @Denis2131, наверняка не Вы автор данного кода, но на будущее скажу, что лучше отправлять SQL запрос длиной в 500 символов, чем отправлять 5 таких запросов длиной по 100. По крайней мере в данном случае, где отправка осуществляется посредством вызова нативных функций. По сути на 3D тексте тупо не пишет владельца? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 23 февраля, 2018 Ошибку нашел было cache_get_field_content(idx, "owner", Atm[idx][atmOwner], MySQLGo, strlen(Atm[idx][atmOwner])); сделал cache_get_field_content(idx, "owner", Atm[idx][atmOwner], MySQLGo,24)); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты