Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Баг в Anti DD Scroll 1.0 от Empower

, Не телепортирует на респ в новом раунде
Статус пользователя ssx
сообщение 19.12.2014, 1:12
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Недавно мои игроки обнаружили интересный баг в плагине anti_dd_scroll
Суть в том что конца вот вот начнется новый раунд - юзаем +duck на колесе и тем самым остаемся на том же месте в новом раунде .

Собака кроется где-то вот здесь:
Код:
		if(!last_stand[id])
{
new Float:fGameTime = get_gametime()

// So low time, this is scroll for sure, block duck.
if((fGameTime-duck_start_time[id])<0.02)
{
engfunc(EngFunc_SetOrigin, id, last_origin[id])
set_pev(id, pev_bInDuck, false);
}
}


Весь код
Код:
/* Plugin specialy made for best server in the world ukr-games.com
If you find any bugs, please sent me icq:60-500-400/skype empower-666. */

#include <amxmodx>
#include <fakemeta>

new last_stand[33],Float:duck_start_time[33],Float:last_origin[33][3]

public plugin_init() {
register_plugin("Anti DD Scroll", "1.0", "Empower")
register_forward(FM_CmdStart, "pfw_CmdStart", 1)

register_cvar("adds_version", "1.0", FCVAR_SERVER | FCVAR_SPONLY)
}

public pfw_CmdStart(id, pUC, seed)
{
new iButtons = get_uc(pUC, UC_Buttons)

// just ducked
if(iButtons & IN_DUCK)
{
if(last_stand[id])
{
pev(id,pev_origin,last_origin[id])

duck_start_time[id] = get_gametime()
last_stand[id] = false;
}

}
// just got up
else
{
if(!last_stand[id])
{
new Float:fGameTime = get_gametime()

// So low time, this is scroll for sure, block duck.
if((fGameTime-duck_start_time[id])<0.02)
{
engfunc(EngFunc_SetOrigin, id, last_origin[id])
set_pev(id, pev_bInDuck, false);
}
}
last_stand[id] = true;
}

}


Помогите исправить багу!


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 19.12.2014, 1:32
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Можешь попытаться так:
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new last_stand[33],Float:duck_start_time[33],Float:last_origin[33][3]

public plugin_init() {
register_plugin("Anti DD Scroll", "1.0", "Empower")
register_forward(FM_CmdStart, "pfw_CmdStart", 1)
RegisterHam(Ham_Spawn,"player","player_respawn")


register_cvar("adds_version", "1.0", FCVAR_SERVER | FCVAR_SPONLY)
}

public player_respawn(id)
{
pev(id,pev_origin,last_origin[id])
}

public pfw_CmdStart(id, pUC, seed)
{
new iButtons = get_uc(pUC, UC_Buttons)

// just ducked
if(iButtons & IN_DUCK)
{
if(last_stand[id])
{
pev(id,pev_origin,last_origin[id])

duck_start_time[id] = get_gametime()
last_stand[id] = false;
}

}
// just got up
else
{
if(!last_stand[id])
{
new Float:fGameTime = get_gametime()

// So low time, this is scroll for sure, block duck.
if((fGameTime-duck_start_time[id])<0.02)
{
engfunc(EngFunc_SetOrigin, id, last_origin[id])
set_pev(id, pev_bInDuck, false)
}
}
last_stand[id] = true;
}

}

Проверил, вроде сработало, но потестируй

Отредактировал: voed, - 19.12.2014, 1:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 19.12.2014, 1:39
Сообщение #3


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

этот вариант я на крайняк держал ... думал как-то более грамотно помогут пофиксить.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 19.12.2014, 1:41
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(ssx @ 19.12.2014, 0:35) *
этот вариант я на крайняк держал ... думал как-то более грамотно помогут пофиксить.

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

Отредактировал: voed, - 19.12.2014, 1:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 19.12.2014, 8:42
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Что то с этими антискроллами одни приколы. Помню был анти дд который юзался как парашют)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 19.12.2014, 15:21
Сообщение #6
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(Bloo @ 19.12.2014, 7:38) *
Что то с этими антискроллами одни приколы. Помню был анти дд который юзался как парашют)

Этот вроде тоже так умеет)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя shaid
сообщение 19.12.2014, 15:51
Сообщение #7


Стаж: 14 лет

Сообщений: 1012
Благодарностей: 432
Полезность: 835

чёт ни разу не видел такого бага.
интересно, есть ли он с этой версией плагина. не проверял?
https://c-s.net.ua/forum/topic65195.html?vi...st&p=633017

чёт не смог я этот баг повторить...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 19.12.2014, 15:54
Сообщение #8
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(shaid @ 19.12.2014, 14:47) *
чёт ни разу не видел такого бага.
интересно, есть ли он с этой версией плагина. не проверял?
https://c-s.net.ua/forum/topic65195.html?vi...st&p=633017

чёт не смог я этот баг повторить...

Нет, в этой версии баг отсутствует, вроде
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 19.12.2014, 16:19
Сообщение #9


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Баг есть все равно .


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 19.12.2014, 16:25
Сообщение #10
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

ssx, попробуй версию что в ссылке выше
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 20.12.2014, 16:05
Сообщение #11


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(shaid @ 19.12.2014, 14:47) *
чёт ни разу не видел такого бага.
интересно, есть ли он с этой версией плагина. не проверял?
https://c-s.net.ua/forum/topic65195.html?vi...st&p=633017

чёт не смог я этот баг повторить...

там очень жесткий запрет на ДД . Игроки жалуются.


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

Не получается что-то .

Код:


register_event("HLTV", "NewRound", "a", "1=0", "2=0")


public NewRound()
{
new Players[32]
new Count, i, player

get_players(Players, Count, "ach")

for (i=0; i<Count; i++)
{
player = Players[i]

if(!cs_get_user_buyzone(player))
{
ExecuteHamB(Ham_CS_RoundRespawn,player)
}
}
}


где ошибка ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 20.12.2014, 16:24
Сообщение #12
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

ssx, попробуй добавить таск на 0.5-1 сек перед проверкой, т.к. сразу в начале раунда игрок все же находится на респавне, а потом уже перемещается
А еще можно ловить сообщения о конце раунда ( terrorists win, bomb defused, round draw и т.д.) и отключать проверку на дд, а затем включать ее по окончанию freezetime
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 20.12.2014, 17:01
Сообщение #13


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

с таском прокатило.

И еще с 0.02 изменил на 0.018

Отредактировал: ssx, - 20.12.2014, 17:02


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MAXPAIN177
сообщение 28.1.2015, 14:13
Сообщение #14
Стаж: 15 лет
Город: Москва

Сообщений: 46
Благодарностей: 23
Полезность: 383

Цитата(ssx @ 20.12.2014, 17:01) *
с таском прокатило.

И еще с 0.02 изменил на 0.018


Можешь поделиться исходником?

Отредактировал: MAXPAIN177, - 28.1.2015, 14:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 28.1.2015, 14:42
Сообщение #15


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Вот юзаю, баг закрыт. Все довольны.
Прикрепленные файлы:
Прикрепленный файл  anti_dd_scroll.sma ( 1,48 килобайт ) Кол-во скачиваний: 82


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 28.1.2015, 16:06
Сообщение #16
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

ssx, костыли так костыли.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: