Возможно вы когда нибудь пробывали в SA-MP сесть в радиоуправляемый транспорт RC или в трамвай, но это было невозможно. Сейчас я покажу вам как это исправить:
Ко всем #define добавляем(если их нет то просто в начало после new):
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys):
Code
if(newkeys == KEY_SECONDARY_ATTACK) { if(!IsPlayerInAnyVehicle(playerid)) { new Float:x, Float:y, Float:z, vehicle; GetPlayerPos(playerid, x, y, z ); GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle); if(IsVehicleRcTram(vehicle)) { PutPlayerInVehicle(playerid, vehicle, 0); } } else { new VID = GetPlayerVehicleID(playerid); if(IsVehicleRcTram(VID) || GetVehicleModel(VID) == RC_CAM) { if(GetVehicleModel(VID) != D_TRAM) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); SetPlayerPos(playerid, x+0.5, y, z+1.0); } } } } } GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh) { for(new i = 1; i < MAX_VEHICLES; i++) { if(GetVehicleModel(i) > 0) { if(GetPlayerVehicleID(playerid) != i ) { new Float:x, Float:y, Float:z; new Float:x2, Float:y2, Float:z2; GetVehiclePos(i, x, y, z); x2 = x1 - x; y2 = y1 - y; z2 = z1 - z; new Float:vDist = (x2*x2+y2*y2+z2*z2); if( vDist < dist) { veh = i; dist = vDist; } } } } } IsVehicleRcTram( vehicleid ) { new model = GetVehicleModel(vehicleid); switch(model) { case D_TRAM, RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_TANK: return 1; default: return 0; }
Теперь когда мы рядом с RC транспортом или трамваем и нажимаем вторичный огонь мы сможем в них сесть(в старых версиях сампа камера в трамвае будет как у поезда) Если помог ставь +) Pawn скриптер Мои услуги по оптимизации
а чё автор ? автор я,я не люблю копировать откуда нибудь из за копирайтов Ладно... автор:Разроботчики языка pawn Pawn скриптер Мои услуги по оптимизации
Сообщение отредактировал [east_side]_trane - Понедельник, 11.04.2011, 21:58:35