AMX MOD X
Суббота, 27.04.2024, 06:15:17



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » Hostage Models (Позволяет изменять модели заложников)
Hostage Models
VENДата: Среда, 29.11.2006, 18:01:37 | Сообщение # 1
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
По умолчанию данный плагин позволяет изменить модели четырех заложников на: "models/barney.mdl", "models/hgrunt.mdl", "models/scientist.mdl", "models/zombie.mdl" (охранник, солдат, ученый, зомби).

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

Нельзя указывать player-модели (модели для игроков), например, "models\PLAYER\VIP\VIP.mdl"

Прикрепления: 08246018.sma (2.6 Kb)
 
slogicДата: Среда, 29.11.2006, 18:45:59 | Сообщение # 2
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Это тебе нужно было или чей-то заказ? По моему извращение спасать людей в камуфляже. Зомби еще может как-то прикольно.

А вообще довольно странно, при такой динамичной игре еще обращать внимание на то, как выглядят заложники и быть этим недовольным =)

Добавлено (2006-11-29, 6:45 Pm)
---------------------------------------------
Это как в КВН про канат было: я хочу тянуть канат, а я - трос. =) Так и тут: "я буду спасать только Барни, хны-хны, остальных буду расстреливать"

 
VENДата: Среда, 29.11.2006, 18:58:10 | Сообщение # 3
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Да - раньше кто-то просил сделать такой плагин. И тот запрос бы далеко не первый.
Когда начал копать, был удивлен - никто не мог написать этот плагин без глюков, пытались но не могли. Их ошибка была в том, что они использовали SetModel. Я же, не долго думая, понял, что тут дело в KVD (кстати - ты вроде интересовался KVD handling'ом - можешь почитать код, там даже комменты есть).

Ну извращение, не извращение, а все равно иногда весело, если еще совместить с Hostage Voices.

 
slogicДата: Среда, 29.11.2006, 20:18:42 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Долго не врубался что KVD - это пакет, который соотв. установке всего лишь одного свойства (classname меня сбил) объекта.

У меня сразу вопросы:
1) обязательно делать переопреление свойства(атрибута) при инициализации самого первого свойства объекта? Тогда можно было бы немного проще написать: first_kvd был бы вообще не нужен.
2) когда генерируешь новый KVD, параметр handle должен быть равен 0? Или если бы ты переопределял текущий пакет (т.е. вернул FMRES_SUPERCEDE), то можно было бы использовать текущий handle (который передан в forward_keyvalue()?
3) static key[8] - насколько опрадвано использование static, а не new в глобальной области видимости? Сделано для того, чтобы другая функция не могла изменить это значение? static key[sizeof(g_model)] будет еще точнее smile
4) опять по static key[8] - массив разве по умолчанию инициализируется нулями?

 
VENДата: Среда, 29.11.2006, 21:19:55 | Сообщение # 5
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
1. Нет, first_kvd я использовал для подстраховки, т.к. теоретически я не могу быть уверен, что model key будет "пущен" вообще.
В общем случае, если мы уверены, что конкретная KVD "проскочит", то просто ждем ее и меняем: set_kvd(handle, KV_Value, val) - конечно же это проще, чем формировать свою KVD и подавлять оригинальную. Можно было сделать немного по-другому: ждать и менять KVD, а если не дождались (не была пущена), "пулять" свою в pre Spawn. Но в принципе - то же самое, за мельчайшим непринципиальным отличием.

2. Не обязательно. В моем случае должен быть 0. Если подавил текущий KVD, то, пуская свою KVD, можно использовать как оригинальный handle, так и 0 (global handle). Но я не вижу смысла подавлять и тут же пускать свою, вместо этого в подавляющем большинстве случаев можно будет просто изменить оригинальную KVD.

3. static - делает локальную переменную глобальной в своей локальной области.
Т.е. вызываешь функцию первый раз - переменная инициализируется, "нулится", присваиваешь ей значение, "выходишь" из функции, если вызываешь функцию второй, третий и т.д. раз - переменная все еще "жива" и хранит свое прежнее значение, не реинициализируется и не "нулится", следовательно, получаем прирост в производительности, если функция вызывается часто.

В данном случае использование static не особо оправдано, т.к. KeyValue hook будет вызываться только при старте карты. Я по привычке делаю static массивы во всех forward's hooks для увеличения производительности плагина. К примеру, в StartFrame и т.п. это будет наиболее значимо.

В глобальном пространстве static использовать не вижу смысла. Если необходимо запретить изменение переменной, нужно использовать const атрибут.

static key[sizeof g_model + 1] будет еще точнее в случае похожих key name, например, "models". ;]

4. static массив полностью "нулится" только при инициализации, только единожды.

 
slogicДата: Среда, 29.11.2006, 21:43:57 | Сообщение # 6
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
В глобальном пространстве static использовать не вижу смысла. Если необходимо запретить изменение переменной, нужно использовать const атрибут.

Я говорил про new key[] в глобальной области видимости. Ясно.
Кстати, спасибо за информацию. Я думал что статические переменные в PAWN сделать не получится, т.к. пробовал констркцию типа static new var. Убрать new в голову не пришло.

Quote (VEN)
static key[sizeof g_model + 1] будет еще точнее в случае похожих key name, например, "models". ;]

Подловил smile Блин, сам же искусственно увеличивал на 1 размер массива в своем round non-stop.

Quote (VEN)
static массив полностью "нулится" только при инициализации, только единожды.

Странно. Я думал программист определяет занулять его или нет. Ведь массив может быть довольно большим. Я все равно по привычке инициализирую массивы вручную, благо есть конструкция {0, ...}.

 
AMX Mod X Форум » Плагины » Готовые плагины » Hostage Models (Позволяет изменять модели заложников)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024