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

    Статус
    Оффлайн
    Регистрация
    26.11.2014
    Адрес
    Новосибирск
    Сообщений
    20
    Репутация:
    0 ±

    Проблема с переменными car taxi.

    Нужна помощь, ибо я сегодня подустал уже)
    при инициализации мода создаются кары такси
    PHP код:
        new string[50],Float:= -1752.6564;
        for(
    a=1;a<3;a++)    { //=============== Машины такси у автовокзала. 9 шт
            
    TaxiId[a] = CreateVehicle(420,1152.0154,p,13.0713,270.5028,6,6,400);
            
    p+=4.0;
            
    format(stringsizeof(string), "---%d---",TaxiId[a]);
            
    SCM_ALL(C_RED,string);
        }
         
    format(stringsizeof(string),"LOADING: CARS [taxi] .......... %d",a-1);
        print(string); 
    Выдает в чат
    Код:
    ---1---
    ---2---
    Все правильно, созданы два кара с айди 1,2

    идем дальше

    функция stock IsTaxiCar(vehicleid) проверка что игрок сел в машину такси

    PHP код:
    stock IsTaxiCar(vehicleid)
    {
        for(new 
    i=1i<MAX_TAXIi++)
        {
            
            new 
    string[50];
            
    format(stringsizeof(string), "---%d---%d---",vehicleidTaxiId[i]);
            
    SCM_ALL(C_RED,string);

            if(
    vehicleid == TaxiId[i]) 
                return 
    1;
        }
        return 
    0;

    выдает в чат
    Код:
    ---2---3---
    ---2---4---
    2 это ид кара в который сел, а 3 и 4 берет с переменной TaxiId[i]

    Но почему 3 и 4 ??? если при инициализации были созданы 1 и 2

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

    Статус
    Оффлайн
    Регистрация
    26.11.2014
    Адрес
    Новосибирск
    Сообщений
    20
    Репутация:
    0 ±
    У кого какие соображения?

  3. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DiFix Посмотреть сообщение
    Код:
    for(a=1;a<3;a++)
    В Pawn нумерация ячеек массива начинается с 0. У вас же заполнение идёт с 1-й ячейки, а 0-я так и не используется.
    Это вам не Pascal, где можно задать нумерацию с 1.

    Цитата Сообщение от DiFix Посмотреть сообщение
    Код:
    for(a=1;a<3;a++)
    В цикле происходит заполнение массива TaxiId. А потому цикл должен выполняться от 0 до sizeof(TaxiId)-1.
    В итоге получаем цикл:
    PHP код:
    for(new i=0i<sizeof(TaxiId); i++) 

    В общем, могу посоветовать только одно: научитесь работать с массивами.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    26.11.2014
    Адрес
    Новосибирск
    Сообщений
    20
    Репутация:
    0 ±
    интересная весчь получается..
    исправил цикл в OnGameModeInit на это
    PHP код:
    new a,string[50],Float:= -1752.6564;
        for(
    a=0;a<sizeof(TaxiId);a++)    { //=============== Машины такси у автовокзала. 9 шт
            
    TaxiId[a] = CreateVehicle(420,1152.0154,p,13.0713,270.5028,6,6,400);
            
    p+=4.0;
            
    format(stringsizeof(string), "---%d---",TaxiId[a]);
            
    //SCM_ALL(C_RED,string);
            
    print(string);
        }
        
    IsTaxiCar(0); 
    и в стоке IsTaxiCar
    PHP код:
        for(new i=0i<sizeof(TaxiId); i++)
        {
            
            new 
    string[50];
            
    format(stringsizeof(string), "---%d---%d---",vehicleidTaxiId[i]);
            
    //SCM_ALL(C_RED,string);
            
    print(string);
            if(
    vehicleid == TaxiId[i]) 
                return 
    1;
        }
        return 
    0
    за место SCM_ALL поставил print

    запускаю серв и вижу правильную работу циклов по массиву.
    Код:
    ---1---
    ---2---
    ---0---1---
    ---0---2---
    Возвращаю все обратно на SCM_ALL.
    запускаю мод, выполняю команду /fare которая активирует IsTaxiCar и в итоге в чате вижу следующее
    Код:
    ---2---1---
    ---2---3---
    вообщем я в небольшом тупике
    Последний раз редактировалось DiFix; 01.12.2014 в 16:50.

  5. #5
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Где-то удаляете машины или создаёте их заново? Если да, то записывайте в массив новый ID.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    26.11.2014
    Адрес
    Новосибирск
    Сообщений
    20
    Репутация:
    0 ±
    вот черт моя не внимательность))
    я дальше начал создавать машины скорой, и переменную оставил TaxiId[], и кары скорой записывались сюда же.
    Проблема решена. Спасибо за ответы.

 

 

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

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

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

Ваши права

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