Здравствуйте!
Я ищу таймер, что бы когда выходишь из автобуса, оно давало отсчёт в секундах, а по истечению времени - спавнило автобус(как на Ыаmp-Яр)
Здравствуйте!
Я ищу таймер, что бы когда выходишь из автобуса, оно давало отсчёт в секундах, а по истечению времени - спавнило автобус(как на Ыаmp-Яр)
Эм, что то типо
При начале работы
В OnPlayerStateChangePHP код:
SetPVarInt(playerid, "NaRabote", 1);
В секундный таймер с циклом на игроковPHP код:
if(GetPVarInt(playerid,"NaRabote") == 1)//(Если есть уже у вас переменная отвечающая за то работает ли игрок, замените проверку на свою)Если игрок работает автобусником, вышел на дежурство, то
{
SetPVarInt(playerid,"TimeForPiss", 16);//Задаем пвару значение 16.
SendClientMessage(playerid, -1, "У вас есть 15 секунд, чтобы вернуться в транспорт! Иначе маршрут будет закончен!");
}
PHP код:
if(GetPVarInt(i, "TimeForPiss") > 0)
{
SetPVarInt(i, "TimeForPiss", GetPVarInt(i, "TimeForPiss") - 1);
format(string,32,"~r~%d",GetPVarInt(i, "TimeForPiss"));
GameTextForPlayer(i, string, 2000, 6);
if(GetPVarInt(i, "TimeForPiss") == 0)
{
//Тут удаляем пвар с временем и о, даем ему деньги за работу спавним автобус и т.д.
}
}
"Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.
Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE
Vetalll (27.08.2014)
PHP код:
new TimerCar[MAX_PLAYERS];
new RespawnTimer[MAX_PLAYERS];
new vehicle[MAX_PLAYERS];
PHP код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
vehicle[playerid] = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicle[playerid]) == id автобуса)
{
/*if(RespawnTimer[playerid] > 0) KillTimer(TimerCar[playerid]);*/
TimerCar[playerid] = SetTimerEx("Respawn_",1000,true,"i",playerid);
RespawnTimer[playerid] = 60;
}
return 1;
}
PHP код:
public Respawn_(playerid)
{
if(--RespawnTimer[playerid] == 0)
{
SetVehicleToRespawn(vehicle[playerid]);
KillTimer(TimerCar[playerid]);
}
return 1;
}
Вроде бы так
- - - Добавлено - - -
PHP код:
public Respawn_(playerid)
{
if(--RespawnTimer[playerid] == 0)
{
SetVehicleToRespawn(vehicle[playerid]);
KillTimer(TimerCar[playerid]);
}
else
{
new string[4];
valstr(string, RespawnTimer[playerid]);
GameTextForPlayer(playerid, string, 1000, 4);
}
return 1;
}
Vetalll (27.08.2014)
Зачем тут KillTimer и запись ID таймера? Для кого придуман третий параметр в SetTimerEx?
А вообще проще сделать как-то так:
Получится замкнутая система, которая не требует каких-либо левых переменных. Правда код не тестировал. Авось допустил где ошибкуPHP код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(GetVehicleModel(vehicleid) == /*id модели автобуса*/)
{
SetTimerEx("RespawnBus", 1000, false, "iii", playerid, vehicleid, gettime()+30);
SendClientMessage(playerid, -1, "У вас есть 30 секунд для того, чтоб вернуться в автобус");
}
return 1;
}
forward RespawnBus(playerid, vehicleid, time);
public RespawnBus(playerid, vehicleid, time)
{
if(GetPlayerVehicleID(playerid) == vehicleid) return 1;
new get_time = gettime();
if(time > get_time)
{
new string[56];
format(string, sizeof(string), "У вас есть %d секунд для того, чтоб вернуться в автобус", time-get_time);
SendClientMessage(playerid, -1, string);
SetTimerEx("RespawnBus", 1000, false, "iii", playerid, vehicleid, time-1);
return 1;
}
else return SetVehicleToRespawn(vehicleid);
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Vetalll (27.08.2014)
Вопрос решен! Большое спасибо, всем! Тема закрыта!
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)