кароче чтобы посадить чела в поезда трамваи или игрушки при нажатии на кнопку "сесть в авто". [pwn]
IsKeyJustDown(key, newkeys, oldkeys)
{
if((newkeys & key) && !(oldkeys & key))
{
return 1;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsKeyJustDown(16,newkeys,oldkeys)) //если нажата клавиша "сесть в авто"
{
for(new cars=0;cars<MAX_VEHICLES;cars++)
{
if(GetDistanceToCar(playerid,cars)<6)
{
if(GetVehicleModel(cars)==537||GetVehicleModel(cars)==449||GetVehicleModel (cars)==538) PutPlayerInVehicle(playerid,cars,0);
}
if(GetDistanceToCar(playerid,cars)<4)
{
if(GetVehicleModel(cars)==464||GetVehicleModel(cars)==501||GetVehicleModel(cars) ==564||GetVehicleModel(cars)==441)
{
PutPlayerInVehicle(playerid,cars,0);
TogglePlayerSpectating(playerid,0);
}
}
}
return;
}
}
stock GetDistanceToCar(playerid,vehicleid)
{
new Float:x1;
new Float:y1;
new Float:z1;
new Float:x2;
new Float:y2;
new Float:z2;
new Float:tmpdis;
GetPlayerPos(playerid,x1,y1,z1);
GetVehiclePos(vehicleid,x2,y2,z2);
tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(tmpdis);
}
[/pwn]
а чтобы сесть в тачку которую потерял то тебе прийдется сначало все тачки при создании своими игровыми ид пронумеровывать а потом номер тачки которую потерял гджето запоминать в переменную. например создаешь глобальную переменную корторая будет хранить игровое ид тачки, а чтобы запомнить последнюю тачку в которую сел то эту переменную приравнивай вот тут OnPlayerStateChange игровому ид тачки.
Или можешь сделать так.... пример:
[pwn]
new EnterCar[MAX_PLAYERS];//создаем переменную
..............................................
public OnPlayerConnect(playerid)
{
EnterCar[playerid]=9999;//это сброс запоминания ид тачки.
return 1;
}
...............................................
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if (newstate==PLAYER_STATE_DRIVER) EnterCar[playerid]=GetPlayerVehicleID(playerid); //при посадке в тачку на место водилы переменной приравнивается ид тачки
return 1;
}
...............................................
//Потом создаешь команду например /inCar
if(strcmp(cmd, "/inCar", true) == 0)
{
PutPlayerInVehicle(playerid,EnterCar[playerid],0);
return 1;
}
[/pwn]
после такого при вводе команды тебя поместит в последнюю занимаемую тобой тачку на место водилы.
кому помог с того плюс..
если не заработает то где-то, что-то не так сделал. т.к. в моем моде все это пашет без пролем.
Добавлено (23.03.2009, 11:39)
---------------------------------------------
мля.. фигня какаято с этой фирт клавиатурой. все табы нафиг пропали :( .. ппц