Запрос [help]
|
|
Добрый день,
Возникла проблема в том что когда задаю запрос в данном виде: [часть кода] Цитата CharacterDatabase.PQuery("UPDATE characters SET totaltime = totaltime-1800 WHERE guid = %u", pPlayer->GetGUIDLow()); pPlayer->SaveToDB();
Он снимает 30 мин игры но через минуту возврашяет обратно. Много варьянтов пробовал но не помогло. Мб ктото знает или сталкивался с данной проблемой, отпишите
Спс) с меня +
Сообщение # 1 написано 04.10.2015 в 19:49
|
Цитата r0m1ntik ( ) Он снимает 30 мин игры но через минуту возврашяет обратно. Предполагаю, что не через минуту, а сразу же. Собственно, по вызову функции Player::SaveToDB().
Сообщение # 2 отредактировано p620 - Воскресенье, 04.10.2015, 19:59
|
Перед сохранением в базу изменяй значение поля класса Player, которое содержит информацию о времени игры
Сообщение # 3 написано 04.10.2015 в 20:30
|
Цитата Incorrect ( ) Перед сохранением в базу изменяй значение поля класса Player, которое содержит информацию о времени игры И не забудьте выкинуть прямой запрос в базу из кода в этом случае.
Сообщение # 4 написано 04.10.2015 в 20:51
|
Incorrect, Цитата Incorrect ( ) изменяй значение поля класса Player, которое содержит информацию о времени игры
Это как ? можно пример скриптом ?
Сообщение # 5 написано 05.10.2015 в 03:49
|
Цитата r0m1ntik ( ) Это как ? можно пример скриптом ? Как самый оптимальный вариант, посмотри как именяются эти значения (по коду) как добовляются и тд
Сообщение # 6 написано 05.10.2015 в 05:23
|
m_Last_tick = m_logintime; m_Played_time[PLAYED_TIME_TOTAL] = 0; m_Played_time[PLAYED_TIME_LEVEL] = 0; Попробуй изменять эти переменные в классе Player
тобишь, как пример player->m_Played_time[PLAYED_TIME_TOTAL] = player->m_Played_time[PLAYED_TIME_TOTAL]-1800;
Возможно, это и есть решение
Сообщение # 7 написано 06.10.2015 в 21:05
|
Цитата GeassDev ( ) player->m_Played_time[PLAYED_TIME_TOTAL] = player->m_Played_time[PLAYED_TIME_TOTAL]-1800; На будущее, того же эффекта можно добиться гораздо более короткой инструкцией: Код player->m_Played_time[PLAYED_TIME_TOTAL] -= 1800;
Сообщение # 8 написано 06.10.2015 в 21:37
|
Цитата p620 ( ) На будущее, того же эффекта можно добиться гораздо более короткой инструкцией: это я знаю) Но нам препод по Объектно Ориентированному Программированию говорит, что лучше пользоваться: переменная=переменная-значение; , чем переменная-=значение; Говорит, что операции (*=, -=, +=, /=) не всегда правильно срабатывают Но почему-то я уверен. что он ошибается)
Сообщение # 9 отредактировано GeassDev - Среда, 07.10.2015, 16:29
|
Цитата GeassDev ( ) он ошибается Жалко, что здесь запрещено только цитатой отвечать. А что за институт?
Сообщение # 10 написано 07.10.2015 в 18:20
|
Цитата p620 ( ) Жалко, что здесь запрещено только цитатой отвечать. А что за институт? Колледж)
Сообщение # 11 отредактировано GeassDev - Среда, 07.10.2015, 20:11
|
Цитата GeassDev ( ) Колледж) Тогда ладно =)
Сообщение # 12 написано 07.10.2015 в 21:22
|
Может ваш препод еще и вместо инкремента пишет i = i + 1 ?
Сообщение # 13 отредактировано Incorrect - Среда, 07.10.2015, 21:32
|
Цитата Incorrect ( ) Может ваш препод еще и вместо инкремента пишет i = i + 1 ? biggrin А вот инкримент икрименту рознь, кстати.
Сообщение # 14 написано 07.10.2015 в 23:34
|
Цитата Pallam ( ) А вот инкримент икрименту рознь, кстати. Префиксные и постфиксные формы немного различаются по реализации, это факт (на то две формы и существует), но ни одна из них "не всегда правильно срабатывать" не будет. Хотя, в конечном счете будет зависеть от того, не являлся ли автором компилятора чей-нибудь "препод" =).
Сообщение # 15 отредактировано p620 - Среда, 07.10.2015, 23:40
|