Вот придумал такую шнягу давненько, у себя уже реализовал (не плагиатил нах ничо! ) и вот вам поведаю, нигде таких штук не видел раньше, диво штуки эти - такси, которые возят сами, знаю, что может сделать любой, но дабы не услажнять вам жизнь расскажу.
В начало
[pwn]new Menu:taxi[/pwn]
Далее разберемся с таймерами, допустим если пункотов назначения будет 3, делаем 3 ньюшки и 3 форварда, например:
[pwn]forward TaxiTimer1(playerid);
forward TaxiTimer2(playerid);
forward TaxiTimer3(playerid);[/pwn]
и
[pwn]new taxitimer1;
new taxitimer2;
new taxitimer3;[/pwn] Сначала работаем над менюшкой, в
public OnGameModeInit()
[pwn]taxi = CreateMenu("KyDa Hax?", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(taxi, 0, "A");
AddMenuItem(taxi, 0, "B");
AddMenuItem(taxi, 0, "C");[/pwn]
далее делаем, в
public OnPlayerSelectedMenuRow(playerid, row)
[pwn]new Menu:current;
current = GetPlayerMenu(playerid);
if(current == menu)
{
switch(row)
{
case 0:{
SetPlayerCameraPos(playerid,х,у,я);//ставим откуда камеру на пункт назначения
SetPlayerCameraLookAt(playerid,х,у,я);//ставим на то шо смотрит на пунк назначения
taxitimer1 = SetTimer("TaxiTimer1", 60000, false);
SendClientMessage(playerid, COLOR_GREY, "Таксист: путин краб!!11");
}
case 1:{
SetPlayerCameraPos(playerid,х,у,я);//ставим откуда камеру на пункт назначения
SetPlayerCameraLookAt(playerid,х,у,я);//ставим на то шо смотрит на пунк назначения
taxitimer2 = SetTimer("TaxiTimer2", 60000, false);
SendClientMessage(playerid, COLOR_GREY, "Таксист: путин краб!!11");
}
case 2:{
SetPlayerCameraPos(playerid,х,у,я);//ставим откуда камеру на пункт назначения
SetPlayerCameraLookAt(playerid,х,у,я);//ставим на то шо смотрит на пунк назначения
taxitimer2 = SetTimer("TaxiTimer2", 60000, false);
SendClientMessage(playerid, COLOR_GREY, "Таксист: путин краб!!11");
}
}
return 1;
}[/pwn]
далее
public OnPlayerExitedMenu(playerid)
[pwn] if(taxi)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
}
return 1;
}[/pwn]
теперь с таймерами разберемсо, делаем паблики
public TaxiTimer1(playerid)
[pwn]new taxicar = GetPlayerVehicleID(playerid);
SetCameraBehindPlayer(playerid);
GivePlayerMoney(playerid,-сумма);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, COLOR_GREY, "Таксист: ояебу медведев шмель!!1");
SetVehiclePos(taxicar,x,у,я);//пункт назначения 1
RemovePlayerFromVehicle(playerid);
KillTimer(taxitimer1);
}[/pwn]
public TaxiTimer2(playerid)
[pwn]new taxicar = GetPlayerVehicleID(playerid);
SetCameraBehindPlayer(playerid);
GivePlayerMoney(playerid,-сумма);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, COLOR_GREY, "Таксист: ояебу медведев шмель!!1");
SetVehiclePos(taxicar,x,у,я);//пункт назначения 2
RemovePlayerFromVehicle(playerid);
KillTimer(taxitimer2);
}[/pwn]
public TaxiTimer3(playerid)
[pwn]new taxicar = GetPlayerVehicleID(playerid);
SetCameraBehindPlayer(playerid);
GivePlayerMoney(playerid,-сумма);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, COLOR_GREY, "Таксист: ояебу медведев шмель!!1");
SetVehiclePos(taxicar,x,у,я);//пункт назначения 3
RemovePlayerFromVehicle(playerid);
KillTimer(taxitimer3);
}[/pwn]
так, с меню и таймерами разобрались, теперь с самим такси
public OnGameModeInit()
после //34
допустим тачка будет ид 165, порядковый номер тачки, пишем
AddStaticVehicle(420,х,у,я, цветрас, цветдва);
и наконец
public OnPlayerStateChange
if(newcar = 165)
{
{
ShowMenuForPlayer(taxi, playerid);
SendClientMessage(playerid,COLOR_GREY," Таксист: ты риальне уг");
TogglePlayerControllable(playerid,0);
}
}
вроде все, юзайте