[ Новые сообщения · Участники · Правила форума · Поиск · RSS ] |
|
Форум - Сообщество любителей игры GTA:MP » SA-MP Scripting » Школа PAWNO » Урок системы авто(Вырезано из Gta World) |
Урок системы авто(Вырезано из Gta World) |
Дата: 12.01.2011, Среда, 23:12:54 | Сообщение # $NUMBER
И так для начало удачи надеюсь у всех всё получится=))
Начнём... Ищем enum pInfo и там в конец добавляем Code pCarKey, pCarKey2, Ищем enum bInfo Там выше добавте new Code AutoInfo[MAX_VEHICLES][aInfo]; А ещё выше Code enum aInfo { aStats, aModel, Float:aAutoX, Float:aAutoY, Float:aAutoZ, Float:aAutoAngle, aColor1, aColor2, aOwner[MAX_PLAYER_NAME], aPrice, aKey, aLock, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, aPaintJob, }; Тоесть у вас над enum bInfo должно получится так
Code enum aInfo { aStats,//Инфо о покупке aModel,//Модэль автомобиля Float:aAutoX,//Координаты автомобиля X Float:aAutoY,//Координаты автомобиля Y Float:aAutoZ, //Координаты автомобиля Z Float:aAutoAngle, //x3=) aColor1,//1 цвет машины aColor2,//2 цвет машины aOwner[MAX_PLAYER_NAME],//Чей это авто aPrice,//Цена машины aKey,//Лвл с какого мона купить aLock,//Это я думаю все знают xD a0,//Тюнинг 0 a1,//Тюнинг 1 a2, //Тюнинг 2 a3, //Тюнинг 3 a4, //Тюнинг 4 a5, //Тюнинг 5 a6, //Тюнинг 6 a7, //Тюнинг 7 a8, //Тюнинг 8 a9, //Тюнинг 9 a10, //Тюнинг 10 a11, //Тюнинг 11 a12, //Тюнинг 12 a13, //Тюнинг 13 aPaintJob, // x3=) }; new AutoInfo[MAX_VEHICLES][aInfo]; |
Дата: 12.01.2011, Среда, 23:14:14 | Сообщение # $NUMBER
Щас создаём паблики
паблик чтобы Загружалось авто Ко всем forward LoadAuto();Чтобы варнинга небыло.. А теперь сам паблик Code public LoadAuto() { new arrCoords[26][64]; new strFromFile2[256]; new File: file = fopen("auto.cfg", io_read); if (file) { new idx; while (idx < 330) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); AutoInfo[idx+1][aStats] = strval(arrCoords[0]); AutoInfo[idx+1][aModel] = strval(arrCoords[1]); AutoInfo[idx+1][aAutoX] = floatstr(arrCoords[2]); AutoInfo[idx+1][aAutoY] = floatstr(arrCoords[3]); AutoInfo[idx+1][aAutoZ] = floatstr(arrCoords[4]); AutoInfo[idx+1][aAutoAngle] = floatstr(arrCoords[5]); AutoInfo[idx+1][aColor1] = strval(arrCoords[6]); AutoInfo[idx+1][aColor2] = strval(arrCoords[7]); strmid(AutoInfo[idx+1][aOwner], arrCoords[8], 0, strlen(arrCoords[8]), 255); AutoInfo[idx+1][aPrice] = strval(arrCoords[9]); AutoInfo[idx+1][aKey] = strval(arrCoords[10]); AutoInfo[idx+1][a0] = strval(arrCoords[11]); AutoInfo[idx+1][a1] = strval(arrCoords[12]); AutoInfo[idx+1][a2] = strval(arrCoords[13]); AutoInfo[idx+1][a3] = strval(arrCoords[14]); AutoInfo[idx+1][a4] = strval(arrCoords[15]); AutoInfo[idx+1][a5] = strval(arrCoords[16]); AutoInfo[idx+1][a6] = strval(arrCoords[17]); AutoInfo[idx+1][a7] = strval(arrCoords[18]); AutoInfo[idx+1][a8] = strval(arrCoords[19]); AutoInfo[idx+1][a9] = strval(arrCoords[20]); AutoInfo[idx+1][a10] = strval(arrCoords[21]); AutoInfo[idx+1][a11] = strval(arrCoords[22]); AutoInfo[idx+1][a12] = strval(arrCoords[23]); AutoInfo[idx+1][a13] = strval(arrCoords[24]); AutoInfo[idx+1][aPaintJob] = strval(arrCoords[25]); idx++; } fclose(file); } return 1; } Теперь ниже паблик для сохронение координат при /park Ко всем forward SaveAuto(); И паблик Code public SaveAuto() { new idx; new File: file2; while (idx < 330) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%d,%f,%f,%f,%f,%d,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", AutoInfo[idx+1][aStats], AutoInfo[idx+1][aModel], AutoInfo[idx+1][aAutoX], AutoInfo[idx+1][aAutoY], AutoInfo[idx+1][aAutoZ], AutoInfo[idx+1][aAutoAngle], AutoInfo[idx+1][aColor1], AutoInfo[idx+1][aColor2], AutoInfo[idx+1][aOwner], AutoInfo[idx+1][aPrice], AutoInfo[idx+1][aKey], AutoInfo[idx+1][aLock], AutoInfo[idx+1][a0], AutoInfo[idx+1][a1], AutoInfo[idx+1][a2], AutoInfo[idx+1][a3], AutoInfo[idx+1][a4], AutoInfo[idx+1][a5], AutoInfo[idx+1][a6], AutoInfo[idx+1][a7], AutoInfo[idx+1][a8], AutoInfo[idx+1][a9], AutoInfo[idx+1][a10], AutoInfo[idx+1][a11], AutoInfo[idx+1][a12], AutoInfo[idx+1][a13], AutoInfo[idx+1][aPaintJob]); if(idx == 0) { file2 = fopen("auto.cfg", io_write); } else { file2 = fopen("auto.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; } А теперь для сохранения тюнинга авто Ко всем forward TuneCar(); И паблик Code public TuneCar() { for(new i = 0; i < 330; i++) { if(AutoInfo[i][a0] != 0) { AddVehicleComponent(i, AutoInfo[i][a0]); } if(AutoInfo[i][a1] != 0) { AddVehicleComponent(i, AutoInfo[i][a1]); } if(AutoInfo[i][a2] != 0) { AddVehicleComponent(i, AutoInfo[i][a2]); } if(AutoInfo[i][a3] != 0) { AddVehicleComponent(i, AutoInfo[i][a3]); } if(AutoInfo[i][a4] != 0) { AddVehicleComponent(i, AutoInfo[i][a4]); } if(AutoInfo[i][a5] != 0) { AddVehicleComponent(i, AutoInfo[i][a5]); } if(AutoInfo[i][a6] != 0) { AddVehicleComponent(i, AutoInfo[i][a6]); } if(AutoInfo[i][a7] != 0) { AddVehicleComponent(i, AutoInfo[i][a7]); } if(AutoInfo[i][a8] != 0) { AddVehicleComponent(i, AutoInfo[i][a8]); } if(AutoInfo[i][a9] != 0) { AddVehicleComponent(i, AutoInfo[i][a9]); } if(AutoInfo[i][a10] != 0) { AddVehicleComponent(i, AutoInfo[i][a10]); } if(AutoInfo[i][a11] != 0) { AddVehicleComponent(i, AutoInfo[i][a11]); } if(AutoInfo[i][a12] != 0) { AddVehicleComponent(i, AutoInfo[i][a12]); } if(AutoInfo[i][a13] != 0) { AddVehicleComponent(i, AutoInfo[i][a13]); } if(AutoInfo[i][aPaintJob] != 0) { ChangeVehiclePaintjob(i,AutoInfo[i][aPaintJob]); } } return 1; } Теперь добавим чтоб когда садишся в продажное авто тебе высвечивался диалог чтоб купить... Code public CarEnter(playerid,carid) { if(AutoInfo[carid][aStats]==0) { new string[512]; format(string,sizeof(string),"Уровень: %d\nСтоимость: %d\nВведите 2 цвета через запятую в окошко\nПример: [2,6] без квадратных скобок и пробелов!\nЕсли не введете, то цвет останется таким, какой установлен сейчас", AutoInfo[carid][aKey], AutoInfo[carid][aPrice]); ShowPlayerDialog(playerid,920,DIALOG_STYLE_INPUT,"Машина продаётся",string,"Купить","Отмена"); } return 1; } public OnVehicleSpawn(vehicleid) { if(AutoInfo[vehicleid][a0] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a0]); } if(AutoInfo[vehicleid][a1] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a1]); } if(AutoInfo[vehicleid][a2] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a2]); } if(AutoInfo[vehicleid][a3] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a3]); } if(AutoInfo[vehicleid][a4] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a4]); } if(AutoInfo[vehicleid][a5] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a5]); } if(AutoInfo[vehicleid][a6] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a6]); } if(AutoInfo[vehicleid][a7] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a7]); } if(AutoInfo[vehicleid][a8] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a8]); } if(AutoInfo[vehicleid][a9] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a9]); } if(AutoInfo[vehicleid][a10] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a10]); } if(AutoInfo[vehicleid][a11] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a11]); } if(AutoInfo[vehicleid][a12] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a12]); } if(AutoInfo[vehicleid][a13] != 0) { AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a13]); } if(AutoInfo[vehicleid][aPaintJob] != 0) { ChangeVehiclePaintjob(vehicleid,AutoInfo[vehicleid][aPaintJob]); } return 1; } |
Дата: 12.01.2011, Среда, 23:19:23 | Сообщение # $NUMBER
Основная работа зделана осталось самое лёгкое=)
Ищем паблик ongamemodeinit там вставляем Code for(new c=0;c<MAX_VEHICLES;c++) { Gas[c] = 100; AutoInfo[c][aStats] = -1; lockedcar[c] = 0; } LoadAuto(); И это ну это необязательно обычный 3дтекст=) Code for(new h = 0; h < 330; h++) { CreateVehicle(AutoInfo[h][aModel], AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], AutoInfo[h][aAutoAngle], AutoInfo[h][aColor1], AutoInfo[h][aColor2],SPAWN_CARS); if(AutoInfo[h][aStats] == 0) { new strings[256]; format(strings,sizeof(strings),"Транспорт продается\nУровень: %d\nСтоимость: %d",AutoInfo[h][aKey],AutoInfo[h][aPrice]); nomer[h] = CreateDynamic3DTextLabel(strings, 0xBFF600FF, AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], 15.0, INVALID_PLAYER_ID,h,0,-1,-1,-1,15.0); } else { new strings[256]; format(strings,sizeof(strings),"ID: %d\nВладелец: %s",h,AutoInfo[h][aOwner]); nomer[h] = CreateDynamic3DTextLabel(strings, 0xBFF600FF, AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], 15.0, INVALID_PLAYER_ID,h,0,-1,-1,-1,15.0); } } Теперь ищем public OnDialogResponse И вставляем туда это Code if(dialogid==920) { if(response==1) { if(IsPlayerInAnyVehicle(playerid)) { new cara = GetPlayerVehicleID(playerid); if(AutoInfo[cara][aStats] == 0) { if(GetPlayerMoney(playerid) >= AutoInfo[cara][aPrice]) { if(PlayerInfo[playerid][pCarKey] == 0 || PlayerInfo[playerid][pCarKey2] == 0 || PlayerInfo[playerid][pCarKey3] == 0) { if(PlayerInfo[playerid][pLevel] >= AutoInfo[cara][aKey]) { if(PlayerInfo[playerid][pCarKey2] == 0) { if(!strlen(inputtext)) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey2] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } else if(strfind(inputtext,",", true) != -1) { new razdel[2][64]; split(inputtext, razdel, ','); AutoInfo[cara][aColor1] = strval(razdel[0]); AutoInfo[cara][aColor2] = strval(razdel[1]); if(AutoInfo[cara][aColor1] >= 0 && AutoInfo[cara][aColor1] <= 255) { if(AutoInfo[cara][aColor2] >= 0 && AutoInfo[cara][aColor2] <= 255) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey2] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); ChangeVehicleColor(cara, AutoInfo[cara][aColor1], AutoInfo[cara][aColor2]); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else if(PlayerInfo[playerid][pCarKey3] == 0) { if(!strlen(inputtext)) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey3] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } |
Дата: 12.01.2011, Среда, 23:19:39 | Сообщение # $NUMBER
Code else if(strfind(inputtext,",", true) != -1) { new razdel3[2][64]; split(inputtext, razdel, ','); AutoInfo[cara][aColor1] = strval(razdel3[0]); AutoInfo[cara][aColor2] = strval(razdel3[1]); if(AutoInfo[cara][aColor1] >= 0 && AutoInfo[cara][aColor1] <= 255) { if(AutoInfo[cara][aColor2] >= 0 && AutoInfo[cara][aColor2] <= 255) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey3] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); ChangeVehicleColor(cara, AutoInfo[cara][aColor1], AutoInfo[cara][aColor2]); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else if(PlayerInfo[playerid][pCarKey] == 0) { if(!strlen(inputtext)) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } else if(strfind(inputtext,",", true) != -1) { new razdel2[2][64]; split(inputtext, razdel2, ','); AutoInfo[cara][aColor1] = strval(razdel2[0]); AutoInfo[cara][aColor2] = strval(razdel2[1]); if(AutoInfo[cara][aColor1] >= 0 && AutoInfo[cara][aColor1] <= 255) { if(AutoInfo[cara][aColor2] >= 0 && AutoInfo[cara][aColor2] <= 255) { GetPlayerName(playerid,sendername,sizeof(sendername)); NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; GivePlayerMoney(playerid,-AutoInfo[cara][aPrice]); PlayerInfo[playerid][pCarKey] = cara; AutoInfo[cara][aStats] = 1; strmid(AutoInfo[cara][aOwner], sendername, 0, strlen(sendername), 255); ChangeVehicleColor(cara, AutoInfo[cara][aColor1], AutoInfo[cara][aColor2]); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Поздравляю с новой покупкой! Не забудьте ее припарковать! (/park)"); new zadk = (AutoInfo[cara][aPrice]*10)/100; SBizzInfo[5][sbTill] += zadk; ExtortionSBiz(6, zadk); SBizzInfo[1][sbTill] += zadk; ExtortionSBiz(2, zadk); format(string,sizeof(string),"ID: %d\nВладелец: %s",cara,AutoInfo[cara][aOwner]); UpdateDynamic3DTextLabelText(nomer[cara],0xBFF600FF,string); return 1; } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { SendClientMessage(playerid,COLOR_GREY,"Цвет должен быть от 0 до 255"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } } else { SendClientMessage(playerid,COLOR_GREY,"У вас маленький лвл"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { SendClientMessage(playerid,COLOR_GREY,"У вас уже есть автомобиль, продайте его! (/sellcar)"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { SendClientMessage(playerid,COLOR_GREY,"Нехватает денег!"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } |
Дата: 12.01.2011, Среда, 23:20:43 | Сообщение # $NUMBER
Теперь можно тупо вставить команды и радоватся
Code if(strcmp(cmd, "/addveh", true) == 0)//Это команда чтобы создать машину из игры { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 5) { new vehicleid = GetPlayerVehicleID(playerid); if(!IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid,COLOR_GREY,"Тебе нужно быть в транспорте"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]"); return 1; } new car; car = strval(tmp); if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "От 400 до 611!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]"); return 1; } new color1; color1 = strval(tmp); if(color1 < 0 || color1 > 300) { SendClientMessage(playerid, COLOR_GREY, "Цвет лишь от 0 до 300!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]"); return 1; } new color2; color2 = strval(tmp); if(color2 < 0 || color2 > 300) { SendClientMessage(playerid, COLOR_GREY, "Цвет от 0 до 300!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]"); return 1; } new price; price = strval(tmp); if(price < 1 ) { SendClientMessage(playerid, COLOR_GREY, "Цена не меньше $1"); return 1; } new levl; levl = strval(tmp); if(levl < 2 ) { SendClientMessage(playerid, COLOR_GREY, "Уровень должен быть не меньше 2"); return 1; } new Float:X,Float:Y,Float:Z,Float:Q; GetVehiclePos(GetPlayerVehicleID(playerid), X,Y,Z); GetVehicleZAngle(GetPlayerVehicleID(playerid),Q); AutoInfo[vehicleid][aStats]=0; AutoInfo[vehicleid][aModel]=car; AutoInfo[vehicleid][aAutoX]=X; AutoInfo[vehicleid][aAutoY]=Y; AutoInfo[vehicleid][aAutoZ]=Z; AutoInfo[vehicleid][aAutoAngle]=Q; AutoInfo[vehicleid][aColor1]=color1; AutoInfo[vehicleid][aColor2]=color2; AutoInfo[vehicleid][aPrice]=price; AutoInfo[vehicleid][aKey]=levl; AutoInfo[vehicleid][a0]=0; AutoInfo[vehicleid][a1]=0; AutoInfo[vehicleid][a2]=0; AutoInfo[vehicleid][a3]=0; AutoInfo[vehicleid][a4]=0; AutoInfo[vehicleid][a5]=0; AutoInfo[vehicleid][a6]=0; AutoInfo[vehicleid][a7]=0; AutoInfo[vehicleid][a8]=0; AutoInfo[vehicleid][a9]=0; AutoInfo[vehicleid][a10]=0; AutoInfo[vehicleid][a11]=0; AutoInfo[vehicleid][a12]=0; AutoInfo[vehicleid][a13]=0; AutoInfo[vehicleid][aPaintJob]=0; strmid(AutoInfo[CAR_PROD][aOwner], "The State", 0, 9, 999); SaveAuto(); format(string, sizeof(string), "* Машина на продажу создана."); SendClientMessage(playerid, COLOR_GREY, string); } return 1; } return 1; } Code if (strcmp(cmd, "/park", true) == 0)//Чтобы хозяин машины мог припарковать её в любом месте { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pCarKey2] == 0 && PlayerInfo[playerid][pCarKey] == 0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки"); return 1; } if(IsPlayerInAnyVehicle(playerid)) { new cari = GetPlayerVehicleID(playerid); if(cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey]) { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); new Float:xcar, Float:ycar, Float:zcar, Float:ancar; new mods = GetVehicleModel(cari); GetVehicleZAngle(cari, ancar); GetVehiclePos(cari,xcar,ycar,zcar); DestroyVehicle(cari); CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS); AutoInfo[cari][aAutoX] = xcar; AutoInfo[cari][aAutoY] = ycar; AutoInfo[cari][aAutoZ] = zcar; AutoInfo[cari][aAutoAngle] = ancar; SaveAuto(); if(AutoInfo[cari][a0] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a0]); } if(AutoInfo[cari][a1] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a1]); } if(AutoInfo[cari][a2] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a2]); } if(AutoInfo[cari][a3] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a3]); } if(AutoInfo[cari][a4] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a4]); } if(AutoInfo[cari][a5] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a5]); } if(AutoInfo[cari][a6] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a6]); } if(AutoInfo[cari][a7] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a7]); } if(AutoInfo[cari][a8] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a8]); } if(AutoInfo[cari][a9] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a9]); } if(AutoInfo[cari][a10] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a10]); } if(AutoInfo[cari][a11] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a11]); } if(AutoInfo[cari][a12] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a12]); } if(AutoInfo[cari][a13] != 0) { AddVehicleComponent(cari, AutoInfo[cari][a13]); } if(AutoInfo[cari][aPaintJob] != 0) { ChangeVehiclePaintjob(cari,AutoInfo[cari][aPaintJob]); } SendClientMessage(playerid,COLOR_YELLOW,"Транспорт припаркован!"); } else { SendClientMessage(playerid,COLOR_GREY,"Вы не в своей купленной тачке"); } } else { SendClientMessage(playerid,COLOR_GREY,"Вы не в тачке"); } } return 1; } |
Дата: 12.01.2011, Среда, 23:21:35 | Сообщение # $NUMBER
Code if (strcmp(cmd, "/sellcar", true) == 0) //Чтобы продать машину { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pCarKey2] == 0 && PlayerInfo[playerid][pCarKey] == 0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки"); return 1; } tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { if(PlayerToKvadrat(playerid, 1059.0021, -1777.3611, 1101.8859, -1735.4606) || PlayerToKvadrat(playerid, 2788.7844, -1467.7683, 2820.6284, -1425.3816) || PlayerToKvadrat(playerid, 293.7184, -1549.3483, 304.6124, -1477.7850) || PlayerToKvadrat(playerid, 2642.7,-1901.2,2842.1,-1668.1) || PlayerToKvadrat(playerid, 1417.6780,2786.3059,1532.8566,2788.3418) || PlayerToKvadrat(playerid, 1463.1936,2724.5845,1533.5640,2761.9668) || PlayerToKvadrat(playerid,112.11,-1792.0,142.50,-1961.0)|| PlayerToKvadrat(playerid,2142.0,-1128.0,2169.0,-1210.0)) { if(IsPlayerInAnyVehicle(playerid)) { new cari = GetPlayerVehicleID(playerid); if(cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey] || cari == PlayerInfo[playerid][pCarKey3]) { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); new Float:xcar, Float:ycar, Float:zcar, Float:ancar; new mods = GetVehicleModel(cari); GetVehicleZAngle(cari, ancar); GetVehiclePos(cari,xcar,ycar,zcar); DestroyVehicle(cari); CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS); AutoInfo[cari][aAutoX] = xcar; AutoInfo[cari][aAutoY] = ycar; AutoInfo[cari][aAutoZ] = zcar; AutoInfo[cari][aAutoAngle] = ancar; AutoInfo[cari][aStats] = 0; new ptem[64]; format(ptem,sizeof(ptem),"The State"); strmid(AutoInfo[cari][aOwner], ptem, 0, strlen(ptem), 255); new manyy = AutoInfo[cari][aPrice] / 2; ConsumingMoney[playerid] = 1; NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] + manyy; GivePlayerMoney(playerid,manyy); SaveAuto(); gCarLock[cari] = 0; UnLockCar(cari); new nal = (manyy*13) / 100; PlayerInfo[playerid][pNalog] += nal; format(string,sizeof(string),"Транспорт продается\nУровень: %d\nСтоимость: %d",AutoInfo[cari][aKey],AutoInfo[cari][aPrice]); UpdateDynamic3DTextLabelText(nomer[cari],0xBFF600FF,string); if(cari == PlayerInfo[playerid][pCarKey2]) { PlayerInfo[playerid][pCarKey2] = 0; } else if(cari == PlayerInfo[playerid][pCarKey]) { PlayerInfo[playerid][pCarKey] = 0; } else if(cari == PlayerInfo[playerid][pCarKey3]) { PlayerInfo[playerid][pCarKey3] = 0; } return 1; } else { SendClientMessage(playerid,COLOR_GREY,"Вы не в своей купленной тачке"); } } else { SendClientMessage(playerid,COLOR_GREY,"Вы не в тачке"); } } else { SendClientMessage(playerid,COLOR_GREY,"Продать транспорт можно только там где купили"); } } else { giveplayerid = ReturnUser(tmp); tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"/sellcar [id игрока] [сумма] либо /sellcar на авторынке"); return 1; } new babkis = strval(tmp); if(PlayerInfo[giveplayerid][pCarKey2] != 0 && PlayerInfo[giveplayerid][pCarKey] != 0) { SendClientMessage(playerid,COLOR_GREY,"У него уже есть тачка"); return 1; } if(babkis > GetPlayerMoney(giveplayerid)) { SendClientMessage(playerid,COLOR_GREY,"У игрока не хватает денег"); return 1; } if(!ProxDetectorS(10.0, playerid, giveplayerid)) { SendClientMessage(playerid,COLOR_GREY,"Вы слишком далеко от игрока"); return 1; } if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey])&& CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2])&& CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey3])) { SendClientMessage(playerid,COLOR_GREY,"Около вас находится оба транспорта! Уйдите от того, который не хотите продавать"); return 1; } if(!CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey]) && !CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2])&& !CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey3])) { SendClientMessage(playerid,COLOR_GREY,"Вы слишком далеко от автомобиля"); return 1; } if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey])) { predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey]; } else if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2])) { predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey2]; } else if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey3])) { predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey3]; } GetPlayerName(playerid,sendername,sizeof(sendername)); GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer)); predlogid[giveplayerid] = playerid; predlogmoney[giveplayerid] = babkis; new kfjsdh = predlogidcar[giveplayerid]; format(string,sizeof(string),"%s предлагает вам купить %s за %d$ (/accept buycar)",sendername,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis); SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,string); format(string,sizeof(string),"Вы предложили %s купить %s за %d$",giveplayer,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis); SendClientMessage(playerid,COLOR_LIGHTBLUE,string); } } return 1; } |
Дата: 12.01.2011, Среда, 23:22:09 | Сообщение # $NUMBER
Code if (strcmp(cmd, "/carcolor", true) == 0) //Сменить цвет машины { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); return 1; } new carsi = strval(tmp); if(carsi == 1) { if(PlayerInfo[playerid][pCarKey] == 0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки 1"); return 1; } tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); return 1; } new col1 = strval(tmp); tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); return 1; } new col2 = strval(tmp); if(col1 > 255 || col1 < 0 || col2 > 255 || col2 < 0) { SendClientMessage(playerid,COLOR_GREY,"Цвет можно указывать от 0 до 255"); return 1; } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 5000; GivePlayerMoney(playerid,-5000); ChangeVehicleColor(PlayerInfo[playerid][pCarKey],col1,col2); AutoInfo[PlayerInfo[playerid][pCarKey]][aColor1] = col1; AutoInfo[PlayerInfo[playerid][pCarKey]][aColor1] = col2; SBizzInfo[5][sbTill] += 5000; ExtortionSBiz(5, 5000); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Цвет транспорта успешно изменен"); } else if(carsi == 2) { if(PlayerInfo[playerid][pCarKey2] == 0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки 2"); return 1; } tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); return 1; } new col1 = strval(tmp); tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); return 1; } new col2 = strval(tmp); if(col1 > 255 || col1 < 0 || col2 > 255 || col2 < 0) { SendClientMessage(playerid,COLOR_GREY,"Цвет можно указывать от 0 до 255"); return 1; } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 5000; GivePlayerMoney(playerid,-5000); ChangeVehicleColor(PlayerInfo[playerid][pCarKey2],col1,col2); AutoInfo[PlayerInfo[playerid][pCarKey2]][aColor1] = col1; AutoInfo[PlayerInfo[playerid][pCarKey2]][aColor1] = col2; SBizzInfo[5][sbTill] += 5000; ExtortionSBiz(5, 5000); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Цвет транспорта успешно изменен"); } else if(carsi == 3) { if(PlayerInfo[playerid][pCarKey3] == 0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки 3"); return 1; } tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2/3 машина] [1 цвет] [2 цвет]"); return 1; } new col1 = strval(tmp); tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2/3 машина] [1 цвет] [2 цвет]"); return 1; } new col2 = strval(tmp); if(col1 > 255 || col1 < 0 || col2 > 255 || col2 < 0) { SendClientMessage(playerid,COLOR_GREY,"Цвет можно указывать от 0 до 255"); return 1; } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 5000; GivePlayerMoney(playerid,-5000); ChangeVehicleColor(PlayerInfo[playerid][pCarKey3],col1,col2); AutoInfo[PlayerInfo[playerid][pCarKey3]][aColor1] = col1; AutoInfo[PlayerInfo[playerid][pCarKey3]][aColor1] = col2; SBizzInfo[5][sbTill] += 5000; ExtortionSBiz(5, 5000); SaveAuto(); SendClientMessage(playerid,COLOR_YELLOW,"Цвет транспорта успешно изменен"); } else { SendClientMessage(playerid,COLOR_GREY,"Используйте: /carcolor [1/2 машина] [1 цвет] [2 цвет]"); } return 1; } Code if(strcmp(cmd, "/towcar", true) == 0) //Зареспавнить на место парковки { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Используйте: /towcar [1ая или 2ая тачка]"); return 1; } new towcarc = strval(tmp); if(towcarc == 1) { if(PlayerInfo[playerid][pCarKey] != 0) { new house = PlayerInfo[playerid][pCarKey]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInAnyVehicle(i)) { new slll = GetPlayerVehicleID(i); if(house == slll) { new Float:xv, Float:yv, Float:zv; GetPlayerPos(i,xv,yv,zv); SetPlayerPos(i,xv,yv,zv+1.0); TextDrawHideForPlayer(i,benzz[i]); } } } } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 1000; GivePlayerMoney(playerid,-1000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); SBizzInfo[8][sbTill] += 5000;//towcar buisness ExtortionSBiz(8, 2500); //SBizzInfo[8][sbProducts]--; SendClientMessage(playerid,COLOR_LIGHTBLUE,"Ваш транспорт был возвращен к месту парковки"); RepairVehicle(house); SetVehicleZAngle(house,AutoInfo[house][aAutoAngle]); SetVehiclePos(house,AutoInfo[house][aAutoX], AutoInfo[house][aAutoY], AutoInfo[house][aAutoZ]); engine[house] = 0; } else { SendClientMessage(playerid,COLOR_GREY,"У вас нету первой тачки"); } } else if(towcarc == 3) { if(PlayerInfo[playerid][pCarKey3] != 0) { new house = PlayerInfo[playerid][pCarKey3]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInAnyVehicle(i)) { new slll = GetPlayerVehicleID(i); if(house == slll) { new Float:xv, Float:yv, Float:zv; GetPlayerPos(i,xv,yv,zv); SetPlayerPos(i,xv,yv,zv+1.0); TextDrawHideForPlayer(i,benzz[i]); } } } } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 1000; GivePlayerMoney(playerid,-1000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); SBizzInfo[8][sbTill] += 2000;//towcar buisness ExtortionSBiz(8, 1000); //SBizzInfo[8][sbProducts]--; SendClientMessage(playerid,COLOR_LIGHTBLUE,"Ваш транспорт был возвращен к месту парковки"); RepairVehicle(house); SetVehicleZAngle(house,AutoInfo[house][aAutoAngle]); SetVehiclePos(house,AutoInfo[house][aAutoX], AutoInfo[house][aAutoY], AutoInfo[house][aAutoZ]); engine[house] = 0; } else { SendClientMessage(playerid,COLOR_GREY,"У вас нету второй тачки"); } } else if(towcarc == 2) { if(PlayerInfo[playerid][pCarKey2] != 0) { new house = PlayerInfo[playerid][pCarKey2]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInAnyVehicle(i)) { new slll = GetPlayerVehicleID(i); if(house == slll) { new Float:xv, Float:yv, Float:zv; GetPlayerPos(i,xv,yv,zv); SetPlayerPos(i,xv,yv,zv+1.0); TextDrawHideForPlayer(i,benzz[i]); } } } } NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - 1000; GivePlayerMoney(playerid,-1000); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); SBizzInfo[8][sbTill] += 2000;//towcar buisness ExtortionSBiz(8, 1000); //SBizzInfo[8][sbProducts]--; SendClientMessage(playerid,COLOR_LIGHTBLUE,"Ваш транспорт был возвращен к месту парковки"); RepairVehicle(house); SetVehicleZAngle(house,AutoInfo[house][aAutoAngle]); SetVehiclePos(house,AutoInfo[house][aAutoX], AutoInfo[house][aAutoY], AutoInfo[house][aAutoZ]); engine[house] = 0; } else { SendClientMessage(playerid,COLOR_GREY,"У вас нету второй тачки"); } } else { SendClientMessage(playerid,COLOR_GREY,"Используйте: /towcar [1ая или 2ая тачка или 3]"); } } return 1; } |
Дата: 12.01.2011, Среда, 23:48:32 | Сообщение # $NUMBER
Вырезал даже не сам(((
|
Дата: 13.01.2011, Четверг, 00:56:29 | Сообщение # $NUMBER
Quote (Asic_Lion) CodepCarKey, pCarKey2, Добавлено (13.01.2011, 00:56:29) |
Дата: 13.01.2011, Четверг, 15:37:30 | Сообщение # $NUMBER
Asic_Lion, А что машины будут всегда открыты,где команда /lock ? Оо
Quote (Asic_Lion) NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - AutoInfo[cara][aPrice]; Этот анти чит вроде есть только на Гта Ворлде,думаю не все будут использовать данный мод.Неужели так сложно это вырезать?Щас пойдут сообщения с еррорами... За урок не зачёт |
| |||
| |||