- Регистрация
- 12 Июн 2020
- Сообщения
- 294
- Лучшие ответы
- 9
- Репутация
- 24
Привет снова.
Посоветовали сохранять все, что происходит с игроком (деньги/тачка/дом/скин) сразу же в игре после его приобретения, а не при дисконнекте.
Так вот.. Мне нужно создать сток и сделать там обновления именно денег и после покупки чего-либо, вызывать этот сток. Скажите пожалуйста, я ниже все правильно сделал?
У меня есть такой дефайн, который обновляет деньги игрока после покупки чего-либо, только в игре
Далее, есть такой код, который сохраняет деньги игрока в БД
И если завернуть это в stock, то получится следующее:
Он будет работать так?:
1. Человек купил себе покушать чего-нибудь
2. После покупки, у него прибавилось HP и отнялось 10$
3. Далее вызывается SaveMoney, который отнимает у игрока 10$ и оставшиеся деньги сохраняет в Базу Данных
-------------------------
Насчет define UpdatePlayerMoney: Была проблема, что у меня не отнимались деньги, этот define мне тогда помог. Я использовал его в коде выше, где "Вызов" вместо SaveMoney, чтобы деньги обновлялись в игре.
Посоветовали сохранять все, что происходит с игроком (деньги/тачка/дом/скин) сразу же в игре после его приобретения, а не при дисконнекте.
Так вот.. Мне нужно создать сток и сделать там обновления именно денег и после покупки чего-либо, вызывать этот сток. Скажите пожалуйста, я ниже все правильно сделал?
У меня есть такой дефайн, который обновляет деньги игрока после покупки чего-либо, только в игре
Код:
#define UpdatePlayerMoney(%0) ResetPlayerMoney(%0),GivePlayerMoney(%0,pInfo[playerid][pMoney])
C++:
new query[71];
format(query, sizeof(query), "UPDATE `users` SET `money` = '%d' WHERE `ID` = '%d' LIMIT 1", pInfo[playerid][pMoney], pInfo[playerid][pID]);
mysql_tquery(dbHandle, query);
C++:
stock SaveMoney(playerid)
{
UpdatePlayerMoney(playerid);
new query[71];
format(query, sizeof(query), "UPDATE `users` SET `money` = '%d' WHERE `ID` = '%d' LIMIT 1", pInfo[playerid][pMoney], pInfo[playerid][pID]);
mysql_tquery(dbHandle, query);
return 1;
}
// Вызов:
if(pInfo[playerid][pMoney] < 10) return SCM(playerid, COLOR_GREY, "У Вас недостаточно денег, чтобы купить это");
pInfo[playerid][pHealth] += 25.0;
pInfo[playerid][pMoney] -= 10;
SaveMoney(playerid);
SetPlayerChatBubble(playerid, "+25 HP", 0xFFFAFAAA, 15.0, 2000);
1. Человек купил себе покушать чего-нибудь
2. После покупки, у него прибавилось HP и отнялось 10$
3. Далее вызывается SaveMoney, который отнимает у игрока 10$ и оставшиеся деньги сохраняет в Базу Данных
-------------------------
Насчет define UpdatePlayerMoney: Была проблема, что у меня не отнимались деньги, этот define мне тогда помог. Я использовал его в коде выше, где "Вызов" вместо SaveMoney, чтобы деньги обновлялись в игре.