Advertisement
HMXOnDex

PS3 GTA 5 Mods , Non Host Kick , Fake Leave , Give RP ,Etc

Jun 21st, 2017
9,993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.69 KB | None | 0 0
  1. union ScriptArg {unsigned int ui;float f;int i; char *str;};
  2. namespace SCRIPT {
  3. static void TRIGGER_SCRIPT_EVENT(int always1, ScriptArg *argsStruct, int argsStructCount, int playerbitset) { invoke<Void>(0x54763B35, always1, argsStruct, argsStructCount, playerbitset); } // 0x54763B35
  4. };
  5. namespace PlayerMods {
  6. namespace eventCreator {
  7. void callScriptEvent(ScriptArg *args,int argsCount,unsigned int playerBits) {
  8. SCRIPT::TRIGGER_SCRIPT_EVENT(1,args,argsCount,playerBits);
  9. }
  10. };
  11. };
  12.  
  13. void kickPlayerNonHost(int player) {
  14. //0x00D003DFB4+10*0x4 = args
  15. unsigned int playerBit = (1<<player);
  16. //0x2 0x7 0x35 and 0xA was me so idk...
  17. ScriptArg args[3] = {0x2,player,0x35};//0x35 is the speccial one I guess
  18.  
  19. //first arg is always 1
  20. //last arg is always the bit thing
  21. //second arg meh
  22. //third arg is the size of the data
  23. SCRIPT::TRIGGER_SCRIPT_EVENT(1,args,3,playerBit);
  24. }
  25.  
  26.  
  27.  
  28. opd_s _0x012C8D60_t = {0x0012C8D60,TOC};
  29. unsigned int (*_0x0012C8D60)(unsigned int r3, unsigned int senderData, unsigned int recieverData, unsigned int r6, unsigned int r7, unsigned int r8, unsigned int r9) = (unsigned int(*)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))&_0x012C8D60_t;
  30.  
  31. //bool jobProtection = true;
  32. bool moneyProtection = true;
  33. bool teleportProtectionEnabled = true;
  34. char scriptEventDialogText[100];
  35. unsigned int scriptEventDetour(unsigned int r3, unsigned int senderData, unsigned int recieverData, unsigned int r6, unsigned int r7, unsigned int r8, unsigned int r9) {
  36. int addressOfArgs = r3+10*0x4;
  37. char *senderName = (char*)(*(int*)(senderData+0x78)+0x10);
  38. //if (*(int*)addressOfArgs == 166) {
  39. //this is the one I want to research cuz of func_6272("CnCTG_IN_BF", 2147483647, 1);
  40. //snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to kick you!",senderName);
  41. //printf("0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X 0x%X (next is 1337) 0x%X\n",*(int*)(addressOfArgs+0x4*0),*(int*)(addressOfArgs+0x4*1),*(int*)(addressOfArgs+0x4*2),*(int*)(addressOfArgs+0x4*3),*(int*)(addressOfArgs+0x4*4),*(int*)(addressOfArgs+0x4*5),*(int*)(addressOfArgs+0x4*6),*(int*)(addressOfArgs+0x4*7),*(int*)(addressOfArgs+0x4*8),*(int*)(addressOfArgs+0x4*9),*(int*)(addressOfArgs+0x4*10),*(int*)(addressOfArgs+0x4*11),*(int*)(addressOfArgs+0x4*12),*(int*)(addressOfArgs+0x4*13),*(int*)(addressOfArgs+0x4*14),*(int*)(addressOfArgs+0x4*15),*(int*)(addressOfArgs+0x4*16),*(int*)(addressOfArgs+0x4*17),*(int*)(addressOfArgs+0x4*18),*(int*)(addressOfArgs+0x4*19),*(int*)(addressOfArgs+0x4*20),*(int*)(addressOfArgs+0x4*21),*(int*)(addressOfArgs+0x4*22),1337);
  42. //return 0;
  43. //*(int*)addressOfArgs = 0;
  44. //}
  45. if (*(int*)addressOfArgs == 0x2/* && *(int*)(addressOfArgs+0x4) == PLAYER::PLAYER_ID()*/ && *(int*)(addressOfArgs+0x8) == 0x35) {
  46. //this is kick player
  47. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to kick you!",senderName);
  48. print2(scriptEventDialogText,5000);
  49. //return 0;
  50. *(int*)addressOfArgs = 0;
  51. }
  52. if (*(int*)addressOfArgs == 0x2/* && *(int*)(addressOfArgs+0x4) == PLAYER::PLAYER_ID()*/ && *(int*)(addressOfArgs+0x8) == 0x34) {
  53. //this is fake leave
  54. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to make you fake leave!",senderName);
  55. print2(scriptEventDialogText,5000);
  56. //return 0;
  57. *(int*)addressOfArgs = 0;
  58. }
  59. if (*(int*)addressOfArgs == 0x2/* && *(int*)(addressOfArgs+0x4) == PLAYER::PLAYER_ID()*/ && *(int*)(addressOfArgs+0x8) == 0x2e) {
  60. //this is fake leave
  61. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to reset your view!",senderName);
  62. print2(scriptEventDialogText,5000);
  63. //return 0;
  64. *(int*)addressOfArgs = 0;
  65. }
  66. if (*(int*)addressOfArgs == 0xD8) {
  67. //this is give rp
  68. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to give you %i rp!",senderName,*(int*)(addressOfArgs+0x8));
  69. print2(scriptEventDialogText,5000);
  70. //*(int*)(addressOfArgs+0x8) = 0;//rp amount
  71. *(int*)addressOfArgs = 0;
  72. //return 0;
  73. }
  74. /*if (*(int*)addressOfArgs == 0x9A) {
  75. //this is job circle
  76. if (jobProtection) {
  77. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to make you go into a job with job protection enabled! This may be a false alarm.",senderName);
  78. print2(scriptEventDialogText,5000);
  79. //try doing *(int*)addressOfArgs = 0 instead
  80. //return 0;
  81. *(int*)addressOfArgs = 0;
  82. }
  83. }*/
  84. //not needed anymore because bypassed
  85. if (*(int*)addressOfArgs == 0xDA) {
  86. //this is money
  87. if (moneyProtection) {
  88. //Write_Global(262145+4812,0);//set the amount to zero instead of returning
  89. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to give you money with money protection enabled!",senderName);
  90. print2(scriptEventDialogText,2000);
  91. //return 0;
  92. *(int*)addressOfArgs = 0;
  93. } else {
  94. //Write_Global(262145+4812,20000);
  95. }
  96. }
  97. if (*(int*)addressOfArgs == 0x16C) {
  98. //this is apartment
  99. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to force you into their apartment!",senderName);
  100. print2(scriptEventDialogText,5000);
  101. //return 0;
  102. *(int*)addressOfArgs = 0;
  103. }
  104. if (*(int*)addressOfArgs == 0x3) {
  105. if (*(int*)(addressOfArgs+0x8) == 0x37 || *(int*)(addressOfArgs+0x8) == 0x36 || *(int*)(addressOfArgs+0x8) == 0x35) {
  106. //this is job
  107. snprintf$(scriptEventDialogText,sizeof(scriptEventDialogText),"%s tried to force you to join a job!",senderName);
  108. print2(scriptEventDialogText,5000);
  109. //return 0;
  110. *(int*)addressOfArgs = 0;
  111. }
  112. }
  113. return _0x0012C8D60(r3,senderData,recieverData,r6,r7,r8,r9);
  114. }
  115. void setupScriptEventDetour() {//call this on game start to set it up
  116. *(int*)(0x1C6BD80) = *(int*)( /*this returns the opd struct address Function*/(int)&scriptEventDetour );//same
  117. *(int*)((0x1C6BD80+0x4)) = *(int*)( /*this returns the opd struct address TOC*/(int)&scriptEventDetour+0x4 );
  118. }
  119. void resetPlayerView(int player) {
  120. ScriptArg args[3];
  121. args[0].i = 0x2;
  122. args[1].i = player;
  123. args[2].i = 0x2e;//46
  124. unsigned int bits = (1<<player);
  125. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  126. }
  127.  
  128. bool resetViewBoolLoop[18];
  129. void resetPlayerViewLoop() {
  130. for (int i = 0; i < 16; i++)
  131. if (resetViewBoolLoop[i])
  132. resetPlayerView(i);
  133. }
  134.  
  135.  
  136. void setPlayerStats(int player) {
  137. //event id is 150
  138. //get_event_data for it is in freemode at line 313711
  139. //the call to func_544 is set_stat_int usage
  140. //doesn't seem to have a trigger_script_event call
  141. ScriptArg args[12];
  142. args[0].i = 150;
  143. args[1].i = player;
  144. args[2].i = 0;//unknown value
  145.  
  146. //the values are for NOT setting the correlated stat
  147. //these are the hash from the array. weird but it's wat it is
  148. args[3].i = 88;//int
  149. args[4].i = 34;//bool
  150. args[5].i = 1;//float
  151. args[6].i = 2949;//int
  152. args[7].i = 228;//bool
  153. args[8].i = 228;//float
  154.  
  155. args[9].i = 0;//value to set for the int ones. This is added on to the previous value set for the stat
  156. args[10].i = 0;//value to set for the float ones. This is added on to the previous value set for the stat
  157. args[11].i = 0;//value to set for the bool ones
  158. unsigned int bits = (1<<player);
  159. PlayerMods::eventCreator::callScriptEvent(args,12,bits);
  160. }
  161.  
  162. enum {
  163. EVENT_STAT_INT_0 = 3,
  164. EVENT_STAT_INT_1 = 6,
  165. EVENT_STAT_BOOL_0 = 4,
  166. EVENT_STAT_BOOL_1 = 7,
  167. EVENT_STAT_FLOAT_0 = 5,
  168. EVENT_STAT_FLOAT_1 = 8,
  169. EVENT_STAT_VALUE_INT = 9,
  170. EVENT_STAT_VALUE_FLOAT = 10,
  171. EVENT_STAT_VALUE_BOOL = 11
  172. };
  173. void setupDefaultStatEvent(int player, ScriptArg *args) {
  174. args[0].i = 150;
  175. args[1].i = player;
  176. args[2].i = player;//unknown value
  177. args[3].i = 88;//int
  178. args[4].i = 34;//bool
  179. args[5].i = 1;//float
  180. args[6].i = 2949;//int
  181. args[7].i = 228;//bool
  182. args[8].i = 228;//float
  183. args[9].i = 0;//value to set for the int ones. This is added on to the previous value set for the stat
  184. args[10].i = 0;//value to set for the float ones. This is added on to the previous value set for the stat
  185. args[11].i = 0;//value to set for the bool ones
  186. }
  187. //https://pastebin.com/9HqhUUCK
  188. bool globalStatVersionType = 1;//this decides whether I use the first 3 (0) or the last 3 (1)
  189. void setPlayerStatInt(int player, int statIndex, int statValue, bool type = globalStatVersionType) {
  190. statValue = 0xFFFFFFFF-statValue+1;
  191. ScriptArg args[12];
  192. setupDefaultStatEvent(player,args);
  193. printf("%i\n",args[6].i);
  194. args[EVENT_STAT_VALUE_INT].ui = *(unsigned int*)(&statValue);
  195. args[EVENT_STAT_VALUE_BOOL].i = statValue;
  196. args[EVENT_STAT_VALUE_FLOAT].f = statValue;
  197. if (type == 0)
  198. args[EVENT_STAT_INT_0].i = statIndex;
  199. else
  200. args[EVENT_STAT_INT_1].i = statIndex;
  201. unsigned int bits = (1<<player);
  202. PlayerMods::eventCreator::callScriptEvent(args,12,bits);
  203. }
  204. void setPlayerStatBool(int player, int statIndex, bool statValue, bool type = globalStatVersionType) {
  205. ScriptArg args[12];
  206. setupDefaultStatEvent(player,args);
  207. args[EVENT_STAT_VALUE_INT].i = *(unsigned int*)(&statValue);
  208. args[EVENT_STAT_VALUE_BOOL].i = statValue;
  209. args[EVENT_STAT_VALUE_FLOAT].f = statValue;
  210. if (type == 0)
  211. args[EVENT_STAT_BOOL_0].i = statIndex;
  212. else
  213. args[EVENT_STAT_BOOL_1].i = statIndex;
  214. unsigned int bits = (1<<player);
  215. PlayerMods::eventCreator::callScriptEvent(args,12,bits);
  216. }
  217. void setPlayerStatFloat(int player, int statIndex, float statValue, bool type = globalStatVersionType) {
  218. ScriptArg args[12];
  219. setupDefaultStatEvent(player,args);
  220. args[EVENT_STAT_VALUE_INT].i = *(unsigned int*)(&statValue);
  221. args[EVENT_STAT_VALUE_BOOL].i = statValue;
  222. args[EVENT_STAT_VALUE_FLOAT].f = statValue;
  223. if (type == 0)
  224. args[EVENT_STAT_FLOAT_0].i = statIndex;
  225. else
  226. args[EVENT_STAT_FLOAT_1].i = statIndex;
  227. unsigned int bits = (1<<player);
  228. PlayerMods::eventCreator::callScriptEvent(args,12,bits);
  229. }
  230.  
  231. void setPlayerRpStat(int player, int rp) {
  232. //for (int i = 0; i < 25; i++)
  233. setPlayerStatInt(player,626,rp,true);
  234. }
  235. void setPlayerSnackStat(int player, int amt) {
  236. //for (int i = 0; i < 25; i++)
  237. setPlayerStatInt(player,1261,amt,true);
  238. }
  239. void setPlayerMentalStat(int player, float amt) {
  240. //for (int i = 0; i < 25; i++)
  241. setPlayerStatFloat(player,133,amt,true);
  242. }
  243.  
  244. void givePlayerRP(int player, int amount, int unk1 = -1, int unk2 = 1) {
  245. //rank 500 is 0x0103941C
  246. //rank 120 is 0x0021025A
  247. ScriptArg args[5];
  248. args[0].i = 0xD8;//216
  249. args[1].i = player;
  250. args[2].i = 0xffffffff-amount+1;//46
  251. args[3].i = 0;//-1 0 is partner, else is gen
  252. args[4].i = 0;//unk2;//1
  253. unsigned int bits = (1<<player);
  254. PlayerMods::eventCreator::callScriptEvent(args,5,bits);
  255. }
  256. //get_event_data(
  257. void removePlayerWantedLevel(int player) {
  258. ScriptArg args[2];
  259. args[0].i = 356;
  260. args[1].i = player;
  261. unsigned int bits = (1<<player);
  262. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  263. }
  264. void setPlayerPassiveModeOn(int player) {
  265. ScriptArg args[3];
  266. args[0].i = 0x104;
  267. args[1].i = player;
  268. args[2].i = 0;
  269. unsigned int bits = (1<<player);
  270. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  271. }
  272. void setPlayerPassiveModeOff(int player) {
  273. ScriptArg args[3];
  274. args[0].i = 0x118;
  275. args[1].i = player;
  276. args[2].i = 0;
  277. unsigned int bits = (1<<player);
  278. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  279. }
  280. void activateBroadcastApp(int player) {
  281. ScriptArg args[3];
  282. args[0].i = 2;
  283. args[1].i = player;
  284. args[2].i = 0x23;//35
  285. unsigned int bits = (1<<player);
  286. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  287. }
  288. void sendPlayerMessage(int player, char *message) {
  289. //line 318419 freemode.c
  290. ScriptArg args[3];
  291. args[0].i = 152;
  292. args[1].i = player;
  293. unsigned int bits = (1<<player);
  294. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  295. }
  296. void fakeJoinJobMessage(int player) {
  297. ScriptArg args[3];
  298. args[0].i = 152;
  299. args[1].i = player;
  300. unsigned int bits = (1<<player);
  301. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  302. }
  303. void playSound(int player, int type) {//types: 0 or 1
  304. ScriptArg args[3];
  305. args[0].i = 30+type;
  306. args[1].i = player;
  307. unsigned int bits = (1<<player);
  308. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  309. }
  310. void apartmentInvite(int sender, int reciever) {//I think it just sends it to the whole lobby
  311. ScriptArg args[2];
  312. args[0].i = 32;
  313. args[1].i = sender;
  314. unsigned int bits = (1<<reciever);
  315. PlayerMods::eventCreator::callScriptEvent(args,2,bits);
  316. }
  317. void onevonedeathmatchInvite(int sender, int reciever) {//I think it just sends it to the whole lobby
  318. ScriptArg args[3];
  319. args[0].i = 41;
  320. args[1].i = sender;
  321. unsigned int bits = (1<<reciever);
  322. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  323. }
  324. //00000150 00000000 00000004 00000001 change clothes for other team
  325. void apartmentInvite(int playerToInvite, int apartmentOwner, int apartmentNum) {
  326. ScriptArg args[3];
  327. args[0].i = 0x16c;
  328. args[1].i = apartmentOwner;
  329. args[2].i = apartmentNum;
  330. unsigned int bits = (1<<playerToInvite);
  331. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  332. }
  333. void showOffTextAtBottom(int player) {
  334. ScriptArg args[3];
  335. args[0].i = 166;//this should actually be 15
  336. args[1].i = player;
  337. args[2].i = 15;//35
  338. unsigned int bits = (1<<player);
  339. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  340. }
  341. void deactivateBroadcastApp(int player) {
  342. ScriptArg args[3];
  343. args[0].i = 2;
  344. args[1].i = player;
  345. args[2].i = 0x24;//36
  346. unsigned int bits = (1<<player);
  347. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  348. }
  349. void crateDropTestEvent(int player) {
  350. ScriptArg args[6];
  351. args[0].i = 290;
  352. args[1].i = player;
  353. args[2].i = -1;
  354. args[3].i = 8;
  355. unsigned int bits = (1<<player);
  356. PlayerMods::eventCreator::callScriptEvent(args,6,bits);
  357. }
  358. void sendCash(int player, int amount) {
  359. ScriptArg args[5];
  360. args[0].i = 219;//0xDB
  361. args[1].i = 40;//player... I think you set to 40 to make it work post-patch. I haven't tested
  362. args[2].i = amount;
  363. args[3].i = -1;
  364. args[4].i = 1;
  365. unsigned int bits = (1<<player);
  366. PlayerMods::eventCreator::callScriptEvent(args,5,bits);
  367. }
  368. /*
  369. keys:
  370. 0FOQ5-KK57M-AESTM
  371. TJHLD-68F6Z-ABXOV
  372. 00EYT-2LCJK-LFZHA
  373. WZ4F4-18VPV-EEK62
  374. JIGVF-1XMS1-3FETR
  375. ZVGJ9-GSZWY-DCE3S
  376. BNDV8-8C6FB-2E4WY
  377. LEK6P-OG63E-SHT2L
  378. 507MQ-CLMAX-24646
  379. IGOQX-2H7I8-D4ZAO
  380. ZUJ3X-GBNLO-LWLDC
  381. CRQTM-G3NWY-GTHEK
  382. SCYU0-E8GJ7-LJUAB
  383. I351B-R79L2-W0R6H
  384. 696SR-DQXNC-P28W5
  385. AOMFW-TWNY9-BWO0Y
  386. PSV5R-IKXUG-86Z15
  387. 8QPIW-6DKAU-NN0OK
  388. D44D7-GZECS-R8MGF
  389. 4O87A-50070-2D51C
  390. 2YWYX-W9AKW-EACBS
  391. 16TVD-77JX0-XHAQX
  392. WZ4F4-18VPV-EEK62
  393. JZO8D-HIA9M-4R7LU
  394. NK9EP-NQODV-EH4EN
  395. VOV6B-53RGG-1J93Y
  396. YQ32I-RSZFP-W9Y1I
  397. WPZ5G-URY2C-LWC7V
  398. MWU8S-BSA4T-ER26E
  399. Serendipity
  400.  
  401. 28KJ-EV78-6S9S-AV22
  402. PD42-S7YY-U3F5-9APK
  403. WVCX-CVQX-J4YY-U7TG
  404. X4M5-DDVG-T4J7-2MJA
  405. VKEV-KF2H-VD4S-3B5J
  406. J3BU-XT8P-5EWU-4MGE
  407. WJ34-HMVM-D4BP-Z6SN
  408. NBH6-WQWB-EKM4-C6SJ
  409. URSJ-CCQR-M4SA-2D2Q
  410. 5DVT-SGUB-TM38-6893
  411. G3EK-6TM7-DG7W-TX7F
  412. C5UZ-N2X3-NAZZ-E4WR
  413. MQSE-DBAX-4RSZ-GS9Z
  414. 2CJ7-W6K2-JFWW-SB6H
  415. lexicon
  416.  
  417. RIP :(
  418. */
  419. /*void sendCash2(int player, int amount) {
  420. ScriptArg args[3];
  421. args[0].i = 219;//0xDB
  422. args[1].i = player;
  423. args[2].i = amount;
  424. unsigned int bits = 0xFFFFFFFF;
  425. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  426. }*/
  427. void makePlayerFakeLeave(int player) {
  428. ScriptArg args[3];
  429. args[0].i = 0x2;
  430. args[1].i = player;
  431. args[2].i = 0x34;//46
  432. unsigned int bits = (1<<player);
  433. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  434. }
  435.  
  436. void playerLeaveDialog(int player) {
  437. ScriptArg args[2];
  438. args[0].i = 193;
  439. args[1].i = PLAYER::GET_PLAYER_PED(player);
  440. unsigned int bits = (1<<player);
  441. PlayerMods::eventCreator::callScriptEvent(args,2,bits);
  442. }
  443.  
  444. //000000DA 00000003 06648E28 00000001
  445. void givePlayerMoney(int player, int amount) {//refunds to themself. max 20k
  446. ScriptArg args[4];
  447. args[0].i = 0xDA;
  448. args[1].i = 40;//player... I think you set to 40 to make it work post-patch. I haven't tested //cash giver (them cuz they refund themself)
  449. args[2].i = amount;//46
  450. args[3].i = 1;
  451. unsigned int bits = 0xFFFFFFFF;//(1<<player);
  452. PlayerMods::eventCreator::callScriptEvent(args,4,bits);
  453. }
  454. /*void killPlayerByEvent(int player) {
  455. //my player id is 4
  456. //9 args
  457. //bits: 0xFFEF which is ~(1<<4)
  458. //data: 00000000 00000004 00000067 00000000 00000000 00000004 00000000 00000000 00000000
  459. ScriptArg args[9];
  460. args[0].i = 0x0;
  461. args[1].i = player;//cash giver (them cuz they refund themself)
  462. args[2].i = 0x67;//46
  463. args[3].i = 0;
  464. args[4].i = 0;
  465. args[5].i = player;
  466. args[6].i = 0;
  467. args[7].i = 0;
  468. args[8].i = 0;
  469. unsigned int bits = 0xFFFFFFFF;//~(1<<player);//(1<<player);
  470. PlayerMods::eventCreator::callScriptEvent(args,4,bits);
  471. }*/
  472. void teleportPlayerIntoGolfEvent(int player) {
  473. ScriptArg args[3];
  474. args[0].i = 0x3;
  475. args[1].i = player;
  476. args[2].i = 0x37;
  477. unsigned int bits = (1<<player);
  478. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  479. }
  480. void teleportPlayerIntoDartsEvent(int player) {
  481. ScriptArg args[3];
  482. args[0].i = 0x3;
  483. args[1].i = player;
  484. args[2].i = 0x36;
  485. unsigned int bits = (1<<player);
  486. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  487. }
  488. void teleportPlayerIntoArmWrestlingEvent(int player) {
  489. ScriptArg args[3];
  490. args[0].i = 0x3;
  491. args[1].i = player;
  492. args[2].i = 0x35;
  493. unsigned int bits = (1<<player);
  494. PlayerMods::eventCreator::callScriptEvent(args,3,bits);
  495. }
  496.  
  497. void changePlayerWeather(int player, char *weather = "RAIN") {
  498. ScriptArg args[22];
  499. args[0].i = 16;
  500. args[1].i = player;
  501. //strcpy((char*)&args[2].i,weather);
  502. //printf("\n%s\n",(char*)&args[2].i);
  503. args[2].ui = 0x187198C;
  504. unsigned int bits = (1<<player);
  505. PlayerMods::eventCreator::callScriptEvent(args,22,bits);
  506. }
  507. /*
  508. void playerProperty(int player, int arg1, int arg2, int arg3) {
  509. ScriptArg args[5];
  510. args[0].i = 364;
  511. args[1].i = player;//apartment of this player
  512. args[2].i = 0;
  513. args[3].i = 0;
  514. args[4].i = 0;
  515. unsigned int bits = (1<<player);
  516. PlayerMods::eventCreator::callScriptEvent(args,5,bits);
  517. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement