Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Авторизация и Спавн

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

Holtzman

Новичок
Всем Гутен Морген! Прошу помощи в одном деле!
Не знаю почему, но при авторизации иногда загружаются не все данные.
И самая главная проблема - это после Авторизации(Все норм загрузилось) Персонаж не желает спавниться и если отправить его командой "/spawn" на спавн, то он появляется в Грув Стрит и умирает раза 2-3.
Скорей всего умирает из-за этого кода:
PHP:
public CheckHealth()
{
        for(new i = 0; i < GetMaxPlayers(); i++)
        {
                if(IsPlayerConnected(i))
                {
	                new Float: Health;
	                GetPlayerHealth(i, Health);
	                if(Player[i][pHealth] != Health)
              		{
                        SetPlayerHealth(i, Player[i][pHealth]);
              		}
                	else
                	{
                        Player[i][pHealth] = Health;
                	}
                }
        }
        return 1;
}
И только после этого он отправляется на спавн.
Весь код приложу ниже:

Загрузка аккаунта
PHP:
publics LoadAccount(playerid)
{
    Player[playerid][pID] = cache_get_field_content_int(0, "ID", connects);
    Player[playerid][pModel] = cache_get_field_content_int(0, "Model", connects);
    Player[playerid][pSex] = cache_get_field_content_int(0, "Sex", connects);
    Player[playerid][pLVL] = cache_get_field_content_int(0, "Lvl", connects);
    Player[playerid][pEXP] = cache_get_field_content_int(0, "Exp", connects);
    Player[playerid][pAdmin] = cache_get_field_content_int(0, "Admin", connects);
    Player[playerid][pAKey] = cache_get_field_content_int(0, "APassword", connects);
    Player[playerid][pHelper] = cache_get_field_content_int(0, "Helper", connects);
    Player[playerid][pMoney] = cache_get_field_content_int(0, "Money", connects);
    Player[playerid][pHealth] = cache_get_field_content_float(0, "Health", connects);
    Player[playerid][PlayerPos][0] = cache_get_field_content_float(0, "pX", connects);
    Player[playerid][PlayerPos][1] = cache_get_field_content_float(0, "pY", connects);
    Player[playerid][PlayerPos][2] = cache_get_field_content_float(0, "pZ", connects);
    Player[playerid][PlayerPos][3] = cache_get_field_content_float(0, "pA", connects);
    Player[playerid][PlayerLocation][0] = cache_get_field_content_int(0, "pI", connects);
    Player[playerid][PlayerLocation][1] = cache_get_field_content_int(0, "pW", connects);
    SetPVarInt(playerid,"Heal",0);
    GivePlayerMoney(playerid, Player[playerid][pMoney]);
    Logged{playerid} = true;
    send(playerid, COLOR_GREEN, "||--------------------------------------------------------------------------||");
    new string[1024];
	format(string, sizeof(string), "%i,%i,%i,%i,%i,%i,%i,%i,%i,%f,%f,%f,%f,%f,%i,%i",Player[playerid][pID],Player[playerid][pModel],Player[playerid][pSex],Player[playerid][pLVL],Player[playerid][pEXP],Player[playerid][pAdmin],Player[playerid][pAKey],
	Player[playerid][pHelper],Player[playerid][pMoney],Player[playerid][pHealth],Player[playerid][PlayerPos][0],Player[playerid][PlayerPos][1],Player[playerid][PlayerPos][2],Player[playerid][PlayerPos][3],Player[playerid][PlayerLocation][0],Player[playerid][PlayerLocation][1]);
	send(playerid, -1, string);
	send(playerid, COLOR_GREEN, "||--------------------------------------------------------------------------||");
	SpawnPlayer(playerid);
    return 1;
}
Скин и Спавн

PHP:
stock CheckPlayerSkin(playerid)
{
	SetPlayerSkin(playerid, Player[playerid][pModel]);
}
stock SetPlayerSpawn(playerid)
{
  	DisablePlayerCheckpoint(playerid);
	if(Logged{playerid})
	{
        if(GetPVarInt(playerid, "Heal") == 0)//Спавн где вышел
		{
 			new string[84];
			format(string, sizeof(string), "X: %f Y:%f Z:%f A:%f", Player[playerid][PlayerPos][0],Player[playerid][PlayerPos][1],Player[playerid][PlayerPos][2],Player[playerid][PlayerPos][3]);
			send(playerid, -1, string);
			SetPlayerInterior(playerid,Player[playerid][PlayerLocation][0]);
			SetPlayerVirtualWorld(playerid, Player[playerid][PlayerLocation][1]);
			TogglePlayerControllable(playerid, true);
			SetPlayerPos(playerid, Player[playerid][PlayerPos][0], Player[playerid][PlayerPos][1], Player[playerid][PlayerPos][2]);
			SetPlayerFacingAngle(playerid, Player[playerid][PlayerPos][3]);
			SetPlayerHealthAC(playerid, Player[playerid][pHealth]);
		}
		else if(GetPVarInt(playerid, "Heal") == 1 && Player[playerid][pLVL] >= 1 && Player[playerid][pLVL] <= 5)//СФ
		{
		    SetPlayerInterior(playerid,1);
			SetPlayerVirtualWorld(playerid, 1);
			TogglePlayerControllable(playerid, true);
			switch(random(6))
			{
				case 0: SetPlayerPos(playerid, 1145.9492,-2113.3928,-28.8861);
				case 1: SetPlayerPos(playerid, 1159.5533,-2113.8303,-28.8861);
				case 2: SetPlayerPos(playerid, 1161.6720,-2099.7927,-28.8861);
				case 3: SetPlayerPos(playerid, 1142.1846,-2100.1848,-28.8861);
				case 4: SetPlayerPos(playerid, 1138.9979,-2083.6348,-28.8861);
				case 5: SetPlayerPos(playerid, 1166.0062,-2083.5032,-28.8861);
			}
			SetPlayerHealthAC(playerid, 10);
		}
		else if(GetPVarInt(playerid, "Heal") == 1 && Player[playerid][pLVL] >= 6 && Player[playerid][pLVL] <= 10)//ЛС
		{
		    SetPlayerInterior(playerid,1);
			SetPlayerVirtualWorld(playerid, 2);
			TogglePlayerControllable(playerid, true);
			switch(random(6))
			{
				case 0: SetPlayerPos(playerid, 1145.9492,-2113.3928,-28.8861);
				case 1: SetPlayerPos(playerid, 1159.5533,-2113.8303,-28.8861);
				case 2: SetPlayerPos(playerid, 1161.6720,-2099.7927,-28.8861);
				case 3: SetPlayerPos(playerid, 1142.1846,-2100.1848,-28.8861);
				case 4: SetPlayerPos(playerid, 1138.9979,-2083.6348,-28.8861);
				case 5: SetPlayerPos(playerid, 1166.0062,-2083.5032,-28.8861);
			}
			SetPlayerHealthAC(playerid, 10);
		}
		else if(GetPVarInt(playerid, "Heal") == 1 && Player[playerid][pLVL] >= 11)//ЛВ
		{
		    SetPlayerInterior(playerid,1);
			SetPlayerVirtualWorld(playerid, 3);
			TogglePlayerControllable(playerid, true);
			switch(random(6))
			{
				case 0: SetPlayerPos(playerid, 1145.9492,-2113.3928,-28.8861);
				case 1: SetPlayerPos(playerid, 1159.5533,-2113.8303,-28.8861);
				case 2: SetPlayerPos(playerid, 1161.6720,-2099.7927,-28.8861);
				case 3: SetPlayerPos(playerid, 1142.1846,-2100.1848,-28.8861);
				case 4: SetPlayerPos(playerid, 1138.9979,-2083.6348,-28.8861);
				case 5: SetPlayerPos(playerid, 1166.0062,-2083.5032,-28.8861);
			}
			SetPlayerHealthAC(playerid, 10);
		}
	}
	return true;
}
И сам паблик спавна
PHP:
public OnPlayerSpawn(playerid)
{
	SetPlayerSpawn(playerid);
 	CheckPlayerSkin(playerid);
 	SetPlayerScore(playerid, Player[playerid][pLVL]);
	return true;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу