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

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±

    Вопрос с пикапом

    Привет всем нашел еще один баг или ошибка в коде не-знаю вообщем на сервере я сделал 3 фуры для SFa армии и взаимодействие пикапа с машиной. Суть ошибки работают только 2 пикапа из 3. как сделать чтобы все 3 пикапа с машинами функционировали

    Код:
    PHP код:
    //Для Армии
    new SFaCar[3];//Матовозы армии SF
    new ArmyPickup[3];
    new 
    Text3D:ArmyText3D[3];
    new 
    ArmyTime[MAX_PLAYERS];
    enum MtLoad
    {
        
    LoadMater[3],//количество машин
    }
    new 
    LoadMats[1][MtLoad]; 
    PHP код:
            if(carid >= SFaCar[0] && carid <= SFaCar[2])
            {
                if(
    PlayerInfo[playerid][pMember] == || PlayerInfo[playerid][pLeader] == 7)
                {
                    for(new 
    0sizeof(LoadMats); i++)
                    {
                        new 
    mID GetArmyCar(playerid);
                        if(
    LoadMats[i][LoadMater][mID] < 10000)
                        {
                            new 
    string[50+MAX_PLAYER_NAME-2];
                            static const 
    mload[] = "Материалы в машине: %d / 10000";
                            
    format(stringsizeof(string), mloadLoadMats[i][LoadMater][mID]);
                            
    SendClientMessage(playeridCOLOR_GREENstring);
                        }
                        else
                        {
                            new 
    string[50+MAX_PLAYER_NAME-2];
                            static const 
    mload[] = "Материалы в машине: %d / 10000";
                            
    format(stringsizeof(string), mloadLoadMats[i][LoadMater][mID]);
                            
    SendClientMessage(playeridCOLOR_GREENstring);
                        }
                    }
                }
                else
                {
                    
    SendClientMessage(playeridCOLOR_WHITE"Вы не солдат армии SFa!");
                    
    RemovePlayerFromVehicle(playerid);
                    return 
    1;
                }
            } 
    PHP код:
    stock GetArmyPickup(pickupid)
    {
        if(
    ArmyPickup[0] == pickupid) return 0;
        return 
    1;
    }

    stock GetArmyCar(playerid)
    {
        new 
    carid GetPlayerVehicleID(playerid);
        if(
    SFaCar[0] == carid) return 0;
        return 
    1;

    PHP код:
        SFaCar[0] = AddStaticVehicleEx(433,-1339.9487000,458.8376000,7.2831000,0.0000000,-1,-1,3600); //Barracks
        
    SFaCar[1] = AddStaticVehicleEx(433,-1344.7590000,458.8272000,7.2831000,0.0000000,-1,-1,3600); //Barracks
        
    SFaCar[2] = AddStaticVehicleEx(433,-1348.7590000,458.8272000,7.2831000,0.0000000,-1,-1,3600); //Barracks 
    PHP код:
    public OnPlayerPickUpDynamicPickup(playeridpickupid)
    {
        if(
    pickupid == ArmyPickup[0] || pickupid == ArmyPickup[1] || pickupid == ArmyPickup[2])
        {
            new 
    mID GetArmyPickup(pickupid);
            for(new 
    0sizeof(LoadMats); i++)
            {
                if(
    LoadMats[i][LoadMater][mID] > 9900)
                {
                    
    LoadMats[i][LoadMater][mID] = 10000;
                    
    DestroyDynamicPickup(ArmyPickup[mID]);//Удалили пикап
                    
    Delete3DTextLabel(ArmyText3D[mID]);//Удалили текст
                    
    SendClientMessage(playeridCOLOR_WHITE"Грузовик полон!");
                    return 
    1;
                }
                else
                {
                    if(!
    IsPlayerAttachedObjectSlotUsed(playerid1)) return SendClientMessage(playeridCOLOR_WHITE"У вас нет материалов на руках!");
                    
    LoadMats[i][LoadMater][mID] += 1000;
                    
    GameTextForPlayer(playerid"~b~count:~w~+1000"10001);
                    new 
    string[30+MAX_PLAYER_NAME-2];
                    static const 
    mload[] = "Груз:\n %d / 10000";
                    
    format(stringsizeof(string), mloadLoadMats[i][LoadMater][mID]);
                    
    Update3DTextLabelText(ArmyText3D[mID], COLOR_YELLOWstring);
                    if(
    IsPlayerAttachedObjectSlotUsed(playerid1)) RemovePlayerAttachedObject(playerid1);
                    
    SetPlayerSpecialAction(playeridSPECIAL_ACTION_NONE);
                }
            }
            return 
    1;
        }

    Таймер
    PHP код:
            for(new 0sizeof(LoadMats); q++)
            {
                if(
    ArmyTime[i] > 0)
                {
                    
    ArmyTime[i]--;
                    if(
    ArmyTime[i] == 0)
                    {
                        
    ArmyTime[i] = 0;
                        new 
    carid GetPlayerVehicleID(i);
                        new 
    mID GetArmyCar(i);
                        
    GetVehiclePos(caridX12Y12Z12);
                        
    GetXYInFrontOfPlayer(iX12Y12, -6);
                        new 
    string[15+MAX_PLAYER_NAME-2];
                        static const 
    army[] = "Груз: %d / 10000";
                        
    format(stringsizeof(string), armyLoadMats[q][LoadMater][mID]);
                        
    ArmyPickup[mID] = CreateDynamicPickup(1919723X12Y12Z12);
                        
    ArmyText3D[mID] = Create3DTextLabel(stringCOLOR_YELLOWX12Y12Z1215.001);
                        
    GetVehicleParamsEx(caridenginelightsalarmdoorsbonnetbootobjective);
                        
    SetVehicleParamsEx(caridVEHICLE_PARAMS_OFFVEHICLE_PARAMS_OFFalarmdoorsbonnetbootobjective);
                        
    SendClientMessage(iCOLOR_WHITE"{0289CC}Машина на месте. Теперь вы и ваши солдаты, могут загружать её");
                        return 
    1;
                    }
                }
            } 

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

    Статус
    Оффлайн
    Регистрация
    28.04.2014
    Адрес
    Moscow
    Сообщений
    45
    Репутация:
    12 ±
    Попробуй так:
    Код:
    if(pickupid >= ArmyPickup[0] && pickupid <= ArmyPickup[2])

  3. Пользователь сказал cпасибо:
    EugeneLive (21.09.2016)
  4. #3
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±
    Цитата Сообщение от bred Посмотреть сообщение
    Попробуй так:
    Код:
    if(pickupid >= ArmyPickup[0] && pickupid <= ArmyPickup[2])
    Думаешь я этого не про бывал - Не работает!

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Ты спросил - тебе ответили. Мне почём знать, что ты пробовал, а что нет?

    Явно ведь нет взаимодействия с пикапом. Конкретности пока нет. По приезду проверю.

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

    Статус
    Оффлайн
    Регистрация
    15.08.2015
    Сообщений
    106
    Репутация:
    8 ±
    Так это элементарные вещи

    PHP код:
    stock GetArmyPickup(pickupid)
    {
        if(
    ArmyPickup[0] == pickupid) return 0;
        else if(
    ArmyPickup[1] == pickupid) return 1;
        return 
    2;
    }

    stock GetArmyCar(playerid)
    {
        new 
    carid GetPlayerVehicleID(playerid);
        if(
    SFaCar[0] == carid) return 0;
        else if(
    SFaCar[1] == carid) return 1;
        return 
    2;

    К пикапам можно попробовать сделать:
    new idPickup = pickupid - ArmyPickup[0];
    что бы не юзать функцию

 

 

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

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

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

Ваши права

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