Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Как запретить урон по игрокам? - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Как запретить урон по игрокам?

#1
Пользователь офлайн   FasminCode 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Есть 2 паблика:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
	return 1;
}


и
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
	return 1;
}


Как полностью запретить урон по игроку который его наносит или получает? И еще, как поделить урон, который наносит игрок в 2 раза?
0

#2
Пользователь офлайн   Nexius 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Касаемо запрета урона: если устраивает запретить лишь урон от огнестрельного (bullet) оружия, то можно ограничиться возвратом 0 в OnPlayerWeaponShot. Если полный запрет урона вообще на любое оружие, то выставить одинаковую команду в SetPlayerTeam всем игрокам, между которыми нужно отключить урон. Изменение размера урона возможно только имея серверную систему урона, т.е. отключенную стандартную клиентскую дамаг систему (через уже упомянутый SetPlayerTeam) и написанную заново серверную на основе пабликов OnPlayerGive/TakeDamage, в которых уже через SetPlayerHealth сервер регулирует выдачу конечного урона игрокам сам. Чтобы не изобретать велосипед, уже реализованную (и самую популярную) серверную дамаг систему можно взять здесь. Там через OnPlayerDamage можно и блокировать урон, и как угодно его изменять в процессе.

Сообщение отредактировал Nexius: 14 мая 2022 - 02:12

1

#3
Пользователь офлайн   habarov228 

  • Знаток
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNexius (14 мая 2022 - 02:06) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


В лучшем случае можно было бы выставлять SetPlayerTeam в SetSpawnInfo - но увы не работает постановка команды там
0

#4
Пользователь офлайн   Nexius 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияhabarov228 (14 мая 2022 - 11:05) писал:

В лучшем случае можно было бы выставлять SetPlayerTeam в SetSpawnInfo - но увы не работает постановка команды там

Если использовать weapon-config, то ничего и выставлять нигде не надо, он всё сам делает. А если нужно только отключить урон и не хочется ставить серверную дамаг систему, то SetPlayerTeam можно и в любом другом месте указать, где он работает (хоть при коннекте, хоть при спавне).

Сообщение отредактировал Nexius: 14 мая 2022 - 13:55

0

#5
Пользователь офлайн   habarov228 

  • Знаток
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNexius (14 мая 2022 - 13:55) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Да, но опять неизвестно каким образом работает выдача team в setspawninfo в связи с тем что урон не блокируется
0

#6
Пользователь офлайн   Nexius 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияhabarov228 (14 мая 2022 - 18:30) писал:

Да, но опять неизвестно каким образом работает выдача team в setspawninfo в связи с тем что урон не блокируется

Никаким. Это баг с SetSpawnInfo, что он просто не выдаёт игроку тиму, если в неё таковую указать. И хз вообще зачем цепляться конкретно за SetSpawnInfo, если можно просто единожды поставить при коннекте/спавне SetPlayerTeam и проблема решена.

Сообщение отредактировал Nexius: 14 мая 2022 - 21:41

0

#7
Пользователь офлайн   habarov228 

  • Знаток
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNexius (14 мая 2022 - 21:41) писал:

Никаким. Это баг с SetSpawnInfo, что он просто не выдаёт игроку тиму, если в неё таковую указать. И хз вообще зачем цепляться конкретно за SetSpawnInfo, если можно просто единожды поставить при коннекте/спавне SetPlayerTeam и проблема решена.


Нужно в какое-то определённое место, чтобы и игрок зашёл полностью на сервер, и вызвалось все это один раз
0

#8
Пользователь офлайн   Nexius 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияhabarov228 (14 мая 2022 - 23:26) писал:

Нужно в какое-то определённое место, чтобы и игрок зашёл полностью на сервер, и вызвалось все это один раз

При конекте/спавне, как уже написал
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика