AMX MOD X
Суббота, 20.04.2024, 03:12:46



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

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » как добавить новое оружие в КС16?
как добавить новое оружие в КС16?
RE_an1m@t0rrДата: Среда, 09.05.2007, 13:10:44 | Сообщение # 1
Лейтенант
Группа: Скриптеры
Сообщений: 77
Репутация: 0
Статус: Не в сети
сабж...
 
slogicДата: Среда, 09.05.2007, 15:47:47 | Сообщение # 2
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Предлагаю изучить плагин Molotov Cocktail, Vexd's Tripmine Plugin и еще вот это: Module: WTF Dynamic weapons. Только этот модуль не работает под amx/x 1.7x. Его уже два человека обещали доделать, но как-то не выходит у них.
 
RE_an1m@t0rrДата: Среда, 09.05.2007, 16:09:57 | Сообщение # 3
Лейтенант
Группа: Скриптеры
Сообщений: 77
Репутация: 0
Статус: Не в сети
мда... wacko
скачал я плагин с модельками так и полетела контра
причина 0х00.... обрптилась по адресу 0х00....

тоже самое , кога я ставлю такие поагины как

war3ft
war3x
molotov coktail
senturyguns

cry

Сообщение отредактировал RE_an1m@t0rr - Среда, 09.05.2007, 16:11:48
 
VENДата: Среда, 09.05.2007, 17:56:19 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Что интересно - совпадение: я как раз только что закончил плагин, который добавляет новое оружие. Как будет время, расскажу, как сделать это максимально эффективно и по принципам(правилам), приближающимся к принципам, аналогичным тем, которые использует сам мод. Хотя, это не так просто, требует определенного уровня.

Сообщение отредактировал VEN - Среда, 09.05.2007, 17:59:03
 
VENДата: Четверг, 10.05.2007, 17:33:56 | Сообщение # 5
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Еще можно посмотреть NS сustom weapons API: http://www.nsmod.org/forums/index.php?showtopic=4679

Лучше всего делать т.н. "псевдо" оружие, т.е. без weapon_* entity, т.к. невозможно создать weapon_* entity принципиально нового типа, а, если использовать за базу weapon_* entity существующего типа, прийдется менять wid (weapon index, индекс/номер оружия) на свой собственный wid в private data offset довольно часто, например, в pre weapon drop/collect/pickup/buy и т.п. Более того, встает основаная проблема: проблема функциональности атаки. Мало того, что вам прийдется вводить свою атаку, вам еще будет мешать оригинальная атака, которая буквально "вшита" в клиента, и выдрать ее от туда можно только, если у вас очень крепкие и острые зубы, и вы не боитесь за возможное ухудшение их состояния.

Как игрок выберет ваше оружие? Нужно позаботиться о добавлении оружия в HUD weapon list (список оружий вверху экрана) заранее. В post InitHUD сообщении отсылаем WeaponList сообщение со всеми необходимыми аргументами. Его структуру и описание можно просмотреть тут. За wid нужно брать "2" - это едиснтвенный свободный wid в CS. По названию оружия создаем и прекешируем текстовый файл в sprites директории. Это файл конфигурации HUD различных изображений используемых оружием. За основу можно взять уже существующие weapon_*.txt файлы. Если ваши спрайты нестандартные, прекешируем их. Размеры изображений должны соответствовать стандартам. В конфигурационном txt файле указываем названия спрайтов, а также координаты изображений в спрайте. Формат указания координад следующий: x0, y0, w, h, где x0 и y0 - координаты точки начала изображения в спрайте, а w и h - ширина и высота изображения.

Как правильно выдать оружие? Нужно дать понять клиенту, что игрок имеет оружие данного типа. Т.е. к значению weapons pev прибавляем (желательно с помощью bitwise оператора OR) бит wid вашего оружия. В данном случае это будет выглядеть примерно так: weapons |= (1<<2).

Итак, игрок пытается выбрать оружие, но соответствующей weapon_* entity у него нет, поэтому мы навешиваем хук на команду, соответствующую названию оружия, которое указывали при отсылке WeaponList клиенту. В хуке уже можно будет выполнить код, который "выберет" оружие.

Как правильно выбрать оружие? За базу, т.е. то, что игрок будет держать в руках фактически, все равно прийдется брать другое оружие, и лучше всего нож, т.к. блокировать атаки ножа проще всего (как это осуществить, см. в "поиске плагинов", тему про блокировку атаки ножа, мой плагин "Knife Attack Blocker"). Т.е. форсируем выбор ножа, эмулируя команду его выбора непосредственно на сервере (желательно блокировать звук выбора ножа). Изменяем veiw и weaponmodel pev значения в соответствии с моделями оружия, которые, естественно, должны быть прекешированы заранее. Также можно издать звук выбора оружия и воспроизвести соответствующую анимацию. Более того, следует сообщить AMX Mod X о том, что игрок имеет данное оружие. Для этого мы используем native amxx_setpl_curweap(id, wid). Т.к. данной функции нет в includ'ах, необходимо прописывать ее в ваших инклудах или непосредственно в самом коде плагина. Тут нужно отметить, что следует "исправлять" curweap значение, если предыдущее оружие игрока отличалось от ножа. Это связано с запаздыванием CurWeapon сообщения при выборе оружия. Для исправления этого недостатка навешиваем хук на CurWeapon событие выбора ножа и, если pev значения моделей оружия соответствует моделям вашего оружия, устанавливаем curweap повторно. Затем устанавливаем блокировку атак ножа и отслеживаем нажатие кнопки атаки. Атака - это отдельный вопрос, и я могу говорить об этом долго. Поэтому для начала остановимся здесь.

