Kirill Nikitin
Новичок
Здравствуйте!
Возникла проблема обработки нажатия кнопки Alt в паблике OnPlayerKeyStateChange. Использую эту кнопку для нескольких действий в моде.
Ловлю нажатие с помощью:
Все взаимодействия на кнопку прописаны в одной проверке (можно посмотреть в файле на pastebin по ссылке ниже или под спойлером)
Ссылка на исходный код на pastebin:
Обрабатывается только первое условие, остальные остаются без каких-либо действий. В чем может быть проблема? И как делать множественные проверки на одну кнопку более лучше и оптимизированнее? Спасибо!
Возникла проблема обработки нажатия кнопки Alt в паблике OnPlayerKeyStateChange. Использую эту кнопку для нескольких действий в моде.
Ловлю нажатие с помощью:
Код:
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
new playerState = GetPlayerState(playerid);
if(PRESSED(KEY_WALK)){ // ALT
if(GetPVarInt(playerid, "NearATM") == 1){ // Использование банкомата
SCM(playerid, -1, "сработало использование банкомата");
if(PlayerInfo[playerid][pHaveBank] == 0) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: У Вас не открыт банковский счет. Открыть его можно в центральном банке.");
if(GetPVarInt(playerid, "EnterBankCode") != 1){
SetPVarInt(playerid, "UseATM", 1);
return ShowPlayerDialog(playerid, 96, DIALOG_STYLE_INPUT, !"{2ac1fc}Ввод пин-кода", !"{FFFFFF}Пожалуйста, введите пин-код от Вашего банковского счета:", !"Далее", !"Отмена");
}
ShowAtmMenu(playerid);
}
if(GetPVarInt(playerid, "UseHouse") + 1 != 0){
new id = GetPVarInt(playerid, "UseHouse");
new ho = PlayerInfo[playerid][pHouse];
if(ho > 0){
ho--;
if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseInfo[ho][hexit_pos_x],HouseInfo[ho][hexit_pos_y], HouseInfo[ho][hexit_pos_z])){
SetPlayerPos(playerid, HouseInfo[ho][hpost_pos_x], HouseInfo[ho][hpost_pos_y], HouseInfo[ho][hpost_pos_z]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
DeletePVar(playerid, "UseHouse");
}
}
if(!IsPlayerInRangeOfPoint(playerid, 2.0, HouseInfo[id][hexit_pos_x],HouseInfo[id][hexit_pos_y], HouseInfo[id][hexit_pos_z])) return 1;
if(playerState != PLAYER_STATE_ONFOOT) return 1;
SetPlayerPos(playerid, HouseInfo[id][hpost_pos_x], HouseInfo[id][hpost_pos_y], HouseInfo[id][hpost_pos_z]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
DeletePVar(playerid, "UseHouse");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, 1996.7817, -2141.1035, 13.8369)){
if(!IsAGang(playerid)) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вам недоступно данное действие.");
ShowPlayerDialog(playerid, 156, DIALOG_STYLE_MSGBOX, !"{2ac1fc}Ограбления", !"{FFFFFF}Привет, я Джеймс. Могу помочь тебе с небольшой подработкой.\n\
Она не совсем легальна, но поможет поднять немного бабла. Ты в деле?\n\n{cecece}(( Доступно только от 2-их игроков ))", !"Далее", !"Отмена");
return 1;
}
if(GetPVarInt(playerid, "InBiz") == 1){
new idx = GetPVarInt(playerid, "UseBiz");
idx--;
if(IsPlayerInRangeOfPoint(playerid, 2.0, BizInfo[idx][bexit_pos_x],BizInfo[idx][bexit_pos_y], BizInfo[idx][bexit_pos_z])){
SetPlayerPos(playerid, BizInfo[idx][benter_pos_x]+1, BizInfo[idx][benter_pos_y]+1, BizInfo[idx][benter_pos_z]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
DeletePVar(playerid, "InBiz");
return 1;
}
for(new idxx = 0; idxx < TOTALBIZ; idxx++){
if(!IsPlayerInRangeOfPoint(playerid, 2.0, BizInfo[idxx][bmenu_pos_x],BizInfo[idxx][bmenu_pos_y], BizInfo[idxx][bmenu_pos_z])) continue;
if(playerState != PLAYER_STATE_ONFOOT) continue;
switch(BizInfo[idxx][bType]){
case 1: {
ShowPlayerDialog(playerid, 58, DIALOG_STYLE_TABLIST_HEADERS, !"{2ac1fc}Магазин", "{FFFFFF}Наименование\t{FFFFFF}Цена\n\
1) Часы\t$250\n\
2) Музыкальный плеер\t$500\n\
3) Третий пункт\t$500\n\
4) Четвертый пункт\t$500",
!"Купить", !"Закрыть");
SetPlayerCameraPos(playerid, -29.893146, -88.255142, 1004.991638);
SetPlayerCameraLookAt(playerid, -27.021083, -92.125396, 1003.660339);
TogglePlayerControllable(playerid, 0);
}
case 3: {
ShowPlayerDialog(playerid, 59, DIALOG_STYLE_TABLIST_HEADERS, !"{2ac1fc}Магазин оружия", "{FFFFFF}Наименование\t{FFFFFF}Цена\n\
1) Первый пункт\t$250\n\
2) Второй пункт\t$500\n\
3) Третий пункт\t$500\n\
4) Четвертый пункт\t$500",
!"Купить", !"Закрыть");
SetPlayerCameraPos(playerid, 291.286010, -78.361701, 1003.518981);
SetPlayerCameraLookAt(playerid, 294.638977, -81.931396, 1002.511596);
TogglePlayerControllable(playerid, 0);
}
case 4: {
if(PlayerInfo[playerid][pJob] != JOB_NONE) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Сначала закончите работу.");
if(PlayerInfo[playerid][pWorkDay] != 0) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Покупка одежды невозможна в рабочей форме.");
new vw = GetPlayerVirtualWorld(playerid);
SetPVarInt(playerid, "BuySkinVW", vw);
SetPlayerVirtualWorld(playerid, playerid+1);
SetPlayerPos(playerid, 179.5161, -88.3430, 1002.0234);
SetPlayerFacingAngle(playerid, 90.6246);
TogglePlayerControllable(playerid, 0);
InterpolateCameraPos(playerid, 165.497497, -85.819900, 1003.593750, 175.187667, -88.775680, 1003.192077, 2500);
InterpolateCameraLookAt(playerid, 162.215164, -82.216476, 1002.479492, 180.088577, -87.982833, 1002.598449, 2500);
if(PlayerInfo[playerid][pSex] == 0) {
SetPlayerSkin(playerid, BuySkinListMan[0]);
ShowMenuForPlayer(BuySkinMenu, playerid);
} else if(PlayerInfo[playerid][pSex] == 1) {
SetPlayerSkin(playerid, BuySkinListWoman[0]);
ShowMenuForPlayer(BuySkinMenu, playerid);
}
}
}
}
}
if(RoadInfo[playerid][RoadStage] == 4 && playerState == PLAYER_STATE_ONFOOT){
if(IsPlayerInRangeOfPoint(playerid, 7.0, GetPVarFloat(playerid, "RoadX"), GetPVarFloat(playerid, "RoadY"), GetPVarFloat(playerid, "RoadZ"))){
RoadInfo[playerid][RoadStage] = 5;
ApplyAnimation(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,0,0);
SendClientMessage(playerid, COLOR_INFO, !"Отлично! Теперь Ваша задача залатать все повреждения в дорожном покрытии. Для этого нажимайте на проблемые участки мышью.");
CreateRoadTextDraw(playerid);
for(new r; r < 12; r++) PlayerTextDrawShow(playerid, RoadTD[playerid][r]);
SelectTextDraw(playerid, COLOR_RED);
}
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, -470.5761, 640.3542, 2002.0641) && playerState == PLAYER_STATE_ONFOOT){ // Покупка симки
if(PlayerInfo[playerid][pPhoneNumber] == 0){
ShowPlayerDialog(playerid, 84, DIALOG_STYLE_INPUT, !"{2ac1fc}Покупка номера телефона", !"{FFFFFF}Вы действительно хотите купить номер телефона?\nЭто позволит Вам звонить и отправлять СМС-сообщения другим жителям нашего штата.\nСтоимость сим-карты: {89cc43}$500.\n\n{FFFFFF}Введите желаемый номер:\n* Количество символов в номере равно 6.", !"Купить", !"Отмена");
} else return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: У Вас уже есть приобретенный номер телефона.");
}
if(IsPlayerInRangeOfPoint(playerid, 1.5, 1410.9691, -28.7692, 1000.9559) || IsPlayerInRangeOfPoint(playerid, 1.5, 1411.0300, -32.2882, 1000.9559) || IsPlayerInRangeOfPoint(playerid, 1.5, 1410.8512, -35.7726, 1000.9559) && playerState == PLAYER_STATE_ONFOOT){ // Банк
TogglePlayerControllable(playerid, 0);
if(PlayerInfo[playerid][pHaveBank] == 0) return ShowPlayerDialog(playerid, 94, DIALOG_STYLE_MSGBOX, !"{2ac1fc}Создание банковского счета", !"{FFFFFF}Чтобы полноценно воспользоваться услугами центрального банка, Вам необходимо\n\
открыть свой банковский счет и карту.\n\nВы хотите открыть счет и выпустить банковскую карточку?\nСтоимость услуги {89cc43}$500.", !"Далее", !"Отмена");
if(GetPVarInt(playerid, "EnterBankCode") != 1) return ShowPlayerDialog(playerid, 96, DIALOG_STYLE_INPUT, !"{2ac1fc}Ввод пин-кода", !"{FFFFFF}Пожалуйста, введите пин-код от Вашего банковского счета:", !"Далее", !"Отмена");
return ShowBankMenu(playerid);
}
if(pTemp[playerid][pACLesson] == 1){
if(IsPlayerInRangeOfPoint(playerid, 1.0, -2039.7117, -149.5839, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.4235, -149.4693, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2039.8478, -152.5959, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.5691, -152.4428, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2039.8954, -155.1333, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.3699, -155.1447, 1218.9719)){
ShowPlayerDialog(playerid, 40, DIALOG_STYLE_MSGBOX, !"{2ac1fc}Теоретическая часть экзамена", !"{FFFFFF}Предлагаем Вам сдать теоретическую часть экзамена.\nДля этого Вам необходимо уверенно знать правила дорожного движения и\nоплатить прохождение теста.\n\nСтоимость прохождения теоретической части: {89cc43}$500.", !"Далее", !"Отмена");
TogglePlayerControllable(playerid, 0);
}
}
if(pTemp[playerid][pACLesson] != 1){
if(IsPlayerInRangeOfPoint(playerid, 1.0, -2039.7117, -149.5839, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.4235, -149.4693, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2039.8478, -152.5959, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.5691, -152.4428, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2039.8954, -155.1333, 1218.9719) || IsPlayerInRangeOfPoint(playerid, 1.0, -2036.3699, -155.1447, 1218.9719)){
SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вы еще не прочитали ПДД, либо уже сдали теоретическую часть.");
}
}
if(PlayerInfo[playerid][pJob] == JOB_COM && ComInfo[playerid][ComStage] == 2 && playerState == PLAYER_STATE_ONFOOT){
new Float:posX, Float:posY, Float:posZ;
posX = GetPVarFloat(playerid, "Com:pos_tree_x");
posY = GetPVarFloat(playerid, "Com:pos_tree_y");
posZ = GetPVarFloat(playerid, "Com:pos_tree_z");
if(IsPlayerInRangeOfPoint(playerid, 5.0, posX, posY, posZ)){
new veh = GetNearVeh(playerid, 20.0);
if(veh == GetPVarInt(playerid, "WorkCar")) {
SendClientMessage(playerid, COLOR_INFO, !" ");
SendClientMessage(playerid, COLOR_INFO, !"Вы прибыли к дереву. Теперь его нужно срубить. Нажимайте Y или N в нужные моменты.");
ComInfo[playerid][ComStage] = 3;
ComInfo[playerid][ComGameAmount] = 0;
comtimer[playerid] = SetTimerEx("ComGame", 1500, true, "i", playerid);
TogglePlayerControllable(playerid, 0);
ApplyAnimation(playerid, "CHAINSAW", "WEAPON_csaw", 4.1, 1, 0, 0, 0, 0);
} else {
return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Рядом с Вами нет рабочего транспорта коммунальной службы.");
}
}
}
}
if(PRESSED(16)){
new str[144];
if(IsAArmy(playerid)){
for(new idx = 0; idx < TOTALPOSTS; idx++){ // Занятие поста в армии
if(!IsPlayerInRangeOfPoint(playerid, 2.0, PostInfo[idx][pPosX], PostInfo[idx][pPosY], PostInfo[idx][pPosZ])) continue;
if(playerState != PLAYER_STATE_ONFOOT) continue;
if(PostInfo[idx][pFraction] != PlayerInfo[playerid][pMember]) return true;
if(PostInfo[idx][pStatus] == 1 && GetPVarInt(playerid, "OnArmyPost") != 1) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Данный пост уже занят.");
if(PostInfo[idx][pStatus] == 1 && GetPVarInt(playerid, "OnArmyPost") == 1 && PostInfo[idx][pPlayer] == playerid){
DeletePVar(playerid, "OnArmyPost");
PostInfo[idx][pStatus] = 0;
PostInfo[idx][pPlayer] = INVALID_PLAYER_ID;
format(str, sizeof(str), "{2ac1fc}Пост: {FFFFFF}%s [ID: %d]\n{2ac1fc}Статус: {FFFFFF}Свободен\n{2ac1fc}Используйте F, чтобы занять пост", PostInfo[idx][pName], PostInfo[idx][pID]);
Update3DTextLabelText(PostInfo[idx][pText], -1, str);
HidePostTimer(playerid);
SendClientMessage(playerid, COLOR_INFO, !"Вы успешно окончили дежурство на этом посту.");
pTemp[playerid][pArmyPost] = 0;
return 1;
}
if(PlayerInfo[playerid][pWorkDay] != 1) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Сначала начните рабочий день.");
if(GetPVarInt(playerid, "OnArmyPost") > 0) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вы уже заняли другой пост.");
SetPVarInt(playerid, "OnArmyPost", 1);
PostInfo[idx][pStatus] = 1;
PostInfo[idx][pPlayer] = playerid;
pTemp[playerid][pArmyPost] = idx;
format(str, sizeof(str), "{2ac1fc}Пост: {FFFFFF}%s [ID: %d]\n{2ac1fc}Статус: {FFFFFF}Занят\n{2ac1fc}На посту: {FFFFFF}%s", PostInfo[idx][pName], PostInfo[idx][pID], GetName(playerid));
Update3DTextLabelText(PostInfo[idx][pText], -1, str);
ShowPostTimer(playerid);
SendClientMessage(playerid, COLOR_INFO, !"Вы успешно встали на данный пост. Чтобы уйти с дежурства, просто отойдите от поста, либо нажмите F.");
}
}
if(PlayerInfo[playerid][pHospitalType] == 1){
for(new idx = 1; idx < TOTALHOSPITALBEDS; idx++){
if(!IsPlayerInRangeOfPoint(playerid, 1.0, HospitalBed[idx][bed_xpos], HospitalBed[idx][bed_ypos], HospitalBed[idx][bed_zpos])) continue;
if(playerState != PLAYER_STATE_ONFOOT) continue;
new Float:h;
GetPlayerHealth(playerid, h);
if(h >= 60.0) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вам не требуется лечение в палате.");
if(PlayerInfo[playerid][pHospitalType] == 2) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вы уже заняли другую кровать. Дождитесь окончания лечения.");
if(HospitalBed[idx][bedStatus] == 1) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Данная кровать уже занята. Займите другую.");
HospitalBed[idx][bedStatus] = 1;
PlayerInfo[playerid][pHospitalType] = 2;
HospitalTimer[playerid] = SetTimerEx("HospitalHeal", 2000, true, "i", playerid);
format(str, sizeof(str), "{89cc43}Кровать №%d\nСтатус: {FFFFFF}Занята\n{89cc43}Пациент: {FFFFFF}%s", idx, GetName(playerid));
Update3DTextLabelText(HospitalBed[idx][bedText], -1, str);
HospitalBed[idx][bedPlayer] = playerid;
SetPVarInt(playerid, "HospitalBedId", idx);
SendClientMessage(playerid, COLOR_LIME, !"Вы успешно заняли данную кровать. Дождитесь окончания лечения, либо обратитесь ко врачу.");
return 1;
}
}
if(IsPlayerInRangeOfPoint(playerid, 4.0, 1117.852050, -1869.417968, 3054.737060)){
if(playerState == PLAYER_STATE_ONFOOT && PlayerInfo[playerid][pJob] == JOB_POST){
MoveDynamicObject(postDoor, 1117.851562, -1869.417968, 3054.737060, 0.05, 0.0, 0.0, 180.0);
SetTimer("postDoorClose", 4000, 0);
} else {
SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вход на склад доступен только сотрудникам отделения.");
return 1;
}
}
if(playerState == PLAYER_STATE_SPECTATING){ // Меню слежки
if(GetPVarInt(playerid, "SelectSpecTD")){
CancelSelectTextDraw(playerid);
SetPVarInt(playerid, "SelectSpecTD", 0);
} else {
SelectTextDraw(playerid, 0xFF2AC1FCFF);
SetPVarInt(playerid, "SelectSpecTD", 1);
}
}
}
if(PRESSED(1) && playerState == PLAYER_STATE_DRIVER){
if(EngineReset[playerid] > gettime()) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Нельзя так часто заводить/глушить двигатель.");
new vehid = GetPlayerVehicleID(playerid);
ToggleVehicleEngine(vehid);
new string[60];
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehid, engine, lights, alarm, doors, bonnet, boot, objective);
if(VehInfo[vehid][vFuel] <= 0){
SetVehicleParamsEx(vehid, false, false, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_RED, !"Кажется, в Вашей машине закончился бензин.");
VehInfo[vehid][vFuel] = 0;
return 1;
}
if(PlayerInfo[playerid][pSex] == 0 && engine == 1){
format(string, sizeof(string), "%s завел двигатель транспорта", PlayerInfo[playerid][pName]);
} else if(PlayerInfo[playerid][pSex] == 0 && engine == 0){
format(string, sizeof(string), "%s заглушил двигатель транспорта", PlayerInfo[playerid][pName]);
}
if(PlayerInfo[playerid][pSex] == 1 && engine == 1){
format(string, sizeof(string), "%s завела двигатель транспорта", PlayerInfo[playerid][pName]);
} else if(PlayerInfo[playerid][pSex] == 1 && engine == 0){
format(string, sizeof(string), "%s заглушила двигатель транспорта", PlayerInfo[playerid][pName]);
}
EngineReset[playerid] = gettime()+3;
ProxDetector(playerid, 10, COLOR_PURPLE, string);
}
if(PRESSED(262144) && playerState == PLAYER_STATE_ONFOOT){
if(PlayerInfo[playerid][pLogged] != 0){
ShowInv(playerid);
SelectTextDraw(playerid, 0x2AC1FCAA);
}
}
if(playerState == PLAYER_STATE_DRIVER && PRESSED(4) || playerState == PLAYER_STATE_DRIVER && PRESSED(4096)){
new vehid = GetPlayerVehicleID(playerid);
ToggleVehicleLights(vehid);
}
if(newkeys == KEY_YES){ // Y
new str[300];
switch(pTemp[playerid][pTargetAction]){
case ACTION_HI:{
new targetid = pTemp[playerid][pTargetPlayer];
new Float:angle, string[64];
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(targetid, angle);
SetPlayerFacingAngle(playerid, angle + 180);
format(string, sizeof(string), "%s пожал%s руку %s", GetName(playerid), (PlayerInfo[targetid][pSex] == 0)?(""):("а"), GetName(targetid));
IsPlayerNearCmd(15.0, string, COLOR_PURPLE, X, Y, Z);
if(!IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 1, 1, 0, 0, 1);
if(!IsPlayerInAnyVehicle(targetid)) ApplyAnimation(targetid, "GANGS", "hndshkfa", 4.1, 0, 1, 1, 0, 0, 1);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_KISS:{
new targetid = pTemp[playerid][pTargetPlayer];
new Float:angle, string[64];
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(targetid, angle);
SetPlayerFacingAngle(playerid, angle + 180);
format(string, sizeof(string), "%s поцеловал%s %s", GetName(playerid), (PlayerInfo[targetid][pSex] == 0)?(""):("а"), GetName(targetid));
IsPlayerNearCmd(15.0, string, COLOR_PURPLE, X, Y, Z);
if(!IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid,"BD_FIRE","PLAYA_KISS_03",4.0,0,0,0,0, 0,1);
if(!IsPlayerInAnyVehicle(targetid)) ApplyAnimation(targetid,"BD_FIRE","GRLFRD_KISS_03",4.0,0,0,0, 0,0,1);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_SELL_HOUSE:{
new targetid = pTemp[playerid][pTargetPlayer];
new houseprice = GetPVarInt(playerid, "SellHousePrice");
new houseID = GetPVarInt(playerid, "SellHouseID");
houseID--;
PlayerInfo[targetid][pHaveH] = 0;
PlayerInfo[targetid][pHouse] = 0;
MysqlUpdatePlayerInt(targetid, "house", PlayerInfo[targetid][pHouse]);
MysqlUpdatePlayerInt(targetid, "haveh", PlayerInfo[targetid][pHaveH]);
PlayerInfo[playerid][pHaveH] = 1;
PlayerInfo[playerid][pHouse] = houseID+1;
MysqlUpdatePlayerInt(playerid, "house", PlayerInfo[targetid][pHouse]);
MysqlUpdatePlayerInt(playerid, "haveh", PlayerInfo[targetid][pHaveH]);
strmid(HouseInfo[houseID][hOwner], PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), 255);
HouseInfo[houseID][hOwned] = 1;
DestroyVehicle(PlayerInfo[targetid][pVehicle]);
if(PlayerInfo[playerid][pVehicleModel] != 0){
HouseInfo[houseID][hHouse_Car] = PlayerInfo[playerid][pVehicleModel];
PlayerInfo[playerid][pVehicle] = CreateVehicle(HouseInfo[houseID][hHouse_Car],HouseInfo[houseID][hcar_pos_x],HouseInfo[houseID][hcar_pos_y],HouseInfo[houseID][hcar_pos_z],HouseInfo[houseID][hcar_pos_angle],HouseInfo[houseID][hCar_Color_1],HouseInfo[houseID][hCar_Color_2], -1);
}
if(PlayerInfo[playerid][pVehicleModel] == 0){
HouseInfo[houseID][hHouse_Car] = 462;
PlayerInfo[playerid][pVehicle] = CreateVehicle(HouseInfo[houseID][hHouse_Car],HouseInfo[houseID][hcar_pos_x],HouseInfo[houseID][hcar_pos_y],HouseInfo[houseID][hcar_pos_z],HouseInfo[houseID][hcar_pos_angle],HouseInfo[houseID][hCar_Color_1],HouseInfo[houseID][hCar_Color_2], -1);
}
SaveHouse(houseID);
UpdateHouseAfterBuy(houseID);
format(str, sizeof(str), "Вы успешно продали свой дом №%d игроку %s[%d] за {FFFFFF}$%d.", houseID+1, GetName(playerid), playerid, houseprice);
SendClientMessage(targetid, COLOR_BLUE, str);
TransferMoney(playerid, targetid, houseprice);
MoneyLogsEngine(playerid, targetid, houseprice, "Buy house from player");
format(str, sizeof(str), "Вы успешно купили дом №%d за {FFFFFF}$%d.", houseID+1, houseprice);
SendClientMessage(playerid, COLOR_BLUE, str);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_SELL_BIZ:{
new targetid = pTemp[playerid][pTargetPlayer];
new bizpricesell = GetPVarInt(playerid, "SellBizPrice");
new bizID = GetPVarInt(playerid, "SellBizID");
bizID--;
PlayerInfo[targetid][pBiz] = 0;
MysqlUpdatePlayerInt(targetid, "biz", PlayerInfo[targetid][pBiz]);
PlayerInfo[playerid][pBiz] = bizID+1;
MysqlUpdatePlayerInt(playerid, "biz", PlayerInfo[playerid][pBiz]);
strmid(BizInfo[bizID][bOwner], PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), 255);
BizInfo[bizID][bOwned] = 1;
SaveBiz(bizID);
UpdateBiz(bizID);
format(str, sizeof(str), "Вы успешно продали свой бизнес №%d игроку %s[%d] за {FFFFFF}$%d.", bizID+1, GetName(playerid), playerid, bizpricesell);
SendClientMessage(targetid, COLOR_BLUE, str);
format(str, sizeof(str), "Вы успешно купили бизнес №%d за {FFFFFF}$%d.", bizID+1, bizpricesell);
SendClientMessage(playerid, COLOR_BLUE, str);
TransferMoney(playerid, targetid, bizpricesell);
MoneyLogsEngine(playerid, targetid, bizpricesell, "Buy business from player");
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_PARTY_INVITE:{
new targetid = pTemp[playerid][pTargetPlayer];
new party = GetPVarInt(playerid, "PartyInvite:Party");
if(PlayerInfo[playerid][pPartyMember] != -1){
SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Вы уже состоите в партии. Предложение отменено.");
SendClientMessage(targetid, COLOR_ERROR, !"Ошибка: Игрок уже состоит в партии. Предложение отменено.");
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
PlayerInfo[playerid][pPartyMember] = party + 1;
MysqlUpdatePlayerInt(playerid, "partymember", PlayerInfo[playerid][pPartyMember]);
format(str, sizeof(str), "%s[%d] принял Ваше предложение вступить в партию.", GetName(playerid), playerid);
SendClientMessage(targetid, COLOR_BLUE, str);
SendClientMessage(playerid, COLOR_BLUE, !"Вы успешно приняли предложение вступить в партию.");
DeletePVar(playerid, "PartyInvite:Party");
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_PARTY_SHOWTICKET:{
new targetid = pTemp[playerid][pTargetPlayer];
new party = GetPVarInt(playerid, "PartyTicket:Party");
new Float:pos[3];
format(str, sizeof(str), "{FFFFFF}Участник партии:\t\t{2ac1fc}%s\n\n{FFFFFF}Название партии:\t\t{2ac1fc}%s\n{FFFFFF}Лидер партии:\t\t{2ac1fc}%s\n{FFFFFF}Дата регистрации:\t\t{2ac1fc}%s\n\n{FFFFFF}Девиз партии: {2ac1fc}%s", GetName(targetid), PartyInfo[party][pName], PartyInfo[party][pLeader], PartyInfo[party][pRegDate], PartyInfo[party][pSubTitle]);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{2ac1fc}Партийный билет", str, "Закрыть", "");
format(str, sizeof(str), "%s[%d] принял Ваше предложение просмотреть партийный билет.", GetName(playerid), playerid);
SendClientMessage(targetid, COLOR_BLUE, str);
GetPlayerPos(targetid, pos[0], pos[1], pos[2]);
SetPlayerChatBubble(targetid, "показал(а) свой партийный билет", COLOR_PURPLE, 15.0, 4000);
format(str, sizeof(str), "%s показал%s свой партийный билет %s", GetName(targetid), (PlayerInfo[targetid][pSex] == 0)?(""):("а"), GetName(playerid));
IsPlayerNearCmd(15.0, str, COLOR_PURPLE, pos[0], pos[1], pos[2]);
DeletePVar(playerid, "PartyTicket:Party");
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_SHOW_LICENSES:{
new targetid = pTemp[playerid][pTargetPlayer];
new Float:pos[3];
format(str, sizeof(str), "{FFFFFF}Лицензия\t{FFFFFF}Состояние\n\
{FFFFFF}Водительское удостоверение\t%s\n{FFFFFF}Удостоверение пилота\t%s\n{FFFFFF}Водный транспорт\t%s",
(PlayerInfo[targetid][pLicenses][0] == 0)?("{f44122}Отсутствует"):("{89cc43}Действительна"),
(PlayerInfo[targetid][pLicenses][1] == 0)?("{f44122}Отсутствует"):("{89cc43}Действительна"),
(PlayerInfo[targetid][pLicenses][2] == 0)?("{f44122}Отсутствует"):("{89cc43}Действительна"));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_TABLIST_HEADERS, "{2ac1fc}Лицензии", str, "Закрыть", "");
format(str, sizeof(str), "%s[%d] принял Ваше предложение просмотреть лицензии.", GetName(playerid), playerid);
SendClientMessage(targetid, COLOR_BLUE, str);
GetPlayerPos(targetid, pos[0], pos[1], pos[2]);
SetPlayerChatBubble(targetid, "показал(а) свои лицензии", COLOR_PURPLE, 15.0, 4000);
format(str, sizeof(str), "%s показал%s свои лицензии %s", GetName(targetid), (PlayerInfo[targetid][pSex] == 0)?(""):("а"), GetName(playerid));
IsPlayerNearCmd(15.0, str, COLOR_PURPLE, pos[0], pos[1], pos[2]);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_HEAL:{
new targetid = pTemp[playerid][pTargetPlayer];
SetHealth(playerid, 100.0);
HospitalHeal(playerid);
SendClientMessage(targetid, COLOR_BLUE, !"Пациент принял Ваше предложение и прошел курс лечения");
TransferMoney(playerid, -1, GetPVarInt(playerid, "HospitaHeal:Amount"));
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_LIVE:{
new targetid = pTemp[playerid][pTargetPlayer];
SendClientMessage(targetid, COLOR_BLUE, !"Игрок принял Ваше предложение. Интервью начинается.");
SendClientMessage(targetid, COLOR_INFO, !"Теперь Вы можете выйти в эфир с помощью команды /news. Игрок также сможет участвовать.");
SendClientMessage(targetid, COLOR_INFO, !"Чтобы отключить игрока от эфира используйте команду /endlive [id игрока]");
SendClientMessage(playerid, COLOR_BLUE, !"Вы успешно приняли предложение участвовать в интервью.");
SendClientMessage(playerid, COLOR_INFO, !"Теперь Вы можете использовать команду /u, чтобы участвовать в обсуждении.");
pTemp[playerid][pInLive] = 1;
pTemp[targetid][pInLive] = 1;
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_SHOW_MED:{
new targetid = pTemp[playerid][pTargetPlayer];
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetAction] = ACTION_NONE;
SendClientMessage(targetid, COLOR_BLUE, !"Игрок принял Ваше предложение.");
format(MSQ, sizeof(MSQ), "SELECT * FROM "MYSQL_MEDBOOK_TABLE" WHERE `owner` = '%s'", GetName(targetid));
mysql_tquery(MYSQL_CON, MSQ, "@ShowMed", "ii", playerid, targetid);
return true;
}
case ACTION_MEDCHECK_FULL:{
new targetid = pTemp[playerid][pTargetPlayer];
new Float:pos[3];
format(str, sizeof(str), "%s начинает медицинский осмотр %s", GetName(targetid), GetName(playerid));
GetPlayerPos(targetid, pos[0], pos[1], pos[2]);
IsPlayerNearCmd(10.0, str, COLOR_PURPLE, pos[0], pos[1], pos[2]);
SetTimerEx("CheckTemp", 1000, false, "ii", targetid, playerid);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_MEDCHECK_TEMP:{
new targetid = pTemp[playerid][pTargetPlayer];
RandomTemp(targetid, playerid);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_MEDCHECK_DAVL:{
new targetid = pTemp[playerid][pTargetPlayer];
RandomDavl(targetid, playerid);
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
return pTemp[playerid][pTargetAction] = ACTION_NONE;
}
case ACTION_GO_ROB:{
new targetid = pTemp[playerid][pTargetPlayer];
pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetAction] = ACTION_NONE;
SetPVarInt(targetid, "Robbery:Partner", playerid);
SetPVarInt(playerid, "Robbery:Partner", targetid);
SendClientMessage(targetid, COLOR_INFO, !"Игрок принял Ваше предложение. Теперь отправляйтесь за машиной. Точка уже установлена на Вашем радаре.");
SendClientMessage(playerid, COLOR_INFO, !"Вы приняли предложение. Теперь отправляйтесь за машиной. Точка уже установлена на Вашем радаре.");
SetPlayerCheckpoint(playerid, 1914.1226, -1858.9080, 13.5610, 3.5);
SetPlayerCheckpoint(targetid, 1914.1226, -1858.9080, 13.5610, 3.5);
SetPVarInt(playerid, "Robbery:Stage", 1);
SetPVarInt(targetid, "Robbery:Stage", 1);
return 1;
}
}
if(GetPVarInt(playerid, "Notify:SMS") == 1){
SelectTextDraw(playerid, COLOR_LIGHTBLUE);
}
}
if(newkeys & KEY_NO){ // N
if((pTemp[playerid][pTargetAction] > ACTION_NONE && pTemp[playerid][pTargetAction] <= ACTION_GO_ROB)){
new targetid = pTemp[playerid][pTargetPlayer];
SendClientMessage(playerid, COLOR_ERROR, !"Вы отказались от предложения.");
SendClientMessage(targetid, COLOR_ERROR, !"Игрок отказался от Вашего предложения.");
pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
pTemp[playerid][pTargetAction] = ACTION_NONE;
}
return 1;
}
if(newkeys == 2 && playerState == PLAYER_STATE_DRIVER){
if(PlayerInfo[playerid][pJob] == JOB_AERO || PlayerInfo[playerid][pJob] == JOB_POST){
if(postbarrier_status == 1) return SendClientMessage(playerid, COLOR_ERROR, !"Ошибка: Шлагбаум уже открыт, повторите попытку позже.");
if(IsPlayerInRangeOfPoint(playerid, 8.0, 1071.80798, -1889.51404, 13.247)){
MoveDynamicObject(postbarrier, 1071.80798, -1889.51404, 13.247, 0.1, 0.0, 0.0, 271.5);
postbarrier_status = 1;
SetTimer("postclose", 8000, 0);
SendClientMessage(playerid, COLOR_LIME, !"Шлагбаум успешно открыт на 8 секунд.");
}
}
}
if(PRESSED(KEY_FIRE) || PRESSED(KEY_HANDBRAKE) || PRESSED(KEY_JUMP)){
if(PlayerInfo[playerid][pJob] != JOB_NONE && IsPlayerAttachedObjectSlotUsed(playerid, 2) && FactoryInfo[playerid][FactoryStage] != 0){
RemovePlayerAttachedObject(playerid, 2);
RemovePlayerAttachedObject(playerid, 3);
SendClientMessage(playerid, COLOR_RED, !"Вы сломали свою тележку. Пожалуйста, возьмите новую.");
ClearAnimations(playerid);
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,1,0,0,0,2500);
SetPlayerCheckpoint(playerid, -2149.0183, -234.4952, 36.5156, 2.0);
return 1;
}
if(PlayerInfo[playerid][pJob] != JOB_NONE && IsPlayerAttachedObjectSlotUsed(playerid, 5) && GetPVarInt(playerid, "GruzStage") != 0){
RemovePlayerAttachedObject(playerid, 5);
SendClientMessage(playerid, COLOR_RED, !"Вы уронили груз из Ваших рук. Пожалуйста, возьмите новый.");
ClearAnimations(playerid);
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,1,0,0,0,2500);
SetPlayerCheckpoint(playerid, 1668.3042, 1089.5613, 10.8203, 2.0);
SetPVarInt(playerid, "GruzStage", 1);
return 1;
}
}
if(playerState == PLAYER_STATE_ONFOOT && newkeys & KEY_SPRINT && newkeys & KEY_JUMP){
new time = gettime();
if(time > BunnyHopTime[playerid] && GetPlayerSpeed(playerid, true) >= MIN_BUNNYHOP_SPEED)
{
SetTimerEx("AntiBunnyHop", 1000, false, "i", playerid);
}
BunnyHopTime[playerid] = time;
}
if(newkeys & KEY_SPRINT && GetPVarInt(playerid, "enable_animation") == 1){
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid, 0);
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
DeletePVar(playerid,"enable_animation");
for(new g; g < 3; g++) TextDrawHideForPlayer(playerid, AnimationsTD[g]);
}
if(PlayerInfo[playerid][pJob] == JOB_FACTORY && FactoryInfo[playerid][FactoryStage] == 3 && IsPlayerInRangeOfPoint(playerid, 2.0, -2158.1956, -248.8193, 36.5156) || IsPlayerInRangeOfPoint(playerid, 2.0, -2159.8003, -248.8094, 36.5156) || IsPlayerInRangeOfPoint(playerid, 2.0, -2161.7151, -248.7964, 36.5156) || IsPlayerInRangeOfPoint(playerid, 2.0, -2164.0620, -248.7818, 36.5156)){
if(newkeys == FactoryInfo[playerid][FactoryGameKey] && FactoryInfo[playerid][FactoryStage] == 3){
new amount = FactoryInfo[playerid][FactoryGameAmount];
amount++;
FactoryInfo[playerid][FactoryGameAmount] = amount;
if(FactoryInfo[playerid][FactoryGameAmount] == 15 && FactoryInfo[playerid][FactoryStage] == 3){
KillTimer(factorytimer[playerid]);
TogglePlayerControllable(playerid, 1);
FactoryInfo[playerid][FactoryStage] = 4;
FactoryInfo[playerid][FactoryGameKey] = 0;
FactoryInfo[playerid][FactoryGameAmount] = 0;
SendClientMessage(playerid, COLOR_INFO, !" ");
SendClientMessage(playerid, COLOR_INFO, !"Проверка товара окончена. Теперь направляйтесь в зону упаковки.");
SetPlayerCheckpoint(playerid, -2147.1519, -250.5901, 36.5156, 2.0);
} else {
new str[26];
format(str, sizeof(str), "%d", FactoryInfo[playerid][FactoryGameAmount]);
strcat(str, "/15");
GameTextForPlayer(playerid, str, 1500, 3);
}
}
}
if(PlayerInfo[playerid][pJob] == JOB_COM && ComInfo[playerid][ComStage] == 3){
if(newkeys == ComInfo[playerid][ComGameKey] && PlayerInfo[playerid][pJob] == JOB_COM && ComInfo[playerid][ComStage] == 3){
new amount = ComInfo[playerid][ComGameAmount];
amount++;
ComInfo[playerid][ComGameAmount] = amount;
if(ComInfo[playerid][ComGameAmount] == 15 && ComInfo[playerid][ComStage] == 3){
KillTimer(comtimer[playerid]);
DestroyObject(comTreeO[playerid]);
ClearAnimations(playerid);
TogglePlayerControllable(playerid, 1);
ComInfo[playerid][ComStage] = 4;
ComInfo[playerid][ComGameKey] = 0;
ComInfo[playerid][ComGameAmount] = 0;
SendClientMessage(playerid, COLOR_INFO, !" ");
SendClientMessage(playerid, COLOR_INFO, !"Отлично! Дерево срублено и успешно погружено на Ваше авто. Теперь отвезите его на склад.");
comCarTree[playerid] = CreateDynamicObject(684,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
AttachDynamicObjectToVehicle(comCarTree[playerid], GetPVarInt(playerid, "WorkCar"), 0.000, -1.759, 0.140, 0.000, 0.000, 0.000);
Delete3DTextLabel(comTreeText[playerid]);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, -2504.2849, 768.4606, 35.1719, 10);
} else {
new str[26];
format(str, sizeof(str), "%d", ComInfo[playerid][ComGameAmount]);
strcat(str, "/15");
GameTextForPlayer(playerid, str, 1500, 3);
}
return 1;
}
}
return 1;
}
Ссылка на исходный код на pastebin:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Обрабатывается только первое условие, остальные остаются без каких-либо действий. В чем может быть проблема? И как делать множественные проверки на одну кнопку более лучше и оптимизированнее? Спасибо!
