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


Фотография

Безделье


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

#1 Profanuch

Profanuch

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

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

Отправлено 26 Март 2020 - 12:32

Давно столкнулся с этими проблемами, поэтому хочу узнать как вы решали или решили их у себя:

- подходишь к человеку, начинаешь его лечить, а он уходит в безделье. Есть вообще способ борьбы с этим недоразумением?

- игрок уходит в безделье, его убивают, а он чудесным образом возрождается. Кажется мне, что это баг мультислота, но как решить, без понятия!?



#2 Goldfish

Goldfish

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

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

Отправлено 26 Март 2020 - 12:53

Похоже автор иностранец, а то я уже подумал на рофл

 

Profanuch, please write in english xD


Сообщение отредактировал Goldfish: 26 Март 2020 - 12:56


#3 KRUTIK

KRUTIK

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

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

Отправлено 26 Март 2020 - 13:01

Возродиться игрок может только если есть свободный бот, и то если стоят настройки захват бота автоматом: takeover_fix_idle, а так каким то чудесным образом, игрок не может возродиться, или если его подняли утюгами, есть ещё плагин на возрождение игроков автоматом L4D_Respawn_Player...


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

#4 AlexMy

AlexMy

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

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

Отправлено 27 Март 2020 - 10:46

 

- подходишь к человеку, начинаешь его лечить, а он уходит в безделье. Есть вообще способ борьбы с этим недоразумением?

 

Ну так если он не хочет чтоб его лечили... Придумай правило и бань :D



#5 BloodyBlade

BloodyBlade

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

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

Отправлено 27 Март 2020 - 14:29

Ну так если он не хочет чтоб его лечили... Придумай правило и бань :D

Либо, как-то отловить лечение игрока и заблокировать выход в наблюдатели на время лечения.

Например, в данном коде запрещается переход в наблюдатели при опред. событиях:

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

Файл перевода: Прикрепленный файл  Prevent_IDLE_glitch.phrases.txt   1,4К   6 Количество загрузок:

Инклюд: https://drive.google...RQiPCQQzhOFnsJ8


Сообщение отредактировал BloodyBlade: 27 Март 2020 - 14:35


#6 AlexMy

AlexMy

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

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

Отправлено 27 Март 2020 - 15:31

Либо, как-то отловить лечение игрока и заблокировать выход в наблюдатели на время лечения.

Например, в данном коде запрещается переход в наблюдатели при опред. событиях:

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

Файл перевода: attachicon.gifPrevent_IDLE_glitch.phrases.txt

Инклюд: https://drive.google...RQiPCQQzhOFnsJ8

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



#7 dragokas

dragokas

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

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

Отправлено 27 Март 2020 - 20:13

AlexMy, почему бред? Какой твой вариант?

 

Я например тоже использую подобный код, только он у меня раза в 3 длиннее, т.к. закрывает многие другие читы и эксплойты.

 

Возможно, грамотнее было бы разместить этот код внутри плагина "multislot", но вот у меня к примеру нет исходника от моей версии, поэтому команда AddCommandListener для меня полностью решает задачу.

 

На счёт момента с лечением аптечкой, можно проверить так:

bool IsBeingHealed(int client)
{
	return GetEntPropEnt(client, Prop_Send, "m_healOwner") != -1;
}

Найти проп можно самому, например, при помощи tEntDev. Снимок #1, sm_ted_selectself, провоцирование лечения, снимок № 2, и сравнение файлов left4dead/kvtest.txt любой программой, например WinMerge.


Сообщение отредактировал dragokas: 27 Март 2020 - 20:13


#8 AlexMy

AlexMy

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

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

Отправлено 28 Март 2020 - 6:13

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


Я даже делал так раньше, себя лечил если а вылечивал другого игрока :D. Вот так лечил проказников.



#9 dragokas

dragokas

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

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

Отправлено 28 Март 2020 - 13:14

Не, тут ситуация другая, человек отлавливает событие, когда лечат его.

 

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


#10 Profanuch

Profanuch

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

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

Отправлено 28 Март 2020 - 17:08

Либо, как-то отловить лечение игрока и заблокировать выход в наблюдатели на время лечения.

Например, в данном коде запрещается переход в наблюдатели при опред. событиях:

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

Файл перевода: attachicon.gifPrevent_IDLE_glitch.phrases.txt

Инклюд: https://drive.google...RQiPCQQzhOFnsJ8

К сожалению, не работает, типа, только для второй части, в rcon консоли пишет:

Prevent_IDLE_glitch.smx (Prevent IDLE glitch): Error detected in plugin startup (see error logs)

 

В логах:

L 03/28/2020 - 17:03:16: [SM] Failed to load plugin "Prevent IDLE glitch.smx": Unable to load plugin (no debug string table).
L 03/28/2020 - 17:03:16: [SM] Exception reported: Plugin supports Left 4 Dead 2 only.

 

Компилировал на компе с помощью sourcemod 1.9.0.



#11 BloodyBlade

BloodyBlade

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

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

Отправлено 28 Март 2020 - 17:31

К сожалению, не работает, типа, только для второй части, в rcon консоли пишет:

Prevent_IDLE_glitch.smx (Prevent IDLE glitch): Error detected in plugin startup (see error logs)

 

В логах:

L 03/28/2020 - 17:03:16: [SM] Failed to load plugin "Prevent IDLE glitch.smx": Unable to load plugin (no debug string table).
L 03/28/2020 - 17:03:16: [SM] Exception reported: Plugin supports Left 4 Dead 2 only.

 

Компилировал на компе с помощью sourcemod 1.9.0.

SourceMod на котором ты компилировал, более новее, нежели тот, что стоит на сервере. У меня такая ошибка выходит, если я пытаюсь запустить на sm 1.9 плагин, скомпилированный на sm 1.10.

 

Единственное, что нужно заменить в коде: 

#define ZC_TANK    8 //это класс танка в L4D2

на

#define ZC_TANK    5 //это класс танка в L4D


Сообщение отредактировал BloodyBlade: 28 Март 2020 - 17:33


#12 dragokas

dragokas

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

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

Отправлено 29 Март 2020 - 22:01

Профаныч, попробуй:

#include <sourcemod>

public void OnPluginStart() 
{
	AddCommandListener(Listen_Keyboard, "go_away_from_keyboard");
	AddCommandListener(Listen_Keyboard, "sm_afk");
}

public Action Listen_Keyboard(int client, const char[] sCommand, int iArg)
{
	if( !IsAllowAFK(client) )
	{
		return Plugin_Stop;
	}
	return Plugin_Continue;
}

bool IsAllowAFK(int client)
{
	if( IsBeingHealed(client) )
	{
		PrintToChat(client, "[AFK] Can't go afk when being healed!");
		return false;
	}
	return true;
}

stock bool IsBeingHealed(int client)
{
	return GetEntPropEnt(client, Prop_Send, "m_healOwner") != -1;
}

Это по первой проблеме.



#13 Profanuch

Profanuch

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

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

Отправлено 29 Март 2020 - 23:45

Профаныч, попробуй:

#include <sourcemod>

public void OnPluginStart() 
{
	AddCommandListener(Listen_Keyboard, "go_away_from_keyboard");
	AddCommandListener(Listen_Keyboard, "sm_afk");
}

public Action Listen_Keyboard(int client, const char[] sCommand, int iArg)
{
	if( !IsAllowAFK(client) )
	{
		return Plugin_Stop;
	}
	return Plugin_Continue;
}

bool IsAllowAFK(int client)
{
	if( IsBeingHealed(client) )
	{
		PrintToChat(client, "[AFK] Can't go afk when being healed!");
		return false;
	}
	return true;
}

stock bool IsBeingHealed(int client)
{
	return GetEntPropEnt(client, Prop_Send, "m_healOwner") != -1;
}

Это по первой проблеме.

Работает, спасибо :)




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

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