SHOW:
|
|
- or go back to the newest paste.
| 1 | /*This filterscript helps to protect against bad vehicle moding crashing opcodes and player crashing.*/ | |
| 2 | ||
| 3 | #define FILTERSCRIPT | |
| 4 | ||
| 5 | #include <a_samp> | |
| 6 | ||
| 7 | public OnFilterScriptInit() | |
| 8 | {
| |
| 9 | printf("\n--------------------------------------");
| |
| 10 | - | printf(" [System] - Loaded Small protection (v2.0) against Exception 0xC0000005 at 0x7F120E by Donya");
|
| 10 | + | printf(" [System] - Loaded Full Vehicle Modification Protection (v2.0) against Exception 0xC0000005 at 0x7F120E by Donya");
|
| 11 | printf(" [System] - Note: This is now FULL protection");
| |
| 12 | printf("--------------------------------------\n");
| |
| 13 | return 1; | |
| 14 | } | |
| 15 | ||
| 16 | public OnFilterScriptExit() | |
| 17 | {
| |
| 18 | - | printf("[System] - Unloaded Small protection (v2.0) against Exception 0xC0000005 at 0x7F120E by Donya");
|
| 18 | + | printf("[System] - Unloaded Vehicle Modification Protection (v2.0) against Exception 0xC0000005 at 0x7F120E by Donya");
|
| 19 | return 1; | |
| 20 | } | |
| 21 | ||
| 22 | public OnVehicleMod(playerid, vehicleid, componentid) | |
| 23 | {
| |
| 24 | switch(componentid) | |
| 25 | {
| |
| 26 | case 1008..1010: if(IsPlayerInInvalidNosVehicle(playerid)) RemoveVehicleComponent(vehicleid, componentid); | |
| 27 | } | |
| 28 | if(!IsComponentidCompatible(GetVehicleModel(vehicleid), componentid)) RemoveVehicleComponent(vehicleid, componentid); | |
| 29 | return 1; | |
| 30 | } | |
| 31 | ||
| 32 | stock IsPlayerInInvalidNosVehicle(playerid) | |
| 33 | {
| |
| 34 | new vehicleid = GetPlayerVehicleID(playerid); | |
| 35 | #define MAX_INVALID_NOS_VEHICLES 52 | |
| 36 | new InvalidNosVehicles[MAX_INVALID_NOS_VEHICLES] = | |
| 37 | {
| |
| 38 | 581,523,462,521,463,522,461,448,468,586,417,425,469,487,512,520,563,593, | |
| 39 | 509,481,510,472,473,493,520,595,484,430,453,432,476,497,513,533,577, | |
| 40 | 452,446,447,454,590,569,537,538,570,449,519,460,488,511,519,548,592 | |
| 41 | }; | |
| 42 | if(IsPlayerInAnyVehicle(playerid)) | |
| 43 | {
| |
| 44 | for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++) | |
| 45 | {
| |
| 46 | if(GetVehicleModel(vehicleid) == InvalidNosVehicles[i]) return true; | |
| 47 | } | |
| 48 | } | |
| 49 | return false; | |
| 50 | } | |
| 51 | ||
| 52 | stock IsComponentidCompatible(modelid, componentid) | |
| 53 | {
| |
| 54 | if(componentid == 1025 || componentid == 1073 || componentid == 1074 || componentid == 1075 || componentid == 1076 || | |
| 55 | componentid == 1077 || componentid == 1078 || componentid == 1079 || componentid == 1080 || componentid == 1081 || | |
| 56 | componentid == 1082 || componentid == 1083 || componentid == 1084 || componentid == 1085 || componentid == 1096 || | |
| 57 | componentid == 1097 || componentid == 1098 || componentid == 1087 || componentid == 1086) | |
| 58 | return true; | |
| 59 | ||
| 60 | switch (modelid) | |
| 61 | {
| |
| 62 | case 400: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 63 | case 401: return (componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 114 || componentid == 1020 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 64 | case 402: return (componentid == 1009 || componentid == 1009 || componentid == 1010); | |
| 65 | case 404: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007); | |
| 66 | case 405: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1023 || componentid == 1000); | |
| 67 | case 409: return (componentid == 1009); | |
| 68 | case 410: return (componentid == 1019 || componentid == 1021 || componentid == 1020 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 69 | case 411: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 70 | case 412: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 71 | case 415: return (componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 72 | case 418: return (componentid == 1020 || componentid == 1021 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016); | |
| 73 | case 419: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 74 | case 420: return (componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1003); | |
| 75 | case 421: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1016 || componentid == 1000); | |
| 76 | case 422: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007); | |
| 77 | case 426: return (componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003); | |
| 78 | case 429: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 79 | case 436: return (componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 80 | case 438: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 81 | case 439: return (componentid == 1003 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1013); | |
| 82 | case 442: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 83 | case 445: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 84 | case 451: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 85 | case 458: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 86 | case 466: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 87 | case 467: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 88 | case 474: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 89 | case 475: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 90 | case 477: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007); | |
| 91 | case 478: return (componentid == 1005 || componentid == 1004 || componentid == 1012 || componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 92 | case 479: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 93 | case 480: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 94 | case 489: return (componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016 || componentid == 1000); | |
| 95 | case 491: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 96 | case 492: return (componentid == 1005 || componentid == 1004 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1016 || componentid == 1000); | |
| 97 | case 496: return (componentid == 1006 || componentid == 1017 || componentid == 1007 || componentid == 1011 || componentid == 1019 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1003 || componentid == 1002 || componentid == 1142 || componentid == 1143 || componentid == 1020); | |
| 98 | case 500: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 99 | case 506: return (componentid == 1009); | |
| 100 | case 507: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 101 | case 516: return (componentid == 1004 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1015 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007); | |
| 102 | case 517: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 103 | case 518: return (componentid == 1005 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 104 | case 526: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 105 | case 527: return (componentid == 1021 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1015 || componentid == 1017 || componentid == 1007); | |
| 106 | case 529: return (componentid == 1012 || componentid == 1011 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 107 | case 533: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 108 | case 534: return (componentid == 1126 || componentid == 1127 || componentid == 1179 || componentid == 1185 || componentid == 1100 || componentid == 1123 || componentid == 1125 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1180 || componentid == 1178 || componentid == 1101 || componentid == 1122 || componentid == 1124 || componentid == 1106); | |
| 109 | case 535: return (componentid == 1109 || componentid == 1110 || componentid == 1113 || componentid == 1114 || componentid == 1115 || componentid == 1116 || componentid == 1117 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1120 || componentid == 1118 || componentid == 1121 || componentid == 1119); | |
| 110 | case 536: return (componentid == 1104 || componentid == 1105 || componentid == 1182 || componentid == 1181 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1184 || componentid == 1183 || componentid == 1128 || componentid == 1103 || componentid == 1107 || componentid == 1108); | |
| 111 | case 540: return (componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007); | |
| 112 | case 541: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 113 | case 542: return (componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1015); | |
| 114 | case 545: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 115 | case 546: return (componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007); | |
| 116 | case 547: return (componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1016 || componentid == 1003 || componentid == 1000); | |
| 117 | case 549: return (componentid == 1012 || componentid == 1011 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 118 | case 550: return (componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003); | |
| 119 | case 551: return (componentid == 1005 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003); | |
| 120 | case 555: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 121 | case 558: return (componentid == 1092 || componentid == 1089 || componentid == 1166 || componentid == 1165 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1168 || componentid == 1167 || componentid == 1088 || componentid == 1091 || componentid == 1164 || componentid == 1163 || componentid == 1094 || componentid == 1090 || componentid == 1095 || componentid == 1093); | |
| 122 | case 559: return (componentid == 1065 || componentid == 1066 || componentid == 1160 || componentid == 1173 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1159 || componentid == 1161 || componentid == 1162 || componentid == 1158 || componentid == 1067 || componentid == 1068 || componentid == 1071 || componentid == 1069 || componentid == 1072 || componentid == 1070 || componentid == 1009); | |
| 123 | case 560: return (componentid == 1028 || componentid == 1029 || componentid == 1169 || componentid == 1170 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1141 || componentid == 1140 || componentid == 1032 || componentid == 1033 || componentid == 1138 || componentid == 1139 || componentid == 1027 || componentid == 1026 || componentid == 1030 || componentid == 1031); | |
| 124 | case 561: return (componentid == 1064 || componentid == 1059 || componentid == 1155 || componentid == 1157 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1154 || componentid == 1156 || componentid == 1055 || componentid == 1061 || componentid == 1058 || componentid == 1060 || componentid == 1062 || componentid == 1056 || componentid == 1063 || componentid == 1057); | |
| 125 | case 562: return (componentid == 1034 || componentid == 1037 || componentid == 1171 || componentid == 1172 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1149 || componentid == 1148 || componentid == 1038 || componentid == 1035 || componentid == 1147 || componentid == 1146 || componentid == 1040 || componentid == 1036 || componentid == 1041 || componentid == 1039); | |
| 126 | case 565: return (componentid == 1046 || componentid == 1045 || componentid == 1153 || componentid == 1152 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1150 || componentid == 1151 || componentid == 1054 || componentid == 1053 || componentid == 1049 || componentid == 1050 || componentid == 1051 || componentid == 1047 || componentid == 1052 || componentid == 1048); | |
| 127 | case 566: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 128 | case 567: return (componentid == 1129 || componentid == 1132 || componentid == 1189 || componentid == 1188 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1187 || componentid == 1186 || componentid == 1130 || componentid == 1131 || componentid == 1102 || componentid == 1133); | |
| 129 | case 575: return (componentid == 1044 || componentid == 1043 || componentid == 1174 || componentid == 1175 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1176 || componentid == 1177 || componentid == 1099 || componentid == 1042); | |
| 130 | case 576: return (componentid == 1136 || componentid == 1135 || componentid == 1191 || componentid == 1190 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1192 || componentid == 1193 || componentid == 1137 || componentid == 1134); | |
| 131 | case 579: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 132 | case 580: return (componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007); | |
| 133 | case 585: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007); | |
| 134 | case 587: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 135 | case 589: return (componentid == 1005 || componentid == 1004 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1024 || componentid == 1013 || componentid == 1006 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007); | |
| 136 | case 600: return (componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1022 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007); | |
| 137 | case 602: return (componentid == 1008 || componentid == 1009 || componentid == 1010); | |
| 138 | case 603: return (componentid == 1144 || componentid == 1145 || componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007); | |
| 139 | } | |
| 140 | return false; | |
| 141 | } |