shape1
shape2
shape3
shape4
shape7
shape8

Готовое решение-Автошкола.


sasha_vip3

Новичок
Пользователь
19.03.2016
34
0
0
Доброе время суток!

Я вырезал эту систему с мода Olimp

Скажу сразу это моя первая вырезка и по этому если,что-то не так напомните мне в коментариях.

И так начнём:

А кстате это работает на CRMP для new.pwn проверял токо на new.pwn

ко всем define

#define callback%0(%1) forward%0(%1); public%0(%1) 
ко всем enum

enum
{
CHECKPOINT_1,CHECKPOINT_2,CHECKPOINT_3,CHECKPOINT_4,CHECKPOINT_5,CHECKPOINT_6,CHECKPOINT_7,CHECKPOINT_8,CHECKPOINT_9,
CHECKPOINT_10,CHECKPOINT_11,CHECKPOINT_12,CHECKPOINT_13,CHECKPOINT_14,CHECKPOINT_15,CHECKPOINT_16,CHECKPOINT_17,
CHECKPOINT_18,CHECKPOINT_19,CHECKPOINT_20,

Ко всем new:

//==============[ÀâòîØêîëà]=============
new TakingLesson[MAX_PLAYERS];
new LessonCar[MAX_PLAYERS];
new LessonStat[MAX_PLAYERS];
new pLessonCar[MAX_PLAYERS];
new JobCarTime[MAX_PLAYERS];
new CPL[MAX_PLAYERS];

в public OnPlayerCommandText(playerid, cmdtext[])

//Тестирование ПДД==============================================================
if(strcmp(cmdtext, "/teststart",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(3.0, playerid,2144.6,-2196.5,23.2)) //Место где можно сдать на права
{
if(PlayerInfo[playerid][pCarLicB] < 1)
{
if(pTestPDD[playerid] == 0)
{
if(PlayerInfo[playerid][pMoney] >= 5000)
{
GameTextForPlayer(playerid, "~r~…®C¦PYK¦A„",5000,3);
TogglePlayerControllable(playerid,0);
IO1(playerid);
SetTimerEx("IO2", 5000, 0, "d", playerid);
SetTimerEx("IO3", 5000, 0, "d", playerid);
SetTimerEx("IO4", 5000, 0, "d", playerid);
SetTimerEx("IO5", 5000, 0, "d", playerid);
SetTimerEx("IO6", 5000, 0, "d", playerid);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вам не хватает денег, чтобы пройти тест!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: Вы уже находитесь на испытании!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "[Инструктор]: У вас уже есть водительские права!");
return 1;
}

}
}
return 1;
}
Код:
	if(strcmp(cmd,"/licenses",true)==0)
	{
		if(IsPlayerConnected(playerid))
		{
			new str[128];
			new text1[27];
			new text2[27];
			new text3[27];
			new text4[27];
			new text5[27];
			new text6[27];
			new text7[27];
			new text8[27];
			if(PlayerInfo[playerid][pCarLicA]) { text1 = "Имеется"; } else { text1 = "Не имеется"; }
			if(PlayerInfo[playerid][pCarLicB]) { text2 = "Имеется"; } else { text2 = "Не имеется"; }
			if(PlayerInfo[playerid][pCarLicC]) { text3 = "Имеется"; } else { text3 = "Не имеется"; }
			if(PlayerInfo[playerid][pCarLicD]) { text4 = "Имеется"; } else { text4 = "Не имеется"; }
			format(str,sizeof(str),"Лицензия на категорию А:          %s.\n",text1);
            SendClientMessage(playerid, COLOR_GREY, str);
			format(str,sizeof(str),"Лицензия на категорию B:          %s.\n",text2);
            SendClientMessage(playerid, COLOR_GREY, str);
			format(str,sizeof(str),"Лицензия на категорию C:          %s.\n",text3);
            SendClientMessage(playerid, COLOR_GREY, str);
			format(str,sizeof(str),"Лицензия на категорию D:          %s.\n",text4);
            SendClientMessage(playerid, COLOR_GREY, str);
		}
		return true;
	}
	//================================[Выдать все лицензии]=========================
	if(strcmp(cmd, "/agivelicense", true) == 0||strcmp(cmd, "/admgl", true) == 0){
		if(IsPlayerConnected(playerid)){
			if (PlayerInfo[playerid][pAdmin] >= 3){
				new x_nr[256];
				x_nr = strtok(cmdtext, idx);
				if(!strlen(x_nr)) {SendClientMessage(playerid, COLOR_WHITE, "Используйте: /agivelicense [name] [id_игрока/ЧастьИмени]");
					SendClientMessage(playerid, COLOR_WHITE, "Лицензии: KatA,KatB,KatC,KatD, Pilots, Sailing, Fishing, Weapon, all(все лицы).");return true;}
				if(strcmp(x_nr,"KatA",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatA [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали ВУ Категории A %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам ВУ Категории A. ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pCarLicA] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"KatB",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatB [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали ВУ Категории B %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам ВУ Категории B. ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pCarLicB] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"KatC",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatC [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали ВУ Категории C %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам ВУ Категории C. ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pCarLicC] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"KatD",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense KatD [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали ВУ Категории D %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам ВУ Категории D. ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pCarLicD] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"Pilots",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense Pilots [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали лицензию на полеты %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам лицензию на полеты.",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pFlyLic] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"sailing",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense sailing [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid)){
						if(giveplayerid != INVALID_PLAYER_ID){
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали лицензию на водный транспорт %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам лицензию на водный транспорт. ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pBoatLic] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}
				else if(strcmp(x_nr,"all",true) == 0){
					tmp = strtok(cmdtext, idx);
					if(!strlen(tmp))return SendClientMessage(playerid, COLOR_WHITE, "ИСПОЛЬЗОВАНИЕ: /agivelicense all [id_игрока/ЧастьИмени]");
					giveplayerid = ReturnUser(tmp);
					if(IsPlayerConnected(giveplayerid))
					{
						if(giveplayerid != INVALID_PLAYER_ID)
						{
							GetPlayerName(playerid, sendername, sizeof(sendername));
							GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
							format(string, sizeof(string), "* Вы дали комплект лицензий(Рыбалка, вождение, лодки, оружие, летание) игроку %s.",giveplayer);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Админ %s дал вам комплект лицензий(Рыбалка, вождение, лодки, оружие, летание). ",sendername);
							SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
							PlayerInfo[giveplayerid][pBoatLic] = 1;
							PlayerInfo[giveplayerid][pCarLicA] = 1;
							PlayerInfo[giveplayerid][pCarLicB] = 1;
							PlayerInfo[giveplayerid][pCarLicC] = 1;
							PlayerInfo[giveplayerid][pCarLicD] = 1;
							PlayerInfo[giveplayerid][pFlyLic] = 1;return true;}}
					else{SendClientMessage(playerid, COLOR_GREY,OFFLINE);return true;}}}
			else{SendClientMessage(playerid, COLOR_GREY, "Вы не админ! ");return true;}}return true;}
	//==============================================================================
В конце мода

CALLBACK: IsABoat(carid) // Лодки,а,коробли
{
new model = GetVehicleModel(carid);
if(model == 430 || model == 446 || model == 452 || model == 453 || model == 454 || model == 472 || model == 473 || model == 484 || model == 493 || model == 539){return true;}return false;
}
//==============================================================================
CALLBACK: IsAPlane(carid)// Самолёты,вертолёты
{
new model = GetVehicleModel(carid);
if(model == 417 || model == 425 || model == 447 || model == 460 || model == 469 || model == 476 || model == 487 || model == 488 || model == 497 || model == 511 || model == 512 || model == 513 || model == 519 || model == 520 || model == 548 || model == 553 || model == 563 || model == 577 || model == 592 || model == 593){return true;}return false;
}
IsACarA(carid)//Лицензии категории A
{
new m = GetVehicleModel(carid);
if(m==448||m==461||m==463||m==468||m==521||m==523||m==581||m==586||m==522)
{
return true;
}
return false;
}

IsACarB(carid)//Лицензии категории B
{
new m = GetVehicleModel(carid);
if(m==400||m==401||m==402||m==404||m==405||m==409||m==410||m==411||m==412||m==415||m==419
||m==420||m==421||m==422||m==424||m==426||m==429||m==434||m==436||m==438||m==439||m==441
||m==442||m==444||m==445||m==451||m==457||m==458||m==466||m==467||m==470||m==474||m==475
||m==477||m==479||m==480||m==485||m==489||m==490||m==491||m==492||m==494||m==495||m==496
||m==500||m==502||m==503||m==504||m==505||m==506||m==507||m==516||m==517||m==518||m==526
||m==527||m==528||m==529||m==530||m==533||m==534||m==535||m==536||m==540||m==541||m==542
||m==543||m==545||m==546||m==547||m==549||m==550||m==551||m==554||m==555||m==556||m==557
||m==558||m==559||m==560||m==561||m==562||m==565||m==566||m==567||m==568||m==571||m==575
||m==576||m==579||m==580||m==585||m==587||m==596||m==597||m==598||m==599||m==600||m==602
||m==603||m==604||m==605)
{
return true;
}
return false;
}

IsACarC(carid)//Лицензии категории C
{
new m = GetVehicleModel(carid);
if(m==403||m==406||m==407||m==408||m==416||m==427||m==428||m==433||m==435||m==443||m==455||m==456||m==478||m==486||m==514||m==515||m==524||m==532||m==531||m==544
||m==569||m==573||m==578||m==583||m==584||m==590||m==591||m==606||m==607||m==608||m==610||m==432||m==611)
{
return true;
}
return false;
}
IsACarD(carid)//Лицензии категории D
{
new m = GetVehicleModel(carid);
if(m==418||m==431||m==437||m==449||m==459||m==482||m==483||m==414||m==413||m==498||m==437||m==438)
{
return true;
}
return false;
}

IsACarDriving(carid)
{
new model = GetVehicleModel(carid);
if(model == 509 || model == 481 || model == 510|| model == 592 || model == 577 || model == 511
|| model == 512 || model == 593 || model == 520 || model == 553|| model == 476 || model == 519
|| model == 460 || model == 513 || model == 548 || model == 425 || model == 417|| model == 487
|| model == 488 || model == 497 || model == 563 || model == 447 || model == 469|| model == 430
|| model == 446 || model == 452 || model == 453 || model == 454 || model == 472|| model == 473
|| model == 484 || model == 493 || model == 539 || model == 595)
{
return true;
}
return false;
}

//Тестирование ПДД==============================================================
CALLBACK: IO1(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "[Введение]");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_GREEN, "Приветствуем вас в нашей Автошколе г.Южный! Добро пожаловать!");
SendClientMessage(playerid, COLOR_GREEN, "В данной автошколе вы можете обучится вождению на все виды транспорта.");
SendClientMessage(playerid, COLOR_GREEN, "У нас есть 2 способа сдачи на водительские права: Теория+Практика и Экстерн.");
SendClientMessage(playerid, COLOR_GREEN, "Вы предпочли: Экстерн. Пожалуйста прочтите и ознакомьтесь с инструктажем!");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO2(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "[Управление скоростью]");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_GREEN, "Управление скоростью очень важно, так превышение скорости может привести к потере");
SendClientMessage(playerid, COLOR_GREEN, "управляемости и возможной потере жизни. Это увеличивает");
SendClientMessage(playerid, COLOR_GREEN, "возможность попадания в аварию. Очень важно набрать скорость, которая подходит");
SendClientMessage(playerid, COLOR_GREEN, "к текущим условиям (или вы на шоссе или едете по гравию). Не слишком быстро и не слишком медленно.");
SendClientMessage(playerid, COLOR_YELLOW2, " ");
}
CALLBACK: IO3(playerid)
{
SendClientMessage(playerid, COLOR_GREEN, "Также важно не разговаривать по телефону с подружкой и не набирать СМСку, когда");
SendClientMessage(playerid, COLOR_GREEN, "ведёте авто.Это также увеличивает возможность попадания в аварию");
SendClientMessage(playerid, COLOR_GREEN, "пожалуйста, останавливайтесь, когда хотите поговорить по телефону или набрать СМС.");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO4(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "[Дорожные знаки]");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_GREEN, "Белая линия после барьеров означает, что здесь запрещена");
SendClientMessage(playerid, COLOR_GREEN, "стоянка всегда, здесь всегда должно быть свободное место. Это также");
SendClientMessage(playerid, COLOR_GREEN, "означает запрет остановки, кроме случаев критического состояния здоровья. Вам разрешено");
SendClientMessage(playerid, COLOR_GREEN, "остановиться здесь только в том случае, если этого от вас требует полицейский.");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
}
CALLBACK: IO5(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "[Дорожные правила]");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_GREEN, "На четырёхполосной дороге (по 2 полосы на каждый путь) вам");
SendClientMessage(playerid, COLOR_GREEN, "разрешено находиться на левой полосе только при обгоне другого");
SendClientMessage(playerid, COLOR_GREEN, "транспортного средства либо при повороте влево в пределах 100 метров");
SendClientMessage(playerid, COLOR_GREEN, "Вас ждёт уголовная ответственность за нахождение на этой полосе в других случаях.");
SendClientMessage(playerid, COLOR_YELLOW2, " ");
}
CALLBACK: IO6(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "Окончание информационного курса.");
SendClientMessage(playerid, COLOR_YELLOW, "Мы надеемся, что вы обратили на это внимание, так как теперь вам предстоит ответить на несколько вопросов!");
SendClientMessage(playerid, COLOR_YELLOW, "---------------------------------------------------------------------------------------------------");
SetTimerEx("DKT1", 5000, 0, "d", playerid);
}
CALLBACK: DKT1(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать в тест для водителей.");
SendClientMessage(playerid, COLOR_NEWS, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_NEWS, "В тесте, вам будет задано несколько вопросов, чтобы проверить ваши знания");
SendClientMessage(playerid, COLOR_NEWS, "по темам, которые были рассмотрены в теоретическом курсе безопасного вождения.");
SendClientMessage(playerid, COLOR_NEWS, "Если вы ответите неправильно, вы провалите тест, но мы не будем штрафовать вас.");
SendClientMessage(playerid, COLOR_NEWS, "---------------------------------------------------------------------------------------------------");
SendClientMessage(playerid, COLOR_NEWS, "Чтобы ответить на вопрос, просто напишите номер правильного ответа.");
SendClientMessage(playerid, COLOR_NEWS, "Если вопрос содержит два ответа, вы будете уведомлены об этом");
SendClientMessage(playerid, COLOR_NEWS, "Чтобы написать 2 ответа, если ответы были 1 и 2, напишите: 1/2");
SetTimerEx("DKT2", 20000, 0, "d", playerid);
}
CALLBACK: DKT2(playerid)
{
DKT[playerid] = 1;
SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 1]____________________|");
SendClientMessage(playerid, COLOR_YELLOW, "Если на улице с двухсторонним движением Вы услышите сирену спец. автомобиля, Вы должны:");
SendClientMessage(playerid, COLOR_YELLOW, "1: Ускорить движение и освободить дорогу.");
SendClientMessage(playerid, COLOR_YELLOW, "2: Прижаться на сколько можно вправо и остановиться.");
SendClientMessage(playerid, COLOR_YELLOW, "3: Дать сигнал для обгона Вашей машины.");
SendClientMessage(playerid, COLOR_YELLOW, "4: Продолжить движение с прежней скоростью.");
SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:2");
SendClientMessage(playerid, COLOR_RED, " ");
SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT3(playerid)
{
DKT[playerid] = 2;
SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 2]____________________|");
SendClientMessage(playerid, COLOR_YELLOW, "На дороге с двухсторонним движением перед правым поворотом Вы должны занять позицию:");
SendClientMessage(playerid, COLOR_YELLOW, "1: С правой стороны дороги.");
SendClientMessage(playerid, COLOR_YELLOW, "2: С левой стороны дороги.");
SendClientMessage(playerid, COLOR_YELLOW, "3: С правой стороны от разделительной полосы.");
SendClientMessage(playerid, COLOR_YELLOW, "4: Не имеет значения, где остановиться. Водитель подал сигнал поворота.");
SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:1");
SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT4(playerid)
{
DKT[playerid] = 3;
SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 3]____________________|");
SendClientMessage(playerid, COLOR_YELLOW, "Почему опасно использование телефона во время движения?");
SendClientMessage(playerid, COLOR_YELLOW, "1: Набор СМС во время вождения может причинить воспаление пальцев на руках.");
SendClientMessage(playerid, COLOR_YELLOW, "2: Разговор по телефону во время движения может причинить сбой связи.");
SendClientMessage(playerid, COLOR_YELLOW, "3: Разговор по телефону во время движения может обернуться аварией.");
SendClientMessage(playerid, COLOR_YELLOW, "4: Это совсем не опасно.");
SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:3");
SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT5(playerid)
{
DKT[playerid] = 4;
SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 4]____________________|");
SendClientMessage(playerid, COLOR_AMDRED, "[Примечание]: Здесь 2 ответа!");
SendClientMessage(playerid, COLOR_YELLOW, "Что означает белая линия рядом с барьером?");
SendClientMessage(playerid, COLOR_YELLOW, "1: Запрещён поворот направо.");
SendClientMessage(playerid, COLOR_YELLOW, "2: Запрещена парковка в любое время.");
SendClientMessage(playerid, COLOR_YELLOW, "3: Запрещена остановка, кроме случаев критическоо состояния здоровья.");
SendClientMessage(playerid, COLOR_YELLOW, "4: Это ничего не значит.");
SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:2/3");
SendClientMessage(playerid, COLOR_RED, " ");
}
CALLBACK: DKT6(playerid)
{
DKT[playerid] = 5;
SendClientMessage(playerid, COLOR_RED, "|____________________[Вопрос 5]____________________|");
SendClientMessage(playerid, COLOR_AMDRED, "[Примечание]: Здесь 2 ответа!");
SendClientMessage(playerid, COLOR_YELLOW, "Когда вам разрешено находиться на левой полосе, если дорога имеет 4 полосы (по 2 на каждый путь)?");
SendClientMessage(playerid, COLOR_YELLOW, "1: Ожидается поворот налево в пределах 100 метров.");
SendClientMessage(playerid, COLOR_YELLOW, "2: Госпиталь в пределах 150 метров.");
SendClientMessage(playerid, COLOR_YELLOW, "3: Всегда.");
SendClientMessage(playerid, COLOR_YELLOW, "4: При обгоне другого транспортного средства.");
SendClientMessage(playerid, COLOR_RED, "|___________________________________________________|");
SendClientMessage(playerid, COLOR_YELLOW, " [Подсказка]Ответ:1/4");
SendClientMessage(playerid, COLOR_RED, "");
}

