Загрузка данных
if(newkeys == KEY_CROUCH)
{
// print("[eq]");
if(IsPlayerInRangeOfPoint(playerid, 10.0, 562.388244,963.125244,1001.000000))
{
if(!IsPlayerInVehicle(playerid, GetPlayerOwnableCar(playerid))) return SendClientMessage(playerid, -1, ""USC"Вы должны быть за рулем своего автомобиля");
new veh;
new rand = random(sizeof(gViezd));
new vehicleID = GetPlayerVehicleID(playerid);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInVehicle(i, vehicleID))
SetPlayerVirtualWorld(i, 0);
SetPlayerInterior(i, 0);
SetCameraBehindPlayer(i);
}
veh = GetPlayerOwnableCar(playerid);
SetVehiclePos(veh, gViezd[rand][0],gViezd[rand][1],gViezd[rand][2]);
SetVehicleZAngle(veh, 0.5455);
SetVehicleVirtualWorld(veh, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
LinkVehicleToInterior(veh,0);
SetPlayerInterior(playerid,0);
return true;
}
}
if(newkeys == KEY_CROUCH)
{
if((IsPlayerInRangeOfPoint(playerid, 2.5, pos_tuning [ 0 ] [ 0 ], pos_tuning [ 0 ] [ 1 ], pos_tuning [ 0 ] [ 2 ])
|| IsPlayerInRangeOfPoint(playerid, 2.5, pos_tuning [ 1 ] [ 0 ], pos_tuning [ 1 ] [ 1 ], pos_tuning [ 1 ] [ 2 ])
|| IsPlayerInRangeOfPoint(playerid, 2.5, pos_tuning [ 2 ] [ 0 ], pos_tuning [ 2 ] [ 1 ], pos_tuning [ 2 ] [ 2 ])
|| IsPlayerInRangeOfPoint(playerid, 2.5, pos_tuning [ 3 ] [ 0 ], pos_tuning [ 3 ] [ 1 ], pos_tuning [ 3 ] [ 2 ])) && GetPlayerState(playerid) == 2) // Заехать в тюнинг
{
if(!IsPlayerInVehicle(playerid, GetPlayerOwnableCar(playerid))) return SendClientMessage(playerid, -1, ""USC"Вы должны быть за рулем своего автомобиля");
//if(GetVehicleFreeSeat(GetPlayerVehicleID(playerid)) == -1) return SendClientMessage(playerid, COLOR_WHITE, !"{afafaf}Для начала высадите всех пассажиров.");
//SetPVarInt(playerid, "playerTune", 1);
//SetVehiclePos(GetPlayerOwnableCar(playerid), 2503.1333, 1503.7999, 1498.1379);
//SetVehicleZAngle(GetPlayerOwnableCar(playerid), 0.1546);
SetCameraBehindPlayer(playerid);
//LinkVehicleToInterior(GetPlayerOwnableCar(playerid), 1);
//SetVehicleVirtualWorld(GetPlayerOwnableCar(playerid), playerid + 1);
//SetPlayerInteriorEx(playerid, 1);
//SetPlayerVirtualWorldEx(playerid, playerid + 1);
//Dialog(playerid, 450, DIALOG_STYLE_LIST, ""SERVER"Автосервис", "1. Перекрасить элементы\n2. Установить нитро\n3. Установить цвет фар\n4. Установить диски\n5. Новый размер кoлес\n6. Лаунч-контроль", "Далее", "Назад");
ShowTuneShowPlayerDialog(playerid);
//TogglePlayerControllable(playerid, false);
return true;
}
}
if(PRESSED(KEY_NO))
callcmd::no(playerid, "");
if(PRESSED(KEY_YES))
callcmd::yes(playerid, "");
/*if(newkeys & KEY_SPRINT && newkeys & KEY_JUMP)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(times[playerid] == true)
{
SetTimerEx("AntiBH",1000,false,"i",playerid);
}
}
}*/
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
/*
new pedal_type = PEDAL_TYPE_NONE;
if(PRESSED(KEY_SPRINT) && !PRESSED(KEY_JUMP))
pedal_type = PEDAL_TYPE_GAS;
else if(PRESSED(KEY_JUMP) && !PRESSED(KEY_SPRINT))
pedal_type = PEDAL_TYPE_BRAKE;
else if(RELEASED(KEY_SPRINT) || RELEASED(KEY_JUMP))
pedal_type = PEDAL_TYPE_NONE;
player_press_pedal[playerid] = pedal_type;
*/
if(GetPlayerSettingData(playerid, S_VEH_CONTROL) == SETTING_TYPE_ON)
{
if(PRESSED(KEY_HANDBRAKE | KEY_FIRE)) // правый ctrl
{
if(GetPlayerOwnableCar(playerid) != INVALID_VEHICLE_ID)
{
callcmd::lock(playerid, "1");
}
}
if(PRESSED(KEY_ACTION))
{
callcmd::l(playerid, "");
}
if(PRESSED(KEY_FIRE))
{
callcmd::e(playerid, "");
}
if(PRESSED(KEY_ANALOG_UP)) // num 8
{
callcmd::b(playerid, "");
}
if(PRESSED(KEY_ANALOG_DOWN)) // num 2
{
callcmd::i(playerid, "");
}
if(PRESSED(KEY_ANALOG_LEFT)) // num 4
{
callcmd::sl(playerid, "");
}
if(PRESSED(KEY_ANALOG_RIGHT)) // num 6
{
callcmd::alarm(playerid, "");
}
}
if(PRESSED(KEY_SUBMISSION))
{
if(!IsPlayerInVehicle(playerid, GetPlayerOwnableCar(playerid)))
{
new job_car = GetPlayerJobCar(playerid);
if(IsPlayerInVehicle(playerid, job_car))
{
new action_type = GetVehicleData(job_car, V_ACTION_TYPE);
new car_type = (action_type - VEHICLE_ACTION_TYPE_BUS_DRIVER) + 1;
new job_id = GetPlayerJob(playerid);
if(job_id == car_type)
{
switch(job_id)
{
case JOB_BUS_DRIVER:
{
if(IsPlayerInJob(playerid))
{
Dialog
(
playerid, DIALOG_END_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Диспетчер автопарка",
"{FFFFFF}Вы уверены что хотите завершить рабочий день?",
"Да", "Нет"
);
}
else
{
Dialog
(
playerid, DIALOG_BUS_ROUTE_COST, DIALOG_STYLE_INPUT,
"{FFCD00}Стоимость проезда",
"{FFFFFF}Сколько будет стоить проезд?\n"\
"Укажите цену от 0 до 100 рублей",
"Далее", "Отмена"
);
}
}
case 6:
{
if(IsPlayerInJob(playerid))
{
Dialog
(
playerid, DIALOG_END_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Диспетчер таксопарка",
"{FFFFFF}Вы уверены что хотите завершить рабочий день?",
"Да", "Нет"
);
}
else
{
Dialog
(
playerid, DIALOG_TAXI_NAME, DIALOG_STYLE_INPUT,
"{FFCD00}Название такси",
"{FFFFFF}Придумайте название для вашего такси\n"\
"Максимальная длина 15 символов\n\n"\
"Если вы не хотите как-то называться\n"\
"нажмите кнопку \"Пропустить\"",
"Далее", "Пропустить"
);
}
}
case JOB_MECHANIC:
{
if(IsPlayerInJob(playerid))
{
Dialog
(
playerid, DIALOG_END_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Автомеханик",
"{FFFFFF}Вы уверены что хотите завершить рабочий день?",
"Да", "Нет"
);
}
else
{
Dialog
(
playerid, DIALOG_MECHANIC_START_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Диспетчер",
"{FFFFFF}Вы хотите начать работу автомеханика?",
"Да", "Нет"
);
}
}
case JOB_TRUCKER:
{
if(IsPlayerInJob(playerid))
{
Dialog
(
playerid, DIALOG_END_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Диспетчер автопарка",
"{FFFFFF}Вы уверены что хотите завершить рабочий день?",
"Да", "Нет"
);
}
else
{
Dialog
(
playerid, DIALOG_TRUCKER_START_JOB, DIALOG_STYLE_MSGBOX,
"{FFCD00}Дальнобойщик",
"{FFFFFF}Вы хотите начать работу дальнобойщика?",
"Да", "Нет"
);
}
}
}
}
}
}
else callcmd::car(playerid, "");
}
if(HOLDING(KEY_CROUCH))
{
CallLocalFunction("CheckNearestGate", "i", playerid);
}
if(newkeys == KEY_CROUCH)
{
// print("[eq]");
if(IsPlayerInRangeOfPoint(playerid, 10.0, -0.2940,2006.1187,1554.2031) && GetPlayerInHouse(playerid) == GetPlayerHouse(playerid) && GetPlayerState(playerid) == 2)
{
new houseid = GetPlayerHouse(playerid);
SetVehiclePos
(
GetPlayerOwnableCar(playerid),
GetHouseData(houseid, H_CAR_POS_X),
GetHouseData(houseid, H_CAR_POS_Y),
GetHouseData(houseid, H_CAR_POS_Z)
);
SetVehicleZAngle(GetPlayerOwnableCar(playerid), GetHouseData(houseid, H_CAR_ANGLE));
SetCameraBehindPlayer(playerid);
LinkVehicleToInterior(GetPlayerOwnableCar(playerid),0);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetVehicleVirtualWorld(GetPlayerOwnableCar(playerid), 0);
return true;
}
}
}
}
else
{
if(PRESSED(KEY_FIRE))
{
if(GetPlayerData(playerid, P_SNACK))
{
/*SetPlayerData(playerid, P_SNACK, false);
SetPlayerHealthEx(playerid, 25.0, true);
GameTextForPlayer(playerid, "~g~~h~+25 hp", 2500, 6);
ApplyAnimationEx(playerid, "FOOD", "EAT_Chicken", 4.0, 0, 0, 0, 0, 0, 0);*/
//SetTimerEx("T_RemovePlayerAttachedObject", 3000, false, "ii", playerid, A_OBJECT_SLOT_HAND);
}
if(GetPlayerData(playerid, P_DRINK_STEP) >= 1)
{
AddPlayerData(playerid, P_DRINK_STEP, -, 1);
if(!GetPlayerData(playerid, P_DRINK_STEP))
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
}
}
}
/* if(PRESSED(KEY_SPRINT))
{
if(IsPlayerUseAnim(playerid))
{
ClearPlayerUseAnim(playerid);
}
if(GetPlayerData(playerid, P_REALTOR_TYPE) != REALTOR_TYPE_NONE)
{
new businessid = GetPlayerInBiz(playerid);
if(businessid != -1)
{
new type = GetBusinessData(businessid, B_INTERIOR);
new interior = GetBusinessInteriorInfo(type, BT_ENTER_INTERIOR);
//HidePlayerWaitPanel(playerid);
TogglePlayerSpectating(playerid, false);
if(GetPlayerData(playerid, P_REALTOR_TYPE) == REALTOR_TYPE_BIZ)
{
PlayerTeleportInit(playerid, 331.0103, 662.5683, 49.7290, 67.7277);
SetPlayerPosEx(playerid, 331.0103, 662.5683, 49.7290, 67.7277, interior, businessid + 255, false);
}
else
{
PlayerTeleportInit(playerid, 160.7020, 745.5962, 25.8272, 159.1750);
SetPlayerPosEx(playerid, 160.7020, 745.5962, 25.8272, 159.1750, interior, businessid + 255, false);
}
}
SetPlayerData(playerid, P_REALTOR_TYPE, REALTOR_TYPE_NONE);
}
}*/
if(PRESSED(KEY_WALK))
{
if(GetPlayerInHouse(playerid) != -1)
{
new houseid = GetPlayerInHouse(playerid);
if(GetHouseData(houseid, H_IMPROVEMENTS) > 5)
{
Dialog
(
playerid, DIALOG_ACTION_EXIT_HOUSE, DIALOG_STYLE_LIST,
"{FFCC00}Выход",
"1. Улица\n\
2. Гараж",
"Далее", "Закрыть"
);
return 1;
}
else
ExitPlayerFromHouse(playerid, 3.0);
}
else if(GetPlayerData(playerid, P_IN_HOTEL_ROOM) != -1)
{
ExitPlayerFromHotelRoom(playerid);
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, -109.4100,968.7141,12.3526))
{
ShowPlayerQuestMenu(playerid);
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, 1802.2566,2513.8135,15.8725))
{
ShowPlayerQuestMenu(playerid);
}
/*if(IsPlayerInRangeOfPoint(playerid, 2.0, 1886.5671,2032.1482,17.3037))
{
Dialog
(
playerid, DIALOG_QUEST_23, DIALOG_STYLE_LIST,
"{FFCD00}Квестовый персонаж",
"- Историческая викторина {ce325b}[Квест]\n"\
"- Помощь в празднике {ce325b}[Квест]\n"\
"- Срочная помощь {ce325b}[Сюжетная линия]",
"Выбрать", "Закрыть"
);
return 1;
}*/
if(IsPlayerInRangeOfPoint(playerid, 3.0, 609.434875,1729.022583,12.078809))
{
Dialog
(
playerid, DIALOG_CONTENER1, DIALOG_STYLE_MSGBOX,
"{FFCD00}Может выпасть:",
"- Аптечки\n"\
"- Ремонтные комлекты\n"\
"- Аксессуар на спину\n"\
"- Пачка денег\n"\
"- Сертификат на опыт\n"\
"- Любое оружие",
"Выбрать", "Закрыть"
);
//return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 3.0, 617.468688,1729.151977,12.078809))
{
Dialog
(
playerid, DIALOG_CONTENER2, DIALOG_STYLE_MSGBOX,
"{FFCD00}Может выпасть:",
"- Одежда работника ДПС\n"\
"- Одежда генирала армии\n"\
"- Одежда снегурочки\n"\
"- Одежда 'Илья'\n"\
"- Одежда генирала ФСБ\n"\
"- Одежда работника медицинской службы",
"Понятно", "Закрыть"
);
//return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 100.0, 2035.7643,1416.3625,999.7344))
{
new bedid = -1;
for(new i; i < sizeof g_med_bed_pos; i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 1.5, g_med_bed_pos[i][0], g_med_bed_pos[i][1], g_med_bed_pos[i][2])) continue;
bedid = i;
break;
}
if(bedid == -1) return 1;
else if(GetPlayerData(playerid, P_OCCUPIED_BED) != -1) return SendClientMessage(playerid, 0xCECECEFF, "Вы уже заняли койку");
else if(GetPlayerHealthEx(playerid) >= 95.0)
{
return SendClientMessage(playerid, 0xCECECEFF, "Вы не нуждаетесь в лечении");
}
else if(g_med_bed_used[bedid]) return SendClientMessage(playerid, 0xCECECEFF, "Эта койка занята");
else
{
SetPlayerData(playerid, P_OCCUPIED_BED, bedid);
g_med_bed_used[bedid] = true;
new fmt_msg[200];
format(fmt_msg, sizeof fmt_msg, "{FF5252}« Занятая больничная койка »\n{FF5252}|{ffffff}Номер койки: %d\n{ffffff}Пациент: {FF5252}%s\n{ffffff}Подойдите ближе и введите {FF5252}/medbed", bedid + 1, GetPlayerNameEx(playerid));
UpdateDynamic3DTextLabelText(g_med_bed_label[bedid], 0xFFFFFFEE, fmt_msg);
format(fmt_msg, sizeof fmt_msg, "Вы заняли койку №%d. В зависимости от состояния здоровья лечение может занять время", bedid + 1);
SendClientMessage(playerid, 0x66CC00FF, fmt_msg);
SendClientMessage(playerid, -1, "Чтобы выписаться подойдите к врачу или выйдите за пределы больницы");
}
}
/* if(GetPlayerNearestATM(playerid) != -1)
{
ShowPlayerATMDialog(playerid);
}*/
if(GetPlayerInHouse(playerid) != -1)
{
new houseid = GetPlayerInHouse(playerid);
if(GetHouseData(houseid, H_IMPROVEMENTS) >= 1)
{
ExitPlayerFromHouse(playerid, 1.1);
}
}
/* if(GetPlayerData(playerid, P_LAST_PICKUP) != -1)
{
new pickupid = GetPlayerData(playerid, P_LAST_PICKUP);
new action_id = GetPickupInfo(pickupid, P_ACTION_ID);
if(IsPlayerInRangeOfPoint(playerid, 1.7, GetPickupInfo(pickupid, P_POS_X), GetPickupInfo(pickupid, P_POS_Y), GetPickupInfo(pickupid, P_POS_Z)))
{
switch(GetPickupInfo(pickupid, P_ACTION_TYPE))
{
}
}
}
*/
if(GetPlayerData(playerid, P_IN_HOTEL_ROOM) != -1)
{
ExitPlayerFromHotelRoom(playerid);
}
}
if(PRESSED(KEY_HANDBRAKE | KEY_WALK))
{
new targetid = GetPlayerTargetPlayer(playerid);
//new targetid = playerid;
if(targetid != INVALID_PLAYER_ID && !GetPlayerWeapon(playerid))
{
SetPlayerData(playerid, P_TARGET_ID, targetid);
new fmt_str[64];
format(fmt_str, sizeof fmt_str, "{FFCD00}Действия (%s)", GetPlayerNameEx(targetid));
Dialog
(
playerid, DIALOG_ACTION, DIALOG_STYLE_LIST,
fmt_str,
"1. Приветствие\n\
2. Показать паспорт\n\
3. Показать лицензии\n\
4. Показать навыки",
"Выбрать", "Закрыть"
);
}
}
if(PRESSED(KEY_HANDBRAKE))
{
if(GetPVarInt(playerid, "have_jerrican") == 1 && GetPlayerSpeed(playerid) == 0.0)
{
new vehicleid = GetNearestVehicleID(playerid, 2.3);
if(vehicleid != INVALID_VEHICLE_ID)
{
SetPVarInt(playerid, "jerrican_fill_car", vehicleid);
Dialog
(
playerid, DIALOG_JERRICAN_FILL_CAR, DIALOG_STYLE_MSGBOX,
"{6699FF}Канистра",
"{FFFFFF}Вы хотите заправить этот транспорт с канистры?",
"Да", "Нет"
);
}
}
}
if(PRESSED(KEY_CTRL_BACK | KEY_HANDBRAKE))
{
if(GetPlayerOwnableCar(playerid) != INVALID_VEHICLE_ID)
{
callcmd::car(playerid, "");
}
}
else if(PRESSED(KEY_CTRL_BACK))
{
CallLocalFunction("cmd_trunk", "i", playerid);
}
}
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
new EngineNotifyTimer[MAX_PLAYERS]; // чтобы уведомление не спамилось
new EngineNotifyShown[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
if(ShowCoords[playerid])
{
new Float:x, Float:y, Float:z, Float:fa, str[80]; // Увеличил размер str до 80
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, fa); // Получаем угол поворота
format(str, sizeof(str), "X: %.2f Y: %.2f Z: %.2f A: %.2f", x, y, z, fa);
PlayerTextDrawSetString(playerid, CoordsTD[playerid], str);
}
FixBugMoneyMinus(playerid);
SetPlayerData(playerid, P_AFK_TIME, 0);
new string[50];
new string2[50];
// Постоянная синхронизация для пассажиров
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
new vehicleid = GetPlayerVehicleID(playerid);
new seatid = GetPlayerVehicleSeat(playerid);
if(vehicleid != LastVehicle[playerid] || seatid != LastSeat[playerid])
{
PutPlayerInVehicle(playerid, LastVehicle[playerid], LastSeat[playerid]);
ApplyAnimation(playerid, "PED", "CAR_SIT", 4.1, 0, 0, 0, 1, 0, 1);
}
}
return 1;
// format(string, sizeof(string), "X%d", Config[sDonPower]);
// format(string2, sizeof(string2), "%d/1000",Iter_Count(Player));
// PlayerTextDrawSetString(playerid, logo_PTD[playerid][0], string);
// PlayerTextDrawSetString(playerid, logo_PTD[playerid][1], string2);
if(IsPlayerDriver(playerid))
{
new keys, gas_brake, left_right;
GetPlayerKeys(playerid, keys, gas_brake, left_right);
// SendClientMessage(playerid, -1, IntToString(gas_brake));
new pedal_type = PEDAL_TYPE_NONE;
if((keys & KEY_SPRINT) && !(keys & KEY_JUMP || keys & KEY_HANDBRAKE))
pedal_type = PEDAL_TYPE_GAS;
else if(keys & KEY_JUMP && !(keys & KEY_SPRINT || keys & KEY_HANDBRAKE))
pedal_type = PEDAL_TYPE_BRAKE;
player_press_pedal[playerid] = pedal_type;
}
static player_check_tick[MAX_PLAYERS];
if(GetTickCount() - player_check_tick[playerid] > 3000)
{
player_check_tick[playerid] = GetTickCount();
if(GetPlayerOwnableCar(playerid) != INVALID_VEHICLE_ID)
{
new vehicleid = GetPlayerOwnableCar(playerid);
new Float:x, Float:y, Float:z;
GetVehiclePos(vehicleid, x, y, z);
// Проверяем, находится ли игрок рядом с машиной
if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z) && !IsPlayerInAnyVehicle(playerid))
{
// Проверяем, закрыта ли машина
if(GetVehicleParam(vehicleid, V_LOCK) == 1)
{
// ? ПОКАЗЫВАЕМ ТОЛЬКО ЕСЛИ ЕЩЁ НЕ ПОКАЗЫВАЛИ
if(!player_unlock_notif_shown[playerid])
{
ShowNotificationLaird(playerid, 4, 6, OFFER_UNLOCK_CAR, vehicleid, "Открыть двери автомобиля", ">>");
player_unlock_notif_shown[playerid] = true;
}
}
else
{
// ? МАШИНА ОТКРЫТА - СБРАСЫВАЕМ ФЛАГ
player_unlock_notif_shown[playerid] = false;
}
}
else
{
// ? ИГРОК УШЁЛ ОТ МАШИНЫ - СБРАСЫВАЕМ ФЛАГ
player_unlock_notif_shown[playerid] = false;
}
}
else
{
// ? НЕТ МАШИНЫ - СБРАСЫВАЕМ ФЛАГ
player_unlock_notif_shown[playerid] = false;
}
}
/*
new current_weapon = GetPlayerWeapon(playerid);
if(current_weapon != GetPVarInt(playerid, "current_weapon"))
{
OnPlayerChangeWeapon(playerid, current_weapon);
SetPVarInt(playerid, "current_weapon", current_weapon);
}
*/
if(GetPlayerTempJobCheckAnim(playerid))
{
new anim_index = GetPlayerAnimationIndex(playerid);
/*
new fmt_str[32];
format(fmt_str, sizeof fmt_str, "index: %d", anim_index);
SendClientMessage(playerid, 0xCECECEFF, fmt_str);
*/
switch(GetPlayerTempJob(playerid))
{
case TEMP_JOB_LOADER:
{
if(!GetPlayerSex(playerid))
{
if(!(anim_index == 259 || anim_index == 1189 || anim_index == 1224))
{
anim_index = -1;
}
}