Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5

Тема: Проверка

  1. #1
    Аватар для Long-
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    131
    Репутация:
    23 ±

    Проверка

    Всем привет скриптеры.
    Я почему то не могу вдуплить в проверку, не знаю почему, мозг будто отбрасывает :D Не знаю даже как объяснить.
    Вроде сделал все правильно, но он не как не хочет выдавать желаемое, вроде все логичное.

    Начал работать с чекпоинтами , ну вроде все хорошо, в нем сделал проверку, но она не срабатывает.

    Т.е сделал 4 слота, если 1 слот занят встаем на 2 если 2 и 1 занят встаем на 3 и т.п
    Но почему то если 1 и 2 занят то он всеравно встает на 2, странно.

    Вот мои наброски:

    PHP код:
    if(checkpointid == CheckPointJobPress1[playerid] && IsPlayerInVehicle(playeridgVehicleJobPress[GetPVarInt(playerid"NumberVehiclePress")]))
         {
             
    DestroyDynamicCP(CheckPointJobPress1[playerid]);
             
    CheckPointJobPress1[playerid] = 0;
             
             if(
    gPressSlot_1 != && gPressSlot_2 != && gPressSlot_3 != && gPressSlot_4 != 0)
                return 
    SendClientMessage(playerid, -1"Сейчас все прессы заняты, ждите пока осободится один из них.");
             
             
    gObjectAttachVehiclePress[playerid] = CreateObject(129570.0 0.0 ,0.00.00.00.00.0);
             
             new
                
    GetPVarInt(playerid"NumberVehiclePress");

            
    AttachObjectToVehicle(gObjectAttachVehiclePress[playerid], gVehicleJobPress[v], 0.01.00.40.00.090.0);

            
    //Если 1 пресс занят то вызываем 2-ой
            
    if(gPressSlot_1 != 0)
            {
                
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1669.9131,51.5018,3.57331.7, -1, -1playerid);

                
    SetPVarFloat(playerid"Position_press_controller_x", -1674.8478);
                   
    SetPVarFloat(playerid"Position_press_controller_y"40.9721);
                  
    SetPVarFloat(playerid"Position_press_controller_z"3.5547);

                
    SetPVarFloat(playerid"Position_press_x", -1669.9131);
                   
    SetPVarFloat(playerid"Position_press_y"51.5018);
                   
    SetPVarFloat(playerid"Position_press_z"3.5733);
                   
    gPressSlot_2 1;
                   return 
    1;
            }
            
    //end
            //Если 2 пресс занят вызываем 3-ий пресс
            
    if(gPressSlot_2 != 0)
            {
                
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1668.3890,93.9657,3.57331.7, -1, -1playerid);

                
    SetPVarFloat(playerid"Position_press_controller_x", -1679.0974);
                   
    SetPVarFloat(playerid"Position_press_controller_y"89.9217);
                  
    SetPVarFloat(playerid"Position_press_controller_z"3.5452);

                
    SetPVarFloat(playerid"Position_press_x", -1668.3890);
                
    SetPVarFloat(playerid"Position_press_y"93.9657);
                
    SetPVarFloat(playerid"Position_press_z"3.5733);
                
    gPressSlot_3 1;
                return 
    1;
            }
            
    //end
            //Если 3 занят вызываем 4-ий
            
    if(gPressSlot_3 != 0)
            {
                
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1648.0936,73.9195,3.57331.7, -1, -1playerid);

                
    SetPVarFloat(playerid"Position_press_controller_x", -1652.1462);
                  
    SetPVarFloat(playerid"Position_press_controller_y"63.3789);
                  
    SetPVarFloat(playerid"Position_press_controller_z"3.5451);

                
    SetPVarFloat(playerid"Position_press_x", -1648.0936);
                
    SetPVarFloat(playerid"Position_press_y"73.9195);
                
    SetPVarFloat(playerid"Position_press_z"3.5733);
                
    gPressSlot_4 1;
                return 
    1;
            }
            
    //end
            //Если 1 пресс не занят то занимаем первый
            
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1690.1558,72.1034,3.57331.7, -1, -1playerid);
            
            
    SetPVarFloat(playerid"Position_press_controller_x"1700.5906);
              
    SetPVarFloat(playerid"Position_press_controller_y"68.0051);
              
    SetPVarFloat(playerid"Position_press_controller_z"3.5495);

            
    SetPVarFloat(playerid"Position_press_x", -1690.1558);
              
    SetPVarFloat(playerid"Position_press_y"72.1034);
            
    SetPVarFloat(playerid"Position_press_z"3.5733);
            
    gPressSlot_1 1;
            
    //end
                 
    return 1;
         } 
    Может кто подскажет

  2. #2
    Аватар для Item
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    27
    Репутация:
    4 ±
    Лучше сделать цикл с прогоном по всем трем слотам. Если слот свободен - записываем его номер в определенную переменную, и уже в дальнейшем работаем с этой переменной

  3. #3
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    PHP код:
     if(gPressSlot_2 != 0)
            {
                
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1668.3890,93.9657,3.57331.7, -1, -1playerid);

                
    SetPVarFloat(playerid"Position_press_controller_x", -1679.0974);
                   
    SetPVarFloat(playerid"Position_press_controller_y"89.9217);
                  
    SetPVarFloat(playerid"Position_press_controller_z"3.5452);

                
    SetPVarFloat(playerid"Position_press_x", -1668.3890);
                
    SetPVarFloat(playerid"Position_press_y"93.9657);
                
    SetPVarFloat(playerid"Position_press_z"3.5733);
                
    gPressSlot_3 1;
                return 
    1;
            } 
    ты выставляешь значение 1 слоту номер 3 при использовании 2 слота, присмотрись
    PHP код:
    gPressSlot_3 1// а надо gPressSlot_2 = 1; 

  4. #4
    Аватар для Long-
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    131
    Репутация:
    23 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    PHP код:
     if(gPressSlot_2 != 0)
            {
                
    CheckPointJobPress2[playerid] = CreateDynamicCP(-1668.3890,93.9657,3.57331.7, -1, -1playerid);

                
    SetPVarFloat(playerid"Position_press_controller_x", -1679.0974);
                   
    SetPVarFloat(playerid"Position_press_controller_y"89.9217);
                  
    SetPVarFloat(playerid"Position_press_controller_z"3.5452);

                
    SetPVarFloat(playerid"Position_press_x", -1668.3890);
                
    SetPVarFloat(playerid"Position_press_y"93.9657);
                
    SetPVarFloat(playerid"Position_press_z"3.5733);
                
    gPressSlot_3 1;
                return 
    1;
            } 
    ты выставляешь значение 1 слоту номер 3 при использовании 2 слота, присмотрись
    PHP код:
    gPressSlot_3 1// а надо gPressSlot_2 = 1; 
    Ну, все правильно, объясню:

    Если gPressSlot_2 != 0 то мы чекпоинт ставим на 3 пресс тем самым gPressSlot_3 =1 .

  5. #5
    Аватар для Long-
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    131
    Репутация:
    23 ±
    Closed, исправил после того как немного поспал :)

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •