emoteclasses.c 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773
  1. class EmoteGreeting extends EmoteBase
  2. {
  3. void EmoteGreeting()
  4. {
  5. m_ID = EmoteConstants.ID_EMOTE_GREETING;
  6. m_InputActionName = "EmoteGreeting";
  7. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  8. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  9. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_GREETING;
  10. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_GREETING;
  11. m_HideItemInHands = false;
  12. }
  13. }
  14. class EmoteSOS extends EmoteBase
  15. {
  16. void EmoteSOS()
  17. {
  18. m_ID = EmoteConstants.ID_EMOTE_SOS;
  19. m_InputActionName = "EmoteSOS";
  20. m_StanceMaskAdditive = 0;
  21. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
  22. m_AdditiveCallbackUID = 0;
  23. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SOS;
  24. m_HideItemInHands = true;
  25. }
  26. override bool EmoteCondition(int stancemask)
  27. {
  28. return !m_Player.GetItemInHands();
  29. }
  30. }
  31. class EmoteHeart extends EmoteBase
  32. {
  33. void EmoteHeart()
  34. {
  35. m_ID = EmoteConstants.ID_EMOTE_HEART;
  36. m_InputActionName = "EmoteHeart";
  37. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  38. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  39. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_HEART;
  40. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_HEART;
  41. m_HideItemInHands = true;
  42. }
  43. override bool EmoteCondition(int stancemask)
  44. {
  45. return !m_Player.GetItemInHands();
  46. }
  47. }
  48. class EmoteTaunt extends EmoteBase
  49. {
  50. void EmoteTaunt()
  51. {
  52. m_ID = EmoteConstants.ID_EMOTE_TAUNT;
  53. m_InputActionName = "EmoteTaunt";
  54. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  55. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  56. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNT;
  57. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNT;
  58. m_HideItemInHands = false;
  59. }
  60. }
  61. class EmoteLyingDown extends EmoteBase
  62. {
  63. protected const float WATER_DEPTH = 0.15;
  64. void EmoteLyingDown()
  65. {
  66. m_ID = EmoteConstants.ID_EMOTE_LYINGDOWN;
  67. m_InputActionName = "EmoteLyingDown";
  68. m_StanceMaskAdditive = 0;
  69. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
  70. m_AdditiveCallbackUID = 0;
  71. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LYINGDOWN;
  72. m_HideItemInHands = true;
  73. }
  74. override bool EmoteCondition(int stancemask)
  75. {
  76. vector water_info = HumanCommandSwim.WaterLevelCheck( m_Player, m_Player.GetPosition() - (m_Player.GetDirection() * 0.9) );
  77. if (water_info[0] >= WATER_DEPTH) //is player able to lay down without "drowning"?
  78. return false;
  79. return !m_Player.GetItemInHands();
  80. }
  81. }
  82. class EmoteTauntKiss extends EmoteBase
  83. {
  84. void EmoteTauntKiss()
  85. {
  86. m_ID = EmoteConstants.ID_EMOTE_TAUNTKISS;
  87. m_InputActionName = "EmoteTauntKiss";
  88. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  89. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  90. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTKISS;
  91. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNTKISS;
  92. m_HideItemInHands = false;
  93. }
  94. }
  95. class EmotePoint extends EmoteBase
  96. {
  97. void EmotePoint()
  98. {
  99. m_ID = EmoteConstants.ID_EMOTE_POINT;
  100. m_InputActionName = "EmotePoint";
  101. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  102. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  103. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_POINT;
  104. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_POINT;
  105. m_HideItemInHands = false;
  106. }
  107. }
  108. class EmoteTauntElbow extends EmoteBase
  109. {
  110. void EmoteTauntElbow()
  111. {
  112. m_ID = EmoteConstants.ID_EMOTE_TAUNTELBOW;
  113. m_InputActionName = "EmoteTauntElbow";
  114. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  115. m_StanceMaskFullbody = 0;
  116. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTELBOW;
  117. m_FullbodyCallbackUID = 0;
  118. m_HideItemInHands = true;
  119. }
  120. override bool EmoteCondition(int stancemask)
  121. {
  122. return !m_Player.GetItemInHands();
  123. }
  124. }
  125. class EmoteThumb extends EmoteBase
  126. {
  127. void EmoteThumb()
  128. {
  129. m_ID = EmoteConstants.ID_EMOTE_THUMB;
  130. m_InputActionName = "EmoteThumb";
  131. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  132. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  133. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THUMB;
  134. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THUMB;
  135. m_HideItemInHands = false;
  136. }
  137. }
  138. class EmoteThumbDown extends EmoteBase
  139. {
  140. void EmoteThumbDown()
  141. {
  142. m_ID = EmoteConstants.ID_EMOTE_THUMBDOWN;
  143. m_InputActionName = "EmoteThumbDown";
  144. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  145. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  146. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THUMBDOWN;
  147. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THUMBDOWN;
  148. m_HideItemInHands = false;
  149. }
  150. }
  151. class EmoteThroat extends EmoteBase
  152. {
  153. void EmoteThroat()
  154. {
  155. m_ID = EmoteConstants.ID_EMOTE_THROAT;
  156. m_InputActionName = "EmoteThroat";
  157. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  158. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  159. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_THROAT;
  160. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_THROAT;
  161. m_HideItemInHands = false;
  162. }
  163. }
  164. class EmoteDance extends EmoteBase
  165. {
  166. void EmoteDance()
  167. {
  168. m_ID = EmoteConstants.ID_EMOTE_DANCE;
  169. m_InputActionName = "EmoteDance";
  170. m_StanceMaskAdditive = 0;
  171. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
  172. m_AdditiveCallbackUID = 0;
  173. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_DANCE;
  174. m_HideItemInHands = true;
  175. }
  176. override bool EmoteCondition(int stancemask)
  177. {
  178. if (m_Player.GetBrokenLegs() == eBrokenLegs.BROKEN_LEGS)
  179. return false;
  180. return !m_Player.GetItemInHands();
  181. }
  182. }
  183. class EmoteSalute extends EmoteBase
  184. {
  185. void EmoteSalute()
  186. {
  187. m_ID = EmoteConstants.ID_EMOTE_SALUTE;
  188. m_InputActionName = "EmoteSalute";
  189. m_StanceMaskAdditive = 0;
  190. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_ERECT;
  191. m_AdditiveCallbackUID = 0;
  192. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SALUTE;
  193. m_HideItemInHands = true;
  194. }
  195. override bool EmoteCondition(int stancemask)
  196. {
  197. return !m_Player.GetItemInHands();
  198. }
  199. }
  200. class EmoteTimeout extends EmoteBase
  201. {
  202. void EmoteTimeout()
  203. {
  204. m_ID = EmoteConstants.ID_EMOTE_TIMEOUT;
  205. m_InputActionName = "EmoteTimeout";
  206. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  207. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  208. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TIMEOUT;
  209. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TIMEOUT;
  210. m_HideItemInHands = true;
  211. }
  212. override bool EmoteCondition(int stancemask)
  213. {
  214. return !m_Player.GetItemInHands();
  215. }
  216. }
  217. class EmoteDabbing extends EmoteBase
  218. {
  219. void EmoteDabbing()
  220. {
  221. m_ID = EmoteConstants.ID_EMOTE_DABBING;
  222. //m_InputActionName = "EmoteDabbing";
  223. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  224. m_StanceMaskFullbody = 0;
  225. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_DABBING;
  226. m_FullbodyCallbackUID = 0;
  227. m_HideItemInHands = true;
  228. }
  229. }
  230. class EmoteFacepalm extends EmoteBase
  231. {
  232. void EmoteFacepalm()
  233. {
  234. m_ID = EmoteConstants.ID_EMOTE_FACEPALM;
  235. m_InputActionName = "EmoteFacepalm";
  236. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  237. m_StanceMaskFullbody = 0;
  238. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_FACEPALM;
  239. m_FullbodyCallbackUID = 0;
  240. m_HideItemInHands = false;
  241. }
  242. }
  243. class EmoteClap extends EmoteBase
  244. {
  245. void EmoteClap()
  246. {
  247. m_ID = EmoteConstants.ID_EMOTE_CLAP;
  248. m_InputActionName = "EmoteClap";
  249. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  250. m_StanceMaskFullbody = 0;
  251. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_CLAP;
  252. m_FullbodyCallbackUID = 0;
  253. m_HideItemInHands = true;
  254. }
  255. override bool EmoteCondition(int stancemask)
  256. {
  257. return !m_Player.GetItemInHands();
  258. }
  259. }
  260. class EmoteSilent extends EmoteBase
  261. {
  262. void EmoteSilent()
  263. {
  264. m_ID = EmoteConstants.ID_EMOTE_SILENT;
  265. m_InputActionName = "EmoteSilent";
  266. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  267. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  268. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SILENCE;
  269. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SILENCE;
  270. m_HideItemInHands = false;
  271. }
  272. }
  273. class EmoteWatching extends EmoteBase
  274. {
  275. void EmoteWatching()
  276. {
  277. m_ID = EmoteConstants.ID_EMOTE_WATCHING;
  278. m_InputActionName = "EmoteWatching";
  279. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  280. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  281. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_WATCHING;
  282. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_WATCHING;
  283. m_HideItemInHands = false;
  284. }
  285. }
  286. class EmoteHold extends EmoteBase
  287. {
  288. void EmoteHold()
  289. {
  290. m_ID = EmoteConstants.ID_EMOTE_HOLD;
  291. m_InputActionName = "EmoteHold";
  292. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  293. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  294. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_HOLD;
  295. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_HOLD;
  296. m_HideItemInHands = false;
  297. }
  298. }
  299. class EmoteListening extends EmoteBase
  300. {
  301. void EmoteListening()
  302. {
  303. m_ID = EmoteConstants.ID_EMOTE_LISTENING;
  304. m_InputActionName = "EmoteListening";
  305. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  306. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  307. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_LISTENING;
  308. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LISTENING;
  309. m_HideItemInHands = false;
  310. }
  311. }
  312. class EmotePointSelf extends EmoteBase
  313. {
  314. void EmotePointSelf()
  315. {
  316. m_ID = EmoteConstants.ID_EMOTE_POINTSELF;
  317. m_InputActionName = "EmotePointSelf";
  318. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  319. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  320. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_POINTSELF;
  321. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_POINTSELF;
  322. m_HideItemInHands = false;
  323. }
  324. }
  325. class EmoteLookAtMe extends EmoteBase
  326. {
  327. void EmoteLookAtMe()
  328. {
  329. m_ID = EmoteConstants.ID_EMOTE_LOOKATME;
  330. m_InputActionName = "EmoteLookAtMe";
  331. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  332. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  333. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_LOOKATME;
  334. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_LOOKATME;
  335. m_HideItemInHands = false;
  336. }
  337. }
  338. class EmoteTauntThink extends EmoteBase
  339. {
  340. void EmoteTauntThink()
  341. {
  342. m_ID = EmoteConstants.ID_EMOTE_TAUNTTHINK;
  343. m_InputActionName = "EmoteTauntThink";
  344. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  345. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  346. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_TAUNTTHINK;
  347. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_TAUNTTHINK;
  348. m_HideItemInHands = false;
  349. }
  350. }
  351. class EmoteMove extends EmoteBase
  352. {
  353. void EmoteMove()
  354. {
  355. m_ID = EmoteConstants.ID_EMOTE_MOVE;
  356. m_InputActionName = "EmoteMove";
  357. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  358. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  359. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_MOVE;
  360. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_MOVE;
  361. m_HideItemInHands = false;
  362. }
  363. }
  364. class EmoteGetDown extends EmoteBase
  365. {
  366. void EmoteGetDown()
  367. {
  368. m_ID = EmoteConstants.ID_EMOTE_DOWN;
  369. m_InputActionName = "EmoteGetDown";
  370. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  371. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  372. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_DOWN;
  373. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_DOWN;
  374. m_HideItemInHands = false;
  375. }
  376. }
  377. class EmoteCome extends EmoteBase
  378. {
  379. void EmoteCome()
  380. {
  381. m_ID = EmoteConstants.ID_EMOTE_COME;
  382. m_InputActionName = "EmoteCome";
  383. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  384. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  385. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_COME;
  386. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_COME;
  387. m_HideItemInHands = false;
  388. }
  389. }
  390. //Handled directly via EmoteManager!
  391. class EmoteSurrender extends EmoteBase
  392. {
  393. void EmoteSurrender()
  394. {
  395. m_ID = EmoteConstants.ID_EMOTE_SURRENDER;
  396. m_InputActionName = "EmoteSurrender";
  397. m_HideItemInHands = false;
  398. }
  399. override bool DetermineOverride(out int callback_ID, out int stancemask, out bool is_fullbody)
  400. {
  401. stancemask = DayZPlayerConstants.STANCEMASK_ALL;
  402. return true;
  403. }
  404. override bool EmoteStartOverride(typename callbacktype, int id, int mask, bool fullbody)
  405. {
  406. bool surrendered = m_Player.GetEmoteManager().m_IsSurrendered;
  407. if (!surrendered)
  408. {
  409. m_Player.GetEmoteManager().PlaySurrenderInOut(true);
  410. }
  411. else
  412. {
  413. if (m_Player.GetItemInHands())
  414. m_Player.GetItemInHands().DeleteSafe();
  415. }
  416. return true;
  417. }
  418. }
  419. class EmoteCampfireSit extends EmoteBase
  420. {
  421. void EmoteCampfireSit()
  422. {
  423. m_ID = EmoteConstants.ID_EMOTE_CAMPFIRE;
  424. m_InputActionName = "EmoteCampfireSit";
  425. m_StanceMaskAdditive = 0;
  426. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
  427. m_AdditiveCallbackUID = 0;
  428. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_CAMPFIRE;
  429. m_HideItemInHands = true;
  430. }
  431. override bool EmoteCondition(int stancemask)
  432. {
  433. return !m_Player.GetItemInHands();
  434. }
  435. }
  436. class EmoteSitA extends EmoteBase
  437. {
  438. void EmoteSitA()
  439. {
  440. m_ID = EmoteConstants.ID_EMOTE_SITA;
  441. m_InputActionName = "EmoteSitA";
  442. m_StanceMaskAdditive = 0;
  443. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
  444. m_AdditiveCallbackUID = 0;
  445. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SITA;
  446. m_HideItemInHands = false;
  447. }
  448. }
  449. class EmoteSitB extends EmoteBase
  450. {
  451. void EmoteSitB()
  452. {
  453. m_ID = EmoteConstants.ID_EMOTE_SITB;
  454. m_InputActionName = "EmoteSitB";
  455. m_StanceMaskAdditive = 0;
  456. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_CROUCH;
  457. m_AdditiveCallbackUID = 0;
  458. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SITB;
  459. m_HideItemInHands = false;
  460. }
  461. override bool EmoteCondition(int stancemask)
  462. {
  463. return !m_Player.GetItemInHands();
  464. }
  465. }
  466. class EmoteRPSRandom extends EmoteBase
  467. {
  468. void EmoteRPSRandom()
  469. {
  470. m_ID = EmoteConstants.ID_EMOTE_RPS;
  471. m_InputActionName = "EmoteRPSRandom";
  472. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
  473. m_StanceMaskFullbody = 0;
  474. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
  475. m_FullbodyCallbackUID = 0;
  476. m_HideItemInHands = false;
  477. }
  478. }
  479. class EmoteRPSRock extends EmoteBase
  480. {
  481. void EmoteRPSRock()
  482. {
  483. m_ID = EmoteConstants.ID_EMOTE_RPS_R;
  484. m_InputActionName = "EmoteRPSRock";
  485. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
  486. m_StanceMaskFullbody = 0;
  487. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
  488. m_FullbodyCallbackUID = 0;
  489. m_HideItemInHands = false;
  490. }
  491. }
  492. class EmoteRPSPaper extends EmoteBase
  493. {
  494. void EmoteRPSPaper()
  495. {
  496. m_ID = EmoteConstants.ID_EMOTE_RPS_P;
  497. m_InputActionName = "EmoteRPSPaper";
  498. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
  499. m_StanceMaskFullbody = 0;
  500. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
  501. m_FullbodyCallbackUID = 0;
  502. m_HideItemInHands = false;
  503. }
  504. }
  505. class EmoteRPSScisors extends EmoteBase
  506. {
  507. void EmoteRPSScisors()
  508. {
  509. m_ID = EmoteConstants.ID_EMOTE_RPS_S;
  510. m_InputActionName = "EmoteRPSScisors";
  511. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_ERECT;
  512. m_StanceMaskFullbody = 0;
  513. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_RPS;
  514. m_FullbodyCallbackUID = 0;
  515. m_HideItemInHands = false;
  516. }
  517. }
  518. class EmoteNod extends EmoteBase
  519. {
  520. void EmoteNod()
  521. {
  522. m_ID = EmoteConstants.ID_EMOTE_NOD;
  523. m_InputActionName = "EmoteNod";
  524. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  525. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  526. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_NODHEAD;
  527. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_NODHEAD;
  528. m_HideItemInHands = false;
  529. }
  530. }
  531. class EmoteShake extends EmoteBase
  532. {
  533. void EmoteShake()
  534. {
  535. m_ID = EmoteConstants.ID_EMOTE_SHAKE;
  536. m_InputActionName = "EmoteShake";
  537. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  538. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  539. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SHAKEHEAD;
  540. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SHAKEHEAD;
  541. m_HideItemInHands = false;
  542. }
  543. }
  544. class EmoteShrug extends EmoteBase
  545. {
  546. void EmoteShrug()
  547. {
  548. m_ID = EmoteConstants.ID_EMOTE_SHRUG;
  549. m_InputActionName = "EmoteShrug";
  550. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  551. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  552. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_SHRUG;
  553. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_SHRUG;
  554. m_HideItemInHands = false;
  555. }
  556. }
  557. class EmoteSuicide extends EmoteBase
  558. {
  559. void EmoteSuicide()
  560. {
  561. m_ID = EmoteConstants.ID_EMOTE_SUICIDE;
  562. m_InputActionName = "EmoteSuicide";
  563. m_StanceMaskAdditive = 0;
  564. m_StanceMaskFullbody = 0;
  565. m_AdditiveCallbackUID = 0;
  566. m_FullbodyCallbackUID = 0;
  567. m_HideItemInHands = false;
  568. }
  569. override bool DetermineOverride(out int callback_ID, out int stancemask, out bool is_fullbody)
  570. {
  571. is_fullbody = true;
  572. callback_ID = -1;
  573. stancemask = 0;
  574. string suicideStr;
  575. ItemBase weapon;
  576. weapon = m_Player.GetItemInHands();
  577. if (weapon)
  578. {
  579. if (weapon.ConfigIsExisting("suicideAnim"))
  580. {
  581. suicideStr = weapon.ConfigGetString("suicideAnim");
  582. }
  583. if (weapon.IsKindOf("Pistol_Base"))
  584. {
  585. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_PISTOL;
  586. stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
  587. //m_Player.OverrideShootFromCamera(false);
  588. }
  589. else if (Weapon_Base.Cast(weapon)) //long firearms
  590. {
  591. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_RIFLE;
  592. stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
  593. //m_Player.OverrideShootFromCamera(false);
  594. }
  595. else
  596. {
  597. switch (suicideStr)
  598. {
  599. case "onehanded":
  600. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_1HD;
  601. stancemask = DayZPlayerConstants.STANCEMASK_CROUCH;
  602. break;
  603. case "fireaxe":
  604. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE;
  605. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  606. break;
  607. case "pitchfork":
  608. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK;
  609. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  610. break;
  611. case "sword":
  612. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SWORD;
  613. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  614. break;
  615. case "spear":
  616. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SPEAR;
  617. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  618. break;
  619. case "woodaxe":
  620. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE;
  621. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  622. break;
  623. case "sickle":
  624. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_SICKLE;
  625. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  626. break;
  627. case "hoe":
  628. callback_ID = DayZPlayerConstants.CMD_SUICIDEFB_HOE;
  629. stancemask = DayZPlayerConstants.STANCEMASK_ERECT;
  630. break;
  631. }
  632. }
  633. }
  634. if (callback_ID > -1)
  635. {
  636. return true;
  637. }
  638. return false;
  639. }
  640. override bool EmoteCondition(int stancemask)
  641. {
  642. ItemBase itemInHands = m_Player.GetItemInHands();
  643. if (!itemInHands.CanBeUsedForSuicide())
  644. {
  645. return false;
  646. }
  647. return super.EmoteCondition(stancemask);
  648. }
  649. override bool CanBeCanceledNormally(notnull EmoteCB callback)
  650. {
  651. int state = callback.GetState();
  652. if (state > HumanCommandActionCallback.STATE_LOOP_LOOP) //Cannot be canceled once started
  653. return false;
  654. return super.CanBeCanceledNormally(callback);;
  655. }
  656. override void OnBeforeStandardCallbackCreated(int callback_ID, int stancemask, bool is_fullbody)
  657. {
  658. if (callback_ID > -1)
  659. {
  660. if (callback_ID == DayZPlayerConstants.CMD_SUICIDEFB_PISTOL || callback_ID == DayZPlayerConstants.CMD_SUICIDEFB_RIFLE)
  661. m_Player.OverrideShootFromCamera(false);
  662. }
  663. }
  664. override void OnCallbackEnd()
  665. {
  666. m_Player.SetSuicide(false);
  667. }
  668. }
  669. class EmoteVomit extends EmoteBase
  670. {
  671. void EmoteVomit()
  672. {
  673. m_ID = EmoteConstants.ID_EMOTE_VOMIT;
  674. m_InputActionName = "EmoteVomit";
  675. m_StanceMaskAdditive = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
  676. m_StanceMaskFullbody = DayZPlayerConstants.STANCEMASK_PRONE;
  677. m_AdditiveCallbackUID = DayZPlayerConstants.CMD_GESTUREMOD_NODHEAD;
  678. m_FullbodyCallbackUID = DayZPlayerConstants.CMD_GESTUREFB_NODHEAD;
  679. m_HideItemInHands = false;
  680. }
  681. override bool EmoteCondition(int stancemask)
  682. {
  683. return DayZPlayerUtils.PlayerCanChangeStance(m_Player,DayZPlayerConstants.STANCEIDX_CROUCH);
  684. }
  685. override bool EmoteStartOverride(typename callbacktype, int id, int mask, bool fullbody)
  686. {
  687. if ( m_Player.GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER || !GetGame().IsMultiplayer() )
  688. {
  689. SymptomBase symptom = m_Player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
  690. if ( symptom )
  691. {
  692. symptom.SetDuration(Math.RandomIntInclusive(4,8));
  693. }
  694. }
  695. m_Player.GetEmoteManager().SetEmoteLockState(false);
  696. return true;
  697. }
  698. }