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


Фотография

Hook чекпоинт.

sourcepawn sm

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 09 Декабрь 2023 - 16:06

Доброго времени господа. Хотелось бы узнать. Кто знает как хукнуть или отследить событие после того как выжившие заходят в убежище пройдет смена карты и старт следующего сценария. 

 

player_spawn

player_entered_start_area
round_start_post_nav
 
Не работают. Только после смерти уже на этом новом сценарии. 
Т.е когда ты прошел карту и происходит старт новой карты и дверь еще заблочена но уже выжившие подключены.  


#2 BloodyBlade

BloodyBlade

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 102 сообщений

Отправлено 09 Декабрь 2023 - 20:19

Можешь попробовать при входе игрока сравнить количество подключенных с количеством игроков уже в игре.
Например:

Скрытый текст

Сообщение отредактировал BloodyBlade: 09 Декабрь 2023 - 20:19


#3 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 09 Декабрь 2023 - 20:53

Можешь попробовать при входе игрока сравнить количество подключенных с количеством игроков уже в игре.
Например:

Скрытый текст

Не работает. Прошло окно кто сколько убил за сцену и потом ничего не происходит. 



#4 BloodyBlade

BloodyBlade

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 102 сообщений

Отправлено 10 Декабрь 2023 - 0:49

Не работает. Прошло окно кто сколько убил за сцену и потом ничего не происходит. 

OnClientPutInServer срабатывает раньше, чем ты сможешь увидеть, ибо, это момент входа на сервер.
Если есть игрок при этом на сервере(не бот), то он увидит сообщение.

Вот с задержкой в 3 сек., чтобы сам увидел:

Скрытый текст

Сообщение отредактировал BloodyBlade: 10 Декабрь 2023 - 0:53


#5 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 10 Декабрь 2023 - 8:25

Да это всё равно не то, у меня в плагине есть постадмин чек, НО во время смены сценария он не отрабатывает. Игроки по факту считаются на сервере. Просто происходит смена сценария когда игроки в убежище. Идёт показ окна кто сколько убил и как только это окно проходит игрок стоит на том же месте в убежище. Вот этот момент мне нужно поймать. Когда после этого окна кто сколько убил игрок на своём месте в убежище

Сообщение отредактировал Райский: 10 Декабрь 2023 - 8:26


#6 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 10 Декабрь 2023 - 11:07

 

Доброго времени господа. Хотелось бы узнать. Кто знает как хукнуть или отследить событие после того как выжившие заходят в убежище пройдет смена карты и старт следующего сценария. 

 

player_spawn

player_entered_start_area
round_start_post_nav
 
Не работают. Только после смерти уже на этом новом сценарии. 
Т.е когда ты прошел карту и происходит старт новой карты и дверь еще заблочена но уже выжившие подключены.  

 

player_spawn - вызывается каждый раз когда игрок заходит в игру, поднимается или появляется. Обычно после события 10-15 сек таймера и дальше делать то что нужно.
player_entered_start_area - Игрок появился/вошел в начальную территорию. На многих картах это может срабатывать не правильно, так как не всегда определены зоны правильно.
round_start_pre_entity - Начало раунда перед объектом. Не использовал так что сказать нечего не могу насчет данного события

Я бы посоветовал использовать:

player_team - Игрок сменил команду. Так как после player_spawn игрок перемещается в команду, то есть срабатывает player_team



#7 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 10 Декабрь 2023 - 13:10

player_spawn - вызывается каждый раз когда игрок заходит в игру, поднимается или появляется. Обычно после события 10-15 сек таймера и дальше делать то что нужно.
player_entered_start_area - Игрок появился/вошел в начальную территорию. На многих картах это может срабатывать не правильно, так как не всегда определены зоны правильно.
round_start_pre_entity - Начало раунда перед объектом. Не использовал так что сказать нечего не могу насчет данного события

Я бы посоветовал использовать:

player_team - Игрок сменил команду. Так как после player_spawn игрок перемещается в команду, то есть срабатывает player_team

player_team - Не сработало.

player_entered_start_area  - Когда выходишь из убежища только срабатывает. 

 

А мне надо когда игрок в самом убежище после показа окна кто сколько убил (Меняется сценарий т.е след карта).


public void OnMapStart()
{
	CreateTimer(30.0, tCheck);
}

public Action tCheck(Handle timer, any data)
{
	for (int i = 1; i <= MaxClients; i++)
	{
		if(IsPlayer(i) && IsClientVip(i))
		{
			g_bClient[i] = true;
			RequestFrame(Set, i);
		}
	}
	return Plugin_Handled;
}

При этом функция мапстарт работает в этом  случае. Но такие хуки как player_spawn player_team не срабатывают в этом случае


Сообщение отредактировал Райский: 10 Декабрь 2023 - 14:26


#8 BloodyBlade

BloodyBlade

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 102 сообщений

Отправлено 10 Декабрь 2023 - 21:30

player_team - Не сработало.

player_entered_start_area  - Когда выходишь из убежища только срабатывает. 

 

А мне надо когда игрок в самом убежище после показа окна кто сколько убил (Меняется сценарий т.е след карта).


public void OnMapStart()
{
	CreateTimer(30.0, tCheck);
}

public Action tCheck(Handle timer, any data)
{
	for (int i = 1; i <= MaxClients; i++)
	{
		if(IsPlayer(i) && IsClientVip(i))
		{
			g_bClient[i] = true;
			RequestFrame(Set, i);
		}
	}
	return Plugin_Handled;
}

При этом функция мапстарт работает в этом  случае. Но такие хуки как player_spawn player_team не срабатывают в этом случае

За 30 сек. не факт, что все успеют подключиться.

Начало карты (вызываются примерно в таком порядке):
OnClientConnect
OnClientAuthorized
OnClientConnected
OnClientPutInServer
OnClientPreAdminCheck
OnClientPostAdminCheck
OnClientPostAdminFilter

Ты можешь в player_spawn проверить в принципе, не вышел ли ещё кто из игроков с убеги.

Либо, round_freeze_end событие проверь, ибо, оно тоже срабатывает после начала карты.


Сообщение отредактировал BloodyBlade: 10 Декабрь 2023 - 21:43

  • Pa4h это нравится

#9 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 11 Декабрь 2023 - 10:48

player_team - Не сработало.

player_entered_start_area  - Когда выходишь из убежища только срабатывает. 

 

А мне надо когда игрок в самом убежище после показа окна кто сколько убил (Меняется сценарий т.е след карта).


public void OnMapStart()
{
	CreateTimer(30.0, tCheck);
}

public Action tCheck(Handle timer, any data)
{
	for (int i = 1; i <= MaxClients; i++)
	{
		if(IsPlayer(i) && IsClientVip(i))
		{
			g_bClient[i] = true;
			RequestFrame(Set, i);
		}
	}
	return Plugin_Handled;
}

При этом функция мапстарт работает в этом  случае. Но такие хуки как player_spawn player_team не срабатывают в этом случае

Странно, или я не понимаю что вы хотите сделать, или что-то делаете не так.
Можете попробовать OnClientPostAdminCheck как вариант.

По поводу player_team то он должен срабатывать, так как при подключении игрок через него проходит, как и через player_spawn.


player_entered_start_area  не на всех картах обозначен правильно, по этому доверять данному событию не стоит.
 



#10 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 12 Декабрь 2023 - 22:10

Странно, или я не понимаю что вы хотите сделать, или что-то делаете не так.
Можете попробовать OnClientPostAdminCheck как вариант.

По поводу player_team то он должен срабатывать, так как при подключении игрок через него проходит, как и через player_spawn.


player_entered_start_area  не на всех картах обозначен правильно, по этому доверять данному событию не стоит.
 

Мне нужно после смены сценария установить игроку максимально допустимое hp (SetEntProp(client, Prop_Data, "m_iMaxHealth", iHp);) так как после смены карты оно возвращает его в стандартное значение 100 хп



#11 BloodyBlade

BloodyBlade

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 102 сообщений

Отправлено 13 Декабрь 2023 - 6:10

Мне нужно после смены сценария установить игроку максимально допустимое hp (SetEntProp(client, Prop_Data, "m_iMaxHealth", iHp) ;) так как после смены карты оно возвращает его в стандартное значение 100 хп

Через секунду после player_spawn норм поставится.

Пример из моего модуля для вип от Рико:

Скрытый текст

Сообщение отредактировал BloodyBlade: 13 Декабрь 2023 - 17:06


#12 Райский

Райский

    Пользователь

  • Пользователь
  • PipPipPip
  • 270 сообщений

Отправлено 13 Декабрь 2023 - 6:51

Через секунду после player_spawn норм поставится.
Пример из моего модуля для вип от Рико:

Скрытый текст

Спасибо, вечером протестирую



Темы с аналогичным тегами sourcepawn, sm

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных