Перейти к содержанию
Авторизация  
SCRIPTMAN

Проблема с уровнями.

Рекомендуемые сообщения

SCRIPTMAN

Всем привет. Использую мод, основа NFRP. Там такая фигня, после рестарта уровень у игроков становится 10000. В чём может быть проблема? Говорите, что нужно, всё выложу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reduz

Попробуй поищи с строчку с этой цифрой и переменную связанную с pLevel.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@reduz,Искал. Но вот что нашёл: И этот уровень становится только после рестарта... 

public GameModeInitExitFunc()
{
	foreach(Player, i)
	{
		if(IsPlayerConnected(i))
		{
			DisablePlayerCheckpoint(i);
			gPlayerCheckpointStatus[i] = CHECKPOINT_NONE;
			SetPlayerCameraPos(i,1460.0, -1324.0, 287.2), SetPlayerCameraLookAt(i,1374.5, -1291.1, 239.0);
			SaveAccount(i); 
			TextDrawDestroy(Fuel[i]);
			TextDrawDestroy(BlackBox);
			gPlayerLogged[i] = 0;
			Player[i][pOnline] = 0, SetPlayerInt(i, "Online", 0);
		}
	}
	SetTimer("GameModeExitFunc", 10000, 0);
	return true;
} 
public ServerRestart()
{
    SendClientMessageToAll(COLOR_LIGHTRED, "Внимание! Происходит перезапуск игрового сервера!");
    SaveKazna(), SaveResurs(), SaveRadars(), SaveOrders(), SaveParking();
    Log("Others", "Игровой сервер перезагружается!");
    SetTimer("GameModeInitExitFunc", 10000, 0);
	return true;
} 
Изменено пользователем LADA
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Посмотри в Onplayerlogin , на выдачу лвл , или в OnPlayerconnect  Примерно должно быть типо такого : 

PlayerInfo[playerid][pLevel] = 10000;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,OnPlayerLogin вообще нет. В OnPlayerConnect не нашёл ничего связанного с pLevel. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reduz

, кинь-ка ссыль мне над мод посмотрю,может получиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@reduz,хахаха. Ага. Разбежался. Так и кинул))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

UP!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Скинь сюда OnPlayerLogin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,Его нет... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Ну типо того что то найди , где устанавливаются параметры после входа. Authorization или как то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Вполне возможно что в структуре в бд по умолчанию стоит в Level значение на 10000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexPlay

, OnPlayerUpdate попробуй найти, может есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Точно нет.

И надо еще попробовать поискать SetPlayerScore(playerid, 10000);

Не исключено что уровень задан в дефайне/подключеном скрипте или инклуде.

Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@AlexPlay,

public OnPlayerUpdate(playerid) 
{
	AfkMarker[playerid] = -1;
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		new Float:x, Float:y, Float:z;
		new veh = GetPlayerVehicleID(playerid);
		if(Kruise[veh] == true)
		{
			GetVehicleVelocity(veh,x,y,z);
			if((x > 0.6|| x < -0.6) || (y > 0.6 || y < -0.6))
			{
				SetVehicleVelocity(veh, x*0.9, y*0.9, z);
			}
		}
	}
    new speedstring[32];
    new strings[15];
 	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		ShowSpeedTextDraw(playerid);
		Speedo[playerid] = GetPlayerSpeedEx(playerid);
		format(strings, sizeof strings, "KM / Ќ:~r~%d", Speedo[playerid]), TextDrawSetString(SpeedT[playerid], strings);
		switch(Speedo[playerid])
		{
		    case 0.. 9: format(speedstring, sizeof speedstring, " ");
		    case 10.. 20: format(speedstring, sizeof speedstring, "");
		    case 21.. 30: format(speedstring, sizeof speedstring, "");
		    case 31.. 40: format(speedstring, sizeof speedstring, "");
		    case 41.. 50: format(speedstring, sizeof speedstring, "");
		    case 51.. 60: format(speedstring, sizeof speedstring, "");
		    case 61.. 70: format(speedstring, sizeof speedstring, "");
		    case 71.. 80: format(speedstring, sizeof speedstring, "");
		    case 81.. 90: format(speedstring, sizeof speedstring, "");
		    case 91.. 100: format(speedstring, sizeof speedstring, "");
		    case 101.. 110: format(speedstring, sizeof speedstring, "");
		    case 111.. 120: format(speedstring, sizeof speedstring, "");
		    case 121.. 130: format(speedstring, sizeof speedstring, "");
		    case 131.. 140: format(speedstring, sizeof speedstring, "");
		    case 141.. 150: format(speedstring, sizeof speedstring, "");
		    case 151.. 160: format(speedstring, sizeof speedstring, "");
		    case 161.. 170: format(speedstring, sizeof speedstring, "");
		    default: format(speedstring, sizeof speedstring, "");
		}
		TextDrawSetString(LineSpeed[playerid], speedstring);
	}
	else HideSpeedTextDraw(playerid);
	//TextDrawShowForPlayer(playerid, TDZona[playerid]);
	return true;
} 

