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

Ошибка в исполнении проверок

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

Steve_Stage

Начинающий
Пользователь
Регистрация
12 Июл 2019
Сообщения
35
Лучшие ответы
0
Репутация
2
Вот энум с нужной мне переменной player[playerid][pDeath]:
PHP:
enum pInfo {
	pPass[50+1], pMail[60+1], pMoney, pLevel, pAge, pNational, pSkin, pSex, pID, pReferalCheck, pReferal[MAX_PLAYER_NAME+1], pDateReg[10+1], pExp, pDeath
}
new
	player[MAX_PLAYERS][pInfo];
Вот сами проверки, в идеале после смерти персонажа он должен появляться на месте смерти и изображать анимацию лежа:
PHP:
public OnPlayerSpawn(playerid)
{
	if(login_check{playerid} == true)
 	{
		SetPlayerSpawn(playerid);
	}
	if(login_check{playerid} == true && player[playerid][pDeath] == 1)
	{
	    new Float:x, Float:y, Float:z;
    	GetPlayerPos(playerid, x, y, z);
    	SetPlayerPos(playerid, x, y, z);
		ApplyAnimation(playerid, "CRACK", "CRCKIDLE2", 4.1, 1, 1, 1, 1, 0);
		FreezePlayer(playerid, 0);
	}
	return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    player[playerid][pDeath] = 1;
	return true;
}


---------- Сообщение добавлено в 22:08 ---------- Предыдущее сообщение добавлено в 22:05 ----------

Вот энум с нужной мне переменной player[playerid][pDeath]:
PHP:
enum pInfo {
	pPass[50+1], pMail[60+1], pMoney, pLevel, pAge, pNational, pSkin, pSex, pID, pReferalCheck, pReferal[MAX_PLAYER_NAME+1], pDateReg[10+1], pExp, pDeath
}
new
	player[MAX_PLAYERS][pInfo];
Вот сами проверки, в идеале после смерти персонажа он должен появляться на месте смерти и изображать анимацию лежа:
PHP:
public OnPlayerSpawn(playerid)
{
	if(login_check{playerid} == true)
 	{
		SetPlayerSpawn(playerid);
	}
	if(login_check{playerid} == true && player[playerid][pDeath] == 1)
	{
	    new Float:x, Float:y, Float:z;
    	GetPlayerPos(playerid, x, y, z);
    	SetPlayerPos(playerid, x, y, z);
		ApplyAnimation(playerid, "CRACK", "CRCKIDLE2", 4.1, 1, 1, 1, 1, 0);
		FreezePlayer(playerid, 0);
	}
	return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    player[playerid][pDeath] = 1;
	return true;
}
А он появляется на месте спавна после авторизации, с заморозкой (TogglePlayerControllabel)

---------- Сообщение добавлено в 23:44 ---------- Предыдущее сообщение добавлено в 22:08 ----------

Я решил! Вот код:

PHP:
enum pInfo {
	pPass[50+1], pMail[60+1], pMoney, pLevel, pAge, pNational, pSkin, pSex, pID, pReferalCheck, pReferal[MAX_PLAYER_NAME+1], pDateReg[10+1], pExp, pDeath
}
new
	player[MAX_PLAYERS][pInfo];
PHP:
new Float:x1,
	Float:y1,
	Float:z1;
PHP:
public OnPlayerSpawn(playerid)
{
	if(login_check{playerid} == true)
 	{
		SetPlayerSpawn(playerid);
		if(player[playerid][pDeath] == 1)
		{
		    SetPlayerPos(playerid, x1, y1, z1);
		    return true;
		}
	}
	return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    GetPlayerPos(playerid, x1, y1, z1);
    player[playerid][pDeath] = 1;
	return true;
}
Теперь игрок спавнится после смерти там же, где сдох! Всего-то надо было переменные координат сделать глобальными!
Закрыто
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу