SHOW:
|
|
- or go back to the newest paste.
| 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 | - | }*/ |
| 517 | + | |
| 518 | ||
| 519 | Event Logger -> | |
| 520 | if (*(int*)(addressOfArgs + 0x8) == 0x2e || *(int*)(addressOfArgs + 0x8) == 0xD8 || *(int*)(addressOfArgs + 0x8) == 0x23 || *(int*)(addressOfArgs + 0x8) == 0x34 || *(int*)(addressOfArgs + 0x8) == 0x36 || *(int*)(addressOfArgs + 0x8) == 0x35 || *(int*)(addressOfArgs + 0x8) == 0x37 || *(int*)(addressOfArgs + 0x8) == 300 || *(int*)(addressOfArgs + 0x8) == 312 || *(int*)(addressOfArgs + 0x8) == 0x35 || *(int*)(addressOfArgs + 0x8) == 0x16C || *(int*)(addressOfArgs + 0x8) == 37 || *(int*)(addressOfArgs + 0x8) == 0x1B || *(int*)(addressOfArgs + 0x8) == 0x46 || *(int*)(addressOfArgs + 0x8) == 0x1A || *(int*)(addressOfArgs + 0x8) == 0x14 || *(int*)(addressOfArgs + 0x8) == 0x40) {
| |
| 521 | //snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "~w~ It's Most Likely! ~b~%s ", senderName); | |
| 522 | // PRINT(scriptEventDialogText, 5000); | |
| 523 | char fakeleave[100]; | |
| 524 | sprintf(fakeleave, "Dear ,%s sadly your dank scripts has been blocked Please contact ~y~support.rockstargames.com ~w~if you think this is a mistake! ", senderName); | |
| 525 | sendmemesession(fakeleave); | |
| 526 | *(int*)addressOfArgs = 0; | |
| 527 | ||
| 528 | // sendPlayerMessage((returnPlayerPed(senderName)) , "Very Sad From U , hextic sprx found out u did it :(");
| |
| 529 | ||
| 530 | } | |
| 531 | ||
| 532 | Protections -- | |
| 533 | 0x830D9380B - SCTV radgeroll | |
| 534 | 0x830D80B8 - Clock Event | |
| 535 | ||
| 536 | ||
| 537 | ||
| 538 | void get_temperature(uint32_t _dev, uint32_t *_temp) | |
| 539 | {
| |
| 540 | system_call_2(383, (uint64_t)(uint32_t)_dev, (uint64_t)(uint32_t)_temp); | |
| 541 | //temp 0 = cpu temp 1 = rsx | |
| 542 | } | |
| 543 | ||
| 544 | ||
| 545 | void showtempvoid() | |
| 546 | {
| |
| 547 | ||
| 548 | ||
| 549 | get_temperature(0, &cpu_temp_c); | |
| 550 | get_temperature(1, &rsx_temp_c); | |
| 551 | cpu_temp_c = cpu_temp_c >> 24; | |
| 552 | rsx_temp_c = rsx_temp_c >> 24; | |
| 553 | ||
| 554 | } | |
| 555 | ||
| 556 | NETWORK::JOIN_ANY_SESSION(4) | |
| 557 | invoke<Void>(0x3C3E2AB6, p0); <- For Sessions | |
| 558 | ||
| 559 | ||
| 560 | void fakeHospitalBills(int playerId, int amount) | |
| 561 | {
| |
| 562 | int Args[3]; | |
| 563 | Args[0] = 312; | |
| 564 | Args[1] = PLAYER::PLAYER_ID(); | |
| 565 | Args[2] = amount; | |
| 566 | TriggerScriptEvent(Args, 3, playerId); | |
| 567 | } | |
| 568 | // That doesnt take any money off user :P | |
| 569 | void ForcePickUpHeli() | |
| 570 | {
| |
| 571 | int Args[3]; | |
| 572 | Args[0] = 37; | |
| 573 | Args[1] = selectedPlayer; | |
| 574 | Args[2] = 1; | |
| 575 | TriggerScriptEvent(Args, 3, selectedPlayer); | |
| 576 | } | |
| 577 | ///Sometimes doesn't want to work :( | |
| 578 | ||
| 579 | void ForceAirStrike() | |
| 580 | {
| |
| 581 | int Args[3]; | |
| 582 | Args[0] = 3; | |
| 583 | Args[1] = selectedPlayer; | |
| 584 | Args[2] = 0x1B; | |
| 585 | TriggerScriptEvent(Args, 3, selectedPlayer); | |
| 586 | } | |
| 587 | //gives Selected user flare :? | |
| 588 | void ForceToBackUpHeliCopter() | |
| 589 | {
| |
| 590 | int Args[3]; | |
| 591 | Args[0] = 3; | |
| 592 | Args[1] = selectedPlayer; | |
| 593 | Args[2] = 0x1A; | |
| 594 | TriggerScriptEvent(Args, 3, selectedPlayer); | |
| 595 | } | |
| 596 | //Backup Heli ? | |
| 597 | ||
| 598 | void placebounty(){
| |
| 599 | int Var0[20]; | |
| 600 | Var0[0] = 58; | |
| 601 | Var0[1] = PLAYER_ID(); | |
| 602 | Var0[2] = PLAYER_PED_ID(); // SetGlobal(2410912 + 4054, 0, 1) | |
| 603 | Var0[3] = PLAYER_PED_ID() + 1; //player | |
| 604 | Var0[4] = 1; | |
| 605 | Var0[5] = 2; | |
| 606 | Var0[6] = 3; | |
| 607 | Var0[7] = 4; | |
| 608 | Var0[8] = 5; //player | |
| 609 | Var0[9] = 6; | |
| 610 | Var0[10] = 7; | |
| 611 | Var0[11] = 8; | |
| 612 | Var0[12] = PLAYER_PED_ID() + 2; //or | |
| 613 | Var0[13] = 1; | |
| 614 | Var0[14] = 2; | |
| 615 | Var0[15] = 3; | |
| 616 | Var0[16] = 4; | |
| 617 | Var0[17] = 13380000; | |
| 618 | Var0[18] = 5; | |
| 619 | Var0[19] = 1; | |
| 620 | GAMEPLAY::SET_BIT(&Var0[16], 0); | |
| 621 | TriggerScriptEvent(Var0, 20, PLAYER_PED_ID()); | |
| 622 | } | |
| 623 | //indeed works only on self and only with 25k not more , idk why but as bountys are removed i find this one interesting | |
| 624 | ||
| 625 | ||
| 626 | ScriptArg args[5]; | |
| 627 | args[0].i = 219; | |
| 628 | args[1].i = 40; | |
| 629 | args[2].i = amount; | |
| 630 | args[3].i = -1; | |
| 631 | args[4].i = 1; | |
| 632 | unsigned int bits = (1 << player); | |
| 633 | PlayerMods::eventCreator::callScriptEvent(args, 5, bits); | |
| 634 | //PPl call this direct deposit ? | |
| 635 | ||
| 636 | ||
| 637 | 1581952 | |
| 638 | Global to spoof rank | |
| 639 | ||
| 640 | ||
| 641 | ||
| 642 | //Mudar Clima pros players | |
| 643 | ||
| 644 | //ENUMS | |
| 645 | char * weather[] = { "Extra Sunny", "Clear", "Clouds", "Smog", "Foggy", "Thunder", "Overcast", "Snowlight", "Snow", "Blizzard", "Neutral" };
| |
| 646 | int weathers; | |
| 647 | char * weathero[] = { "EXTRASUNNY", "CLEAR", "CLOUDS", "SMOG", "FOGGY", "THUNDER", "OVERCAST", "SNOWLIGHT", "SNOW", "BLIZZARD", "NEUTRAL" };
| |
| 648 | ||
| 649 | ||
| 650 | // NO CASE | |
| 651 | ||
| 652 | for (int i = 0; i < 18; i++) | |
| 653 | ||
| 654 | {
| |
| 655 | if (!(cstrcmp(PLAYER::GET_PLAYER_NAME(i), "-")) && i != PLAYER::PLAYER_ID()) | |
| 656 | ||
| 657 | {
| |
| 658 | ||
| 659 | ||
| 660 | bool_weather = !bool_weather;} | |
| 661 | ||
| 662 | } | |
| 663 | ||
| 664 | ||
| 665 | //LOOP | |
| 666 | if (bool_weather) {
| |
| 667 | setWeather(weathero[weathers]);//This is for change weather to others(Ammmmzzzinng) | |
| 668 | ||
| 669 | ||
| 670 | } | |
| 671 | ||
| 672 | ||
| 673 | //VOID | |
| 674 | void setWeather(char *weather) | |
| 675 | {
| |
| 676 | *(unsigned int*)0x10953F8 = 0x60000000; | |
| 677 | *(unsigned int*)0x10953A4 = 0x60000000; | |
| 678 | *(unsigned int*)0x3D3EB0 = 0x60000000; | |
| 679 | GAMEPLAY::SET_WEATHER_TYPE_NOW_PERSIST(weathero[weathers]); | |
| 680 | } | |
| 681 | ||
| 682 | ||
| 683 | //-------------------------------------------------------------------- | |
| 684 | addTitle("Water Editor");
| |
| 685 | addIntOption("Water Height", &WaterHeight, -1000, 1000, true);
| |
| 686 | addIntOption("Ripple Density", &WaterDensity, -1000, 1000, true);
| |
| 687 | addIntOption("Foam Amount", &FoamAmount, -1000, 1000, true);
| |
| 688 | switch (getOption()) {
| |
| 689 | case 1: | |
| 690 | WriteFloat(WaterHeightAddress, WaterHeight); | |
| 691 | break; | |
| 692 | case 2: | |
| 693 | WriteFloat(WaterDensityAddress, WaterDensity); | |
| 694 | break; | |
| 695 | case 3: | |
| 696 | WriteFloat(FoamAmountAddress, FoamAmount); | |
| 697 | break; | |
| 698 | } | |
| 699 | break; | |
| 700 | ||
| 701 | ||
| 702 | float floatArray[100]; | |
| 703 | float* ReadFloat(int address, int length) | |
| 704 | {
| |
| 705 | for (int i = 0; i < length; i++) | |
| 706 | {
| |
| 707 | floatArray[i] = *(float*)(address + (i * 0x04)); | |
| 708 | } | |
| 709 | return floatArray; | |
| 710 | } | |
| 711 | float WriteFloats(uint Start, float Values) | |
| 712 | {
| |
| 713 | for (int i = 0; i < Values; i++) | |
| 714 | {
| |
| 715 | floatArray[i] = *(float*)(Start + (i * 0x04)); | |
| 716 | } | |
| 717 | } | |
| 718 | ||
| 719 | //========================= | |
| 720 | ||
| 721 | //PROTECOES | |
| 722 | ||
| 723 | addTitle("Modder Protection");
| |
| 724 | addToggle("Non Host Kick", &bool_eventp[0]);
| |
| 725 | addToggle("Fake Leave", &bool_eventp[1]);
| |
| 726 | addToggle("Rank", &bool_eventp[3]);
| |
| 727 | addToggle("Give Money", &bool_eventp[4]);
| |
| 728 | addToggle("Apartment Invite", &bool_eventp[5]);
| |
| 729 | addToggle("Game Invite", &bool_eventp[6]);
| |
| 730 | addToggle("Job Invite", &bool_eventp[7]);
| |
| 731 | addToggle("Time", &bool_eventp[16]);
| |
| 732 | addToggle("Weather", &bool_eventp[17]);
| |
| 733 | addToggle("Clear Task", &bool_protection[3]);
| |
| 734 | addToggle("Take / Give Weapons", &bool_protection[4]);
| |
| 735 | addToggle("Animation / Teleport", &bool_protection[5]);
| |
| 736 | addToggle("Alter Wanted Level", &bool_protection[6]);
| |
| 737 | addToggle("Particle FX", &bool_protection[7]);
| |
| 738 | addToggle("Admin Kick Protection", &AK);
| |
| 739 | addToggle("Fire Protection", &bool_protection[8]);
| |
| 740 | addToggle("Weapon Protection", &bool_protection[9]);
| |
| 741 | addToggle("Clone Protection", &CloneProtection);
| |
| 742 | addToggle("Disable Account & Stat Protection", &bool_protection[20]);
| |
| 743 | switch (getOption()) {
| |
| 744 | case 1: | |
| 745 | *(int*)0x12D1A50 = bool_eventp[0] ? 0x4E800020 : 0x7C0802A6; | |
| 746 | *(int*)0x12C96B4 = bool_eventp[0] ? 0x4E800020 : 0x7C0802A6; | |
| 747 | *(int*)0x12D1E28 = bool_eventp[0] ? 0x4E800020 : 0x7C0802A6; | |
| 748 | *(int*)0x172D73C = bool_eventp[0] ? 0x4E800020 : 0x7C0802A6; | |
| 749 | break; | |
| 750 | case 2: | |
| 751 | *(int*)0x12C2988 = bool_eventp[1] ? 0x4E800020 : 0x7C0802A6; | |
| 752 | break; | |
| 753 | case 3: | |
| 754 | *(int*)0x12D1E28 = bool_eventp[3] ? 0x4E800020 : 0x7C0802A6; | |
| 755 | break; | |
| 756 | case 4: | |
| 757 | *(int*)0x12CB55C = bool_eventp[4] ? 0x4E800020 : 0x7C0802A6; | |
| 758 | *(int*)0x12C1AF4 = bool_eventp[4] ? 0x4E800020 : 0x7C0802A6; | |
| 759 | *(int*)0x12D2104 = bool_eventp[4] ? 0x4E800020 : 0x7C0802A6; | |
| 760 | break; | |
| 761 | case 5: | |
| 762 | *(int*)0x12C3C74 = bool_eventp[5] ? 0x4E800020 : 0x7C0802A6; | |
| 763 | *(int*)0x12CB198 = bool_eventp[5] ? 0x4E800020 : 0x7C0802A6; | |
| 764 | *(int*)0x12CB70C = bool_eventp[5] ? 0x4E800020 : 0x7C0802A6; | |
| 765 | *(int*)0x12CB930 = bool_eventp[5] ? 0x4E800020 : 0x7C0802A6; | |
| 766 | break; | |
| 767 | case 6: | |
| 768 | *(int*)0x12C8D60 = bool_eventp[6] ? 0x4E800020 : 0x7C0802A6; | |
| 769 | break; | |
| 770 | case 7: | |
| 771 | *(int*)0x12C5638 = bool_eventp[7] ? 0x4E800020 : 0x7C0802A6; | |
| 772 | *(int*)0x12D5098 = bool_eventp[7] ? 0x4E800020 : 0x7C0802A6; | |
| 773 | *(int*)0x12BD36C = bool_eventp[7] ? 0x4E800020 : 0x7C0802A6; | |
| 774 | break; | |
| 775 | case 8: | |
| 776 | *(int*)0x12BDFCC = bool_eventp[16] ? 0x4E800020 : 0x7C0802A6; | |
| 777 | break; | |
| 778 | case 9: | |
| 779 | *(int*)0x12D5098 = bool_eventp[17] ? 0x4E800020 : 0x7C0802A6; | |
| 780 | break; | |
| 781 | case 10: | |
| 782 | *(int*)0x12CC958 = bool_protection[3] ? 0x4E800020 : 0x7C0802A6; | |
| 783 | break; | |
| 784 | case 11: | |
| 785 | *(int*)0x12D0584 = bool_protection[4] ? 0x4E800020 : 0x7C0802A6; | |
| 786 | *(int*)0x12C3ACC = bool_protection[4] ? 0x4E800020 : 0x7C0802A6; | |
| 787 | *(int*)0x12C37EC = bool_protection[4] ? 0x4E800020 : 0x7C0802A6; | |
| 788 | if (!bool_protection[4]) | |
| 789 | {
| |
| 790 | AimProtectWeapon = false; | |
| 791 | } | |
| 792 | else | |
| 793 | {
| |
| 794 | AimProtectWeapon = true; | |
| 795 | } | |
| 796 | break; | |
| 797 | case 12: | |
| 798 | *(int*)0x12C3C74 = bool_protection[5] ? 0x4E800020 : 0x7C0802A6; | |
| 799 | *(int*)0x12CB198 = bool_protection[5] ? 0x4E800020 : 0x7C0802A6; | |
| 800 | *(int*)0x12CB70C = bool_protection[5] ? 0x4E800020 : 0x7C0802A6; | |
| 801 | *(int*)0x12CB930 = bool_protection[5] ? 0x4E800020 : 0x7C0802A6; | |
| 802 | break; | |
| 803 | case 13: | |
| 804 | *(int*)0x12C78DC = bool_protection[6] ? 0x4E800020 : 0x7C0802A6; | |
| 805 | break; | |
| 806 | case 14: | |
| 807 | *(int*)0x12C5638 = bool_protection[7] ? 0x4E800020 : 0x7C0802A6; | |
| 808 | *(int*)0x12D5098 = bool_protection[7] ? 0x4E800020 : 0x7C0802A6; | |
| 809 | *(int*)0x12BD36C = bool_protection[7] ? 0x4E800020 : 0x7C0802A6; | |
| 810 | break; | |
| 811 | case 16: | |
| 812 | *(int*)0x12C4A44 = bool_protection[8] ? 0x4E800020 : 0x7C0802A6; | |
| 813 | *(int*)0x12C5638 = bool_protection[8] ? 0x4E800020 : 0x7C0802A6; | |
| 814 | *(int*)0x12C69F0 = bool_protection[8] ? 0x4E800020 : 0x7C0802A6; | |
| 815 | *(int*)0x12C0128 = bool_protection[8] ? 0x4E800020 : 0x7C0802A6; | |
| 816 | break; | |
| 817 | case 17: | |
| 818 | *(int*)0x12C3C74 = bool_protection[9] ? 0x4E800020 : 0x7C0802A6; | |
| 819 | *(int*)0x12C3ACC = bool_protection[9] ? 0x4E800020 : 0x7C0802A6; | |
| 820 | *(int*)0x12C37EC = bool_protection[9] ? 0x4E800020 : 0x7C0802A6; | |
| 821 | break; | |
| 822 | case 19: | |
| 823 | *(int*)0x12D137C = bool_protection[20] ? 0x4E800020 : 0x7C0802A6; | |
| 824 | break; | |
| 825 | } | |
| 826 | break; | |
| 827 | ||
| 828 | //-------------------------------------------------------------------- | |
| 829 | //-------------------------------------------------------------------- | |
| 830 | //-------------------------------------------------------------------- | |
| 831 | namespace PlayerMods | |
| 832 | {
| |
| 833 | namespace eventCreator | |
| 834 | {
| |
| 835 | void callScriptEvent(ScriptArg *args, int argsCount, unsigned int playerBits) | |
| 836 | {
| |
| 837 | SCRIPT::TRIGGER_SCRIPT_EVENT(1, args, argsCount, playerBits); | |
| 838 | } | |
| 839 | }; | |
| 840 | }; | |
| 841 | ||
| 842 | bool globalStatVersionType = 1;//this decides whether I use the first 3 (0) or the last 3 (1) | |
| 843 | ||
| 844 | void setupDefaultStatEvent(int player, ScriptArg *args) {
| |
| 845 | args[0].i = 150; | |
| 846 | args[1].i = player; | |
| 847 | args[2].i = player;//unknown value | |
| 848 | args[3].i = 88;//int | |
| 849 | args[4].i = 34;//bool | |
| 850 | args[5].i = 1;//float | |
| 851 | args[6].i = 2949;//int | |
| 852 | args[7].i = 228;//bool | |
| 853 | args[8].i = 228;//float | |
| 854 | args[9].i = 0;//value to set for the int ones. This is added on to the previous value set for the stat | |
| 855 | args[10].i = 0;//value to set for the float ones. This is added on to the previous value set for the stat | |
| 856 | args[11].i = 0;//value to set for the bool ones | |
| 857 | } | |
| 858 | ||
| 859 | enum {
| |
| 860 | EVENT_STAT_INT_0 = 3, | |
| 861 | EVENT_STAT_INT_1 = 6, | |
| 862 | EVENT_STAT_BOOL_0 = 4, | |
| 863 | EVENT_STAT_BOOL_1 = 7, | |
| 864 | EVENT_STAT_FLOAT_0 = 5, | |
| 865 | EVENT_STAT_FLOAT_1 = 8, | |
| 866 | EVENT_STAT_VALUE_INT = 9, | |
| 867 | EVENT_STAT_VALUE_FLOAT = 10, | |
| 868 | EVENT_STAT_VALUE_BOOL = 11 | |
| 869 | }; | |
| 870 | ||
| 871 | void setPlayerStatInt(int player, int statIndex, int statValue, bool type = globalStatVersionType) | |
| 872 | {
| |
| 873 | statValue = 0xFFFFFFFF - statValue + 1; | |
| 874 | ScriptArg args[12]; | |
| 875 | setupDefaultStatEvent(player, args); | |
| 876 | printf("%i\n", args[6].i);
| |
| 877 | args[EVENT_STAT_VALUE_INT].ui = *(unsigned int*)(&statValue); | |
| 878 | args[EVENT_STAT_VALUE_BOOL].i = statValue; | |
| 879 | args[EVENT_STAT_VALUE_FLOAT].f = statValue; | |
| 880 | if (type == 0) | |
| 881 | args[EVENT_STAT_INT_0].i = statIndex; | |
| 882 | else | |
| 883 | args[EVENT_STAT_INT_1].i = statIndex; | |
| 884 | unsigned int bits = (1 << player); | |
| 885 | PlayerMods::eventCreator::callScriptEvent(args, 12, bits); | |
| 886 | } | |
| 887 | ||
| 888 | void setPlayerStatBool(int player, int statIndex, bool statValue, bool type = globalStatVersionType) {
| |
| 889 | ScriptArg args[12]; | |
| 890 | setupDefaultStatEvent(player, args); | |
| 891 | args[EVENT_STAT_VALUE_INT].i = *(unsigned int*)(&statValue); | |
| 892 | args[EVENT_STAT_VALUE_BOOL].i = statValue; | |
| 893 | args[EVENT_STAT_VALUE_FLOAT].f = statValue; | |
| 894 | if (type == 0) | |
| 895 | args[EVENT_STAT_BOOL_0].i = statIndex; | |
| 896 | else | |
| 897 | args[EVENT_STAT_BOOL_1].i = statIndex; | |
| 898 | unsigned int bits = (1 << player); | |
| 899 | PlayerMods::eventCreator::callScriptEvent(args, 12, bits); | |
| 900 | } | |
| 901 | ||
| 902 | void sendCash(int player, int amount) {
| |
| 903 | ScriptArg args[5]; | |
| 904 | args[0].i = 219;//0xDB | |
| 905 | args[1].i = 40;//player... I think you set to 40 to make it work post-patch. I haven't tested | |
| 906 | args[2].i = amount; | |
| 907 | args[3].i = -1; | |
| 908 | args[4].i = 1; | |
| 909 | unsigned int bits = (1 << player); | |
| 910 | PlayerMods::eventCreator::callScriptEvent(args, 5, bits); | |
| 911 | } | |
| 912 | ||
| 913 | //FUNCOES | |
| 914 | ||
| 915 | addOption("Player Unlock Heist Vehicles");
| |
| 916 | addOption("Player Redesign Character");
| |
| 917 | addOption("Give 1,000,000$ Cash");
| |
| 918 | addOption("Player Unlock All Heist Trophies");
| |
| 919 | addOption("Player Unlock All Hair Cuts");
| |
| 920 | addOption("Player Unlock All Tattoos");
| |
| 921 | addOption("Player Remove Badsport");
| |
| 922 | addOption("Player Give Badsport");
| |
| 923 | addOption("Player Enable Roosevelt");
| |
| 924 | addOption("Player Bypass Vehicle Sell Time");
| |
| 925 | addOption("Give Modded Rolls");
| |
| 926 | ||
| 927 | ||
| 928 | case 1: | |
| 929 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CHAR_FM_VEHICLE_1_UNLCK"), -1, 1), 1);
| |
| 930 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CHAR_FM_VEHICLE_2_UNLCK"), -1, 1), 1); break;
| |
| 931 | case 2: setPlayerStatBool(selectedPlayer, STATS::STAT_SET_BOOL(GAMEPLAY::GET_HASH_KEY("MP0_FM_CHANGECHAR_ASKED"), 0, 1), 1); break;
| |
| 932 | case 3: sendCash(selectedPlayer, 1000000); break; | |
| 933 | case 4: setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MPPLY_HEIST_ACH_TRACKER"), -1, 1), 1); break;
| |
| 934 | case 5: | |
| 935 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR"), -1, 1), 1);
| |
| 936 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_1"), -1, 1), 1);
| |
| 937 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_2"), -1, 1), 1);
| |
| 938 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_3"), -1, 1), 1);
| |
| 939 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_4"), -1, 1), 1);
| |
| 940 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_5"), -1, 1), 1);
| |
| 941 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_6"), -1, 1), 1);
| |
| 942 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_CLTHS_AVAILABLE_HAIR_7"), -1, 1), 1); break;
| |
| 943 | case 6: | |
| 944 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FM_DM_WINS"), 50, 1), 1);
| |
| 945 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FM_TDM_MVP"), 50, 1), 1);
| |
| 946 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FM_DM_TOTALKILLS"), 500, 1), 1);
| |
| 947 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_BOOL(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMATTGANGHQ"), 1, 1), 1);
| |
| 948 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMBBETWIN"), 50000, 1), 1);
| |
| 949 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMWINEVERYGAMEMODE"), 1, 1), 1);
| |
| 950 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMRACEWORLDRECHOLDER"), 1, 1), 1);
| |
| 951 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMFULLYMODDEDCAR"), 1, 1), 1);
| |
| 952 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMMOSTKILLSSURVIVE"), 1, 1), 1);
| |
| 953 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMKILL3ANDWINGTARACE"), 1, 1), 1);
| |
| 954 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMKILLSTREAKSDM"), 1, 1), 1);
| |
| 955 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMKILLBOUNTY"), 25, 1), 1);
| |
| 956 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_LAPDANCES"), 25, 1), 1);
| |
| 957 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_CAR_BOMBS_ENEMY_KILLS"), 25, 1), 1);
| |
| 958 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_SECURITY_CARS_ROBBED"), 25, 1), 1);
| |
| 959 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_HOLD_UP_SHOPS"), 20, 1), 1);
| |
| 960 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_FMREVENGEKILLSDM"), 50, 1), 1);
| |
| 961 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_AWD_RACES_WON"), 50, 1), 1);
| |
| 962 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_PLAYER_HEADSHOTS"), 500, 1), 1);
| |
| 963 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_DB_PLAYER_KILLS"), 1000, 1), 1); break;
| |
| 964 | case 7: | |
| 965 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_BAD_SPORT_BITSET"), 0, 0), 1);
| |
| 966 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_WAS_I_BAD_SPORT"), 0, 0), 1);
| |
| 967 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_OVERALL_BADSPORT"), 0, 0), 1);
| |
| 968 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_CHAR_IS_BADSPORT"), 0, 0), 1);
| |
| 969 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_BECAME_BADSPORT_NUM"), 0, 0), 1);
| |
| 970 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_DESTROYED_PVEHICLES"), 0, 0), 1); break;
| |
| 971 | case 8: | |
| 972 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_BAD_SPORT_BITSET"), 1, 1), 1);
| |
| 973 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_WAS_I_BAD_SPORT"), 1, 1), 1);
| |
| 974 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_OVERALL_BADSPORT"), 1, 1), 1);
| |
| 975 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_CHAR_IS_BADSPORT"), 1, 1), 1);
| |
| 976 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_BECAME_BADSPORT_NUM"), 1, 1), 1);
| |
| 977 | setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_MPPLY_DESTROYED_PVEHICLES"), 1, 1), 1); break;
| |
| 978 | case 9: setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MPPLY_VEHICLE_ID_ADMIN_WEB"), 117401876, 1), 1); break;
| |
| 979 | case 10: setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MPPLY_VEHICLE_SELL_TIME"), 0, 1), 1); break;
| |
| 980 | case 11: setPlayerStatInt(selectedPlayer, STATS::STAT_SET_INT(GAMEPLAY::GET_HASH_KEY("MP0_SHOOTING_ABILITY"), 1000, true), 1); break;
| |
| 981 | } | |
| 982 | ||
| 983 | //========================================================= | |
| 984 | //========================================================= | |
| 985 | //========================================================= | |
| 986 | // Funcoes trolagem players | |
| 987 | ||
| 988 | addOption("Non Host KICK");//case 1
| |
| 989 | addOption("De-Rank(SPAM)");//case 2
| |
| 990 | addOption("Set Passive on");//case 3
| |
| 991 | addOption("Set Passive Off");//case 4
| |
| 992 | addOption("Fake Leave");//case 5
| |
| 993 | addOption("Force Into Golf");//case 6
| |
| 994 | addOption("Reset View");//case 7
| |
| 995 | addOption("Remove Wanted Level");//case 4
| |
| 996 | ||
| 997 | case 1: kickPlayerNonHost(selectedPlayer); break; | |
| 998 | case 2: givePlayerRP(selectedPlayer, -200000); break; | |
| 999 | case 3: setPlayerPassiveModeOn(selectedPlayer); break; | |
| 1000 | case 4: setPlayerPassiveModeOff(selectedPlayer); break; | |
| 1001 | case 5: makePlayerFakeLeave(selectedPlayer); break; | |
| 1002 | case 6: teleportPlayerIntoGolfEvent(selectedPlayer); break; | |
| 1003 | case 7: resetPlayerView(selectedPlayer); break; | |
| 1004 | ||
| 1005 | ||
| 1006 | ||
| 1007 | namespace PlayerMods | |
| 1008 | {
| |
| 1009 | namespace eventCreator | |
| 1010 | {
| |
| 1011 | void callScriptEvent(ScriptArg *args, int argsCount, unsigned int playerBits) | |
| 1012 | {
| |
| 1013 | SCRIPT::TRIGGER_SCRIPT_EVENT(1, args, argsCount, playerBits); | |
| 1014 | } | |
| 1015 | }; | |
| 1016 | }; | |
| 1017 | ||
| 1018 | void removePlayerWantedLevel(int player) {
| |
| 1019 | ScriptArg args[2]; | |
| 1020 | args[0].i = 356; | |
| 1021 | args[1].i = player; | |
| 1022 | unsigned int bits = (1 << player); | |
| 1023 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1024 | } | |
| 1025 | ||
| 1026 | void resetPlayerView(int player) {
| |
| 1027 | ScriptArg args[3]; | |
| 1028 | args[0].i = 0x2; | |
| 1029 | args[1].i = player; | |
| 1030 | args[2].i = 0x2e;//46 | |
| 1031 | unsigned int bits = (1 << player); | |
| 1032 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1033 | } | |
| 1034 | ||
| 1035 | void teleportPlayerIntoGolfEvent(int player) {//Basicallly Forced
| |
| 1036 | ScriptArg args[3]; | |
| 1037 | args[0].i = 0x3; | |
| 1038 | args[1].i = player; | |
| 1039 | args[2].i = 0x37; | |
| 1040 | unsigned int bits = (1 << player); | |
| 1041 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1042 | } | |
| 1043 | ||
| 1044 | void kickPlayerNonHost(int player) {//NON HOSt KICK HECK YEAH
| |
| 1045 | //0x00D003DFB4+10*0x4 = args | |
| 1046 | unsigned int playerBit = (1 << player); | |
| 1047 | //0x2 0x7 0x35 and 0xA was me so idk... | |
| 1048 | ScriptArg args[3] = { 0x2, player, 0x35 };//0x35 is the speccial one I guess
| |
| 1049 | ||
| 1050 | //first arg is always 1 | |
| 1051 | //last arg is always the bit thing | |
| 1052 | //second arg meh | |
| 1053 | //third arg is the size of the data | |
| 1054 | SCRIPT::TRIGGER_SCRIPT_EVENT(1, args, 3, playerBit); | |
| 1055 | } | |
| 1056 | ||
| 1057 | void givePlayerRP(int player, int amount, int unk1 = -1, int unk2 = 1) | |
| 1058 | {
| |
| 1059 | ScriptArg args[5]; | |
| 1060 | args[0].i = 0xD8;//216 | |
| 1061 | args[1].i = player; | |
| 1062 | args[2].i = 0xffffffff - amount + 1;//46 | |
| 1063 | args[3].i = 0;//-1 0 is partner, else is gen | |
| 1064 | args[4].i = 0;//unk2;//1 | |
| 1065 | unsigned int bits = (1 << player); | |
| 1066 | PlayerMods::eventCreator::callScriptEvent(args, 5, bits); | |
| 1067 | } | |
| 1068 | ||
| 1069 | void setPlayerPassiveModeOn(int player) {
| |
| 1070 | ScriptArg args[3]; | |
| 1071 | args[0].i = 0x104; | |
| 1072 | args[1].i = player; | |
| 1073 | args[2].i = 0; | |
| 1074 | unsigned int bits = (1 << player); | |
| 1075 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1076 | } | |
| 1077 | void setPlayerPassiveModeOff(int player) {
| |
| 1078 | ScriptArg args[3]; | |
| 1079 | args[0].i = 0x118; | |
| 1080 | args[1].i = player; | |
| 1081 | args[2].i = 0; | |
| 1082 | unsigned int bits = (1 << player); | |
| 1083 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1084 | } | |
| 1085 | ||
| 1086 | void makePlayerFakeLeave(int player) | |
| 1087 | {
| |
| 1088 | ScriptArg args[3]; | |
| 1089 | args[0].i = 0x2; | |
| 1090 | args[1].i = player; | |
| 1091 | args[2].i = 0x34;//46 | |
| 1092 | unsigned int bits = (1 << player); | |
| 1093 | PlayerMods::eventCreator::callScriptEvent(args, 3, bits); | |
| 1094 | } | |
| 1095 | ||
| 1096 | ||
| 1097 | ||
| 1098 | //------------------ | |
| 1099 | int int_NetworkOptions[60]; | |
| 1100 | ||
| 1101 | case 10://FORCAR O TUTORIAL | |
| 1102 | int Args1[4]; | |
| 1103 | Args1[0] = 3;//0x3 | |
| 1104 | Args1[1] = int_NetworkOptions[0]; | |
| 1105 | Args1[2] = 20; | |
| 1106 | Args1[3] = -1; | |
| 1107 | SCRIPT::TriggerScriptEvent(Args1, 4, int_NetworkOptions[0]); | |
| 1108 | ||
| 1109 | //----------------- | |
| 1110 | ||
| 1111 | //ADD DINHEIRO NO BANCO | |
| 1112 | ||
| 1113 | int Args6[5]; | |
| 1114 | Args6[0] = 219;//0xDB | |
| 1115 | Args6[1] = 40; | |
| 1116 | Args6[2] = 100000000000; | |
| 1117 | Args6[3] = -1; | |
| 1118 | Args6[4] = 1; | |
| 1119 | SCRIPT::TriggerScriptEvent(Args6, 5, selectedPlayer); | |
| 1120 | ||
| 1121 | //-------------------------------------------------------------- | |
| 1122 | //-------------------------------------------------------------- | |
| 1123 | //-------------------------------------------------------------- | |
| 1124 | //--------------------NOVOS AVISOS DE MODDERS------------------- | |
| 1125 | //-------------------------------------------------------------- | |
| 1126 | //-------------------------------------------------------------- | |
| 1127 | ||
| 1128 | //Protecoes | |
| 1129 | ||
| 1130 | ||
| 1131 | bool moneyProtection = true; | |
| 1132 | bool nonhostkickprotection = true; | |
| 1133 | bool fakeleavelobbyprotection = true; | |
| 1134 | bool resetviewprotection = true; | |
| 1135 | bool joinjobprotection = true; | |
| 1136 | bool blockappart = true; | |
| 1137 | ||
| 1138 | bool removewantedprot = false; | |
| 1139 | bool passiveodeeeoff = false; | |
| 1140 | bool passiveodeeeon = false; | |
| 1141 | bool activateBroadcastAppprot = false; | |
| 1142 | bool messageprotection = false; | |
| 1143 | bool sondprot1 = false; | |
| 1144 | bool sondprot0 = false; | |
| 1145 | bool deactivateBroadcastAppprot = false; | |
| 1146 | bool onevonedeathmatchInviteprot = false; | |
| 1147 | bool tpArm = false; | |
| 1148 | bool tpdart = false; | |
| 1149 | bool whaterrrr = false; | |
| 1150 | bool tpgolf = false; | |
| 1151 | ||
| 1152 | ||
| 1153 | ||
| 1154 | char scriptEventDialogText[100]; | |
| 1155 | unsigned int scriptEventDetour(unsigned int r3, unsigned int senderData, unsigned int recieverData, unsigned int r6, unsigned int r7, unsigned int r8, unsigned int r9) {
| |
| 1156 | int addressOfArgs = r3 + 10 * 0x4; | |
| 1157 | char *senderName = (char*)(*(int*)(senderData + 0x78) + 0x10); | |
| 1158 | ||
| 1159 | if (*(int*)addressOfArgs == 0x2 && *(int*)(addressOfArgs + 0x8) == 0x35) | |
| 1160 | if (nonhostkickprotection) | |
| 1161 | {
| |
| 1162 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Kick U ~r~[ NONHOST KICK ]!", senderName); | |
| 1163 | PRINT(scriptEventDialogText, 5000); | |
| 1164 | *(int*)addressOfArgs = 0; | |
| 1165 | } | |
| 1166 | ||
| 1167 | if (*(int*)addressOfArgs == 0x2/* && *(int*)(addressOfArgs+0x4) == PLAYER::PLAYER_ID()*/ && *(int*)(addressOfArgs + 0x8) == 0x34) | |
| 1168 | {
| |
| 1169 | if (fakeleavelobbyprotection) | |
| 1170 | {
| |
| 1171 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Make U Fake Leave Lobby!", senderName); | |
| 1172 | PRINT(scriptEventDialogText, 5000); | |
| 1173 | *(int*)addressOfArgs = 0; | |
| 1174 | } | |
| 1175 | } | |
| 1176 | ||
| 1177 | if (*(int*)addressOfArgs == 0x2/* && *(int*)(addressOfArgs+0x4) == PLAYER::PLAYER_ID()*/ && *(int*)(addressOfArgs + 0x8) == 0x2e) {
| |
| 1178 | if (resetviewprotection) | |
| 1179 | {
| |
| 1180 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Reset Your View!", senderName); | |
| 1181 | PRINT(scriptEventDialogText, 5000); | |
| 1182 | *(int*)addressOfArgs = 0;} | |
| 1183 | } | |
| 1184 | ||
| 1185 | if (*(int*)addressOfArgs == 0xD8) | |
| 1186 | {
| |
| 1187 | if (antigiverp) | |
| 1188 | {
| |
| 1189 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Give/Remove %i RP!", senderName, *(int*)(addressOfArgs + 0x8)); | |
| 1190 | PRINT(scriptEventDialogText, 5000); | |
| 1191 | *(int*)addressOfArgs = 0; | |
| 1192 | } | |
| 1193 | } | |
| 1194 | ||
| 1195 | if (*(int*)addressOfArgs == 0xDB) | |
| 1196 | {
| |
| 1197 | if (moneyProtection) | |
| 1198 | {
| |
| 1199 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Give/Remove Money!", senderName); | |
| 1200 | PRINT(scriptEventDialogText, 2000); | |
| 1201 | *(int*)addressOfArgs = 0; | |
| 1202 | } | |
| 1203 | else | |
| 1204 | ||
| 1205 | {
| |
| 1206 | ||
| 1207 | } | |
| 1208 | } | |
| 1209 | ||
| 1210 | if (*(int*)addressOfArgs == 0x23) {
| |
| 1211 | if (activateBroadcastAppprot) {
| |
| 1212 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Activate Broadcast App!", senderName); | |
| 1213 | PRINT(scriptEventDialogText, 2000); | |
| 1214 | *(int*)addressOfArgs = 0; | |
| 1215 | } | |
| 1216 | else {
| |
| 1217 | ||
| 1218 | } | |
| 1219 | } | |
| 1220 | ||
| 1221 | ||
| 1222 | if (*(int*)addressOfArgs == 0x98) {
| |
| 1223 | if (messageprotection) | |
| 1224 | {
| |
| 1225 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Fake Join Job Message!", senderName); | |
| 1226 | PRINT(scriptEventDialogText, 5000); | |
| 1227 | *(int*)addressOfArgs = 0; | |
| 1228 | } | |
| 1229 | } | |
| 1230 | if (*(int*)addressOfArgs == 0x29) {
| |
| 1231 | if (onevonedeathmatchInviteprot) | |
| 1232 | {
| |
| 1233 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried One Vone DeathMatch Invite!", senderName); | |
| 1234 | PRINT(scriptEventDialogText, 5000); | |
| 1235 | *(int*)addressOfArgs = 0; | |
| 1236 | } | |
| 1237 | } | |
| 1238 | if (*(int*)addressOfArgs == 0x24) {
| |
| 1239 | if (deactivateBroadcastAppprot) | |
| 1240 | {
| |
| 1241 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried To Desactivate Broadcast App!", senderName); | |
| 1242 | PRINT(scriptEventDialogText, 5000); | |
| 1243 | *(int*)addressOfArgs = 0; | |
| 1244 | } | |
| 1245 | } | |
| 1246 | if (*(int*)addressOfArgs == 0x1E) {
| |
| 1247 | if (sondprot0) | |
| 1248 | {
| |
| 1249 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Play Sound Type 0!", senderName); | |
| 1250 | PRINT(scriptEventDialogText, 5000); | |
| 1251 | *(int*)addressOfArgs = 0; | |
| 1252 | } | |
| 1253 | } | |
| 1254 | if (*(int*)addressOfArgs == 0x1F) {
| |
| 1255 | if (sondprot1) | |
| 1256 | {
| |
| 1257 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Play Sound Type !", senderName); | |
| 1258 | PRINT(scriptEventDialogText, 5000); | |
| 1259 | *(int*)addressOfArgs = 0; | |
| 1260 | } | |
| 1261 | } | |
| 1262 | ||
| 1263 | if (*(int*)addressOfArgs == 0x164) {
| |
| 1264 | if (removewantedprot) | |
| 1265 | {
| |
| 1266 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Remove U Level!", senderName); | |
| 1267 | PRINT(scriptEventDialogText, 5000); | |
| 1268 | *(int*)addressOfArgs = 0; | |
| 1269 | } | |
| 1270 | } | |
| 1271 | ||
| 1272 | if (*(int*)addressOfArgs == 0x104) {
| |
| 1273 | if (passiveodeeeon) | |
| 1274 | {
| |
| 1275 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Set U In Passive Mode ON!", senderName); | |
| 1276 | PRINT(scriptEventDialogText, 5000); | |
| 1277 | *(int*)addressOfArgs = 0; | |
| 1278 | } | |
| 1279 | } | |
| 1280 | ||
| 1281 | if (*(int*)addressOfArgs == 0x118) {
| |
| 1282 | if (passiveodeeeoff) | |
| 1283 | {
| |
| 1284 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Set U In Passive Mode OFF!", senderName); | |
| 1285 | PRINT(scriptEventDialogText, 5000); | |
| 1286 | *(int*)addressOfArgs = 0; | |
| 1287 | } | |
| 1288 | } | |
| 1289 | ||
| 1290 | ||
| 1291 | ||
| 1292 | if (*(int*)addressOfArgs == 0x37) {
| |
| 1293 | if (tpgolf) | |
| 1294 | {
| |
| 1295 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Teleport Into Golf Event!", senderName); | |
| 1296 | PRINT(scriptEventDialogText, 5000); | |
| 1297 | *(int*)addressOfArgs = 0; | |
| 1298 | } | |
| 1299 | } | |
| 1300 | ||
| 1301 | if (*(int*)addressOfArgs == 0x35) {
| |
| 1302 | if (tpArm) | |
| 1303 | {
| |
| 1304 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Teleport Into Arm Wrestling Event!", senderName); | |
| 1305 | PRINT(scriptEventDialogText, 5000); | |
| 1306 | *(int*)addressOfArgs = 0; | |
| 1307 | } | |
| 1308 | } | |
| 1309 | ||
| 1310 | if (*(int*)addressOfArgs == 0x36) {
| |
| 1311 | if (tpdart) | |
| 1312 | {
| |
| 1313 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Teleport Into Darts Event!", senderName); | |
| 1314 | PRINT(scriptEventDialogText, 5000); | |
| 1315 | *(int*)addressOfArgs = 0; | |
| 1316 | } | |
| 1317 | } | |
| 1318 | ||
| 1319 | if (*(int*)addressOfArgs == 0x187198C) {
| |
| 1320 | if (whaterrrr) | |
| 1321 | {
| |
| 1322 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried Change Weather!", senderName); | |
| 1323 | PRINT(scriptEventDialogText, 5000); | |
| 1324 | *(int*)addressOfArgs = 0; | |
| 1325 | } | |
| 1326 | } | |
| 1327 | ||
| 1328 | if (*(int*)addressOfArgs == 0x16C) {
| |
| 1329 | if (blockappart) | |
| 1330 | {
| |
| 1331 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried to force you into their apartment!", senderName); | |
| 1332 | PRINT(scriptEventDialogText, 5000); | |
| 1333 | *(int*)addressOfArgs = 0; | |
| 1334 | } | |
| 1335 | } | |
| 1336 | ||
| 1337 | if (*(int*)addressOfArgs == 0x3) | |
| 1338 | {
| |
| 1339 | if (joinjobprotection) | |
| 1340 | {
| |
| 1341 | if (*(int*)(addressOfArgs + 0x8) == 0x37 || *(int*)(addressOfArgs + 0x8) == 0x36 || *(int*)(addressOfArgs + 0x8) == 0x35) | |
| 1342 | {
| |
| 1343 | ||
| 1344 | snprintf(scriptEventDialogText, sizeof(scriptEventDialogText), "%s Tried to force you to join a job!", senderName); | |
| 1345 | PRINT(scriptEventDialogText, 5000); | |
| 1346 | *(int*)addressOfArgs = 0; | |
| 1347 | } | |
| 1348 | } | |
| 1349 | } | |
| 1350 | return _0x0012C8D60(r3, senderData, recieverData, r6, r7, r8, r9); | |
| 1351 | } | |
| 1352 | ||
| 1353 | void setupScriptEventDetour() {
| |
| 1354 | *(int*)(0x1C6BD80) = *(int*)((int)&scriptEventDetour); | |
| 1355 | *(int*)((0x1C6BD80 + 0x4)) = *(int*)( (int)&scriptEventDetour + 0x4); | |
| 1356 | } | |
| 1357 | ||
| 1358 | //------------------------------------------------------------------------------- | |
| 1359 | ||
| 1360 | //Suspencao Carros | |
| 1361 | ||
| 1362 | bool bool_VehicleOptions[50]; | |
| 1363 | int int_VehicleOptions[50]; | |
| 1364 | float float_VehicleOptions[20]; | |
| 1365 | int GPMA_stub[2] = { 0xA552E0, 0x1C85330 };
| |
| 1366 | ||
| 1367 | void vehicle_SetSuspensionHeight(float height) | |
| 1368 | {
| |
| 1369 | if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0)) | |
| 1370 | {
| |
| 1371 | int veh = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0); | |
| 1372 | int address = get_ent_address(veh); | |
| 1373 | *(float*)(address + 0xCEC) = height; | |
| 1374 | } | |
| 1375 | } | |
| 1376 | ||
| 1377 | //---------------------- | |
| 1378 | ||
| 1379 | int GET_VEHICLE_ADD(int Index) | |
| 1380 | {
| |
| 1381 | int Tmp = *(int*)(0x208D1B8); | |
| 1382 | return *(int*)(Tmp + (Index * 0x04)) + 0x04; | |
| 1383 | } | |
| 1384 | void SET_HANDLING_MOD(int Index, int Mod, float Value) | |
| 1385 | {
| |
| 1386 | int Address = GET_VEHICLE_ADD(Index) + Mod; | |
| 1387 | *(float*)(Address) = Value; | |
| 1388 | } | |
| 1389 | ||
| 1390 | ||
| 1391 | enum Handling | |
| 1392 | {
| |
| 1393 | Mass = 0x04, | |
| 1394 | InitialDragCoeff = 0x08, | |
| 1395 | vecCentreOfMass1 = 0x0C, | |
| 1396 | vecCentreOfMass2 = 0x10, | |
| 1397 | vecCentreOfMass3 = 0x14, | |
| 1398 | vecInertiaMultiplier1 = 0x1C, | |
| 1399 | vecInertiaMultiplier2 = 0x20, | |
| 1400 | vecInertiaMultiplier3 = 0x24, | |
| 1401 | PercentSubmerged = 0x2C, | |
| 1402 | DriveInertia = 0x40, | |
| 1403 | ClutchRateUpShift = 0x44, | |
| 1404 | ClutchRateDownShift = 0x48, | |
| 1405 | InitialDriveForce = 0x4C, | |
| 1406 | BrakeForce = 0x58, | |
| 1407 | AntiRollBarForce = 0xC8, | |
| 1408 | HandBrakeForce = 0x68, | |
| 1409 | TractionCurveMax = 0x74, | |
| 1410 | TractionCurveMin = 0x7C, | |
| 1411 | TractionSpringDMax = 0x8C, | |
| 1412 | LSpeedTracLossMult = 0x94, | |
| 1413 | CamberStiffnesss = 0xA4, | |
| 1414 | SuspensionForce = 0xA8, | |
| 1415 | SuspensionUpperLimit = 0xB4, | |
| 1416 | SuspensionLowerLimit = 0xB8, | |
| 1417 | SuspensionRaise = 0xBC, | |
| 1418 | RollCHeightFront = 0xD4, | |
| 1419 | RollCHeightRear = 0xD8, | |
| 1420 | SeatOffsetDistX = 0xF4, | |
| 1421 | SeatOffsetDistY = 0xF8, | |
| 1422 | SeatOffsetDistZ = 0xFC, | |
| 1423 | Velocity = 0x50, | |
| 1424 | ||
| 1425 | CollisionDamageMult = 0xDC, | |
| 1426 | WeaponDamageMult = 0xE0, | |
| 1427 | DeformDamageMult = 0xE4, | |
| 1428 | EngineDamageMult = 0xE8, | |
| 1429 | PetrolTankVolume = 0xEC, | |
| 1430 | OilVolume = 0xF0, | |
| 1431 | MonetaryValue = 0x100, | |
| 1432 | strModelFlags = 0x104, | |
| 1433 | strHandlingFlags = 0x108, | |
| 1434 | strDamageFlags = 0x10C, | |
| 1435 | ||
| 1436 | //Plane / Helicopter | |
| 1437 | Thrust = 0x140, | |
| 1438 | ThrustFallOff = 0x144, | |
| 1439 | ThrustVectoring = 0x148, | |
| 1440 | YawMult = 0x14C, | |
| 1441 | YawStabilise = 0x150, | |
| 1442 | SideSlipMult = 0x154, | |
| 1443 | RollMult = 0x158, | |
| 1444 | RollStabilise = 0x15C, | |
| 1445 | PitchMult = 0x160, | |
| 1446 | PitchStabilise = 0x164, | |
| 1447 | FormLiftMult = 0x168, | |
| 1448 | AttackLiftMult = 0x16C, | |
| 1449 | AttackDiveMult = 0x170, | |
| 1450 | GearDownDragV = 0x174, | |
| 1451 | GearDownLiftMult = 0x178, | |
| 1452 | WindMult = 0x17C, | |
| 1453 | MoveRes = 0x180, | |
| 1454 | vecTurnRes1 = 0x18C, | |
| 1455 | vecTurnRes2 = 0x190, | |
| 1456 | vecTurnRes3 = 0x194, | |
| 1457 | vecSpeedRes1 = 0x19C, | |
| 1458 | vecSpeedRes2 = 0x1A0, | |
| 1459 | vecSpeedRes3 = 0x1A4, | |
| 1460 | GearDoorFrontOpen = 0x1AC, | |
| 1461 | GearDoorRearOpen = 0x1B0, | |
| 1462 | GearDoorRearOpen2 = 0x1B4, | |
| 1463 | GearDoorRearMOpen = 0x1B8, | |
| 1464 | TurublenceMagMax = 0x1BC, | |
| 1465 | TurublenceForceMulti = 0x1C0, | |
| 1466 | TurubRollTorqueMulti = 0x1C4, | |
| 1467 | TurubPitchTorqueMulti = 0x1C8, | |
| 1468 | BodyDamageMult = 0x1CC, | |
| 1469 | InputSensitivity = 0x1D0, | |
| 1470 | OnGroundSpeedPeak = 0x1D4, | |
| 1471 | OnGroundSpeedCap = 0x1D8, | |
| 1472 | EngineOffGlideMulti = 0x1DC, | |
| 1473 | ||
| 1474 | //Bikes | |
| 1475 | LeanFwdCOMMult = 0x140, | |
| 1476 | LeanFwdForceMult = 0x144, | |
| 1477 | LeanBakCOMMult = 0x148, | |
| 1478 | LeanBakForceMult = 0x14C, | |
| 1479 | DesLeanReturnFrac = 0x15C, | |
| 1480 | StickLeanMult = 0x160, | |
| 1481 | BrakingStabilityMult = 0x164, | |
| 1482 | InAirSteerMult = 0x168, | |
| 1483 | WheelieBalancePoint = 0x16C, | |
| 1484 | StoppieBalancePoint = 0x170, | |
| 1485 | WheelieSteerMult = 0x174, | |
| 1486 | RearBalanceMult = 0x178, | |
| 1487 | FrontBalanceMult = 0x17C, | |
| 1488 | BikeFrictionMult = 0x180, | |
| 1489 | BikeWheelFrictionMult = 0x184, | |
| 1490 | BikeLeanAngle = 0x188, | |
| 1491 | BikeSteerAngle = 0x18C, | |
| 1492 | JumpForce = 0x190, | |
| 1493 | }; | |
| 1494 | ||
| 1495 | addIntOption("BMX Jump Editor", &int_VehicleOptions[37], 0, 100, true);
| |
| 1496 | addIntOption("BMX Lean Forward Multiplier", &int_VehicleOptions[38], 0, 100, true);
| |
| 1497 | addIntOption("BMX Lean Backward Multiplier", &int_VehicleOptions[39], 0, 100, true);
| |
| 1498 | addIntOption("BMX Lean Forward Force", &int_VehicleOptions[40], 0, 100, true);
| |
| 1499 | addIntOption("BMX Lean Backward Force", &int_VehicleOptions[41], 0, 100, true);
| |
| 1500 | addIntOption("BMX In-Air Steer Multiplier", &int_VehicleOptions[42], 0, 100, true);
| |
| 1501 | ||
| 1502 | ||
| 1503 | case 1: SET_HANDLING_MOD(189, JumpForce, int_VehicleOptions[37]); break; | |
| 1504 | case 2: SET_HANDLING_MOD(189, LeanFwdCOMMult, int_VehicleOptions[38]); break; | |
| 1505 | case 3: SET_HANDLING_MOD(189, LeanBakCOMMult, int_VehicleOptions[39]); break; | |
| 1506 | case 4: SET_HANDLING_MOD(189, LeanFwdForceMult, int_VehicleOptions[40]); break; | |
| 1507 | case 5: SET_HANDLING_MOD(189, LeanBakForceMult, int_VehicleOptions[41]); break; | |
| 1508 | case 6: SET_HANDLING_MOD(189, InAirSteerMult, int_VehicleOptions[42]); break; | |
| 1509 | ||
| 1510 | //PLAYER HEIGTH | |
| 1511 | ||
| 1512 | addFloatSwap("Player Height", &variavelFloatUsada, -10, 10, boolUsada, 0.1);
| |
| 1513 | ||
| 1514 | ||
| 1515 | int GPMA_stub[2] = { 0xA552E0, 0x1C85330 };
| |
| 1516 | int(*get_ent_address)(int peid) = (int(*)(int))&GPMA_stub; | |
| 1517 | ||
| 1518 | //loop | |
| 1519 | if (boolUsada) {
| |
| 1520 | if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID())){
| |
| 1521 | *(float*)(*(int*)(get_ent_address(PLAYER::PLAYER_PED_ID()) + 48) + 40) = variavelFloatUsada; | |
| 1522 | } | |
| 1523 | } | |
| 1524 | ||
| 1525 | ||
| 1526 | ||
| 1527 | ||
| 1528 | ||
| 1529 | ||
| 1530 | ||
| 1531 | ||
| 1532 | ||
| 1533 | ||
| 1534 | ||
| 1535 | ||
| 1536 | ||
| 1537 | ||
| 1538 | ||
| 1539 | //static BOOL GET_PED_LAST_WEAPON_IMPACT_COORD(Ped ped, Vector3* coords) { return invoke<BOOL>(0x9B266079, ped, coords); } // 0x9B266079
| |
| 1540 | ||
| 1541 | ||
| 1542 | static BOOL(*GET_PED_LAST_WEAPON_IMPACT_COORD)(Ped ped, int coordsfreeMem) = (BOOL(*)(Ped, int))&__GET_PED_LAST_WEAPON_IMPACT_COORD_t; | |
| 1543 | ||
| 1544 | static BOOL GET_PED_LAST_WEAPON_IMPACT_COORD_MODIFYED(Ped ped, float coords[4]) {
| |
| 1545 | Vector3 in; | |
| 1546 | ResetArgs(); | |
| 1547 | PushArg(ped); | |
| 1548 | PushArg(&in); | |
| 1549 | CallHash(0x9B266079, NativeArg); | |
| 1550 | return GetResult<BOOL>(); | |
| 1551 | std::copy(GetDataResult<float*>(0), GetDataResult<float*>(0) + 4, coords); | |
| 1552 | } // 0x9B266079 | |
| 1553 | ||
| 1554 | template <typename R> | |
| 1555 | R GetDataResult(uint8_t index) | |
| 1556 | {
| |
| 1557 | R* Result; | |
| 1558 | Result = (R*)NativeArg + 0x10 * (index + 4); //0x10030000 | |
| 1559 | return *(R*)Result; | |
| 1560 | } | |
| 1561 | ||
| 1562 | static BOOL GET_PED_LAST_WEAPON_IMPACT_COORD_MODIFYED(Ped ped, Vector3 &coords) {
| |
| 1563 | float tmp[100]; ResetArgs(); PushArg(ped); PushArg(0x10030000); | |
| 1564 | for (int i = 0; i < 3; i++) | |
| 1565 | tmp[i] = *(float*)(0x10030000 + (i * 0x04)); | |
| 1566 | Vector3 vOut = FloatToVector(tmp[0], tmp[1], tmp[2]); | |
| 1567 | coords = vOut; | |
| 1568 | CallHash(0x9B266079, NativeArg); | |
| 1569 | return GetResult<BOOL>(); | |
| 1570 | ||
| 1571 | } // 0x9B266079 | |
| 1572 | ||
| 1573 | static BOOL(*GET_PED_LAST_WEAPON_IMPACT_COORD)(Ped ped, int coordsfreeMem) = (BOOL(*)(Ped, int))&__GET_PED_LAST_WEAPON_IMPACT_COORD_t; | |
| 1574 | ||
| 1575 | ||
| 1576 | int hitsomething = 0, entityHandle = 0; Vector3 endCoords, surfaceNormal; | |
| 1577 | int getRaycastHandle(int type) | |
| 1578 | {
| |
| 1579 | /*Vector3 camrot = GET_GAMEPLAY_CAM_ROT(2); | |
| 1580 | Vector3 campos = GET_GAMEPLAY_CAM_COORD(); | |
| 1581 | Vector3 selfvec = GET_ENTITY_FORWARD_VECTOR(PLAYER_PED_ID()); | |
| 1582 | Vector3 multiplied = { RotationToDirection(camrot).x * 1000.0f, RotationToDirection(camrot).y * 1000.0f, RotationToDirection(camrot).z * 1000.0f };
| |
| 1583 | int ray = _CAST_RAY_POINT_TO_POINT(campos.x + selfvec.x, campos.y + selfvec.y, campos.z + selfvec.z, campos.x + multiplied.x * 5000, campos.y + multiplied.y * 5000, campos.z + multiplied.z * 5000, type, 0, 7); | |
| 1584 | return ray;*/ | |
| 1585 | Vector3 camPos = GET_GAMEPLAY_CAM_COORD(); | |
| 1586 | Vector3 camRot = GET_GAMEPLAY_CAM_ROT(2); | |
| 1587 | float retz = camRot.z * 0.0174532924F; | |
| 1588 | float retx = camRot.x * 0.0174532924F; | |
| 1589 | float absx = ABSF(COS(retx)); | |
| 1590 | Vector3 camStuff = { SIN(retz) * absx * -1, COS(retz) * absx, SIN(retx) };
| |
| 1591 | return _CAST_RAY_POINT_TO_POINT(camPos.x, camPos.y, camPos.z, camPos.x + camStuff.x * 1000, camPos.y + camStuff.y * 1000, camPos.z + camStuff.z * 1000, type, 0, 7); | |
| 1592 | } | |
| 1593 | ||
| 1594 | unsigned int *getGlobalPtr(int globalId) | |
| 1595 | {
| |
| 1596 | unsigned int **arr = (unsigned int **)(0x1E70370); | |
| 1597 | return &arr[(globalId >> 18) & 0x3F][globalId & 0x3FFFF]; | |
| 1598 | ||
| 1599 | //return (unsigned int *)(*(DWORD *)(0x000000 + 8i64 * ((globalId >> 18) & 0x3F) + moduleHandle) //reversed | |
| 1600 | // + 8i64 * (globalId & 0x3FFFF)); | |
| 1601 | } | |
| 1602 | ||
| 1603 | ||
| 1604 | //SetGlobal(1325955, 1662, 1337); | |
| 1605 | ||
| 1606 | *getGlobalPtr(OFF_THE_RADAR_TIME) = 1337; //DEADC0DE time | |
| 1607 | ||
| 1608 | //262145 wanted lvl | |
| 1609 | //SetGlobal(2394218, 55, GET_NETWORK_TIME()); | |
| 1610 | ||
| 1611 | //SetGlobal(2387908, 169, 1); | |
| 1612 | //SetGlobal(2387908 + 223, 169, 1); | |
| 1613 | //SetGlobal(2387908[PLAYER_ID() * 223], 169, 1); | |
| 1614 | ||
| 1615 | //SetGlobal(2390201, 171, 1); | |
| 1616 | //SetGlobal(2390201 + 223, 171, 1); | |
| 1617 | //SetGlobal2390201[PLAYER_ID() * 223], 171, 1); | |
| 1618 | ||
| 1619 | /*SetGlobal(2387908, 169, 1); | |
| 1620 | ||
| 1621 | SetGlobal(2390201, 171, 1); | |
| 1622 | ||
| 1623 | SetGlobal(2387908 + 223, 169, 1); | |
| 1624 | ||
| 1625 | SetGlobal(2387908 + PLAYER_ID() * 223, 169, 1); | |
| 1626 | ||
| 1627 | SetGlobal(2387908 + PLAYER_ID() + 223, 169, 1); | |
| 1628 | ||
| 1629 | SetGlobal(2387908 + PLAYER_ID(), 169, 1);*/ | |
| 1630 | ||
| 1631 | ||
| 1632 | void btnOffRadar_Click(object sender, EventArgs e) | |
| 1633 | {
| |
| 1634 | if (ScriptGlobals.Read(2390201 + (uint)(NativeFuncs.player_id() * 223) + 170) == 0) | |
| 1635 | {
| |
| 1636 | ScriptGlobals.Write(2390201 + (uint)(NativeFuncs.player_id() * 223) + 170, 1); | |
| 1637 | ScriptGlobals.Write(2394218 + 55, 2147483647); | |
| 1638 | } | |
| 1639 | else | |
| 1640 | ScriptGlobals.Write(2390201 + (uint)(NativeFuncs.player_id() * 223) + 170, 0); | |
| 1641 | } | |
| 1642 | ||
| 1643 | ||
| 1644 | if (featureTest) | |
| 1645 | {
| |
| 1646 | Vector3 closestcoords = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE); | |
| 1647 | getNearEntities(PLAYER_PED_ID(), 1, 1, 7, 2, NULL); | |
| 1648 | ||
| 1649 | for (int i = 0; 0 < sizeof(); i++) | |
| 1650 | {
| |
| 1651 | } | |
| 1652 | EntitiesNearBy[i] = GET_ENTITY_ATTACHED_TO(PLAYER_PED_ID()); | |
| 1653 | EntitiesNearBy[i] = GET_CLOSEST_VEHICLE(closestcoords.x, closestcoords.y, closestcoords.z, 10.0f, 0, CARS_N_MOTOCYCLES_2); | |
| 1654 | EntitiesNearBy[i] = GET_RANDOM_PED_AT_COORD(closestcoords.x, closestcoords.y, closestcoords.z, 10.0f, 10.0f, 10.0, -1); | |
| 1655 | if (DOES_ENTITY_EXIST(EntitiesNearBy[i])) | |
| 1656 | {
| |
| 1657 | if (!NETWORK_HAS_CONTROL_OF_ENTITY(EntitiesNearBy[i])) | |
| 1658 | NETWORK_REQUEST_CONTROL_OF_ENTITY(EntitiesNearBy[i]); | |
| 1659 | else | |
| 1660 | {
| |
| 1661 | DETACH_ENTITY(EntitiesNearBy[i], 1, 1); | |
| 1662 | SET_ENTITY_AS_MISSION_ENTITY(EntitiesNearBy[i], 1, 1); | |
| 1663 | DELETE_ENTITY(&EntitiesNearBy[i]); | |
| 1664 | } | |
| 1665 | } | |
| 1666 | ||
| 1667 | ||
| 1668 | ||
| 1669 | int funcaddr = 0x139ECB0;//0x13321EC; | |
| 1670 | ((void(*)(int, unsigned int, int, int, int, int, int, int, int))&funcaddr)(0x40022280, 0x1004004C, 1, 0, 0, 0, 0x540, 0x4ec, 0x59); | |
| 1671 | ||
| 1672 | ||
| 1673 | GetClosestVehicle | |
| 1674 | __int64 __fastcall sub_4549C8(__int64 a1, float a2, unsigned int a3, unsigned int a4) | |
| 1675 | {
| |
| 1676 | signed int v4; // ebx@1 | |
| 1677 | unsigned int v5; // er14@1 | |
| 1678 | __int64 v6; // rdi@1 | |
| 1679 | signed int v7; // ebp@1 | |
| 1680 | float v8; // xmm6_4@1 | |
| 1681 | int v9; // eax@2 | |
| 1682 | unsigned int v10; // xmm1_4@3 | |
| 1683 | unsigned int v11; // xmm2_4@3 | |
| 1684 | float v12; // xmm6_4@3 | |
| 1685 | __int64 v13; // rcx@3 | |
| 1686 | unsigned int v14; // edi@3 | |
| 1687 | __int64 v15; // r9@4 | |
| 1688 | int v16; // eax@5 | |
| 1689 | __int64 v17; // rax@6 | |
| 1690 | __int64 v18; // rsi@9 | |
| 1691 | __m128 v19; // xmm2@12 | |
| 1692 | __m128i v20; // xmm2@12 | |
| 1693 | float v21; // xmm7_4@12 | |
| 1694 | int v22; // eax@13 | |
| 1695 | int v24; // [sp+20h] [bp-58h]@2 | |
| 1696 | __m128 v25; // [sp+30h] [bp-48h]@3 | |
| 1697 | int v26; // [sp+90h] [bp+18h]@1 | |
| 1698 | ||
| 1699 | v4 = 0; | |
| 1700 | v5 = a4; | |
| 1701 | v6 = a1; | |
| 1702 | v7 = 0; | |
| 1703 | v8 = a2; | |
| 1704 | v26 = (v26 | 0xFFFFFFF) & 0xFFFFFFF; | |
| 1705 | if ( !a3 | |
| 1706 | || (v24 = 0xFFFF, | |
| 1707 | sub_14079692C(a3, &v24), | |
| 1708 | LOWORD(v26) = v24, | |
| 1709 | v9 = v26 | 0xFFF0000, | |
| 1710 | _bittestandreset((unsigned int *)&v9, 0x1Cu), | |
| 1711 | v26 = v9, | |
| 1712 | (unsigned __int16)v9 != 0xFFFF) ) | |
| 1713 | {
| |
| 1714 | v10 = *(_DWORD *)(v6 + 8); | |
| 1715 | v11 = *(_DWORD *)(v6 + 16); | |
| 1716 | v12 = v8 * v8; | |
| 1717 | v13 = *(_QWORD *)VehiclePool; | |
| 1718 | v25.m128_i32[0] = *(_DWORD *)v6; | |
| 1719 | *(unsigned __int64 *)((char *)&v25.m128_u64[0] + 4) = __PAIR__(v11, v10); | |
| 1720 | v14 = *(_DWORD *)(v13 + 8); | |
| 1721 | if ( v14 ) | |
| 1722 | {
| |
| 1723 | do | |
| 1724 | {
| |
| 1725 | --v14; | |
| 1726 | v15 = *(_QWORD *)VehiclePool; | |
| 1727 | if ( (signed int)v14 < *(_DWORD *)(*(_QWORD *)VehiclePool + 8i64) | |
| 1728 | && (v16 = *(_DWORD *)(*(_QWORD *)(v15 + 48) + 4 * ((unsigned __int64)v14 >> 5)), | |
| 1729 | _bittest((const unsigned int *)&v16, v14 & 0x1F)) ) | |
| 1730 | v17 = *(_QWORD *)v15 + v14 * *(_QWORD *)(v15 + 24); | |
| 1731 | else | |
| 1732 | v17 = 0i64; | |
| 1733 | if ( v17 ) | |
| 1734 | v18 = *(_QWORD *)v17; | |
| 1735 | else | |
| 1736 | v18 = 0i64; | |
| 1737 | if ( v18 ) | |
| 1738 | {
| |
| 1739 | v19 = _mm_sub_ps(*(__m128 *)(v18 + 144), v25); | |
| 1740 | v20 = (__m128i)_mm_mul_ps(v19, v19); | |
| 1741 | LODWORD(v21) = (unsigned __int128)_mm_add_ps( | |
| 1742 | _mm_add_ps( | |
| 1743 | (__m128)_mm_shuffle_epi32(v20, 0), | |
| 1744 | (__m128)_mm_shuffle_epi32(v20, 85)), | |
| 1745 | (__m128)_mm_shuffle_epi32(v20, -86)); | |
| 1746 | if ( v21 < v12 ) | |
| 1747 | {
| |
| 1748 | v22 = sub_140796DD8(&v26); | |
| 1749 | if ( (unsigned __int8)sub_13FF39C34(v18, (unsigned int)v22, v5) ) | |
| 1750 | {
| |
| 1751 | v7 = sub_13FC7F104(v18); | |
| 1752 | v12 = v21; | |
| 1753 | } | |
| 1754 | } | |
| 1755 | } | |
| 1756 | } | |
| 1757 | while ( v14 ); | |
| 1758 | if ( v7 ) | |
| 1759 | sub_13FC728D0(v7); | |
| 1760 | } | |
| 1761 | v4 = v7; | |
| 1762 | } | |
| 1763 | return (unsigned int)v4; | |
| 1764 | } | |
| 1765 | __int64 __fastcall get_entity_type(int a1) | |
| 1766 | {
| |
| 1767 | __int64 result; // rax@1 | |
| 1768 | signed int v2; // ecx@1 | |
| 1769 | char v3; | |
| 1770 | ||
| 1771 | result = GetAddressOfEntity(a1); | |
| 1772 | v2 = 0; | |
| 1773 | if (result) | |
| 1774 | {
| |
| 1775 | v3 = *(_BYTE *)(result + 40); | |
| 1776 | if (v3 == 4) | |
| 1777 | {
| |
| 1778 | result = 1i64; | |
| 1779 | } | |
| 1780 | else if (v3 == 3) | |
| 1781 | {
| |
| 1782 | result = 2i64; | |
| 1783 | } | |
| 1784 | else | |
| 1785 | {
| |
| 1786 | if (v3 == 5) | |
| 1787 | v2 = 3; | |
| 1788 | result = (unsigned int)v2; | |
| 1789 | } | |
| 1790 | } | |
| 1791 | return result; | |
| 1792 | } | |
| 1793 | ||
| 1794 | char __fastcall is_model_a_vehicle(__int64 a1) | |
| 1795 | {
| |
| 1796 | char v1; // bl@1 | |
| 1797 | __int64 v2; // rax@1 | |
| 1798 | int v4; // [sp+38h] [bp+10h]@1 | |
| 1799 | ||
| 1800 | v1 = 0; | |
| 1801 | v4 = 0xFFFF; | |
| 1802 | LODWORD(v2) = sub_7FF601C276A4(a1, &v4); | |
| 1803 | if (v2) | |
| 1804 | {
| |
| 1805 | v1 = 0; | |
| 1806 | if ((*(_BYTE *)(v2 + 157) & 0x1F) == 5) | |
| 1807 | v1 = 1; | |
| 1808 | } | |
| 1809 | return v1; | |
| 1810 | } | |
| 1811 | ||
| 1812 | int64 PLAYER_ID() | |
| 1813 | {
| |
| 1814 | int64 v0; // rax@2 | |
| 1815 | __int64 result; // rax@2 | |
| 1816 | ||
| 1817 | if (byte_7FF602DDAB4E) | |
| 1818 | {
| |
| 1819 | LODWORD(v0) = sub_7FF60170275C(off_7FF602370AA0); | |
| 1820 | result = *(_BYTE *)(v0 + 45); | |
| 1821 | } | |
| 1822 | else | |
| 1823 | {
| |
| 1824 | result = 0i64; | |
| 1825 | } | |
| 1826 | return result; | |
| 1827 | } | |
| 1828 | ||
| 1829 | ||
| 1830 | ||
| 1831 | // GTA5_dump_Static_1604.1_1.46 | |
| 1832 | int __fastcall sub_14113F31C(__int64 a1, __int64 a2) | |
| 1833 | {
| |
| 1834 | __int64 v2; // rdi@1 | |
| 1835 | char v3; // bl@1 | |
| 1836 | __int64 v4; // rax@1 | |
| 1837 | __int64 v5; // r8@1 | |
| 1838 | __int64 v6; // r9@1 | |
| 1839 | __int64 v7; // rax@1 | |
| 1840 | ||
| 1841 | v2 = a1; | |
| 1842 | v3 = a2; | |
| 1843 | LOBYTE(a2) = 1; | |
| 1844 | sub_1416036D8(qword_14286B510, a2); | |
| 1845 | LODWORD(v4) = sub_141568DC4(qword_142DF38C0); | |
| 1846 | v6 = v4; | |
| 1847 | v7 = 0i64; | |
| 1848 | if ( v6 ) | |
| 1849 | {
| |
| 1850 | LOBYTE(v5) = v3; | |
| 1851 | LODWORD(v7) = sub_141128C60(v6, *(_WORD *)(*(_QWORD *)(v2 + 208) + 10i64), v5); | |
| 1852 | } | |
| 1853 | return sub_141613B54(qword_14286B510, v7); | |
| 1854 | } | |
| 1855 | ||
| 1856 | ||
| 1857 | void __fastcall sub_14113F31C(__int64 a1, __int64 a2) | |
| 1858 | {
| |
| 1859 | __int64 v2; // rdi@1 | |
| 1860 | char v3; // bl@1 | |
| 1861 | _DWORD *v4; // r9@1 | |
| 1862 | __int64 v5; // rax@1 | |
| 1863 | ||
| 1864 | v2 = a1; | |
| 1865 | v3 = a2; | |
| 1866 | LOBYTE(a2) = 1; | |
| 1867 | sub_1416036D8(qword_14286B510, a2); | |
| 1868 | v4 = sub_141568DC4(qword_142DF38C0); | |
| 1869 | v5 = 0i64; | |
| 1870 | if ( v4 ) | |
| 1871 | v5 = sub_141128C60((__int64)v4, *(_WORD *)(*(_QWORD *)(v2 + 208) + 10i64), v3); | |
| 1872 | sub_141613B54(qword_14286B510, v5); | |
| 1873 | } | |
| 1874 | ||
| 1875 | ||
| 1876 | ||
| 1877 | ||
| 1878 | ||
| 1879 | template<typename T> | |
| 1880 | T Invoke(unsigned int a_uiNativeHash, unsigned int a_uiArgCount, ...) | |
| 1881 | {
| |
| 1882 | T* Result; | |
| 1883 | ||
| 1884 | va_list l_VaList; | |
| 1885 | unsigned int l_uiIndex; | |
| 1886 | unsigned int l_uiReadCount = 0; | |
| 1887 | ||
| 1888 | va_start(l_VaList, a_uiArgCount); | |
| 1889 | for (l_uiIndex = 0; l_uiIndex < 16; l_uiIndex++) | |
| 1890 | {
| |
| 1891 | if (l_uiIndex < a_uiArgCount) | |
| 1892 | g_pArgs[l_uiIndex] = va_arg(l_VaList, unsigned int); | |
| 1893 | else | |
| 1894 | g_pArgs[l_uiIndex] = 0; | |
| 1895 | } | |
| 1896 | va_end(l_VaList); | |
| 1897 | ||
| 1898 | //DbgPrint("Calling: 0x%08X\n", a_uiNativeHash);
| |
| 1899 | ||
| 1900 | if (a_uiNativeHash != PLAYER_ID_HASH) | |
| 1901 | ((void(*)(struct NativeArg*))GetNativeFunction(a_uiNativeHash))(&g_NativeArg); | |
| 1902 | else | |
| 1903 | Original_Player_ID(&g_NativeArg); | |
| 1904 | ||
| 1905 | Result = (T*)&g_pArgs[l_uiReadCount]; | |
| 1906 | ||
| 1907 | l_uiReadCount += sizeof(T); | |
| 1908 | if ((sizeof(T) % 4) != 0) | |
| 1909 | l_uiReadCount += 4 - (sizeof(T) % 4); | |
| 1910 | ||
| 1911 | return *(T*)Result; | |
| 1912 | } | |
| 1913 | ||
| 1914 | void draw_menu(int a_iPosition, int a_iMenuItemCount, char ** a_pcMenu, char* a_pcTitle) | |
| 1915 | {
| |
| 1916 | GRAPHICS::DRAW_RECT(0.90f, 0.2f, 0.15f, 0.05f, 0xFF, 0, 0, 0x90); | |
| 1917 | ||
| 1918 | GRAPHICS::DRAW_RECT(0.90f, 0.225f + ((0.035f* (a_iMenuItemCount > 16 ? 16 : a_iMenuItemCount))/2), 0.15f, 0.035f* (a_iMenuItemCount > 16 ? 16 : a_iMenuItemCount), 0xFF, 0, 0, 0x30); | |
| 1919 | //GRAPHICS::DRAW_RECT(0.90f, 0.50f, 0.15f, 0.55f, 0xFF, 0, 0, 0x30); | |
| 1920 | PrintToScreen(a_pcTitle, 0.90f, 0.18f, 255, 255, 255, 255, 0.8f, 0.8f, 1, 1); | |
| 1921 | ||
| 1922 | if (a_iMenuItemCount < 16) | |
| 1923 | {
| |
| 1924 | GRAPHICS::DRAW_RECT(0.90f, 0.2425f + (float).035f*(a_iPosition), 0.15f, 0.035f, 0xFF, 0, 0, 0x80); | |
| 1925 | for (int l_iIndex = 0; l_iIndex < a_iMenuItemCount; l_iIndex++) | |
| 1926 | {
| |
| 1927 | PrintToScreen(a_pcMenu[l_iIndex], 0.90f, (0.2225f + (l_iIndex * .035f)), 255, 255, 255, 255, 0.4f, 0.4f, 1, 0); | |
| 1928 | } | |
| 1929 | } | |
| 1930 | else | |
| 1931 | {
| |
| 1932 | if (a_iPosition < 7) | |
| 1933 | {
| |
| 1934 | GRAPHICS::DRAW_RECT(0.90f, 0.2425f + (float).035f*(a_iPosition), 0.15f, 0.035f, 0xFF, 0, 0, 0x80); | |
| 1935 | for (int l_iIndex = 0; l_iIndex < 16; l_iIndex++) | |
| 1936 | {
| |
| 1937 | PrintToScreen(a_pcMenu[l_iIndex], 0.90f, (0.2225f + (l_iIndex * .035f)), 255, 255, 255, 255, 0.4f, 0.4f, 1, 0); | |
| 1938 | } | |
| 1939 | } | |
| 1940 | else | |
| 1941 | {
| |
| 1942 | if (a_iPosition < a_iMenuItemCount - 8) | |
| 1943 | {
| |
| 1944 | GRAPHICS::DRAW_RECT(0.90f, 0.2425f + (float).035f*(7), 0.15f, 0.035f, 0xFF, 0, 0, 0x80); | |
| 1945 | int l_iDrawIndex = 0; | |
| 1946 | for (int l_iIndex = a_iPosition - 7; l_iIndex < a_iPosition + 9; l_iIndex++) | |
| 1947 | {
| |
| 1948 | PrintToScreen(a_pcMenu[l_iIndex], 0.90f, (0.2225f + (l_iDrawIndex* .035f)), 255, 255, 255, 255, 0.4f, 0.4f, 1, 0); | |
| 1949 | l_iDrawIndex++; | |
| 1950 | } | |
| 1951 | } | |
| 1952 | else | |
| 1953 | {
| |
| 1954 | GRAPHICS::DRAW_RECT(0.90f, 0.2425f + (float).035f*(16 - (a_iMenuItemCount - a_iPosition)), 0.15f, 0.035f, 0xFF, 0, 0, 0x80); | |
| 1955 | int l_iDrawIndex = 0; | |
| 1956 | for (int l_iIndex = a_iMenuItemCount - 16; l_iIndex < a_iMenuItemCount; l_iIndex++) | |
| 1957 | {
| |
| 1958 | PrintToScreen(a_pcMenu[l_iIndex], 0.90f, (0.2225f + (l_iDrawIndex* .035f)), 255, 255, 255, 255, 0.4f, 0.4f, 1, 0); | |
| 1959 | l_iDrawIndex++; | |
| 1960 | } | |
| 1961 | } | |
| 1962 | } | |
| 1963 | } | |
| 1964 | } | |
| 1965 | ||
| 1966 | void PrintToScreen(char *str, float x, float y, int r, int g, int b, int a, float scaleX, float scaleY, int centerText, int font) | |
| 1967 | {
| |
| 1968 | UI::SET_TEXT_FONT(font); | |
| 1969 | UI::SET_TEXT_COLOUR(r, g, b, a); | |
| 1970 | UI::SET_TEXT_SCALE(scaleX, scaleY); | |
| 1971 | UI::SET_TEXT_OUTLINE(); | |
| 1972 | UI::SET_TEXT_CENTRE(centerText); | |
| 1973 | UI::_SET_TEXT_ENTRY("STRING");
| |
| 1974 | UI::_ADD_TEXT_COMPONENT_STRING(str); | |
| 1975 | UI::_DRAW_TEXT(x, y); | |
| 1976 | } | |
| 1977 | ||
| 1978 | void HeistHUD(char* text) | |
| 1979 | {
| |
| 1980 | ||
| 1981 | } | |
| 1982 | void InfoMessage(char* text) | |
| 1983 | {
| |
| 1984 | ||
| 1985 | } | |
| 1986 | ||
| 1987 | void MPMESSAGE(char* msg, char* desc) | |
| 1988 | {
| |
| 1989 | featureBigMPMessge = true; | |
| 1990 | BigMPMessagemgs = msg; | |
| 1991 | BigMPMessagedesc = desc; | |
| 1992 | PLAY_SOUND_FRONTEND(-1, "RACE_PLACED", "HUD_AWARDS"); | |
| 1993 | } | |
| 1994 | ||
| 1995 | if (featureBigMPMessge) | |
| 1996 | {
| |
| 1997 | if (!HAS_SCALEFORM_MOVIE_LOADED(SFBigMPMessage)) | |
| 1998 | SFBigMPMessage = REQUEST_SCALEFORM_MOVIE("MP_BIG_MESSAGE_FREEMODE");
| |
| 1999 | else | |
| 2000 | {
| |
| 2001 | if (GET_GAME_TIMER() > featureTimeMPMessage) {
| |
| 2002 | featureTimeMPMessage = GET_GAME_TIMER() + 20; | |
| 2003 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFBigMPMessage, "SHOW_SHARD_CREW_RANKUP_MP_MESSAGE"); //SHOW_SHARD_CENTERED_TOP_MP_MESSAGE | |
| 2004 | set_text_component(BigMPMessagemgs); | |
| 2005 | set_text_component(BigMPMessagedesc); | |
| 2006 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2007 | DRAW_SCALEFORM_MOVIE_FULLSCREEN(SFBigMPMessage, 255, 255, 255, 255); | |
| 2008 | if (_BigMPMessagetime == 40) {
| |
| 2009 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFBigMPMessage, "TRANSITION_UP"); | |
| 2010 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2011 | SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(&SFBigMPMessage); | |
| 2012 | featureBigMPMessge = false; | |
| 2013 | _BigMPMessagetime = 0; | |
| 2014 | } | |
| 2015 | else | |
| 2016 | _BigMPMessagetime++; | |
| 2017 | } | |
| 2018 | } | |
| 2019 | } | |
| 2020 | ||
| 2021 | case 5: MPMESSAGE("ROULETTE", "coding like a rockstar"); break;
| |
| 2022 | ||
| 2023 | ||
| 2024 | ||
| 2025 | bool _scaleformFadeTimerEnabled = 0; | |
| 2026 | int SFBMPM; | |
| 2027 | DWORD _scaleformFadeTimerWaiter = 0; | |
| 2028 | if (_scaleformFadeTimerEnabled) | |
| 2029 | {
| |
| 2030 | if (!HAS_SCALEFORM_MOVIE_LOADED(SFBMPM)) | |
| 2031 | SFBMPM = REQUEST_SCALEFORM_MOVIE("MP_BIG_MESSAGE_FREEMODE");
| |
| 2032 | else | |
| 2033 | {
| |
| 2034 | ||
| 2035 | _scaleformFadeTimerWaiter = GET_GAME_TIMER() + 2000; | |
| 2036 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFBMPM, "SHOW_SHARD_CREW_RANKUP_MP_MESSAGE" /*titleStr, msgStr, rankNumber, emblemTXD, emblemTXN, alpha*/); //SHOW_SHARD_CENTERED_TOP_MP_MESSAGE | |
| 2037 | _BEGIN_TEXT_COMPONENT("STRING");
| |
| 2038 | ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("TheRouletteBoi");
| |
| 2039 | _END_TEXT_COMPONENT(); | |
| 2040 | _BEGIN_TEXT_COMPONENT("STRING");
| |
| 2041 | ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("ROULETTE");
| |
| 2042 | _END_TEXT_COMPONENT(); | |
| 2043 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2044 | DRAW_SCALEFORM_MOVIE_FULLSCREEN(SFBMPM, 255, 255, 255, 255); | |
| 2045 | if (GET_GAME_TIMER() > _scaleformFadeTimerWaiter) | |
| 2046 | {
| |
| 2047 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFBMPM, "TRANSITION_UP"); | |
| 2048 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(0.2000000/*duration*/); | |
| 2049 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2050 | SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(&SFBMPM); | |
| 2051 | _scaleformFadeTimerEnabled = false; | |
| 2052 | } | |
| 2053 | } | |
| 2054 | } | |
| 2055 | ||
| 2056 | ||
| 2057 | ||
| 2058 | case 11: SET_WARNING_MESSAGE("Panic Mode is enabled.", 3, "Press square and triange to disable Panic Mode.", false, -1, 0, 0, true);
| |
| 2059 | //Panic Mode is enabled. | |
| 2060 | //While this is enabled, most malicous action taken against you by a malicious cheater, such as object attachment and cash attempts, will fail to execute. Please note: this does not prevent a malicous cheater from framing you. For security reasons, you wil not be able to move, visually witness any activity, or utilize the Pause Menu while this mode is active. | |
| 2061 | //Press square and triange to disable Panic Mode. | |
| 2062 | //http://steamcommunity.com/id/clarexobearrx3/screenshots/ | |
| 2063 | break; | |
| 2064 | ||
| 2065 | ||
| 2066 | Vector3 rot_to_direction(Vector3* rot) | |
| 2067 | {
| |
| 2068 | float radiansZ = rot->z * 0.0174532924f; | |
| 2069 | float radiansX = rot->x * 0.0174532924f; | |
| 2070 | float num = ABSF((float)COS((double)radiansX)); | |
| 2071 | Vector3 dir; | |
| 2072 | dir.x = (float)((double)((float)(-(float)SIN((double)radiansZ))) * (double)num); | |
| 2073 | dir.y = (float)((double)((float)COS((double)radiansZ)) * (double)num); | |
| 2074 | dir.z = (float)SIN((double)radiansX); | |
| 2075 | return dir; | |
| 2076 | } | |
| 2077 | ||
| 2078 | Vector3 add(Vector3* vectorA, Vector3* vectorB) | |
| 2079 | {
| |
| 2080 | Vector3 result; | |
| 2081 | result.x = vectorA->x; | |
| 2082 | result.y = vectorA->y; | |
| 2083 | result.z = vectorA->z; | |
| 2084 | ||
| 2085 | result.x += vectorB->x; | |
| 2086 | result.y += vectorB->y; | |
| 2087 | result.z += vectorB->z; | |
| 2088 | ||
| 2089 | return result; | |
| 2090 | } | |
| 2091 | Vector3 multiply(Vector3* vector, float x) | |
| 2092 | {
| |
| 2093 | Vector3 result; | |
| 2094 | result.x = vector->x; | |
| 2095 | result.y = vector->y; | |
| 2096 | result.z = vector->z; | |
| 2097 | ||
| 2098 | result.x *= x; | |
| 2099 | result.y *= x; | |
| 2100 | result.z *= x; | |
| 2101 | ||
| 2102 | return result; | |
| 2103 | } | |
| 2104 | float get_distance(Vector3* pointA, Vector3* pointB) | |
| 2105 | {
| |
| 2106 | float a_x = pointA->x; | |
| 2107 | float a_y = pointA->y; | |
| 2108 | float a_z = pointA->z; | |
| 2109 | ||
| 2110 | float b_x = pointB->x; | |
| 2111 | float b_y = pointB->y; | |
| 2112 | float b_z = pointB->z; | |
| 2113 | ||
| 2114 | double x_ba = (double)(b_x - a_x); | |
| 2115 | double y_ba = (double)(b_y - a_y); | |
| 2116 | double z_ba = (double)(b_z - a_z); | |
| 2117 | ||
| 2118 | double y_2 = y_ba * y_ba; | |
| 2119 | double x_2 = x_ba * x_ba; | |
| 2120 | double sum_2 = y_2 + x_2; | |
| 2121 | ||
| 2122 | return (float)sqrt(sum_2 + z_ba); | |
| 2123 | } | |
| 2124 | ||
| 2125 | float get_vector_length(Vector3* vector) | |
| 2126 | {
| |
| 2127 | double x = (double)vector->x; | |
| 2128 | double y = (double)vector->y; | |
| 2129 | double z = (double)vector->z; | |
| 2130 | ||
| 2131 | return (float)sqrt(x * x + y * y + z * z); | |
| 2132 | } | |
| 2133 | ||
| 2134 | ||
| 2135 | ||
| 2136 | ||
| 2137 | void UpdateBusySpinner() | |
| 2138 | {
| |
| 2139 | /*func_83(P); | |
| 2140 | if (_0xF6015178("SHOW_WARNING_MESSAGE"))
| |
| 2141 | {
| |
| 2142 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL(uParam0); | |
| 2143 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(uParam1); | |
| 2144 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(uParam2); | |
| 2145 | ||
| 2146 | _BEGIN_TEXT_COMPONENT("STRING");
| |
| 2147 | ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("Loading, Please wait.");
| |
| 2148 | _END_TEXT_COMPONENT(); | |
| 2149 | ||
| 2150 | ||
| 2151 | _BEGIN_TEXT_COMPONENT("STRING");
| |
| 2152 | ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("LOADING DONE!");
| |
| 2153 | _END_TEXT_COMPONENT(); | |
| 2154 | ||
| 2155 | ||
| 2156 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(uParam5); | |
| 2157 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_STRING(uParam6); | |
| 2158 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_STRING(uParam7); | |
| 2159 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2160 | }*/ | |
| 2161 | ||
| 2162 | if (!HAS_SCALEFORM_MOVIE_LOADED(SFMBS)) | |
| 2163 | SFMBS = REQUEST_SCALEFORM_MOVIE("busy_spinner");
| |
| 2164 | else | |
| 2165 | {
| |
| 2166 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFMBS, "CLEAR_ALL"); | |
| 2167 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2168 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFMBS, "SET_DATA_SLOT"); // CREATE_CONTAINER | |
| 2169 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(0); | |
| 2170 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(LOADING_HALF_CIRCLE_RIGHT); | |
| 2171 | _BEGIN_TEXT_COMPONENT("STRING");
| |
| 2172 | ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("Loading, Please wait.");
| |
| 2173 | _END_TEXT_COMPONENT(); | |
| 2174 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2175 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFMBS, "DRAW_INSTRUCTIONAL_BUTTONS"); | |
| 2176 | _PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT(-1); | |
| 2177 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2178 | } | |
| 2179 | ||
| 2180 | ||
| 2181 | /*if (!HAS_SCALEFORM_MOVIE_LOADED(SFMBS)) | |
| 2182 | SFMBS = REQUEST_SCALEFORM_MOVIE("CUSTOM_WARNING_SCREEN");
| |
| 2183 | else | |
| 2184 | {
| |
| 2185 | //"BANNED FOR EVER." | |
| 2186 | //"BITCH YOU'VE BEEN BANNED." | |
| 2187 | _PUSH_SCALEFORM_MOVIE_FUNCTION(SFMBS, "SHOW_CUSTOM_WARNING_SCREEN"); | |
| 2188 | _POP_SCALEFORM_MOVIE_FUNCTION_VOID(); | |
| 2189 | }*/ | |
| 2190 | ||
| 2191 | ||
| 2192 | DRAW_SCALEFORM_MOVIE_FULLSCREEN(SFMBS, 255, 255, 255, 255); | |
| 2193 | } | |
| 2194 | ||
| 2195 | ||
| 2196 | /* | |
| 2197 | WT_HEALTH //health | |
| 2198 | PS_SPEC_AB //special | |
| 2199 | LOB_CAT_9 //wanted levels | |
| 2200 | FMMC_NONE; //unavailable | |
| 2201 | FACE_HAIR; //Hair | |
| 2202 | FACE_BRD; //Beard | |
| 2203 | HLTH_REGEN2; //max health | |
| 2204 | LOB_CAT_9; //wanted levels | |
| 2205 | PIM_DHIGH0; off | |
| 2206 | PIM_DHIGH1; //on | |
| 2207 | MOD_MNU; | |
| 2208 | CELL_221; //enter number | |
| 2209 | HTX_ENTER; //enter | |
| 2210 | CM_SPECTATE spectate player (beta) | |
| 2211 | CM_SHOW_GAMER_CARD show profile | |
| 2212 | CMOD_MOD_22_D increase downforce. | |
| 2213 | cell_19 Players | |
| 2214 | cell_18 Map | |
| 2215 | cell_32 Qucik Save //for recovery menu | |
| 2216 | cell_35 Player List | |
| 2217 | CELL_MP_1001 invite to party | |
| 2218 | CELL_MP_1005 Player | |
| 2219 | CELL_MP_1007 View Profile | |
| 2220 | PM_MP_OPTIONS Options | |
| 2221 | PM_FRESES Join Friends | |
| 2222 | PM_CRESES Join Crew Members | |
| 2223 | PM_PLYRS Players | |
| 2224 | PM_SWAP_CHAR Swap Character | |
| 2225 | PM_FIND_SESS Find new Session | |
| 2226 | UGC_FL_UNEX The Rockstar game services are unavailable right now. Please try again later. | |
| 2227 | PM_MY_PLIST My Playlists | |
| 2228 | PM_R_PLIST Rockstar Playlists | |
| 2229 | PM_R_V_PLIST Rockstar Verified playlist | |
| 2230 | PM_DLOAD_PLIST My Bookmarked Playlists | |
| 2231 | PM_AVAIL_CHALL Challenges | |
| 2232 | PM_MULTI x | |
| 2233 | PM_CH_NM_AL Please choose a valid title for your Challenge. | |
| 2234 | PM_CLMN_WRNT1 No Playlists | |
| 2235 | PM_CREWS Crews | |
| 2236 | PM_INF_AJ2T1 Bookmarked | |
| 2237 | PM_INF_LEAT Leave | |
| 2238 | PM_FIND_SESS Find New Session | |
| 2239 | PM_INF_CHCT Choose Character | |
| 2240 | PM_INF_PGOT Play GTA Online | |
| 2241 | PM_INF_CRWT Crews | |
| 2242 | PM_INF_AWDT Awards | |
| 2243 | PM_INF_WEPT Weapons | |
| 2244 | PM_INF_UNLT Unlocks | |
| 2245 | PM_INF_PLLT Playlists | |
| 2246 | PM_INF_PLLT00 R* Tournaments | |
| 2247 | PM_INF_PLLT0 My Playlists | |
| 2248 | PM_CLMN_WRNT5 No Challenges | |
| 2249 | BM_INV_SENT Inviting Players | |
| 2250 | BM_NO_INV No invites sent | |
| 2251 | PIM_TINVE Inventory | |
| 2252 | PIM_THELP Brief | |
| 2253 | PIM_TOBJ Objective | |
| 2254 | PM_INVO_FM Invite Only Session | |
| 2255 | PM_GO Go | |
| 2256 | PM_NCREW_FM Crew Session | |
| 2257 | PM_CREW_FM Closed Crew Session | |
| 2258 | PM_FRIEND_FM Closed Friend Session | |
| 2259 | PM_SOLO_FM Solo Session | |
| 2260 | PM_ON On | |
| 2261 | PM_OFF Off | |
| 2262 | PM_SHUFFLE Shuffle Playlist | |
| 2263 | HUD_INVPROG Joining session in progress. | |
| 2264 | R2P_MENU_TINV PLAYER LIST | |
| 2265 | BLIP_0 Destination | |
| 2266 | BLIP_1 Destination | |
| 2267 | BLIP_2 Destination | |
| 2268 | BLIP_3 Police | |
| 2269 | BLIP_4 Objective | |
| 2270 | BLIP_5 Objective | |
| 2271 | BLIP_6 Player | |
| 2272 | BLIP_7 North | |
| 2273 | BLIP_8 Waypoint | |
| 2274 | HUD_LOADMAIN rockstart game sercives are temportily unavailable | |
| 2275 | HUD_KICKRES Kick from session for beeing idle too long | |
| 2276 | HUD_KICKRES1 You were kicked from this GTA Online session by others players | |
| 2277 | HUD_KICKRES2 you have been classed as a cheater | |
| 2278 | //CM_JOIN_GAME Accept Game Invite | |
| 2279 | //CM_JIP_GAME Join Game | |
| 2280 | //CM_JIP_GAME_DIS Join Game (Disabled) | |
| 2281 | //CM_SPECTATE Spectate Player (BETA) | |
| 2282 | //CM_SPECTATE_DISABLED Spectate Player (Disabled by Player) | |
| 2283 | //CM_JOIN_PARTY Join Party | |
| 2284 | //CM_SEND_FRIEND_INVITE Send Friend Request | |
| 2285 | //CM_SEND_CREW_INVITE Invite to | |
| 2286 | //CM_SEND_PARTY_INVITE Send Party Invite | |
| 2287 | //CM_KICK_PARTY Kick from Party | |
| 2288 | //CM_SEND_GAME_INVITE Send Game Invite | |
| 2289 | //CM_SEND_GAME_INVITE_DIS Send Game Invite (Disabled) | |
| 2290 | //CM_KICK_DIS Kick (Disabled) | |
| 2291 | //CM_UNKICK Unkick | |
| 2292 | //CM_REPORT Report | |
| 2293 | //CM_REPORT_DIS Report (Disabled) | |
| 2294 | //CM_COMMEND Commend | |
| 2295 | //CM_COMMEND_DIS Commend (Disabled) | |
| 2296 | //CM_MUTE Toggle Mute | |
| 2297 | //CM_SHOW_GAMER_CARD Show Profile | |
| 2298 | //CM_ADD_A_FRIEND Add A Friend | |
| 2299 | //CM_GAMER_REVIEW Player Review | |
| 2300 | //IB_JOINCREW Join Crew | |
| 2301 | //HUD_INPUT53 Back | |
| 2302 | //CC_PM_OPT OPTIONS | |
| 2303 | //CC_PM_DET DETAILS | |
| 2304 | //PM_SCR_CCY YOU | |
| 2305 | //CRW_MINE My Crews | |
| 2306 | //CRW_ROCKSTAR Suggested Crews | |
| 2307 | //CRW_FRIENDS Friends' Crews | |
| 2308 | //CRW_INVITES Invitations | |
| 2309 | //CRW_REQUESTS Requests | |
| 2310 | //CRW_LEADERBOARDS Leaderboard | |
| 2311 | //FM_COR_KICKOC You have been kicked from the Job. You are no loger on call. | |
| 2312 | //HUD_ENDKICK You were kicked from the session. | |
| 2313 | //HUD_ENDADMINKICK You Have been removed from this session by a Rockstar Games administrator. | |
| 2314 | //HUD_KICKROCK The session you were spectating is being assessed by Rockstar with a view to broadcasting that as an Online TV Channel. | |
| 2315 | //HUD_ROSBANNED You have been banned from Grand Theft Auto Online. | |
| 2316 | //HUD_CONNPROB alert | |
| 2317 | //HUD_QURETSP Return to Grand Theft Auto V. | |
| 2318 | //HUD_KICKCREWMSG You were kicked from your Crew. Global_1315377 | |
| 2319 | //MP_PROP_PUR_KICK2 You no longer have access tp the property as the owner has left the game. | |
| 2320 | //MP_PROP_PUR_KICK0 You no longer have access to the property as you have traded it in. | |
| 2321 | //MP_PROP_PUR_KICK1 You no loger have access to the property as the owner has traded it. | |
| 2322 | //FM_COR_KICKA You have been kicked from the Activity | |
| 2323 | //FM_COR_KICK You have been kicked from the Job. | |
| 2324 | //PLYKICKED was voted from the game. | |
| 2325 | //SCTV_FEED0 Show Feed | |
| 2326 | //SCTV_FEED1 Show List | |
| 2327 | //SCTV_HELI_OFF Online TV Heli Off | |
| 2328 | //SCTV_HELI_ON Online TV Heli On | |
| 2329 | //SCTV_TS_CTFG GTA - fighting for transport | |
| 2330 | //SCTV_TS_CTFR Raid - protecting their base of operations | |
| 2331 | //SCTV_TS_CTFC Contend - bringing it back to base | |
| 2332 | //SCTV_TS_CTFH Hold - holding on for dear life | |
| 2333 | //SCTV_TS_LTS2 Two Team LTS - in a two team enter one leaves situation | |
| 2334 | //SCTV_TS_LTS3 Three Team LTS - in a three way.. battle for survival | |
| 2335 | //SCTV_TS_LTS4 four Team LTS - unlikely to survive a four team fight | |
| 2336 | //SCTV_T_LTS LTS | |
| 2337 | //SCTV_T_VS versus | |
| 2338 | //SCLB_MIS_NN Mission | |
| 2339 | //SCTV_SSYOU has stopped spectating you. | |
| 2340 | //SCTV_SYOU is spectating you. | |
| 2341 | //DSV_TPLYS destroy the ~r~target vehicle. | |
| 2342 | //PTD_TPLYSH took down the Smuggler Helicopter. | |
| 2343 | //SCLB_PROFILE View Profile | |
| 2344 | //SCLB_NO_ROS The Rockstar game services are unavailable right now. Please try again later. | |
| 2345 | //SCLB_SIGN_OUT You have signed out of PlayStation Network and will be unable to view leaderboard data. | |
| 2346 | //SCLB_NOT_ONL Sign in to Playstation Network to view leaderboards data. | |
| 2347 | //FMMC_COR_SCLB5 Driver | |
| 2348 | //FMMC_COR_SCLB6 Co-Driver | |
| 2349 | //SCLB_C_RANK POSITION | |
| 2350 | //SCLB_RCE_NN Race | |
| 2351 | SCLB_GLOBAL GLOBAL | |
| 2352 | SCLB_FRIENDS FRIENDS | |
| 2353 | SCLB_CREW CREW | |
| 2354 | SHOP_CONTENT_1 beach bum | |
| 2355 | SHOP_CONTENT_2 business update | |
| 2356 | SHOP_CONTENT_3 festive | |
| 2357 | SHOP_CONTENT_4 valentine's | |
| 2358 | SHOP_CONTENT_5 high life update | |
| 2359 | SHOP_CONTENT_6 "im not a hipster" | |
| 2360 | SHOP_CONTENT_6b "im not a hipster" update | |
| 2361 | SHOP_CONTENT_7 heists | |
| 2362 | SHOP_CONTENT_8 independence day | |
| 2363 | SHOP_CONTENT_9 san andreas flight school | |
| 2364 | SHOP_CONTENT_10 last team standing | |
| 2365 | SHOP_CONTENT_12 ill-gotten gains update part 1 | |
| 2366 | SHOP_CONTENT_13 video edditor | |
| 2367 | SHOP_CONTENT_14 ill-gotten gains update part 2 | |
| 2368 | PIM_INVAT Invite to Apartment has been send to . | |
| 2369 | PIM_HINVAP Invite this player to your apartment. | |
| 2370 | PIM_HINVA Invite players to your Apartment. | |
| 2371 | PIM_INVAP Invite to Apartment. | |
| 2372 | PIM_TINVE Inventory | |
| 2373 | PIM_HHEIS Choose to Spectate other members of your Heist Crew. | |
| 2374 | PIM_HHEIB Your Heist Crew cannot currently be spectated. | |
| 2375 | PIM_HINVE Your Inventory contains carried oteams such as cash and clothing Accessories. | |
| 2376 | PIM_HPASIY Confirm turning on Passive Mode. | |
| 2377 | PIM_HPASIN Confrim turning off Passive Mode. | |
| 2378 | PIM_HHLPL Make your blip flash to other players for a short time. | |
| 2379 | PIM_HHLPR Make the selected player's blip flash to you for a short time.' | |
| 2380 | PIM_HPGS A list of all the players in your session. | |
| 2381 | PIM_HLJCE Cash earned from the last Job. | |
| 2382 | PIM_HHEISP Select to spectate this player. | |
| 2383 | PIM_TCHT Chat | |
| 2384 | PIM_TAPV Vehicle Access. | |
| 2385 | 0x1BA5E3C4 Rockstar wants to know what you | |
| 2386 | 0xB9C144DB Unable to Join. The session you have tried to join is using content created by another player. An inactive profile only has permissions for Rockstar content. | |
| 2387 | 0x41818A76 Your Sony Entertainment Network account has chat restrictions enabled, only Rockstar content will be available and voice chat is disabled. | |
| 2388 | 0x2A199171 Cheater classification release date ~1~/~1~/~1~. | |
| 2389 | 0x093ADE5F Rockstar Dev SCTV | |
| 2390 | 0x0BD9B728 You have been removed from this session by a Rockstar Games administrator. | |
| 2391 | 0x28DBEF47 Rockstar Game Services have corrected your GTA Dollars by -$~1~. | |
| 2392 | 0xCF6AEAC0 Rockstar Games SCADMIN Version | |
| 2393 | TICK_PH_INV joined job. | |
| 2394 | TICK_PH_INVA joined activity. | |
| 2395 | TICK_BC_ON has active their Broadcast app. | |
| 2396 | TICK_BC_OFF has deactivated their Broadcast app. | |
| 2397 | TICK_HEAD NULL | |
| 2398 | TICK_DIED died. | |
| 2399 | PIM_EMVTK kicked you from thier Personal Vehicle. | |
| 2400 | TICK_BC_ON has activated thier Brodcast app. | |
| 2401 | TICK_BC_OFF has deactivated thier Brodcast app. | |
| 2402 | PLYVEH_INS_DES1 Your insured Personal Vehicle has been destroyed The player who destroyed it has paid $ towards the clain premium. | |
| 2403 | PLYVEH_INS_DES has detroyed your insured Personal Vehicle They have paid $ towards the claim premium. | |
| 2404 | TICK_PH_INV joined Job. | |
| 2405 | 0xA1519D54 Return to Grand Theft Auto V | |
| 2406 | 0x478FDC87 GTA Online | |
| 2407 | 0x56F3BD49 Grand Theft Auto Online | |
| 2408 | 0x5E96ECC Are you sure you want to quit this session? | |
| 2409 | 0x14610888 Progress will be automatically saved. | |
| 2410 | 0x73A36AB4 Playing story | |
| 2411 | 0x83BA9913 Prologue | |
| 2412 | 0xABB00DEB Grand Theft Auto V | |
| 2413 | 0x6F927644 Bay City Ave | |
| 2414 | 0xFBD41663 Alert | |
| 2415 | 0xAB11B305 Quit | |
| 2416 | 0xC3881591 No | |
| 2417 | 0xC4A4A05C Yes | |
| 2418 | ||
| 2419 | ||
| 2420 | */ | |
| 2421 | ||
| 2422 | COMMEND_SPAM_TIMEOUT_DISABLED = 0x6133E077 | |
| 2423 | COMMEND_SPAM_TIMEOUT = 0xA76D3517 | |
| 2424 | MPPLY_LAST_COMMEND_RESTORE = 0x181F07A6 | |
| 2425 | MPPLY_LAST_COMMEND_PENALTY = 0x8CF94EB4 | |
| 2426 | MPPLY_COMMEND_STRENGTH = 0xADA7E7D3 | |
| 2427 | REPORT_SPAM_TIMEOUT_DISABLED = 0x33406312 | |
| 2428 | REPORT_SPAM_TIMEOUT = 0x332F884E | |
| 2429 | MPPLY_LAST_REPORT_RESTORE = 0x211774A4 | |
| 2430 | MPPLY_LAST_REPORT_PENALTY = 0xB87499EA | |
| 2431 | MPPLY_REPORT_STRENGTH = 0x850CF917 | |
| 2432 | COMMEND_TIMEOUT_DISABLED = 0x73DC7AA3 | |
| 2433 | COMMEND_TIMEOUT = 0xABE83C3B | |
| 2434 | REPORT_TIMEOUT_DISABLED = 0x7266E8B2 | |
| 2435 | REPORT_TIMEOUT = 0xA13B434D | |
| 2436 | CL_SEND_FRIEND_REQUEST = 0xAFEA09C6 | |
| 2437 | KICK_TIMEOUT = 0xB2111FE4 | |
| 2438 | KICK_TIMEOUT_DISABLED = 0xD892E535 | |
| 2439 | IDLEKICK_KICK = 0x949C8AAD | |
| 2440 | ENABLE_KICK = 0xE2E1805E | |
| 2441 | KICK_VOTES_NEEDED_RATIO = 0xEED6D618 | |
| 2442 | BADSPORT_THRESHOLD = 0x4C507C3D | |
| 2443 | BADSPORT_THRESHOLD_NOTCHEATER = 0x727F6777 | |
| 2444 | IDLEKICK_WARNING1 = 0xB3A4D684 | |
| 2445 | IDLEKICK_WARNING2 = 0xC16F7219 | |
| 2446 | IDLEKICK_WARNING3 = 0xE009AF49 | |
| 2447 | COMMENDREPORT_MAX_STRENGTH = 0xF227F666 | |
| 2448 | MP_GLOBAL = 0x38CEB237, 953070135 | |
| 2449 | BASE_GLOBALS = 0xB5EE873, 190769267 | |
| 2450 | CONTENT_MODIFIER_ = 0xE8895D8A, 3901316490 | |
| 2451 | MP_FM_RACES = 0xC32348A0, 3273869472 | |
| 2452 | MP_FM_RACES_CAR = 0x3D76C61B, 1031194139 | |
| 2453 | MP_FM_RACES_SEA = 0xCC580A3A, 3428321850 | |
| 2454 | MP_FM_RACES_AIR = 0xF4175CBB, 4095171771 | |
| 2455 | MP_FM_BASEJUMP = 0x30C5F8C6, 818280646 | |
| 2456 | MP_FM_RACES_CYCLE = 0xEA4446C2, 3930343106 | |
| 2457 | MP_FM_RACES_BIKE = 0xC795D7FC, 3348486140 | |
| 2458 | MP_FM_MISSIONS = 0x202DE323, 539878179 | |
| 2459 | MP_FM_CONTACT = 0xBDD1A4F5, 3184633077 | |
| 2460 | MP_FM_RANDOM = 0xAD9BAC56, 2912660566 | |
| 2461 | MP_FM_VERSUS = 0x56A36BC3, 1453550531 | |
| 2462 | MP_FM_LTS = 0xFCDE7FF3, 4242440179 | |
| 2463 | MP_FM_CAPTURE = 0xF508B799, 4110989209 | |
| 2464 | MP_FM_DM = 0x7030EBCC, 1882254284 | |
| 2465 | MP_FM_SURVIVAL = 0x2217A8F1, 571975921 | |
| 2466 | MP_FM_GANG_ATTACK = 0x67F82C09, 1744317449 | |
| 2467 | MP_CNC = 0x53599429, 1398379561 | |
| 2468 | MP_CNC_TEAM_COP = 0xEE611088, 3999338632 | |
| 2469 | MP_CNC_TEAM_VAGOS = 0xBB04D34F, 3137655631 | |
| 2470 | MP_CNC_TEAM_LOST = 0x3AEFBEA0, 988790432 | |
| 2471 | MP_FM = 0x43FE68BD, 1140746429 | |
| 2472 | DISABLE_SCTV_GTAO_TV = 0xB715B652, 3071653458 | |
| 2473 | DISABLE_SCTV_FRIENDS_SPECTATE = 0x74AFE8F8, 1957685496 | |
| 2474 | DisableSpectate = 0xCAB5C6A2, 3400910498 | |
| 2475 | DisableSpectate = 0x2A5A6D1F, 710569247 | |
| 2476 | mpply_crew_0_id = 0x1838E2E9, 406381289 | |
| 2477 | mpply_crew_1_id = 0x6388AA41, 1669900865 | |
| 2478 | mpply_crew_2_id = 0x33A7D8B, 54164875 | |
| 2479 | mpply_crew_3_id = 0xCDC93A60, 3452516960 | |
| 2480 | mpply_crew_4_id = 0xA202D7E4, 2718095332 | |
| 2481 | mpply_crew_local_xp_0 = 0xA9C0CB15, 2847984405 | |
| 2482 | mpply_crew_local_xp_1 = 0x9C0D2FAE, 2618109870 | |
| 2483 | mpply_crew_local_xp_2 = 0x4C579040, 1280806976 | |
| 2484 | mpply_crew_local_xp_3 = 0xBEA1F4D7, 3198285015 | |
| 2485 | mpply_crew_local_xp_4 = 0x70E5595B, 1894078811 | |
| 2486 | mpply_became_cheater_num = 0xA2A859D5, 2728942037 | |
| 2487 | mpply_friendly = 0xDAFB10F9, 3673886969 | |
| 2488 | mpply_offensive_language = 0x3CDB43E2, 1021002722 | |
| 2489 | mpply_griefing = 0x9C6A0C42, 2624195650 | |
| 2490 | mpply_helpful = 0x893E1390, 2302546832 | |
| 2491 | mpply_offensive_ugc = 0xF3DE4879, 4091431033 | |
| 2492 | mpply_offensive_tagplate = 0xE8FB6DD5, 3908791765 | |
| 2493 | mpply_exploits = 0x9F79BA0B, 2675554827 | |
| 2494 | mpply_game_exploits = 0xCBFD04A4, 3422356644 | |
| 2495 | mpply_vc_hate = 0xE7072CD, 242250445 | |
| 2496 | mpply_vc_annoyingme = 0x62EB8C5A, 1659604058 | |
| 2497 | ||
| 2498 | ||
| 2499 | //badsport and some cheat stuff hashes. need to be bruteforced | |
| 2500 | 0x6D7F0859 | |
| 2501 | 0xBC707798 | |
| 2502 | 0xC71E28C5 | |
| 2503 | ||
| 2504 | ||
| 2505 | ||
| 2506 | ||
| 2507 | //vehicle weapons code: | |
| 2508 | Vector3 Global_1312302_8; //coords from 1 | |
| 2509 | Vector3 Global_1312302_11; //coords from 2 | |
| 2510 | ||
| 2511 | Vector3 Global_1312302_2; //coords to 1 | |
| 2512 | Vector3 Global_1312302_5; //coords to 2 | |
| 2513 | ||
| 2514 | Vector3 Global_1312295_2; //spike coords | |
| 2515 | int Global_1312295_5; //spike pickup | |
| 2516 | ||
| 2517 | void func_3000() | |
| 2518 | {
| |
| 2519 | int iVar0; | |
| 2520 | Vector3 Var1; | |
| 2521 | Vector3 Var2; | |
| 2522 | float fVar3; | |
| 2523 | float uVar4; | |
| 2524 | Vector3 vVar5; | |
| 2525 | Vector3 vVar6; | |
| 2526 | float uVar7; | |
| 2527 | Vector3 vVar8; | |
| 2528 | Vector3 vVar9; | |
| 2529 | ||
| 2530 | ||
| 2531 | if (IS_PLAYER_PLAYING(PLAYER_ID())) | |
| 2532 | {
| |
| 2533 | if (IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(), 0)) | |
| 2534 | {
| |
| 2535 | _DISABLE_INPUT_GROUP(2); | |
| 2536 | iVar0 = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 0); | |
| 2537 | GET_MODEL_DIMENSIONS(GET_ENTITY_MODEL(iVar0), &Var1, &Var2); | |
| 2538 | if (IS_CONTROL_JUST_PRESSED(2, INPUT_SCRIPT_LS) || IS_CONTROL_PRESSED(2, INPUT_SCRIPT_LS)) | |
| 2539 | {
| |
| 2540 | if (IS_CONTROL_PRESSED(2, INPUT_SCRIPT_RS)) | |
| 2541 | {
| |
| 2542 | Global_1312302_8 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(iVar0, (Var1.x - 0.2f), (Var1.y - 0.5f), 0.0f); | |
| 2543 | Global_1312302_11 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(iVar0, (Var2.x + 0.2f), (Var1.y - 0.5f), 0.0f); | |
| 2544 | if (!IS_ENTITY_IN_AIR(iVar0)) | |
| 2545 | {
| |
| 2546 | _GET_GROUND_Z_COORD_WITH_OFFSETS(Global_1312302_8.x, Global_1312302_8.y, Global_1312302_8.z, &uVar4, &vVar5); | |
| 2547 | vVar6 = func_363(vVar5, Subtract(func_765(Global_1312302_11), Global_1312302_8)); | |
| 2548 | Global_1312302_2 = Subtract(Global_1312302_8, Modulate(vVar6, NewVector3(300.0f, 300.0f, 300.0f))); | |
| 2549 | Global_1312302_5 = Subtract(Global_1312302_11, Modulate(vVar6, NewVector3(300.0f, 300.0f, 300.0f))); | |
| 2550 | } | |
| 2551 | else | |
| 2552 | {
| |
| 2553 | Global_1312302_2 = func_3001(Global_1312302_8, iVar0, -300.0f); | |
| 2554 | Global_1312302_5 = func_3001(Global_1312302_11, iVar0, -300.0f); | |
| 2555 | } | |
| 2556 | } | |
| 2557 | else | |
| 2558 | {
| |
| 2559 | Global_1312302_8 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(iVar0, (Var1.x - 0.2f), (Var2.y + 0.5f), 0.0f); | |
| 2560 | Global_1312302_11 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(iVar0, (Var2.x + 0.2f), (Var2.y + 0.5f), 0.0f); | |
| 2561 | if (!IS_ENTITY_IN_AIR(iVar0)) | |
| 2562 | {
| |
| 2563 | _GET_GROUND_Z_COORD_WITH_OFFSETS(Global_1312302_8.x, Global_1312302_8.y, Global_1312302_8.z, &uVar7, &vVar8); | |
| 2564 | vVar9 = func_363(vVar8, Subtract(func_765(Global_1312302_11), Global_1312302_8)); | |
| 2565 | Global_1312302_2 = Addition(Global_1312302_8, Modulate(vVar9, NewVector3(300.0f, 300.0f, 300.0f))); | |
| 2566 | Global_1312302_5 = Addition(Global_1312302_11, Modulate(vVar9, NewVector3(300.0f, 300.0f, 300.0f))); | |
| 2567 | ||
| 2568 | } | |
| 2569 | else | |
| 2570 | {
| |
| 2571 | Global_1312302_2 = func_3001(Global_1312302_8, iVar0, 1133903872); | |
| 2572 | Global_1312302_5 = func_3001(Global_1312302_11, iVar0, 1133903872); | |
| 2573 | } | |
| 2574 | } | |
| 2575 | if ((GET_ENTITY_SPEED(iVar0) * GET_ENTITY_SPEED(iVar0)) > 400.0f) | |
| 2576 | {
| |
| 2577 | fVar3 = ((GET_ENTITY_SPEED(iVar0) * GET_ENTITY_SPEED(iVar0)) + 100.0f); | |
| 2578 | } | |
| 2579 | else | |
| 2580 | {
| |
| 2581 | fVar3 = 400.0f; | |
| 2582 | } | |
| 2583 | if (!func_987(Global_1312302_8, Global_1312302_2)) | |
| 2584 | {
| |
| 2585 | _SHOOT_SINGLE_VEHICLE_BULLET_BETWEEN_COORDS( | |
| 2586 | Global_1312302_8.x, Global_1312302_8.y, Global_1312302_8.z, | |
| 2587 | Global_1312302_2.x, Global_1312302_2.y, Global_1312302_2.z, | |
| 2588 | 250, 1, GET_HASH_KEY("weapon_vehicle_rocket"), PLAYER_PED_ID(), 1, 1, fVar3, iVar0, 0);
| |
| 2589 | } | |
| 2590 | if (!func_987(Global_1312302_11, Global_1312302_5)) | |
| 2591 | {
| |
| 2592 | _SHOOT_SINGLE_VEHICLE_BULLET_BETWEEN_COORDS( | |
| 2593 | Global_1312302_11.x, Global_1312302_11.y, Global_1312302_11.z, | |
| 2594 | Global_1312302_5.x, Global_1312302_5.y, Global_1312302_5.z, | |
| 2595 | 250, 1, GET_HASH_KEY("weapon_vehicle_rocket"), PLAYER_PED_ID(), 1, 1, fVar3, iVar0, 0);
| |
| 2596 | } | |
| 2597 | ||
| 2598 | //DISABLE_CONTROL_ACTION(0, INPUT_VEH_HORN); | |
| 2599 | } | |
| 2600 | } | |
| 2601 | } | |
| 2602 | } | |
| 2603 | ||
| 2604 | void func_3005() | |
| 2605 | {
| |
| 2606 | int iVar0; | |
| 2607 | Vector3 Var1, uVar2; | |
| 2608 | ||
| 2609 | if (IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(), 0)) | |
| 2610 | {
| |
| 2611 | DISABLE_CONTROL_ACTION(0, 79); | |
| 2612 | iVar0 = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 0); | |
| 2613 | GET_MODEL_DIMENSIONS(GET_ENTITY_MODEL(iVar0), &Var1, &uVar2); | |
| 2614 | if (IS_CONTROL_JUST_PRESSED(2, 200)) | |
| 2615 | {
| |
| 2616 | Global_1312295_2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(iVar0, 0.0f, (Var1.y - 1.0f), 0.0f); | |
| 2617 | } | |
| 2618 | } | |
| 2619 | } | |
| 2620 | void func_3003() | |
| 2621 | {
| |
| 2622 | func_3005(); | |
| 2623 | if (!DOES_ENTITY_EXIST(Global_1312295_5)) | |
| 2624 | {
| |
| 2625 | Global_1312295_5 = CREATE_AMBIENT_PICKUP(GET_HASH_KEY("pickup_vehicle_custom_script"),
| |
| 2626 | Global_1312295_2.x, Global_1312295_2.y, Global_1312295_2.z, | |
| 2627 | 0, 2, GET_HASH_KEY("prop_tyre_spike_01"), 1, 0);
| |
| 2628 | _HIGHLIGHT_PLACEMENT_COORDS(Global_1312295_2.x, Global_1312295_2.y, Global_1312295_2.z, 0); | |
| 2629 | PLAY_SOUND_FROM_ENTITY(-1, "SPIKES", Global_1312295_5, "MP_RACE_SPIKES_SOUNDSET", 1, 50); | |
| 2630 | } | |
| 2631 | else if (DOES_ENTITY_EXIST(Global_1312295_5)) | |
| 2632 | {
| |
| 2633 | DELETE_OBJECT(&(Global_1312295_5)); | |
| 2634 | } | |
| 2635 | } | |
| 2636 | ||
| 2637 | //loop: | |
| 2638 | if (featureWeaponVehRockets) | |
| 2639 | {
| |
| 2640 | if (!IS_PAUSE_MENU_ACTIVE()) | |
| 2641 | {
| |
| 2642 | func_3003(); | |
| 2643 | func_3000(); | |
| 2644 | } | |
| 2645 | ||
| 2646 | ||
| 2647 | ||
| 2648 | ||
| 2649 | ||
| 2650 | if (!DOES_PARTICLE_FX_LOOPED_EXIST(particalmH)) | |
| 2651 | {
| |
| 2652 | printf("asset: %s, name: %s \n", result.asset, result.name);
| |
| 2653 | _SET_PTFX_ASSET_NEXT_CALL(result.asset); | |
| 2654 | particalmH = _START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE_2(result.name, PLAYER_PED_ID(), | |
| 2655 | 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SKEL_L_Finger01, 1.0f, 0, 0, 0); | |
| 2656 | ||
| 2657 | _SET_PTFX_ASSET_NEXT_CALL(result.asset); | |
| 2658 | particalmH = _START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE_2(result.name, PLAYER_PED_ID(), | |
| 2659 | 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SKEL_R_Finger01, 1.0f, 0, 0, 0); | |
| 2660 | ||
| 2661 | SET_PARTICLE_FX_LOOPED_COLOUR(particalmH, titlebox.R / 255.0f, titlebox.G / 255.0f, titlebox.B / 255.0f, 0); | |
| 2662 | ||
| 2663 | } | |
| 2664 | if (DOES_PARTICLE_FX_LOOPED_EXIST(particalmH)) | |
| 2665 | {
| |
| 2666 | //STOP_PARTICLE_FX_LOOPED(particalmH, 1); | |
| 2667 | REMOVE_PARTICLE_FX(particalmH, 1); | |
| 2668 | } | |
| 2669 | ||
| 2670 | ||
| 2671 | ||
| 2672 | ||
| 2673 | int myAtoi(char* str) {
| |
| 2674 | int length = strlen(str); | |
| 2675 | int counter = 0; | |
| 2676 | int signcounter = 0; | |
| 2677 | unsigned int result = 0; | |
| 2678 | int result2 = 0; | |
| 2679 | bool negative = false; | |
| 2680 | char *temp = (char*)malloc(sizeof(char)); | |
| 2681 | for (int i = 0; i < length; i++) | |
| 2682 | {
| |
| 2683 | if (counter == 0 && (str[i] != 0x20 && str[i] != 0x2B && str[i] != 0x2D) && (str[i] < 0x30 || str[i] > 0x39)) | |
| 2684 | break; | |
| 2685 | ||
| 2686 | else if (((counter > 0 || signcounter > 0) || (i > 0 && signcounter == 0 && str[i] != 0x20 && str[i] != 0x2B && str[i] != 0x2D)) && (str[i] < 0x30 || str[i] > 0x39)) | |
| 2687 | break;; | |
| 2688 | ||
| 2689 | ||
| 2690 | if (str[i] >= 0x30 && str[i] <= 0x39) | |
| 2691 | {
| |
| 2692 | if (counter > 0) | |
| 2693 | temp = (char*)_realloc(temp, (counter + 1) * sizeof(char)); | |
| 2694 | ||
| 2695 | temp[counter] = str[i]; | |
| 2696 | counter++; | |
| 2697 | } | |
| 2698 | else if (str[i] == 0x2D) | |
| 2699 | {
| |
| 2700 | negative = !negative; | |
| 2701 | signcounter++; | |
| 2702 | } | |
| 2703 | else if (str[i] == 0x2B) | |
| 2704 | signcounter++; | |
| 2705 | ||
| 2706 | if (signcounter > 1) | |
| 2707 | return 0; | |
| 2708 | ||
| 2709 | //length--; | |
| 2710 | } | |
| 2711 | ||
| 2712 | if (counter == 0) | |
| 2713 | return 0; | |
| 2714 | else if (counter > 10 && !negative) | |
| 2715 | return INT_MAX; | |
| 2716 | else if (counter > 10 && negative) | |
| 2717 | return INT_MIN; | |
| 2718 | ||
| 2719 | ||
| 2720 | for (int i = 0; i < counter; i++) | |
| 2721 | {
| |
| 2722 | result += (temp[i] - 0x30) * ipow(10, counter - 1 - i); | |
| 2723 | ||
| 2724 | } | |
| 2725 | ||
| 2726 | if (result > 2147483647 && !negative) | |
| 2727 | result2 = INT_MAX; | |
| 2728 | ||
| 2729 | else if (result > 2147483648 && negative) | |
| 2730 | result2 = INT_MIN; | |
| 2731 | ||
| 2732 | else if (negative) | |
| 2733 | result2 = -result; | |
| 2734 | else | |
| 2735 | result2 = result; | |
| 2736 | ||
| 2737 | return result2; | |
| 2738 | } | |
| 2739 | ||
| 2740 | ||
| 2741 | ||
| 2742 | ||
| 2743 | ||
| 2744 | if (onPress && NETWORK_IS_PLAYER_ACTIVE((Player)Menu::currentop - 1)) | |
| 2745 | {
| |
| 2746 | if (featureIsNetworkList) | |
| 2747 | {
| |
| 2748 | iSelectedPlayer = (Player)Menu::currentop - 1; | |
| 2749 | if (SUB::NETWORK_PLAYERS_OPTIONS != -1) Menu::SetSub_delayed = SUB::NETWORK_PLAYERS_OPTIONS; | |
| 2750 | } | |
| 2751 | else | |
| 2752 | {
| |
| 2753 | Player playerIter = GET_PLAYER_PED(Menu::currentop - 1); | |
| 2754 | if (RequestControlOfEnt(iSelectedPed)) { }
| |
| 2755 | switch (networkListActions) | |
| 2756 | {
| |
| 2757 | case 0: switch (featureAttachPedToPlayer) {
| |
| 2758 | case 0: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0, 0.2, 0, 0, 0, 0, 1, 1, 0, 1, 2, 1); break; | |
| 2759 | case 1: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0, -0.3, 0, 0, 0, 0, 1, 1, 0, 1, 2, 1); break; | |
| 2760 | case 2: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0, 0.5, 0, 0, 0, 180, 1, 1, 0, 1, 2, 1); break; | |
| 2761 | case 3: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0, 0.3, 0.8, 0, 0, 180, 1, 1, 0, 1, 2, 1); break; | |
| 2762 | case 4: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0, 0.3, 0.7, 86.0, 0, 180, 1, 1, 0, 1, 2, 1); break; | |
| 2763 | case 5: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0.0, 0.3, -0.3, 13, 180, 0.0, 1, 1, 0, 1, 2, 1); break; | |
| 2764 | case 6: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0.2, 0.3, 0.9, 0.0, 0.0, -120.0, 1, 1, 0, 1, 2, 1); break; | |
| 2765 | case 7: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, -0.09, -0.01, -0.3, 13.02, 84.0, 96.0, 1, 1, 0, 1, 2, 1); break; | |
| 2766 | case 8: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, 0.11, 0.48, 1.13, -179.98, 100.0, -91.0, 1, 1, 0, 1, 2, 1); break; | |
| 2767 | case 9: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, -1, -0.02, 0.32, 0.69, -51.98, -14.0999, 180.0, 1, 1, 0, 1, 2, 1); break; | |
| 2768 | case 10: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, 0.13, 0.56, -0.46, 0.0, 0.0, 84.0, 1, 1, 0, 1, 2, 1); break; | |
| 2769 | case 11: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, -0.09, -0.07, -0.15, -7.0, -87.0, -90.0, 1, 1, 0, 1, 2, 1); break; | |
| 2770 | case 12: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, 0.15, 0.14, 0.93, -168.0003, 73.0, -282.0, 1, 1, 0, 1, 2, 1); break; | |
| 2771 | case 13: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, -0.11, 0.08, -0.29, 10.0, 92.0, -288.0, 1, 1, 0, 1, 2, 1); break; | |
| 2772 | case 14: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, -0.09, 0.57, 0.55, 10.0, -305.0, 270.0, 1, 1, 0, 1, 2, 1); break; | |
| 2773 | case 15: ATTACH_ENTITY_TO_ENTITY(iSelectedPed, playerIter, 0, 0.0, 0.63, 0.73, 0.0, 0.0, 0.0, 1, 1, 0, 1, 2, 1); break; | |
| 2774 | } break; | |
| 2775 | case 1: TASK_COMBAT_PED(iSelectedPed, playerIter, 0, 16); break; | |
| 2776 | case 2: break; | |
| 2777 | case 3: for (int i = 0; i < 15; i++) { if (RequestControlOfEnt(s_ped[i])) TASK_COMBAT_PED(s_ped[i], playerIter, 0, 16);
| |
| 2778 | } break; | |
| 2779 | case 4: for (int i = 0; i < 15; i++) { if (RequestControlOfEnt(s_ped[i]))
| |
| 2780 | ATTACH_ENTITY_TO_ENTITY(s_ped[i], playerIter, GET_RANDOM_INT_IN_RANGE(0, 0xfcd9), GET_RANDOM_FLOAT_IN_RANGE(0, 3), GET_RANDOM_FLOAT_IN_RANGE(0, 3), GET_RANDOM_FLOAT_IN_RANGE(0, 3), 0, 0, 0, 1, 1, 1, 1, 2, 1); | |
| 2781 | }break; | |
| 2782 | case 5: entityObjectOps = playerIter; if (IS_PED_IN_ANY_VEHICLE(entityObjectOps, 1)) { entityObjectOps = GET_VEHICLE_PED_IS_IN(entityObjectOps, 1); } break;
| |
| 2783 | case 6: whichBone = 1; featureAttToSomething = 3; netPlayerAttachment = playerIter; ATTACH_ENTITY_TO_ENTITY(entityObjectOps, netPlayerAttachment, -1, featureAttX, featureAttY, featureAttZ, featureAttPitch, featureAttRoll, featureAttYaw, 1, 1, 1, 1, 2, 1); if (SUB::ATTACHMENTOPTIONS != -1) Menu::SetSub_delayed = SUB::ATTACHMENTOPTIONS; break; | |
| 2784 | case 7: Vector3 tmp = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(playerIter, 0.0, 1.3, 0.0); networkSynchronisedScene(tmp.x, tmp.y, tmp.z, 0.0, 0.0, 0.0, GET_PLAYER_PED(iSelectedPlayer), "move_m@generic", "idle", 1); break; | |
| 2785 | case 8: bLoadFile = 1; fileLoadI = 4; break; | |
| 2786 | case 9: PlaceBounty(PLAYER_ID(), Menu::currentop - 1, featureBountyValue); break; | |
| 2787 | } | |
| 2788 | } | |
| 2789 | ||
| 2790 | return; // Either use return; to exit to the switch if you don't have code below that you want executed. | |
| 2791 | } | |
| 2792 | ||
| 2793 | ||
| 2794 | ||
| 2795 | ||
| 2796 | ||
| 2797 | ||
| 2798 | enum miscToggleActions {
| |
| 2799 | MT_UNLIMITEDAMMO, | |
| 2800 | MT_LONG_LOCKON_RANGE, | |
| 2801 | MT_PLAYERSLIST_VEH_HANDLE, | |
| 2802 | MT_COPY_MODEL, | |
| 2803 | MT_CHAT_BYPASS, | |
| 2804 | MT_NITROUS_FX, | |
| 2805 | MT_ATTACH_VISE_VERSA, | |
| 2806 | }; | |
| 2807 | ||
| 2808 | switch (miscAction) | |
| 2809 | {
| |
| 2810 | case 0: GiveAllWeapons(iSelectedPlayer, 1); ShowNotification("Gave Unlimited Ammo Weapons"); break;
| |
| 2811 | case 1: featureHiddenLockonRange = !featureHiddenLockonRange; ShowNotification(featureHiddenLockonRange ? (char*)"Long Lockon Range ~g~ ON" : (char*)"Long Lockon Range ~r~ OFF"); break; | |
| 2812 | case 2: featureIsNetworkList = 0; networkListActions = 5; if (SUB::NETWORK_PLAYERS != -1) Menu::SetSub_delayed = SUB::NETWORK_PLAYERS; break; | |
| 2813 | case 3: featureCopyCopyModel = !featureCopyCopyModel; ShowNotification(featureCopyCopyModel ? (char*)"Copy Model ~g~ ON" : (char*)"Copy Model ~r~ OFF"); break; | |
| 2814 | case 4: featureChatBypass = !featureChatBypass; ShowNotification(featureChatBypass ? (char*)"Chat Bypass ~g~ ON" : (char*)"Chat Bypass ~r~ OFF"); break; | |
| 2815 | case 5: featureBoostNoCamFX = !featureBoostNoCamFX; ShowNotification(featureBoostNoCamFX ? (char*)"Cam FX ~g~ ON" : (char*)"Cam FX ~r~ OFF"); break; | |
| 2816 | case 6: featureAttachViseVersa = !featureAttachViseVersa; ShowNotification(featureAttachViseVersa ? (char*)"Attach Vise Versa ~g~ ON" : (char*)"Attach Vise Versa ~r~ OFF"); break; | |
| 2817 | } | |
| 2818 | ||
| 2819 | ||
| 2820 | ||
| 2821 | ||
| 2822 | ||
| 2823 | ||
| 2824 | ||
| 2825 | ||
| 2826 | void AddToggleM(char *text, miscToggleActions miscAction, bool isToggle = false, bool &pState = null, bool &option_code_bool = null, char *desc = NULL) | |
| 2827 | {
| |
| 2828 | AddOption(text, null, nullFunc, -1, NULL, desc); | |
| 2829 | if (isToggle) | |
| 2830 | {
| |
| 2831 | if (!pState) OptionStatus(0); | |
| 2832 | else if (pState) OptionStatus(1); | |
| 2833 | } | |
| 2834 | if (Menu::printingop == Menu::currentop) | |
| 2835 | {
| |
| 2836 | if (IsOptionPressed()) { if (isToggle) { pState = !pState; } else if (&option_code_bool != &null) { option_code_bool = true; } }
| |
| 2837 | toggleInstruction = 1; | |
| 2838 | if (IsOptionSJPressed()) | |
| 2839 | {
| |
| 2840 | switch (miscAction) | |
| 2841 | {
| |
| 2842 | case 0: GiveAllWeapons(iSelectedPlayer, 1); ShowNotification("Gave Unlimited Ammo Weapons"); break;
| |
| 2843 | case 1: featureHiddenLockonRange = !featureHiddenLockonRange; ShowNotification(featureHiddenLockonRange ? (char*)"Long Lockon Range ~g~ ON" : (char*)"Long Lockon Range ~r~ OFF"); break; | |
| 2844 | case 2: featureIsNetworkList = 0; networkListActions = 5; if (SUB::NETWORK_PLAYERS != -1) Menu::SetSub_delayed = SUB::NETWORK_PLAYERS; break; | |
| 2845 | case 3: featureCopyCopyModel = !featureCopyCopyModel; ShowNotification(featureCopyCopyModel ? (char*)"Copy Model ~g~ ON" : (char*)"Copy Model ~r~ OFF"); break; | |
| 2846 | case 4: featureChatBypass = !featureChatBypass; ShowNotification(featureChatBypass ? (char*)"Chat Bypass ~g~ ON" : (char*)"Chat Bypass ~r~ OFF"); break; | |
| 2847 | case 5: featureBoostNoCamFX = !featureBoostNoCamFX; ShowNotification(featureBoostNoCamFX ? (char*)"Cam FX ~g~ ON" : (char*)"Cam FX ~r~ OFF"); break; | |
| 2848 | case 6: featureAttachViseVersa = !featureAttachViseVersa; ShowNotification(featureAttachViseVersa ? (char*)"Attach Vise Versa ~g~ ON" : (char*)"Attach Vise Versa ~r~ OFF"); break; | |
| 2849 | } | |
| 2850 | } | |
| 2851 | } | |
| 2852 | } | |
| 2853 | ||
| 2854 | ||
| 2855 | ||
| 2856 | ||
| 2857 | ||
| 2858 | ||
| 2859 | if (CFileExists(GET_CONFIG_PATH)) | |
| 2860 | {
| |
| 2861 | file = CReadFile(GET_CONFIG_PATH, &file_size); | |
| 2862 | ||
| 2863 | featureDisplayInfo = GetPrivateProfileBool(APP_HAX_VALUES, "dispInfo", "0", file, file_size); | |
| 2864 | featureWorldPause = GetPrivateProfileBool(APP_HAX_VALUES, "pauseClock", "0", file, file_size); | |
| 2865 | //clockhour = GetPrivateProfileInt(APP_HAX_VALUES, "clockTime", GET_CLOCK_HOURS(), file, file_size); | |
| 2866 | weatherTypeIndex = GetPrivateProfileInt(APP_HAX_VALUES, "weather", 4, file, file_size); | |
| 2867 | GetPrivateProfileString(APP_HAX_VALUES, "nameChange", "DEFAULT", nameChangeEx, 24, file, file_size); if (strcmp("DEFAULT", nameChangeEx)) { psnchangeName = nameChangeEx; featurePSNChangeI = 1; }
| |
| 2868 | ||
| 2869 | spoofRankValue = GetPrivateProfileInt(APP_HAX_VALUES, "spoofRankValue", 53, file, file_size); | |
| 2870 | spoofWalletValue = GetPrivateProfileInt(APP_HAX_VALUES, "spoofWalletValue", 0, file, file_size); | |
| 2871 | spoofKillsValue = GetPrivateProfileInt(APP_HAX_VALUES, "spoofKillsValue", 75, file, file_size); | |
| 2872 | spoofDeathsValue = GetPrivateProfileInt(APP_HAX_VALUES, "spoofDeathValue", 100, file, file_size); | |
| 2873 | ||
| 2874 | featureInvincibility = GetPrivateProfileBool(APP_HAX_VALUES, "pInvincible", "0", file, file_size); | |
| 2875 | featureSuperJump = GetPrivateProfileBool(APP_HAX_VALUES, "pSupJump", "0", file, file_size); | |
| 2876 | featureSuperRun = GetPrivateProfileBool(APP_HAX_VALUES, "pSupRun", "0", file, file_size); | |
| 2877 | featureNeverWanted = GetPrivateProfileBool(APP_HAX_VALUES, "pNoWant", "0", file, file_size); | |
| 2878 | featurSonicRun = GetPrivateProfileBool(APP_HAX_VALUES, "pSanicRun", "0", file, file_size); | |
| 2879 | ||
| 2880 | featureWeaponNoReload = GetPrivateProfileBool(APP_HAX_VALUES, "wInfAmmo", "0", file, file_size); | |
| 2881 | ||
| 2882 | featureVehicleInvincibility = GetPrivateProfileBool(APP_HAX_VALUES, "veInvincible", "0", file, file_size); | |
| 2883 | featureAutoRepair = GetPrivateProfileBool(APP_HAX_VALUES, "veAutoFix", "0", file, file_size); | |
| 2884 | featureNitrous = GetPrivateProfileBool(APP_HAX_VALUES, "veHornBoost", "0", file, file_size); | |
| 2885 | ||
| 2886 | featureVehWarpInSpawned = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnInVehic", "0", file, file_size); | |
| 2887 | featurePreUpgraded = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnPreMax", "0", file, file_size); | |
| 2888 | featureInvincibleVehicleOnSpawn = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnInvincible", "0", file, file_size); | |
| 2889 | featureAddBlipToSpawnVeh = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnWBlip", "0", file, file_size); | |
| 2890 | featureVehicleSpawnerDeletePrevious = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnDeletePre", "0", file, file_size); | |
| 2891 | featureVehicleSpawnerWitUpgrades = GetPrivateProfileBool(APP_HAX_VALUES, "veSpawnWMods", "0", file, file_size); | |
| 2892 | GetPrivateProfileString(APP_HAX_VALUES, "veSpawnPlateTxt", "Semjases", plateTxt, 14, file, file_size); vehicleSpawnerPlateText = plateTxt; | |
| 2893 | featureVehicleSpawnerPlateType = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnPlateType", 1, file, file_size); | |
| 2894 | featureVehicleSpawnerPriamyColor = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnPrimColo", 145, file, file_size); | |
| 2895 | featureVehicleSpawnerSecondaryColor = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnSecondColo", 10, file, file_size); | |
| 2896 | featureVehicleSpawnerPearlescentColor = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnPearl", 38, file, file_size); | |
| 2897 | featureVehicleSpawnerWheelColor = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnWheelCol", 145, file, file_size); | |
| 2898 | GetPrivateProfileString(APP_HAX_VALUES, "veSpawnCustPrimary", "#320642", r_vehprim, 14, file, file_size); rgb = HexToRGB(r_vehprim); vehSpawnCustomP.R = rgb.R, vehSpawnCustomP.G = rgb.G, vehSpawnCustomP.B = rgb.B; | |
| 2899 | GetPrivateProfileString(APP_HAX_VALUES, "veSpawnCustSecondary", "#23292E", r_vehsec, 14, file, file_size); rgb = HexToRGB(r_vehsec); vehSpawnCustomS.R = rgb.R, vehSpawnCustomS.G = rgb.G, vehSpawnCustomS.B = rgb.B; | |
| 2900 | featureVehicleSpawnerWheelType = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnWheelType", 7, file, file_size); | |
| 2901 | featureVehicleSpawnerWheelIndex = GetPrivateProfileInt(APP_HAX_VALUES, "veSpawnWheelIndex", 8, file, file_size); | |
| 2902 | ||
| 2903 | featureShowChat = GetPrivateProfileBool(APP_HAX_VALUES, "neChat", "1", file, file_size); | |
| 2904 | featureAllClientsESP = GetPrivateProfileBool(APP_HAX_VALUES, "neESP", "0", file, file_size); | |
| 2905 | featureAllESPType = GetPrivateProfileInt(APP_HAX_VALUES, "neESPType", 2, file, file_size); | |
| 2906 | ||
| 2907 | featureProtectionCTask = GetPrivateProfileBool(APP_HAX_VALUES, "disTask", "0", file, file_size); | |
| 2908 | featureProtectionNaughty = GetPrivateProfileBool(APP_HAX_VALUES, "expRemWp", "0", file, file_size); | |
| 2909 | featureProtectionTask = GetPrivateProfileBool(APP_HAX_VALUES, "tasks", "0", file, file_size); | |
| 2910 | featureProtectionPTFX = GetPrivateProfileBool(APP_HAX_VALUES, "fxProtx", "0", file, file_size); | |
| 2911 | featureProtectionVehicleControl = GetPrivateProfileBool(APP_HAX_VALUES, "veContr", "0", file, file_size); | |
| 2912 | featureProtectionWantedLvl = GetPrivateProfileBool(APP_HAX_VALUES, "Wantedlvl", "0", file, file_size); | |
| 2913 | featureProtectionScriptedGame = GetPrivateProfileBool(APP_HAX_VALUES, "nonHostKick", "0", file, file_size); | |
| 2914 | featureProtectionSound = GetPrivateProfileBool(APP_HAX_VALUES, "sounds", "0", file, file_size); | |
| 2915 | featureProtectionClones = GetPrivateProfileBool(APP_HAX_VALUES, "clones", "0", file, file_size); | |
| 2916 | featureProtectionFreeze = GetPrivateProfileBool(APP_HAX_VALUES, "freezeProtx", "0", file, file_size); | |
| 2917 | featureProtectionAttach = GetPrivateProfileBool(APP_HAX_VALUES, "attachment", "0", file, file_size); | |
| 2918 | featureProtectionFPS = GetPrivateProfileBool(APP_HAX_VALUES, "fpsProtx", "0", file, file_size); | |
| 2919 | ||
| 2920 | loop_RainbowBoxes = GetPrivateProfileBool(APP_COLOURS, "rainbow_mode", "0", file, file_size); | |
| 2921 | GetPrivateProfileString(APP_COLOURS, "mTitletext", "#FFFFFF", mTitletext, 14, file, file_size); rgb = HexToRGB(mTitletext); maintitletext.R = rgb.R, maintitletext.G = rgb.G, maintitletext.B = rgb.B; | |
| 2922 | GetPrivateProfileString(APP_COLOURS, "mTitlebox", "#7800B4", mTitlebox, 14, file, file_size); rgb = HexToRGB(mTitlebox); maintitlebox.R = rgb.R, maintitlebox.G = rgb.G, maintitlebox.B = rgb.B; | |
| 2923 | GetPrivateProfileString(APP_COLOURS, "titlebox", "#A020F0", r_titlebox, 14, file, file_size); rgb = HexToRGB(r_titlebox); titlebox.R = rgb.R, titlebox.G = rgb.G, titlebox.B = rgb.B; | |
| 2924 | GetPrivateProfileString(APP_COLOURS, "BG", "#141414", r_BG, 14, file, file_size); rgb = HexToRGB(r_BG); BG.R = rgb.R, BG.G = rgb.G, BG.B = rgb.B; | |
| 2925 | GetPrivateProfileString(APP_COLOURS, "titletext", "#FFFFFF", r_titletext, 14, file, file_size); rgb = HexToRGB(r_titletext); titletext.R = rgb.R, titletext.G = rgb.G, titletext.B = rgb.B; | |
| 2926 | GetPrivateProfileString(APP_COLOURS, "optiText", "#FFFFFF", r_optiontext, 14, file, file_size); rgb = HexToRGB(r_optiontext);optiontext.R = rgb.R, optiontext.G = rgb.G, optiontext.B = rgb.B; | |
| 2927 | GetPrivateProfileString(APP_COLOURS, "selText", "#FF66FF", r_selectedtext, 14, file, file_size); rgb = HexToRGB(r_selectedtext); selectedtext.R = rgb.R, selectedtext.G = rgb.G, selectedtext.B = rgb.B; | |
| 2928 | GetPrivateProfileString(APP_COLOURS, "selBox", "#FFFFFF", r_selectionhi, 14, file, file_size); rgb = HexToRGB(r_selectionhi); selectionhi.R = rgb.R, selectionhi.G = rgb.G, selectionhi.B = rgb.B; | |
| 2929 | ||
| 2930 | open_button_1 = GetPrivateProfileInt(APP_SETTINGS, "bind1", 201, file, file_size); | |
| 2931 | open_button_2 = GetPrivateProfileInt(APP_SETTINGS, "bind2", 204, file, file_size); | |
| 2932 | GetPrivateProfileString(APP_SETTINGS, "menuPosX", "0.69299", menux, 14, file, file_size); menuPos.x = myAtof(menux); | |
| 2933 | GetPrivateProfileString(APP_SETTINGS, "menuPosY", "0", menuy, 14, file, file_size); menuPos.y = myAtof(menuy); | |
| 2934 | featureExcludeFriends = GetPrivateProfileBool(APP_SETTINGS, "exludFriends", "0", file, file_size); | |
| 2935 | featureExcludeCrew = GetPrivateProfileBool(APP_SETTINGS, "exludCrew", "0", file, file_size); | |
| 2936 | featureExcludeTeam = GetPrivateProfileBool(APP_SETTINGS, "exludTeam", "0", file, file_size); | |
| 2937 | featureExcludeModder = GetPrivateProfileBool(APP_SETTINGS, "exludModr", "0", file, file_size); | |
| 2938 | featureKickModders = GetPrivateProfileBool(APP_SETTINGS, "kickModders", "0", file, file_size); | |
| 2939 | snaplineToClients = GetPrivateProfileBool(APP_SETTINGS, "snapline_clients", "0", file, file_size); | |
| 2940 | featureTeleportWithNearPlayers = GetPrivateProfileBool(APP_SETTINGS, "tele_w_near_players", "0", file, file_size); | |
| 2941 | featureActivationSmoke = GetPrivateProfileBool(APP_SETTINGS, "activeSmoke", "1", file, file_size); | |
| 2942 | ||
| 2943 | font_title = GetPrivateProfileInt(APP_FONTS, "title", 7, file, file_size); | |
| 2944 | font_options = GetPrivateProfileInt(APP_FONTS, "options", 4, file, file_size); | |
| 2945 | font_selection = GetPrivateProfileInt(APP_FONTS, "selection", 4, file, file_size); | |
| 2946 | GetPrivateProfileString(APP_FONTS, "size", "0.41", sFontScale, 14, file, file_size); fontScale = myAtof(sFontScale); | |
| 2947 | } | |
| 2948 | ||
| 2949 | ||
| 2950 | ||
| 2951 | ||
| 2952 | //364 kick from apartment/ 5 params | |
| 2953 | int Var0[5]; | |
| 2954 | Var0[0] = 364; | |
| 2955 | Var0[1] = iSelectedPlayer; | |
| 2956 | Var0[2] = apartmentIdd; //apartment id | |
| 2957 | Var0[3] = 0; //0 | |
| 2958 | Var0[4] = 1; //0 | |
| 2959 | TriggerScriptEvent(Var0, 5, PLAYER_ID()); | |
| 2960 | ||
| 2961 | //0-n | |
| 2962 | //1-n | |
| 2963 | //2 - eclips towers | |
| 2964 | //3-n | |
| 2965 | //4- ecplis towers | |
| 2966 | //5- 3 alta st apt 10 | |
| 2967 | //6- 3 alta st apt 57 | |
| 2968 | //7- del perro heights apt 20 | |
| 2969 | //8- 1162 power st, apt 3 | |
| 2970 | //9- 0605 spanish ave, apt 1 | |
| 2971 | //10- 0604 las laganas blvd, apt 4 | |
| 2972 | //11- 0184 milton rd, apt 13 | |
| 2973 | //12- the royale, apy 19 | |
| 2974 | //13- 0504 s mo milton dr | |
| 2975 | //14- 0115 bay city ave, apy 45 | |
| 2976 | //15- 0325 south rockford dr | |
| 2977 | //16- dream tower, apt 15 | |
| 2978 | //17- 2143 las lagunas blvd, apt 9 | |
| 2979 | //18- 1561 san vitas st, apt 2 | |
| 2980 | //19- 0112 s rockford dr, apt 13 | |
| 2981 | //20- 2057 verpucci blcd, apt 1 | |
| 2982 | //21- 0069 couger ave, apt 19 | |
| 2983 | //22- 1237 prosperity st, apt 21 | |
| 2984 | //23- 115 blvd perro, apt 18 | |
| 2985 | ||
| 2986 | ||
| 2987 | int vVar0[3]; | |
| 2988 | vVar0[0] = 2; | |
| 2989 | vVar0[1] = iSelectedPlayer; | |
| 2990 | vVar0[2] = valueee; | |
| 2991 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 2992 | //vVar0[2] | |
| 2993 | //35 Name has activated their Brodcast app | |
| 2994 | //35 Name has deactivated their Brodcast app | |
| 2995 | ||
| 2996 | ||
| 2997 | ||
| 2998 | ||
| 2999 | ||
| 3000 | const int objectspawneritemCount = 11, objectspawnerlineCount = 19, objectspawneritemCountLastLine = objectspawneritemCount; | |
| 3001 | ||
| 3002 | int objectspawnerActiveLineIndex; | |
| 3003 | bool featureJurisdiction; | |
| 3004 | ||
| 3005 | ||
| 3006 | ||
| 3007 | ||
| 3008 | ||
| 3009 | ||
| 3010 | switch (selectedOption()) | |
| 3011 | {
| |
| 3012 | case 0: break; | |
| 3013 | default: | |
| 3014 | AllWorldObjects[featureWorldObjectsSlot] = ObjectCreater(objectModelHashes[objectspawnerActiveLineIndex][Menu::currentop - 1]); | |
| 3015 | break; | |
| 3016 | } | |
| 3017 | ||
| 3018 | ||
| 3019 | ||
| 3020 | ||
| 3021 | ||
| 3022 | SetupDraw(); | |
| 3023 | SET_TEXT_FONT(0); | |
| 3024 | SET_TEXT_SCALE(0.0f, 0.31f); | |
| 3025 | SET_TEXT_JUSTIFICATION(2); | |
| 3026 | SET_TEXT_WRAP(0.0f, 0.2677f + menuPos.x); | |
| 3027 | SET_TEXT_CENTRE(0); | |
| 3028 | SET_TEXT_COLOUR(optioncount.R, optioncount.G, optioncount.B, optioncount.A); | |
| 3029 | ||
| 3030 | BEGIN_TEXT_COMMAND_DISPLAY_TEXT("CM_ITEM_COUNT");
| |
| 3031 | ADD_TEXT_COMPONENT_INTEGER(featureuseDefault ? currentop : (featureJurisdiction ? skinchangerActiveLineIndex + 1 : objectspawnerActiveLineIndex + 1)); // ! currentop_w_breaks | |
| 3032 | ADD_TEXT_COMPONENT_INTEGER(featureuseDefault ? totalop : (featureJurisdiction ? skinchangerlineCount : objectspawnerlineCount)); // ! totalop - totalbreaks | |
| 3033 | END_TEXT_COMMAND_DISPLAY_TEXT(0.2677f + menuPos.x, 0.13f + menuPos.y); | |
| 3034 | ||
| 3035 | ||
| 3036 | ||
| 3037 | ||
| 3038 | void AddXaxis(char *text, int toUse) | |
| 3039 | {
| |
| 3040 | Menu::printingop++; | |
| 3041 | SetupDraw(0); | |
| 3042 | SET_TEXT_FONT(font_options); | |
| 3043 | SET_TEXT_COLOUR(optiontext.R, optiontext.G, optiontext.B, optiontext.A); | |
| 3044 | if (Menu::printingop == Menu::currentop) | |
| 3045 | {
| |
| 3046 | navInstruction = 1; | |
| 3047 | featureuseDefault = 0; | |
| 3048 | SET_TEXT_FONT(font_selection); | |
| 3049 | SET_TEXT_COLOUR(selectedtext.R, selectedtext.G, selectedtext.B, selectedtext.A); | |
| 3050 | /*if (IsOptionPressed()) | |
| 3051 | {
| |
| 3052 | ||
| 3053 | }*/ | |
| 3054 | } | |
| 3055 | ||
| 3056 | DrawString(text, ((float)Menu::printingop * 0.0900f - 0.0300), 0.300f); | |
| 3057 | switch (toUse) | |
| 3058 | {
| |
| 3059 | case 0: | |
| 3060 | if (skinchangerActiveLineIndex == (skinchangerlineCount - 1)) | |
| 3061 | if ((int)Menu::currentop >= skinchangeritemCountLastLine) | |
| 3062 | Menu::currentop = 1; | |
| 3063 | ||
| 3064 | break; | |
| 3065 | case 1: | |
| 3066 | if (objectspawnerActiveLineIndex == (objectspawnerlineCount - 1)) | |
| 3067 | if ((int)Menu::currentop >= objectspawneritemCountLastLine) | |
| 3068 | Menu::currentop = 1; | |
| 3069 | break; | |
| 3070 | } | |
| 3071 | ||
| 3072 | } | |
| 3073 | ||
| 3074 | ||
| 3075 | ||
| 3076 | static void DetectJurisdiction(int scrollIndex, bool isSkinChanger) | |
| 3077 | {
| |
| 3078 | if (isSkinChanger) | |
| 3079 | {
| |
| 3080 | switch (scrollIndex) | |
| 3081 | {
| |
| 3082 | case 0: | |
| 3083 | if (skinchangerActiveLineIndex == 0) | |
| 3084 | skinchangerActiveLineIndex = skinchangerlineCount; | |
| 3085 | skinchangerActiveLineIndex--; | |
| 3086 | PlaySoundFrontend_default("YES");
| |
| 3087 | break; | |
| 3088 | case 1: | |
| 3089 | skinchangerActiveLineIndex++; | |
| 3090 | if (skinchangerActiveLineIndex == skinchangerlineCount) | |
| 3091 | skinchangerActiveLineIndex = 0; | |
| 3092 | PlaySoundFrontend_default("YES");
| |
| 3093 | break; | |
| 3094 | case 2: | |
| 3095 | currentop++; | |
| 3096 | int itemsMax = (skinchangerActiveLineIndex == (skinchangerlineCount - 1)) ? skinchangeritemCountLastLine : skinchangeritemCount; | |
| 3097 | if (currentop == itemsMax) | |
| 3098 | currentop = 1; | |
| 3099 | PlaySoundFrontend_default("NAV_UP_DOWN");
| |
| 3100 | break; | |
| 3101 | case 3: | |
| 3102 | if (currentop == 1) | |
| 3103 | currentop = (skinchangerActiveLineIndex == (skinchangerlineCount - 1)) ? skinchangeritemCountLastLine : skinchangeritemCount; | |
| 3104 | currentop--; | |
| 3105 | PlaySoundFrontend_default("NAV_UP_DOWN");
| |
| 3106 | break; | |
| 3107 | } | |
| 3108 | } | |
| 3109 | else | |
| 3110 | {
| |
| 3111 | switch (scrollIndex) | |
| 3112 | {
| |
| 3113 | case 0: | |
| 3114 | if (objectspawnerActiveLineIndex == 0) | |
| 3115 | objectspawnerActiveLineIndex = objectspawnerlineCount; | |
| 3116 | objectspawnerActiveLineIndex--; | |
| 3117 | PlaySoundFrontend_default("YES");
| |
| 3118 | break; | |
| 3119 | case 1: | |
| 3120 | objectspawnerActiveLineIndex++; | |
| 3121 | if (objectspawnerActiveLineIndex == objectspawnerlineCount) | |
| 3122 | objectspawnerActiveLineIndex = 0; | |
| 3123 | PlaySoundFrontend_default("YES");
| |
| 3124 | break; | |
| 3125 | case 2: | |
| 3126 | currentop++; | |
| 3127 | int itemsMax2 = (objectspawnerActiveLineIndex == (objectspawnerlineCount - 1)) ? objectspawneritemCountLastLine : objectspawneritemCount; | |
| 3128 | if (currentop == itemsMax2) | |
| 3129 | currentop = 1; | |
| 3130 | PlaySoundFrontend_default("NAV_UP_DOWN");
| |
| 3131 | break; | |
| 3132 | case 3: | |
| 3133 | if (currentop == 1) | |
| 3134 | currentop = (objectspawnerActiveLineIndex == (objectspawnerlineCount - 1)) ? objectspawneritemCountLastLine : objectspawneritemCount; | |
| 3135 | currentop--; | |
| 3136 | PlaySoundFrontend_default("NAV_UP_DOWN");
| |
| 3137 | break; | |
| 3138 | } | |
| 3139 | } | |
| 3140 | } | |
| 3141 | ||
| 3142 | ||
| 3143 | ||
| 3144 | if (menu_up_pressed(1)) | |
| 3145 | {
| |
| 3146 | if (featureuseDefault) | |
| 3147 | if (currentop == 1) Bottom(); else Up(); | |
| 3148 | else | |
| 3149 | DetectJurisdiction(0, featureJurisdiction); | |
| 3150 | } | |
| 3151 | ||
| 3152 | // Scroll down | |
| 3153 | if (menu_down_pressed(1)) | |
| 3154 | {
| |
| 3155 | if (featureuseDefault) | |
| 3156 | if (currentop == totalop) Top(); else Down(); | |
| 3157 | else | |
| 3158 | DetectJurisdiction(1, featureJurisdiction); | |
| 3159 | } | |
| 3160 | ||
| 3161 | if (!featureuseDefault) | |
| 3162 | {
| |
| 3163 | //Scroll right | |
| 3164 | if (IS_DISABLED_CONTROL_JUST_PRESSED(2, INPUT_SCRIPT_PAD_RIGHT)) | |
| 3165 | {
| |
| 3166 | DetectJurisdiction(2, featureJurisdiction); | |
| 3167 | } | |
| 3168 | ||
| 3169 | //Scroll left | |
| 3170 | if (IS_DISABLED_CONTROL_JUST_PRESSED(2, INPUT_SCRIPT_PAD_LEFT)) | |
| 3171 | {
| |
| 3172 | DetectJurisdiction(3, featureJurisdiction); | |
| 3173 | } | |
| 3174 | } | |
| 3175 | ||
| 3176 | ||
| 3177 | ||
| 3178 | ||
| 3179 | int Var0[2]; | |
| 3180 | Var0[0] = 52; | |
| 3181 | Var0[1] = iSelectedPlayer; | |
| 3182 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3183 | ||
| 3184 | ||
| 3185 | int Var0[4]; | |
| 3186 | Var0[0] = 47; | |
| 3187 | Var0[1] = iSelectedPlayer; | |
| 3188 | Var0[2] = 1; | |
| 3189 | Var0[3] = valueee; //player | |
| 3190 | TriggerScriptEvent(Var0, 4, iSelectedPlayer); | |
| 3191 | ||
| 3192 | ||
| 3193 | int vVar0[3]; | |
| 3194 | vVar0[0] = 39; | |
| 3195 | vVar0[1] = iSelectedPlayer; | |
| 3196 | vVar0[2] = valueee; | |
| 3197 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3198 | ||
| 3199 | int Var0[4]; | |
| 3200 | Var0[0] = 49; | |
| 3201 | Var0[1] = iSelectedPlayer; | |
| 3202 | Var0[2] = valueee; | |
| 3203 | Var0[3] = valueee2; | |
| 3204 | TriggerScriptEvent(Var0, 4, iSelectedPlayer); | |
| 3205 | ||
| 3206 | int Var0[10]; | |
| 3207 | Var0[0] = 37; | |
| 3208 | Var0[1] = iSelectedPlayer; | |
| 3209 | Var0[2] = valueee2; //player2 | |
| 3210 | //Var0[3] = uParam2; | |
| 3211 | //Var0[4] = uParam0; | |
| 3212 | //Var0[5] = uParam3; | |
| 3213 | Var0[9] = 1; | |
| 3214 | Var0[6] = valueee; | |
| 3215 | //Var0[7] = uParam5; | |
| 3216 | Var0[8] = -1; | |
| 3217 | TriggerScriptEvent(Var0, 10, iSelectedPlayer); | |
| 3218 | ||
| 3219 | ||
| 3220 | int Var0[5]; | |
| 3221 | Var0[0] = 38; | |
| 3222 | Var0[1] = iSelectedPlayer; | |
| 3223 | Var0[2] = valueee; | |
| 3224 | Var0[3] = GET_TIME_DIFFERENCE(GET_NETWORK_TIME(), _GET_POSIX_TIME()); | |
| 3225 | Var0[4] = valueee2; | |
| 3226 | TriggerScriptEvent(Var0, 5, iSelectedPlayer); | |
| 3227 | ||
| 3228 | //invite | |
| 3229 | int Var0[2]; | |
| 3230 | Var0[0] = 32; | |
| 3231 | Var0[1] = iSelectedPlayer; | |
| 3232 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3233 | ||
| 3234 | int Var0[5]; | |
| 3235 | Var0[0] = 50; | |
| 3236 | Var0[1] = iSelectedPlayer; | |
| 3237 | Var0[2] = valueee; | |
| 3238 | Var0[3] = valueee2; | |
| 3239 | Var0[4] = 0.0f;//vector coords | |
| 3240 | TriggerScriptEvent(Var0, 7, iSelectedPlayer); | |
| 3241 | ||
| 3242 | int Var0[2]; | |
| 3243 | Var0[0] = 51; | |
| 3244 | Var0[1] = iSelectedPlayer; | |
| 3245 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3246 | ||
| 3247 | int Var0[2]; | |
| 3248 | Var0[0] = 33; | |
| 3249 | Var0[1] = iSelectedPlayer; | |
| 3250 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3251 | ||
| 3252 | ||
| 3253 | int Var0[4]; | |
| 3254 | Var0[0] = 48; | |
| 3255 | Var0[1] = iSelectedPlayer; | |
| 3256 | Var0[2] = valueee; | |
| 3257 | Var0[3] = valueee2; | |
| 3258 | TriggerScriptEvent(Var0, 4, iSelectedPlayer); | |
| 3259 | ||
| 3260 | int Var1[2]; | |
| 3261 | Var1[0] = 200; | |
| 3262 | Var1[1] = iSelectedPlayer; | |
| 3263 | TriggerScriptEvent(Var1, 2, iSelectedPlayer); | |
| 3264 | ||
| 3265 | ||
| 3266 | int Var0[15]; | |
| 3267 | Var0[0] = 181; | |
| 3268 | Var0[1] = iSelectedPlayer; | |
| 3269 | Var0[2] = GlobalVariable::Read(1838493); | |
| 3270 | Var0[3] = GlobalVariable::Read(1838493 + 1); | |
| 3271 | Var0[4] = 0; | |
| 3272 | Var0[5] = GlobalVariable::Read(1838493 + 2); | |
| 3273 | Var0[8] = GlobalVariable::Read(1838493 + 5); | |
| 3274 | Var0[14] = GlobalVariable::Read(2399048 + 1 + 1481 + 13); | |
| 3275 | TriggerScriptEvent(Var0, 15, iSelectedPlayer); | |
| 3276 | ||
| 3277 | ||
| 3278 | int vVar0[3]; | |
| 3279 | vVar0[0] = 298; | |
| 3280 | vVar0[1] = iSelectedPlayer; | |
| 3281 | vVar0[2] = handle.netHandle; | |
| 3282 | TriggerScriptEvent(vVar0, 15, iSelectedPlayer); | |
| 3283 | ||
| 3284 | int vVar0[3]; | |
| 3285 | vVar0[0] = 353; | |
| 3286 | vVar0[1] = iSelectedPlayer; | |
| 3287 | vVar0[2] = valueee; | |
| 3288 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3289 | ||
| 3290 | ||
| 3291 | ||
| 3292 | int Var0[7]; | |
| 3293 | Var0[0] = 301; | |
| 3294 | Var0[1] = iSelectedPlayer; | |
| 3295 | Var0[2] = 24.2819f; | |
| 3296 | Var0[5] = 24.2819f; | |
| 3297 | Var0[6] = 24.2819f; | |
| 3298 | TriggerScriptEvent(Var0, 7, iSelectedPlayer); | |
| 3299 | ||
| 3300 | ||
| 3301 | ||
| 3302 | int Var0[17]; | |
| 3303 | Var0[2] = 3; | |
| 3304 | //Var0[2].imm_10 = 3; | |
| 3305 | Var0[0] = 7; | |
| 3306 | Var0[1] = iSelectedPlayer; | |
| 3307 | Var0[16] = valueee; | |
| 3308 | TriggerScriptEvent(Var0, 17, iSelectedPlayer); | |
| 3309 | ||
| 3310 | ||
| 3311 | int vVar0[3]; | |
| 3312 | vVar0[0] = 287; | |
| 3313 | vVar0[1] = iSelectedPlayer; | |
| 3314 | vVar0[2] = GlobalVariable::Read(2387551); //vector coords | |
| 3315 | TriggerScriptEvent(vVar0, 5, iSelectedPlayer); | |
| 3316 | ||
| 3317 | ||
| 3318 | int vVar0[3]; | |
| 3319 | //vVar0.imm_2.imm_14 = 10; | |
| 3320 | vVar0[0] = 297; | |
| 3321 | vVar0[1] = iSelectedPlayer; | |
| 3322 | vVar0[3] = handle.netHandle; | |
| 3323 | //vVar0.imm_2.imm_13 = 1; | |
| 3324 | //vVar0.imm_2.imm_14[0 <2>] = uParam0; | |
| 3325 | //vVar0.imm_2.imm_14[0 <2>].imm_1 = uParam1; | |
| 3326 | TriggerScriptEvent(vVar0, 37, iSelectedPlayer) | |
| 3327 | ||
| 3328 | ||
| 3329 | int vVar0[3]; | |
| 3330 | vVar0[1] = iSelectedPlayer; | |
| 3331 | vVar0[0] = 298; | |
| 3332 | vVar0[2] = handle.netHandle; | |
| 3333 | TriggerScriptEvent(vVar0, 15, iSelectedPlayer); | |
| 3334 | ||
| 3335 | int Var0[11]; | |
| 3336 | Var0[0] = 304; | |
| 3337 | Var0[1] = iSelectedPlayer; | |
| 3338 | Var0[2] = 0; | |
| 3339 | Var0[3] = 1; | |
| 3340 | Var0[4] = 0; | |
| 3341 | Var0[5] = 0; | |
| 3342 | Var0[6] = 0; | |
| 3343 | Var0[7] = 0; | |
| 3344 | Var0[8] = 0; | |
| 3345 | Var0[9] = 0; | |
| 3346 | Var0[10] = 0; | |
| 3347 | TriggerScriptEvent(Var0, 11, iSelectedPlayer); | |
| 3348 | ||
| 3349 | ||
| 3350 | int Var0[2]; | |
| 3351 | Var0[0] = 228; | |
| 3352 | Var0[1] = iSelectedPlayer; | |
| 3353 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3354 | ||
| 3355 | ||
| 3356 | int vVar0[3]; | |
| 3357 | vVar0[0] = 158; | |
| 3358 | vVar0[1] = iSelectedPlayer; | |
| 3359 | int uVar0; | |
| 3360 | SET_BIT(&uVar0, iSelectedPlayer); | |
| 3361 | vVar0[2] = valueee; //valueee | |
| 3362 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3363 | ||
| 3364 | ||
| 3365 | int vVar0[3]; | |
| 3366 | int iVar2; | |
| 3367 | int iVar3; | |
| 3368 | int iVar4; | |
| 3369 | vVar0[0] = 308; | |
| 3370 | vVar0[1] = iSelectedPlayer; | |
| 3371 | NETWORK_GET_LOCAL_HANDLE(&handle.netHandle, 13); | |
| 3372 | vVar0[2] = handle.netHandle; | |
| 3373 | //iVar4 = 0; | |
| 3374 | //set_bit(&iVar4, 0); | |
| 3375 | //vVar0.imm_2.imm_13 = iVar4; | |
| 3376 | //vVar0.imm_2.imm_19 = 1; | |
| 3377 | //vVar0.imm_2.imm_20 = 1; | |
| 3378 | //vVar0.imm_2.imm_14 = func_818(player_id()); | |
| 3379 | //StringCopy(&vVar0.imm_2.imm_15, "", 16); | |
| 3380 | TriggerScriptEvent(vVar0, 23, iSelectedPlayer); | |
| 3381 | ||
| 3382 | ||
| 3383 | //joined a job | |
| 3384 | _debuging Var00; | |
| 3385 | //int Var0[19]; | |
| 3386 | Var00.var = 162; | |
| 3387 | Var00.var1 = iSelectedPlayer; | |
| 3388 | Var00.var2 = GlobalVariable::GetString(2378444 + 2); //string param | |
| 3389 | Var00.var18 = GlobalVariable::Read(2378444 + 18); | |
| 3390 | int uVar0; | |
| 3391 | SET_BIT(&uVar0, iSelectedPlayer); | |
| 3392 | TRIGGER_SCRIPT_EVENT2(1, &Var00, 19, uVar0); | |
| 3393 | ||
| 3394 | ||
| 3395 | int vVar0[3]; | |
| 3396 | vVar0[0] = 352; | |
| 3397 | vVar0[1] = iSelectedPlayer; | |
| 3398 | vVar0[2] = valueee; | |
| 3399 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3400 | ||
| 3401 | ||
| 3402 | int Var0[2]; | |
| 3403 | Var0[0] = 350; | |
| 3404 | Var0[1] = iSelectedPlayer; | |
| 3405 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3406 | ||
| 3407 | ||
| 3408 | int Var0[7]; | |
| 3409 | Vector3 t, t2; | |
| 3410 | t.x = 100.0; | |
| 3411 | t.y = 50.0; | |
| 3412 | t.z = 20.0; | |
| 3413 | t2.x = 0.0f; | |
| 3414 | t2.y = 0.0f; | |
| 3415 | t2.z = 180.0f; | |
| 3416 | Var0[0] = 349; | |
| 3417 | Var0[1] = iSelectedPlayer; | |
| 3418 | Var0[2] = valueee; | |
| 3419 | //Var0[3] = (int)t; //cords | |
| 3420 | //Var0[6] = (int)t2; //offset | |
| 3421 | TriggerScriptEvent(Var0, 9, iSelectedPlayer); | |
| 3422 | ||
| 3423 | ||
| 3424 | int Var0[2]; | |
| 3425 | Var0[0] = 348; | |
| 3426 | Var0[1] = iSelectedPlayer; | |
| 3427 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3428 | ||
| 3429 | ||
| 3430 | int Var0[2]; | |
| 3431 | Var0[0] = 351; | |
| 3432 | Var0[1] = iSelectedPlayer; | |
| 3433 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3434 | ||
| 3435 | ||
| 3436 | int Var0[2]; | |
| 3437 | Var0[0] = 346; | |
| 3438 | Var0[1] = iSelectedPlayer; | |
| 3439 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3440 | ||
| 3441 | int Var0[6]; | |
| 3442 | Var0[0] = 347; | |
| 3443 | Var0[1] = iSelectedPlayer; | |
| 3444 | Var0[2] = GlobalVariable::Read(2415231); | |
| 3445 | Var0[3] = GlobalVariable::Read(2415232); | |
| 3446 | Var0[4] = GET_STREAM_PLAY_TIME(); | |
| 3447 | Var0[5] = valueee; //player | |
| 3448 | TriggerScriptEvent(Var0, 6, iSelectedPlayer); | |
| 3449 | ||
| 3450 | ||
| 3451 | ||
| 3452 | typedef struct | |
| 3453 | {
| |
| 3454 | /*int vVar0[3]; | |
| 3455 | vVar0[0] = 298; | |
| 3456 | vVar0[1] = iSelectedPlayer; | |
| 3457 | vVar0[2] = handle;*/ | |
| 3458 | int arg; | |
| 3459 | int player; | |
| 3460 | networkHandleMgr netHandle; | |
| 3461 | } _noonon; | |
| 3462 | typedef struct | |
| 3463 | {
| |
| 3464 | /*int vVar0[3]; | |
| 3465 | vVar0[0] = 287; | |
| 3466 | vVar0[1] = iSelectedPlayer; | |
| 3467 | vVar0[2] = { vParam0 };
| |
| 3468 | */ | |
| 3469 | int arg; | |
| 3470 | int player; | |
| 3471 | Vector3 coords; | |
| 3472 | } _ceinema; | |
| 3473 | typedef struct | |
| 3474 | {
| |
| 3475 | int p0; | |
| 3476 | int p1; | |
| 3477 | int p2; | |
| 3478 | float p3; | |
| 3479 | int p4; | |
| 3480 | int p5; | |
| 3481 | int p6; | |
| 3482 | int p7; | |
| 3483 | int p8; | |
| 3484 | int p9; | |
| 3485 | int p10; | |
| 3486 | int p11; | |
| 3487 | int p12; | |
| 3488 | int p13; | |
| 3489 | } unknown; | |
| 3490 | typedef struct | |
| 3491 | {
| |
| 3492 | Vector3 p0; | |
| 3493 | int p1; | |
| 3494 | int p2; | |
| 3495 | float p3; | |
| 3496 | int p4; | |
| 3497 | int p5; | |
| 3498 | int p6; | |
| 3499 | int p7; | |
| 3500 | int p8; | |
| 3501 | int p9; | |
| 3502 | int p10; | |
| 3503 | int p11; | |
| 3504 | int p12; | |
| 3505 | int p13; | |
| 3506 | int p14; | |
| 3507 | int p15; | |
| 3508 | int p16; | |
| 3509 | int p17; | |
| 3510 | int p18; | |
| 3511 | int p19; | |
| 3512 | int p20; | |
| 3513 | int p21; | |
| 3514 | int p22; | |
| 3515 | int p23; | |
| 3516 | int p24; | |
| 3517 | int p25; | |
| 3518 | int p26; | |
| 3519 | int p27; | |
| 3520 | int p28; | |
| 3521 | int p29; | |
| 3522 | int p30; | |
| 3523 | int p31; | |
| 3524 | int p32; | |
| 3525 | int p33; | |
| 3526 | int p34; | |
| 3527 | int p35; | |
| 3528 | int p36; | |
| 3529 | int p37; | |
| 3530 | int p38; | |
| 3531 | int p39; | |
| 3532 | int p40; | |
| 3533 | int p41; | |
| 3534 | int p42; | |
| 3535 | int p43; | |
| 3536 | } l_struct; | |
| 3537 | typedef struct | |
| 3538 | {
| |
| 3539 | /*Var0[0] = 301; | |
| 3540 | Var0[1] = iSelectedPlayer; | |
| 3541 | Var0[2] = { vParam0 }; //coords
| |
| 3542 | Var0[5] = uParam1; //vector3 | |
| 3543 | Var0[6] = uParam2; //struct | |
| 3544 | */ | |
| 3545 | int arg; | |
| 3546 | int player; | |
| 3547 | Vector3 coords; | |
| 3548 | int unk; | |
| 3549 | int unk2; | |
| 3550 | Vector3 rot; | |
| 3551 | l_struct _struct; | |
| 3552 | } thisStructMain; | |
| 3553 | ||
| 3554 | ||
| 3555 | ||
| 3556 | //217 | |
| 3557 | //set globals to increase value | |
| 3558 | /* int max_value = 50000; | |
| 3559 | int Global_262145_f_4814 = GlobalVariable::Get(Global_262145 + 4814); | |
| 3560 | printf("Global_262145_f_4814: %i\n", Global_262145_f_4814);
| |
| 3561 | ||
| 3562 | int Global_2097152 = GlobalVariable::Get(2097152 + (iSelectedPlayer * 7586) + 5327 + 678); | |
| 3563 | printf("Global_2097152: %i\n", Global_2097152);
| |
| 3564 | ||
| 3565 | GlobalVariable::Write(Global_262145 + 4814, max_value + Global_2097152); | |
| 3566 | ||
| 3567 | GlobalVariable::Write(2097152 + (iSelectedPlayer * 7586) + 5327 + 678, Global_2097152 + max_value); | |
| 3568 | */ | |
| 3569 | ||
| 3570 | int max_value = 50000; | |
| 3571 | int Global_262145_f_4814 = GlobalVariable::Get(Global_262145 + 4814); | |
| 3572 | printf("Global_262145_f_4814: %i\n", Global_262145_f_4814);
| |
| 3573 | ||
| 3574 | int Global_2097152 = GlobalVariable::Get(2097152 + (iSelectedPlayer* 7586) + 5327 + 678); | |
| 3575 | printf("Global_2097152: %i\n", Global_2097152);
| |
| 3576 | ||
| 3577 | ||
| 3578 | GlobalVariable::Write(Global_262145 + 4814, max_value/*max_value + Global_2097152*/); | |
| 3579 | ||
| 3580 | ||
| 3581 | GlobalVariable::Write(Global_1581767 + (iSelectedPlayer* 306) + 178 + 4, max_value); | |
| 3582 | int global_02 = GlobalVariable::Get(Global_1581767 + (iSelectedPlayer* 306) + 178 + 3) + max_value; | |
| 3583 | ||
| 3584 | GlobalVariable::Write(Global_1581767 + (iSelectedPlayer*306) + 178 + 3, global_02); | |
| 3585 | ||
| 3586 | //GlobalVariable::Write(2097152 + (iSelectedPlayer* 7586) + 5327 + 678, Global_2097152 + max_value); | |
| 3587 | ||
| 3588 | int vVar0[3]; | |
| 3589 | vVar0[0] = 219; | |
| 3590 | vVar0[1] = iSelectedPlayer; | |
| 3591 | vVar0[2] = 9999; | |
| 3592 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3593 | ||
| 3594 | ||
| 3595 | int Var0[2]; | |
| 3596 | Var0[0] = 311; | |
| 3597 | Var0[1] = iSelectedPlayer; | |
| 3598 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3599 | ||
| 3600 | //55 | |
| 3601 | int Var0[7]; | |
| 3602 | Var0[0] = 55; | |
| 3603 | Var0[1] = iSelectedPlayer; | |
| 3604 | Var0[4] = 0; | |
| 3605 | Var0[5] = 0; | |
| 3606 | Var0[2] = (float)0.0f; | |
| 3607 | Var0[3] = 0; | |
| 3608 | Var0[6] = 1; | |
| 3609 | TriggerScriptEvent(Var0, 7, iSelectedPlayer); | |
| 3610 | ||
| 3611 | ||
| 3612 | ||
| 3613 | int Var1[2]; | |
| 3614 | Var1[0] = 200; | |
| 3615 | Var1[1] = iSelectedPlayer; | |
| 3616 | TriggerScriptEvent(Var1, 2, iSelectedPlayer); | |
| 3617 | ||
| 3618 | ||
| 3619 | int Var0[4]; | |
| 3620 | Var0[0] = 237; | |
| 3621 | Var0[1] = iSelectedPlayer; | |
| 3622 | Var0[2] = 1; //0 | |
| 3623 | Var0[3] = 0; //99999 | |
| 3624 | //iParam3 = iParam3; | |
| 3625 | //(uParam4[0 *80])->f_6 = (uParam4[0 *80])->f_6; | |
| 3626 | TriggerScriptEvent(Var0, 10, iSelectedPlayer); | |
| 3627 | ||
| 3628 | //vehicle | |
| 3629 | int vVar0[3]; | |
| 3630 | vVar0[0] = 353; | |
| 3631 | vVar0[1] = iSelectedPlayer; | |
| 3632 | vVar0[2] = myVeh; //entity | |
| 3633 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3634 | ||
| 3635 | ||
| 3636 | //prostitut | |
| 3637 | int Var0[2]; | |
| 3638 | Var0[0] = 228; | |
| 3639 | Var0[1] = iSelectedPlayer; | |
| 3640 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3641 | ||
| 3642 | // | |
| 3643 | int Var0[2]; | |
| 3644 | Var0[0] = 192; | |
| 3645 | Var0[1] = iSelectedPlayer; | |
| 3646 | GlobalVariable::Write(Global_2394218 + 2808, 1); | |
| 3647 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 3648 | ||
| 3649 | ||
| 3650 | int vVar0[3]; | |
| 3651 | vVar0[0] = 158; | |
| 3652 | vVar0[1] = iSelectedPlayer; | |
| 3653 | vVar0[2] = 999; | |
| 3654 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3655 | ||
| 3656 | ||
| 3657 | ||
| 3658 | ||
| 3659 | //main transation | |
| 3660 | networkHandleMgr handle; | |
| 3661 | NETWORK_HANDLE_FROM_PLAYER(iSelectedPlayer, &handle.netHandle, 13); | |
| 3662 | _noonon netMain; | |
| 3663 | netMain.arg = 298; | |
| 3664 | netMain.player = iSelectedPlayer; | |
| 3665 | netMain.netHandle = handle; | |
| 3666 | TriggerScriptEvent(vVar0, 15, iSelectedPlayer); | |
| 3667 | ||
| 3668 | ||
| 3669 | ||
| 3670 | //cinema | |
| 3671 | _ceinema tv; | |
| 3672 | tv.arg = 287; | |
| 3673 | tv.player = iSelectedPlayer; | |
| 3674 | tv.coords = GET_ENTITY_COORDS(playerPed, 1); | |
| 3675 | TriggerScriptEvent(&tv, 5, iSelectedPlayer); | |
| 3676 | ||
| 3677 | ||
| 3678 | ||
| 3679 | unknown unk_t; | |
| 3680 | unk_t.p3 = 1125515264; | |
| 3681 | unk_t.p4 = 1; | |
| 3682 | unk_t.p5 = 1; | |
| 3683 | unk_t.p7 = 1082130432; | |
| 3684 | unk_t.p8 = 1; | |
| 3685 | unk_t.p11 = 1; | |
| 3686 | unk_t.p3 = 50.0f; | |
| 3687 | unk_t.p4 = 0; | |
| 3688 | unk_t.p5 = 0; | |
| 3689 | unk_t.p8 = 1; //1 or 0 | |
| 3690 | unk_t.p9 = 1; //1 or 0 | |
| 3691 | unk_t.p10 = 1; | |
| 3692 | unk_t.p11 = 1; //true or false | |
| 3693 | unk_t.p12 = 1; | |
| 3694 | ||
| 3695 | ||
| 3696 | l_struct m_lstruct; | |
| 3697 | m_lstruct.p6 = 1082130432; | |
| 3698 | m_lstruct.p7 = 1176255488; | |
| 3699 | m_lstruct.p8 = 1; | |
| 3700 | m_lstruct.p10 = 1; | |
| 3701 | m_lstruct.p13 = 1; | |
| 3702 | m_lstruct.p15 = 1; | |
| 3703 | m_lstruct.p16 = 1; | |
| 3704 | m_lstruct.p31 = 1; | |
| 3705 | m_lstruct.p43 = 1123024896; | |
| 3706 | m_lstruct.p9 = 1; | |
| 3707 | m_lstruct.p3 = 7.0f; | |
| 3708 | m_lstruct.p10 = unk_t.p4; //all unk_t should be pointer to struct like: unk_t-> | |
| 3709 | m_lstruct.p4 = unk_t.p0; | |
| 3710 | m_lstruct.p13 = unk_t.p1; | |
| 3711 | m_lstruct.p5 = unk_t.p3; | |
| 3712 | m_lstruct.p15 = unk_t.p5; | |
| 3713 | m_lstruct.p11 = unk_t.p6; | |
| 3714 | m_lstruct.p6 = unk_t.p7; | |
| 3715 | m_lstruct.p16 = unk_t.p8; | |
| 3716 | m_lstruct.p17 = unk_t.p9; | |
| 3717 | m_lstruct.p0 = NewVector3(0.0f, 0.0f, 0.0f); //rot | |
| 3718 | m_lstruct.p12 = 1; | |
| 3719 | m_lstruct.p34 = GlobalVariable::Read(2097152 + (iSelectedPlayer * 7586) + (1865 * 100) + 42); //hash | iSelectedPlayer should be 0 | |
| 3720 | m_lstruct.p31 = unk_t.p11; | |
| 3721 | m_lstruct.p30 = 1; | |
| 3722 | m_lstruct.p42 = unk_t.p12; | |
| 3723 | ||
| 3724 | thisStructMain _t_main; | |
| 3725 | _t_main.arg = 301; | |
| 3726 | _t_main.player = 0; | |
| 3727 | _t_main.coords = GET_ENTITY_COORDS(playerPed, 1); | |
| 3728 | _t_main.unk = 0; | |
| 3729 | _t_main.unk2 = 0; | |
| 3730 | _t_main.rot = NewVector3(0.0f, 0.0f, 0.0f); | |
| 3731 | _t_main._struct = m_lstruct; | |
| 3732 | TriggerScriptEvent(Var0, 7, iSelectedPlayer); | |
| 3733 | ||
| 3734 | ||
| 3735 | //patched | |
| 3736 | if (individualPlayer[i].featurePutBadSport) | |
| 3737 | {
| |
| 3738 | int Var0[4]; | |
| 3739 | Var0[0] = 312; | |
| 3740 | Var0[1] = i; | |
| 3741 | Var0[2] = INT_MAX; //amount | |
| 3742 | Var0[3] = 0; //Global_2404083 | |
| 3743 | TriggerScriptEvent(Var0, 4, i); | |
| 3744 | } | |
| 3745 | ||
| 3746 | ||
| 3747 | //money | |
| 3748 | int vVar0[3]; | |
| 3749 | vVar0[0] = 219; | |
| 3750 | vVar0[1] = iSelectedPlayer; | |
| 3751 | vVar0[2] = 12345; | |
| 3752 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3753 | ||
| 3754 | ||
| 3755 | //mental state | |
| 3756 | int Param0[9]; | |
| 3757 | Param0[0] = 0; | |
| 3758 | Param0[1] = iSelectedPlayer; | |
| 3759 | Param0[2] = 135; | |
| 3760 | TriggerScriptEvent(Param0, 9, iSelectedPlayer); | |
| 3761 | ||
| 3762 | //off radar | |
| 3763 | int vVar0[3]; | |
| 3764 | vVar0[0] = 358; | |
| 3765 | vVar0[1] = iSelectedPlayer; | |
| 3766 | vVar0[2] = 59; | |
| 3767 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3768 | ||
| 3769 | ||
| 3770 | ||
| 3771 | //func_3619(func_6(1, 1), 1, iParam0, 1); | |
| 3772 | ||
| 3773 | //offradar | |
| 3774 | int Var0[6]; | |
| 3775 | Var0[0] = 288; | |
| 3776 | Var0[1] = iSelectedPlayer; | |
| 3777 | Var0[3] = 1; | |
| 3778 | Var0[5] = 1; | |
| 3779 | Var0[2] = iSelectedPlayer; | |
| 3780 | ||
| 3781 | //Global_2399048 + 2415 + (Var0 + 3) = 0; | |
| 3782 | //Global_2399048 + 2415 + 39 + (1 * 2), 1, 0); | |
| 3783 | //Global_2399048 + 2415 + 232 = network_get_host_of_script("Freemode", -1, 0);
| |
| 3784 | ||
| 3785 | GlobalVariable::Write(Global_2410912 + 4054 + 1, 0); | |
| 3786 | GlobalVariable::Write(Global_2410912 + 4054 + 2, 59); //time | |
| 3787 | TriggerScriptEvent(Var0, 6, iSelectedPlayer); | |
| 3788 | ||
| 3789 | ||
| 3790 | //offradar | |
| 3791 | int Var02[4]; | |
| 3792 | Var02[0] = 289; | |
| 3793 | Var02[1] = iSelectedPlayer; | |
| 3794 | Var02[3] = 1; | |
| 3795 | Var02[2] = GlobalVariable::Read(Global_2410912 + 4054); | |
| 3796 | GlobalVariable::Write(2399048 + 2415 + 235 + (1 * 4), 1); | |
| 3797 | GlobalVariable::Write(2399048 + 2415 + 235 + (1 * 4) + 1, 59); //time | |
| 3798 | ||
| 3799 | //GlobalVariable::Write(2399048 + 2415 + 39 + (1 * 2), 0); | |
| 3800 | GlobalVariable::Write(Global_2410912 + 4054 + 2, 0); | |
| 3801 | TriggerScriptEvent(Var02, 6, iSelectedPlayer); | |
| 3802 | ||
| 3803 | ||
| 3804 | ||
| 3805 | //offradar | |
| 3806 | int Var03[6]; | |
| 3807 | Var03[0] = 291; | |
| 3808 | Var03[1] = iSelectedPlayer; | |
| 3809 | Var03[3] = 1; | |
| 3810 | Var03[5] = 1; | |
| 3811 | Var03[4] = 1; | |
| 3812 | Var03[2] = 1; | |
| 3813 | TriggerScriptEvent(Var03, 6, iSelectedPlayer); | |
| 3814 | ||
| 3815 | //badsport | |
| 3816 | int vVar0[3]; | |
| 3817 | vVar0[0] = 2; | |
| 3818 | vVar0[1] = iSelectedPlayer; | |
| 3819 | vVar0[2] = valueee; | |
| 3820 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3821 | ||
| 3822 | ||
| 3823 | ||
| 3824 | ||
| 3825 | //commend | |
| 3826 | int Var0[6]; | |
| 3827 | Var0[0] = 288; | |
| 3828 | Var0[1] = iSelectedPlayer; | |
| 3829 | Var0[3] = 1; | |
| 3830 | Var0[5] = 1; | |
| 3831 | Var0[2] = 100; //value | |
| 3832 | //Global_2399048.f_2415[Var0.[3]] = 0; | |
| 3833 | //func_599(&(Global_2399048.f_2415.f_39[iParam1 /*2*/]), 1, 0); | |
| 3834 | //Global_2399048.f_2415.f_232 = network_get_host_of_script("Freemode", -1, 0);
| |
| 3835 | ||
| 3836 | //Global_2410912.f_4054.f_1 = 0; | |
| 3837 | //func_599(&(Global_2410912.f_4054.f_2), 0, 0); | |
| 3838 | TriggerScriptEvent(Var0, 6, iSelectedPlayer); | |
| 3839 | ||
| 3840 | ||
| 3841 | //commend2 | |
| 3842 | //288 | |
| 3843 | //259 | |
| 3844 | //279 - unk | |
| 3845 | ||
| 3846 | int vVar0[3]; | |
| 3847 | vVar0[0] = 2; | |
| 3848 | vVar0[1] = iSelectedPlayer; | |
| 3849 | vVar0[2] = 37; //helpful commend | 26 | 54 | |
| 3850 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3851 | ||
| 3852 | ||
| 3853 | ||
| 3854 | ||
| 3855 | ||
| 3856 | //delete or lock personal vehicle | |
| 3857 | int vVar0[3]; | |
| 3858 | vVar0[0] = 56; | |
| 3859 | vVar0[1] = 0; | |
| 3860 | vVar0[2] = 0; | |
| 3861 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3862 | ||
| 3863 | //unknown | |
| 3864 | int vVar0[3]; | |
| 3865 | vVar0[0] = 302; | |
| 3866 | vVar0[1] = iSelectedPlayer; | |
| 3867 | vVar0[2] = 0; | |
| 3868 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3869 | ||
| 3870 | //remove wanted level | |
| 3871 | int vVar0[2]; | |
| 3872 | vVar0[0] = 356; | |
| 3873 | vVar0[1] = iSelectedPlayer; | |
| 3874 | TriggerScriptEvent(vVar0, 2, iSelectedPlayer); | |
| 3875 | ||
| 3876 | //roller coster | |
| 3877 | int args[2]; | |
| 3878 | args[0] = 346; | |
| 3879 | args[1] = 0; //unknown | |
| 3880 | TriggerScriptEvent(args, 2, iSelectedPlayer); | |
| 3881 | ||
| 3882 | //betting money | |
| 3883 | int Var1[2]; | |
| 3884 | Var1[0] = 200; | |
| 3885 | Var1[1] = iSelectedPlayer; | |
| 3886 | TriggerScriptEvent(Var1, 2, iSelectedPlayer); | |
| 3887 | ||
| 3888 | //switch mission blips | |
| 3889 | int vVar0[3]; | |
| 3890 | vVar0[0] = 365; | |
| 3891 | vVar0[1] = iSelectedPlayer; | |
| 3892 | vVar0[2] = 1; | |
| 3893 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3894 | ||
| 3895 | ||
| 3896 | //358 off the radar | |
| 3897 | int vVar0[3]; | |
| 3898 | vVar0[0] = 358; | |
| 3899 | vVar0[1] = PLAYER_ID(); | |
| 3900 | vVar0[2] = 50; //time | |
| 3901 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3902 | ||
| 3903 | //41 death match notifaction/from me | |
| 3904 | int Var0[6]; | |
| 3905 | Var0[0] = 41; | |
| 3906 | Var0[1] = PLAYER_ID(); | |
| 3907 | Var0[3] = 1; //last or current vehicle active | |
| 3908 | Var0[5] = 1; //some kind of return stat value | |
| 3909 | TriggerScriptEvent(Var0, 6, iSelectedPlayer); | |
| 3910 | ||
| 3911 | ||
| 3912 | ||
| 3913 | //288/289 bullshark | |
| 3914 | int Var0[6]; | |
| 3915 | Var0[0] = 288; | |
| 3916 | Var0[1] = iSelectedPlayer; | |
| 3917 | Var0[3] = 1; | |
| 3918 | Var0[5] = 1; | |
| 3919 | Var0[2] = iSelectedPlayer; //player 2 | |
| 3920 | TriggerScriptEvent(Var0, 6, iSelectedPlayer); | |
| 3921 | ||
| 3922 | ||
| 3923 | //close interaction menu/paused 259 | |
| 3924 | int vVar0[3]; | |
| 3925 | vVar0[0] = 259; | |
| 3926 | vVar0[1] = iSelectedPlayer; | |
| 3927 | vVar0[2] = 0; | |
| 3928 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 3929 | ||
| 3930 | //false leave | |
| 3931 | int var0[3]; | |
| 3932 | var0[0] = 203; | |
| 3933 | var0[1] = iSelectedPlayer; | |
| 3934 | var0[2] = 100000; | |
| 3935 | TriggerScriptEvent(&ride, 3, iSelectedPlayer); | |
| 3936 | ||
| 3937 | ||
| 3938 | int var0[3]; | |
| 3939 | var0[0] = 27; | |
| 3940 | var0[1] = iSelectedPlayer; | |
| 3941 | var0[2] = 1; | |
| 3942 | TriggerScriptEvent(&ride, 3, iSelectedPlayer); | |
| 3943 | //arg/ 3 params | |
| 3944 | //1 fake leave | |
| 3945 | //27 notifacation sound | |
| 3946 | //30 bullshark started | |
| 3947 | //31 bullshark end | |
| 3948 | //56 request personal vehicle | |
| 3949 | //64 anon bounty | |
| 3950 | //67 empty notifaction | |
| 3951 | //151 fake leave | |
| 3952 | //161 remove blips | |
| 3953 | //162 RDR_LEAKS join Job. | |
| 3954 | //163 remove blips | |
| 3955 | //173 armour truck | |
| 3956 | //174 enable blips back | |
| 3957 | //300 insurance message | |
| 3958 | //312 hospital bill | |
| 3959 | //318 fake leave | |
| 3960 | //322 fake leave | |
| 3961 | //325 fave leave | |
| 3962 | ||
| 3963 | ||
| 3964 | typedef struct | |
| 3965 | {
| |
| 3966 | int arg; | |
| 3967 | int player; | |
| 3968 | char *weather; | |
| 3969 | } onlineWeather; | |
| 3970 | ||
| 3971 | onlineWeather weather; | |
| 3972 | weather.arg = 16; | |
| 3973 | weather.player = iSelectedPlayer; | |
| 3974 | weather.weather = "BLIZZARD"; | |
| 3975 | TriggerScriptEvent(&weather, 3, iSelectedPlayer); | |
| 3976 | ||
| 3977 | ||
| 3978 | ||
| 3979 | //unlock all test | |
| 3980 | int Var0[9]; | |
| 3981 | ||
| 3982 | GlobalVariable::Write(1573885, 0); | |
| 3983 | Var0[0] = 199; | |
| 3984 | Var0[1] = PLAYER_ID(); | |
| 3985 | //Vector3 coords = GlobalVariable::Read(Global_2394218 + 2529); | |
| 3986 | //Var0[2] = coords; | |
| 3987 | Var0[6] = 0; | |
| 3988 | Var0[8] = IS_BIT_SET(GlobalVariable::Get(Global_1581767 + (PLAYER_ID() * 306) + 114), 0); | |
| 3989 | Var0[7] = GlobalVariable::Get(Global_1581767 + (PLAYER_ID() * 306) + 76 + 27); | |
| 3990 | //func_551(); | |
| 3991 | //func_555(vParam0.z); | |
| 3992 | //GlobalVariable::WriteVector3(Global_2394218 + 2529, coords); | |
| 3993 | char *prt = GlobalVariable::GetString(Global_2394218 + 2444 + 51); | |
| 3994 | strncpy(prt, 0, 64); | |
| 3995 | char *prt2 = GlobalVariable::GetString(Global_2394218 + 2444 + 67); | |
| 3996 | strncpy(prt2, 0, 64); | |
| 3997 | int iVar1 = GlobalVariable::Get(Global_2390201 + (PLAYER_ID() * 223) + 121 + 1); | |
| 3998 | int iVar2 = GlobalVariable::Get((Global_2390201 + (PLAYER_ID() * 223) + 121 + 1 + GlobalVariable::Get(Global_2390201 + (PLAYER_ID() * 223) + 121 + 1 + 1))); | |
| 3999 | ||
| 4000 | Var0[5] = ROUND(((TO_FLOAT(iVar1) / TO_FLOAT(iVar2)) * 100.0f)); | |
| 4001 | ||
| 4002 | if (Var0[5] <= 0) | |
| 4003 | {
| |
| 4004 | Var0[5] = GET_RANDOM_INT_IN_RANGE(5, 100); | |
| 4005 | } | |
| 4006 | ||
| 4007 | //func_554(1); | |
| 4008 | TriggerScriptEvent(Var0, 9, PLAYER_ID()); | |
| 4009 | ||
| 4010 | ||
| 4011 | //unlock all 2 | |
| 4012 | int Var0[2]; | |
| 4013 | Var0[0] = 309; | |
| 4014 | Var0[1] = PLAYER_ID(); | |
| 4015 | TriggerScriptEvent(Var0, 2, PLAYER_ID()); | |
| 4016 | ||
| 4017 | ||
| 4018 | //unlock all 3 | |
| 4019 | int vVar0[3]; | |
| 4020 | vVar0[0] = 167; | |
| 4021 | vVar0[1] = PLAYER_ID(); | |
| 4022 | vVar0[2] = GlobalVariable::Get(2388295 + (PLAYER_ID() * 40) + 3 + 17); | |
| 4023 | TriggerScriptEvent(vVar0, 3, PLAYER_ID()); | |
| 4024 | ||
| 4025 | ||
| 4026 | ||
| 4027 | //earn from pickup | |
| 4028 | int Var0[4]; | |
| 4029 | Var0[0] = 44; | |
| 4030 | Var0[1] = iSelectedPlayer; | |
| 4031 | Var0[2] = iSelectedPlayer; //player 2 | |
| 4032 | Var0[3] = 100; //value | |
| 4033 | TriggerScriptEvent(Var0, 4, iSelectedPlayer); | |
| 4034 | ||
| 4035 | ||
| 4036 | ||
| 4037 | ||
| 4038 | //something | |
| 4039 | int vVar0[3]; | |
| 4040 | vVar0[0] = 43; | |
| 4041 | vVar0[1] = iSelectedPlayer; | |
| 4042 | vVar0[2] = iSelectedPlayer; //player 2 | |
| 4043 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 4044 | ||
| 4045 | ||
| 4046 | //somthing else | |
| 4047 | int Var0[19]; | |
| 4048 | //struct<20> Var1; | |
| 4049 | Var0[0] = 59; | |
| 4050 | Var0[1] = iSelectedPlayer; | |
| 4051 | int zeroo = 0; | |
| 4052 | int uVar56 = 0; | |
| 4053 | SET_BIT(&uVar56, zeroo); | |
| 4054 | ||
| 4055 | Var0[16] = uVar56; | |
| 4056 | Var0[2] = iSelectedPlayer; //player 2 | |
| 4057 | Var0[18] = GlobalVariable::Get(1572928 + 4 + (iSelectedPlayer * 3) + 1); | |
| 4058 | Var0[17] = 1; | |
| 4059 | Var0[3] = GlobalVariable::Get(2097152 + (zeroo * 7586) + 7168); | |
| 4060 | /*StringCopy(&Var1, get_player_name(player_id()), 32); | |
| 4061 | if (func_5666(iParam1, 0, 1)) | |
| 4062 | {
| |
| 4063 | StringCopy(&(Var1.f_8), get_player_name(iParam1), 32); | |
| 4064 | } | |
| 4065 | Var1[16] = uParam3; | |
| 4066 | Var1[17] = iParam5; | |
| 4067 | Var1[18] = Global_1581767[player_id() * 306].f_178.f_6; | |
| 4068 | Var1[19] = iParam4; | |
| 4069 | _0x0B9A3512(&Param2); | |
| 4070 | _0x628F489B(&Var1);*/ | |
| 4071 | TriggerScriptEvent(Var0, 20, iSelectedPlayer); | |
| 4072 | ||
| 4073 | ||
| 4074 | //something idk | |
| 4075 | int Var0[2]; | |
| 4076 | Var0[0] = 204; | |
| 4077 | Var0[1] = iSelectedPlayer; | |
| 4078 | TriggerScriptEvent(Var0, 2, iSelectedPlayer); | |
| 4079 | ||
| 4080 | ||
| 4081 | //am_vehicle_spawn | |
| 4082 | int Var0[5]; | |
| 4083 | Var0[0] = 296; | |
| 4084 | Var0[1] = PLAYER_ID(); | |
| 4085 | Var0[2] = PLAYER_ID(); | |
| 4086 | Var0[3] = 5; //0 - through 5 | |
| 4087 | Var0[4] = VEHICLE_ADDER; | |
| 4088 | TriggerScriptEvent(Var0, 5, PLAYER_ID()); | |
| 4089 | ||
| 4090 | //am_vehicle_spawn | |
| 4091 | int Var0[5]; | |
| 4092 | Var0[0] = 295; | |
| 4093 | Var0[1] = PLAYER_ID(); | |
| 4094 | Var0[2] = PLAYER_ID(); | |
| 4095 | Var0[3] = 1; //0 - through 5 | |
| 4096 | Var0[4] = VEHICLE_ADDER; | |
| 4097 | TriggerScriptEvent(Var0, 5, PLAYER_ID()); | |
| 4098 | ||
| 4099 | ||
| 4100 | //undocumented events | |
| 4101 | //192 / crew awards unlock | |
| 4102 | //210 / promote or demote a crew member | |
| 4103 | //182 / crew left | |
| 4104 | //203 / kick from crew | |
| 4105 | //213 / set some crew var to true | |
| 4106 | ||
| 4107 | ||
| 4108 | ||
| 4109 | ||
| 4110 | if (featureForgeGun) | |
| 4111 | {
| |
| 4112 | DISABLE_PLAYER_FIRING(PLAYER_ID(), 1); | |
| 4113 | if (IS_CONTROL_JUST_PRESSED(2, INPUT_FRONTEND_RT) && GET_ENTITY_PLAYER_IS_FREE_AIMING_AT(PLAYER_ID(), &forge_entity) && DOES_ENTITY_EXIST(forge_entity)) { forge_target_locked = !forge_target_locked; if (IS_ENTITY_A_PED(forge_entity) && IS_PED_IN_ANY_VEHICLE(forge_entity, 1)) { forge_entity = GET_VEHICLE_PED_IS_IN(forge_entity, 0); } }
| |
| 4114 | if (forge_target_locked) | |
| 4115 | {
| |
| 4116 | if (RequestControlOfEnt(forge_entity)) | |
| 4117 | {
| |
| 4118 | Vector3 min, max; | |
| 4119 | GET_MODEL_DIMENSIONS(GET_ENTITY_MODEL(forge_entity), &min, &max); | |
| 4120 | Vector3 camvf = get_coords_from_cam(featureForgeGunRange + max.y); | |
| 4121 | SET_ENTITY_COORDS_NO_OFFSET(forge_entity, camvf.x, camvf.y, camvf.z, 1, 1, 1); | |
| 4122 | if (IS_ENTITY_A_VEHICLE(forge_entity)) { SET_ENTITY_HEADING(forge_entity, GET_ENTITY_HEADING(PLAYER_PED_ID()) + 90.0f); }
| |
| 4123 | } | |
| 4124 | } | |
| 4125 | else | |
| 4126 | {
| |
| 4127 | if (DOES_ENTITY_EXIST(forge_entity)) | |
| 4128 | FREEZE_ENTITY_POSITION(forge_entity, 1); | |
| 4129 | } | |
| 4130 | } | |
| 4131 | ||
| 4132 | ||
| 4133 | ||
| 4134 | case 10: | |
| 4135 | ||
| 4136 | //featureClearAttachmentsNet = 1; | |
| 4137 | if (detachObjectsFromPlayerCurrentlyRunning == 0) | |
| 4138 | {
| |
| 4139 | detachObjectsFromPlayerCurrentlyRunning = 1; | |
| 4140 | detachObjectsFromPlayerAddr = playerPedIter; | |
| 4141 | detachObjectsFromPlayerCurrentIndex = 0; | |
| 4142 | clearAttachmentsCallback(0); | |
| 4143 | } | |
| 4144 | break; | |
| 4145 | ||
| 4146 | ||
| 4147 | ||
| 4148 | ||
| 4149 | void nullFuncH(int handle) { return; }
| |
| 4150 | void(*saveFunc)(int); | |
| 4151 | Entity featureClearEentity = 0, detachObjectsFromPlayerAddr = 0; | |
| 4152 | int featureClearAttamentTimeout = 0, detachObjectsFromPlayerCurrentIndex = 0; | |
| 4153 | bool featureClearAttachmentsNet = 0, detachObjectsFromPlayerCurrentlyRunning = 0; | |
| 4154 | ||
| 4155 | ||
| 4156 | void markEntityForDeletion(int ent, void(*handle)(int) = nullFuncH) | |
| 4157 | {
| |
| 4158 | featureClearAttamentTimeout = 0; | |
| 4159 | featureClearEentity = ent; | |
| 4160 | featureClearAttachmentsNet = 1; | |
| 4161 | saveFunc = handle; | |
| 4162 | } | |
| 4163 | void clearAttachmentsCallback(Entity previousEntity) | |
| 4164 | {
| |
| 4165 | CEntityPool *Entities = (CEntityPool*)*(unsigned int*)_entityPoolAddress; | |
| 4166 | if (detachObjectsFromPlayerCurrentIndex >= Entities->maxPoolSize) | |
| 4167 | {
| |
| 4168 | detachObjectsFromPlayerCurrentlyRunning = 0; | |
| 4169 | return; | |
| 4170 | } | |
| 4171 | ||
| 4172 | poolEntity *ent = &Entities->getEntity(detachObjectsFromPlayerCurrentIndex); | |
| 4173 | while (true) | |
| 4174 | {
| |
| 4175 | if (ent->isValid()) | |
| 4176 | {
| |
| 4177 | int index = EntityToIndex(ent->addr); | |
| 4178 | if (GET_ENTITY_ATTACHED_TO(index) == detachObjectsFromPlayerAddr) | |
| 4179 | {
| |
| 4180 | break; | |
| 4181 | } | |
| 4182 | } | |
| 4183 | detachObjectsFromPlayerCurrentIndex++; | |
| 4184 | if (detachObjectsFromPlayerCurrentIndex >= Entities->maxPoolSize) | |
| 4185 | {
| |
| 4186 | detachObjectsFromPlayerCurrentlyRunning = 0; | |
| 4187 | return; | |
| 4188 | } | |
| 4189 | ent = &Entities->getEntity(detachObjectsFromPlayerCurrentIndex); | |
| 4190 | } | |
| 4191 | int entityIndex = EntityToIndex(ent->addr); | |
| 4192 | markEntityForDeletion(entityIndex, clearAttachmentsCallback); | |
| 4193 | detachObjectsFromPlayerCurrentIndex++; | |
| 4194 | } | |
| 4195 | ||
| 4196 | ||
| 4197 | ||
| 4198 | ||
| 4199 | ||
| 4200 | //use this to get the args that are getting past by other players to you, works similar to hooking the actual event function | |
| 4201 | void func_4() | |
| 4202 | {
| |
| 4203 | //event num: 291, event num: 0, event num: 289 /off the radar | |
| 4204 | //arg struct 259 /join session | |
| 4205 | //event num: 244 /smoke bong | |
| 4206 | int iVar0; | |
| 4207 | int iVar1; | |
| 4208 | int iVar2[3]; | |
| 4209 | ||
| 4210 | int m_args[2]; | |
| 4211 | int m_args2[3]; | |
| 4212 | int m_args3[10]; | |
| 4213 | int m_args4[12]; | |
| 4214 | int m_args5[3]; | |
| 4215 | int m_args6[28]; | |
| 4216 | int m_args7[2]; | |
| 4217 | int m_args8[21]; | |
| 4218 | int m_args9[14]; | |
| 4219 | ||
| 4220 | iVar0 = 0; | |
| 4221 | while (iVar0 < GET_NUMBER_OF_EVENTS(1)) | |
| 4222 | {
| |
| 4223 | iVar1 = GET_EVENT_AT_INDEX(1, iVar0); | |
| 4224 | ||
| 4225 | if (iVar1 == 166) //freemode | |
| 4226 | {
| |
| 4227 | GET_EVENT_DATA(1, iVar0, iVar2, 3); | |
| 4228 | printf("arg: %i, arg2: %i, arg3: %i\n", iVar2[0], iVar2[1], iVar2[2]);
| |
| 4229 | if (iVar2[0] == 312) | |
| 4230 | {
| |
| 4231 | printf("badsport \n");
| |
| 4232 | } | |
| 4233 | } | |
| 4234 | if (iVar1 == 164) //main transition | |
| 4235 | {
| |
| 4236 | GET_EVENT_DATA(1, iVar0, m_args, 3); | |
| 4237 | printf("main transition event args: 0x%X, arg2: 0x%X\n", m_args[0], m_args[1]);
| |
| 4238 | } | |
| 4239 | if (iVar1 == 163)//main transition | |
| 4240 | {
| |
| 4241 | GET_EVENT_DATA(1, iVar0, m_args2, 3); | |
| 4242 | printf("main transition2 event args: %i, arg2: 0x%X\n", m_args2[0], m_args2[1]);
| |
| 4243 | } | |
| 4244 | if (iVar1 == 177) //freemode stats | |
| 4245 | {
| |
| 4246 | GET_EVENT_DATA(1, iVar0, m_args3, 10); | |
| 4247 | printf("freemode stats: args: %i, arg2: %i, arg3: 0x%X, arg4: %i, arg5: 0x%X, arg6: %i, arg7: 0x%X, arg8: %i, arg9: 0x%X\n", m_args3[0], m_args3[1], m_args3[2], m_args3[3], m_args3[4], m_args3[5], m_args3[6], m_args3[7], m_args3[8], m_args3[9]);
| |
| 4248 | } | |
| 4249 | if (iVar1 == 154) //main_presistent | admin kick | |
| 4250 | {
| |
| 4251 | //func_1091 | |
| 4252 | GET_EVENT_DATA(1, iVar0, m_args5, 1); | |
| 4253 | printf("admin: arg: %i, arg2: %X, arg3: %i\n", m_args5[0], m_args5[1], m_args5[2]);
| |
| 4254 | } | |
| 4255 | if (iVar1 == 192) //main_presistent | disable multiplayer | |
| 4256 | {
| |
| 4257 | GET_EVENT_DATA(1, iVar0, m_args6, 28); | |
| 4258 | printf("dis multi: arg: %i, arg2: %i, arg3: %i, arg4: %i, arg5: %i\n", m_args6[0], m_args6[1], m_args6[2], m_args6[3], m_args6[4]);
| |
| 4259 | } | |
| 4260 | if (iVar1 == 175) //main_presistent | session error | |
| 4261 | {
| |
| 4262 | GET_EVENT_DATA(1, iVar0, m_args7, 2); | |
| 4263 | printf("session error: arg: %i, arg2: %i\n", m_args7[0], m_args7[1]);
| |
| 4264 | } | |
| 4265 | if (iVar1 == 175) //main_presistent | new session | |
| 4266 | {
| |
| 4267 | GET_EVENT_DATA(1, iVar0, m_args8, 21); | |
| 4268 | printf("new session: arg: %i, arg2: %i, arg3: %i, arg4: %i\n", m_args8[0], m_args8[1], m_args8[2], m_args8[3]);
| |
| 4269 | } | |
| 4270 | if (iVar1 == 215) //main_presistent | dev kick | |
| 4271 | {
| |
| 4272 | GET_EVENT_DATA(1, iVar0, m_args9, 14); | |
| 4273 | printf("dev kick: arg: %i, arg2: %i, arg3: %i, arg4: %i\n", m_args9[0], m_args9[1], m_args9[2], m_args9[3]);
| |
| 4274 | } | |
| 4275 | if (iVar1 == 150) //freemode unlocks | |
| 4276 | {
| |
| 4277 | //Var0.f_3 | |
| 4278 | //m_args4[3] = 88; //stat set int with global - Global_2428195 | |
| 4279 | //m_args4[4] = 34; //stat set bool with global - Global_2428460 | |
| 4280 | //m_args4[5] = 1; //stat set float with global - Global_1330608 | |
| 4281 | //m_args4[6] = 2949; //stat set int with global - Global_2417731 | |
| 4282 | //m_args4[7] = 228; //stat set bool with global - Global_2427264 | |
| 4283 | //m_args4[8] = 228; //stat set float with global - Global_2426579 | |
| 4284 | GET_EVENT_DATA(1, iVar0, m_args4, 12); | |
| 4285 | printf("freemode unlocks: args: 0x%X, arg2: 0x%X, arg3: %i, arg4: %i, arg5: 0x%X, arg6: %X, arg7: 0x%X, arg8: 0x%X, arg9: 0x%X\n", m_args4[0], m_args4[1], m_args4[2], m_args4[3], m_args4[4], m_args4[5], m_args4[6], m_args4[7], m_args4[8], m_args4[9]);
| |
| 4286 | } | |
| 4287 | ||
| 4288 | iVar0++; | |
| 4289 | } | |
| 4290 | } | |
| 4291 | ||
| 4292 | ||
| 4293 | ||
| 4294 | ||
| 4295 | typedef struct | |
| 4296 | {
| |
| 4297 | int arg; | |
| 4298 | int player; | |
| 4299 | int unknown; | |
| 4300 | int intStatAwards; // stat index of Global_2428195[index here][charater here] | |
| 4301 | int boolStatActivities; // stat index of Global_2428460[index here][charater here] | |
| 4302 | int floatStatTempAward; // stat index of Global_1330608[index here][charater here] | |
| 4303 | int intStatCareer; // stat index of Global_2417731[index here][charater here] | |
| 4304 | int boolStatWeapons; // stat index of Global_2427264[index here][charater here] | |
| 4305 | int floatStatVehicles; // stat index of Global_2426579[index here][charater here] | |
| 4306 | int intStatSet; // stat set int value | |
| 4307 | float floatStatSet; // stat set float value | |
| 4308 | bool boolStatSet; // stat set bool value | |
| 4309 | ||
| 4310 | /*//variables below are not used in this struct, they are just here for documentation, These stats below are not used by trigger script event native | |
| 4311 | ||
| 4312 | //used by scripts but not used by trigger script event native | |
| 4313 | int stringStatGerneral; // stat index of Global_2427949[index here][charater here] | |
| 4314 | ||
| 4315 | //used by scripts but not used by trigger script event native | |
| 4316 | int gxtLabelStatMission; // stat index of Global_1330501[index here][charater here] | this could possible wrong, but gxt label stat seems about correct becuase of the order they come in | |
| 4317 | ||
| 4318 | //used in script but I'm not sure if it's used by trigger script event native | |
| 4319 | int dateStatAward; // stat index of Global_2428010[index here][charater here] | |
| 4320 | ||
| 4321 | //used in script but I'm not sure if it's used by trigger script event native | |
| 4322 | int PosStat; // stat index of Global_2428116[index here][charater here] | |
| 4323 | ||
| 4324 | //used in script but I'm not sure if it's used by trigger script event native | |
| 4325 | int useridStat; // stat index of Global_1330505[index here][charater here] | |
| 4326 | ||
| 4327 | //used in script but I'm not sure if it's used by trigger script event native | |
| 4328 | int intStatmpplyMiscAwards; // stat index of Global_1330616[index here] | |
| 4329 | ||
| 4330 | //used by scripts but not used by trigger script event native | |
| 4331 | int floatStatmpply; // stat index of Global_1330622[index here] | |
| 4332 | ||
| 4333 | //used in script but I'm not sure if it's used by trigger script event native | |
| 4334 | int boolStatmpply; // stat index of Global_1330624[index here] | |
| 4335 | ||
| 4336 | //used by scripts but not used by trigger script event native | |
| 4337 | int unknownTypeStatmpply; // stat index of Global_1330636[index here] | |
| 4338 | */ | |
| 4339 | } mp_client_stats; | |
| 4340 | ||
| 4341 | ||
| 4342 | ||
| 4343 | mp_client_stats stat; | |
| 4344 | stat.arg = 150; | |
| 4345 | stat.player = iSelectedPlayer; | |
| 4346 | stat.unknown = iSelectedPlayer; | |
| 4347 | stat.intStatAwards = 88; | |
| 4348 | stat.boolStatActivities = 34; | |
| 4349 | stat.floatStatTempAward = 1; | |
| 4350 | stat.intStatCareer = 2949; | |
| 4351 | stat.boolStatWeapons = 288; | |
| 4352 | stat.floatStatVehicles = 288; | |
| 4353 | stat.intStatSet = 0; | |
| 4354 | stat.floatStatSet = 0; | |
| 4355 | stat.boolStatSet = 0; | |
| 4356 | ||
| 4357 | ||
| 4358 | //now set stat becuase that's what scrips do | |
| 4359 | //set 500 super heavy armour to player | |
| 4360 | stat.intStatCareer = 1867; //Global_2417731[1867 /*3*/][0] = joaat("mp0_mp_char_armour_5_count");
| |
| 4361 | stat.intStatSet = 500; | |
| 4362 | ||
| 4363 | //set player rp | rank 120 | |
| 4364 | //stat.intStatCareer = 626; //Global_2417731[626 /*3*/][0] = joaat("mp0_char_xp_fm");
| |
| 4365 | //stat.intStatSet = 2017150; //rp for rank 120 | |
| 4366 | ||
| 4367 | ||
| 4368 | //set admin rp to them | rank 120 | |
| 4369 | //stat.intStatCareer = 1868; //Global_2417731[1868 /*3*/][0] = joaat("mp0_char_set_rp_gift_admin");
| |
| 4370 | //stat.intStatSet = 2017150; //rp for rank 120 | |
| 4371 | ||
| 4372 | ||
| 4373 | TriggerScriptEvent(&stat, 12, iSelectedPlayer); | |
| 4374 | ||
| 4375 | ||
| 4376 | ||
| 4377 | ||
| 4378 | ||
| 4379 | ||
| 4380 | 0x1C6C530 NETWORK_INCREMENT_STAT_EVENT | |
| 4381 | 0x12D137C NETWORK_INCREMENT_STAT_FUNC | |
| 4382 | ||
| 4383 | //GAME_EXPORT int 0x12D141C(int32_t a1, int32_t a2, int32_t a3); | |
| 4384 | ||
| 4385 | //0x12D141C(0xdafb10f9, dword, dword); //hash = mpply_friendly | |
| 4386 | ||
| 4387 | /* | |
| 4388 | 0x12D141C follow this address back to 0xC3FA0 | |
| 4389 | 0xC3FA0 contains the stat data | |
| 4390 | ||
| 4391 | 0xC3FA0(int32_t *a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, unsigned int a7, unsigned int a8); | |
| 4392 | 0xC3FA0(&unk_29DF5DC, (int32_t )&v5, (int32_t )&v4, (int32_t )&v3, (int32_t )"COMMEND_SPAM_TIMEOUT", (int32_t )"COMMEND_SPAM_TIMEOUT_DISABLED", 0x4B0, 0xDAFB10F9); //mpply_friendly | |
| 4393 | ||
| 4394 | ||
| 4395 | GAME_EXPORT int _0x324CB0(int *a1, int a2); | |
| 4396 | ||
| 4397 | //0x325EF0(Hash hash, unsigned int value, unsigned int value2); | |
| 4398 | GAME_EXPORT int _0x325EF0(int32_t *a1); | |
| 4399 | ||
| 4400 | GAME_EXPORT int 0x12D8D2C(0xB5EE873, 0x3C0AF527, int value); | |
| 4401 | ||
| 4402 | GAME_EXPORT int 0x12DEC4C(someVtable, unsinged int, Hash, int value); | |
| 4403 | ||
| 4404 | GAME_EXPORT unsigned int 0xAE8E98(int32_t a1); | |
| 4405 | ||
| 4406 | 0xB5EE873 = BASE_GLOBALS | |
| 4407 | ||
| 4408 | unsigned int _0xA076C0(int strc) | |
| 4409 | ||
| 4410 | ||
| 4411 | //GAME_EXPORT int _0x12D141C(unsigned int v2, unsigned int v4, unsigned int v5) | |
| 4412 | GAME_EXPORT void _0x324CB0(int *a1, char *a2) | |
| 4413 | //int value = 0; | |
| 4414 | //_0x324CB0(&value, "MPPLY_LAST_REPORT_RESTORE"); | |
| 4415 | GAME_EXPORT int *_0x12DEC4C(int32_t a1, int32_t value, int array_index) //returns an array | |
| 4416 | //_0x12DEC4C(0x38CEB237, 0, 3); //0x38CEB237 = mp_global | |
| 4417 | GAME_EXPORT void _0x12B4710(unsigned int hash_table_address, unsigned int hash, unsigned int data) | |
| 4418 | // unsigned int dword_1CFB0B8 = 0x1CFB0B8; | |
| 4419 | //_0x12B4710(dword_1CFB0B8, 0x1C95C751, 0x10); //0xF227F666 COMMENDREPORT_MAX_STRENGTH | |
| 4420 | GAME_EXPORT _0x12CF8F0(char *a1, char *a2, int value) //returns an array looks like | |
| 4421 | //_0x12CF8F0("MP_GLOBAL", "KICK_TIMEOUT", 0);
| |
| 4422 | //_0x12CF8F0("MP_GLOBAL", "KICK_TIMEOUT_DISABLED", 2);
| |
| 4423 | GAME_EXPORT char _0xC3C8C(const char *a1, int32_t a2, int32_t a3) | |
| 4424 | GAME_EXPORT char *_0x12F89B8(const char *a1) | |
| 4425 | GAME_EXPORT void _0xA23BD0(int32_t *a1, int32_t a2, int a3) | |
| 4426 | ||
| 4427 | unsigned int CNetGamePlayer() | |
| 4428 | {
| |
| 4429 | unsigned int s = 0x00000000; | |
| 4430 | unsigned int v23 = *(unsigned int*)(s + 0x4C); | |
| 4431 | return _0xA076C0(v23); | |
| 4432 | } | |
| 4433 | ||
| 4434 | ||
| 4435 | ||
| 4436 | ||
| 4437 | ||
| 4438 | ||
| 4439 | ||
| 4440 | ||
| 4441 | ||
| 4442 | ||
| 4443 | ||
| 4444 | int g_global = GlobalVariable::Get(1310891 + (PLAYER_ID() * 6) + 1); | |
| 4445 | int vVar0[3]; | |
| 4446 | vVar0[0] = 168; | |
| 4447 | vVar0[1] = iSelectedPlayer; | |
| 4448 | vVar0[2] = g_global; | |
| 4449 | TriggerScriptEvent(vVar0, 3, iSelectedPlayer); | |
| 4450 | ||
| 4451 | int Var2[4]; | |
| 4452 | Var2[0] = 157; | |
| 4453 | Var2[1] = iSelectedPlayer; | |
| 4454 | int bit = 0; | |
| 4455 | SET_BIT(&bit, PLAYER_ID()); | |
| 4456 | Var2[2] = bit; //bitset | |
| 4457 | Var2[3] = g_global; | |
| 4458 | TriggerScriptEvent(Var2, 4, iSelectedPlayer); | |
| 4459 | ||
| 4460 | ||
| 4461 | int FadeTime = 700; | |
| 4462 | RGBA ColorList[4] = {
| |
| 4463 | { 255, 0, 0, 255 },
| |
| 4464 | { 0, 255, 0, 255 },
| |
| 4465 | { 0, 0, 255, 255 },
| |
| 4466 | { 255, 255, 0, 255 },
| |
| 4467 | }; | |
| 4468 | float fadeAmount; | |
| 4469 | int colorIndex; | |
| 4470 | RGBA startColor = ColorList[0], endColor = ColorList[1]; | |
| 4471 | RGBA currentColor; | |
| 4472 | ||
| 4473 | double Lerp(double d1, double d2, double d) | |
| 4474 | {
| |
| 4475 | return d1 + (d2 - d1) * d; | |
| 4476 | } | |
| 4477 | RGBA FadeTo(RGBA color1, RGBA color2, double d) | |
| 4478 | {
| |
| 4479 | RGBA col; | |
| 4480 | double r = Lerp(color1.R, color2.R, d); | |
| 4481 | double g = Lerp(color1.G, color2.G, d); | |
| 4482 | double b = Lerp(color1.B, color2.B, d); | |
| 4483 | col.R = r; | |
| 4484 | col.G = g; | |
| 4485 | col.B = b; | |
| 4486 | return col; | |
| 4487 | } | |
| 4488 | ||
| 4489 | if (fadeAmount < 1.0f) | |
| 4490 | {
| |
| 4491 | fadeAmount += GET_FRAME_TIME() * (1000.0f / FadeTime); | |
| 4492 | ||
| 4493 | if (fadeAmount < 0.0f) | |
| 4494 | fadeAmount = 0.0f; | |
| 4495 | ||
| 4496 | else if (fadeAmount > 1.0f) | |
| 4497 | fadeAmount = 1.0f; | |
| 4498 | ||
| 4499 | currentColor = FadeTo(startColor, endColor, fadeAmount); | |
| 4500 | } | |
| 4501 | else | |
| 4502 | {
| |
| 4503 | colorIndex++; | |
| 4504 | ||
| 4505 | colorIndex %= sizeof(ColorList); | |
| 4506 | ||
| 4507 | startColor = currentColor; | |
| 4508 | ||
| 4509 | endColor = ColorList[colorIndex]; | |
| 4510 | ||
| 4511 | fadeAmount = 0.0f; | |
| 4512 | } | |
| 4513 | ||
| 4514 | if (IS_PED_IN_ANY_VEHICLE(myVeh, 1)) | |
| 4515 | SET_VEHICLE_CUSTOM_PRIMARY_COLOUR(myVeh, currentColor.R, currentColor.G, currentColor.B); | |
| 4516 | ||
| 4517 | ||
| 4518 | ||
| 4519 | ||
| 4520 | ||
| 4521 | ||
| 4522 | ||
| 4523 | ||
| 4524 | ||
| 4525 | ||
| 4526 | ||
| 4527 | ||
| 4528 | ||
| 4529 | ||
| 4530 | //18 players in session | |
| 4531 | _NETWORK_SESSION_SET_MAX_PLAYERS(0, 18); //Player | |
| 4532 | _NETWORK_SESSION_SET_MAX_PLAYERS(4, 18); //Spectator | |
| 4533 | _NETWORK_SESSION_SET_MAX_PLAYERS(8, 18); //SCTV | |
| 4534 | _NETWORK_SCTV_SLOTS(18); | |
| 4535 | *(int *)(0x3E42EC) = BLR; //_NETWORK_SESSION_SET_MAX_PLAYERS | |
| 4536 | ||
| 4537 | ||
| 4538 | ||
| 4539 | ||
| 4540 | ||
| 4541 | ||
| 4542 | ||
| 4543 | ||
| 4544 | ||
| 4545 | ||
| 4546 | ||
| 4547 | ||
| 4548 | ||
| 4549 | ||
| 4550 | ||
| 4551 | int getProofs(Entity entity, int bit) | |
| 4552 | {
| |
| 4553 | int address = getScriptHandleBaseAddress(entity); | |
| 4554 | printf("address: 0x%X\n", address);
| |
| 4555 | ||
| 4556 | int fire = 5; | |
| 4557 | int melee = 7; | |
| 4558 | int bullet = 4; | |
| 4559 | int explosion = 11; | |
| 4560 | int collision = 6; | |
| 4561 | int onlyDamageByPlayer = 9; | |
| 4562 | int invincible = 8; | |
| 4563 | ||
| 4564 | //other unknown params? | |
| 4565 | int ten = 10; | |
| 4566 | int fourteen = 14; | |
| 4567 | int fifthteen = 15; | |
| 4568 | int canEntityBeDamaged = 18; | |
| 4569 | int twentyfour = 24; | |
| 4570 | ||
| 4571 | /* | |
| 4572 | nothing: | |
| 4573 | toggle: 1 = byte 0x30000800 | |
| 4574 | toggle: 0 = byte 0x30000800 | |
| 4575 | ||
| 4576 | player invincible | |
| 4577 | toggle: 1 = byte 0x30800800 | |
| 4578 | toggle: 0 = byte 0x30000800 | |
| 4579 | ||
| 4580 | bullet proof: | |
| 4581 | toggle: 1 = byte 0x38000800 | |
| 4582 | toggle: 0 = byte 0x30000800 | |
| 4583 | ||
| 4584 | fire proof: | |
| 4585 | toggle: 1 = byte 0x34000800 | |
| 4586 | toggle: 0 = byte 0x30000800 | |
| 4587 | ||
| 4588 | explosion proof: | |
| 4589 | toggle: 1 = byte 0x30200800 | |
| 4590 | toggle: 0 = byte 0x30000800 | |
| 4591 | ||
| 4592 | collision proof: | |
| 4593 | toggle: 1 = byte 0x32000800 | |
| 4594 | toggle: 0 = byte 0x30000800 | |
| 4595 | ||
| 4596 | melee proof: | |
| 4597 | toggle: 1 = byte 0x31000800 | |
| 4598 | toggle: 0 = byte 0x30000800 | |
| 4599 | ||
| 4600 | p6 proof: | |
| 4601 | toggle: 1 = byte 0x30020800 | |
| 4602 | toggle: 0 = byte 0x30000800 | |
| 4603 | ||
| 4604 | p7 proof: //next byte | |
| 4605 | toggle: 1 = byte 0x30000800 | |
| 4606 | toggle: 0 = byte 0x30000800 | |
| 4607 | ||
| 4608 | p8 proof: | |
| 4609 | toggle: 1 = byte 0x30010800 | |
| 4610 | toggle: 0 = byte 0x30000800 | |
| 4611 | ||
| 4612 | only damaged by player: | |
| 4613 | toggle: 1 = byte 0x30400800 | |
| 4614 | toggle: 0 = byte 0x30000800 | |
| 4615 | ||
| 4616 | can entity be damaged: | |
| 4617 | toggle: 1 = byte 0x30800800 | |
| 4618 | toggle: 0 = byte 0x30000800 | |
| 4619 | ||
| 4620 | apartment | |
| 4621 | toggle: 1 = byte 0x30800800 | |
| 4622 | toggle: 0 = byte 0x30000800 | |
| 4623 | ||
| 4624 | while ringing apartment door | |
| 4625 | toggle: 1 = byte 0x30800800 | |
| 4626 | toggle: 0 = byte 0x30000800 | |
| 4627 | ||
| 4628 | garge | |
| 4629 | toggle: 1 = byte 0x30000800 | |
| 4630 | toggle: 0 = byte 0x30000800 | |
| 4631 | ||
| 4632 | getting out of apartment | |
| 4633 | toggle: 1 = byte 0x30800000 | |
| 4634 | toggle: 0 = byte 0x30000800 | |
| 4635 | ||
| 4636 | console trainer | |
| 4637 | toggle: 1 = byte 0x30800800 | |
| 4638 | toggle: 0 = byte 0x30000800 | |
| 4639 | ||
| 4640 | api intense | |
| 4641 | toggle: 1 = byte 0x30800800 | |
| 4642 | toggle: 0 = byte 0x30000800 | |
| 4643 | ||
| 4644 | dark hores menu | |
| 4645 | toggle: 1 = byte 0x3FA30800 //a lot of god modes enableds like proofs and others | |
| 4646 | toggle: 0 = byte 0x30000800 | |
| 4647 | ||
| 4648 | while driving | |
| 4649 | toggle: 1 = byte 0x30000000 | |
| 4650 | toggle: 0 = byte 0x30000800 | |
| 4651 | ||
| 4652 | swiming in water | |
| 4653 | toggle: 1 = byte 0xF0000800 | |
| 4654 | toggle: 0 = byte 0x30000800 | |
| 4655 | ||
| 4656 | in air | |
| 4657 | toggle: 1 = byte 0x30000000 | |
| 4658 | toggle: 0 = byte 0x30000800 | |
| 4659 | ||
| 4660 | respawning | |
| 4661 | toggle: 1 = byte 0x30800000 | |
| 4662 | toggle: 0 = byte 0x30000800 | |
| 4663 | ||
| 4664 | getting into heli | |
| 4665 | toggle: 1 = byte 0x30000004 //or maybe 0x30000804 | |
| 4666 | toggle: 0 = byte 0x30000800 | |
| 4667 | ||
| 4668 | getting into lazer jet | |
| 4669 | toggle: 1 = byte 0x30000004 | |
| 4670 | toggle: 0 = byte 0x30000800 | |
| 4671 | ||
| 4672 | climbing a latter | |
| 4673 | toggle: 1 = byte 0x30000A04 | |
| 4674 | toggle: 0 = byte 0x30000800 | |
| 4675 | ||
| 4676 | in deathmath | |
| 4677 | toggle: 1 = byte 0x30000100 | |
| 4678 | toggle: 0 = byte 0x30000800 | |
| 4679 | ||
| 4680 | after deathmath | |
| 4681 | toggle: 1 = byte 0x30000900 | |
| 4682 | toggle: 0 = byte 0x30000900 | |
| 4683 | ||
| 4684 | ||
| 4685 | ||
| 4686 | invincible: | |
| 4687 | int32_t v4 = 0x800000; | |
| 4688 | int32_t result2 = byte & -0x800001 | v4; | |
| 4689 | ||
| 4690 | ||
| 4691 | proofs: | |
| 4692 | int v4_2; | |
| 4693 | result = | |
| 4694 | 0x8000000 * a2 & 0x8000000 | //bullet proof | |
| 4695 | byte & -0xf230001 | //god mode??? | |
| 4696 | 0x4000000 * a3 & 0x4000000 | //fire proof | |
| 4697 | 0x200000 * a4 & 0x200000 | //exploion proof | |
| 4698 | 0x2000000 * a5 & 0x2000000 | //collision proof | |
| 4699 | 0x1000000 * a6 & 0x1000000 | //melle proof | |
| 4700 | 0x20000 * a7 & 0x20000 | //unk6 | |
| 4701 | 0x10000 * v4_2 & 0x10000; //unk8 | |
| 4702 | ||
| 4703 | ||
| 4704 | onlyDamageByPlayer: | |
| 4705 | bool a2 = 0; | |
| 4706 | int32_t result = 0x400000 * a2 & 0x400000 | byte & -0x400001; | |
| 4707 | ||
| 4708 | ||
| 4709 | can entity be damaged: | |
| 4710 | *v5 = 0x40000 * v4 & 0x800000 | *v5 & -0x800001; | |
| 4711 | */ | |
| 4712 | } | |
| 4713 | ||
| 4714 | ||
| 4715 | ||
| 4716 | ||
| 4717 | ||
| 4718 | ||
| 4719 | ||
| 4720 | ||
| 4721 | ||
| 4722 | ||
| 4723 | ||
| 4724 | ||
| 4725 | ||
| 4726 | ||
| 4727 | ||
| 4728 | ||
| 4729 | ||
| 4730 | ||
| 4731 | ||
| 4732 | ||
| 4733 | ||
| 4734 | if (NETWORK_IS_HOST()) | |
| 4735 | {
| |
| 4736 | NETWORK_SESSION_KICK_PLAYER(iSelectedPlayer); | |
| 4737 | } | |
| 4738 | ||
| 4739 | ||
| 4740 | //activate admin kick on self | |
| 4741 | GlobalVariable::Write(1315298, 30); | |
| 4742 | GlobalVariable::Write(60515, 0); | |
| 4743 | GlobalVariable::Write(1312335, 1); | |
| 4744 | GlobalVariable::Write(1312455, 6); //admin kick | |
| 4745 | ||
| 4746 | ||
| 4747 | ||
| 4748 | ||
| 4749 | ||
| 4750 | ||
| 4751 | ||
| 4752 | ||
| 4753 | ||
| 4754 | ||
| 4755 | ||
| 4756 | ||
| 4757 | ||
| 4758 | ||
| 4759 | ||
| 4760 | ||
| 4761 | ||
| 4762 | ||
| 4763 | ||
| 4764 | /* | |
| 4765 | //(*(int*)0x1CC4A34) + 0x2A4) cnetplayer from first player probs the host | |
| 4766 | //a1 = 2, 4, 5, 8, | |
| 4767 | GameclockHost(5, (*(int*)0x1CC4A34) + 0x2A4); | |
| 4768 | ||
| 4769 | //NOTICE THEY DONT CHANGE ON YOUR SCREEN | |
| 4770 | int strcut = *(int *)(0x1CC4A54); | |
| 4771 | int net_script = *(int *)(strcut); | |
| 4772 | ||
| 4773 | //non host | |
| 4774 | int prt = *(int *)(0x1CC4A54); | |
| 4775 | unsigned int *a1 = _0xA546A8(prt); | |
| 4776 | GameClockFn(a1, 5, (*(int*)0x1CC4A34) + 0x2A4); | |
| 4777 | *(int *)(a1 + 0x2C) = hour; | |
| 4778 | *(int *)(a1 + 0x20) = weather; //could be wrong | |
| 4779 | ||
| 4780 | //GameClockFn(a1, 5, CNetGamePlayerFn(iSelectedPlayer, 1)); | |
| 4781 | ||
| 4782 | ||
| 4783 | ||
| 4784 | ||
| 4785 | /* | |
| 4786 | r0=00000000012C2A40 r8=0000000000000003 r16=0000000000000000 r24=0000000001C28AA0 | |
| 4787 | r1=00000000D003FEB0 r9=0000000002150000 r17=00000000D0040430 r25=0000000000000001 | |
| 4788 | r2=0000000001C85330 r10=0000000000000000 r18=0000000035F35344 r26=0000000000000000 | |
| 4789 | r3=00000000401DC6E0 r11=000000003279AFF4 r19=0000000001CC2FA8 r27=0000000035F2BFFF | |
| 4790 | r4=0000000000000005 r12=00000000D003FB10 r20=000000003228FAB4 r28=0000000035F35344 | |
| 4791 | r5=000000000222E250 r13=0000000010007060 r21=0000000035F00000 r29=000000000222E250 | |
| 4792 | r6=0000000000000003 r14=0000000000000000 r22=0000000001E70370 r30=0000000000000005 | |
| 4793 | r7=000000001FFFFFFF r15=0000000000000000 r23=00000000321A7080 r31=00000000401DC6E0 | |
| 4794 | ||
| 4795 | xer=0000000020000000 ctr=00000000012C2A00 lr=00000000012C2A50 fpscr=AE302500 | |
| 4796 | ||
| 4797 | cr=44000042 cr0=GT cr1=GT cr2= cr3= cr4= cr5= cr6=GT cr7=EQ | |
| 4798 | ||
| 4799 | pc=00000000012C2898 | |
| 4800 | ||
| 4801 | Executing | |
| 4802 | ||
| 4803 | ||
| 4804 | ||
| 4805 | 401DC6E0 0000005E 00030000 401C2AF4 0222DC80 000D63E8 ...^....@.*.."....c. | |
| 4806 | 401DC6F4 00004000 00000000 00002C38 4375B5EE 0000006D ..@.......,8Cu.....m | |
| 4807 | 401DC708 019262B0 00000000 FFFFFFFF 00740000 00000008 ..b..........t...... | |
| 4808 | 401DC71C 01892C38 C875557D 66726565 6D6F6465 00000005 ..,8.uU}freemode.... | |
| 4809 | 401DC730 95B61B42 00001000 0222DC80 00000000 00010000 ...B.....".......... | |
| 4810 | 401DC744 003D8112 00000000 FFFFFFFF C875557D 00000000 .=...........uU}.... | |
| 4811 | 401DC758 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4812 | 401DC76C 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4813 | 401DC780 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4814 | 401DC794 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4815 | 401DC7A8 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4816 | 401DC7BC 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4817 | 401DC7D0 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4818 | 401DC7E4 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4819 | 401DC7F8 00000000 00000000 0000005F 00030000 401C2B98 ..........._....@.+. | |
| 4820 | 401DC80C 0222DC80 000D63E8 00004000 00000000 00002C38 ."....c...@.......,8 | |
| 4821 | 401DC820 BF397BCC 00000065 019262B0 00000000 FFFFFFFF .9{....e..b.........
| |
| 4822 | 401DC834 00000000 00000009 01892C38 C875557D 66726565 ..........,8.uU}free | |
| 4823 | 401DC848 6D6F6465 00FFFFFF C875557D 00000004 00000000 mode.....uU}........ | |
| 4824 | 401DC85C FFFFFFFF 00000000 003D8112 00000000 FFFFFFFF .........=.......... | |
| 4825 | 401DC870 C875557D 00000000 00000000 00000000 00000000 .uU}................ | |
| 4826 | 401DC884 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4827 | 401DC898 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4828 | 401DC8AC 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4829 | 401DC8C0 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4830 | 401DC8D4 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4831 | 401DC8E8 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4832 | 401DC8FC 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4833 | 401DC910 00000000 00000000 00000000 00000000 00000060 ...................` | |
| 4834 | 401DC924 00030000 401C2C3C 0222DC80 000D63E8 00004000 ....@.,<."....c...@. | |
| 4835 | 401DC938 00000000 0000EC00 376F3515 00000000 019262B0 ........7o5.......b. | |
| 4836 | 401DC94C 00000000 FFFFFFFF 00F10006 0000000A 01892C38 ..................,8 | |
| 4837 | 401DC960 C875557D 66726565 6D6F6465 00000000 00000000 .uU}freemode........ | |
| 4838 | 401DC974 00000000 00000000 00000000 00000000 003D8112 .................=.. | |
| 4839 | 401DC988 00000000 FFFFFFFF C875557D 00000000 00000000 .........uU}........ | |
| 4840 | 401DC99C 00000000 00000000 00000000 00000000 00000000 | |
| 4841 | ||
| 4842 | ||
| 4843 | ||
| 4844 | ||
| 4845 | ||
| 4846 | ||
| 4847 | ||
| 4848 | ||
| 4849 | ||
| 4850 | ||
| 4851 | 0222E250 0192F460 00000000 00000000 00000000 FFFFFFFF ...`................ | |
| 4852 | 0222E264 00000000 00000000 FFFFFFFF 00000000 FFFFFFFF .................... | |
| 4853 | 0222E278 03FF0000 00000000 00000000 000C9F70 FFFFFFFF ...............p.... | |
| 4854 | 0222E28C 00000000 0222EA10 00000000 00000000 00000000 .....".............. | |
| 4855 | 0222E2A0 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4856 | 0222E2B4 FFFFFFFF 00000000 20000000 00000000 00000000 ........ ........... | |
| 4857 | 0222E2C8 00000000 FFFFFFFF 00000000 00000000 00000000 .................... | |
| 4858 | 0222E2DC 00000000 00000000 0000000A 00000012 00000000 .................... | |
| 4859 | 0222E2F0 00000000 00000000 00000000 00000000 00F99D27 ...................' | |
| 4860 | 0222E304 D003E390 00000000 02230000 00000000 00000000 .........#.......... | |
| 4861 | 0222E318 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4862 | 0222E32C 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4863 | 0222E340 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4864 | 0222E354 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4865 | 0222E368 00000000 0022E250 00000000 00000000 0222DA1C .....".P.........".. | |
| 4866 | 0222E37C 0222E250 0222DA28 0222E250 0222DA34 00000000 .".P.".(.".P.".4.... | |
| 4867 | 0222E390 0222DA40 00000000 00000000 400222D0 00000000 .".@........@."..... | |
| 4868 | 0222E3A4 00000000 00000000 00000000 00000000 00000000 .................... | |
| 4869 | 0222E3B8 00000000 00000000 00000000 000000FF 00000000 | |
| 4870 | * | |
| 4871 | ||
| 4872 | ||
| 4873 | ||
| 4874 | int s = 0x0000000 | |
| 4875 | int p2 = (int )(s + 0xD04); | |
| 4876 | GameWeatherFn(int unk, int strut, 0); | |
| 4877 | //1, 0, 4E = extrasunny | |
| 4878 | //1, 1, 4E clear | |
| 4879 | //1, 2, 4E clouds | |
| 4880 | //1, 3, 4E = smog | |
| 4881 | //1, 4, 4E = foggy | |
| 4882 | //1, 5, 4E = overcast | |
| 4883 | //1, 6, 4E = rain | |
| 4884 | //1, 7, 4E = thunder | |
| 4885 | //1, 8, 4E clearing | |
| 4886 | //1, 9, 4E = netutral | |
| 4887 | //1, A, 4E snow | |
| 4888 | //1, B, 4E blizzard | |
| 4889 | //1, C, 4E snowlight | |
| 4890 | //1, D, 4E xmas | |
| 4891 | //0, 0, 4E reset | |
| 4892 | ||
| 4893 | ||
| 4894 | ||
| 4895 | //sub_0x003D402C(); | |
| 4896 | //sub_0x0046EE68(value_0x040D130D0, value_0x046EE68, value_0x0470810); | |
| 4897 | //sub_0x0109592C(); | |
| 4898 | //sub_0x010959D0(); | |
| 4899 | ||
| 4900 | ||
| 4901 | ||
| 4902 | //these args could be found in the data to hook to find the weather they changed it to | |
| 4903 | //sub_1095B24(time_cycle_struct/*0x2148E84*, value_0x97, value_0x4A38); | |
| 4904 | ||
| 4905 | //sub_12F3C00(cNetPlayer, cNetPlayer, value_0x1340940); | |
| 4906 | ||
| 4907 | //weahther event caller | |
| 4908 | //sub_12C2ECC(0x1, 0xD, 0x4E); | |
| 4909 | ||
| 4910 | //joining a new session | |
| 4911 | //sub_109570C(time_cycle_struct/*0x2148E84*, value_1, value_0x497C8, value_0x1388, "ECYCLE/W_EXTRASUNNY.XML."); | |
| 4912 | ||
| 4913 | //for all session. | |
| 4914 | //sub_109536C(dword_2148E84_not_prt, weather_value, value_1_or_0); | |
| 4915 | ||
| 4916 | ||
| 4917 | ||
| 4918 | ||
| 4919 | /* | |
| 4920 | r0=00000000010953E0 r8=0000000002240000 r16=0000000000000000 r24=0000000001C28AA0 | |
| 4921 | r1=00000000D003FC60 r9=0000000002C91001 r17=00000000D0040430 r25=0000000000000001 | |
| 4922 | r2=0000000001C85330 r10=0000000000000000 r18=0000000035F35344 r26=0000000000000000 | |
| 4923 | r3=0000000000000001 r11=000000003225B1F4 r19=0000000001CC2FA8 r27=0000000035F2BFFF | |
| 4924 | r4=0000000000000005 r12=00000000D003FB10 r20=000000003228FAB4 r28=0000000035F35344 | |
| 4925 | r5=00000000000000AC r13=0000000010007060 r21=0000000035F00000 r29=0000000000000005 | |
| 4926 | r6=0000000000000000 r14=0000000000000000 r22=0000000001E70370 r30=0000000000000001 | |
| 4927 | r7=0000000000000000 r15=0000000000000000 r23=00000000321A7080 r31=0000000002148E84 | |
| 4928 | ||
| 4929 | xer=0000000020000000 ctr=00000000008FD3B0 lr=0000000001095434 fpscr=BE302500 | |
| 4930 | ||
| 4931 | cr=24000022 cr0=EQ cr1=GT cr2= cr3= cr4= cr5= cr6=EQ cr7=EQ | |
| 4932 | ||
| 4933 | pc=00000000012C2ECC | |
| 4934 | ||
| 4935 | Executing | |
| 4936 | ||
| 4937 | */ | |
| 4938 | ||
| 4939 | ||
| 4940 | ||
| 4941 | GAME_EXPORT bool networkIsHost(); | |
| 4942 | GAME_EXPORT void networkKickPlayer_host(int32_t host_prt, int32_t value); | |
| 4943 | GAME_EXPORT void request_something_from_host(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5); | |
| 4944 | GAME_EXPORT int32_t sub_12F6D7C() | |
| 4945 | GAME_EXPORT int 32_t sub_176404C(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) | |
| 4946 | ||
| 4947 | int32_t sub_13E0C38(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10) | |
| 4948 | {
| |
| 4949 | int32_t result = sub_150AA80(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); | |
| 4950 | if (*(int32_t *)result == 0) | |
| 4951 | {
| |
| 4952 | return result; | |
| 4953 | } | |
| 4954 | if (*(int32_t *)(result + 8) == 0 || *(int32_t *)(result + 12) == 0) | |
| 4955 | {
| |
| 4956 | return 0; | |
| 4957 | } | |
| 4958 | int32_t result2 = 0; | |
| 4959 | if (sub_16276C4((int32_t)&result2, *(int32_t *)(result + 4)) == 0) | |
| 4960 | {
| |
| 4961 | return 0; | |
| 4962 | } | |
| 4963 | if (result2 != *(int32_t *)0x2258B90) | |
| 4964 | {
| |
| 4965 | return result2; | |
| 4966 | } | |
| 4967 | if (networkIsHost() == 0 || *(int32_t *)(result + 8) == 0) | |
| 4968 | {
| |
| 4969 | return 0; | |
| 4970 | } | |
| 4971 | int32_t result4; | |
| 4972 | int32_t v1 = &result4; | |
| 4973 | sub_A8B814(v1); | |
| 4974 | sub_A8B8DC(v1, *(int32_t *)result); | |
| 4975 | int32_t v2 = 0; | |
| 4976 | if (sub_16271AC((int32_t)&v2, v1) != 0) | |
| 4977 | {
| |
| 4978 | int32_t v3; | |
| 4979 | if ((v3 & 64) == 0 & *(int32_t *)0x2258B90 == v2) | |
| 4980 | {
| |
| 4981 | int32_t result3; | |
| 4982 | int32_t v4; | |
| 4983 | int32_t v5; | |
| 4984 | int32_t v6; | |
| 4985 | if (v5 + 8 <= ((v3 & 128) == 0 ? v6 : v4)) | |
| 4986 | {
| |
| 4987 | int32_t v7; | |
| 4988 | int32_t v8; | |
| 4989 | sub_A8B588((int32_t)&v7, 8, v5 + v8); | |
| 4990 | sub_A8BAD8(v1, 8); | |
| 4991 | int32_t v9 = sub_A8BA28(v1); | |
| 4992 | if (v9 == *(int32_t *)(result + 4)) | |
| 4993 | {
| |
| 4994 | int32_t v10 = *(int32_t *)(result + 8); | |
| 4995 | result3 = networkKickPlayer_host(*(int32_t *)0x1CF72C4, v10, v7 % 256); | |
| 4996 | } | |
| 4997 | else | |
| 4998 | {
| |
| 4999 | result3 = v9; | |
| 5000 | } | |
| 5001 | } | |
| 5002 | else | |
| 5003 | {
| |
| 5004 | result3 = result4; | |
| 5005 | } | |
| 5006 | return result3; | |
| 5007 | } | |
| 5008 | } | |
| 5009 | return result4; | |
| 5010 | } | |
| 5011 | //mgrKickPlayer class | |
| 5012 | //MsgBlacklist class | |
| 5013 | //MsgBlacklist12AutoIdDesc__E | |
| 5014 | int32_t sub_176404C(int32_t a1) //request kick | |
| 5015 | {
| |
| 5016 | //0x1888B90 rage::AutoIdDescriptorE | |
| 5017 | //0x22693F8 rage::msgPartyLeaveGame::AutoIdDesc__ | |
| 5018 | //0x1FFE474 rage::netMessage::AutoIdDesc__ | |
| 5019 | //0x18F25D0 class rage::AutoIdDescriptor<netMessage> | |
| 5020 | //0x19318C0 msgRequestKickFromHost::AutoIdDesc__ | |
| 5021 | //TEXT 0x19318C8 = msgRequestKickFromHost | |
| 5022 | ||
| 5023 | int32_t v1 = sub_1803770(a1); | |
| 5024 | sub_D04088(v1, 1, 0x19318C8, 0x1FFE474, 1); | |
| 5025 | *(int32_t *)v1 = 0x18F25D0; | |
| 5026 | if (*(char *)0x2269418 == 0) | |
| 5027 | {
| |
| 5028 | sub_D03258(0x22693F8); | |
| 5029 | *(char *)0x2269418 = 1; | |
| 5030 | } | |
| 5031 | sub_D04260(0x22693F8, v1); | |
| 5032 | *(int32_t *)v1 = 0x19318C0; | |
| 5033 | return 0x19318C0; | |
| 5034 | } | |
| 5035 | int32_t sub_1624C94(int32_t a1) //black list | |
| 5036 | {
| |
| 5037 | int32_t v1 = sub_1803770(a1); | |
| 5038 | *(int32_t *)v1 = 0x18F25D0; | |
| 5039 | if (*(char *)0x2269418 == 0) | |
| 5040 | {
| |
| 5041 | sub_D03258(0x22693F8); | |
| 5042 | *(char *)0x2269418 = 1; | |
| 5043 | } | |
| 5044 | sub_D03298(0x22693F8, v1); | |
| 5045 | *(int32_t *)v1 = 0x1888B90; | |
| 5046 | return 0x1888B90; | |
| 5047 | } | |
| 5048 | int32_t sub_162A01C(int32_t a1) //kick msg | |
| 5049 | {
| |
| 5050 | int32_t v1 = sub_1803770(a1); | |
| 5051 | int32_t v2 = v1; | |
| 5052 | if (v1 == 0) | |
| 5053 | {
| |
| 5054 | return 0; | |
| 5055 | } | |
| 5056 | *(int32_t *)v1 = 0x18F25D0; | |
| 5057 | if (*(char *)0x2269418 == 0) | |
| 5058 | {
| |
| 5059 | sub_D03258(0x22693F8); | |
| 5060 | *(char *)0x2269418 = 1; | |
| 5061 | } | |
| 5062 | sub_D03298(0x22693F8, v2); | |
| 5063 | *(int32_t *)v2 = 0x1888B90; | |
| 5064 | return sub_10230(v2, 0x1888B90); | |
| 5065 | } | |
| 5066 | int32_t sub_1357CA0(int32_t a1, int32_t a2, int32_t a3) | |
| 5067 | {
| |
| 5068 | int32_t v1 = loc_150AA84(a1, a2, a3); | |
| 5069 | int32_t v2; | |
| 5070 | int32_t v3 = &v2; | |
| 5071 | v2 = 0; | |
| 5072 | int32_t result; | |
| 5073 | if (sub_A91D04(a2, 0x1850D34, v3, 32) == 0) | |
| 5074 | {
| |
| 5075 | result = false; | |
| 5076 | } | |
| 5077 | else | |
| 5078 | {
| |
| 5079 | int32_t v4 = sub_AE580C(v3, 0); | |
| 5080 | *(int32_t *)(v1 + 4) = v4; | |
| 5081 | if (v4 == 0xDD245B9C) //hash of "vehicle" | |
| 5082 | {
| |
| 5083 | sub_A91D04(a2, 0x1851F70, v1 + 12, 64); | |
| 5084 | } | |
| 5085 | result = 1; | |
| 5086 | } | |
| 5087 | return result; | |
| 5088 | } | |
| 5089 | int32_t sub_1358EB8(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) | |
| 5090 | {
| |
| 5091 | int32_t v1 = sub_150AA84(a1, a2, a3, a4, a5, a6, a7); | |
| 5092 | switch (*(int32_t *)(v1 + 4)) | |
| 5093 | {
| |
| 5094 | case 0xDD245B9C: //hash of "vehicle" | |
| 5095 | {
| |
| 5096 | int32_t v2 = *(int32_t *)(*(int32_t *)0x1CEFCF8 + 4); | |
| 5097 | if (v2 != 0) | |
| 5098 | {
| |
| 5099 | if ((*(int32_t *)(v2 + 3556) & 0x40000000) != 0) | |
| 5100 | {
| |
| 5101 | if (*(int32_t *)(v2 + 3740) != 0) | |
| 5102 | {
| |
| 5103 | return 0; | |
| 5104 | } | |
| 5105 | } | |
| 5106 | sub_103FCA4(v1 + 12); | |
| 5107 | } | |
| 5108 | return 0; | |
| 5109 | } | |
| 5110 | case 0xC2F12A5B: // hash collosion but works "cxazuog" //hash of "" // related to EXPLOSION_EVENT | |
| 5111 | {
| |
| 5112 | int32_t v3 = sub_1117978(); | |
| 5113 | if (v3 == 0) | |
| 5114 | {
| |
| 5115 | return 0; | |
| 5116 | } | |
| 5117 | int32_t v4; | |
| 5118 | int32_t v5 = &v4; | |
| 5119 | sub_5704A8(v5, v3, 0); | |
| 5120 | int32_t v6 = sub_AEBB54(*(int32_t *)0x1CBAEAC, 276, 16); | |
| 5121 | sub_570AC4(v6, v5, 16, 0); | |
| 5122 | int32_t v7; | |
| 5123 | int32_t v8 = &v7; | |
| 5124 | sub_622E4(v8, 3, v6, 0, 79, 0, 0); | |
| 5125 | int32_t v9 = sub_585C8(*(int32_t *)(v3 + 3020) + 788, v8); | |
| 5126 | if (v9 != 0) | |
| 5127 | {
| |
| 5128 | char * v10 = (char *)(v9 + 12); | |
| 5129 | *v10 = *v10 % 128; | |
| 5130 | } | |
| 5131 | sub_62368(v8); | |
| 5132 | int32_t v11; | |
| 5133 | if (v11 != 0) | |
| 5134 | {
| |
| 5135 | sub_150AD08((int32_t)&v11); | |
| 5136 | } | |
| 5137 | return 0; | |
| 5138 | } | |
| 5139 | case 0x84643284: //hash of "kick" | |
| 5140 | {
| |
| 5141 | if (networkIsHost() == 0) | |
| 5142 | {
| |
| 5143 | int32_t v12 = sub_12F6D7C(); | |
| 5144 | if (v12 != 0) | |
| 5145 | {
| |
| 5146 | int32_t v13; | |
| 5147 | int32_t v14 = &v13; | |
| 5148 | sub_A8B814(v14); | |
| 5149 | int32_t v15; | |
| 5150 | int32_t v16 = &v15; | |
| 5151 | sub_A8B908(v14, v16, 982); | |
| 5152 | bool v17 = false; | |
| 5153 | if (sub_1626844(*(int32_t *)0x2258B90, v14) != 0) | |
| 5154 | {
| |
| 5155 | bool v18 = false; | |
| 5156 | int32_t v19; | |
| 5157 | int32_t v20; | |
| 5158 | int32_t v21; | |
| 5159 | if (v20 + 8 <= v19 && (v21 & 128) == 0) | |
| 5160 | {
| |
| 5161 | if ((v21 & 64) == 0) | |
| 5162 | {
| |
| 5163 | int32_t v22; | |
| 5164 | sub_A8B5FC(v13, 4, 8, v20 + v22, v22); | |
| 5165 | } | |
| 5166 | sub_A8BBBC(v14, 8); | |
| 5167 | v18 = true; | |
| 5168 | } | |
| 5169 | v17 = v18; | |
| 5170 | } | |
| 5171 | sub_A8B978(v14); | |
| 5172 | if (v17) | |
| 5173 | {
| |
| 5174 | request_something_from_host(v12, v16, 0, 0, 0); | |
| 5175 | } | |
| 5176 | } | |
| 5177 | } | |
| 5178 | else | |
| 5179 | {
| |
| 5180 | if (*(int32_t *)(*(int32_t *)0x1CF72BC + 140) != 0) | |
| 5181 | {
| |
| 5182 | //value = 0 you been kicked from this GTA Online sesison by other players | |
| 5183 | //value = 1 connection was lost due to an unknown network error | |
| 5184 | //value = 2 says player left. (cool kinda kick, player can join back) | |
| 5185 | //value = 3 connection was lost due to an unknown network error | |
| 5186 | //value = 4 You Have been removed from this session by a Rockstar Games administrator. | |
| 5187 | //value = 5 connection was lost due to an unknown network error | |
| 5188 | //value = 6 connection was lost due to an unknown network error | |
| 5189 | //value = 7 connection was lost due to an unknown network error | |
| 5190 | //vlaue = 8 You were kicked from this GTA Online sesison by other players | |
| 5191 | networkKickPlayer_host(*(int32_t *)0x1CF72C4, 4); | |
| 5192 | } | |
| 5193 | } | |
| 5194 | return 0; | |
| 5195 | } | |
| 5196 | case 0x4349E22B: //hash of "relax" // related to RAGDOLL_REQUEST_EVENT | |
| 5197 | {
| |
| 5198 | int32_t v23 = sub_1117978(); | |
| 5199 | if (v23 != 0) | |
| 5200 | {
| |
| 5201 | int32_t v24 = sub_AEBB54(*(int32_t *)0x1CBAEAC, 196, 16); | |
| 5202 | sub_7075A0(v24, 1000, 0x2710, 0x149f0, 0); // v24 = CTaskMoveStandStill | |
| 5203 | int32_t v25; | |
| 5204 | int32_t v26 = &v25; | |
| 5205 | sub_67924(v26, 0x2710, v24, 0, 1000); | |
| 5206 | sub_10194B0(v23, v26); // v23 = CPed, v26 = 37 | |
| 5207 | sub_67990(v26); | |
| 5208 | } | |
| 5209 | return 0; | |
| 5210 | } | |
| 5211 | } | |
| 5212 | return 0; | |
| 5213 | } | |
| 5214 | ||
| 5215 | ||
| 5216 | ||
| 5217 | ||
| 5218 | ||
| 5219 | int32_t sub_A17A58(int32_t a1, int32_t a2, int32_t a3, uint32_t a4, int32_t a5, int32_t a6) | |
| 5220 | {
| |
| 5221 | int32_t v1 = 0; | |
| 5222 | uint32_t v2 = 32 - a3; | |
| 5223 | uint32_t v3 = v2 % 32; | |
| 5224 | uint32_t v4 = (v2 & 32) != 0 ? 0 : -1 << v3; | |
| 5225 | uint32_t v5 = a4 % 8; | |
| 5226 | uint32_t v6 = (v2 & 32) != 0 ? 0 : a2 << v3; | |
| 5227 | char * v7 = (char *)v1; | |
| 5228 | unsigned char v8 = *v7; | |
| 5229 | uint32_t v9 = 8 - v5; | |
| 5230 | uint32_t v10 = v6 << v9; | |
| 5231 | int32_t v11 = v1 + 1; | |
| 5232 | char * v12 = (char *)v11; | |
| 5233 | uint32_t v13 = v4 << v9; | |
| 5234 | *v7 = (char)((int32_t)v8 & (v4 / 0x1000000 >> v5 ^ 255) | v6 / 0x1000000 >> v5); | |
| 5235 | int32_t v14 = sub_A8B68C(v9, v13, a3, v10, v11, v4); | |
| 5236 | unsigned char v15 = *v12; // 0xa8b65c | |
| 5237 | *v12 = (char)((int32_t)v15 & (v13 / 0x1000000 ^ 255) | v10 / 0x1000000); | |
| 5238 | return v14 + 8; | |
| 5239 | } | |
| 5240 | int32_t networkKickPlayer_host(int32_t a1, int32_t * a2, int32_t a3, int32_t a4) | |
| 5241 | {
| |
| 5242 | int32_t v1 = (int32_t)a2; | |
| 5243 | int32_t v2 = loc_150AA6C(a1, v1, a3, a4); | |
| 5244 | if (a2 == NULL | sub_96D614(*(int32_t *)(v2 + 64)) == 0) | |
| 5245 | {
| |
| 5246 | return 0; | |
| 5247 | } | |
| 5248 | int32_t v3 = a3 < 3; | |
| 5249 | int32_t v4; | |
| 5250 | int32_t v5; | |
| 5251 | int32_t v6; | |
| 5252 | int32_t result; | |
| 5253 | if (sub_9F8FD8(v1) != 0) | |
| 5254 | {
| |
| 5255 | sub_1358AAC(v2, a3); | |
| 5256 | v4 = 0; | |
| 5257 | switch (a3) | |
| 5258 | {
| |
| 5259 | case 0: | |
| 5260 | {
| |
| 5261 | v4 = 1; | |
| 5262 | break; | |
| 5263 | } | |
| 5264 | case 4: | |
| 5265 | {
| |
| 5266 | v4 = 1; | |
| 5267 | break; | |
| 5268 | } | |
| 5269 | } | |
| 5270 | if (v3 == 0) | |
| 5271 | {
| |
| 5272 | v5 = sub_6BBC08(v1); | |
| 5273 | sub_135282C(v3, v5, v4); | |
| 5274 | } | |
| 5275 | v6 = sub_6BBC08(v1); | |
| 5276 | result = sub_970F28(*(int32_t *)(v2 + 64), v6, 1, 0, 0); | |
| 5277 | return result; | |
| 5278 | } | |
| 5279 | if (a3 == 2) | |
| 5280 | {
| |
| 5281 | if (v3 == 0) | |
| 5282 | {
| |
| 5283 | v5 = sub_6BBC08(v1); | |
| 5284 | sub_135282C(v3, v5, 0); | |
| 5285 | } | |
| 5286 | v6 = sub_6BBC08(v1); | |
| 5287 | result = sub_970F28(*(int32_t *)(v2 + 64), v6, 1, 0, 0); | |
| 5288 | return result; | |
| 5289 | } | |
| 5290 | int32_t v7; | |
| 5291 | sub_D26100((int32_t)&v7); | |
| 5292 | sub_9716D8(*(int32_t *)(v2 + 64)); | |
| 5293 | sub_9F8688(v1); | |
| 5294 | int32_t v8 = sub_96EF94(*(int32_t *)(v2 + 64), sub_9f87BC(v1)); | |
| 5295 | if (v8 != 0) | |
| 5296 | {
| |
| 5297 | sub_1358D14(sub_96D0D0(v8)); | |
| 5298 | } | |
| 5299 | v4 = 0; | |
| 5300 | switch (a3) | |
| 5301 | {
| |
| 5302 | case 0: | |
| 5303 | {
| |
| 5304 | v4 = 1; | |
| 5305 | break; | |
| 5306 | } | |
| 5307 | case 4: | |
| 5308 | {
| |
| 5309 | v4 = 1; | |
| 5310 | break; | |
| 5311 | } | |
| 5312 | } | |
| 5313 | if (v3 == 0) | |
| 5314 | {
| |
| 5315 | v5 = sub_6BBC08(v1); | |
| 5316 | sub_135282C(v3, v5, v4); | |
| 5317 | } | |
| 5318 | v6 = sub_6BBC08(v1); | |
| 5319 | result = sub_970F28(*(int32_t *)(v2 + 64), v6, 1, 0, 0); | |
| 5320 | return result; | |
| 5321 | } | |
| 5322 | int32_t sub_1356F48(int32_t a1, int32_t a2, int32_t a3, int32_t a4) | |
| 5323 | {
| |
| 5324 | int32_t v1 = loc_150AA80(a1, a2, a3, a4); | |
| 5325 | if (sub_12D804C(1) == 0) | |
| 5326 | {
| |
| 5327 | return 0; | |
| 5328 | } | |
| 5329 | int32_t v2 = sub_D3D6EC(a3); | |
| 5330 | if (v2 == 0) | |
| 5331 | {
| |
| 5332 | return v2 != 0; | |
| 5333 | } | |
| 5334 | int32_t v3 = sub_12EF35C(); | |
| 5335 | int32_t v4; | |
| 5336 | int32_t v5 = &v4; | |
| 5337 | int32_t v6 = 0x1931800; | |
| 5338 | sub_D21058(v5); | |
| 5339 | int32_t v7; | |
| 5340 | int32_t v8 = &v7; | |
| 5341 | sub_D247A8(v8); | |
| 5342 | sub_14F6178(v5, a3, 9); | |
| 5343 | int32_t v9 = 18; | |
| 5344 | int32_t v10 = 0; | |
| 5345 | while (true) | |
| 5346 | {
| |
| 5347 | int32_t v11 = v10; | |
| 5348 | *(char *)(v11 + 136) = *(char *)(a3 + 16 + v10); | |
| 5349 | *(char *)(v11 + 137) = *(char *)(17 + a3 + v10); | |
| 5350 | int32_t v12 = v9 - 1; | |
| 5351 | v9 = v12; | |
| 5352 | if (v12 == 0) | |
| 5353 | {
| |
| 5354 | int32_t v13; | |
| 5355 | sub_D04070((int32_t)&v13, a3 + 52); | |
| 5356 | sub_14F6178(v8, v3, 46); | |
| 5357 | int32_t v14; | |
| 5358 | sub_D3D738(v5, (int32_t)&v14, 768, 0); | |
| 5359 | int32_t result = sub_13518A4((int32_t)&v6, v1, a2); | |
| 5360 | return result; | |
| 5361 | } | |
| 5362 | v10 += 2; | |
| 5363 | } | |
| 5364 | } | |
| 5365 | int32_t sub_13519D0(int32_t a1, int32_t a2) | |
| 5366 | {
| |
| 5367 | int32_t v1 = loc_150AA80(a1, a2); | |
| 5368 | int32_t result = sub_12E4FAC(v1); | |
| 5369 | if (result != 0) | |
| 5370 | {
| |
| 5371 | return result; | |
| 5372 | } | |
| 5373 | if (sub_D2D690(0) == 0) | |
| 5374 | {
| |
| 5375 | return 0; | |
| 5376 | } | |
| 5377 | int32_t v2 = sub_D2EA08(result); | |
| 5378 | if (sub_D2D338(v2) == 0) | |
| 5379 | {
| |
| 5380 | return 0; | |
| 5381 | } | |
| 5382 | int32_t v3; | |
| 5383 | int32_t v4 = &v3; | |
| 5384 | int32_t v5; | |
| 5385 | int32_t v6 = &v5; | |
| 5386 | sub_A8F724(v4, v6, 1024, 1); | |
| 5387 | if (sub_A8F950(v4, 0, 0) == 0 || sub_13300F0(v1, v4) == 0 || sub_A8FBDC(v4) == 0) | |
| 5388 | {
| |
| 5389 | return 0; | |
| 5390 | } | |
| 5391 | if ((a2 & 8) != 0) | |
| 5392 | {
| |
| 5393 | sub_D44010(result, v6); | |
| 5394 | } | |
| 5395 | if ((a2 & 16) != 0) | |
| 5396 | {
| |
| 5397 | if (sub_D3A440(result) != 0) | |
| 5398 | {
| |
| 5399 | sub_D44230(result, v6); | |
| 5400 | } | |
| 5401 | } | |
| 5402 | if ((a2 & 4) == 0) | |
| 5403 | {
| |
| 5404 | return 0; | |
| 5405 | } | |
| 5406 | int32_t v7; | |
| 5407 | int32_t v8 = &v7; | |
| 5408 | sub_D247A8(v8); | |
| 5409 | if (sub_D2D610(result, v8) == 0) | |
| 5410 | {
| |
| 5411 | return 0; | |
| 5412 | } | |
| 5413 | int32_t v9; | |
| 5414 | int32_t v10 = &v9; | |
| 5415 | sub_D40558(v10, 0x1878AA4, v6); | |
| 5416 | int32_t v11; | |
| 5417 | int32_t v12 = &v11; | |
| 5418 | int32_t v13; | |
| 5419 | int32_t v14 = &v13; | |
| 5420 | sub_A8F788(v12, v14, 1024, 1); | |
| 5421 | int32_t result2; | |
| 5422 | if (sub_D405A0(v10, v12) != 0) | |
| 5423 | {
| |
| 5424 | result2 = sub_D43FF0(result, v8, 1, v14, 0); | |
| 5425 | } | |
| 5426 | else | |
| 5427 | {
| |
| 5428 | result2 = 0; | |
| 5429 | } | |
| 5430 | return result2; | |
| 5431 | } | |
| 5432 | int32_t sub_13518A4(int32_t a1, int32_t a2, int32_t a3) | |
| 5433 | {
| |
| 5434 | int32_t v1 = loc_150AA7C(a1, a2, a3); | |
| 5435 | int32_t result = sub_12E4fAC(v1); | |
| 5436 | if (result != 0) | |
| 5437 | {
| |
| 5438 | return result; | |
| 5439 | } | |
| 5440 | if (sub_D2D690(0) == 0) | |
| 5441 | {
| |
| 5442 | return 0; | |
| 5443 | } | |
| 5444 | int32_t v2 = sub_D2EA08(result); | |
| 5445 | if (sub_D2D338(v2) == 0) | |
| 5446 | {
| |
| 5447 | return 0; | |
| 5448 | } | |
| 5449 | int32_t v3; | |
| 5450 | int32_t v4 = &v3; | |
| 5451 | int32_t v5; | |
| 5452 | int32_t v6 = &v5; | |
| 5453 | sub_A8F724(v4, v6, 1024, 1); | |
| 5454 | if (sub_A8F950(v4, 0, 0) == 0) | |
| 5455 | {
| |
| 5456 | return 0; | |
| 5457 | } | |
| 5458 | int32_t result2; | |
| 5459 | if (sub_13300F0(v1, v4) != 0) | |
| 5460 | {
| |
| 5461 | int32_t v7 = sub_A8FBDC(v4); | |
| 5462 | if (v7 != 0 && a2 != 0 && a3 > 0) | |
| 5463 | {
| |
| 5464 | int32_t v8; | |
| 5465 | int32_t v9 = &v8; | |
| 5466 | sub_D40558(v9, 0x1878AA4, v6); | |
| 5467 | int32_t v10; | |
| 5468 | int32_t v11 = &v10; | |
| 5469 | int32_t v12; | |
| 5470 | int32_t v13 = &v12; | |
| 5471 | sub_A8F788(v11, v13, 1024, 1); | |
| 5472 | if (sub_D405A0(v9, v11) != 0) | |
| 5473 | {
| |
| 5474 | result2 = sub_D43FD0(result, a2, a3, v13, 0); | |
| 5475 | } | |
| 5476 | else | |
| 5477 | {
| |
| 5478 | result2 = 0; | |
| 5479 | } | |
| 5480 | return result2; | |
| 5481 | } | |
| 5482 | result2 = v7; | |
| 5483 | } | |
| 5484 | else | |
| 5485 | {
| |
| 5486 | result2 = 0; | |
| 5487 | } | |
| 5488 | return result2; | |
| 5489 | } | |
| 5490 | int32_t sub_D44010(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) | |
| 5491 | {
| |
| 5492 | int32_t v1 = loc_150AA70(a1, a2, a3, a4, a5, a6); | |
| 5493 | int32_t v2 = 0; | |
| 5494 | int32_t v3; | |
| 5495 | int32_t v4 = &v3; | |
| 5496 | bool result2 = false; | |
| 5497 | int32_t v5 = v4; | |
| 5498 | sub_AE8C70(v4, 0, 48); | |
| 5499 | int32_t v6 = -1; | |
| 5500 | *(char *)(v5 + 44) = (char)result2; | |
| 5501 | int32_t v7 = v5; | |
| 5502 | *(char *)(v7 + 45) = (char)result2; | |
| 5503 | *(int32_t *)v5 = v6; | |
| 5504 | sub_AE8C70(v7, 0, 48); | |
| 5505 | *(int32_t *)v5 = v6; | |
| 5506 | *(char *)(v5 + 44) = (char)result2; | |
| 5507 | v2++; | |
| 5508 | *(char *)(v5 + 45) = (char)result2; | |
| 5509 | *(int32_t *)(v5 + 48) = (int32_t)result2; | |
| 5510 | int32_t v8 = v5 + 52; | |
| 5511 | v5 = v8; | |
| 5512 | while (v2 < 100) | |
| 5513 | {
| |
| 5514 | sub_AE8C70(v8, 0, 48); | |
| 5515 | v6 = -1; | |
| 5516 | *(char *)(v5 + 44) = (char)result2; | |
| 5517 | v7 = v5; | |
| 5518 | *(char *)(v7 + 45) = (char)result2; | |
| 5519 | *(int32_t *)v5 = v6; | |
| 5520 | sub_AE8C70(v7, 0, 48); | |
| 5521 | *(int32_t *)v5 = v6; | |
| 5522 | *(char *)(v5 + 44) = (char)result2; | |
| 5523 | v2++; | |
| 5524 | *(char *)(v5 + 45) = (char)result2; | |
| 5525 | *(int32_t *)(v5 + 48) = (int32_t)result2; | |
| 5526 | v8 = v5 + 52; | |
| 5527 | v5 = v8; | |
| 5528 | } | |
| 5529 | int32_t v9 = 100; | |
| 5530 | int32_t v10 = sub_D43B5C(v1, v4, (int32_t)&v9); | |
| 5531 | int32_t result = result2; | |
| 5532 | if (v10 == 0) | |
| 5533 | {
| |
| 5534 | return result; | |
| 5535 | } | |
| 5536 | int32_t v11; | |
| 5537 | int32_t v12 = &v11; | |
| 5538 | v5 = v12; | |
| 5539 | sub_AE8C70(v12, 0, 48); | |
| 5540 | *(char *)(v5 + 44) = (char)result2; | |
| 5541 | result++; | |
| 5542 | *(char *)(v5 + 45) = (char)result2; | |
| 5543 | *(int32_t *)v5 = -1; | |
| 5544 | int32_t v13 = v5 + 48; | |
| 5545 | v5 = v13; | |
| 5546 | while (result < 100) | |
| 5547 | {
| |
| 5548 | sub_AE8C70(v13, 0, 48); | |
| 5549 | *(char *)(v5 + 44) = (char)result2; | |
| 5550 | result++; | |
| 5551 | *(char *)(v5 + 45) = (char)result2; | |
| 5552 | *(int32_t *)v5 = -1; | |
| 5553 | v13 = v5 + 48; | |
| 5554 | v5 = v13; | |
| 5555 | } | |
| 5556 | int32_t v14 = result2; | |
| 5557 | v6 = v14; | |
| 5558 | int32_t v15 = v9; | |
| 5559 | v5 = v14; | |
| 5560 | int32_t v16; | |
| 5561 | int32_t v17; | |
| 5562 | int32_t v18; | |
| 5563 | int32_t v19; | |
| 5564 | int32_t v20; | |
| 5565 | int32_t v21; | |
| 5566 | int32_t v22; | |
| 5567 | int32_t v23; | |
| 5568 | int32_t v24; | |
| 5569 | if (v15 <= 0) | |
| 5570 | {
| |
| 5571 | if (v14 == 0) | |
| 5572 | {
| |
| 5573 | return 1; | |
| 5574 | } | |
| 5575 | v22 = a2; | |
| 5576 | v21 = 0x1851618; | |
| 5577 | sub_150BB04((int32_t)&v24, (int32_t)&v21, 64); | |
| 5578 | v16 = &v19; | |
| 5579 | sub_150BB04(v16, (int32_t)&v22, 1024); | |
| 5580 | v17 = &v23; | |
| 5581 | v18 = &v20; | |
| 5582 | sub_A8F788(v17, v18, 1024, 1); | |
| 5583 | if (sub_D405A0(v16, v17) == 0) | |
| 5584 | {
| |
| 5585 | return result2; | |
| 5586 | } | |
| 5587 | if (sub_D3F6AC(v1, v12, v5, v18, 0) != 0) | |
| 5588 | {
| |
| 5589 | result2 = true; | |
| 5590 | } | |
| 5591 | return result2; | |
| 5592 | } | |
| 5593 | result = v4; | |
| 5594 | int32_t v25; | |
| 5595 | int32_t v26 = &v25; | |
| 5596 | v2 = v26; | |
| 5597 | int32_t v27 = v14; | |
| 5598 | int32_t v28 = v14; | |
| 5599 | int32_t v29; | |
| 5600 | while (true) | |
| 5601 | {
| |
| 5602 | v29 = v27; | |
| 5603 | int32_t v30 = v15; | |
| 5604 | int32_t v31 = v4; | |
| 5605 | int32_t v32 = v26; | |
| 5606 | int32_t v33 = v28; | |
| 5607 | if ((*(int32_t *)v26 & 2) != 0) | |
| 5608 | {
| |
| 5609 | sub_AE8C70(1176, 0, 48); | |
| 5610 | *(char *)1220 = (char)result2; | |
| 5611 | *(char *)1221 = (char)result2; | |
| 5612 | *(int32_t *)1176 = -1; | |
| 5613 | sub_14F6178(1176, result, 46); | |
| 5614 | int32_t v34 = v5 + 1; | |
| 5615 | v5 = v34; | |
| 5616 | v29 = v34; | |
| 5617 | v30 = v9; | |
| 5618 | v31 = result; | |
| 5619 | v32 = v2; | |
| 5620 | v33 = v6; | |
| 5621 | } | |
| 5622 | int32_t v35 = v33 + 1; | |
| 5623 | v6 = v35; | |
| 5624 | int32_t v36 = v32 + 52; | |
| 5625 | v2 = v36; | |
| 5626 | int32_t v37 = v31 + 52; | |
| 5627 | result = v37; | |
| 5628 | if (v35 >= v30) | |
| 5629 | {
| |
| 5630 | break; | |
| 5631 | } | |
| 5632 | v27 = v29; | |
| 5633 | v28 = v35; | |
| 5634 | v15 = v30; | |
| 5635 | v4 = v37; | |
| 5636 | v26 = v36; | |
| 5637 | } | |
| 5638 | if (v29 == 0) | |
| 5639 | {
| |
| 5640 | return 1; | |
| 5641 | } | |
| 5642 | v22 = a2; | |
| 5643 | v21 = 0x1851618; | |
| 5644 | sub_150BB04((int32_t)&v24, (int32_t)&v21, 64); | |
| 5645 | v16 = &v19; | |
| 5646 | sub_150BB04(v16, (int32_t)&v22, 1024); | |
| 5647 | v17 = &v23; | |
| 5648 | v18 = &v20; | |
| 5649 | sub_A8F788(v17, v18, 1024, 1); | |
| 5650 | if (sub_D405A0(v16, v17) != 0) | |
| 5651 | {
| |
| 5652 | if (sub_D3F6AC(v1, v12, v5, v18, 0) != 0) | |
| 5653 | {
| |
| 5654 | result2 = true; | |
| 5655 | } | |
| 5656 | } | |
| 5657 | return result2; | |
| 5658 | } | |
| 5659 | //sub_D3F6AC(0, "NAME_PADDING", 1, json_context, 0); | |
| 5660 | int32_t sub_D3F6AC(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) | |
| 5661 | {
| |
| 5662 | int32_t v1 = loc_150AA70(a1, a2, a3, a4, a5); | |
| 5663 | bool result = false; | |
| 5664 | char v2 = *(char *)0x1CCB210; | |
| 5665 | if (a4 == 0 || v1 > 0 || ((int32_t)(v1 < 0) || (int32_t)(v2 == 0)) != 0 || sub_14F8DD4(a4) <= 0) | |
| 5666 | {
| |
| 5667 | return result; | |
| 5668 | } | |
| 5669 | int32_t v3 = result; | |
| 5670 | bool v4 = true; | |
| 5671 | if (*(char *)0x1CCB134 != 0) | |
| 5672 | {
| |
| 5673 | v3 = 0x2005010; | |
| 5674 | } | |
| 5675 | int32_t v5 = *(int32_t *)v3; | |
| 5676 | int32_t v6 = v5; | |
| 5677 | if (v5 == 0) | |
| 5678 | {
| |
| 5679 | return result; | |
| 5680 | } | |
| 5681 | sub_D320D8(v5, 0, 0); | |
| 5682 | *(int32_t *)(v6 + 1592) = -1; | |
| 5683 | *(int32_t *)v6 = 0x1908950; | |
| 5684 | sub_D32030(v6 + 1600, -1, 0x1908950); | |
| 5685 | int32_t v7 = result; | |
| 5686 | *(int32_t *)(v6 + 3160) = v7; | |
| 5687 | *(int32_t *)(v6 + 3164) = v7; | |
| 5688 | *(int32_t *)(v6 + 3168) = v7; | |
| 5689 | *(int32_t *)(v6 + 28) = v3; | |
| 5690 | *(int32_t *)v6 = 0x190BA90; | |
| 5691 | if (v6 == 0) | |
| 5692 | {
| |
| 5693 | return result; | |
| 5694 | } | |
| 5695 | int32_t v8 = v6 + 3164; | |
| 5696 | v3 = v8; | |
| 5697 | int32_t * v9; | |
| 5698 | int32_t v10; | |
| 5699 | int32_t v11; | |
| 5700 | int32_t v12; | |
| 5701 | if (v8 != 0) | |
| 5702 | {
| |
| 5703 | if (*(int32_t *)v8 == 1) | |
| 5704 | {
| |
| 5705 | v10 = v6; | |
| 5706 | if (v10 == 0) | |
| 5707 | {
| |
| 5708 | return result; | |
| 5709 | } | |
| 5710 | v11 = result; | |
| 5711 | v12 = v11; | |
| 5712 | if (*(char *)0x1CCB134 != 0) | |
| 5713 | {
| |
| 5714 | v12 = v4 ? 0x2005010 : 0; | |
| 5715 | } | |
| 5716 | v9 = (int32_t *)(v10 + 28); | |
| 5717 | if (v12 == *v9) | |
| 5718 | {
| |
| 5719 | *v9 = v11; | |
| 5720 | } | |
| 5721 | return result; | |
| 5722 | } | |
| 5723 | } | |
| 5724 | if (sub_D38374(v6, v1, a2, a3, a4, a5) != 0) | |
| 5725 | {
| |
| 5726 | if (sub_D29A80(v6, v3) != 0) | |
| 5727 | {
| |
| 5728 | if (sub_D29818(0, v6) == 0) | |
| 5729 | {
| |
| 5730 | v10 = v6; | |
| 5731 | if (v10 != 0) | |
| 5732 | {
| |
| 5733 | v11 = result; | |
| 5734 | v12 = v11; | |
| 5735 | if (*(char *)0x1CCB134 != 0) | |
| 5736 | {
| |
| 5737 | v12 = v4 ? 0x2005010 : 0; | |
| 5738 | } | |
| 5739 | v9 = (int32_t *)(v10 + 28); | |
| 5740 | if (v12 == *v9) | |
| 5741 | {
| |
| 5742 | *v9 = v11; | |
| 5743 | } | |
| 5744 | } | |
| 5745 | } | |
| 5746 | else | |
| 5747 | {
| |
| 5748 | result = true; | |
| 5749 | } | |
| 5750 | return result; | |
| 5751 | } | |
| 5752 | } | |
| 5753 | if (v3 == 0) | |
| 5754 | {
| |
| 5755 | v10 = v6; | |
| 5756 | } | |
| 5757 | else | |
| 5758 | {
| |
| 5759 | if (*(int32_t *)(v6 + 3164) != 2) | |
| 5760 | {
| |
| 5761 | sub_1524308(v3, 1, 0); | |
| 5762 | sub_1524308(v3, 2, -1); | |
| 5763 | v10 = v6; | |
| 5764 | } | |
| 5765 | else | |
| 5766 | {
| |
| 5767 | v10 = v6; | |
| 5768 | } | |
| 5769 | } | |
| 5770 | if (v10 != 0) | |
| 5771 | {
| |
| 5772 | v11 = result; | |
| 5773 | v12 = v11; | |
| 5774 | if (*(char *)0x1CCB134 != 0) | |
| 5775 | {
| |
| 5776 | v12 = v4 ? 0x2005010 : 0; | |
| 5777 | } | |
| 5778 | v9 = (int32_t *)(v10 + 28); | |
| 5779 | if (v12 == *v9) | |
| 5780 | {
| |
| 5781 | *v9 = v11; | |
| 5782 | } | |
| 5783 | } | |
| 5784 | return result; | |
| 5785 | } | |
| 5786 | int32_t sub_D6CBC4(int32_t a1, int32_t a2, int32_t * a3) | |
| 5787 | {
| |
| 5788 | int32_t v1 = (int32_t)a3; | |
| 5789 | int32_t v2 = loc_150AA78(a1, a2, v1); | |
| 5790 | uint28_t v3 = 0; | |
| 5791 | int28_t v4 = v2 > 0 ? 0x4000000 : 0; | |
| 5792 | int28_t v5 = v2 == 0 ? 0x2000000 : 0; | |
| 5793 | int28_t v6 = 0x8000000 * (int28_t)(v2 < 0) | v3 % 0x1000000 | v4 | v5; | |
| 5794 | if (a3 == NULL || (v3 & 128) == 0 || v6 < 0) | |
| 5795 | {
| |
| 5796 | return 0; | |
| 5797 | } | |
| 5798 | bool v7 = true; | |
| 5799 | int32_t v8 = *(int32_t *)0x2005010; | |
| 5800 | int32_t v9 = v8; | |
| 5801 | if (v8 == 0) | |
| 5802 | {
| |
| 5803 | return 0; | |
| 5804 | } | |
| 5805 | sub_D320D8(v8, 0, 0); | |
| 5806 | *(int32_t *)v9 = 0x1908950; | |
| 5807 | *(int32_t *)(v9 + 1592) = -1; | |
| 5808 | sub_D32030(v9 + 1600, 0x1908950, -1); | |
| 5809 | *(int32_t *)(v9 + 3160) = 0; | |
| 5810 | *(int32_t *)(v9 + 28) = 0x2005010; | |
| 5811 | *(int32_t *)v9 = 0x190B510; | |
| 5812 | if (v9 == 0) | |
| 5813 | {
| |
| 5814 | return 0; | |
| 5815 | } | |
| 5816 | int32_t * v10; | |
| 5817 | int32_t v11; | |
| 5818 | int32_t v12; | |
| 5819 | int32_t v13; | |
| 5820 | int32_t v14; | |
| 5821 | if (*(int32_t *)v1 != 1) | |
| 5822 | {
| |
| 5823 | if (sub_D37970(v9, v2, a2) != 0) | |
| 5824 | {
| |
| 5825 | if (sub_D29A80(v9, v1) != 0) | |
| 5826 | {
| |
| 5827 | int32_t result = 1; | |
| 5828 | if (sub_D29818(0, v9) == 0) | |
| 5829 | {
| |
| 5830 | v11 = v9; | |
| 5831 | if (v11 != 0) | |
| 5832 | {
| |
| 5833 | v14 = *(int32_t *)(v11 + 12); | |
| 5834 | if (((int32_t)(v14 < 2) ^ 1 || (int32_t)(v14 < 0)) != 0) | |
| 5835 | {
| |
| 5836 | *(int32_t *)(v1 + 4) = -1; | |
| 5837 | } | |
| 5838 | v13 = 0; | |
| 5839 | if (*(char *)0x1CCB134 != 0) | |
| 5840 | {
| |
| 5841 | v13 = v7 ? 0x2005010 : 0; | |
| 5842 | } | |
| 5843 | v12 = v9; | |
| 5844 | if (v12 != 0) | |
| 5845 | {
| |
| 5846 | v10 = (int32_t *)(v12 + 28); | |
| 5847 | if (v13 == *v10) | |
| 5848 | {
| |
| 5849 | *v10 = 0; | |
| 5850 | result = 0; | |
| 5851 | } | |
| 5852 | else | |
| 5853 | {
| |
| 5854 | result = 0; | |
| 5855 | } | |
| 5856 | } | |
| 5857 | else | |
| 5858 | {
| |
| 5859 | result = 0; | |
| 5860 | } | |
| 5861 | } | |
| 5862 | else | |
| 5863 | {
| |
| 5864 | result = 0; | |
| 5865 | } | |
| 5866 | } | |
| 5867 | return result; | |
| 5868 | } | |
| 5869 | } | |
| 5870 | if (*(int32_t *)v1 != 2) | |
| 5871 | {
| |
| 5872 | sub_1524308(v1, 1, 0); | |
| 5873 | sub_1524308(v1, 2, -1); | |
| 5874 | } | |
| 5875 | } | |
| 5876 | v11 = v9; | |
| 5877 | if (v11 == 0) | |
| 5878 | {
| |
| 5879 | return 0; | |
| 5880 | } | |
| 5881 | v14 = *(int32_t *)(v11 + 12); | |
| 5882 | if (((int32_t)(v14 < 2) ^ 1 || (int32_t)(v14 < 0)) != 0) | |
| 5883 | {
| |
| 5884 | *(int32_t *)(v1 + 4) = -1; | |
| 5885 | } | |
| 5886 | v13 = 0; | |
| 5887 | if (*(char *)0x1CCB134 != 0) | |
| 5888 | {
| |
| 5889 | v13 = v7 ? 0x2005010 : 0; | |
| 5890 | } | |
| 5891 | v12 = v9; | |
| 5892 | if (v12 != 0) | |
| 5893 | {
| |
| 5894 | v10 = (int32_t *)(v12 + 28); | |
| 5895 | if (v13 == *v10) | |
| 5896 | {
| |
| 5897 | *v10 = 0; | |
| 5898 | } | |
| 5899 | } | |
| 5900 | return 0; | |
| 5901 | } | |
| 5902 | int32_t sub_D651E4(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t * a7) | |
| 5903 | {
| |
| 5904 | int32_t v1 = (int32_t)a7; | |
| 5905 | int32_t v2 = sub_150AA68(a1, a2, a3, a4, a5, a6, v1); | |
| 5906 | bool result = false; | |
| 5907 | int32_t v3 = 0x2005010; | |
| 5908 | int32_t v4 = *(int32_t *)0x2005010; | |
| 5909 | int32_t v5 = v4; | |
| 5910 | if (v4 == 0) | |
| 5911 | {
| |
| 5912 | return false; | |
| 5913 | } | |
| 5914 | sub_D320D8(v4, 0, 0); | |
| 5915 | *(int32_t *)(v5 + 1592) = -1; | |
| 5916 | *(int32_t *)v5 = 0x1908950; | |
| 5917 | sub_D32030(v5 + 1600, -1, 0x1908950); | |
| 5918 | *(int32_t *)(v5 + 3160) = (int32_t)result; | |
| 5919 | *(int32_t *)(v5 + 28) = 0x2005010; | |
| 5920 | *(int32_t *)v5 = 0x190A540; | |
| 5921 | if (v5 == 0) | |
| 5922 | {
| |
| 5923 | return result; | |
| 5924 | } | |
| 5925 | int32_t * v6; | |
| 5926 | int32_t v7; | |
| 5927 | int32_t v8; | |
| 5928 | bool result3; | |
| 5929 | int32_t v9; | |
| 5930 | int32_t v10; | |
| 5931 | bool result2; | |
| 5932 | int32_t v11; | |
| 5933 | if (v1 != 0) | |
| 5934 | {
| |
| 5935 | if (*(int32_t *)v1 == 1) | |
| 5936 | {
| |
| 5937 | v7 = v5; | |
| 5938 | if (v7 == 0) | |
| 5939 | {
| |
| 5940 | result2 = result; | |
| 5941 | } | |
| 5942 | else | |
| 5943 | {
| |
| 5944 | v11 = *(int32_t *)(v7 + 12); | |
| 5945 | if (((int32_t)(v11 < 2) ^ 1 || (int32_t)(v11 < 0)) != 0) | |
| 5946 | {
| |
| 5947 | *(int32_t *)(v1 + 4) = -1; | |
| 5948 | } | |
| 5949 | result3 = result; | |
| 5950 | v8 = result3; | |
| 5951 | v10 = v8; | |
| 5952 | if (*(char *)0x1CCB134 != 0) | |
| 5953 | {
| |
| 5954 | v10 = v3; | |
| 5955 | } | |
| 5956 | v9 = v5; | |
| 5957 | if (v9 != 0) | |
| 5958 | {
| |
| 5959 | v6 = (int32_t *)(v9 + 28); | |
| 5960 | if (v10 == *v6) | |
| 5961 | {
| |
| 5962 | *v6 = v8; | |
| 5963 | result2 = result3; | |
| 5964 | } | |
| 5965 | else | |
| 5966 | {
| |
| 5967 | result2 = result3; | |
| 5968 | } | |
| 5969 | } | |
| 5970 | else | |
| 5971 | {
| |
| 5972 | result2 = result3; | |
| 5973 | } | |
| 5974 | } | |
| 5975 | return result2; | |
| 5976 | } | |
| 5977 | } | |
| 5978 | int32_t v12; | |
| 5979 | if (sub_D3310C(v5, v2, a2, a3, a4, a5, a6) == 0) | |
| 5980 | {
| |
| 5981 | v12 = v1; | |
| 5982 | if (v12 == 0) | |
| 5983 | {
| |
| 5984 | v7 = v5; | |
| 5985 | if (v7 == 0) | |
| 5986 | {
| |
| 5987 | return result; | |
| 5988 | } | |
| 5989 | v11 = *(int32_t *)(v7 + 12); | |
| 5990 | if (((int32_t)(v11 < 2) ^ 1 || (int32_t)(v11 < 0)) != 0) | |
| 5991 | {
| |
| 5992 | *(int32_t *)(v1 + 4) = -1; | |
| 5993 | } | |
| 5994 | result3 = result; | |
| 5995 | v8 = result3; | |
| 5996 | v10 = v8; | |
| 5997 | if (*(char *)0x1CCB134 != 0) | |
| 5998 | {
| |
| 5999 | v10 = v3; | |
| 6000 | } | |
| 6001 | v9 = v5; | |
| 6002 | if (v9 != 0) | |
| 6003 | {
| |
| 6004 | v6 = (int32_t *)(v9 + 28); | |
| 6005 | if (v10 == *v6) | |
| 6006 | {
| |
| 6007 | *v6 = v8; | |
| 6008 | } | |
| 6009 | } | |
| 6010 | return result3; | |
| 6011 | } | |
| 6012 | if (*(int32_t *)v12 != 2) | |
| 6013 | {
| |
| 6014 | sub_1524308(v12, 1, 0); | |
| 6015 | sub_1524308(v1, 2, -1); | |
| 6016 | } | |
| 6017 | v7 = v5; | |
| 6018 | if (v7 == 0) | |
| 6019 | {
| |
| 6020 | result2 = result; | |
| 6021 | } | |
| 6022 | else | |
| 6023 | {
| |
| 6024 | v11 = *(int32_t *)(v7 + 12); | |
| 6025 | if (((int32_t)(v11 < 2) ^ 1 || (int32_t)(v11 < 0)) != 0) | |
| 6026 | {
| |
| 6027 | *(int32_t *)(v1 + 4) = -1; | |
| 6028 | } | |
| 6029 | result3 = result; | |
| 6030 | v8 = result3; | |
| 6031 | v10 = v8; | |
| 6032 | if (*(char *)0x1CCB134 != 0) | |
| 6033 | {
| |
| 6034 | v10 = v3; | |
| 6035 | } | |
| 6036 | v9 = v5; | |
| 6037 | if (v9 != 0) | |
| 6038 | {
| |
| 6039 | v6 = (int32_t *)(v9 + 28); | |
| 6040 | if (v10 == *v6) | |
| 6041 | {
| |
| 6042 | *v6 = v8; | |
| 6043 | result2 = result3; | |
| 6044 | } | |
| 6045 | else | |
| 6046 | {
| |
| 6047 | result2 = result3; | |
| 6048 | } | |
| 6049 | } | |
| 6050 | else | |
| 6051 | {
| |
| 6052 | result2 = result3; | |
| 6053 | } | |
| 6054 | } | |
| 6055 | return result2; | |
| 6056 | } | |
| 6057 | if (sub_D29A80(v5, v1) != 0) | |
| 6058 | {
| |
| 6059 | if (sub_D29818(0, v5) != 0) | |
| 6060 | {
| |
| 6061 | return true; | |
| 6062 | } | |
| 6063 | v7 = v5; | |
| 6064 | if (v7 == 0) | |
| 6065 | {
| |
| 6066 | result2 = result; | |
| 6067 | } | |
| 6068 | else | |
| 6069 | {
| |
| 6070 | v11 = *(int32_t *)(v7 + 12); | |
| 6071 | if (((int32_t)(v11 < 2) ^ 1 || (int32_t)(v11 < 0)) != 0) | |
| 6072 | {
| |
| 6073 | *(int32_t *)(v1 + 4) = -1; | |
| 6074 | } | |
| 6075 | result3 = result; | |
| 6076 | v8 = result3; | |
| 6077 | v10 = v8; | |
| 6078 | if (*(char *)0x1CCB134 != 0) | |
| 6079 | {
| |
| 6080 | v10 = v3; | |
| 6081 | } | |
| 6082 | v9 = v5; | |
| 6083 | if (v9 != 0) | |
| 6084 | {
| |
| 6085 | v6 = (int32_t *)(v9 + 28); | |
| 6086 | if (v10 == *v6) | |
| 6087 | {
| |
| 6088 | *v6 = v8; | |
| 6089 | result2 = result3; | |
| 6090 | } | |
| 6091 | else | |
| 6092 | {
| |
| 6093 | result2 = result3; | |
| 6094 | } | |
| 6095 | } | |
| 6096 | else | |
| 6097 | {
| |
| 6098 | result2 = result3; | |
| 6099 | } | |
| 6100 | } | |
| 6101 | return result2; | |
| 6102 | } | |
| 6103 | v12 = v1; | |
| 6104 | if (v12 != 0) | |
| 6105 | {
| |
| 6106 | if (*(int32_t *)v12 != 2) | |
| 6107 | {
| |
| 6108 | sub_1524308(v12, 1, 0); | |
| 6109 | sub_1524308(v1, 2, -1); | |
| 6110 | } | |
| 6111 | } | |
| 6112 | v7 = v5; | |
| 6113 | if (v7 == 0) | |
| 6114 | {
| |
| 6115 | result2 = result; | |
| 6116 | } | |
| 6117 | else | |
| 6118 | {
| |
| 6119 | v11 = *(int32_t *)(v7 + 12); | |
| 6120 | if (((int32_t)(v11 < 2) ^ 1 || (int32_t)(v11 < 0)) != 0) | |
| 6121 | {
| |
| 6122 | *(int32_t *)(v1 + 4) = -1; | |
| 6123 | } | |
| 6124 | result3 = result; | |
| 6125 | v8 = result3; | |
| 6126 | v10 = v8; | |
| 6127 | if (*(char *)0x1CCB134 != 0) | |
| 6128 | {
| |
| 6129 | v10 = v3; | |
| 6130 | } | |
| 6131 | v9 = v5; | |
| 6132 | if (v9 != 0) | |
| 6133 | {
| |
| 6134 | v6 = (int32_t *)(v9 + 28); | |
| 6135 | if (v10 == *v6) | |
| 6136 | {
| |
| 6137 | *v6 = v8; | |
| 6138 | result2 = result3; | |
| 6139 | } | |
| 6140 | else | |
| 6141 | {
| |
| 6142 | result2 = result3; | |
| 6143 | } | |
| 6144 | } | |
| 6145 | else | |
| 6146 | {
| |
| 6147 | result2 = result3; | |
| 6148 | } | |
| 6149 | } | |
| 6150 | return result2; | |
| 6151 | } | |
| 6152 | ||
| 6153 | ||
| 6154 | ||
| 6155 | ||
| 6156 | ||
| 6157 | /* | |
| 6158 | trying to block the blacklist for when youre kicked | |
| 6159 | A8BF68 | |
| 6160 | D232DC | |
| 6161 | A8C3F4 | |
| 6162 | A8B5FC | |
| 6163 | A8BBBC | |
| 6164 | A8B978 | |
| 6165 | D11D0C | |
| 6166 | ||
| 6167 | D04048 138E5C0 = 4B975A89 | |
| 6168 | D26100 138E600 = 4B997B01 | |
| 6169 | 9F8FD8 138E644 = 4B66A995 | |
| 6170 | ||
| 6171 | ||
| 6172 | //blr = 0x4E800020 | |
| 6173 | 0xA8BBBC = 0x60850000 //this stops you from joining a new session. not protecting | |
| 6174 | 0xA8B978 = 0x80630010 //freeze | |
| 6175 | 0x970F28 = 0x7C0802A6 // not protecting | |
| 6176 | 0x1358AAC = 0x7C0802A6 //this one protects against it but makes everyone leave | |
| 6177 | ||
| 6178 | //nopped | |
| 6179 | 0x1358E50 = 4B732D6D | |
| 6180 | 0x1358E84 = 4B732AF5 | |
| 6181 | 0x1358D08 = 4B618221 | |
| 6182 | 0x1358C08 = 4BFFFEA5 | |
| 6183 | 0x138F9F0 = 4BFFE6D9 nop //this one protects against it but makes everyone leave | |
| 6184 | 0x138F9DC = F821FF91 blr //this one protects against it but makes everyone leave | |
| 6185 | 0x138E5BC = 30611AE4 branch 48001418 // //this one protects against it but makes everyone leave | |
| 6186 | 0x138E600 = 4B997B01 | |
| 6187 | 0x138E614 = 483C6B4D //not tried but didnt protect | |
| 6188 | 0x138E624 = 4B5E0AF1 //this one protects against it but makes everyone leave | |
| 6189 | 0x138E638 = 4BF63621 | |
| 6190 | 0x138E644 = 4B66A995 //not protecting | |
| 6191 | 0x138E670 = 4BFCA43D //this one protects against it but makes everyone leave the curret best | |
| 6192 | */ | |
| 6193 | ||
| 6194 | ||
| 6195 | ||
| 6196 | ||
| 6197 | ||
| 6198 | ||
| 6199 | ||
| 6200 | ||
| 6201 | ||
| 6202 | ||
| 6203 | ||
| 6204 | ||
| 6205 | ||
| 6206 | ||
| 6207 | ||
| 6208 | ||
| 6209 | void func_51() | |
| 6210 | {
| |
| 6211 | int iVar0 = _GET_TOTAL_SC_INBOX_IDS(); | |
| 6212 | int iVar1 = 0; | |
| 6213 | while (iVar1 < iVar0) | |
| 6214 | {
| |
| 6215 | if (!_IS_SC_INBOX_VALID(iVar1)) | |
| 6216 | {
| |
| 6217 | Hash iVar2 = _SC_INBOX_MESSAGE_INIT(iVar1); | |
| 6218 | printf("SC MESSAGE TYPE: 0x%X\n", iVar2);
| |
| 6219 | switch (iVar2) | |
| 6220 | {
| |
| 6221 | case 0xCBB12972: // crew_message | |
| 6222 | {
| |
| 6223 | //requires, crewId and crewTag | |
| 6224 | printf("crew_message: 0x%X\n", iVar2);
| |
| 6225 | break; | |
| 6226 | } | |
| 6227 | case 0xEDF54CE2: // statupdate | |
| 6228 | {
| |
| 6229 | printf("statupdate: 0x%X\n", iVar2);
| |
| 6230 | break; | |
| 6231 | } | |
| 6232 | case 0x8C571656: // mission_verified | |
| 6233 | {
| |
| 6234 | printf("mission_verified: 0x%X\n", iVar2);
| |
| 6235 | break; | |
| 6236 | } | |
| 6237 | case 0x70E4D0E1: // rockstar_message | |
| 6238 | {
| |
| 6239 | printf("rockstar_message: 0x%X\n", iVar2);
| |
| 6240 | break; | |
| 6241 | } | |
| 6242 | case 0x2190F9E1: // ugcstatupdate | |
| 6243 | {
| |
| 6244 | printf("ugcstatupdate: 0x%X\n", iVar2);
| |
| 6245 | break; | |
| 6246 | } | |
| 6247 | case 0xD36120CE: // game_award | |
| 6248 | {
| |
| 6249 | //type-> cash or xp | |
| 6250 | //amt-> 999999 | |
| 6251 | //from-> Rockstar | |
| 6252 | printf("game_award: 0x%X\n", iVar2);
| |
| 6253 | break; | |
| 6254 | } | |
| 6255 | case 0x134AB8CF: // bounty | |
| 6256 | {
| |
| 6257 | printf("bounty: 0x%X\n", iVar2);
| |
| 6258 | break; | |
| 6259 | } | |
| 6260 | } | |
| 6261 | } | |
| 6262 | iVar1++; | |
| 6263 | } | |
| 6264 | } | |
| 6265 | ||
| 6266 | ||
| 6267 | ||
| 6268 | ||
| 6269 | ||
| 6270 | ||
| 6271 | ||
| 6272 | ||
| 6273 | ||
| 6274 | ||
| 6275 | ||
| 6276 | ||
| 6277 | ||
| 6278 | ||
| 6279 | ||
| 6280 | ||
| 6281 | ||
| 6282 | ||
| 6283 | ||
| 6284 | ||
| 6285 | int32_t createAmbientPickupFunc(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, uint32_t a6, uint32_t a7, int32_t a8) | |
| 6286 | {
| |
| 6287 | int32_t v1 = sub_150AA74(a1, a2, a3, a4, a5, a6, a7, a8); | |
| 6288 | int32_t v2 = a7 % 256; | |
| 6289 | int32_t v3 = a6 % 256; | |
| 6290 | if (*(char *)0x223F0C0 == 0) | |
| 6291 | {
| |
| 6292 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6293 | } | |
| 6294 | int32_t v4; | |
| 6295 | int32_t v5; | |
| 6296 | int32_t v6; | |
| 6297 | int32_t v7; | |
| 6298 | int32_t v8; | |
| 6299 | int32_t v9; | |
| 6300 | int32_t v10; | |
| 6301 | if (*(int32_t *)0x2183F14 == v1) | |
| 6302 | {
| |
| 6303 | v9 = sub_D25F10((int32_t)&v7, 0); | |
| 6304 | v10 = sub_9F858C(v9); | |
| 6305 | if (v10 == 0) | |
| 6306 | {
| |
| 6307 | v6 = sub_12EF35C(); | |
| 6308 | sub_131BC34(v10, v6, a4, v1); | |
| 6309 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6310 | } | |
| 6311 | rand(); | |
| 6312 | v4 = v8; | |
| 6313 | if (*(int32_t *)(sub_9F8604(0x2FB220, 0x300000) + 0x300000) != 0) | |
| 6314 | {
| |
| 6315 | v5 = sub_1545344(); | |
| 6316 | reportCashSpawnfn(v4, a4, v1, v5); | |
| 6317 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6318 | } | |
| 6319 | v6 = sub_12EF35C(); | |
| 6320 | sub_131BC34(v4, v6, a4, v1); | |
| 6321 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6322 | } | |
| 6323 | if (*(int32_t *)0x2183F18 == v1 || *(int32_t *)0x2183F1C == v1 || *(int32_t *)0x2183F20 == v1 || *(int32_t *)0x2183F24 == v1 || *(int32_t *)0x2183F28 == v1) | |
| 6324 | {
| |
| 6325 | v9 = sub_D25F10((int32_t)&v7, 0); | |
| 6326 | v10 = sub_9F858C(v9); | |
| 6327 | v4 = v10; | |
| 6328 | if (v10 != 0) | |
| 6329 | {
| |
| 6330 | rand(); | |
| 6331 | v4 = v8; | |
| 6332 | if (*(int32_t *)(sub_9F8604(0x2FB220, 0x300000) + 0x300000) != 0) | |
| 6333 | {
| |
| 6334 | v5 = sub_1545344(); | |
| 6335 | reportCashSpawnfn(v4, a4, v1, v5); | |
| 6336 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6337 | } | |
| 6338 | } | |
| 6339 | v6 = sub_12EF35C(); | |
| 6340 | sub_131BC34(v4, v6, a4, v1); | |
| 6341 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6342 | } | |
| 6343 | if (*(int32_t *)0x2183F2C != v1) | |
| 6344 | {
| |
| 6345 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6346 | } | |
| 6347 | v9 = sub_D25F10((int32_t)&v7, 0); | |
| 6348 | v10 = sub_9F858C(v9); | |
| 6349 | v4 = v10; | |
| 6350 | if (v10 != 0) | |
| 6351 | {
| |
| 6352 | rand(); | |
| 6353 | v4 = v8; | |
| 6354 | if (*(int32_t *)(sub_9F8604(0x2FB220, 0x300000) + 0x300000) != 0) | |
| 6355 | {
| |
| 6356 | v5 = sub_1545344(); | |
| 6357 | reportCashSpawnfn(v4, a4, v1, v5); | |
| 6358 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6359 | } | |
| 6360 | } | |
| 6361 | v6 = sub_12EF35C(); | |
| 6362 | sub_131BC34(v4, v6, a4, v1); | |
| 6363 | return sub_3FA198(v1, a2, a3, a4, a5, v3, v2); | |
| 6364 | } | |
| 6365 | ||
| 6366 | /* | |
| 6367 | ||
| 6368 | r0=000000000019660D r8=00000000100000A0 r16=0000000000000000 r24=0000000000000000 | |
| 6369 | r1=00000000D003F610 r9=00000000100001C4 r17=00000000D0040430 r25=0000000000000001 | |
| 6370 | r2=0000000001C85330 r10=00000000100001B0 r18=0000000035F680D8 r26=DEF76158880A67D9 | |
| 6371 | r3=DEF76158880A67D9 r11=0007213E023A5975 r19=0000000001CC2FA8 r27=FFFFFFFFCE6FDD6B | |
| 6372 | r4=0000000000009C40 r12=0000000002290308 r20=0000000032293664 r28=0000000010069664 | |
| 6373 | r5=FFFFFFFFCE6FDD6B r13=0000000010007060 r21=0000000035F68000 r29=0000000000000000 | |
| 6374 | r6=0000000000000005 r14=0000000000000000 r22=0000000001E70370 r30=0000000000009C40 | |
| 6375 | r7=00000000100001AC r15=0000000000000000 r23=00000000320A8DC0 r31=00000000113FD533 | |
| 6376 | ||
| 6377 | xer=0000000000000000 ctr=000000000227512C lr=00000000003FA628 fpscr=BF324500 | |
| 6378 | ||
| 6379 | cr=48000044 cr0=GT cr1=LT cr2= cr3= cr4= cr5= cr6=GT cr7=GT | |
| 6380 | ||
| 6381 | pc=00000000012D73D8 | |
| 6382 | ||
| 6383 | ||
| 6384 | ||
| 6385 | */ | |
| 6386 | ||
| 6387 | ||
| 6388 | //model hash is in r31 | |
| 6389 | GAME_EXPORT int32_t reportCashSpawnfn(int32_t a1, int32_t amount, int32_t pickup_hash_0xFFFFFFFFCE6FDD6B, int32_t ret_sub_1545344); | |
| 6390 | GAME_EXPORT int32_t sub_1545344(int32_t cNetGamePlayer); | |
| 6391 | ||
| 6392 | ||
| 6393 | void report_player_test() | |
| 6394 | {
| |
| 6395 | int32_t _rand = rand(); | |
| 6396 | printf("rand: 0x%X\n", _rand);
| |
| 6397 | int32_t v5 = sub_1545344(CNetGamePlayerFn(iSelectedPlayer, 1)); | |
| 6398 | reportCashSpawnfn(_rand, 40000, 0xFFFFFFFFCE6FDD6B, v5); | |
| 6399 | } | |
| 6400 | ||
| 6401 | ||
| 6402 | ||
| 6403 | ||
| 6404 | ||
| 6405 | ||
| 6406 | ||
| 6407 | GAME_EXPORT char* GetLabelTextByGXTFunc(address, gxt_label); // 0xD914CC | |
| 6408 | char backup_GetLabelTextByGXT[4 * 4]; | |
| 6409 | ||
| 6410 | char *_MY_GetLabelTextByGXT(int32_t unk_20668B0, char *label_name) | |
| 6411 | {
| |
| 6412 | printf("unk_20668B0: 0x%X\n", unk_20668B0);
| |
| 6413 | printf("label_name: %s\n", label_name);
| |
| 6414 | ||
| 6415 | ||
| 6416 | ||
| 6417 | ||
| 6418 | //backup hook, revert, call, hook | |
| 6419 | char backup_hook[4 * 4]; | |
| 6420 | WriteProcessMemory(backup_hook, (const void *)0xD914CC, 4 * 4); | |
| 6421 | WriteProcessMemory((void *)0xD914CC, backup_GetLabelTextByGXT, 4 * 4); | |
| 6422 | char *ret = GetLabelTextByGXTFunc(unk_20668B0, label_name); | |
| 6423 | WriteProcessMemory((void *)0xD914CC, backup_hook, 4 * 4); | |
| 6424 | return ret; | |
| 6425 | } | |
| 6426 | ||
| 6427 | ||
| 6428 | ||
| 6429 | WriteProcessMemory(backup_GetLabelTextByGXT, (const void *)0xD914CC, 4 * 4); | |
| 6430 | PatchInJump(0xD914CC, (int)_MY_GetLabelTextByGXT, false); | |
| 6431 | ||
| 6432 | ||
| 6433 | ||
| 6434 | ||
| 6435 | ||
| 6436 | ||
| 6437 | ||
| 6438 | ||
| 6439 | ||
| 6440 | ||
| 6441 | //nop all if you freeze | |
| 6442 | 00A51B60; | |
| 6443 | 0A51B6C; | |
| 6444 | 0A51B74; | |
| 6445 | 00A51B74; | |
| 6446 | 000A51B78; | |
| 6447 | 0A51B84; | |
| 6448 | 00A51B88; | |
| 6449 | 00A51B8C; | |
| 6450 | 0A51B94; | |
| 6451 | 0A51B98; | |
| 6452 | 0A51BA4; | |
| 6453 | 00A51BB0; | |
| 6454 | 0A51BB4; | |
| 6455 | 00A51BBC; | |
| 6456 | 0A51BC0; | |
| 6457 | 0A51BC4; | |
| 6458 | 0A51BC8; | |
| 6459 | 0A51BD0; | |
| 6460 | 00A51BD4; | |
| 6461 | 0A51BEC; | |
| 6462 | 00A51BF8; | |
| 6463 | ||
| 6464 | ||
| 6465 | //texture freeze protection | |
| 6466 | //0x12D30D8 = 0x60000000; | |
| 6467 | //0x12D3118 = 0x60000000; | |
| 6468 | ||
| 6469 | ||
| 6470 | ||
| 6471 | ||
| 6472 | ||
| 6473 | /* | |
| 6474 | Rage::Import | |
| 6475 | 0xD095A365 | |
| 6476 | platform:/levels/gta5/scenario/Alamo_Sea.cmt | |
| 6477 | 1 | |
| 6478 | 0 | |
| 6479 | 1 | |
| 6480 | 0 | |
| 6481 | ||
| 6482 | ||
| 6483 | 0xD09A5563 | |
| 6484 | platform:/levels/gta5/streaming/ah_1_int_srl.cmt | |
| 6485 | 1 | |
| 6486 | ah_1_int_srl.cmt | |
| 6487 | 0 | |
| 6488 | 1 | |
| 6489 | ||
| 6490 | 0xD09EA573 | |
| 6491 | dlcMPHeist:/ps3/levels/gta5/streaming/heist_int_srl.cmt | |
| 6492 | 1 | |
| 6493 | heist_int_srl.cmt | |
| 6494 | 0 | |
| 6495 | 1 | |
| 6496 | */ | |
| 6497 | ||
| 6498 | ||
| 6499 | ||
| 6500 | ||
| 6501 | ||
| 6502 | ||
| 6503 | ||
| 6504 | ||
| 6505 | //using sc features with out being in game | |
| 6506 | //make a post respones | |
| 6507 | // https://socialclub.rockstargames.com/crew/crew_message | |
| 6508 | // {"crewId":39499191,"message":"hello world","nickname":""}
| |
| 6509 | ||
| 6510 | ||
| 6511 | ||
| 6512 | ||
| 6513 | ||
| 6514 | ||
| 6515 | ||
| 6516 | ||
| 6517 | ||
| 6518 | ||
| 6519 | ||
| 6520 | ||
| 6521 | ||
| 6522 | ||
| 6523 | ||
| 6524 | ||
| 6525 | ||
| 6526 | ||
| 6527 | ||
| 6528 | ||
| 6529 | static size_t _wcslen(const wchar_t *s) | |
| 6530 | {
| |
| 6531 | const wchar_t *p; | |
| 6532 | ||
| 6533 | p = s; | |
| 6534 | while (*p) | |
| 6535 | p++; | |
| 6536 | ||
| 6537 | return p - s; | |
| 6538 | } | |
| 6539 | static int _wcslen(char *str) | |
| 6540 | {
| |
| 6541 | int nullCount = 0; | |
| 6542 | int i = 0; | |
| 6543 | for (i = 0; i < 64; i++) | |
| 6544 | {
| |
| 6545 | if (nullCount == 2) | |
| 6546 | {
| |
| 6547 | break; | |
| 6548 | } | |
| 6549 | if (*(str + i) == 0x00) | |
| 6550 | {
| |
| 6551 | nullCount++; | |
| 6552 | } | |
| 6553 | else | |
| 6554 | {
| |
| 6555 | nullCount = 0; | |
| 6556 | } | |
| 6557 | } | |
| 6558 | return i; | |
| 6559 | } | |
| 6560 | static size_t StringToWideCharacter(wchar_t *dest, const char *scr, size_t len) | |
| 6561 | {
| |
| 6562 | int count = 0; | |
| 6563 | if (len) | |
| 6564 | {
| |
| 6565 | do | |
| 6566 | {
| |
| 6567 | if ((*dest++ = (wchar_t)*scr++) == 0) | |
| 6568 | break; | |
| 6569 | count++; | |
| 6570 | } while (--len); | |
| 6571 | } | |
| 6572 | return count; | |
| 6573 | } | |
| 6574 | static size_t WideCharacterToString(char *dest, const wchar_t *scr, size_t len) | |
| 6575 | {
| |
| 6576 | int count = 0; | |
| 6577 | if (len) | |
| 6578 | {
| |
| 6579 | do | |
| 6580 | {
| |
| 6581 | if ((*dest++ = (char)*scr++) == 0) | |
| 6582 | break; | |
| 6583 | count++; | |
| 6584 | } while (--len); | |
| 6585 | } | |
| 6586 | return count; | |
| 6587 | } | |
| 6588 | ||
| 6589 | ||
| 6590 | ||
| 6591 | ||
| 6592 | ||
| 6593 | //#define InitializeCriticalSection(lpCriticalSection) pthread_mutex_init(lpCriticalSection, NULL) | |
| 6594 | //#define DeleteCriticalSection(lpCriticalSection) pthread_mutex_destroy(lpCriticalSection) | |
| 6595 | //#define EnterCriticalSection(lpCriticalSection) pthread_mutex_lock(lpCriticalSection) | |
| 6596 | //#define LeaveCriticalSection(lpCriticalSection) pthread_mutex_unlock(lpCriticalSection) | |
| 6597 | //pthread_mutex_t DetourAsmSection; | |
| 6598 | ||
| 6599 | //#define InitializeCriticalSection(lpCriticalSection) sys_lwmutex_create(lpCriticalSection, NULL) | |
| 6600 | //#define DeleteCriticalSection(lpCriticalSection) sys_lwmutex_destroy(lpCriticalSection) | |
| 6601 | //#define EnterCriticalSection(lpCriticalSection) sys_lwmutex_lock(lpCriticalSection, 0) | |
| 6602 | //#define LeaveCriticalSection(lpCriticalSection) sys_lwmutex_unlock(lpCriticalSection) | |
| 6603 | //sys_lwmutex_t DetourAsmSection; | |
| 6604 | ||
| 6605 | ||
| 6606 | ||
| 6607 | ||
| 6608 | ||
| 6609 | ||
| 6610 | ||
| 6611 | ||
| 6612 | ||
| 6613 | ||
| 6614 | ||
| 6615 | ||
| 6616 | ||
| 6617 | ||
| 6618 | ||
| 6619 | ||
| 6620 | ||
| 6621 | int32_t sub_A5660C(int32_t a1) | |
| 6622 | {
| |
| 6623 | int32_t v1 = __savegprlr_26(); // 0x150AA7C | |
| 6624 | int32_t v2 = v1; | |
| 6625 | int32_t * v3 = (int32_t *)(v1 + 140); | |
| 6626 | uint32_t v4 = *v3; | |
| 6627 | if (v4 >= 1) | |
| 6628 | {
| |
| 6629 | int32_t v5 = v4 - *(int32_t *)0x1EC673C; | |
| 6630 | *v3 = v5 < 0 ? 0 : v5; | |
| 6631 | v1 = v2; | |
| 6632 | } | |
| 6633 | int32_t v6 = *(int32_t *)(v1 + 52); | |
| 6634 | int32_t v7; | |
| 6635 | int32_t v8; | |
| 6636 | int32_t v9; | |
| 6637 | int32_t v10; | |
| 6638 | int32_t v11; | |
| 6639 | int32_t v12; | |
| 6640 | int32_t v13; | |
| 6641 | int32_t v14; | |
| 6642 | int32_t result2; | |
| 6643 | int32_t result; | |
| 6644 | int32_t result3; | |
| 6645 | int32_t v15; | |
| 6646 | int32_t v16; | |
| 6647 | int32_t v17; | |
| 6648 | int32_t v18; | |
| 6649 | int32_t v19; | |
| 6650 | int32_t v20; | |
| 6651 | int32_t v21; | |
| 6652 | if (v6 == 0) | |
| 6653 | {
| |
| 6654 | result = __asm_rlwinm((int32_t)*(char *)(v1 + 173), 30, 31, 31); | |
| 6655 | if (result == 0) | |
| 6656 | {
| |
| 6657 | return 0; | |
| 6658 | } | |
| 6659 | v11 = v2; | |
| 6660 | v17 = *(int32_t *)(v11 + 28); | |
| 6661 | if (v17 == 0) | |
| 6662 | {
| |
| 6663 | return result; | |
| 6664 | } | |
| 6665 | v18 = *(int32_t *)(v17 + 8); | |
| 6666 | if (v18 == 0) | |
| 6667 | {
| |
| 6668 | v13 = v11; | |
| 6669 | if (*(int32_t *)(v17 + 8) != 0) | |
| 6670 | {
| |
| 6671 | v20 = *(int32_t *)(v13 + 140); | |
| 6672 | if (v20 == 0) | |
| 6673 | {
| |
| 6674 | int32_t l_var = sub_15BA0E4(v20); | |
| 6675 | v21 = *(int32_t *)(v13 + 28); | |
| 6676 | v7 = 0; | |
| 6677 | if (v21 != 0) | |
| 6678 | {
| |
| 6679 | v7 = *(int32_t *)(v21 + 8); | |
| 6680 | } | |
| 6681 | v15 = &v8; | |
| 6682 | sub_A8B814(v15); | |
| 6683 | v16 = &v9; | |
| 6684 | sub_A8B908(v15, v16, 982); | |
| 6685 | if (aub_1626844(*(int32_t *)0x1EC69C8, v15) == 0) | |
| 6686 | {
| |
| 6687 | sub_46E30C(l_var, unk); | |
| 6688 | } | |
| 6689 | else | |
| 6690 | {
| |
| 6691 | sub_A8B978(v15); | |
| 6692 | v14 = sub_9F8E10(); | |
| 6693 | sub_9F8FF0(v14, v7, v16, 1, (int32_t)&v10, 0); | |
| 6694 | } | |
| 6695 | *(int32_t *)(v2 + 140) = 250; | |
| 6696 | result2 = 250; | |
| 6697 | } | |
| 6698 | else | |
| 6699 | {
| |
| 6700 | result2 = v20; | |
| 6701 | } | |
| 6702 | } | |
| 6703 | else | |
| 6704 | {
| |
| 6705 | result2 = 0; | |
| 6706 | } | |
| 6707 | return result2; | |
| 6708 | } | |
| 6709 | result3 = aub_9F8FD8(v18); | |
| 6710 | v12 = v2; | |
| 6711 | v19 = *(int32_t *)(v12 + 28); | |
| 6712 | if (result3 != 0 || v19 == 0) | |
| 6713 | {
| |
| 6714 | return result3; | |
| 6715 | } | |
| 6716 | v13 = v12; | |
| 6717 | if (*(int32_t *)(v19 + 8) != 0) | |
| 6718 | {
| |
| 6719 | v20 = *(int32_t *)(v13 + 140); | |
| 6720 | if (v20 == 0) | |
| 6721 | {
| |
| 6722 | v21 = *(int32_t *)(v13 + 28); | |
| 6723 | v7 = 0; | |
| 6724 | if (v21 != 0) | |
| 6725 | {
| |
| 6726 | v7 = *(int32_t *)(v21 + 8); | |
| 6727 | } | |
| 6728 | v15 = &v8; | |
| 6729 | sub_A8B814(v15); | |
| 6730 | v16 = &v9; | |
| 6731 | sub_A8B908(v15, v16, 982); | |
| 6732 | if (sub_1626844(*(int32_t *)0x1EC69C8, v15) == 0) | |
| 6733 | {
| |
| 6734 | ||
| 6735 | } | |
| 6736 | else | |
| 6737 | {
| |
| 6738 | sub_A8B978(v15); | |
| 6739 | v14 = sub_9F8E10(); | |
| 6740 | sub_9F8FF0(v14, v7, v16, 1, (int32_t)&v10, 0); | |
| 6741 | } | |
| 6742 | *(int32_t *)(v2 + 140) = 250; | |
| 6743 | result2 = 250; | |
| 6744 | } | |
| 6745 | else | |
| 6746 | {
| |
| 6747 | result2 = v20; | |
| 6748 | } | |
| 6749 | } | |
| 6750 | else | |
| 6751 | {
| |
| 6752 | result2 = 0; | |
| 6753 | } | |
| 6754 | return result2; | |
| 6755 | } | |
| 6756 | if (sub_9D8FD8(v6) != 0) | |
| 6757 | {
| |
| 6758 | int32_t result4 = *(int32_t *)(v2 + 12); | |
| 6759 | if (result4 != 0) | |
| 6760 | {
| |
| 6761 | return result4; | |
| 6762 | } | |
| 6763 | int32_t v22 = (int32_t)*(char *)(v2 + 173); | |
| 6764 | if (__asm_rlwinm(v22, 31, 31, 31) == 0) | |
| 6765 | {
| |
| 6766 | int32_t v23 = __asm_rlwinm(v22, 25, 31, 31); | |
| 6767 | if (v23 == 0) | |
| 6768 | {
| |
| 6769 | result2 = v2; | |
| 6770 | } | |
| 6771 | else | |
| 6772 | {
| |
| 6773 | result2 = v23; | |
| 6774 | } | |
| 6775 | } | |
| 6776 | else | |
| 6777 | {
| |
| 6778 | int32_t v24 = *(int32_t *)(v2 + 140); | |
| 6779 | if (v24 == 0) | |
| 6780 | {
| |
| 6781 | if (*(int32_t *)(*(int32_t *)0x1CC57B8 + 36) != 0) | |
| 6782 | {
| |
| 6783 | int32_t l_var = sub_15BA0E4(a1 + 4); | |
| 6784 | sub_46E098(l_var); | |
| 6785 | } | |
| 6786 | *(int32_t *)(v2 + 52) = 0; | |
| 6787 | result2 = sub_A563E4(v2, 0); | |
| 6788 | } | |
| 6789 | else | |
| 6790 | {
| |
| 6791 | result2 = v24; | |
| 6792 | } | |
| 6793 | } | |
| 6794 | return result2; | |
| 6795 | } | |
| 6796 | result = __asm_rlwinm((int32_t)*(char *)(v2 + 173), 30, 31, 31); | |
| 6797 | if (result == 0) | |
| 6798 | {
| |
| 6799 | return 0; | |
| 6800 | } | |
| 6801 | v11 = v2; | |
| 6802 | v17 = *(int32_t *)(v11 + 28); | |
| 6803 | if (v17 == 0) | |
| 6804 | {
| |
| 6805 | //return sub_483F50(r3, r4, r5, r6, r7, r8); | |
| 6806 | } | |
| 6807 | v18 = *(int32_t *)(v17 + 8); | |
| 6808 | if (v18 == 0) | |
| 6809 | {
| |
| 6810 | v13 = v11; | |
| 6811 | if (*(int32_t *)(v17 + 8) != 0) | |
| 6812 | {
| |
| 6813 | v20 = *(int32_t *)(v13 + 140); | |
| 6814 | if (v20 == 0) | |
| 6815 | {
| |
| 6816 | v21 = *(int32_t *)(v13 + 28); | |
| 6817 | v7 = 0; | |
| 6818 | if (v21 != 0) | |
| 6819 | {
| |
| 6820 | v7 = *(int32_t *)(v21 + 8); | |
| 6821 | } | |
| 6822 | v15 = &v8; | |
| 6823 | sub_A8B814(v15); | |
| 6824 | v16 = &v9; | |
| 6825 | sub_A8B908(v15, v16, 982); | |
| 6826 | if (sub_1626844(*(int32_t *)0x1EC69C8, v15) == 0) | |
| 6827 | {
| |
| 6828 | ||
| 6829 | } | |
| 6830 | else | |
| 6831 | {
| |
| 6832 | sub_A8B978(v15); | |
| 6833 | v14 = sub_9F8E10(); | |
| 6834 | sub_9F8FF0(v14, v7, v16, 1, (int32_t)&v10, 0); | |
| 6835 | } | |
| 6836 | *(int32_t *)(v2 + 140) = 250; | |
| 6837 | result2 = 250; | |
| 6838 | } | |
| 6839 | else | |
| 6840 | {
| |
| 6841 | result2 = v20; | |
| 6842 | } | |
| 6843 | } | |
| 6844 | else | |
| 6845 | {
| |
| 6846 | result2 = 0; | |
| 6847 | } | |
| 6848 | } | |
| 6849 | else | |
| 6850 | {
| |
| 6851 | result3 = sub_9F8FD8(v18); | |
| 6852 | v12 = v2; | |
| 6853 | v19 = *(int32_t *)(v12 + 28); | |
| 6854 | if (result3 == 0 && v19 != 0) | |
| 6855 | {
| |
| 6856 | v13 = v12; | |
| 6857 | if (*(int32_t *)(v19 + 8) != 0) | |
| 6858 | {
| |
| 6859 | v20 = *(int32_t *)(v13 + 140); | |
| 6860 | if (v20 == 0) | |
| 6861 | {
| |
| 6862 | v21 = *(int32_t *)(v13 + 28); | |
| 6863 | v7 = 0; | |
| 6864 | if (v21 != 0) | |
| 6865 | {
| |
| 6866 | v7 = *(int32_t *)(v21 + 8); | |
| 6867 | } | |
| 6868 | v15 = &v8; | |
| 6869 | sub_A8B814(v15); | |
| 6870 | v16 = &v9; | |
| 6871 | sub_A8B908(v15, v16, 982); | |
| 6872 | if (sub_1626844(*(int32_t *)0x1ec69c8, v15) == 0) | |
| 6873 | {
| |
| 6874 | ||
| 6875 | } | |
| 6876 | else | |
| 6877 | {
| |
| 6878 | sub_A8B978(v15); | |
| 6879 | v14 = sub_9F8E10(); | |
| 6880 | sub_9F8FF0(v14, v7, v16, 1, (int32_t)&v10, 0); | |
| 6881 | } | |
| 6882 | *(int32_t *)(v2 + 140) = 250; | |
| 6883 | result2 = 250; | |
| 6884 | } | |
| 6885 | else | |
| 6886 | {
| |
| 6887 | result2 = v20; | |
| 6888 | } | |
| 6889 | } | |
| 6890 | else | |
| 6891 | {
| |
| 6892 | result2 = 0; | |
| 6893 | } | |
| 6894 | } | |
| 6895 | else | |
| 6896 | {
| |
| 6897 | result2 = result3; | |
| 6898 | } | |
| 6899 | } | |
| 6900 | return result2; | |
| 6901 | } |