Automatic Unstucking

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
stambeto2006
Извън линия
Модератор
Модератор
Мнения: 505
Регистриран на: 06 Окт 2016, 15:44
Се отблагодари: 53 пъти
Получена благодарност: 45 пъти
Обратна връзка:

Automatic Unstucking

Мнение от stambeto2006 » 12 Окт 2016, 18:18

Automatic Unstucking




Автор: NL)Ramon(NL
Модификация: Всички
Категория: Общо предназначение
Версия: v1.5


Описание:
Ако сте заседнали този плъгин ще ви телепортира до най-близкото място (5 юнита/units макс.) без да сте заседнали.
Не трябва да пишете никакви команди. Плъгина автоматично ще засече ако сте заседнали и ще ви телепортира.
Благодарности на VEN.


Cvars:
amx_autounstuck | 1/0 | Вкл./Изкл. на плъгина
amx_autounstuckeffects | 1/0 Вкл./Изкл. ефектите на плъгина.
amx_autounstuckwait | По подразбиране 6 |Каква да е точността на detect-ването(засичането) при unstuck.
Ако въведете по-голяма стойност ще отнеме повече време. Ако стойността е 10 = 1 секунда,1= 0.1 секунди.
Не променяйте стойността на 0.Препоръчвам ви да го оставите на 6.


Модули:
Fun
Fakemeta


Темата е взета от аmxmodxbg.
stuck.rar
(6.4 KiB) Свалено 327 пъти
stuck.rar
(6.4 KiB) Свалено 327 пъти

Аватар
Hide in Wonderland
Извън линия
Потребител
Потребител
Мнения: 23
Регистриран на: 01 Апр 2017, 13:53

Re: Automatic Unstucking

Мнение от Hide in Wonderland » 01 Апр 2017, 14:44

Може ли някой да го редактира да не те unstuck-ва автоматично, а само когато натиснеш бутона N ?

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Automatic Unstucking

Мнение от JustInCase » 01 Апр 2017, 16:12

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fun>
#include <fakemeta>

new stuck[33]

new cvar[3]

new const Float:size[][3] = {
    {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
    {0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
    {0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
    {0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
    {0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
}

public plugin_init() {
    register_plugin("Automatic Unstuck","1.5","NL)Ramon(NL")
    cvar[0] = register_cvar("amx_autounstuck","1")
    cvar[1] = register_cvar("amx_autounstuckeffects","1")
    cvar[2] = register_cvar("amx_autounstuckwait","7")
    register_clcmd("nightvision", "checkstuck")
}

public checkstuck() {
    if(get_pcvar_num(cvar[0]) >= 1) {
        static players[32], pnum, player
        get_players(players, pnum)
        static Float:origin[3]
        static Float:mins[3], hull
        static Float:vec[3]
        static o,i
        for(i=0; i<pnum; i++){
            player = players[i]
            if (is_user_connected(player) && is_user_alive(player)) {
                pev(player, pev_origin, origin)
                hull = pev(player, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
                if (!is_hull_vacant(origin, hull,player) && !get_user_noclip(player) && !(pev(player,pev_solid) & SOLID_NOT)) {
                    ++stuck[player]
                    if(stuck[player] >= get_pcvar_num(cvar[2])) {
                        pev(player, pev_mins, mins)
                        vec[2] = origin[2]
                        for (o=0; o < sizeof size; ++o) {
                            vec[0] = origin[0] - mins[0] * size[o][0]
                            vec[1] = origin[1] - mins[1] * size[o][1]
                            vec[2] = origin[2] - mins[2] * size[o][2]
                            if (is_hull_vacant(vec, hull,player)) {
                                engfunc(EngFunc_SetOrigin, player, vec)
                                effects(player)
                                set_pev(player,pev_velocity,{0.0,0.0,0.0})
                                o = sizeof size
                            }
                        }
                    }
                }
                else
                {
                    stuck[player] = 0
                }
            }
        }
    }
}

stock bool:is_hull_vacant(const Float:origin[3], hull,id) {
    static tr
    engfunc(EngFunc_TraceHull, origin, origin, 0, hull, id, tr)
    if (!get_tr2(tr, TR_StartSolid) || !get_tr2(tr, TR_AllSolid)) //get_tr2(tr, TR_InOpen))
        return true
    
    return false
}

public effects(id) {
    if(get_pcvar_num(cvar[1])) {
        set_hudmessage(255,150,50, -1.0, 0.65, 0, 6.0, 1.5,0.1,0.7) // HUDMESSAGE
        show_hudmessage(id,"You should be unstucked now!") // HUDMESSAGE
        message_begin(MSG_ONE_UNRELIABLE,105,{0,0,0},id )      
        write_short(1<<10)   // fade lasts this long duration
        write_short(1<<10)   // fade lasts this long hold time
        write_short(1<<1)   // fade type (in / out)
        write_byte(20)            // fade red
        write_byte(255)    // fade green
        write_byte(255)        // fade blue
        write_byte(255)    // fade alpha
        message_end()
        client_cmd(id,"spk fvox/blip.wav")
    }
} 
Тествай.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
Hide in Wonderland
Извън линия
Потребител
Потребител
Мнения: 23
Регистриран на: 01 Апр 2017, 13:53

Re: Automatic Unstucking

Мнение от Hide in Wonderland » 10 Апр 2017, 17:13

Работи, благодаря.

Edit: Плъгина не работи правилно. Натискам N 5-6-7-8 пъти и нищо не става, но на 9тия (примерно) ме unstuck-ва?

Аватар
ElitePower
Извън линия
Потребител
Потребител
Мнения: 547
Регистриран на: 13 Окт 2016, 14:20
Се отблагодари: 7 пъти
Получена благодарност: 13 пъти

Automatic Unstucking

Мнение от ElitePower » 06 Авг 2018, 14:30

На deathrun_arctic не работи, пример: минавам мапа и се телепортирам в терорист базата, а терориста ме чака на мястото, на което трябва да ме прати телепорта и така се заклещваме, и не ни ънстъква.

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Automatic Unstucking

Мнение от Huehue » 07 Авг 2018, 15:40

Коя от двете версии на плъгина използваш?
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
ElitePower
Извън линия
Потребител
Потребител
Мнения: 547
Регистриран на: 13 Окт 2016, 14:20
Се отблагодари: 7 пъти
Получена благодарност: 13 пъти

Automatic Unstucking

Мнение от ElitePower » 07 Авг 2018, 15:42

1.5

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fun>
#include <fakemeta>

new stuck[33]

new cvar[3]

new const Float:size[][3] = {
	{0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
	{0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
	{0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
	{0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
	{0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
}

public plugin_init() {
	register_plugin("Automatic Unstuck","1.5","NL)Ramon(NL")
	cvar[0] = register_cvar("amx_autounstuck","1")
	cvar[1] = register_cvar("amx_autounstuckeffects","1")
	cvar[2] = register_cvar("amx_autounstuckwait","10")
	set_task(0.1,"checkstuck",0,"",0,"b")
}

public checkstuck() {
	if(get_pcvar_num(cvar[0]) >= 1) {
		static players[32], pnum, player
		get_players(players, pnum)
		static Float:origin[3]
		static Float:mins[3], hull
		static Float:vec[3]
		static o,i
		for(i=0; i<pnum; i++){
			player = players[i]
			if (is_user_connected(player) && is_user_alive(player)) {
				pev(player, pev_origin, origin)
				hull = pev(player, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
				if (!is_hull_vacant(origin, hull,player) && !get_user_noclip(player) && !(pev(player,pev_solid) & SOLID_NOT)) {
					++stuck[player]
					if(stuck[player] >= get_pcvar_num(cvar[2])) {
						pev(player, pev_mins, mins)
						vec[2] = origin[2]
						for (o=0; o < sizeof size; ++o) {
							vec[0] = origin[0] - mins[0] * size[o][0]
							vec[1] = origin[1] - mins[1] * size[o][1]
							vec[2] = origin[2] - mins[2] * size[o][2]
							if (is_hull_vacant(vec, hull,player)) {
								engfunc(EngFunc_SetOrigin, player, vec)
								effects(player)
								set_pev(player,pev_velocity,{0.0,0.0,0.0})
								o = sizeof size
							}
						}
					}
				}
				else
				{
					stuck[player] = 0
				}
			}
		}
	}
}

stock bool:is_hull_vacant(const Float:origin[3], hull,id) {
	static tr
	engfunc(EngFunc_TraceHull, origin, origin, 0, hull, id, tr)
	if (!get_tr2(tr, TR_StartSolid) || !get_tr2(tr, TR_AllSolid)) //get_tr2(tr, TR_InOpen))
		return true
	
	return false
}

public effects(id) {
	if(get_pcvar_num(cvar[1])) {
		set_hudmessage(255,150,50, -1.0, 0.65, 0, 6.0, 1.5,0.1,0.7) // HUDMESSAGE
		show_hudmessage(id,"You should be unstucked now!") // HUDMESSAGE
		message_begin(MSG_ONE_UNRELIABLE,105,{0,0,0},id )      
		write_short(1<<10)   // fade lasts this long duration
		write_short(1<<10)   // fade lasts this long hold time
		write_short(1<<1)   // fade type (in / out)
		write_byte(20)            // fade red
		write_byte(255)    // fade green
		write_byte(255)        // fade blue
		write_byte(255)    // fade alpha
		message_end()
		client_cmd(id,"spk fvox/blip.wav")
	}
}

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Automatic Unstucking

Мнение от Huehue » 07 Авг 2018, 15:47

А въобще плъгина работи ли ? В други случаи unstuck-ва ли играчите?

Ако плъгина работи и извършва действието което трябва, на колко ти е нагласен квара за проверка?

Код за потвърждение: Избери целия код

amx_autounstuckwait
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
ElitePower
Извън линия
Потребител
Потребител
Мнения: 547
Регистриран на: 13 Окт 2016, 14:20
Се отблагодари: 7 пъти
Получена благодарност: 13 пъти

Automatic Unstucking

Мнение от ElitePower » 07 Авг 2018, 15:48

Не съм пробвал дали на други модове работи, стойностите, които пробвах са 0/1/6/10 при нито една не ънстъква.

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Automatic Unstucking

Мнение от Huehue » 07 Авг 2018, 15:51

Нямах предвид други модове, самият плъгин работи ли на съответния сървър въобще или не? Хвърля ли някакви грешки в логовете? Добавил ли си debug след плъгина?
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Одобрени плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта