Question

Помогите пожалуйста выявил причину что при заходе намсервер у игрока нет вод уд он сдает на права все отлично но прирестарте или перезаходе на сервер водительского удостоверения нет и все приходится сдавать с самого начала да и с деньгами таже самая проблемма все возращается к начальному капиталу который указан в бд

 

Спойлер

//Сохранение аккаунта
stock SaveAccount(playerid)
{
    if(!PlayerLogged[playerid]) return true;
    new src[128];
    /////////////////////////////////
    format(query,sizeof(query),"UPDATE "TABLE_ACCOUNT" SET ");
    format(src,sizeof(src),"ip='%s',", PlayerInfo[playerid][pPlIP]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"level=%d,",PlayerInfo[playerid][pLevel]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"admin=%d,",PlayerInfo[playerid][pAdmin]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"sex=%d,",PlayerInfo[playerid][pSex]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"ippassword='%s',",PlayerInfo[playerid][pIpPassword]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"model=%d,",PlayerInfo[playerid][pModel]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"loach=%d,",PlayerInfo[playerid][pChar]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"cash=%d,",PlayerInfo[playerid][pCash]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"bank=%d,",PlayerInfo[playerid][pBank]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"mute=%d,",PlayerInfo[playerid][pMuted]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"warn=%d,",PlayerInfo[playerid][pWarn]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"warntime=%d,",PlayerInfo[playerid][pWarnTime]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"leader=%d,",PlayerInfo[playerid][pLeader]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"member=%d,",PlayerInfo[playerid][pMember]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"rank=%d,",PlayerInfo[playerid][pRank]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"pick=%d,",PlayerInfo[playerid][pPick]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"exp=%d,",PlayerInfo[playerid][pExp]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"news=%d,",PlayerInfo[playerid][pNews]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"morgan='%i',",PlayerInfo[playerid][pMorgan]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"morgantime='%i',",PlayerInfo[playerid][pMorganTime]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"crimes=%d,",PlayerInfo[playerid][pCrimes]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"wanted=%d,",PlayerInfo[playerid][pWanted]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"wantedtime=%d,",PlayerInfo[playerid][pWantedTime]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"wantedwho='%s',",PlayerInfo[playerid][pWantedWho]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"wantedreason='%s',",PlayerInfo[playerid][pWantedReason]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"job=%d,",PlayerInfo[playerid][pJob]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"checktime=%d,",PlayerInfo[playerid][pCheckTime]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"drugs=%d,",PlayerInfo[playerid][pDrugs]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"mats=%d,",PlayerInfo[playerid][pMats]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"heal='%f',",PlayerInfo[playerid][pHeal]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"married=%d,",PlayerInfo[playerid][pMarried]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"whomarried='%s',",PlayerInfo[playerid][pWhoMarried]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"paycheck='%i',",PlayerInfo[playerid][pPayCheck]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"fishing='%i',",PlayerInfo[playerid][pFish]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"lottery='%i',",PlayerInfo[playerid][pLottery]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"vip='%i',",PlayerInfo[playerid][pVIP]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"time='%i',",PlayerInfo[playerid][pTime]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"fstyle='%i',",PlayerInfo[playerid][pFightStyle]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"credits='%i',",PlayerInfo[playerid][pCredits]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"totalcredits='%i',",PlayerInfo[playerid][pTotalCredits]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"skin1='%i',",PlayerInfo[playerid][pSkin1]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"skin2='%i',",PlayerInfo[playerid][pSkin2]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"skin3='%i',",PlayerInfo[playerid][pSkin3]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"spawnchange='%i',",PlayerInfo[playerid][pSpawnChange]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"sdpistol='%i',",PlayerInfo[playerid][pGunSkill][0]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"deserteagle='%i',",PlayerInfo[playerid][pGunSkill][1]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"shotgun='%i',",PlayerInfo[playerid][pGunSkill][2]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"mp5='%i',",PlayerInfo[playerid][pGunSkill][3]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"ak47='%i',",PlayerInfo[playerid][pGunSkill][4]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"m4='%i',",PlayerInfo[playerid][pGunSkill][5]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"rpr='%i',",PlayerInfo[playerid][pRPR]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"glasses='%d',",PlayerInfo[playerid][pGlasses]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"satiety='%i',",PlayerInfo[playerid][pSatiety]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"pZhazhda='%i',",PlayerInfo[playerid][pZhazhda]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"pBanya='%i',",PlayerInfo[playerid][pBanya]);//pBanya
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"Gigiena='%i',",PlayerInfo[playerid][pGigiena]);//pGigiena
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"Piss='%i',",PlayerInfo[playerid][pPiss]);//Piss
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"Putlist='%i',",PlayerInfo[playerid][pPutlist]);//Putlist
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"rprgive='%i',",PlayerInfo[playerid][pRPRGive]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"healths='%f',",PlayerInfo[playerid][pHealthS]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"sportexp='%i',",PlayerInfo[playerid][pSportEXP]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"online='%i',",PlayerInfo[playerid][pOnline]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"zakon='%i',",PlayerInfo[playerid][pZakon]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"bolezn='%i',",PlayerInfo[playerid][pBolezn]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"ipcheck='%i',",PlayerInfo[playerid][ProverkaIP]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"hospital='%i',",PlayerInfo[playerid][pHospital]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"watch='%i',",PlayerInfo[playerid][pWatch]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"ciggare='%i',",PlayerInfo[playerid][pCiggare]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"sprunk='%i',",PlayerInfo[playerid][pSprunk]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"mask='%i',",PlayerInfo[playerid][pMask]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"phonebalance='%i',",PlayerInfo[playerid][pPhoneBalance]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"truckskill='%i',",PlayerInfo[playerid][pTruckSkill]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"spawn='%i',",PlayerInfo[playerid][pSpawn]);
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"vb='%i',",PlayerInfo[playerid][pVb]);
    strcat(query,src,sizeof(query));
    format(PlayerInfo[playerid][pPhones],16,"%i, %i, %i",
    PlayerInfo[playerid][pPhone][0],PlayerInfo[playerid][pPhone][1], PlayerInfo[playerid][pPhone][2]);
    format(src,sizeof(src),"phone='%s',",PlayerInfo[playerid][pPhones]);
    strcat(query,src,sizeof(query));
    
    format(PlayerInfo[playerid][pLic],40,"%i, %i, %i, %i, %i",
    
    PlayerInfo[playerid][pLic][0],PlayerInfo[playerid][pLic][1],PlayerInfo[playerid][pLic][2]
    ,PlayerInfo[playerid][pLic][3],PlayerInfo[playerid][pLic][4]);
    
    format(src,sizeof(src),"lic='%s',",PlayerInfo[playerid][pLic]);
    strcat(query,src,sizeof(query));
    
    format(PlayerInfo[playerid][pWorkBook], 40, "%i, %i, %i, %i, %i, %i",
    PlayerInfo[playerid][pWB][0], PlayerInfo[playerid][pWB][1],PlayerInfo[playerid][pWB][2]
    ,PlayerInfo[playerid][pWB][3],PlayerInfo[playerid][pWB][4], PlayerInfo[playerid][pWB][5]);
    format(src,sizeof(src),"workbook='%s',",PlayerInfo[playerid][pWorkBook]);
    strcat(query,src,sizeof(query));
    if(GetPVarInt(playerid, "GunCheat") == 0)
    {
        for(new i = 0; i < 13; i++)
        {
            GetPlayerWeaponData(playerid, i, PlayerInfo[playerid][pGun], PlayerInfo[playerid][pAmmo]);
        }
        format(PlayerInfo[playerid][pGuns],40,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
        PlayerInfo[playerid][pGun][0],PlayerInfo[playerid][pGun][1],PlayerInfo[playerid][pGun][2],
        PlayerInfo[playerid][pGun][3],PlayerInfo[playerid][pGun][4],PlayerInfo[playerid][pGun][5],
        PlayerInfo[playerid][pGun][6],PlayerInfo[playerid][pGun][7],PlayerInfo[playerid][pGun][8],
        PlayerInfo[playerid][pGun][9],PlayerInfo[playerid][pGun][10],PlayerInfo[playerid][pGun][11],PlayerInfo[playerid][pGun][12]);
        format(src,sizeof(src),"guns='%s',",PlayerInfo[playerid][pGuns]);
        strcat(query,src,sizeof(query));
        format(PlayerInfo[playerid][pAmmos],160,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
        PlayerInfo[playerid][pAmmo][0],PlayerInfo[playerid][pAmmo][1],PlayerInfo[playerid][pAmmo][2],
        PlayerInfo[playerid][pAmmo][3],PlayerInfo[playerid][pAmmo][4],PlayerInfo[playerid][pAmmo][5],
        PlayerInfo[playerid][pAmmo][6],PlayerInfo[playerid][pAmmo][7],PlayerInfo[playerid][pAmmo][8],
        PlayerInfo[playerid][pAmmo][9],PlayerInfo[playerid][pAmmo][10],PlayerInfo[playerid][pAmmo][11],PlayerInfo[playerid][pAmmo][12]);
        format(src,sizeof(src),"ammos='%s',",PlayerInfo[playerid][pAmmos]);
    }
    strcat(query,src,sizeof(query));
    format(src,sizeof(src),"skills='%d'",PlayerInfo[playerid][pGunSkill][6]);
    strcat(query,src,sizeof(query));
    new playername[32];
    GetPlayerName(playerid,playername,32);
    format(src,sizeof(src)," WHERE name='%s'",playername);
    strcat(query,src,sizeof(query));
    mysql_function_query(ConBD, query, true, "", "");
    SaveAllMyCar(playerid);
    return true;
}

 

если понадобятся еще какието данные скажите предоставлю так как не имею понятия какие еще нужны

Share this post


Link to post

4 answers to this question

  • 0
9 часов назад, Talex сказал:

Алло, @Андрей Лазарев сказал, что тему можно закрыть, проснитесь :D

 

 

@Андрей Лазарев, и все-таки отвечу. 

 

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

Спасибо я все испаравил просто тупо убрал сохранение системы потребностей и в структуре бд прописал все по 100 тем самым игрок при спавне ничего не требует а в процессе игры потом все прийдется пополнять по мере потребности

 

Share this post


Link to post
  • 0

@Андрей Лазарев, а все остальные данные нормально сохраняются? Покажите код, где игроку выдается водительское удостоверение после успешной сдачи экзамена.

Share this post


Link to post
  • 0
3 минуты назад, odosenok сказал:

@Андрей Лазарев, а все остальные данные нормально сохраняются? Покажите код, где игроку выдается водительское удостоверение после успешной сдачи экзамена.

нет даже если принимаю в организацию после перезахода он в ней не состаит

	if(GetPVarInt(playerid, "LicTest") > 0)
	{
		if(GetPlayerState(playerid)!= 2) return SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}Вы должны находиться за рулем!");

		if(pPressed[playerid] >= 14)
		{
			if(GetPVarInt(playerid, "LicTestError") > 2)
			{
				SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}Вы провалили экзамен по вождению");
				ShowPlayerDialog(playerid, D_NULL, 0, "{ffffff}Права", "{FF6347}К сожалению вы не сдали экзамен по вождению", "Закрыть", "");
			}
			else
			{
				SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}Поздравляем! Вы сдали экзамен по вождению");
				ShowPlayerDialog(playerid, D_NULL, 0, "{33AAFF}Права", "{ffffff}Поздравляем, вы сдали экзамен по вождению", "Закрыть", "");
				PlayerInfo[playerid][pLic][0] = 1;
			}
			lictest_Time[playerid] = 0;
			DeletePVar(playerid, "LicTest");
			DeletePVar(playerid, "LicTestHealth");
			DeletePVar(playerid, "LicTestError");
			DeletePVar(playerid, "LicChec");
			SetVehicleToRespawn(GetPlayerVehicleID(playerid));
			DisablePlayerRaceCheckpoint(playerid);
		}
		else
		{
			pPressed[playerid]++;
			new Float:health, i = pPressed[playerid];
			GetVehicleHealth(GetPlayerVehicleID(playerid), health);
			if(health < GetPVarFloat(playerid, "LicTestHealth"))
			{
				SendMes(playerid, COLOR_NICERED, "Вы повредили транспорт. Ошибок: {ffffff}%i", GetPVarInt(playerid, "LicTestError") + 1);
				SetPVarInt(playerid, "LicTestError", GetPVarInt(playerid, "LicTestError") + 1);
			}
			if(SpeedVehicle(playerid) / 2 > 60)
			{
				SendMes(playerid, COLOR_NICERED, "Вы привысили скорость. Ошибок: {ffffff}%i", GetPVarInt(playerid, "LicTestError") + 1);
				SetPVarInt(playerid, "LicTestError", GetPVarInt(playerid, "LicTestError") + 1);
			}
			if(GetPVarInt(playerid, "LicTestError") > 2 && pPressed[playerid] < 14)
			{
			    i = 14;
			    pPressed[playerid] = 14;
			    lictest_Time[playerid] = 300;
				SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}Вы допустили 3 ошибки");
				SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}Возвращайтесь в автошколу для пересдачи экзамена по вождению");
				SendClientMessage(playerid, COROR_LBLUE, "[INFO] {FFFFFF}У Вас есть 5 минут чтобы вернуть атомобиль обратно");
			}
			if(pPressed[playerid] < 14)
			{
				SetPlayerRaceCheckpoint(playerid,0, LicTest[i][0],LicTest[i][1],LicTest[i][2],LicTest[i][3],LicTest[i][4],LicTest[i][5], 5.0);
			}
			else
			{
				SetPlayerRaceCheckpoint(playerid,1, LicTest[i][0],LicTest[i][1],LicTest[i][2],LicTest[i][3],LicTest[i][4],LicTest[i][5], 5.0);
			}
			SetPVarFloat(playerid, "LicTestHealth", health);
		}
	}

походу вообще ничего не сохраняется

 

я кажется понял причину моей проблеммы я когда создавал систему потребностей то жажду туалет и все такое прописал в середину стока сохранения аккаунта а в базе данных они идут последними по счету.сейчас попробывал закрыть это в скобки и дентги которые выдал сохранились единственное что с лицкензиями другие числа выявились но это щас буду исправлять надеюсь получится

 

 

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

Заметка от Cawfee , создано

Объединил сообщения.

Share this post


Link to post
  • 0

Алло, @Андрей Лазарев сказал, что тему можно закрыть, проснитесь :D

 

В 11.07.2019 в 13:16, Андрей Лазарев сказал:

Но все же проблемма решена тему можно закрывать 

 

@Андрей Лазарев, и все-таки отвечу. 

В 11.07.2019 в 13:16, Андрей Лазарев сказал:

только неи как не могу понять причину там же явно определено что и куда сохранять а не как сохранять бд по последовательности строк хотя может я и ошибаюсь

 

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

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content