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



Не найдено.

3 posts in this topic

Помогите пожалуйста,Я мучаюсь уже 2 дня,Не могу сделать,Можете объяснить как:Заранее спасибо)

Share this post


Link to post
Share on other sites

@Дюха, ну, например, как-то вот так:

public OnPlayerDeath(playerid, killerid, reason) {
	
	SetSpawnInfo(playerid, 0, 0, /* позиция спавна X */, /*позиция спавна Y*/, /*позиция спавна Z*/, /*позиция спавна A*/, 0, 0, 0, 0, 0, 0);
	return 1;
}

А по окончании лечения следует повторно изменить данные появления игрока через SetSpawnInfo и отправить его на респавн:

SetSpawnInfo(playerid, 0, 0, /* позиция спавна X */, /*позиция спавна Y*/, /*позиция спавна Z*/, /*позиция спавна A*/, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);

 

Однако учтите, что этот метод будет правильно работать только при условии, что в OnPlayerSpawn вы не производите изменение позиции игрока (SetPlayerPos). Если же вы производите, тогда применяйте следующий вариант:

public OnPlayerSpawn(playerid, killerid, reason) {
	SetPVarInt(playerid, "flag_hospital_spawn", 1);
	
	return 1;
}

public OnPlayerSpawn(playerid) {
	if(GetPVarInt(playerid, "flag_hospital_spawn") == 1) {
		SetPlayerPos(playerid, /*позиция спавна X*/, /*позиция спавна Y*/, /*позиция спавна Z*/);
		SetPVarInt(playerid, "flag_hospital_spawn", 0);
		return 1;
	}
	
	return 1;
}

 

Но вообще следует понимать, что логика во втором варианте неправильная. Да, этот метод будет работать, но не предполагалось использовать спавн игрока таким методом. 

 

Изначально считалось, что пользователи должны устанавливать, где игрок будет появляться через SetSpawnInfo. Там и задаются стандартные координаты появления. Однако, все стали использовать изменение позиции игрока через SetPlayerPos внутри OnPlayerSpawn. Из-за этого получается, что при смерти игрок появляется сначала на координатах, которые заданы через SetSpawnInfo (а, учитывая, что оно не используется, эти координаты равны нулю), то есть по сути на координатах 0.0, 0.0, 0.0. А затем уже через SetPlayerPos игрок отправляется на нужные координаты. И порой это время между первым и вторым появлением настолько велико, что игрок успевает заметить, как первый раз появился не там, где нужно. Менять логику на уже готовых модах слишком муторно. Поэтому, к сожалению, актуален второй метод разрешения вашего вопроса.

Share this post


Link to post
Share on other sites
19 часов назад, odosenok сказал:

@Дюха, ну, например, как-то вот так:


public OnPlayerDeath(playerid, killerid, reason) {
	
	SetSpawnInfo(playerid, 0, 0, /* позиция спавна X */, /*позиция спавна Y*/, /*позиция спавна Z*/, /*позиция спавна A*/, 0, 0, 0, 0, 0, 0);
	return 1;
}

А по окончании лечения следует повторно изменить данные появления игрока через SetSpawnInfo и отправить его на респавн:


SetSpawnInfo(playerid, 0, 0, /* позиция спавна X */, /*позиция спавна Y*/, /*позиция спавна Z*/, /*позиция спавна A*/, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);

 

Однако учтите, что этот метод будет правильно работать только при условии, что в OnPlayerSpawn вы не производите изменение позиции игрока (SetPlayerPos). Если же вы производите, тогда применяйте следующий вариант:


public OnPlayerSpawn(playerid, killerid, reason) {
	SetPVarInt(playerid, "flag_hospital_spawn", 1);
	
	return 1;
}

public OnPlayerSpawn(playerid) {
	if(GetPVarInt(playerid, "flag_hospital_spawn") == 1) {
		SetPlayerPos(playerid, /*позиция спавна X*/, /*позиция спавна Y*/, /*позиция спавна Z*/);
		SetPVarInt(playerid, "flag_hospital_spawn", 0);
		return 1;
	}
	
	return 1;
}

 

Но вообще следует понимать, что логика во втором варианте неправильная. Да, этот метод будет работать, но не предполагалось использовать спавн игрока таким методом. 

 

Изначально считалось, что пользователи должны устанавливать, где игрок будет появляться через SetSpawnInfo. Там и задаются стандартные координаты появления. Однако, все стали использовать изменение позиции игрока через SetPlayerPos внутри OnPlayerSpawn. Из-за этого получается, что при смерти игрок появляется сначала на координатах, которые заданы через SetSpawnInfo (а, учитывая, что оно не используется, эти координаты равны нулю), то есть по сути на координатах 0.0, 0.0, 0.0. А затем уже через SetPlayerPos игрок отправляется на нужные координаты. И порой это время между первым и вторым появлением настолько велико, что игрок успевает заметить, как первый раз появился не там, где нужно. Менять логику на уже готовых модах слишком муторно. Поэтому, к сожалению, актуален второй метод разрешения вашего вопроса.

Спасибо + тебе

Share this post


