• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблема с сохранением в бд

Статус
В этой теме нельзя размещать новые ответы.

Maxik2

Начинающий
Пользователь
Регистрация
10 Апр 2019
Сообщения
17
Лучшие ответы
0
Репутация
0
Салют, ребята. У меня случилась такая проблемка
PHP:
stock PayDay()
{
    new h; gettime(h); SetWorldTime(h);
	new day = GetDayNumber();
 	if(gCurDay != day)
	{
	    gCurDay = day;
	}
	new str[126];
	foreach(new i: Player)
	{
		new fractionid = pData[i][pFraction]-1;
		new rank = pData[i][pRank]-1;
		new don = pData[i][pDonate]+40000;
		if(GetPVarInt(i,"timegame") >= 60) SetPVarInt(i,"timegame",0);
		if(pTemp[i][pGiveExp] < 1500) return SendClientMessage(i, 0xffff00AA, "Для получения зарплаты необходимо находиться в игре минимум 25 минут");
        if(GetPVarInt(i, "AFK_Time") > 20) return SendClientMessage(i,0xffff00AA,"Вы не получили PayDay, потому что были в АФК во время PayDay");
		if(IsAGang(i))
		{
			pData[i][pSalary] += TotalGz[pData[i][pFraction]-3]*70;
			format(str, sizeof(str), "В Вашу зарплату добавлено %d$", TotalGz[IsAGang(i)]*70);
			SendClientMessage(i, COLOR_GREY, str);
		}
		else if(pData[i][pFraction])
		{
			pData[i][pSalary] += gFractionSalary[fractionid][rank];
			format(str, sizeof(str), "В Вашу зарплату добавлено %d$", gFractionSalary[fractionid][rank]);
			SendClientMessage(i, COLOR_GREY, str);
		}
		new hour,minute,second;
		gettime(hour,minute,second);
		PlayerPlaySound(i, 6400, 0.0, 0.0, 0.0);
		format(str,sizeof(str),""W"Текущее время: {3399FF}%s%d:%s%d", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second);
		SendClientMessage(i, CWHITE,str);
		SendClientMessage(i, CWHITE,"_____________________________");
		SendClientMessage(i, CWHITE,"");
		format(str,sizeof(str),""W"Зарплата: {66CC00}%d$",pData[i][pSalary]);
		SendClientMessage(i, CWHITE,str);
		format(str,sizeof(str),""W"Админ зарплата: {66CC00}40.000 донат коинов");
		SendClientMessage(i, CWHITE, str);
		format(str,sizeof(str),""W"Бонус: {66CC00}5 очков репутации");
		SendClientMessage(i, CWHITE, str);
		format(str,sizeof(str),""W"Донат счёт: {66CC00}%d донат коинов", don);
		SendClientMessage(i, CWHITE, str);
		if(pData[i][pSalary])
        {
			pData[i][pBank] += pData[i][pSalary];
			pData[i][pSalary] = 0;
		}
		SendClientMessage(i, CWHITE,"_____________________________");
		pData[i][pExp]++;
		if(pData[i][pWanted]) pData[i][pWanted]--;
  		SetPlayerWantedLevel(i, pData[i][pWanted]);
		UpdatePlayerData(i,"wanted",pData[i][pWanted]);
		pTemp[i][pGiveExp] = 0;
		if(pData[i][pZakon] < 100) pData[i][pZakon]++;
		if(pData[i][pExp] >= pData[i][pLevel]*4)
		{
			SendClientMessage(i, 0x3399FFFF, "Ваш игровой уровень и IC возраст повысился.");
            pData[i][pExp] = pData[i][pExp] - (pData[i][pLevel]*4);
			pData[i][pLevel]++;
			pData[i][pAge]++;
			SetPlayerScore(i, pData[i][pLevel]);
		}
  		if(pData[i][pFraction] == 8)
		{
			if(pData[i][pRank] != pData[i][pArmyRank])
			{
				pData[i][pArmyTime]++;
				if(pData[i][pArmyTime] >= 5)
				{
					pData[i][pArmyTime] = 0;
					pData[i][pArmyRank] = pData[i][pRank];
					SendClientMessage(i,0x3399FFFF,"Ваше текущее звание в армии было внесено в воинский учет");
				}
			}
			else pData[i][pArmyTime] = 0;
			new query[150];
			format(query,sizeof(query),"UPDATE `accounts` SET `armytime` = '%d', `armyrank` = '%d' WHERE `id` = '%d'",pData[i][pArmyTime],pData[i][pArmyRank],pData[i][pMysqlID]);
			sql_query(zConn, query);
		}

		SetTimerEx("MoneyFriends",1000,0,"d",i);
		//MoneyFriends(i);
		format(str,sizeof(str),">> "W"На ваш счёт было добавлено 40.000 донат коинов и 5 очков репутации!");
		SendClientMessage(i, CYELLOW,str);
		pData[i][pAdmReputation] = pData[i][pAdmReputation] + 5;
		pData[i][pDonate] = pData[i][pDonate] + 40000;
		new query[256];
		format(query,sizeof(query),"UPDATE `accounts` SET `exp` = '%d', `level` = '%d', `age` = '%d', `zakon` = '%d', `bank` = '%d', `donate` = '%d', `Reputation` = '%d' salary=0 otigral=0 WHERE `id` = '%d'",
		pData[i][pExp],pData[i][pLevel],pData[i][pAge],pData[i][pZakon], pData[i][pBank], pData[i][pDonate], pData[i][pAdmReputation], pData[i][pMysqlID]);
		sql_query(zConn, query, QUERY_THREADED);
	}
	return 1;
}
Донат, который должен зачилятся за час, не зачисляется. Счёт доната остается таким самым, каким и был.
Проблема, видимо в этой строке

PHP:
		format(str,sizeof(str),">> "W"На ваш счёт было добавлено 40.000 донат коинов и 5 очков репутации!");
		SendClientMessage(i, CYELLOW,str);
		pData[i][pAdmReputation] = pData[i][pAdmReputation] + 5;
		pData[i][pDonate] = pData[i][pDonate] + 40000;
		new query[256];
		format(query,sizeof(query),"UPDATE `accounts` SET `exp` = '%d', `level` = '%d', `age` = '%d', `zakon` = '%d', `bank` = '%d', `donate` = '%d', `Reputation` = '%d' salary=0 otigral=0 WHERE `id` = '%d'",
		pData[i][pExp],pData[i][pLevel],pData[i][pAge],pData[i][pZakon], pData[i][pBank], pData[i][pDonate], pData[i][pAdmReputation], pData[i][pMysqlID]);
		sql_query(zConn, query, QUERY_THREADED);
	}
	return 1;
}
Помогите, пожалуйсто :З
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу