Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 1 из 11
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Копирование физических объектов (cs_ragdoll)
Копирование физических объектов
BarD Дата: Воскресенье, 16.08.2015, 11:15:44 | Сообщение # 1
Сообщений: 944
Репутация: 132 [ +/- ]
Всем доброго времени суток! Можно ли абсолютно точно скопировать лежащий труп? Т.е. создать рядом другой труп (cs_ragdoll), лежащий в точно такой же позиции, что и первый труп.
 
Sallcom Дата: Воскресенье, 16.08.2015, 18:02:09 | Сообщение # 2
Сообщений: 206
Репутация: 31 [ +/- ]
Можно поиграть с Dissolve эффектом, ибо он создает копию и испаряет ее.
Может быть GetEntDataEnt2.


Сообщение отредактировал Sallcom - Воскресенье, 16.08.2015, 18:05:01
 
BarD Дата: Понедельник, 17.08.2015, 11:13:07 | Сообщение # 3
Сообщений: 944
Репутация: 132 [ +/- ]
Sallcom, из Dissolve ничего не вытащишь :)

Цитата Sallcom ()
Может быть GetEntDataEnt2

Я немного не понимаю, как это использовать и зачем нужно. Объясни, пожалуйста :)


Сообщение отредактировал BarD - Понедельник, 17.08.2015, 11:13:52
 
Sallcom Дата: Понедельник, 17.08.2015, 20:18:38 | Сообщение # 4
Сообщений: 206
Репутация: 31 [ +/- ]
Посмотрел один .inc, там это используется.
Вот он http://code.google.com/p/zombiereloaded/source/browse/src/zr/visualeffects/ragdoll.inc?repo=zr-3-0-b2&r=0ecf9f5c3382aa6b4df66e381518f3a3f1739d01

P.S. По-моему ragdoll'ы обрабатываются на стороне клиента, то есть их положение может отличаться у разных игроков.


Сообщение отредактировал Sallcom - Понедельник, 17.08.2015, 21:17:50
 
BarD Дата: Вторник, 18.08.2015, 02:43:49 | Сообщение # 5
Сообщений: 944
Репутация: 132 [ +/- ]
Посмотрел. Но все равно не понимаю, чем GetEntDataEnt2 отличается от простого получения оффсета через GetEntProp) спасибо за помощь, может кто-нибудь ещё что-то подкинет:)


Сообщение отредактировал BarD - Вторник, 18.08.2015, 02:44:11
 
Sallcom Дата: Среда, 19.08.2015, 13:05:13 | Сообщение # 6
Сообщений: 206
Репутация: 31 [ +/- ]
Цитата BarD ()
Но все равно не понимаю, чем GetEntDataEnt2 отличается от простого получения оффсета через GetEntProp

Судя по тому, что пишут на AM, то GetEntDataEnt2 немного быстрее, но для его использования лучше хранить оффсет в глобальной переменной.

Цитата BarD ()
из Dissolve ничего не вытащишь :)

Если копнуть глубже, то вот:
https://github.com/ValveSoftware/source-sdk-2013/blob/master/sp/src/game/client/c_entitydissolve.cpp

Ragdoll:
https://github.com/ValveSoftware/source-sdk-2013/blob/master/sp/src/game/client/ragdoll.cpp


Сообщение отредактировал Sallcom - Среда, 19.08.2015, 13:21:21
 
BarD Дата: Среда, 19.08.2015, 13:58:16 | Сообщение # 7
Сообщений: 944
Репутация: 132 [ +/- ]
Что-то жесткое :) Буду разбираться, спасибо большое!
 
Sallcom Дата: Четверг, 20.08.2015, 13:44:29 | Сообщение # 8
Сообщений: 206
Репутация: 31 [ +/- ]
Можно попробовать взять данные cs_ragdoll и заспавнить prop_ragdoll с такими же параметрами.

Оффсеты:
Код
CCSRagdoll:
    Sub-Class Table (1 Deep): DT_CSRagdoll
    -Member: m_vecOrigin (offset 724) (type vector) (bits 0)
    -Member: m_vecRagdollOrigin (offset 1108) (type vector) (bits 0)
    -Member: m_hPlayer (offset 1092) (type integer) (bits 21)
    -Member: m_nModelIndex (offset 114) (type integer) (bits 12)
    -Member: m_nForceBone (offset 784) (type integer) (bits 8)
    -Member: m_vecForce (offset 788) (type vector) (bits 0)
    -Member: m_vecRagdollVelocity (offset 1096) (type vector) (bits 0)
    -Member: m_iDeathPose (offset 1120) (type integer) (bits 12)
    -Member: m_iDeathFrame (offset 1124) (type integer) (bits 5)
    -Member: m_iTeamNum (offset 448) (type integer) (bits 6)
    -Member: m_bClientSideAnimation (offset 976) (type integer) (bits 1)


Сообщение отредактировал Sallcom - Четверг, 20.08.2015, 14:32:10
 
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Копирование физических объектов (cs_ragdoll)
Страница 1 из 11
Поиск: