Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя
Показано с 11 по 20 из 22
  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Ну у тебя должна быть переменная, в которую ты записываешь значение материалов, которые игрок загрузил. Собственно, от этой же переменной и отнимаешь количество материалов, которые игрок выгрузил.

    Всё же предельно логично: чтоб количество материалов обновлялось при выгрузке, нужно отнять выгруженное количество материалов от того, которое уже есть у игрока/в машине. Данные хранятся где? Правильно, в переменной. Соответственно, нужно найти переменную, которая хранит количество материалов. По хорошему, название самой переменной должно говорить об её предназначении. Но если переменные назывались абы как, то, во-первых, я советую назвать их нормально, а во-вторых, как я уже говорил, находишь код загрузки материалов, смотришь в какую переменную записывается значение и используешь эту переменную. Ничего сложного ведь :)

    Если будут проблемы с таймерами - предоставляй все свои текущие наработки по тому таймеру, который у тебя не получается сделать и пиши о том, что ты не понимаешь/что у тебя не получается + что ты хочешь получить в итоге. Тогда тебе точно помогут.
    Последний раз редактировалось DeimoS; 12.04.2019 в 09:41.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну у тебя должна быть переменная, в которую ты записываешь значение материалов, которые игрок загрузил. Собственно, от этой же переменной и отнимаешь количество материалов, которые игрок выгрузил.

    Всё же предельно логично: чтоб количество материалов обновлялось при выгрузке, нужно отнять выгруженное количество материалов от того, которое уже есть у игрока/в машине. Данные хранятся где? Правильно, в переменной. Соответственно, нужно найти переменную, которая хранит количество материалов. По хорошему, название самой переменной должно говорить об её предназначении. Но если переменные назывались абы как, то, во-первых, я советую назвать их нормально, а во-вторых, как я уже говорил, находишь код загрузки материалов, смотришь в какую переменную записывается значение и используешь эту переменную. Ничего сложного ведь :)

    Если будут проблемы с таймерами - предоставляй все свои текущие наработки по тому таймеру, который у тебя не получается сделать и пиши о том, что ты не понимаешь/что у тебя не получается + что ты хочешь получить в итоге. Тогда тебе точно помогут.
    на счет таймера у меня есть готовый таймер для заправки авто воя его хочу клонировать и переписать только с отсчетом в обратную сторону
    но пока ничего не получается

    - - - Добавлено - - -

    как я понял вот она эта переменная авто в которую грузятся материалы,только что здесь нужно отнимать
    PHP код:
    new materials_Vehicle[MAX_PLAYERS]; 
    если это она то я изменил + на - но всеровно сколько команду не вводи и какое количество всеровно отгрузка идет и маты в организации добавляются

    PHP код:
                Mats[0] -= till
                
    format(string50"материалов: {9ACD32}%i / 10000"Mats[0]); 
                
    UpdateDynamic3DTextLabelText(tPickup[5], 0xFFFFFFFFstring); 
                
    UpdateDynamic3DTextLabelText(tPickup[12], 0xFFFFFFFFstring); 
                
    SetOtherInt("armymats"Mats[0]); 
                
    SendMes(playeridCOLOR_LIGHTGREEN"Вы разгрузили {ffffff}%i {9ACD32}материалов. Остаток на складе: {ffffff}%i {9ACD32}материалов",till,Mats[0]); 
                
    materials_Vehicle[GetPlayerVehicleID(playerid)] -= till// вот здесь я изменил + на -
                
    return true
    Последний раз редактировалось Andrik851; 12.04.2019 в 13:02.

  3. #13
    Аватар для Paradox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    Переменную Mats, на сколько понял я, ее нужно отнимать.
    Переменная materials_Vehicle чисто для подсчета индивидуально для каждого игрока.

    В вообще по хорошему переписать эту систему загрузки, назвать нормально переменные, да бы тебе было понятно, и сделать более правильно что-ли, не вижу смысла создавать переменную MAX_PLAYERS для подсчета, если машину будут грузить максимум 20 человек, проще тогда уже использовать PVar для подсчета выгрузки/загрузки материалов определенного игрока.
    Последний раз редактировалось Paradox; 12.04.2019 в 13:21.

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от Paradox Посмотреть сообщение
    Переменную Mats, на сколько понял я, ее нужно отнимать.
    Переменная materials_Vehicle чисто для подсчета индивидуально для каждого игрока.
    есть вот еще такая
    PHP код:
    new MatsVehicle[MAX_VEHICLES]; 
    но в коде загрузки я не нашел подходящей переменной кроме выше указанной

    вот код загрузки

    PHP код:
        case D_JOB+9://============= загрузка авто армии
            
    {
                if(!
    response) return true;
                new 
    till 0;
                if(
    sscanf(inputtext"i",till)) return ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                if(
    till || till 3000)
                {
                    
    SendMes(playeridCOLOR_GREY"Кол-во материалов от 1 до 3000!");
                    return 
    ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                }
                if(
    till Mats[0])
                {
                    
    SendClientMessage(playeridCOLOR_GREY"На складе недостаточно материалов!");
                    return 
    ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                }
                
    Mats[0] -= till;
                
    format(string60"Боеприпасов:       {FF9900}%i{ffffff}          шт."Mats[0]); //police
                
    Update3DTextLabelText(tPickup[38], 0xFFFFFFFFstring);
                
    format(string60"На складе:       {FF9900}%i{ffffff}          шт."Mats[0]);//army
                
    UpdateDynamic3DTextLabelText(tPickup[4], 0xFFFFFFFFstring);
                
    SetOtherInt("armymats"Mats[0]);
                
    SendMes(playeridCOLOR_LIGHTGREEN"Вы загрузили {ffffff}%i {9ACD32}материалов. Остаток на складе: {ffffff}%i {9ACD32}материалов",till,Mats[0]);
                
    materials_Vehicle[GetPlayerVehicleID(playerid)] += till;
                return 
    true;
            } 

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

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    Цитата Сообщение от Andrik851 Посмотреть сообщение
    есть вот еще такая
    PHP код:
    new MatsVehicle[MAX_VEHICLES]; 
    но в коде загрузки я не нашел подходящей переменной кроме выше указанной

    вот код загрузки

    PHP код:
        case D_JOB+9://============= загрузка авто армии
            
    {
                if(!
    response) return true;
                new 
    till 0;
                if(
    sscanf(inputtext"i",till)) return ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                if(
    till || till 3000)
                {
                    
    SendMes(playeridCOLOR_GREY"Кол-во материалов от 1 до 3000!");
                    return 
    ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                }
                if(
    till Mats[0])
                {
                    
    SendClientMessage(playeridCOLOR_GREY"На складе недостаточно материалов!");
                    return 
    ShowPlayerDialog(playeridD_JOB+91"материалы""Введите кол-во материалов:""Принять""Отмена");
                }
                
    Mats[0] -= till;
                
    format(string60"Боеприпасов:       {FF9900}%i{ffffff}          шт."Mats[0]); //police
                
    Update3DTextLabelText(tPickup[38], 0xFFFFFFFFstring);
                
    format(string60"На складе:       {FF9900}%i{ffffff}          шт."Mats[0]);//army
                
    UpdateDynamic3DTextLabelText(tPickup[4], 0xFFFFFFFFstring);
                
    SetOtherInt("armymats"Mats[0]);
                
    SendMes(playeridCOLOR_LIGHTGREEN"Вы загрузили {ffffff}%i {9ACD32}материалов. Остаток на складе: {ffffff}%i {9ACD32}материалов",till,Mats[0]);
                
    materials_Vehicle[GetPlayerVehicleID(playerid)] += till;
                return 
    true;
            } 
    переписал бы сис-му загрузки. проще было бы тебе в дальнейшем.
    PHP код:
    new vehicle_mats[6]; // Допустим у меня на сервере 1 армия 5 банд (у всех по 1 фуре) = 6
    /*
    То есть машины:
    vehicle_mats[0] (армия)
    vehicle_mats[0] (банда 1)
    vehicle_mats[0] (банда 2)
    vehicle_mats[0] (банда 3)
    vehicle_mats[0] (банда 4)
    vehicle_mats[0] (банда 5)
    */

    case dialog_load_mats:
    {
        if(
    response)
        {
            if(
    /*Провера на фракцию армия.*/)
            {
                
    vehicle_mats[0] += amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 1.*/)
            {
                
    vehicle_mats[1] += amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 2.*/)
            {
                
    vehicle_mats[2] += amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 3.*/)
            {
                
    vehicle_mats[3] += amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 4.*/)
            {
                
    vehicle_mats[4] += amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 5.*/)
            {
                
    vehicle_mats[5] += amount// кол-во
            
    }
        }
        return 
    true;
    }

    case 
    dialog_unload_mats:
    {
        if(
    response)
        {
            if(
    /*Провера на фракцию армия.*/)
            {
                
    vehicle_mats[0] -= amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 1.*/)
            {
                
    vehicle_mats[1] -= amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 2.*/)
            {
                
    vehicle_mats[2] -= amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 3.*/)
            {
                
    vehicle_mats[3] -= amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 4.*/)
            {
                
    vehicle_mats[4] -= amount// кол-во
            
    }
            if(
    /*Провера на фракцию банда 5.*/)
            {
                
    vehicle_mats[5] -= amount// кол-во
            
    }
        }
        return 
    true;

    Последний раз редактировалось Paradox; 12.04.2019 в 13:39.

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    если честно я вообще не шарю как это сделать.Я пытаюсь то что в моде было доделать.Команды разгрузки а также диалоа вообще не было я просто изменил команду и диалог в обратную сторону и всего лищь и сталкнулся с такой проблеммой что сколько не вводи команду он всеровно пополняет склады

  7. #17
    Аватар для Paradox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    у тебя элементарно, текст на пикапах:
    То есть tPickup[38], tPickup[4], это разные переменные, соответственно разные текста должны быть, у тебя по сути так и есть, [Боеприпасы] [На складе], а выводит оно из одной переменной Mats[0], судя по всему не верно (дескрипт: police/army)
    PHP код:
                format(string60"Боеприпасов:       {FF9900}%i{ffffff}          шт."Mats[0]); //police
                
    Update3DTextLabelText(tPickup[38], 0xFFFFFFFFstring);
                
    format(string60"На складе:       {FF9900}%i{ffffff}          шт."Mats[0]); //army
                
    UpdateDynamic3DTextLabelText(tPickup[4], 0xFFFFFFFFstring); 
    - - - Добавлено - - -

    Цитата Сообщение от Andrik851 Посмотреть сообщение
    если честно я вообще не шарю как это сделать.Я пытаюсь то что в моде было доделать.Команды разгрузки а также диалоа вообще не было я просто изменил команду и диалог в обратную сторону и всего лищь и сталкнулся с такой проблеммой что сколько не вводи команду он всеровно пополняет склады
    диалоги это пример, это можно реализовать как в командах, так и в чекпоинтах и т. д.

    P.S возьми основу для себя, посмотри на форумах, где не очень много строк, буквально регистрация, может пару фракций, посмотри, попрактикуйся там. должно быть легче, а вообще не плохо было бы функции почитать, и вообще как что работает.
    Последний раз редактировалось Paradox; 12.04.2019 в 13:46.

  8. #18
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    если честно я вообще не шарю как это сделать.Я пытаюсь то что в моде было доделать.Команды разгрузки а также диалоа вообще не было я просто изменил команду и диалог в обратную сторону и всего лищь и сталкнулся с такой проблеммой что сколько не вводи команду он всеровно пополняет склады



    да вот еще что посмотрел твой код получается что у тебя в базе данных тоже есть таблица vehicle_mats или я чтото путаю

  9. #19
    Аватар для Paradox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.06.2015
    Адрес
    Запорожье
    Сообщений
    117
    Репутация:
    1 ±
    Цитата Сообщение от Andrik851 Посмотреть сообщение
    если честно я вообще не шарю как это сделать.Я пытаюсь то что в моде было доделать.Команды разгрузки а также диалоа вообще не было я просто изменил команду и диалог в обратную сторону и всего лищь и сталкнулся с такой проблеммой что сколько не вводи команду он всеровно пополняет склады



    да вот еще что посмотрел твой код получается что у тебя в базе данных тоже есть таблица vehicle_mats или я чтото путаю
    Да, я не менял нечего, она у тебя есть, но ее удалить бы, она у тебя для подсчета загрузки индивидуального игрока, а для подсчета игрокам сделать PVar'ы, а у меня она идет уже для подсчета материалов в фуре.

  10. #20
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от Paradox Посмотреть сообщение
    Да, я не менял нечего, она у тебя есть, но ее удалить бы, она у тебя для подсчета загрузки индивидуального игрока, а для подсчета игрокам сделать PVar'ы, а у меня она идет уже для подсчета материалов в фуре.
    Все сходится к тому что я незнаю как это делать удалить то диалог и команду проблем нету а вот как это все заново написать я не знаю

    - - - Добавлено - - -

    а по поводу police/army это проверка на 3д текст армии просто забил изменить police на army прикопировании проверки

 

 
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя

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

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

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

Ваши права

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