Link to post
Share on other sites
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

    • glvde.
      By glvde.
      Матрешка РП | Слив мода с продажи
      Просмотр файла МАТРЕШКА РП
       
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 49192.
      Анти-чит: Nexius-AC v1.9.53.
      Автор доработки: Антон Нолмадов.
       
      Стоило бы немного поговорить о том, почему этот мод сливается.
      Данный мод покупался у Антона Нолмадова напрямую.
      Отдали мы около 1.000 рублей, с некоторыми доработками (о них попозже).

      О каких доработках идет речь:

      У данного кадра мы купили: Мод, сборка(ПК) + 700 рублей - адаптирование клиента мобильного под игровой мод.
      Мы все оплатили, он выставил сроки до пятницы (24.09.21), на дворе - воскресенье (26.09.21).
      Спустя день мы добились того, что нам предоставят сборку на ПК (скрин. ниже):

      Сборку предоставили, а теперь начинается самое интересное.
      Как утверждалось в теме с продажей - основа мода Brilliant.
      Открыв код я понял, что основа мода далеко не Brilliant.
      Архив с игровым модом предоставили без .sql файла (базы данных).
      Соответственно, никаких адаптированных клиентов предоставлено не было.

      Остальные ссылки:

      Уважаемая администрация портала Pawno-Rus - @DEST, @keyl, @Jawn.
      Попрошу обратить внимание на данного персонажа - @Антон Нолмадов 
      P.S: архив предоставил таким, как он и был на yadi.sk (прямой линк - *клик*).

      Лучшая благодарность для меня - подписка на группу моей студии: vk.link/way_dev
      Всем спасибо за внимание.
      Добавил glvde. Добавлено 26.09.2021 Категория Моды Автор Антон Нолмадов  
    • glvde.
      By glvde.
      МАТРЕШКА РП
       
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 49192.
      Анти-чит: Nexius-AC v1.9.53.
      Автор доработки: Антон Нолмадов.
       
      Стоило бы немного поговорить о том, почему этот мод сливается.
      Данный мод покупался у Антона Нолмадова напрямую.
      Отдали мы около 1.000 рублей, с некоторыми доработками (о них попозже).

      О каких доработках идет речь:

      У данного кадра мы купили: Мод, сборка(ПК) + 700 рублей - адаптирование клиента мобильного под игровой мод.
      Мы все оплатили, он выставил сроки до пятницы (24.09.21), на дворе - воскресенье (26.09.21).
      Спустя день мы добились того, что нам предоставят сборку на ПК (скрин. ниже):

      Сборку предоставили, а теперь начинается самое интересное.
      Как утверждалось в теме с продажей - основа мода Brilliant.
      Открыв код я понял, что основа мода далеко не Brilliant.
      Архив с игровым модом предоставили без .sql файла (базы данных).
      Соответственно, никаких адаптированных клиентов предоставлено не было.

      Остальные ссылки:

      Уважаемая администрация портала Pawno-Rus - @DEST, @keyl, @Jawn.
      Попрошу обратить внимание на данного персонажа - @Антон Нолмадов 
      P.S: архив предоставил таким, как он и был на yadi.sk (прямой линк - *клик*).

      Лучшая благодарность для меня - подписка на группу моей студии: vk.link/way_dev
      Всем спасибо за внимание.
    • brodgie
      By brodgie
      Include - m_mail
      Просмотр файла m_mail - Отправляет письмо на электронную почту из игры.
       
      Описание:

      • Поддержка русского текста;
      • Доступно 2 типа отправки письма (обычный и HTML).

      Пример использования:
       
      #define M_MAIL_URL "example.com/m_mail.php" #define M_MAIL_ADDRESS "mymail@example.com" #include <m_mail> public OnPlayerConnect(playerid) { Mail_Send(playerid, Mail:EXAMPLE_EMAIL, "pawnocoder@mail.ru", "Название", "Тема сообщения", "Текст сообщения"); return 1; } Mail_Response:EXAMPLE_EMAIL(playerid, response_code, const data[]) { switch (response_code) { case 200: { // Почта успешно отправлена } default: { // Не удалось отправить почту } } return 1; }  
      Автор: NoName (Pawno_Coder) | Взято с соседнего борда
      Добавил brodgie Добавлено 25.09.2021 Категория Плагины / инклуды Автор Pawno_Coder Совместимость с версией мультиплеера  
    • brodgie
      By brodgie
      m_mail - Отправляет письмо на электронную почту из игры.
       
      Описание:

      • Поддержка русского текста;
      • Доступно 2 типа отправки письма (обычный и HTML).

      Пример использования:
       
      #define M_MAIL_URL "example.com/m_mail.php" #define M_MAIL_ADDRESS "mymail@example.com" #include <m_mail> public OnPlayerConnect(playerid) { Mail_Send(playerid, Mail:EXAMPLE_EMAIL, "pawnocoder@mail.ru", "Название", "Тема сообщения", "Текст сообщения"); return 1; } Mail_Response:EXAMPLE_EMAIL(playerid, response_code, const data[]) { switch (response_code) { case 200: { // Почта успешно отправлена } default: { // Не удалось отправить почту } } return 1; }  
      Автор: NoName (Pawno_Coder) | Взято с соседнего борда
    • Antoxa39
      By Antoxa39
      Здрасте, вообщем сразу к делу. платный ли плагин для новых машин на сервере? У меня есть плагин который расширяет количество новых машин на сервере, но нет клиентской части. Так вот плагин клиент. части платный? Если нет то может кто нибудь его скинуть?