CALLBACK: OnPlayerExitVehicle(playerid, vehicleid)
{
SaveCar(vehicleid);
StopAudioStreamForPlayer(playerid);
//
test1[playerid] = 0;
seatbelt[playerid] = 0;
dvig[playerid] = 0;
DisableAll(playerid);
if(TakingLesson[playerid] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Автосдача прекращена, вы покинули автомобиль");
DisablePlayerRaceCheckpoint(playerid); CPL[playerid] = 0;
TakingLesson[playerid] = 0;
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
return 1;
}
return true;
}
stock DisableAll(playerid){SetCameraBehindPlayer( playerid );DestroyObject( Player[playerid][camobj] );return true;}

в public OnPlayerText(playerid, text[])

new sendername[MAX_PLAYER_NAME];
new tmp[256];
new string[256];
// new giveplayerid;
//Тестирование ПДД==============================================================
if(DKT[playerid] > 0)
{
if(DKT[playerid] == 1)
{
new idx;
tmp = strtok(text, idx);
if((strcmp("2", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2")))//Тут правильный ответ будет 2
{
SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
SetTimerEx("DKT3", 5000, 0, "d", playerid);
return 0;
}
else
{
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, COLOR_RED, " Неверно");
DKT[playerid] = 0;
}
return 0;
}
else if(DKT[playerid] == 2)
{
new idx;
tmp = strtok(text, idx);
if((strcmp("1", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1")))//Тут правильный ответ будет 1
{
SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
SetTimerEx("DKT4", 5000, 0, "d", playerid);
return 0;
}
else
{
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
SendClientMessage(playerid, COLOR_RED, " Неверно");
TogglePlayerControllable(playerid,1);
DKT[playerid] = 0;
}
return 0;
}
else if(DKT[playerid] == 3)
{
new idx;
tmp = strtok(text, idx);
if((strcmp("3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("3")))//Тут правильный ответ будет 3
{
SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
SetTimerEx("DKT5", 5000, 0, "d", playerid);
return 0;
}
else
{
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
SendClientMessage(playerid, COLOR_RED, " Неверно");
TogglePlayerControllable(playerid,1);
DKT[playerid] = 0;
}
return 0;
}
else if(DKT[playerid] == 4)
{
new idx;
tmp = strtok(text, idx);
if((strcmp("2/3", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("2/3")))//Тут правильный ответ будет 2 и 3
{
SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
SetTimerEx("DKT6", 5000, 0, "d", playerid);
return 0;
}
else
{
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
SendClientMessage(playerid, COLOR_RED, " Неверно");
TogglePlayerControllable(playerid,1);
DKT[playerid] = 0;
}
return 0;
}
else if(DKT[playerid] == 5)
{
new idx;
tmp = strtok(text, idx);
if((strcmp("1/4", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("1/4")))//Тут правильный ответ будет 1 и 4
{
SendClientMessage(playerid, COLOR_YELLOW2, " Верно");
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
DKT[playerid] = 0;
SendClientMessage(playerid, COLOR_RED, "Скажи спасибо разработчику за подсказки :3");
SendClientMessage(playerid, COLOR_RED, "___________________________________");
SendClientMessage(playerid, COLOR_YELLOW, " Поздравляем! Вы успешно сдали тест на права");
SendClientMessage(playerid, COLOR_YELLOW, " Перейдём к практической части экзамена.");
pTestPDD[playerid] = 0;
TogglePlayerControllable(playerid,1);
PlayerInfo[playerid][pMoney] -= 5000;
TakingLesson[playerid] = 0;
if(TakingLesson[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Урок уже начался!");
return 1;
}
SendClientMessage(playerid, COLOR_GREEN, "Автосдача начата, выйдите на улицу и сядьте в автомобиль");
SendClientMessage(playerid, COLOR_YELLOW, "Инструктор:Нажмите Y чтобы открыть ворота!");
LessonStat[playerid] = 0;
LessonCar[playerid] = 1;
TakingLesson[playerid] = 1;
}
else
{
SetPlayerPos(playerid, 2144.6,-2196.5,23.2);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, COLOR_RED, " Неправильно");
DKT[playerid] = 0;
}
return 0;
}
return 0;
}
GetPlayerName(playerid,sendername,sizeof(sendername));
format(string, sizeof(string), "%s говорит: %s", sendername,text);
ProxDetector(20.0, playerid, string, COLOR_FADE1,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4);
return 0;

в public OnPlayerEnterRaceCheckpoint(playerid)

new string[256];
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(LessonCar[playerid] == 1)
{
switch(pLessonCar[playerid])
{
case CHECKPOINT_1:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_2;
SetPlayerRaceCheckpoint(playerid, 0,2232.0808,-2136.6714,21.4338,2314.4534,-2157.0847,21.4354, 5.0);
}
case CHECKPOINT_2:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_3;
SetPlayerRaceCheckpoint(playerid, 0,2314.4534,-2157.0847,21.4354,2443.8726,-2158.4189,21.4341, 5.0);
}
case CHECKPOINT_3:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_4;
SetPlayerRaceCheckpoint(playerid, 0,2443.8726,-2158.4189,21.4341,2468.6079,-1993.7078,21.4354, 5.0);
}
case CHECKPOINT_4:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_5;
SetPlayerRaceCheckpoint(playerid, 0,2468.6079,-1993.7078,21.4354,2370.3406,-1872.0608,21.4353, 5.0);
}
case CHECKPOINT_5:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_6;
SetPlayerRaceCheckpoint(playerid, 0,2370.3406,-1872.0608,21.4353,2304.1343,-1867.5062,21.4318, 5.0);
}
case CHECKPOINT_6:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_7;
SetPlayerRaceCheckpoint(playerid, 0,2304.1343,-1867.5062,21.4318,2292.2390,-1806.7009,21.4335, 5.0);
}
case CHECKPOINT_7:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_8;
SetPlayerRaceCheckpoint(playerid, 0,2292.2390,-1806.7009,21.4335,2360.7078,-1761.2458,23.7128, 5.0);
}
case CHECKPOINT_8:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_9;
SetPlayerRaceCheckpoint(playerid, 0,2360.7078,-1761.2458,23.7128,2743.0493,-2157.4224,20.6347, 5.0);
}
case CHECKPOINT_9:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_10;
SetPlayerRaceCheckpoint(playerid, 0,2743.0493,-2157.4224,20.6347,2680.7212,-2682.1331,24.8850, 5.0);
}
case CHECKPOINT_10:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_11;
SetPlayerRaceCheckpoint(playerid, 0,2680.7212,-2682.1331,24.8850,2504.3936,-2682.4084,25.0838, 5.0);
}
case CHECKPOINT_11:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_12;
SetPlayerRaceCheckpoint(playerid, 0,2504.3936,-2682.4084,25.0838,2308.8057,-2682.3015,24.8772, 5.0);
}
case CHECKPOINT_12:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_13;
SetPlayerRaceCheckpoint(playerid, 0,2308.8057,-2682.3015,24.8772,1700.5945,-2682.2849,21.5855, 5.0);
}
case CHECKPOINT_13:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_14;
SetPlayerRaceCheckpoint(playerid, 0,1700.5945,-2682.2849,21.5855,1597.9015,-2655.5798,23.3586, 5.0);
}
case CHECKPOINT_14:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_15;
SetPlayerRaceCheckpoint(playerid, 0,1597.9015,-2655.5798,23.3586,1491.5271,-2465.2705,16.7380, 5.0);
}
case CHECKPOINT_15:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_16;
SetPlayerRaceCheckpoint(playerid, 0,1491.5271,-2465.2705,16.7380,1750.0513,-2075.8474,23.3548, 5.0);
}
case CHECKPOINT_16:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_17;
SetPlayerRaceCheckpoint(playerid, 0,1750.0513,-2075.8474,23.3548,1883.5763,-2020.7983,30.7537, 5.0);
}
case CHECKPOINT_17:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_18;
SetPlayerRaceCheckpoint(playerid, 0,1883.5763,-2020.7983,30.7537,2018.3058,-2125.8318,21.3817, 5.0);
}
case CHECKPOINT_18:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_19;
SetPlayerRaceCheckpoint(playerid, 0,2018.3058,-2125.8318,21.3817,2123.1370,-2155.6719,21.3825, 5.0);
}
case CHECKPOINT_19:
{

GameTextForPlayer(playerid, string, 5000, 4);
LessonStat[playerid]++;
pLessonCar[playerid] = CHECKPOINT_20;
SetPlayerRaceCheckpoint(playerid, 0,2123.1370,-2155.6719,21.3825,2127.3125,-2209.3445,21.3865, 5.0);
}
case CHECKPOINT_20:
{
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if (health >= 850)
{
JobCarTime[playerid] = 0;
LessonCar[playerid] = 0;
LessonStat[playerid] = 0;
TakingLesson[playerid] = 0;
PlayerInfo[playerid][pCarLicA] = 1;
PlayerInfo[playerid][pCarLicB] = 1;
PlayerInfo[playerid][pCarLicC] = 1;
PlayerInfo[playerid][pCarLicD] = 1;
DisablePlayerRaceCheckpoint(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Вы успешно сдали на права! Пожалуйста припаркуйте автомобиль!");
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не достаточно хорошо водите, чтобы получить права");
JobCarTime[playerid] = 0;
LessonCar[playerid] = 0;
LessonStat[playerid] = 0;
TakingLesson[playerid] = 0;
}
}
}
}
}

