Osee
Начинающий
- Регистрация
- 13 Фев 2012
- Сообщения
- 29
- Лучшие ответы
- 0
- Репутация
- 69
Здравствуйте пользователи Pawno-Info
Вот решил сделать работу водителя автобуса как на Gameland,строго не судите,это моя первая работа с таймерами и с чекпоинтами :df:
И так давайте начнём...
Примечание: Честно скажу с таймерами работать не умею,как смог так и сделал
Ко Всем new
в public OnPlayerConnect
в public CarEnter
в public OnPlayerEnterCheckpoint(playerid)
ко всем forward
в конец мода
в public OnPlayerCommandText
в public OnDialogResponse
в public OnGameModeInit
Ах да) я сделал только Межгородской рейс,как нибудь доделаю внутригородской,ну или сами сделаете по коду..))
Если понравилось поставьте "Спасибо" :bq:
ВНИМАНИЕ: Если вы хотите чтобы в SA-MP у вас был русский текст
То Установите вот этот плагин ТыК :bu:
Автор: Osee
---------- Post added at 22:09 ---------- Previous post was at 21:33 ----------
Коментируем..)
Вот решил сделать работу водителя автобуса как на Gameland,строго не судите,это моя первая работа с таймерами и с чекпоинтами :df:
И так давайте начнём...
Примечание: Честно скажу с таймерами работать не умею,как смог так и сделал
Ко Всем new
PHP:
new vodavus1;
new vodavus2;
new DRIVEBUS[MAX_PLAYERS];
PHP:
DRIVEBUS[playerid] = 0;
PHP:
if(carid >= vodavus1 && carid <= vodavus2)
{
if(PlayerInfo[playerid][pJob] == 14)
{
}
else
{
SendClientMessage(playerid, COLOR_GREY, "{FFFFFF}Транспорт {FF9900}Водитилей Автобуса");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
}
PHP:
if(DRIVEBUS[playerid]==1)
{
new carid = GetPlayerVehicleID(playerid);
if(carid >= vodavus1 && carid <= vodavus2)
{
if(PlayerToPoint(4,playerid,1544.3622,-1736.9988,13.3828))
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
TogglePlayerControllable(playerid,0);
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Клуб Алхамбра'", 5000, 3);
SetTimer("avto5sec",5000,0);
SetPlayerCheckpoint(playerid,1826.6260,-1631.3671,13.3828,4.0);
}
else if(PlayerToPoint(4,playerid,1826.6260,-1631.3671,13.3828))
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
GameTextForPlayer(playerid, "~g~Следующая Остановка: Ресторан", 5000, 3);
SetPlayerCheckpoint(playerid,1457.4358,-1587.8442,13.3828,4.0);
}
else if(PlayerToPoint(4,playerid,1457.4358,-1587.8442,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Фирма Оружейник'", 5000, 3);
SetPlayerCheckpoint(playerid,1362.2927,-1262.2410,13.3828,4.0);
}
else if(PlayerToPoint(4,playerid,1362.2927,-1262.2410,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Бургер Север'", 5000, 3);
SetPlayerCheckpoint(playerid,1179.9574,-936.1827,42.7694,4.0);
}
else if(PlayerToPoint(4,playerid,1179.9574,-936.1827,42.7694))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto10sec",10000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 10 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Метро'", 5000, 3);
SetPlayerCheckpoint(playerid,792.7281,-1349.0194,13.38285,4.0);
}
else if(PlayerToPoint(4,playerid,792.7281,-1349.0194,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Бургер Юг'", 5000, 3);
SetPlayerCheckpoint(playerid,806.6112,-1656.2727,13.3828,4.0);
}
else if(PlayerToPoint(4,playerid,806.6112,-1656.2727,13.3828))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Авторынок 'Пляж'", 5000, 3);
SetPlayerCheckpoint(playerid,342.8739,-1695.6742,6.6066,4.0);
}
else if(PlayerToPoint(4,playerid,342.8739,-1695.6742,6.6066))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto10sec",10000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 10 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 24/7", 5000, 3);
SetPlayerCheckpoint(playerid,-100.6537,-1150.3279,1.6286,4.0);
}
else if(PlayerToPoint(4,playerid,-100.6537,-1150.3279,1.6286))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Объездная Дорога", 5000, 3);
SetPlayerCheckpoint(playerid,-278.4216,-830.3887,43.7549,4.0);
}
else if(PlayerToPoint(4,playerid,-278.4216,-830.3887,43.7549))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Тоннель", 5000, 3);
SetPlayerCheckpoint(playerid,-1214.1715,-744.0644,61.0327,4.0);
}
else if(PlayerToPoint(4,playerid,-1214.1715,-744.0644,61.0327))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: АвтоШкола", 5000, 3);
SetPlayerCheckpoint(playerid,-2037.5271,-74.9355,35.1719,4.0);
}
else if(PlayerToPoint(4,playerid,-2037.5271,-74.9355,35.1719))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto15sec",15000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 15 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Бизнес 'Заправки'", 5000, 3);
SetPlayerCheckpoint(playerid,-1804.0001,-152.3979,7.3699,4.0);
}
else if(PlayerToPoint(4,playerid,-1804.0001,-152.3979,7.3699))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Тоннель'", 5000, 3);
SetPlayerCheckpoint(playerid,-1203.7743,-748.7012,60.7062,4.0);
}
else if(PlayerToPoint(4,playerid,-1203.7743,-748.7012,60.7062))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: 24/7", 5000, 3);
SetPlayerCheckpoint(playerid,-107.7805,-1140.2737,1.2890,4.0);
}
else if(PlayerToPoint(4,playerid,-107.7805,-1140.2737,1.2890))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Въезд в ЛС", 5000, 3);
SetPlayerCheckpoint(playerid,179.6366,-1534.4818,12.6195,4.0);
}
else if(PlayerToPoint(4,playerid,179.6366,-1534.4818,12.6195))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Сырьевая", 5000, 3);
SetPlayerCheckpoint(playerid,592.6445,-1233.8846,17.7619,4.0);
}
else if(PlayerToPoint(4,playerid,592.6445,-1233.8846,17.7619))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto10sec",10000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 10 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Авторынок 'Дешевочка'", 5000, 3);
SetPlayerCheckpoint(playerid,722.5291,-1410.0186,13.3660,4.0);
}
else if(PlayerToPoint(4,playerid,722.5291,-1410.0186,13.3660))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto3sec",3000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 3 секунды");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Таксопарк", 5000, 3);
SetPlayerCheckpoint(playerid,1274.1553,-1410.7878,13.0500,4.0);
}
else if(PlayerToPoint(4,playerid,1274.1553,-1410.7878,13.0500))
{
DisablePlayerCheckpoint(playerid);
SetTimer("avto5sec",5000,0);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Остановка 5 секунд");
GameTextForPlayer(playerid, "~g~Следующая Остановка: Конечная", 5000, 3);
SetPlayerCheckpoint(playerid,1181.5297,-1828.4835,13.4018,4.0);
}
else if(PlayerToPoint(4,playerid,1181.5297,-1828.4835,13.4018))
{
{
DisablePlayerCheckpoint(playerid);
DRIVEBUS[playerid] = 0;
NormMoney[playerid] = 2;
AntiMoney[playerid] = AntiMoney[playerid] + 270;
GivePlayerMoney(playerid, 270);
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_YELLOW, "Поздровляем вы успешно закончили свой рейс");
SendClientMessage(playerid, COLOR_YELLOW, "Получите свои деньги: 270$");
TransportDuty[playerid] = 0;
format(string, sizeof(string), "* Вы заработали $%d", TransportMoney[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
NormMoney[playerid] = 2;
AntiMoney[playerid] = AntiMoney[playerid] + TransportMoney[playerid];
GivePlayerMoney(playerid, TransportMoney[playerid]);
ConsumingMoney[playerid] = 1; TransportValue[playerid] = 0; TransportMoney[playerid] = 0;
}
}
}
}
PHP:
forward avto3sec(playerid);
forward avto5sec(playerid);
forward avto10sec(playerid);
forward avto15sec(playerid);
PHP:
public avto3sec(playerid)
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Продолжайте движение к следующей остановке!");
}
public avto5sec(playerid)
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Продолжайте движение к следующей остановке!");
}
public avto10sec(playerid)
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Продолжайте движение к следующей остановке!");
}
public avto15sec(playerid)
{
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "Продолжайте движение к следующей остановке!");
}
PHP:
if(strcmp(cmdtext, "/drivebus", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new carid = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pJob] == 14)
{
if(carid >= vodavus1 && carid <= vodavus2)
{
new listitems[] = "{99ff99}Межгородской рейс LS-SF (270$ рейс)\n{ff0000}Внутригородской LS (150$ рейс)";
ShowPlayerDialog(playerid,9496,DIALOG_STYLE_LIST,"Выбор маршрута",listitems,"Ок","Назад");
}
}
}
return 1;
}
PHP:
if(dialogid == 9496) // Meele
{
if(response)
{
if(listitem == 0) // Meele
{
new s[256];
format(s,sizeof(s),"Введите стоимость билета за проезд");
ShowPlayerDialog(playerid,5432,DIALOG_STYLE_INPUT,"Стоимость билета",s,"Ок","Назад");
}
if(listitem == 1) // Meele
{
new s[256];
format(s,sizeof(s),"Введите стоимость билета за проезд");
ShowPlayerDialog(playerid,5432,DIALOG_STYLE_INPUT,"Стоимость билета",s,"Ок","Назад");
}
}
return 1;
}
if(dialogid==5432)
{
if(response)
{
if(!strlen(inputtext))
{
new s[256];
format(s,sizeof(s),"Введите стоимость билета за проезд");
ShowPlayerDialog(playerid,5432,DIALOG_STYLE_INPUT,"Стоимость билета",s,"Ок","Назад");
return 1;
}
new vodav;
getdate(vodav);
new Vodite[1][20];
split(inputtext, Vodite, '@');
/* if(strlen(inputtext) < 1 || strlen(inputtext) > 3)
{
//SendClientMessage(playerid, COLOR_GRAD1, "{ff0000}x {ffffff}Длинна E-Mail адреса может составлять от {ff0000}5 {ffffff}до {ff0000}40 {ffffff}символов");
ShowPlayerDialog(playerid,5432,DIALOG_STYLE_MSGBOX,"{ffffff}Ошибка!","{ff0000}x {ffffff}Длинна суммы может состовлять от {ff0000}1 {ffffff}до {ff0000}3 {ffffff}символов","Повтор","");
return 1;
}*/
if(!strlen(inputtext))
{
new s[256];
format(s,sizeof(s),"Введите стоимость билета за проезд");
ShowPlayerDialog(playerid,5432,DIALOG_STYLE_INPUT,"Стоимость билета",s,"Ок","Назад");
return 1;
}
moneys = strval(inputtext);
if(moneys < 1 || moneys > 10) { SendClientMessage(playerid, COLOR_GREY, "Цена не может быть меньше 1 и больше 10$!"); return 1; }
BusDrivers += 1; TransportDuty[playerid] = 2; TransportValue[playerid]= moneys;
SendClientMessage(playerid, COLOR_LIGHTRED2, "--------- Межгородской Рейс Лос-Сантос - Сан-фиеро -----------");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}Автобусный парк LS >> Мэрия >> Клуб Алхамбра >> Ресторан >>");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}Фирма 'Оружейник' >> Бургер 'Север' >> Метро >> Бургер 'Юг' >>");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}Авторынок 'Пляж' >> 24/7 >> Объездная дорога >> Тоннель >>");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}Развилка >> Автошкола >> Бизнес 'Заправки' >> Тоннель >>");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}24/7 >> Въезд в ЛС >> Сырьевая >>");
SendClientMessage(playerid, COLOR_LIGHTRED2, "{4169e1}Авторынок 'Дешевочка' >> Пейнтболл >> Конечная <<");
SendClientMessage(playerid, COLOR_LIGHTRED2, " ");
SendClientMessage(playerid, COLOR_GREEN, "Маркеры будут появляться {FF0000}во время выполнения маршрута. Зарплата на последней точке.");
SendClientMessage(playerid, COLOR_GREEN, "Игроки на следующих остановкак будут уведомлены о вашем прибытии.");
SetPlayerCheckpoint(playerid,1544.3622,-1736.9988,13.3828,4.0);
DRIVEBUS[playerid] = 1;
GameTextForPlayer(playerid, "~g~Следующая Остановка Остановка~n~'Мэрия'", 5000, 3);
return 0;
}
else
{
new listitems[] = "{99ff99}Межгородской рейс LS-SF (270$ рейс)\n{ff0000}Внутригородской LS (150$ рейс)";
ShowPlayerDialog(playerid,9496,DIALOG_STYLE_LIST,"Выбор маршрута",listitems,"Ок","Назад");
return 1;
}
}
PHP:
vodavus1 = AddStaticVehicleEx(437,1187.04479980,-1773.77868652,13.82031250,0.00000000,6,6,SPAWN_CARS); //Coach792
AddStaticVehicleEx(437,1187.10693359,-1760.94836426,13.82031250,0.00000000,6,6,60000); //Coach793
AddStaticVehicleEx(437,1167.70556641,-1773.75378418,13.82031250,0.00000000,3,3,60000); //Coach794
AddStaticVehicleEx(437,1173.11621094,-1787.56970215,13.64843750,0.00000000,3,3,60000); //Coach 424
AddStaticVehicleEx(437,1181.53002930,-1789.36767578,13.64843750,0.00000000,6,6,60000); //Coach 425
vodavus2 = AddStaticVehicleEx(437,1167.65917969,-1761.03894043,13.82031250,0.00000000,3,3,60000);//Coach 426 //Coach795
Если понравилось поставьте "Спасибо" :bq:
ВНИМАНИЕ: Если вы хотите чтобы в SA-MP у вас был русский текст
PHP:
GameTextForPlayer(playerid, "~g~Следующая Остановка: 'Клуб Алхамбра'", 5000, 3);
Автор: Osee
---------- Post added at 22:09 ---------- Previous post was at 21:33 ----------
Коментируем..)