Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* This dealerShip is an AVS edit by "teo.zew" aka "iNQ" Please do not erase the credits if i helped you. */
- #define FILTERSCRIPT
- #include <a_samp>
- /* SETARI */
- #undef MAX_PLAYERS //
- #define MAX_PLAYERS 100 //
- #define MAX_DVEHICLES 200 // Numar maxim de vehicule valabile la dealership
- #define MAX_DEALERSHIPS 50 // Numar maxim de dealereship-uri
- #define VEHICLE_FILE_PATH "Dealership/Vehicule/" // Calea unde se salveaza Vehiculele
- #define DEALERSHIP_FILE_PATH "Dealership/Dealership-uri/" // Calea unde se salveaza Dealership-urile
- #define MAX_PLAYER_VEHICLES 3 // Numarul maxim de vehicule pe care-l poate avea un player
- #define ALARM_TIME 10000 // Durata Alarmei = 10sec (1000ms = 1sec) (Functie neutilizata)
- #define DEFAULT_NUMBER_PLATE "VibePlay" // Inmatricularea Default (atunci cand este la dealership)
- //==========================================================
- #define COLOR_BLACK 0x000000FF
- #define COLOR_RED 0xEE0000FF
- #define COLOR_GREEN 0x00CC00FF
- #define COLOR_BLUE 0x0000FFFF
- #define COLOR_ORANGE 0xFF6600FF
- #define COLOR_YELLOW 0xFFFF00FF
- #define COLOR_LIGHTBLUE 0x00FFFFFF
- #define COLOR_PURPLE 0xC2A2DAFF
- #define COLOR_GREY 0xC0C0C0FF
- #define COLOR_WHITE 0xFFFFFFFF
- #define VEHICLE_DEALERSHIP 1
- #define VEHICLE_PLAYER 2
- #define CMD:%1(%2) \
- forward cmd_%1(%2); \
- public cmd_%1(%2)
- forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
- #define ShowErrorDialog(%1,%2) ShowPlayerDialog(%1, DIALOG_ERROR, DIALOG_STYLE_MSGBOX, "ERROR", %2, "OK", "")
- enum
- {
- // Au fost schimbate din default deoarece se incurca cu dialog-urile din gamemode. Daca apar buguri schimbati-le.
- DIALOG_NONE=501, // DIALOG ID - Default era 12346
- DIALOG_ERROR=502, // DIALOG ID - Default era 12345
- DIALOG_VEHICLE_PARK=500, // DIALOG ID - Default era 500
- DIALOG_VEHICLE_BUY,
- DIALOG_VEHICLE_PLATE,
- DIALOG_EDITVEHICLE
- };
- new maintimer;
- new savetimer;
- new SaveVehicleIndex;
- new TrackCar[MAX_PLAYERS];
- new DialogReturn[MAX_PLAYERS];
- new VehicleSecurity[MAX_VEHICLES];
- new VehicleCreated[MAX_DVEHICLES];
- new VehicleID[MAX_DVEHICLES];
- new VehicleModel[MAX_DVEHICLES];
- new Float:VehiclePos[MAX_DVEHICLES][4];
- new VehicleColor[MAX_DVEHICLES][2];
- new VehicleInterior[MAX_DVEHICLES];
- new VehicleWorld[MAX_DVEHICLES];
- new VehicleOwner[MAX_DVEHICLES][MAX_PLAYER_NAME];
- new VehicleNumberPlate[MAX_DVEHICLES][16];
- new VehicleValue[MAX_DVEHICLES];
- new VehicleLock[MAX_DVEHICLES];
- new VehicleAlarm[MAX_DVEHICLES];
- new VehicleTrunk[MAX_DVEHICLES][5][2];
- new VehicleMods[MAX_DVEHICLES][14];
- new VehiclePaintjob[MAX_DVEHICLES] = {255, ...};
- new Text3D:VehicleLabel[MAX_DVEHICLES];
- new DealershipCreated[MAX_DEALERSHIPS];
- new Float:DealershipPos[MAX_DEALERSHIPS][3];
- new Text3D:DealershipLabel[MAX_DEALERSHIPS];
- new VehicleNames[][] = {
- "Landstalker","Bravura","Buffalo","Linerunner","Perennial","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
- "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
- "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
- "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
- "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
- "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
- "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","Rancher","Virgo","Greenwood",
- "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
- "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
- "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
- "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
- "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
- "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
- "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
- "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
- "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
- "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
- };
- forward MainTimer();
- forward SaveTimer();
- forward StopAlarm(vehicleid);
- forward NRGPersonal(vehicleid);
- stock PlayerName(playerid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- return pName;
- }
- stock IsPlayerSpawned(playerid)
- {
- switch(GetPlayerState(playerid))
- {
- case 1,2,3: return 1;
- }
- return 0;
- }
- stock IsMeleeWeapon(weaponid)
- {
- switch(weaponid)
- {
- case 2 .. 15, 40, 44 .. 46: return 1;
- }
- return 0;
- }
- stock RemovePlayerWeapon(playerid, weaponid)
- {
- new WeaponData[12][2];
- for(new i=1; i < sizeof(WeaponData); i++)
- {
- GetPlayerWeaponData(playerid, i, WeaponData[i][0], WeaponData[i][1]);
- }
- ResetPlayerWeapons(playerid);
- for(new i=1; i < sizeof(WeaponData); i++)
- {
- if(WeaponData[i][0] != weaponid)
- {
- GivePlayerWeapon(playerid, WeaponData[i][0], WeaponData[i][1]);
- }
- }
- }
- stock IsBicycle(vehicleid)
- {
- switch(GetVehicleModel(vehicleid))
- {
- case 481,509,510: return 1;
- }
- return 0;
- }
- new spoiler[20][0] = {
- {1000},
- {1001},
- {1002},
- {1003},
- {1014},
- {1015},
- {1016},
- {1023},
- {1058},
- {1060},
- {1049},
- {1050},
- {1138},
- {1139},
- {1146},
- {1147},
- {1158},
- {1162},
- {1163},
- {1164}
- };
- new nitro[3][0] = {
- {1008},
- {1009},
- {1010}
- };
- new 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}
- };
- new 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}
- };
- new 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}
- };
- new bventr[2][0] = {
- {1042},
- {1044}
- };
- new bventl[2][0] = {
- {1043},
- {1045}
- };
- new bscoop[4][0] = {
- {1004},
- {1005},
- {1011},
- {1012}
- };
- new rscoop[13][0] = {
- {1006},
- {1032},
- {1033},
- {1035},
- {1038},
- {1053},
- {1054},
- {1055},
- {1061},
- {1067},
- {1068},
- {1088},
- {1091}
- };
- new lskirt[21][0] = {
- {1007},
- {1026},
- {1031},
- {1036},
- {1039},
- {1042},
- {1047},
- {1048},
- {1056},
- {1057},
- {1069},
- {1070},
- {1090},
- {1093},
- {1106},
- {1108},
- {1118},
- {1119},
- {1133},
- {1122},
- {1134}
- };
- new rskirt[21][0] = {
- {1017},
- {1027},
- {1030},
- {1040},
- {1041},
- {1051},
- {1052},
- {1062},
- {1063},
- {1071},
- {1072},
- {1094},
- {1095},
- {1099},
- {1101},
- {1102},
- {1107},
- {1120},
- {1121},
- {1124},
- {1137}
- };
- new hydraulics[1][0] = {
- {1087}
- };
- new base[1][0] = {
- {1086}
- };
- new rbbars[2][0] = {
- {1109},
- {1110}
- };
- new fbbars[2][0] = {
- {1115},
- {1116}
- };
- new wheels[17][0] = {
- {1025},
- {1073},
- {1074},
- {1075},
- {1076},
- {1077},
- {1078},
- {1079},
- {1080},
- {1081},
- {1082},
- {1083},
- {1084},
- {1085},
- {1096},
- {1097},
- {1098}
- };
- new light[2][0] = {
- {1013},
- {1024}
- };
- InitComponents(componentid)
- {
- new i;
- for(i=0; i<20; i++)
- {
- if(spoiler[i][0]==componentid) { return 1; }
- }
- for(i=0; i<3; i++)
- {
- if(nitro[i][0]==componentid) { return 2; }
- }
- for(i=0; i<23; i++)
- {
- if(fbumper[i][0]==componentid) { return 3; }
- }
- for(i=0; i<22; i++)
- {
- if(rbumper[i][0]==componentid) { return 4; }
- }
- for(i=0; i<28; i++)
- {
- if(exhaust[i][0]==componentid) { return 5; }
- }
- for(i=0; i<2; i++)
- {
- if(bventr[i][0]==componentid) { return 6; }
- }
- for(i=0; i<2; i++)
- {
- if(bventl[i][0]==componentid) { return 7; }
- }
- for(i=0; i<4; i++)
- {
- if(bscoop[i][0]==componentid) { return 8; }
- }
- for(i=0; i<13; i++)
- {
- if(rscoop[i][0]==componentid) { return 9; }
- }
- for(i=0; i<21; i++)
- {
- if(lskirt[i][0]==componentid) { return 10; }
- }
- for(i=0; i<21; i++)
- {
- if(rskirt[i][0]==componentid) { return 11; }
- }
- if(hydraulics[0][0]==componentid) { return 12; }
- if(base[0][0]==componentid) { return 13; }
- for(i=0; i<2; i++)
- {
- if(rbbars[i][0]==componentid) { return 14; }
- }
- for(i=0; i<2; i++)
- {
- if(fbbars[i][0]==componentid) { return 15; }
- }
- for(i=0; i<17; i++)
- {
- if(wheels[i][0]==componentid) { return 16; }
- }
- for(i=0; i<2; i++)
- {
- if(light[i][0]==componentid) { return 17; }
- }
- return 0;
- }
- stock PlayerToPlayer(playerid, targetid, Float:dist)
- {
- new Float:pos[3];
- GetPlayerPos(targetid, pos[0], pos[1], pos[2]);
- return IsPlayerInRangeOfPoint(playerid, dist, pos[0], pos[1], pos[2]);
- }
- stock PlayerToVehicle(playerid, vehicleid, Float:dist)
- {
- new Float:pos[3];
- GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
- return IsPlayerInRangeOfPoint(playerid, dist, pos[0], pos[1], pos[2]);
- }
- stock GetClosestVehicle(playerid)
- {
- new Float:x, Float:y, Float:z;
- new Float:dist, Float:closedist=9999, closeveh;
- for(new i=1; i < MAX_VEHICLES; i++)
- {
- if(GetVehiclePos(i, x, y, z))
- {
- dist = GetPlayerDistanceFromPoint(playerid, x, y, z);
- if(dist < closedist)
- {
- closedist = dist;
- closeveh = i;
- }
- }
- }
- return closeveh;
- }
- stock ToggleEngine(vehicleid, toggle)
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(vehicleid, toggle, lights, alarm, doors, bonnet, boot, objective);
- }
- stock ToggleAlarm(vehicleid, toggle)
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(vehicleid, engine, lights, toggle, doors, bonnet, boot, objective);
- }
- stock ToggleDoors(vehicleid, toggle)
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(vehicleid, engine, lights, alarm, toggle, bonnet, boot, objective);
- }
- stock ToggleBoot(vehicleid, toggle)
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, toggle, objective);
- }
- stock StripNL(str[])
- {
- new
- i = strlen(str);
- while (i-- && str[i] <= ' ') str[i] = '\0';
- }
- stock IsNumeric(const string[])
- {
- for(new i=0; string[i]; i++)
- {
- if(string[i] < '0' || string[i] > '9') return 0;
- }
- return 1;
- }
- stock GetVehicleModelIDFromName(const vname[])
- {
- for(new i=0; i < sizeof(VehicleNames); i++)
- {
- if(strfind(VehicleNames[i], vname, true) != -1) return i + 400;
- }
- return -1;
- }
- stock GetPlayer2DZone(playerid)
- {
- new zone[32] = "San Andreas";
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- for(new i = 0; i < sizeof(SanAndreasZones); i++)
- {
- if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3]
- && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4])
- {
- strmid(zone, SanAndreasZones[i][Zone_Name], 0, 28);
- return zone;
- }
- }
- return zone;
- }
- stock GetPlayer3DZone(playerid)
- {
- new zone[32] = "San Andreas";
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- for(new i = 0; i < sizeof(SanAndreasZones); i++)
- {
- if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3]
- && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4]
- && z >= SanAndreasZones[i][Zone_Area][2] && z <= SanAndreasZones[i][Zone_Area][5])
- {
- strmid(zone, SanAndreasZones[i][Zone_Name], 0, 28);
- return zone;
- }
- }
- return zone;
- }
- stock GetPlayerSpeed(playerid, bool:kmh = true)
- {
- new
- Float:xx,
- Float:yy,
- Float:zz,
- Float:pSpeed;
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehicleVelocity(GetPlayerVehicleID(playerid),xx,yy,zz);
- }
- else
- {
- GetPlayerVelocity(playerid,xx,yy,zz);
- }
- pSpeed = floatsqroot((xx * xx) + (yy * yy) + (zz * zz));
- return kmh ? floatround((pSpeed * 165.12)) : floatround((pSpeed * 103.9));
- }
- IsAdmin(playerid, level)
- {
- if(IsPlayerAdmin(playerid)) return 1;
- if(CallRemoteFunction("GetPlayerAVSAdmin", "d", playerid) >= level) return 1;
- return 0;
- }
- LoadVehicles()
- {
- new string[64];
- new File:handle, count;
- new filename[64], line[256], s, key[64];
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- format(filename, sizeof(filename), VEHICLE_FILE_PATH "v%d.ini", i);
- if(!fexist(filename)) continue;
- handle = fopen(filename, io_read);
- while(fread(handle, line))
- {
- StripNL(line);
- s = strfind(line, "=");
- if(!line[0] || s < 1) continue;
- strmid(key, line, 0, s++);
- if(strcmp(key, "Created") == 0) VehicleCreated[i] = strval(line[s]);
- else if(strcmp(key, "Model") == 0) VehicleModel[i] = strval(line[s]);
- else if(strcmp(key, "Pos") == 0) sscanf(line[s], "p,ffff", VehiclePos[i][0], VehiclePos[i][1],
- VehiclePos[i][2], VehiclePos[i][3]);
- else if(strcmp(key, "Colors") == 0) sscanf(line[s], "p,dd", VehicleColor[i][0], VehicleColor[i][1]);
- else if(strcmp(key, "Interior") == 0) VehicleInterior[i] = strval(line[s]);
- else if(strcmp(key, "VirtualWorld") == 0) VehicleWorld[i] = strval(line[s]);
- else if(strcmp(key, "Owner") == 0) strmid(VehicleOwner[i], line, s, sizeof(line));
- else if(strcmp(key, "NumberPlate") == 0) strmid(VehicleNumberPlate[i], line, s, sizeof(line));
- else if(strcmp(key, "Value") == 0) VehicleValue[i] = strval(line[s]);
- else if(strcmp(key, "Lock") == 0) VehicleLock[i] = strval(line[s]);
- else if(strcmp(key, "Alarm") == 0) VehicleAlarm[i] = strval(line[s]);
- else if(strcmp(key, "Paintjob") == 0) VehiclePaintjob[i] = strval(line[s]);
- else
- {
- for(new t=0; t < sizeof(VehicleTrunk[]); t++)
- {
- format(string, sizeof(string), "Trunk%d", t+1);
- if(strcmp(key, string) == 0) sscanf(line[s], "p,dd", VehicleTrunk[i][t][0], VehicleTrunk[i][t][1]);
- }
- for(new m=0; m < sizeof(VehicleMods[]); m++)
- {
- format(string, sizeof(string), "Mod%d", m);
- if(strcmp(key, string) == 0) VehicleMods[i][m] = strval(line[s]);
- }
- }
- }
- fclose(handle);
- if(VehicleCreated[i]) count++;
- }
- printf(" Loaded %d vehicles", count);
- }
- SaveVehicle(vehicleid)
- {
- new filename[64], line[256];
- format(filename, sizeof(filename), VEHICLE_FILE_PATH "v%d.ini", vehicleid);
- new File:handle = fopen(filename, io_write);
- format(line, sizeof(line), "Created=%d\r\n", VehicleCreated[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Model=%d\r\n", VehicleModel[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Pos=%.3f,%.3f,%.3f,%.3f\r\n", VehiclePos[vehicleid][0], VehiclePos[vehicleid][1],
- VehiclePos[vehicleid][2], VehiclePos[vehicleid][3]);
- fwrite(handle, line);
- format(line, sizeof(line), "Colors=%d,%d\r\n", VehicleColor[vehicleid][0], VehicleColor[vehicleid][1]); fwrite(handle, line);
- format(line, sizeof(line), "Interior=%d\r\n", VehicleInterior[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "VirtualWorld=%d\r\n", VehicleWorld[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Owner=%s\r\n", VehicleOwner[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "NumberPlate=%s\r\n", VehicleNumberPlate[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Value=%d\r\n", VehicleValue[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Lock=%d\r\n", VehicleLock[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Alarm=%d\r\n", VehicleAlarm[vehicleid]); fwrite(handle, line);
- format(line, sizeof(line), "Paintjob=%d\r\n", VehiclePaintjob[vehicleid]); fwrite(handle, line);
- for(new t=0; t < sizeof(VehicleTrunk[]); t++)
- {
- format(line, sizeof(line), "Trunk%d=%d,%d\r\n", t+1, VehicleTrunk[vehicleid][t][0], VehicleTrunk[vehicleid][t][1]);
- fwrite(handle, line);
- }
- for(new m=0; m < sizeof(VehicleMods[]); m++)
- {
- format(line, sizeof(line), "Mod%d=%d\r\n", m, VehicleMods[vehicleid][m]);
- fwrite(handle, line);
- }
- fclose(handle);
- }
- UpdateVehicle(vehicleid, removeold)
- {
- if(VehicleCreated[vehicleid])
- {
- if(removeold)
- {
- new Float:health;
- GetVehicleHealth(VehicleID[vehicleid], health);
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(VehicleID[vehicleid], engine, lights, alarm, doors, bonnet, boot, objective);
- DestroyVehicle(VehicleID[vehicleid]);
- VehicleID[vehicleid] = CreateVehicle(VehicleModel[vehicleid], VehiclePos[vehicleid][0], VehiclePos[vehicleid][1],
- VehiclePos[vehicleid][2], VehiclePos[vehicleid][3], VehicleColor[vehicleid][0], VehicleColor[vehicleid][1], 3600);
- SetVehicleHealth(VehicleID[vehicleid], health);
- SetVehicleParamsEx(VehicleID[vehicleid], engine, lights, alarm, doors, bonnet, boot, objective);
- }
- else
- {
- VehicleID[vehicleid] = CreateVehicle(VehicleModel[vehicleid], VehiclePos[vehicleid][0], VehiclePos[vehicleid][1],
- VehiclePos[vehicleid][2], VehiclePos[vehicleid][3], VehicleColor[vehicleid][0], VehicleColor[vehicleid][1], 3600);
- }
- LinkVehicleToInterior(VehicleID[vehicleid], VehicleInterior[vehicleid]);
- SetVehicleVirtualWorld(VehicleID[vehicleid], VehicleWorld[vehicleid]);
- SetVehicleNumberPlate(VehicleID[vehicleid], VehicleNumberPlate[vehicleid]);
- for(new i=0; i < sizeof(VehicleMods[]); i++)
- {
- AddVehicleComponent(VehicleID[vehicleid], VehicleMods[vehicleid][i]);
- }
- ChangeVehiclePaintjob(VehicleID[vehicleid], VehiclePaintjob[vehicleid]);
- if(VehicleLock[vehicleid]) ToggleDoors(VehicleID[vehicleid], VEHICLE_PARAMS_ON);
- if(VehicleAlarm[vehicleid]) VehicleSecurity[VehicleID[vehicleid]] = 1;
- UpdateVehicleLabel(vehicleid, removeold);
- }
- }
- UpdateVehicleLabel(vehicleid, removeold)
- {
- if(VehicleCreated[vehicleid] == VEHICLE_DEALERSHIP)
- {
- if(removeold)
- {
- Delete3DTextLabel(VehicleLabel[vehicleid]);
- }
- new labeltext[128];
- format(labeltext, sizeof(labeltext), "For SALE !\nModel: %s\nPrice: $%s", VehicleNames[VehicleModel[vehicleid]-400], FormatMoney(VehicleValue[vehicleid]));
- VehicleLabel[vehicleid] = Create3DTextLabel(labeltext,0xFFFFFFFF, 0, 0, 0, 10.0, 0);
- Attach3DTextLabelToVehicle(VehicleLabel[vehicleid], VehicleID[vehicleid], 0, 0, 0);
- }
- }
- IsValidVehicle(vehicleid)
- {
- if(vehicleid < 1 || vehicleid >= MAX_DVEHICLES) return 0;
- if(VehicleCreated[vehicleid]) return 1;
- return 0;
- }
- GetFreeVehicleID()
- {
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(!VehicleCreated[i]) return i;
- }
- return 0;
- }
- GetVehicleID(vehicleid)
- {
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(VehicleCreated[i] && VehicleID[i] == vehicleid) return i;
- }
- return 0;
- }
- GetPlayerVehicles(playerid)
- {
- new playername[24];
- GetPlayerName(playerid, playername, sizeof(playername));
- new count;
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(VehicleCreated[i] == VEHICLE_PLAYER && strcmp(VehicleOwner[i], playername) == 0)
- {
- count++;
- }
- }
- return count;
- }
- GetPlayerVehicleAccess(playerid, vehicleid)
- {
- if(IsValidVehicle(vehicleid))
- {
- if(VehicleCreated[vehicleid] == VEHICLE_DEALERSHIP)
- {
- if(IsAdmin(playerid, 1))
- {
- return 1;
- }
- }
- else if(VehicleCreated[vehicleid] == VEHICLE_PLAYER)
- {
- if(strcmp(VehicleOwner[vehicleid], PlayerName(playerid)) == 0)
- {
- return 2;
- }
- else if(GetPVarInt(playerid, "CarKeys") == vehicleid)
- {
- return 1;
- }
- }
- }
- else
- {
- return 1;
- }
- return 0;
- }
- LoadDealerships()
- {
- new File:handle, count;
- new filename[64], line[256], s, key[64];
- for(new i=1; i < MAX_DEALERSHIPS; i++)
- {
- format(filename, sizeof(filename), DEALERSHIP_FILE_PATH "d%d.ini", i);
- if(!fexist(filename)) continue;
- handle = fopen(filename, io_read);
- while(fread(handle, line))
- {
- StripNL(line);
- s = strfind(line, "=");
- if(!line[0] || s < 1) continue;
- strmid(key, line, 0, s++);
- if(strcmp(key, "Created") == 0) DealershipCreated[i] = strval(line[s]);
- else if(strcmp(key, "Pos") == 0) sscanf(line[s], "p,fff", DealershipPos[i][0],
- DealershipPos[i][1], DealershipPos[i][2]);
- }
- fclose(handle);
- if(DealershipCreated[i]) count++;
- }
- printf(" Loaded %d dealerships", count);
- }
- SaveDealership(dealerid)
- {
- new filename[64], line[256];
- format(filename, sizeof(filename), DEALERSHIP_FILE_PATH "d%d.ini", dealerid);
- new File:handle = fopen(filename, io_write);
- format(line, sizeof(line), "Created=%d\r\n", DealershipCreated[dealerid]); fwrite(handle, line);
- format(line, sizeof(line), "Pos=%.3f,%.3f,%.3f\r\n", DealershipPos[dealerid][0],
- DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
- fwrite(handle, line);
- fclose(handle);
- }
- UpdateDealership(dealerid, removeold)
- {
- if(DealershipCreated[dealerid])
- {
- if(removeold)
- {
- Delete3DTextLabel(DealershipLabel[dealerid]);
- }
- new labeltext[32];
- format(labeltext, sizeof(labeltext), "");
- DealershipLabel[dealerid] = Create3DTextLabel(labeltext, 0xBB7700DD, DealershipPos[dealerid][0],
- DealershipPos[dealerid][1], DealershipPos[dealerid][2]+0.5, 20.0, 0);
- }
- }
- IsValidDealership(dealerid)
- {
- if(dealerid < 1 || dealerid >= MAX_DEALERSHIPS) return 0;
- if(DealershipCreated[dealerid]) return 1;
- return 0;
- }
- public MainTimer()
- {
- new Float:x, Float:y, Float:z;
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(TrackCar[i])
- {
- GetVehiclePos(TrackCar[i], x, y, z);
- SetPlayerCheckpoint(i, x, y, z, 3);
- }
- }
- }
- }
- public SaveTimer()
- {
- SaveVehicleIndex++;
- if(SaveVehicleIndex >= MAX_DVEHICLES) SaveVehicleIndex = 1;
- if(IsValidVehicle(SaveVehicleIndex)) SaveVehicle(SaveVehicleIndex);
- }
- public StopAlarm(vehicleid)
- {
- ToggleAlarm(vehicleid, VEHICLE_PARAMS_OFF);
- }
- public OnFilterScriptInit()
- {
- Create3DTextLabel ("{FFFFFF}Tasteazã\n{c1c1c1}/vsell\n", 0xFFFFFFFF, 339.1168,-1526.9904,33.3719, 20, 0); // /vsell
- AddStaticPickup(19130, 23, 339.1168,-1526.9904,33.3719); // /vsell
- LoadVehicles();
- LoadDealerships();
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- OnPlayerConnect(i);
- }
- }
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- UpdateVehicle(i, 0);
- }
- for(new i=1; i < MAX_DEALERSHIPS; i++)
- {
- UpdateDealership(i, 0);
- }
- maintimer = SetTimer("MainTimer", 1000, true);
- savetimer = SetTimer("SaveTimer", 2222, true);
- return 1;
- }
- public OnFilterScriptExit()
- {
- KillTimer(maintimer);
- KillTimer(savetimer);
- for(new i=0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- OnPlayerDisconnect(i, 1);
- }
- }
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(VehicleCreated[i])
- {
- DestroyVehicle(VehicleID[i]);
- if(VehicleCreated[i] == VEHICLE_DEALERSHIP)
- {
- Delete3DTextLabel(VehicleLabel[i]);
- }
- }
- }
- for(new i=1; i < MAX_DEALERSHIPS; i++)
- {
- if(DealershipCreated[i])
- {
- Delete3DTextLabel(DealershipLabel[i]);
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
- {
- if(IsPlayerConnected(playerid))
- {
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- tempposx = (oldposx -x);
- tempposy = (oldposy -y);
- tempposz = (oldposz -z);
- if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- return 1;
- }
- }
- return 0;
- }
- public NRGPersonal(vehicleid)
- {
- if(GetVehicleModel(vehicleid) == 522) { return 1; }
- return 0;
- }
- public OnVehicleSpawn(vehicleid)
- {
- VehicleSecurity[vehicleid] = 0;
- new id = GetVehicleID(vehicleid);
- if(IsValidVehicle(id))
- {
- if(VehicleColor[id][0] >= 0 && VehicleColor[id][1] >= 0)
- ChangeVehicleColor(vehicleid, VehicleColor[id][0], VehicleColor[id][1]);
- LinkVehicleToInterior(vehicleid, VehicleInterior[id]);
- SetVehicleVirtualWorld(vehicleid, VehicleWorld[id]);
- for(new i=0; i < sizeof(VehicleMods[]); i++)
- {
- AddVehicleComponent(vehicleid, VehicleMods[id][i]);
- }
- ChangeVehiclePaintjob(vehicleid, VehiclePaintjob[id]);
- if(VehicleLock[id]) ToggleDoors(vehicleid, VEHICLE_PARAMS_ON);
- if(VehicleAlarm[id]) VehicleSecurity[vehicleid] = 1;
- }
- return 1;
- }
- CMD:vrtunning(playerid, params[]) // Comanda care scoate tunning-ul.
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new id = GetVehicleID(vehicleid);
- if(GetPlayerVehicleAccess(playerid, id) < 2)
- return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* This is not your personal vehicle.");
- for(new i=0; i < sizeof(VehicleMods[]); i++)
- {
- RemoveVehicleComponent(VehicleID[id], GetVehicleComponentInSlot(VehicleID[id], i));
- VehicleMods[id][i] = 0;
- }
- VehiclePaintjob[id] = 255;
- ChangeVehiclePaintjob(VehicleID[id], 255);
- SaveVehicle(id);
- SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}* You have removed all your vehicle mods.");
- }
- return 1;
- }
- CMD:vcolor(playerid, params[]) // Comanda cu ajutorul careia va puteti colora vehiculul || Credits: Armyw0w
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new id = GetVehicleID(vehicleid);
- if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* This is not your personal vehicle.");
- new color1, color2;
- if ( sscanf(params, "dd", color1, color2) ) return SendClientMessage ( playerid, -1, "{FF6699}USAGE:{FFFFFF} /vcolor [culoarea 1] [culoarea 2]" );
- VehicleColor[id][0] = color1;
- VehicleColor[id][1] = color2;
- SaveVehicle(id);
- ChangeVehicleColor(VehicleID[id], color1, color2);
- if(GetPlayerMoney(playerid) <= 0) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "{FFFFFF}* You don't have enough money for a vehicle respray.");
- GivePlayerMoney(playerid, -250);
- GameTextForPlayer(playerid, "~g~Vehicle respray bill -$250", 5000, 1);
- }
- return 1;
- }
- CMD:vsell(playerid, params[]) // Comanda cu ajutorul careia va puteti vinde vehiculul
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new id = GetVehicleID(vehicleid);
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* This is not your personal vehicle.");
- if(!PlayerToPoint(3.0,playerid,339.1168,-1526.9904,33.3719)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "{FFFFFF}* You are not at dealership.");
- new msg[128];
- VehicleCreated[id] = 0;
- new money = VehicleValue[id]/2;
- GivePlayerMoney(playerid, money);
- format(msg, sizeof(msg), "{FFFFFF}* You have sold your vehicle for {66FF66}$%s.", FormatMoney(money));
- SendClientMessage(playerid, COLOR_WHITE, msg);
- RemovePlayerFromVehicle(playerid);
- DestroyVehicle(VehicleID[id]);
- SaveVehicle(id);
- }
- return 1;
- }
- CMD:vpark(playerid, params[]) // Comanda cu ajutorul careia va puteti parca vehiculul.
- {
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* You are not in your personal vehicle.");
- new i = GetVehicleID( GetPlayerVehicleID( playerid ));
- if( !VehicleCreated[ i ] ) return SendClientMessage( playerid, -1, "{FFFFFF}* This is not your personal vehicle." );
- GetVehiclePos(VehicleID[i], VehiclePos[i][0], VehiclePos[i][1], VehiclePos[i][2]);
- GetVehicleZAngle(VehicleID[i], VehiclePos[i][3]);
- VehicleInterior[i] = GetPlayerInterior(playerid);
- VehicleWorld[i] = GetPlayerVirtualWorld(playerid);
- UpdateVehicle(i, 1);
- PutPlayerInVehicle(playerid, VehicleID[i], 0);
- SaveVehicle(i);
- SendClientMessage( playerid, -1, "{FFFFFF}* You have parked your vehicle here." );
- return 1;
- }
- /*CMD:mycars(playerid, params[]) // Comanda cu ajutorul careia va puteti vedea vehiculele.
- {
- new playername[24];
- GetPlayerName(playerid, playername, sizeof(playername));
- new info[256];
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(VehicleCreated[i] == VEHICLE_PLAYER && strcmp(VehicleOwner[i], playername) == 0)
- {
- SendClientMessage(playerid, 0xCCD802AA, " ");
- SendClientMessage(playerid, 0xCCD802AA, "{1589FF}VibePlay:{FFFFFF} Your Personal Vehicles");
- format(info, sizeof(info), "%sID: %d Model: %s \n", info, i, VehicleNames[VehicleModel[i]-400]);
- SendClientMessage(playerid, COLOR_WHITE, info);
- }
- }
- return 1;
- }*/
- CMD:vlock(playerid, params[]) // Comanda care incuie/descuie vehiculul.
- {
- new vehicleid;
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- vehicleid = GetPlayerVehicleID(playerid);
- }
- else
- {
- vehicleid = GetClosestVehicle(playerid);
- if(!PlayerToVehicle(playerid, vehicleid, 5.0)) vehicleid = 0;
- }
- if(!vehicleid) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Your personal vehicle isn't around.");
- new id = GetVehicleID(vehicleid);
- if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* This is not your personal vehicle.");
- if(GetPlayerVehicleAccess(playerid, id) < 2)
- return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* This is not your personal vehicle.");
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- if(doors == 1)
- {
- doors = 0;
- VehicleLock[id] = 0;
- GameTextForPlayer(playerid, "~g~UNLOCKED", 3000, 6);
- }
- else
- {
- doors = 1;
- VehicleLock[id] = 1;
- GameTextForPlayer(playerid, "~r~LOCKED", 3000, 6);
- }
- SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
- SaveVehicle(id);
- return 1;
- }
- CMD:addv(playerid, params[]) // Comanda care adauga un vehicul la dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Comanda nu poate fi folosita acum.");
- new model[32], modelid, dealerid, color1, color2, price;
- if(sscanf(params, "dsddd", dealerid, model, color1, color2, price))
- return SendClientMessage(playerid, COLOR_GREY, "{FF6699}USAGE:{FFFFFF} /addv [dealerid] [model] [color1] [color2] [price]");
- if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Id-ul dealership-ului este invalid.");
- if(IsNumeric(model)) modelid = strval(model);
- else modelid = GetVehicleModelIDFromName(model);
- if(modelid < 400 || modelid > 611) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Id-ul vehiculului este invalid.");
- if(color1 < 0 || color2 < 0) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Culoare invalida.");
- if(price < 0) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Pret invalid.");
- new Float:X, Float:Y, Float:Z, Float:angle;
- GetPlayerPos(playerid, X, Y, Z);
- GetPlayerFacingAngle(playerid, angle);
- X += floatmul(floatsin(-angle, degrees), 4.0);
- Y += floatmul(floatcos(-angle, degrees), 4.0);
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(!VehicleCreated[i])
- {
- new msg[128];
- VehicleCreated[i] = VEHICLE_DEALERSHIP;
- VehicleModel[i] = modelid;
- VehiclePos[i][0] = X;
- VehiclePos[i][1] = Y;
- VehiclePos[i][2] = Z;
- VehiclePos[i][3] = angle+90.0;
- VehicleColor[i][0] = color1;
- VehicleColor[i][1] = color2;
- VehicleInterior[i] = GetPlayerInterior(playerid);
- VehicleWorld[i] = GetPlayerVirtualWorld(playerid);
- VehicleValue[i] = price;
- valstr(VehicleOwner[i], dealerid);
- VehicleNumberPlate[i] = DEFAULT_NUMBER_PLATE;
- for(new d=0; d < sizeof(VehicleTrunk[]); d++)
- {
- VehicleTrunk[i][d][0] = 0;
- VehicleTrunk[i][d][1] = 0;
- }
- for(new d=0; d < sizeof(VehicleMods[]); d++)
- {
- VehicleMods[i][d] = 0;
- }
- VehiclePaintjob[i] = 255;
- VehicleLock[i] = 0;
- VehicleAlarm[i] = 0;
- UpdateVehicle(i, 0);
- SaveVehicle(i);
- format(msg, sizeof(msg), "{FFFFFF}* Vehiculul cu id-ul %d a fost adaugat la dealership-ul %d", i, dealerid);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- return 1;
- }
- }
- SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* STOC-ul dealership-ului este plin ! Nu puteti adauga mai multe vehicule.");
- return 1;
- }
- CMD:editv(playerid, params[]) // Comanda care editeaza un vehicul aflat la dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- new id = GetVehicleID(GetPlayerVehicleID(playerid));
- if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Acesta nu este un vehicul dinamic pentru a putea fi editat.");
- SetPVarInt(playerid, "DialogValue1", id);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- return 1;
- }
- new vehicleid;
- if(sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "{FF6699}USAGE:{FFFFFF} /editv [vehicleid]");
- if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Id-ul vehiculului este invalid.");
- SetPVarInt(playerid, "DialogValue1", vehicleid);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- return 1;
- }
- CMD:adddealership(playerid, params[]) // Comanda care adauga un dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Comanda nu poate fi folosita acum.");
- for(new i=1; i < MAX_DEALERSHIPS; i++)
- {
- if(!DealershipCreated[i])
- {
- new msg[128];
- DealershipCreated[i] = 1;
- GetPlayerPos(playerid, DealershipPos[i][0], DealershipPos[i][1], DealershipPos[i][2]);
- UpdateDealership(i, 0);
- SaveDealership(i);
- format(msg, sizeof(msg), "{FFFFFF}* Dealership-ul cu id-ul %d a fost creat.", i);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- return 1;
- }
- }
- SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Nu poti crea mai mult de 10 dealership-uri!");
- return 1;
- }
- CMD:deletedealership(playerid, params[]) // Comanda care sterge un dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new dealerid, msg[128];
- if(sscanf(params, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF6699}USAGE:{FFFFFF} /deletedealership [dealerid]");
- if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}* Id-ul dealership-ului este invalid.");
- for(new i=1; i < MAX_DVEHICLES; i++)
- {
- if(VehicleCreated[i] == VEHICLE_DEALERSHIP && strval(VehicleOwner[i]) == dealerid)
- {
- DestroyVehicle(VehicleID[i]);
- Delete3DTextLabel(VehicleLabel[i]);
- VehicleCreated[i] = 0;
- }
- }
- DealershipCreated[dealerid] = 0;
- Delete3DTextLabel(DealershipLabel[dealerid]);
- SaveDealership(dealerid);
- format(msg, sizeof(msg), "{FFFFFF}* Ai sters dealershipul cu id-ul %d", dealerid);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- return 1;
- }
- CMD:movedealership(playerid, params[]) // Comanda cu ajutorul careia puteti muta un dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new dealerid, msg[128];
- if(sscanf(params, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF6699}USAGE:{FFFFFF} /movedealership [dealerid]");
- if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Id-ul dealership-ului este invalid.");
- GetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
- UpdateDealership(dealerid, 1);
- SaveDealership(dealerid);
- format(msg, sizeof(msg), "{FFFFFF}* Ai mutat dealership-ul cu id-ul %d aici", dealerid);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- return 1;
- }
- CMD:gotodealership(playerid, params[]) // Comanda cu ajutorul careia va puteti teleporta la un dealership (Necesita logare RCON).
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new dealerid, msg[128];
- if(sscanf(params, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF6699}USAGE:{FFFFFF} /gotodealership [dealerid]");
- if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Id-ul dealership-ului este invalid.");
- SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
- format(msg, sizeof(msg), "{FFFFFF}* Te-ai teleportat la dealership-ul cu id-ul %d", dealerid);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new pos, funcname[32];
- while(cmdtext[++pos] > ' ')
- {
- funcname[pos-1] = tolower(cmdtext[pos]);
- }
- strins(funcname, "cmd_", 0, sizeof(funcname));
- while (cmdtext[pos] == ' ') pos++;
- if(!cmdtext[pos])
- {
- return CallLocalFunction(funcname, "is", playerid, "\1");
- }
- return CallLocalFunction(funcname, "is", playerid, cmdtext[pos]);
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- new msg[128];
- new id = GetVehicleID(vehicleid);
- if(!ispassenger)
- {
- if(IsValidVehicle(id) && VehicleCreated[id] == VEHICLE_PLAYER)
- {
- if(IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_GREY,"Poti conduce acest vehicul deoarece esti Admin RCON.");
- }
- else
- if(GetPlayerVehicleAccess(playerid, id) < 2)
- {
- ClearAnimations(playerid);
- format(msg, sizeof(msg), "{CCCCCC}» %s personal al lui{FFFFFF} %s", VehicleNames[GetVehicleModel(vehicleid)-400], VehicleOwner[id]);
- SendClientMessage(playerid, COLOR_GREY, msg);
- }
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(IsPlayerInAnyVehicle(playerid) && !IsBicycle(GetPlayerVehicleID(playerid)))
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- if(VehicleSecurity[vehicleid] == 1)
- {
- ToggleAlarm(vehicleid, VEHICLE_PARAMS_ON);
- SetTimerEx("StopAlarm", ALARM_TIME, false, "d", vehicleid);
- }
- }
- else
- {
- }
- if(newstate == PLAYER_STATE_DRIVER)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new id = GetVehicleID(vehicleid);
- if(IsValidVehicle(id))
- {
- if(VehicleCreated[id] == VEHICLE_DEALERSHIP)
- {
- SetPVarInt(playerid, "DialogValue1", id);
- ShowDialog(playerid, DIALOG_VEHICLE_BUY);
- return 1;
- }
- }
- if(IsBicycle(vehicleid))
- {
- ToggleEngine(vehicleid, VEHICLE_PARAMS_ON);
- }
- }
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- new id = GetVehicleID(vehicleid);
- InitComponents(componentid);
- if(IsValidVehicle(id))
- {
- VehicleMods[id][GetVehicleComponentType(componentid)] = componentid;
- SaveVehicle(id);
- }
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- new id = GetVehicleID(vehicleid);
- if(IsValidVehicle(id))
- {
- VehiclePaintjob[id] = paintjobid;
- SaveVehicle(id);
- }
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- new id = GetVehicleID(vehicleid);
- if(IsValidVehicle(id))
- {
- VehicleColor[id][0] = color1;
- VehicleColor[id][1] = color2;
- SaveVehicle(id);
- }
- return 1;
- }
- ShowDialog(playerid, dialogid)
- {
- switch(dialogid)
- {
- case DIALOG_VEHICLE_PARK:
- {
- new vehicleid = GetPVarInt(playerid, "DialogValue1");
- new caption[32], info[256];
- format(caption, sizeof(caption), "Park your vehicle.");
- if(GetPlayerVehicleAccess(playerid, vehicleid) >= 2)
- {
- format(info, sizeof(info), "Park");
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST, caption, info, "Select", "Cancel");
- }
- case DIALOG_VEHICLE_BUY:
- {
- new vehicleid = GetPVarInt(playerid, "DialogValue1");
- new caption[32], info[256];
- format(caption, sizeof(caption), "Vehicle Buy (ID:%d)", vehicleid);
- format(info, sizeof(info), "Model: %s\nPrice: $%s", VehicleNames[VehicleModel[vehicleid]-400], FormatMoney(VehicleValue[vehicleid]));
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_MSGBOX, caption, info, "Yes", "No");
- }
- case DIALOG_VEHICLE_PLATE:
- {
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Change your vehicle number plate", "Type your new license plate :", "Schimba", "Inapoi");
- }
- case DIALOG_EDITVEHICLE:
- {
- new vehicleid = GetPVarInt(playerid, "DialogValue1");
- new caption[32], info[256];
- format(caption, sizeof(caption), "Editarea Vehicul (ID:%d)", vehicleid);
- format(info, sizeof(info), "1. Pret: [$%d]\n2. Model: [%d (%s)]\n3. Culori: [%d] [%d]\n4. Inmatriculare: [%s]",
- VehicleValue[vehicleid], VehicleModel[vehicleid], VehicleNames[VehicleModel[vehicleid]-400],
- VehicleColor[vehicleid][0], VehicleColor[vehicleid][1], VehicleNumberPlate[vehicleid]);
- strcat(info, "\n5. Sterge vehiculul\n6. Parcheaza vehiculul\n7. Teleportare la vehicul", sizeof(info));
- strcat(info, "\n\nTasteazã: [nr] [value1] [value2]", sizeof(info));
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, caption, info, "OK", "Cancel");
- }
- }
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_ERROR)
- {
- ShowDialog(playerid, DialogReturn[playerid]);
- return 1;
- }
- DialogReturn[playerid] = dialogid;
- if(dialogid == DIALOG_VEHICLE_PARK)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- new vehicleid = GetPVarInt(playerid, "DialogValue1");
- if(GetPlayerVehicleAccess(playerid, vehicleid) < 2)
- {
- ShowErrorDialog(playerid, "{FFFFFF}* This is not your personal vehicle.");
- return 1;
- }
- GetVehiclePos(VehicleID[vehicleid], VehiclePos[vehicleid][0], VehiclePos[vehicleid][1], VehiclePos[vehicleid][2]);
- GetVehicleZAngle(VehicleID[vehicleid], VehiclePos[vehicleid][3]);
- VehicleInterior[vehicleid] = GetPlayerInterior(playerid);
- VehicleWorld[vehicleid] = GetPlayerVirtualWorld(playerid);
- SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}* Your vehicle was parked here.");
- UpdateVehicle(vehicleid, 1);
- PutPlayerInVehicle(playerid, VehicleID[vehicleid], 0);
- SaveVehicle(vehicleid);
- }
- }
- }
- return 1;
- }
- if(dialogid == DIALOG_VEHICLE_BUY)
- {
- if(response)
- {
- if(GetPlayerVehicles(playerid) >= MAX_PLAYER_VEHICLES)
- {
- ShowErrorDialog(playerid, "{FFFFFF}* You have reached maximum vehicles number. Max: " #MAX_PLAYER_VEHICLES );
- return 1;
- }
- new id = GetPVarInt(playerid, "DialogValue1");
- if(GetPlayerMoney(playerid) < VehicleValue[id])
- {
- SendClientMessage(playerid, COLOR_LIGHTBLUE, "{FFFFFF}* You don't have enough money to buy this vehicle.");
- RemovePlayerFromVehicle(playerid);
- return 1;
- }
- new freeid = GetFreeVehicleID();
- if(!freeid)
- {
- ShowErrorDialog(playerid, "{FFFFFF}* The stock is sold out !");
- return 1;
- }
- GivePlayerMoney(playerid, -VehicleValue[id]);
- new dealerid = strval(VehicleOwner[id]);
- VehicleCreated[freeid] = VEHICLE_PLAYER;
- VehicleModel[freeid] = VehicleModel[id];
- VehiclePos[freeid] = DealershipPos[dealerid];
- VehicleColor[freeid] = VehicleColor[id];
- VehicleInterior[freeid] = VehicleInterior[id];
- VehicleWorld[freeid] = VehicleWorld[id];
- VehicleValue[freeid] = VehicleValue[id];
- GetPlayerName(playerid, VehicleOwner[freeid], sizeof(VehicleOwner[]));
- VehicleNumberPlate[freeid] = DEFAULT_NUMBER_PLATE;
- for(new d=0; d < sizeof(VehicleTrunk[]); d++)
- {
- VehicleTrunk[freeid][d][0] = 0;
- VehicleTrunk[freeid][d][1] = 0;
- }
- for(new d=0; d < sizeof(VehicleMods[]); d++)
- {
- VehicleMods[freeid][d] = VehicleMods[id][d];
- }
- VehiclePaintjob[freeid] = VehiclePaintjob[id];
- VehicleLock[freeid] = 0;
- VehicleAlarm[freeid] = 0;
- UpdateVehicle(freeid, 0);
- SaveVehicle(freeid);
- new msg[128];
- format(msg, sizeof(msg), "{FFFFFF}* You have bought this vehicle for{66FF66} $%s !", FormatMoney(VehicleValue[id]));
- SendClientMessage(playerid, COLOR_WHITE, msg);
- RemovePlayerFromVehicle(playerid);
- SetPlayerPos(playerid,330.2957,-1516.5658,35.5723); // Dupa achizitionarea vehiculului, playerul va fi teleportat aici. Schimbati voi cu coordonatele dealership-ului vostru.
- }
- else
- {
- new id = GetPVarInt(playerid, "DialogValue1");
- if(GetPlayerVehicleAccess(playerid, id) < 1)
- {
- RemovePlayerFromVehicle(playerid);
- }
- }
- return 1;
- }
- if(dialogid == DIALOG_VEHICLE_PLATE)
- {
- if(response)
- {
- if(strlen(inputtext) < 1 || strlen(inputtext) >= sizeof(VehicleNumberPlate[]))
- {
- ShowErrorDialog(playerid, "Lungimea textului este invalida.");
- return 1;
- }
- new vehicleid = GetVehicleID(vehicleid);
- new id = GetPlayerVehicleID(playerid);
- strmid(VehicleNumberPlate[id], inputtext, 0, sizeof(VehicleNumberPlate[]));
- SaveVehicle(id);
- SetVehicleNumberPlate(vehicleid, inputtext);
- SetVehicleToRespawn(vehicleid);
- new msg[128];
- format(msg, sizeof(msg), "* Your new license plate is now: %s", inputtext);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- }
- return 1;
- }
- if(dialogid == DIALOG_EDITVEHICLE)
- {
- if(response)
- {
- new id = GetPVarInt(playerid, "DialogValue1");
- new nr, params[128];
- sscanf(inputtext, "ds", nr, params);
- switch(nr)
- {
- case 1:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new value = strval(params);
- if(value < 0) value = 0;
- VehicleValue[id] = value;
- UpdateVehicleLabel(id, 1);
- SaveVehicle(id);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- }
- case 2:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new value;
- if(IsNumeric(params)) value = strval(params);
- else value = GetVehicleModelIDFromName(params);
- if(value < 400 || value > 611)
- {
- ShowErrorDialog(playerid, "Id-ul vehiculului este invalid.");
- return 1;
- }
- VehicleModel[id] = value;
- for(new i=0; i < sizeof(VehicleMods[]); i++)
- {
- VehicleMods[id][i] = 0;
- }
- VehiclePaintjob[id] = 255;
- UpdateVehicle(id, 1);
- SaveVehicle(id);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- }
- case 3:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new color1, color2;
- sscanf(params, "dd", color1, color2);
- VehicleColor[id][0] = color1;
- VehicleColor[id][1] = color2;
- SaveVehicle(id);
- ChangeVehicleColor(VehicleID[id], color1, color2);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- }
- case 4:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- if(strlen(params) < 1 || strlen(params) > 8)
- {
- ShowErrorDialog(playerid, "Lungimea textului este invalida.");
- return 1;
- }
- strmid(VehicleNumberPlate[id], params, 0, sizeof(params));
- SaveVehicle(id);
- SetVehicleNumberPlate(VehicleID[id], params);
- SetVehicleToRespawn(VehicleID[id]);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- }
- case 5:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- DestroyVehicle(VehicleID[id]);
- if(VehicleCreated[id] == VEHICLE_DEALERSHIP)
- {
- Delete3DTextLabel(VehicleLabel[id]);
- }
- VehicleCreated[id] = 0;
- SaveVehicle(id);
- new msg[128];
- format(msg, sizeof(msg), "Ai sters vehiculul cu id-ul %d", id);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- }
- case 6:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
- {
- return 1;
- }
- GetVehiclePos(VehicleID[id], VehiclePos[id][0], VehiclePos[id][1], VehiclePos[id][2]);
- GetVehicleZAngle(VehicleID[id], VehiclePos[id][3]);
- VehicleInterior[id] = GetPlayerInterior(playerid);
- VehicleWorld[id] = GetPlayerVirtualWorld(playerid);
- SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}* Ai parcat vehiculul aici.");
- UpdateVehicle(id, 1);
- PutPlayerInVehicle(playerid, VehicleID[id], 0);
- SaveVehicle(id);
- ShowDialog(playerid, DIALOG_EDITVEHICLE);
- }
- case 7:
- {
- if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "{FFFFFF}SERVER: Unknown command.");
- new Float:x, Float:y, Float:z;
- GetVehiclePos(VehicleID[id], x, y, z);
- SetPlayerPos(playerid, x, y, z+1);
- new msg[128];
- format(msg, sizeof(msg), "{FFFFFF}* Te-ai teleportat la vehiculul cu id-ul %d", id);
- SendClientMessage(playerid, COLOR_WHITE, msg);
- }
- }
- }
- return 1;
- }
- return 0;
- }
- stock sscanf(string[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(string))
- #else
- if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
- #endif
- {
- return format[0];
- }
- new
- formatPos = 0,
- stringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (string[stringPos] && string[stringPos] <= ' ')
- {
- stringPos++;
- }
- while (paramPos < paramCount && string[stringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = string[stringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = string[++stringPos];
- }
- do
- {
- stringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = string[stringPos];
- do
- {
- stringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, string[stringPos++]);
- }
- case 'f':
- {
- new
- end = stringPos - 1,
- ch;
- while ((ch = string[++end]) && ch != delim) {}
- string[end] = '\0';
- setarg(paramPos,0,_:floatstr(string[stringPos]));
- string[end] = ch;
- stringPos = end;
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- stringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = stringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = string[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- string[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - stringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, string[stringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- string[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- stringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = string[stringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = string[stringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- stringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
- {
- stringPos++;
- }
- while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
- {
- stringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
- stock FormatMoney(money)
- {
- new str[30];
- if(money >= 0)
- {
- format(str, sizeof(str), "%d", money);
- if(1000 <= money < 10000) strins(str, ",", 1, sizeof(str));
- else if(10000 <= money < 100000) strins(str, ",", 2, sizeof(str));
- else if(100000 <= money < 1000000) strins(str, ",", 3, sizeof(str));
- else if(1000000 <= money < 10000000) { strins(str, ",", 1, sizeof(str)); strins(str, ",", 5, sizeof(str)); }
- else if(10000000 <= money < 100000000) { strins(str, ",", 2, sizeof(str)); strins(str, ",", 6, sizeof(str)); }
- else if(100000000 <= money < 1000000000) { strins(str, ",", 3, sizeof(str)); strins(str, ",", 7, sizeof(str)); }
- else if(money >= 1000000000) { strins(str, ",", 1, sizeof(str)); strins(str, ",", 5, sizeof(str)); strins(str, ",", 9, sizeof(str)); }
- }
- else
- {
- format(str, sizeof(str), "-%d", money-(money*2));
- if(-1000 >= money > -10000) strins(str, ",", 2, sizeof(str));
- else if(-10000 >= money > -100000) strins(str, ",", 3, sizeof(str));
- else if(-100000 >= money > -1000000) strins(str, ",", 4, sizeof(str));
- else if(-1000000 >= money > -10000000) { strins(str, ",", 2, sizeof(str)); strins(str, ",", 6, sizeof(str)); }
- else if(-10000000 >= money > -100000000) { strins(str, ",", 3, sizeof(str)); strins(str, ",", 7, sizeof(str)); }
- else if(-100000000 >= money > -1000000000) { strins(str, ",", 4, sizeof(str)); strins(str, ",", 8, sizeof(str)); }
- else if(money <= -1000000000) { strins(str, ",", 2, sizeof(str)); strins(str, ",", 6, sizeof(str)); strins(str, ",", 10, sizeof(str));}
- }
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement