Русское сообщество по скриптингу

Бесконечная обойма

Все вопросы по скриптингу для SourceMod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптингу для SourceMod.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sp плагина.

Бесконечная обойма

Сообщение Fedcomp » 13 май 2010, 13:47

В общем хочется смастерить плагинчик под сурсмод, который бы обеспечивал всем бесконечную обойму на сервере. Незнаю с чего начать, функций сурсовых модулей не знаю и не знаю как оптимальнее это сделать.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Бесконечная обойма

Сообщение qpAHToMAS » 13 май 2010, 14:34

как оптимальнее это сделать.

Вероятно заменой числа в памяти по нужному адресу? Так же как это делает ArtMoney, у которой кстати есть и функция "заморозки" числа, которая вроде как простой цикл по установке нужного значения.
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

Re: Бесконечная обойма

Сообщение Fedcomp » 13 май 2010, 15:39

Ну как бы сказать, мне почему то кажется что в сурсовых модулях есть какая либо функция для установки и количества обоймы в том числе. На amxx есть всякие ноклипы без всякого редактирования памяти
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Бесконечная обойма

Сообщение Ser_UFL » 13 май 2010, 18:05

Запомните, всегда по жизни вас будут красить вежливость и спокойствие, а не наезды и дешевые понты ;)
Аватара пользователя
Ser_UFL
 
Сообщения: 975
Зарегистрирован: 22 авг 2009, 19:30
Откуда: Hell
Благодарил (а): 276 раз.
Поблагодарили: 380 раз.
Языки программирования: Counter-Strike 1.6:
WebMod-scripts, little Pawn.

Re: Бесконечная обойма

Сообщение Fedcomp » 13 май 2010, 19:01

Один для TF2 другой это бесконечные патроны а не обойма
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Бесконечная обойма

Сообщение DJ_WEST » 13 май 2010, 19:26

То что один для TF2 - особой разницы нету, во всех версиях Source движка, используемых в разных играх - есть много общего, в том числе список объектов и их свойств. SourceMod имеет хорошую особенность работать с data и send свойствами объектов. Тебе нужно у объекта player использовать свойство m_iAmmo, в котором в разных смещениях будет количество патронов разного типа. Для начало нужно создать указатель на нужное свойство, примерно так:
[pawn]g_Ammo_Offset FindSendPropInfo("CBasePlayer""m_iAmmo"[/pawn]
CBasePlayer в разных играх может называться по разному, в TF2 - это CTFPlayer.
Затем узнать количество патронов можно через:
[pawn]new i_Ammo GetEntData(clientg_Ammo_Offset i_WeaponOffset[/pawn]
Где i_WeaponOffset - и будет смещение для разных типов патронов. То есть лучше всего для начала узнать, где что храниться, то есть экспериментами, сделать цикл, где i_WeaponOffset начинать к примеру от 0 и прибавлять по 4, то есть g_Ammo_Offset + 4, g_Ammo_Offset + 8 и т.д.
Это те патроны, что храняться на клиенте. Бесконечными ты их сделаешь если будешь в это свойство выставлять заново число, то есть, допустим там 90, вот все время и ставить 90, когда игрок стреляет.
Есть и свойство у оружия m_iClip1 и m_iClip2, в которых хранятся данные о количество патронов тоже. Получить можно так:
[pawn]GetEntProp(weaponProp_Data"m_iClip1"[/pawn]
Установить через SetEntProp. То есть лежит оружие, ставишь m_iClip1, к примеру, 15, игрок поднимает оружие и он видит, что там только 15 патронов в магазине.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Бесконечная обойма

Сообщение Fedcomp » 14 май 2010, 00:34

Едем дальше, как хукнуть выстрел?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Бесконечная обойма

Сообщение DJ_WEST » 14 май 2010, 00:59

Для какой игры хоть? Смотри в resource/modevents.res события. Выстрел - weapon_fire, хотя тебе может и подойдет weapon_reload. Как отловить события написано Вы должны зарегистрироваться, чтобы видеть ссылки..
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Бесконечная обойма

Сообщение Fedcomp » 14 май 2010, 06:58

Обрисую картину более подробно - для CS:S нужна бесконечная обойма, зачем? для тренировки стрельбы с разброса и не только.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Бесконечная обойма

Сообщение DJ_WEST » 14 май 2010, 12:07

Обойма имеется ввиду, используемая в настоящее время или те, что в запасе?
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2