AMX MOD X
Суббота, 27.04.2024, 04:07:31



Приветствую Вас Гость | RSS
[ Главная ] [ Радар - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Радар (как скрыть некоторых игроков?)
Радар
slogicДата: Вторник, 21.11.2006, 21:01:57 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
На данном этапе у меня сложилось впечатление, что это невозможно, т.к. радар отрисовывается на стороне клиента. Но ведь клиент должен от сервака получать координаты сотоварищей, или клиент их получает из других источников и принудительно отрисовывает на радаре (для уменьшения сеетвого трафика)?

Видел как пытаются хитрить с подменой координат заложников и бомбы. Но это фигня какая-то. Да и технология такая пригодна для отображения врагов, но никак не скрытия.

 
VENДата: Вторник, 21.11.2006, 21:46:39 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Уже отвечал на такой вопрос на официальном: http://forums.alliedmods.net/showthread.php?t=45606
 
slogicДата: Среда, 22.11.2006, 14:02:24 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
А чем register_message принципиально отличается от register_event? Или лучше по другому сформулирую. Функция зарегистрированная в register_event вызывается в момент отправки сообщения клиенту/клиентам. Т.е. если там же вернуть PLUGIN_HANDLED, то сообщение не будет отправлено клиенту. Или это неправильное утверждение? Српашвивается, обязательно ли использовать register_message, или можно обойтись register_event?
 
AlModДата: Среда, 22.11.2006, 17:07:53 | Сообщение # 4
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Грубо говоря - Событие - это месаг, который вызывается на действие игрока, т.е умер игрок - вылазет DeathMsg, Отспавнился - ResetHUD и т.д
То есть, если мы используем регистер эвент, можно проверить режим радара какой-нибудь функцией
Code

register_event ("Radar","OnRadar","a") // Глобальный эвент

....

public OnRadar(id)
{

}

Блин, чето бред какой-то намалевал...

Code
Radar   byte, coord, coord, coord   1: ID, 2: X, 3: Y, 4: Z   This will only show teammates

Вот параметры мессага


 
slogicДата: Среда, 22.11.2006, 18:06:12 | Сообщение # 5
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
AlMod, судя по тому что ты написла, получается, что событие это передается от клиента на сервер, что довольно странно, потому как тогда непонятна природа глобальных событий. Я полагал и пока полагаю, что это событие генерируется на сервере (ведь именно там идет обсчет/расчет, и именно там происходят столкновения и пр. лабуда), и оно рассылается клиентам или конкретному клиенту. Вот тут и вызывается мой обработчик события, зарегистрированный с пом. register_event.

В message.inc написано, что используя register_message, можно переопределить событие, и либо отправить его дальше, либо ПОЛНОСТЬЮ блокировать. Вот поэтому я и спросил про особенность, что же тогда делает register_event и какой смысл в обработчике события тогда возвращать статус HANDLED. Я полагал, что как раз блокирование события
и можно сделать в обработчике, зарегистрированнов функцией register_event.

Вообще мне как раз нужна информация по архитектуре движка HL. А то бесит снизу вверх разбираться - это неестественный путь понимания, а чепез жопу.

 
VENДата: Среда, 22.11.2006, 22:09:57 | Сообщение # 6
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
А чем register_message принципиально отличается от register_event?
register_message - усовершенствованный вариант register_event.
register_event - hook(msgent), get arg
register_message - hook(msgid, msgdest, msgent), get/set arg, get msgorigin, block msg
(не знаю, нужно подробней объяснять или нет...)

Quote
Функция зарегистрированная в register_event вызывается в момент отправки сообщения клиенту/клиентам. Т.е. если там же вернуть PLUGIN_HANDLED, то сообщение не будет отправлено клиенту. Или это неправильное утверждение?
Утверждение не верно, по крайней мере, для AMXX.

Quote
Српашвивается, обязательно ли использовать register_message, или можно обойтись register_event?
Если нужно msgdest, set arg, get msgorigin, block msg, то естественно без register_message не обойтись.

Quote
Я полагал и пока полагаю, что это событие генерируется на сервере (ведь именно там идет обсчет/расчет, и именно там происходят столкновения и пр. лабуда), и оно рассылается клиентам или конкретному клиенту
Это верно.

Quote
Я полагал, что как раз блокирование события
и можно сделать в обработчике, зарегистрированнов функцией register_event
Не знаю как в АМХ, но в АМХХ register_event не будет блочить msg (или event, если хотите), хоть ты что ему возвращай, поэтому мы имеем register_message.

Quote
Вообще мне как раз нужна информация по архитектуре движка HL
Очень многое можно почерпнуть из HLSDK.

 
slogicДата: Четверг, 23.11.2006, 11:43:54 | Сообщение # 7
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
Не знаю как в АМХ, но в АМХХ register_event не будет блочить msg (или event, если хотите), хоть ты что ему возвращай, поэтому мы имеем register_message.

Я вчера проверил. register_event регистрирует обработчик только СВЕРШЕННОГО события. Тода register_message - очень и очень полезная функция, которая пока даже отсутвует в AMX 2006.3.

Quote (VEN)
Очень многое можно почерпнуть из HLSDK.

Многое, но с архитектурой лучше сначала познакомиться, а потом читать HLSDK. Это нормальный путь восприятия информации. Также мне иногда нужно знать как именно работают функции, предоставляемые движком для DLL (которые описаны в структуре enginefuncs_s). Например, функция поиска entity - pfnFindEntityByString. Одна из особенностей - если во время посика удалить уже найденную Entity, то след. интерация посика вернет -1. Спрашивается, какого фига.

 
VENДата: Четверг, 23.11.2006, 15:27:03 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
Тода register_message - очень и очень полезная функция, которая пока даже отсутвует в AMX 2006.3.
Абсолютно не удивительно. АМХ вообще по своей сути мало функционален в отношении к АМХХ. Пока будешь писать под АМХ что-то более или менее серьезное, будешь продолжать с этим сталкиваться на каждом шагу.

Quote
с архитектурой лучше сначала познакомиться
Ну если найдешь исходники HL1 движка, скажешь. Я пока не встречал, хотя и не пытался - не было необходимости.

 
AlModДата: Четверг, 23.11.2006, 16:49:10 | Сообщение # 9
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
у меня есть. выложить в "файлы"?

 
VENДата: Четверг, 23.11.2006, 17:10:43 | Сообщение # 10
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Ты не путаешь с AMXX engine module source code? Если нет, тогда можно посмотреть.
 
slogicДата: Четверг, 23.11.2006, 17:19:34 | Сообщение # 11
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
VEN, у него HLSDK.
 
AlModДата: Четверг, 23.11.2006, 17:21:08 | Сообщение # 12
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Quote (slogic)
VEN, у него HLSDK

Тоже рульная весч wink


 
VENДата: Четверг, 23.11.2006, 18:20:21 | Сообщение # 13
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Кстати, а кто сказал что HL1 engine source доступен? Думаю, это closed source. Просто HLSDK они сделали для Mod'derov.
 
slogicДата: Пятница, 26.01.2007, 02:18:31 | Сообщение # 14
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Решил поднять тему снова. А ведь скрыть рельно клиента на радаре нельзя. Можно лишь замаскировать его под другого клиента или просто не обновлять координаты того или иного клиента (BAIL называет это Scramble). Т.е. получается на клиенте ведется счетчик игроков той или иной команды на сервере и в цикле принудительно отрисовывает всех. Если я не прав, то правьте меня быстрее.
 
VENДата: Вторник, 20.02.2007, 18:44:25 | Сообщение # 15
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Т.е. получается, что в данном случае выходом будет являться изменение координат Radar message на некие большие значения.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Радар (как скрыть некоторых игроков?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024