PDA

Просмотр полной версии : [Вопрос] Не могу разобраться с выводом результата из базы данных в игру.



V.Cortez
22.12.2017, 18:04
Доброго времени суток уважаемые, изучаю pawn программирование, возник интересный вопрос.
Хочу найти решение к моей проблеме, суть заключается в следующем:
Возьмём пример скилл(навык) для работы, после переноса объекта из пункта "А" в пункт "Б" в базу данных идёт сохранения навыка всё как положено, но проблема заключается в том что не могу выставить текст в игру (После переноса объекта) в чат должно писать "Вы принесли груз, Ваш текущий навык "Цифра из базы данных"/600.

Так вот сам код:

if(IsPlayerInRangeOfPoint(playerid, 2.0, 2173.8804,-2249.9939,13.3032))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, 2230.4312,-2285.8799,14.3751, 2.0);
SetPlayerSpecialAction(playerid, 0);
ApplyAnimation(playerid, "CARRY", "PUTDWN", 4.0, 0, 0, 0, 0, 0);
SetPVarInt(playerid, "gruzmoney", GetPVarInt(playerid, "gruzmoney") + 1);
SetPVarInt(playerid, "sloader", GetPVarInt(playerid, "sloader") + 2)
new string[128];
format(string, sizeof(string), "Груза доставлено:{FF9900} %d {038FDF}шт. Ваш навык составляет: {FF9900}%d/600", GetPVarInt(playerid, "gruzmoney"), GetPVarInt(playerid, "sloader"));
player_info[playerid][sloader] += 2;
static const fmt_query[] = "UPDATE `accounts` SET `sloader` = '%d'";
new query[sizeof(fmt_query)+(-2+1)+(-2+2)+(-2+1)+(-2+8)];
format(query, sizeof(query), fmt_query, player_info[playerid][sloader]);
mysql_query(dbHandle, query);
SCM(playerid, 0x038FDFFF, string);
RemovePlayerAttachedObject(playerid, 5);
if(IsPlayerAttachedObjectSlotUsed(playerid, 4))
{
RemovePlayerAttachedObject(playerid, 4);
}

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

Kucklovod00
22.12.2017, 18:24
Зачем отправлять запрос каждый раз, если можно загрузить это при авторизации аккаунта, а в будущем изменить (если надо) и сохранить.

V.Cortez
22.12.2017, 18:38
В будущем сделаю, но сейчас у меня другая проблема.. Подскажите решение ?

DeimoS
22.12.2017, 19:02
Так в смысле? Это и есть решение. При входе игрока выгружай значение из базы в переменную, работай с ней и потом сохраняй при изменении. Не нужно ничего каждый раз выгружать.