public OnGameModeInit()

 
//========================================[АШ]==========================================
//
new nomer0, Text3D:nomeru0;
nomer0 = instcar[0] = AddStaticVehicleEx(502, 2138.8169, -2209.2642, 21.7243, 0.3185,3,1,150); //
nomeru0 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru0, nomer0, 0.0, 0.0, 2.0 );
//
new nomer1, Text3D:nomeru1;
nomer1 = instcar[1] = AddStaticVehicleEx(502, 2134.6306, -2209.2603, 21.7243, 0.1969,3,1,150); //
nomeru1 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru1, nomer1, 0.0, 0.0, 2.0 );
//
new nomer2, Text3D:nomeru2;
nomer2 = instcar[2] = AddStaticVehicleEx(494, 2130.4304, -2209.2188, 21.7243, 0.1969,3,1,150); //
nomeru2 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru2, nomer2, 0.0, 0.0, 2.0 );
//
new nomer3, Text3D:nomeru3;
nomer3 = instcar[3] = AddStaticVehicleEx(494, 2126.1509, -2209.1458, 21.7243, 0.1969,3,1,150); //
nomeru3 = Create3DTextLabel( "Учебная", 0xFF0000, 0.0,0.0,0.0,15.0,0,1);
Attach3DTextLabelToVehicle( nomeru3, nomer3, 0.0, 0.0, 2.0 ); 
На этом всё!

Вродебы я не чего не забыл.

Если будут ошибки пишите в коментарии

Помог поставте +!

 
Последнее редактирование модератором:

kamkam669

Новичок
Пользователь
26.07.2016
3
0
0
Ошибки

Код:
C:\Users\User\Desktop\758\gamemodes\new.pwn(1721) : warning 208: function with tag result used before definition, forcing reparse
C:\Users\User\Desktop\758\gamemodes\new.pwn(54) : error 017: undefined symbol "instcar"
C:\Users\User\Desktop\758\gamemodes\new.pwn(54) : warning 215: expression has no effect
C:\Users\User\Desktop\758\gamemodes\new.pwn(54) : error 001: expected token: ";", but found "]"
C:\Users\User\Desktop\758\gamemodes\new.pwn(54) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\758\gamemodes\new.pwn(54) : fatal error 107: too many error messages on one line


Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase




4 Errors.
Код:
54: nomer0 = instcar[0] = AddStaticVehicleEx(502, 2138.8169, -2209.2642, 21.7243, 0.3185,3,1,150); //
1721: CALLBACK: IO1(playerid)
 
Последнее редактирование модератором:

sasha_vip3

Новичок
Пользователь
19.03.2016
34
0
0
 Добавте ко всем глобалным переменным: 

Код:
new instcar;
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
не просто new instcar,а с массивом new instcar[4];

 