etPlayerScore

SetPlayerScore(playerid, Player[playerid][pLevel]); А такого как ты говоришь, нет..

Изменено пользователем LADA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Смотри структуру базы в phpmyadmin или где привык.

Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Покажи мне паблик где авторизация игрока идет, там скорее всего вся загвоздка 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,

forward OnAccountCheck(playerid);
public OnAccountCheck(playerid)
{
		new rows, fields; cache_get_data(rows, fields, handle);
		if(rows)
		{
			MYSQL_GetString(2, Player[playerid][pPass1], "Pass1");
			MYSQL_GetString(67, Player[playerid][pPass2], "Pass2");
			SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Fire Tech  {FFFFFF}- ввод пароля", "{FFFFFF}Авторизация\nВведите пароль.", "Далее", "Отмена");
			authorization[playerid] = 30000, hospitalcrash[playerid] = 30, SCM(playerid, COLOR_WHITE, " - Авторизация ");
		}
		else
		{
			SPD(playerid, D_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Fire Tech  {FFFFFF}- придумайте пароль", "{FFFFFF}Создайте пароль для аккаунта\
			\nПароль должен состоять:\
			\nот 6 до 48 символов\nлатинского алфавита.", "Далее", "Отмена");
			hospitalcrash[playerid] = 180, authorization[playerid] = 180000;
		}
		return 1;
}
 
	else if(dialogid == 7)
	{
	    if(!response) return SCM(playerid, COLOR_GRAD1, "Вы отменили регистрацию!"), Kick(playerid);
	    if(!strlen(inputtext)) return SPD(playerid, 7, DIALOG_STYLE_INPUT, "Защитный код", "{ffffff}Внимание! На данном аккаунте включена дополнительная защита! Введите защитный код, который был выслан вам на e-mail при регистрации!", "Далее", "Отмена");
	    if(strval(inputtext) != Player[playerid][pKod]) return SCM(playerid, COLOR_LIGHTRED, "Неверно указан защитный код!"), SPD(playerid, 7, DIALOG_STYLE_INPUT, "Защитный код", "{ffffff}Внимание! На данном аккаунте включена дополнительная защита! Введите защитный код, который был выслан вам на e-mail при регистрации!", "Далее", "Отмена");
	    format(strcom, 500, "{ffffff}Добро пожаловать на Российский игровой сервер {ee8033}\"Fire Tech  RolePlay.\"\n\
		{ffffff}Аккаунт: {ee8033}%s {ffffff}найден в базе данных сервера. Введите пароль:\n\nОсталось попыток для ввода пароля: {ee8033}%d/3.", Player[playerid][pName], PlayerPass[playerid]);
		SPD(playerid,1,DIALOG_STYLE_INPUT,"{FFFFFF}Авторизация",strcom,"Войти","Отмена");
	    return true;
	} 
//Авторизация
	else if(dialogid == D_LOGIN)
	{
		if(!response) return SCM(playerid, COLOR_ERROR, "-");
		if(!strlen(inputtext)) return SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{23F570}Fire Tech  {FFFFFF}- ввод пароля", "{FFFFFF}Авторизация\nВведите пароль.", "Далее", "Отмена");
		//	if(strcmp(MD5_Hash(inputtext), Player[playerid][pPass2])) return SCM(playerid, COLOR_ERROR, "Пароль введен не верно! Повторите попытку."), SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Fire Tech  {FFFFFF}- ввод пароля", "{FFFFFF}Авторизация\nВведите пароль.", "Далее", "Отмена");
        if(!strcmp(MD5_Hash(inputtext), Player[playerid][pPass2], true)) return LoadAccount(playerid);
		else return SCM(playerid, COLOR_ERROR, "Пароль введен не верно! Повторите попытку."), SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{23F570}Fire Tech  {23F570}- ввод пароля", "{23F570}Авторизация\nВведите пароль.", "Далее", "Отмена");
	} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

Попробуй тупо по-искать цифру 1000 в моде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

D_LOGIN , скинь мне вот этот CASE или Dialogid , смотря что у тебя используется , только полностью

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MrBurn

Следует сверить таблицу с кодом сохранения аккаунта.

Если в коде говорится к примеру:

add_id,add_name[24],add_email[34],add_pass[26],add_admin,add_faction

 

А в таблице:

add_id,add_name[24],add_email[34],add_admin,add_faction

 

Видишь различия? Пропало поле пароля в базе, теперь уровень админа будет равен твоему паролю, это простое смещение.

Просто сверь все данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,

	else if(dialogid == D_LOGIN)
	{
		if(!response) return SCM(playerid, COLOR_ERROR, "-");
		if(!strlen(inputtext)) return SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{23F570}Fire Tech  {FFFFFF}- ввод пароля", "{FFFFFF}Авторизация\nВведите пароль.", "Далее", "Отмена");
		//	if(strcmp(MD5_Hash(inputtext), Player[playerid][pPass2])) return SCM(playerid, COLOR_ERROR, "Пароль введен не верно! Повторите попытку."), SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Fire Tech  {FFFFFF}- ввод пароля", "{FFFFFF}Авторизация\nВведите пароль.", "Далее", "Отмена");
        if(!strcmp(MD5_Hash(inputtext), Player[playerid][pPass2], true)) return LoadAccount(playerid);
		else return SCM(playerid, COLOR_ERROR, "Пароль введен не верно! Повторите попытку."), SPD(playerid, D_LOGIN, DIALOG_STYLE_INPUT, "{23F570}Fire Tech  {23F570}- ввод пароля", "{23F570}Авторизация\nВведите пароль.", "Далее", "Отмена");
	} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

ХМ страно , Ну вот идет авторизаций , после успешной авторизаций ,  откуда загружаются данные?  должен быть паблик наподобий OnPlayerLogin , найди и скинь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

,

forward NextLoadAccount(playerid);
public NextLoadAccount(playerid)
{
    new rows, fields;
	cache_get_data(rows, fields);
	if(rows)
	{
		MYSQL_GetInt(0, Player[playerid][pID]), MYSQL_GetString(1, Player[playerid][pName], "Name"), MYSQL_GetString(2, Player[playerid][pPass1], "Pass1");
		MYSQL_GetInt(3, Player[playerid][pLevel]), MYSQL_GetInt(4, Player[playerid][pAdmin]), MYSQL_GetInt(5, Player[playerid][pSex]);
		MYSQL_GetInt(6, Player[playerid][pAge]), MYSQL_GetInt(7, Player[playerid][pMuteTime]), MYSQL_GetInt(8, Player[playerid][pExp]);
        MYSQL_GetInt(9, Player[playerid][pMoney]), MYSQL_GetInt(10, Player[playerid][pBank]), MYSQL_GetInt(11, Player[playerid][pDeaths]);
        MYSQL_GetInt(12, Player[playerid][pJob]), MYSQL_GetInt(13, Player[playerid][pJailTime]), MYSQL_GetInt(14, Player[playerid][pDrugs]);
        MYSQL_GetInt(15, Player[playerid][pLeader]), MYSQL_GetInt(16, Player[playerid][pMember]), MYSQL_GetInt(17, Player[playerid][pRang]);
        MYSQL_GetInt(18, Player[playerid][pSkin]), MYSQL_GetFloat(19, Player[playerid][pHealth]), MYSQL_GetInt(20, Player[playerid][pNumber]);
        MYSQL_GetInt(21, Player[playerid][pPbiskey]), MYSQL_GetInt(22, Player[playerid][pPbiskey]), MYSQL_GetFloat(23, Player[playerid][pPos_x]);
        MYSQL_GetFloat(24, Player[playerid][pPos_y]), MYSQL_GetFloat(25, Player[playerid][pPos_z]), MYSQL_GetInt(26, Player[playerid][pCarB]);
        MYSQL_GetInt(27, Player[playerid][pFlyLic]), MYSQL_GetInt(28, Player[playerid][pBoatLic]), MYSQL_GetInt(29, Player[playerid][pGunLic]);
        MYSQL_GetInt(30, Player[playerid][pCarA]), MYSQL_GetInt(31, Player[playerid][pCarD]), MYSQL_GetInt(32, Player[playerid][pCarC]);
		MYSQL_GetInt(33, Player[playerid][pWarn]), MYSQL_GetInt(34, Player[playerid][pWanted]), MYSQL_GetInt(35, Player[playerid][pFWarns]);
		MYSQL_GetInt(36, Player[playerid][pBilet]), MYSQL_GetInt(37, Player[playerid][pPassnum]), MYSQL_GetInt(38, Player[playerid][pPass]);
        MYSQL_GetInt(39, Player[playerid][pKarta]), MYSQL_GetInt(40, Player[playerid][pPinkod]), MYSQL_GetInt(41, Player[playerid][pPhone]);
        MYSQL_GetInt(42, Player[playerid][pFSkin]), MYSQL_GetInt(43, Player[playerid][pMetall]), MYSQL_GetInt(44, Player[playerid][pPatr]);
        MYSQL_GetInt(45, Player[playerid][pHospital]), MYSQL_GetInt(46, Player[playerid][pGarageKey]), MYSQL_GetInt(47, Player[playerid][pTeam]);
        MYSQL_GetInt(48, Player[playerid][pSpawn]), MYSQL_GetInt(49, Player[playerid][pOrg]), MYSQL_GetInt(50, Player[playerid][pWarnTime]);
        MYSQL_GetInt(51, Player[playerid][pWeapon][0]), MYSQL_GetInt(52, Player[playerid][pWeapon][1]), MYSQL_GetString(53, Player[playerid][pMail], "Mail");
        MYSQL_GetInt(54, Player[playerid][pKod]), MYSQL_GetInt(55, Player[playerid][pProtection]), MYSQL_GetInt(56, Player[playerid][pSat]);
        MYSQL_GetInt(57, Player[playerid][pArrested]), MYSQL_GetInt(58, Player[playerid][pDonate]), MYSQL_GetInt(59, Player[playerid][pPhoneMoney]);
        MYSQL_GetString(60, Player[playerid][pDate], "Date"), MYSQL_GetInt(61, Player[playerid][pParking]), MYSQL_GetInt(62, Player[playerid][pParkingKart]);
		MYSQL_GetInt(63, Player[playerid][pPrevJob]), MYSQL_GetString(64, Player[playerid][pIP1], "IP1"), MYSQL_GetString(65, Player[playerid][pIP2], "IP2");
		MYSQL_GetInt(66, Player[playerid][pTook]);
		MYSQL_GetString(67, Player[playerid][pPass2], "Pass2"), MYSQL_GetInt(68, Player[playerid][pMobile]), MYSQL_GetString(69, Player[playerid][pCity], "City");
		MYSQL_GetInt(70, Player[playerid][pRep]), MYSQL_GetInt(71, Player[playerid][pRadio]), MYSQL_GetInt(72, Player[playerid][pLicTime]);
		MYSQL_GetInt(73, Player[playerid][pLicOff]), MYSQL_GetInt(74, Player[playerid][pVIP]), MYSQL_GetInt(75, Player[playerid][pVipTime]);
		MYSQL_GetInt(76, Player[playerid][pVipUnwarn]), MYSQL_GetInt(77, Player[playerid][pVipCar]), MYSQL_GetInt(78, Player[playerid][pVipCarNum]), MYSQL_GetInt(79, Player[playerid][pOnline]), MYSQL_GetInt(80, Player[playerid][pMedKarta]);
        MYSQL_GetInt(81, Player[playerid][pJail]);
		
		gPlayerLogged[playerid] = 1;
		Player[playerid][pOnline] = 1, SetPlayerInt(playerid, "Online", 1);
     	SetPlayerScore(playerid, Player[playerid][pLevel]);
  		SetSpawnInfo(playerid, Player[playerid][pTeam], Player[playerid][pSkin], Player[playerid][pPos_x], Player[playerid][pPos_y], Player[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
	    SpawnPlayer(playerid);
	    format(strcom, 50, "~g~љO—PO ЈO›AћOBAЏ© %s", Player[playerid][pName]), GameTextForPlayer(playerid, strcom, 2000, 1);
		if(Player[playerid][pVIP] == 1) SCM(playerid, COLOR_YELLOW, "На Вашем аккаунте имеется VIP.");
	}
	return true;
} 

Вот это ещё нашёл...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Как я уже и писал. Смотри значение по умолчанию у Level в структуре в бд.

kxRE1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.