Перейти к содержанию
Авторизация  
Vladimir_Kulkov

Гонка на роликах.

Рекомендуемые сообщения

Vladimir_Kulkov

Администратор запускает гонку /startrace и через 2 минуты начинается гонка. В конце гонки пишет, кто каким пришел. Игрок пришедший первым - получает 30.000р, второй - 20.000р, третий - 10.000р. Сумму можете изменить в дефайнах. Также, администратор может в любой момент остановить гонку - /stoprace

 

Ко всем #define

 

#define RolikiMesto_1 30000

#define RolikiMesto_2 20000

#define RolikiMesto_3 10000

К глобальным переменным (где все new):

 

new RolikiPos = 0;

new RolikiGonkaIdet = 0;

new RolikCheckpoint[MAX_PLAYERS];

new TimeBeforeRolikStart = -1;

new Float:GonkaNaRolikax[10][3] = {

{1707.0135,-760.7014,52.4240},

{1698.2628,-486.6554,50.5412},

{1499.1722,-424.8036,34.0544},

{1273.3207,-605.4467,101.9943},

{929.7842,-674.3187,118.4844},

{1037.2098,-782.0674,104.0520},

{1370.2609,-934.4410,34.1875},

{1343.0232,-1143.7323,23.6696},

{798.5080,-1149.0479,23.9775},

{664.5610,-1313.6588,13.4609}};

В public OnPlayerConnect

 

RolikCheckpoint[playerid] = -1;

В public OnPlayerCommandText

 

if(!strcmp(cmd, "/startrace", true))

{

if(PlayerInfo[playerid][pAdmin]

RolikiPos = 1;

RolikiGonkaIdet = 1;

for(new id = 0; id

{

SetPlayerCheckpoint(id,GonkaNaRolikax[0][0],GonkaNaRolikax[0][1],GonkaNaRolikax[0][2],3);

RolikCheckpoint[id] = 0;

}

SendClientMessageToAll(COLOR_WHITE,"Администратор начинает гонку на роликах!");

return 1;

}

if(!strcmp(cmd, "/stoprace", true))

{

if(PlayerInfo[playerid][pAdmin]

RolikiPos = 0;

RolikiGonkaIdet = 0;

for(new id = 0; id

{

if(RolikCheckpoint[id] != -1)

{

RolikCheckpoint[id] = -1;

DisablePlayerCheckpoint(id);

}

}

SendClientMessageToAll(COLOR_WHITE,"Администратор заканчивает гонку на роликах!");

return 1;

}

В public OnPlayerEnterCheckpoint

 

if(RolikCheckpoint[playerid] != -1)

{

if(GetPlayerSkin(playerid) != 92 && GetPlayerSkin(playerid) != 99) return SendClientMessage(playerid,COLOR_GREY,"На тебе нет роликов!");

else if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Жульничать нехорошо! Вылазь из транспортного средства!");

else if(RolikiGonkaIdet == 0)

{

RolikCheckpoint[playerid] = -1;

DisablePlayerCheckpoint(playerid);

}

else if(RolikCheckpoint[playerid]

{

if(RolikCheckpoint[playerid] == 0 && TimeBeforeRolikStart == -1)

{

SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 2 минуты");

TimeBeforeRolikStart = 120;

return 1;

}

RolikCheckpoint[playerid] ++;

SetPlayerCheckpoint(playerid,GonkaNaRolikax[RolikCheckpoint[playerid]][0],GonkaNaRolikax[RolikCheckpoint[playerid]][1],GonkaNaRolikax[RolikCheckpoint[playerid]][2],3);

}

else if(RolikCheckpoint[playerid] == 9)

{

if(RolikiPos == 1) GivePlayerMoney(playerid,RolikiMesto_1);

else if(RolikiPos == 2) GivePlayerMoney(playerid,RolikiMesto_2);

else if(RolikiPos == 3) GivePlayerMoney(playerid,RolikiMesto_3);

DisablePlayerCheckpoint(playerid);

format(string,sizeof(string),"%s пришел %d в гонке на роликах",name,RolikiPos);

SendClientMessageToAll(COLOR_YELLOW,string);

RolikiPos ++;

RolikCheckpoint[playerid] = -1;

}

}

В секундный таймер (тот который работает каждую секунду):

 

if(TimeBeforeRolikStart > 0)

{

TimeBeforeRolikStart --;

switch(TimeBeforeRolikStart)

{

case 110: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:50");

case 100: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:40");

case 90: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:30");

case 80: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:20");

case 70: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:10");

case 60: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 1:00");

case 50: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:50");

case 40: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:40");

case 30: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:30");

case 20: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:20");

case 10: SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах начнется через 0:10");

case 0:

{

TimeBeforeRolikStart = -1;

SendClientMessageToAll(COLOR_WHITE,"Гонка на роликах началась!");

for(new i = 0; i

{

if(RolikCheckpoint != -1)

{

if(IsPlayerInRangeOfPoint(i,8.0,GonkaNaRolikax[0][0],GonkaNaRolikax[0][1],GonkaNaRolikax[0][2]))

{

SetPlayerCheckpoint(i,GonkaNaRolikax[1][0],GonkaNaRolikax[1][1],GonkaNaRolikax[1][2],3);

RolikCheckpoint = 1;

}

else

{

RolikCheckpoint = -1;

DisablePlayerCheckpoint(i);

}

}

}

}

}

}

 

Автор: неизвестен.

Изменено пользователем Vladimir_Kulkov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.