laku

Новичок
Пользователь
06.07.2017
1
2
0
C:\Users\Admin\Desktop\Criminal Russia RolePlay\gamemodes\CRRP.pwn(16569) : error 028: invalid subscript (not an array or too many subscripts): "pTestPDD"
C:\Users\Admin\Desktop\Criminal Russia RolePlay\gamemodes\CRRP.pwn(16569) : warning 215: expression has no effect
C:\Users\Admin\Desktop\Criminal Russia RolePlay\gamemodes\CRRP.pwn(16569) : error 001: expected token: ";", but found "]"
C:\Users\Admin\Desktop\Criminal Russia RolePlay\gamemodes\CRRP.pwn(16569) : error 029: invalid expression, assumed zero
C:\Users\Admin\Desktop\Criminal Russia RolePlay\gamemodes\CRRP.pwn(16569) : fatal error 107: too many error messages on one line
Что же мне делать

 
Последнее редактирование модератором:

weberta

Новичок
Пользователь
13.03.2017
0
1
0
Откуда брать такие координаты??

Код:
2232.0808,-2136.6714,21.4338,2314.4534,-2157.0847,21.4354
 

max12330

Освоившийся
Пользователь
30.04.2016
288
1
65
0
Скриптер
@weberta,Заходишь в игру встаёшь на место откуда тебе надо взять координаты и пишешь /save потом идёшь в Мои документы\GTA San Andreas User Files\pawno-crmp\GenerationC,и потом открываешь файл savedpositions,И там лежат твои координаты 

 
  • Like
Реакции: Сергей Мавроди