Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp
- #include dof2
- #include sscanf2
- #include pawn.cmd
- static const spoiler[20][0] =
- {
- {1000}, {1001}, {1002}, {1003}, {1014}, {1015}, {1016}, {1023}, {1058}, {1060},
- {1049}, {1050}, {1138}, {1139}, {1146}, {1147}, {1158}, {1162}, {1163}, {1164}
- };
- static const nitro[3][0] =
- {
- {1008}, {1009}, {1010}
- };
- static const fbumper[23][0] =
- {
- {1117}, {1152}, {1153}, {1155}, {1157}, {1160}, {1165}, {1167}, {1169}, {1170}, {1171},
- {1172}, {1173}, {1174}, {1175}, {1179}, {1181}, {1182}, {1185}, {1188}, {1189}, {1192}, {1193}
- };
- static const rbumper[22][0] =
- {
- {1140}, {1141}, {1148}, {1149}, {1150}, {1151}, {1154}, {1156}, {1159}, {1161}, {1166},
- {1168}, {1176}, {1177}, {1178}, {1180}, {1183}, {1184}, {1186}, {1187}, {1190}, {1191}
- };
- static const exhaust[28][0] =
- {
- {1018}, {1019}, {1020}, {1021}, {1022}, {1028}, {1029}, {1037}, {1043}, {1044}, {1045}, {1046}, {1059}, {1064},
- {1065}, {1066}, {1089}, {1092}, {1104}, {1105}, {1113}, {1114}, {1126}, {1127}, {1129}, {1132}, {1135}, {1136}
- };
- static const bventr[2][0] =
- {
- {1142}, {1144}
- };
- static const bventl[2][0] =
- {
- {1143}, {1145}
- };
- static const bscoop[4][0] =
- {
- {1004}, {1005}, {1011}, {1012}
- };
- static const rscoop[17][0] =
- {
- {1006}, {1032}, {1033}, {1035}, {1038}, {1053}, {1054}, {1055},
- {1061}, {1067}, {1068}, {1088}, {1091}, {1103}, {1128}, {1130}, {1131}
- };
- static const lskirt[21][0] =
- {
- {1007}, {1026}, {1031}, {1036}, {1039}, {1042}, {1047},
- {1048}, {1056}, {1057}, {1069}, {1070}, {1090}, {1093},
- {1106}, {1108}, {1118}, {1119}, {1133}, {1122}, {1134}
- };
- static const rskirt[21][0] =
- {
- {1017}, {1027}, {1030}, {1040}, {1041}, {1051}, {1052},
- {1062}, {1063}, {1071}, {1072}, {1094}, {1095}, {1099},
- {1101}, {1102}, {1107}, {1120}, {1121}, {1124}, {1137}
- };
- static const hydraulics[1][0] =
- {
- {1087}
- };
- static const stereo[1][0] =
- {
- {1086}
- };
- static const rbbars[4][0] =
- {
- {1109}, {1110}, {1123}, {1125}
- };
- static const fbbars[2][0] =
- {
- {1115}, {1116}
- };
- static const wheels[17][0] =
- {
- {1025}, {1073}, {1074}, {1075}, {1076}, {1077}, {1078}, {1079},
- {1080}, {1081}, {1082}, {1083}, {1084}, {1085}, {1096}, {1097}, {1098}
- };
- static const lamps[2][0] =
- {
- {1013}, {1024}
- };
- enum E_VEHICLE_DATA
- {
- E_VEHICLE_COLOR[2],
- E_VEHICLE_MOD[17],
- E_VEHICLE_PAINTJOB
- };
- static vehicle[MAX_VEHICLES][E_VEHICLE_DATA];
- main(){}
- public OnGameModeExit()
- {
- DOF2::Exit();
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerPos(playerid, -2706.9719, 217.6189, 4.1797);
- SetPlayerFacingAngle(playerid, 90.0);
- GivePlayerMoney(playerid, 100000);
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- /*
- Ao visualizar um Paintjob em uma loja de modificação e não comprá-lo
- vai execultar a public OnVehiclePaintjob e retornar o id 255 na variável
- se caso não for comprado, somente visualizado!
- */
- for(new i; i < 17; i++)
- vehicle[vehicleid][E_VEHICLE_MOD][i] = 0;
- vehicle[vehicleid][E_VEHICLE_COLOR][0] = -1;
- vehicle[vehicleid][E_VEHICLE_COLOR][1] = -1;
- vehicle[vehicleid][E_VEHICLE_PAINTJOB] = 255;
- LoadMods(vehicleid);
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- vehicle[vehicleid][E_VEHICLE_MOD][(GetComponentSlot(componentid) - 1)] = componentid;
- SaveMods(vehicleid);
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- vehicle[vehicleid][E_VEHICLE_PAINTJOB] = paintjobid;
- SaveMods(vehicleid);
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- vehicle[vehicleid][E_VEHICLE_COLOR][0] = color1;
- vehicle[vehicleid][E_VEHICLE_COLOR][1] = color1;
- SaveMods(vehicleid);
- return 1;
- }
- modFile(vehicleid)
- {
- new file[32];
- format(file, sizeof(file), "mods/vehicle%i.ini", vehicleid);
- return file;
- }
- SaveMods(vehicleid)
- {
- if(!DOF2::FileExists(modFile(vehicleid)))
- DOF2::CreateFile(modFile(vehicleid));
- new componentSlot[7];
- for(new i; i < 17; i++)
- {
- format(componentSlot, sizeof(componentSlot), "Mod-%i", i+1);
- DOF2::SetInt(modFile(vehicleid), componentSlot, vehicle[vehicleid][E_VEHICLE_MOD][i], "Components");
- }
- DOF2::SetInt(modFile(vehicleid), "Color-1", vehicle[vehicleid][E_VEHICLE_COLOR][0], "Color");
- DOF2::SetInt(modFile(vehicleid), "Color-2", vehicle[vehicleid][E_VEHICLE_COLOR][1], "Color");
- DOF2::SetInt(modFile(vehicleid), "Paintjob", vehicle[vehicleid][E_VEHICLE_PAINTJOB], "Paintjob");
- DOF2::SaveFile();
- }
- LoadMods(vehicleid)
- {
- if(DOF2::FileExists(modFile(vehicleid)))
- {
- new componentSlot[7];
- for(new i; i < 17; i++)
- {
- format(componentSlot, sizeof(componentSlot), "Mod-%i", i+1);
- vehicle[vehicleid][E_VEHICLE_MOD][i] = DOF2::GetInt(modFile(vehicleid), componentSlot, "Components");
- }
- vehicle[vehicleid][E_VEHICLE_COLOR][0] = DOF2::GetInt(modFile(vehicleid), "Color-1", "Color");
- vehicle[vehicleid][E_VEHICLE_COLOR][1] = DOF2::GetInt(modFile(vehicleid), "Color-2", "Color");
- vehicle[vehicleid][E_VEHICLE_PAINTJOB] = DOF2::GetInt(modFile(vehicleid), "Paintjob", "Paintjob");
- RefreshMods(vehicleid);
- }
- }
- RefreshMods(vehicleid)
- {
- for(new i; i < 17; i++)
- if(vehicle[vehicleid][E_VEHICLE_MOD][i] != 0)
- AddVehicleComponent(vehicleid, vehicle[vehicleid][E_VEHICLE_MOD][i]);
- ChangeVehicleColor(vehicleid, vehicle[vehicleid][E_VEHICLE_COLOR][0], vehicle[vehicleid][E_VEHICLE_COLOR][1]);
- if(vehicle[vehicleid][E_VEHICLE_PAINTJOB] != 0) ChangeVehiclePaintjob(vehicleid, vehicle[vehicleid][E_VEHICLE_PAINTJOB]);
- }
- GetComponentSlot(componentid)
- {
- for(new i; i < 20; i++)
- if(componentid == spoiler[i][0])
- return 1;
- for(new i; i < 3; i++)
- if(componentid == nitro[i][0])
- return 2;
- for(new i; i < 23; i++)
- if(componentid == fbumper[i][0])
- return 3;
- for(new i; i < 22; i++)
- if(componentid == rbumper[i][0])
- return 4;
- for(new i; i < 28; i++)
- if(componentid == exhaust[i][0])
- return 5;
- for(new i; i < 2; i++)
- if(componentid == bventr[i][0])
- return 6;
- for(new i; i < 2; i++)
- if(componentid == bventl[i][0])
- return 7;
- for(new i; i < 4; i++)
- if(componentid == bscoop[i][0])
- return 8;
- for(new i; i < 17; i++)
- if(componentid == rscoop[i][0])
- return 9;
- for(new i; i < 21; i++)
- if(componentid == lskirt[i][0])
- return 10;
- for(new i; i < 21; i++)
- if(componentid == rskirt[i][0])
- return 11;
- for(new i; i < 1; i++)
- if(componentid == hydraulics[i][0])
- return 12;
- for(new i; i < 1; i++)
- if(componentid == stereo[i][0])
- return 13;
- for(new i; i < 4; i++)
- if(componentid == rbbars[i][0])
- return 14;
- for(new i; i < 2; i++)
- if(componentid == fbbars[i][0])
- return 15;
- for(new i; i < 17; i++)
- if(componentid == wheels[i][0])
- return 16;
- for(new i; i < 2; i++)
- if(componentid == lamps[i][0])
- return 17;
- return 0;
- }
- CMD:v(playerid, params[])
- {
- new modelid, color[2];
- if(sscanf(params, "iii", modelid, color[0], color[1]))
- return SendClientMessage(playerid, -1, "* /v (modelo) (cor-1) (cor-2)");
- if(!(400 <= modelid <= 611))
- return SendClientMessage(playerid, -1, "* Modelo inexistente.");
- new vehicleid, Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x, y, z);
- GetPlayerFacingAngle(playerid, a);
- vehicleid = CreateVehicle(modelid, x, y, z, a, color[0], color[1], -1);
- PutPlayerInVehicle(playerid, vehicleid, 0);
- return 1;
- }
Add Comment
Please, Sign In to add comment