AMX MOD X
Вторник, 27.01.2026, 21:56:12



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Операции над weaponbox / armoury_entity
He_npeTДата: Вторник, 18.03.2008, 17:51:44 | Сообщение # 1
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Как наставить, "weaponbox" и "armoury_entity" entery так, чтобы это были мною выбраные гранаты или оружия с мною наставленым clip'ом, ammo'ом и burst/silend'ом?

My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot
 
VENДата: Вторник, 18.03.2008, 22:57:55 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
С weaponbox дело обстоит не очень просто. Чтобы сменить тип, нужно правильно отлинковать weapon_* entity, затем прилинковать другую с заданными параметрами. Пока никто этого на практике не осуществлял, т.к. техника сего метода находится на грани хакинга памяти.

Чтобы сменить clip ammo, нужно найти прилинкованную weapon_* entity, а затем, например, с помощью cstrike модуля изменить данное значение (cs_set_weapon_ammo - см. cstrike.inc для деталей).

Метод смены bpammo weaponbox'a был открыт мной совсем недавно, я осветил его на официальном форуме: http://forums.alliedmods.net/showpost.php?p=593425&postcount=7 - там же приведены и два метода (FM и HS) нахождения прилинкованной weapon_* entity.

armoury_entity можно установить тип, например, с помощью cstrike модуля (cs_set_armoury_type - см. cstrike.inc для деталей) или с помощью fakemeta (установка значения соответствующего оффсета - см. тему про pvPrivateData оффсеты в подразделе полезной информации).

Насчет clip ammo/burst - исходного кода armoury_entity у меня нет (ибо "closed source"), но если я правильно помню, эта entity сама по себе не имеет данных значений. Если я не ошибаюсь, она просто дает оружие данного типа игроку с параметрами по умолчанию, которые уже выставлены в weapon_* entity, создающейся в момент "триггинга" armoury_entity. Поэтому в момент создания такой weapon_* entity, можно просто выставить ей clip ammo/burst непосредсвенно с помощью, например, cstrike модуля (cs_set_weapon_ammo, cs_set_weapon_burst - см. cstrike.inc для деталей).

 
He_npeTДата: Среда, 19.03.2008, 10:59:41 | Сообщение # 3
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Довольно интересно. То-есть для смены ammo твой код идеально подойдет. Для смены clip и burst/silen выходит ещё лехче чем я думал.

Ещё несколько вопросов.
Для линукса этот код тоже подойдёт?
Ища помощь по этой теме до этого я сталкнулся с ещё 1 больше не проблемой, с странастью - weaponbox'ы сами ищезают на pev_nextthink hal-life время? И установив данное на 0.0 мы их оставим до NewRound. Это правда?


My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot

Сообщение отредактировал He_npeT - Среда, 19.03.2008, 13:09:24
 
slogicДата: Среда, 19.03.2008, 14:12:53 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Замечу, что ты кашу из темы делаешь уже.

Quote (He_npeT)
И установив данное на 0.0 мы их оставим до NewRound.

Нет, это корректное удаление weaponbox.
 
He_npeTДата: Среда, 19.03.2008, 17:28:01 | Сообщение # 5
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Странно, но не удалятся почемуто (я земетил что по стандару и есть 0.0). Но не важно в общем.
А возможно создать токо ammo от опредеённой пушки в weaponbox'e?
И если создать свой weaponbox, то он удалится на новом raund'e?

Offtopic: Тему я вобщето создал, чтобы обсудить и узнать всю возможную инормацию о weaponbox & armoury_entity - как модифицировать данные, создать свои собственные, удалить...

// edit:

К стате когда weaponbox ичезает, то тот weapon entery у которого owner тот weaponbox тоже исчезает, или его надо убрать в ручную (если я создал свой entery с owner'ом weaponbox)?


My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot

Сообщение отредактировал He_npeT - Среда, 19.03.2008, 18:10:11
 
VENДата: Среда, 19.03.2008, 19:23:09 | Сообщение # 6
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
Для линукса этот код тоже подойдёт?
Если ты про cs_set_weaponbox_bpammo(), то, скорее всего, не подойдет для linux платформы. Возможно, поможет добавление еще одного дополнительного параметра (со значением, равным 4) во все используемые *_pdata_* функции.

Quote
А возможно создать токо ammo от опредеённой пушки в weaponbox'e?
Думаю, да, но по-хорошему нужны исходники CS, чтобы посмотреть, как правильно происходит создание и линковка. В CS эта техника отличается от общепринятой, освещенной в HLSDK. Конечно, можно поэксперементировать и в конце-концов с помощью логики и результатов тестов угадать методы, также можно декомпилировать/дизассемблировать dll мода и заглянуть туда, еще можно методом хакинга хукнуть необходимые функции, как это сделано в Ham Sandwich модуле.

Quote
Тему я вобщето создал, чтобы обсудить и узнать всю возможную инормацию о weaponbox & armoury_entity - как модифицировать данные, создать свои собственные, удалить...
Ну, тогда предлагаю переименовать тему, дав ей более подходящее название.

Quote
И если создать свой weaponbox, то он удалится на новом raund'e?
Ты для начала его создай, а удалится ли он или нет - это уже проще простого проверить... ;]

Quote
когда weaponbox ичезает, то тот weapon entery у которого owner тот weaponbox тоже исчезает, или его надо убрать в ручную (если я создал свой entery с owner'ом weaponbox)?
Давай не будем гадать на кофейной гуще. Для начала создай то, о чем ты говоришь, а потом уж разберемся, что к чему. Исходников мода-то нет, поэтому все нужно делать руками и проверять на практике.
 
slogicДата: Среда, 19.03.2008, 20:30:12 | Сообщение # 7
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (He_npeT)
Странно, но не удалятся почемуто (я земетил что по стандару и есть 0.0).

Хм, сейчас в плагин глянул, удаление делается так: DF_Think(pentTouched). Но предварительно надо считать pev_flags и проверить, не стоит ли там бит FL_KILLME. Удаляться должен как weaponbox, так и подчиненная ему сущность weapon_*. И еще, pev_owner от weaponbox может содержать индекс игрока - это значит что он его выборосил.
 
VENДата: Среда, 19.03.2008, 21:21:48 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Для информации: в nextthink pev weaponbox содержит gametime время, в которое будет удалена данная entity. В CS по-умолчанию время "жизни" weaponbox равно 300 секунд. Отсюда и получается, что если выставить значение nextthink pev <= текущему времени, weaponbox "подумает" (Think) и автоматически удалится.
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026