Примечание: я понимаю, что это больше похоже на художественное произведение, и что данные объяснения в 99% случаев не помогут вам создать новое оружие, но я полагаюсь на один оставшийся процент.

Сообщение отредактировал VEN - Четверг, 10.05.2007, 17:50:10
 
AlModДата: Суббота, 15.09.2007, 08:24:50 | Сообщение # 6
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Мне нужно в данный момент НЕ ЗАМЕНИТЬ какоето оружие на новую модель и переделать events для него. А нудо воткнуть новое оружие, эвенты обработать смогу. Хотел использовать PowerWeapons - но они жиды и там нету .sma

2VEN ВЫложи свои плагин плиз




Сообщение отредактировал AlMod - Суббота, 15.09.2007, 08:27:36
 
VENДата: Суббота, 15.09.2007, 18:26:27 | Сообщение # 7
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
http://amxmodx.ucoz.ru/forum/16-983-5619-16-1189250897
 
AlModДата: Суббота, 15.09.2007, 21:27:52 | Сообщение # 8
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Можешь тогда помочь разобраться с заменой с4? напиши в личку когда ты завтра будешь в мирке и на каком канале, а то я ап стенку убьюсь с досады cry

 
marikcoolДата: Воскресенье, 16.09.2007, 21:00:59 | Сообщение # 9
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 1
Статус: Не в сети
VEN хорошо расписал, но блин столько моментов еще надо делать для полной эмуляции=) сколько плагинов смотрел выходит кривовато.
еще бы проигрывать анимацию активации v_ модели было бы класно.
 
AlModДата: Воскресенье, 16.09.2007, 21:54:43 | Сообщение # 10
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
запихни в CurWeapon
entity_set_int(id,ev_int_weaponanim,draw_animationid)


 
marikcoolДата: Воскресенье, 16.09.2007, 23:05:34 | Сообщение # 11
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 1
Статус: Не в сети
спс надо попробовоать.
 
VENДата: Понедельник, 17.09.2007, 13:59:49 | Сообщение # 12
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Вот что я использовал в своем моде для воспроизведения анимации (weapon select/deselect/fire):
Code
weapon_animation_play(id, anim_id, body_id = 0) {
  set_pev(id, pev_weaponanim, anim_id)
  message_begin(MSG_ONE, SVC_WEAPONANIM, _, id)
  write_byte(anim_id)
  write_byte(body_id)
  message_end()
}
 
heorДата: Суббота, 26.07.2008, 14:44:13 | Сообщение # 13
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 0
Статус: Не в сети
а можно по подробнее расписать про добывление нового оружия. Как понять
Quote
мы навешиваем хук на команду
, и как это делать???
Quote
За базу, т.е. то, что игрок будет держать в руках фактически, все равно прийдется брать другое оружие, и лучше всего нож
. А можно не нож. А новое оружие. Нажимаешь клавишу 5 и у тебя оно появляеться.
Прочитал WeaopnList, ничего не понял. Ну допустим возьму я wid = 2. А если два оружия новых добавить надо. Что тогда?
 
VENДата: Воскресенье, 27.07.2008, 19:29:02 | Сообщение # 14
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
и как это делать???
Допустим, твое оружие - это weapon_xxx, тогда регистрируешь команду "weapon_xxx" посредством register_clcmd() (подробней смотри .\amxmodx\scripting\include\amxmodx.inc). Хук навешивается на указанную функцию, которая вызывается в коде при использовании данной команды.

Quote
А можно не нож. А новое оружие. Нажимаешь клавишу 5 и у тебя оно появляеться
Это и имелось ввиду. Просто твое новое оружие будет базировано на cbase ножа, что наиболее просто осуществить, т.к. во-первых, нож всегда есть, его нельзя "выкинуть", во-вторых, его атаки просто блокировать в техническом плане как на стороне сервера, так и на стороне клиента. Само оружие "нож" при этом не "затирается", остается прежним.

Quote
А если два оружия новых добавить надо. Что тогда?
Тогда прийдется городить хитрую систему псевдозамен wid оружий, которая в идеале не будет на 100% эффективна (в частности при наличии у игрока всех видов оружия).
 
slogicДата: Вторник, 29.07.2008, 13:54:40 | Сообщение # 15
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Наткнулся на WeaponMod: http://forums.space-headed.net/viewforum.php?f=20
Он поддерживается в настоящее время и даже куча примеров есть на базе данного модуля.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » как добавить новое оружие в КС16?
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024