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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, ну так ты данные грузишь в ячейки от 0 и дальше, а обращаться к ним пытаешься по ID авто.
    Так что-ли?

    1. stock ShowPTS(playerid, carid)
    2. {
    3. static
    4. fmt_str[] =
    5. "\
    6. {00C0FF}Владелец:\t\t\t\t{F81414}%s\
    7. \n{00C0FF}ID транспорта:\t\t\t\t{F81414}%d\
    8. \n{00C0FF}Модель:\t\t\t\t\t{F81414}%s\
    9. \n{00C0FF}Класс:\t\t\t\t\t{F81414}%s\
    10. ";
    11. new
    12. string[sizeof(fmt_str)-8+MAX_PLAYER_NAME+11+25+1+1];
    13. format(string, sizeof(string), fmt_str, car[car[carid][cID]][cName], car[carid][cID], ModelName[car[car[carid][cID]][cModel]-400],
    14. car_class[car[car[carid][cID]][cClass]-1]);
    15.  
    16. SPD(playerid, 9866, DSM, !"{00C0FF}ПТС", string, !"{00C0FF}Понятно", !"");
    17. }


    UPD: Да! Это сработало! Наконец-то, DeimoS большое спасибо за наводку)
    Последний раз редактировалось SteveStage; 18.11.2019 в 23:28.

  2. #12
    Аватар для DeimoS
    Модератор?

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    (и то, скорее всего, ты получил данные от не того автомобиля, от которого нужно было).
    Я получил данные именно от того авто, которое у меня (владелец, класс, модель совпадают)

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, нет, не так. Стоит тебе нарушить порядок автомобилей (например, если игрок купит авто во время работы сервера), то твоя система перестанет работать. Тебе нужно загрузку данных переписывать так, чтоб ячейка, в которую записывается информация, совпадала с ID авто.
    Тоесть, по твоему, паблик LoadCars должен выглядить как-то так?

    1. @_LoadCars();
    2. @_LoadCars()
    3. {
    4. new
    5. rows,
    6. fields;
    7. cache_get_data(rows, fields);
    8.  
    9. for(new i; i != rows; i++)
    10. {
    11. car[i][cModel] = cache_get_field_content_int(i, "Model");
    12. car[i][cX] = cache_get_field_content_float(i, "X");
    13. car[i][cY] = cache_get_field_content_float(i, "Y");
    14. car[i][cZ] = cache_get_field_content_float(i, "Z");
    15. car[i][cA] = cache_get_field_content_float(i, "A");
    16. car[i][cHP] = cache_get_field_content_float(i, "HP");
    17. car[i][cColor1] = cache_get_field_content_int(i, "Color1");
    18. car[i][cColor2] = cache_get_field_content_int(i, "Color2");
    19. car[i][cDmg1] = cache_get_field_content_int(i, "Dmg1");
    20. car[i][cDmg2] = cache_get_field_content_int(i, "Dmg2");
    21. car[i][cDmg3] = cache_get_field_content_int(i, "Dmg3");
    22. car[i][cDmg4] = cache_get_field_content_int(i, "Dmg4");
    23. car[i][cPrice] = cache_get_field_content_int(i, "Price");
    24. //car[i][cID] = cache_get_field_content_int(i, "ID");
    25. car[i][cID] = i;
    26. car[i][cPaintjob] = cache_get_field_content_int(i, "Paintjob");
    27. car[i][cClass] = cache_get_field_content_int(i, "Class");
    28. cache_get_field_content(i, "Name", car[i][cName], MAX_PLAYER_NAME+1);
    29. allcars++;
    30. if(!strcmp(car[i][cName], "None"))
    31. allbuycars++;
    32. LoadInfoCar(i);
    33. }
    34. return true;
    35. }
    Последний раз редактировалось SteveStage; 18.11.2019 в 23:25.

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

    Статус
    Оффлайн
    Регистрация
    11.07.2015
    Сообщений
    190
    Репутация:
    25 ±
    Предложил бы такой вариант.

    1. @_LoadCars();
    2. @_LoadCars()
    3. {
    4. new
    5. rows,
    6. fields;
    7.  
    8. cache_get_data(rows, fields);
    9.  
    10. for(new i = 0, idx = 1; i < rows; i++, idx++)
    11. {
    12.  
    13. car[idx][cModel] = cache_get_field_content_int(i, "Model");
    14. car[idx][cX] = cache_get_field_content_float(i, "X");
    15. car[idx][cY] = cache_get_field_content_float(i, "Y");
    16. car[idx][cZ] = cache_get_field_content_float(i, "Z");
    17. car[idx][cA] = cache_get_field_content_float(i, "A");
    18. car[idx][cHP] = cache_get_field_content_float(i, "HP");
    19. car[idx][cColor1] = cache_get_field_content_int(i, "Color1");
    20. car[idx][cColor2] = cache_get_field_content_int(i, "Color2");
    21. car[idx][cDmg1] = cache_get_field_content_int(i, "Dmg1");
    22. car[idx][cDmg2] = cache_get_field_content_int(i, "Dmg2");
    23. car[idx][cDmg3] = cache_get_field_content_int(i, "Dmg3");
    24. car[idx][cDmg4] = cache_get_field_content_int(i, "Dmg4");
    25. car[idx][cPrice] = cache_get_field_content_int(i, "Price");
    26. //car[idx][cID] = cache_get_field_content_int(i, "ID");
    27. car[idx][cID] = i;
    28. car[idx][cPaintjob] = cache_get_field_content_int(i, "Paintjob");
    29. car[idx][cClass] = cache_get_field_content_int(i, "Class");
    30. cache_get_field_content(i, "Name", car[idx][cName], MAX_PLAYER_NAME+1);
    31.  
    32. allcars++;
    33.  
    34. if(!strcmp(car[idx][cName], "None"))
    35. allbuycars++;
    36.  
    37. LoadInfoCar(i);
    38. }
    39. return true;
    40. }




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

    Или же

    1. @_LoadCars();
    2. @_LoadCars()
    3. {
    4. new
    5. rows,
    6. fields;
    7.  
    8. cache_get_data(rows, fields);
    9.  
    10. for(new i = 0, idx = 1; i < rows; i++, idx++)
    11. {
    12. idx = cache_get_field_content_int(i, "ID");
    13.  
    14. ....


    Тогда сразу будет грузиться ID тачки нужный. Хорошо это или плохо, думаю более подробней обьяснит DeimoS, ибо я не имею возможности нормально обьяснить :D
    Последний раз редактировалось Kovshevoy; 18.11.2019 в 23:36.

  5. #15
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, а что-то существенно изменилось?

    Нет. Создаёшь локальные переменные и сначала грузишь данные в них. После создаёшь автомобиль и уже копируешь данные из локальных переменных в массив.
    Получится как-то так:
    1. new vehicleid, /*остальные переменные*/;
    2. for(new i; i < rows; i++)
    3. {
    4. /*локальная переменная для cModel*/ = cache_get_field_content_int(i, "Model");
    5. /*локальная переменная для cX*/ = cache_get_field_content_float(i, "X");
    6. // И так далее...
    7.  
    8. vehicleid = CreateVehicle(/*локальная переменная для cModel*/, /*локальная переменная для cX*/, /*...*/);
    9.  
    10. car[vehicleid][cModel] = /*локальная переменная для cModel*/;
    11. car[vehicleid][cX] = /*локальная переменная для cX*/;
    12. }


    Тут где-то уже задавали схожий вопрос и я даже чуть ли не готовый код давал, вроде.

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

    Вот, собственно, одна из таких тем (вроде, были ещё): *ссылка*
    Последний раз редактировалось DeimoS; 18.11.2019 в 23:43.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Вы упускаете, что LoadInfoCar в конце паблика - и есть код спавна транспорта

    1. stock LoadInfoCar(i)
    2. {
    3. car[i][cVeh] = CreateVehicle(car[i][cModel], car[i][cX], car[i][cY], car[i][cZ], car[i][cA], car[i][cColor2], car[i][cColor2], 0);
    4. UpdateVehicleDamageStatus(car[i][cVeh], car[i][cDmg1], car[i][cDmg2], car[i][cDmg3], car[i][cDmg4]);
    5. SetVehicleHealth(car[i][cVeh], car[i][cHP]);
    6. if(car[i][cPaintjob] > 0)
    7. ChangeVehiclePaintjob(car[i][cVeh], car[i][cPaintjob]-1);
    8. else if(!strcmp(car[i][cName], "None"))
    9. {
    10. car[i][cPrice] = ModelPrice[car[i][cModel]-400];
    11. static const
    12. fmt_str[] = "Автомобиль продается за %d$";
    13. new
    14. str[sizeof(fmt_str)-2+11+1];
    15. format(str, sizeof(str), fmt_str, car[i][cPrice]);
    16. car[i][cTDPrice] = CreateDynamic3DTextLabel(str, COLOR_YELLOW, 0, 0, 0.6, 20.0, INVALID_PLAYER_ID, i, 0, -1, -1, -1, 100.0);
    17. }
    18. return true;
    19. }


    Или вы имеете ввиду, что можно обойтись без него одним пабликом?

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    1. @_LoadCars();
    2. @_LoadCars()
    3. {
    4. new
    5. rows,
    6. fields;
    7. cache_get_data(rows, fields);
    8.  
    9. new veh_id, veh_model, Float:veh_x, Float:veh_y, Float:veh_z, Float:veh_a, Float:veh_hp, veh_color1, veh_color2, veh_dmg1, veh_dmg2, veh_dmg3, veh_dmg4,
    10. veh_price, veh_paintjob, veh_class, veh_name[MAX_PLAYER_NAME+1], Text3D:veh_tdprice;
    11. for(new i; i < rows; i++)
    12. {
    13. veh_model = cache_get_field_content_int(i, "Model");
    14. veh_x = cache_get_field_content_float(i, "X");
    15. veh_y = cache_get_field_content_float(i, "Y");
    16. veh_z = cache_get_field_content_float(i, "Z");
    17. veh_a = cache_get_field_content_float(i, "A");
    18. veh_hp = cache_get_field_content_float(i, "HP");
    19. veh_color1 = cache_get_field_content_int(i, "Color1");
    20. veh_color2 = cache_get_field_content_int(i, "Color2");
    21. veh_dmg1 = cache_get_field_content_int(i, "Dmg1");
    22. veh_dmg2 = cache_get_field_content_int(i, "Dmg2");
    23. veh_dmg3 = cache_get_field_content_int(i, "Dmg3");
    24. veh_dmg4 = cache_get_field_content_int(i, "Dmg4");
    25. veh_price = cache_get_field_content_int(i, "Price");
    26. veh_paintjob = cache_get_field_content_int(i, "Paintjob");
    27. veh_class = cache_get_field_content_int(i, "Class");
    28. veh_id = cache_get_field_content_int(i, "ID");
    29. cache_get_field_content(i, "Name", veh_name, MAX_PLAYER_NAME+1);
    30.  
    31. veh_id = CreateVehicle(veh_model, veh_x, veh_y, veh_z, veh_a, veh_color1, veh_color2, 0);
    32. UpdateVehicleDamageStatus(veh_id, veh_dmg1, veh_dmg2, veh_dmg3, veh_dmg4);
    33. SetVehicleHealth(veh_id, veh_hp);
    34. if(veh_paintjob > 0)
    35. ChangeVehiclePaintjob(veh_id, veh_paintjob-1);
    36. if(!strcmp(veh_name, "None"))
    37. {
    38. veh_price = ModelPrice[veh_model-400];
    39. static
    40. fmt_str[] = "Автомобиль продается за %d$";
    41. new
    42. str[sizeof(fmt_str)-2+11+1];
    43. format(str, sizeof(str), fmt_str, veh_price);
    44. veh_tdprice = CreateDynamic3DTextLabel(str, COLOR_YELLOW, 0, 0, 0.6, 20.0, INVALID_PLAYER_ID, i, 0, -1, -1, -1, 100.0);
    45. }
    46.  
    47. allcars++;
    48. if(!strcmp(veh_name, "None"))
    49. allbuycars++;
    50.  
    51. car[veh_id][cModel] = veh_model;
    52. car[veh_id][cX] = veh_x;
    53. car[veh_id][cY] = veh_y;
    54. car[veh_id][cZ] = veh_z;
    55. car[veh_id][cA] = veh_a;
    56. car[veh_id][cHP] = veh_hp;
    57. car[veh_id][cColor1] = veh_color1;
    58. car[veh_id][cColor2] = veh_color2;
    59. car[veh_id][cDmg1] = veh_dmg1;
    60. car[veh_id][cDmg2] = veh_dmg2;
    61. car[veh_id][cDmg3] = veh_dmg3;
    62. car[veh_id][cDmg4] = veh_dmg4;
    63. car[veh_id][cPrice] = veh_price;
    64. car[veh_id][cPaintjob] = veh_paintjob;
    65. car[veh_id][cClass] = veh_class;
    66. car[veh_id][cID] = veh_id;
    67. cache_get_field_content(i, "Name", car[veh_id][cName], MAX_PLAYER_NAME+1);
    68. }
    69. return true;
    70. }


    Так? Но почему нельзя записывать значения сразу в энум, не записывая в переменные, а потом перезаписывать в энум, если энум все равно используется и в него все равно запишутся значения из бд? Даже в той теме ты писал, что можно лучше - избавиться от перезаписи

    Догадка: чтобы обойтись без переменной цикла i, т.к. она используется только при старте сервера и вызывается один раз, а при покупке авто его нужно загружать повторно
    Последний раз редактировалось SteveStage; 19.11.2019 в 01:15.

  8. #18
    Аватар для DeimoS
    Модератор?

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


    Какое логическое предназначение вот этого?
    1. car[veh_id][cID] = veh_id;

    На всякий случай помечу более явно:
    car[veh_id][cID] = veh_id;
    Ну а в целом, вроде, верно. Я бы ещё добавил проверку на значение в veh_id после создания авто, проверяя невалидные значения, которые возвращает CreateVehicle в случае, если по каким-то причинам не смогла создать автомобиль. Такого, по хорошему, происходить не должно, но лучше писать систему, которая будет устойчива к подобным ошибкам.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Какое логическое предназначение вот этого?
    1. car[veh_id][cID] = veh_id;
    Записать в vID айди транспорта, иначе как я буду его использовать?

    UPD: я сказал про vID потому, что подумал, что лучше будет назвать энум не car, а veh (самолет не автомобиль же)

    1. veh[veh_id][vModel] = veh_model;
    2. veh[veh_id][vX] = veh_x;
    3. veh[veh_id][vY] = veh_y;
    4. veh[veh_id][vZ] = veh_z;
    5. veh[veh_id][vA] = veh_a;
    6. veh[veh_id][vHP] = veh_hp;
    7. veh[veh_id][vColor1] = veh_color1;
    8. veh[veh_id][vColor2] = veh_color2;
    9. veh[veh_id][vDmg1] = veh_dmg1;
    10. veh[veh_id][vDmg2] = veh_dmg2;
    11. veh[veh_id][vDmg3] = veh_dmg3;
    12. veh[veh_id][vDmg4] = veh_dmg4;
    13. veh[veh_id][vPrice] = veh_price;
    14. veh[veh_id][vPaintjob] = veh_paintjob;
    15. veh[veh_id][vClass] = veh_class;
    16. veh[veh_id][vID] = veh_id;
    17. cache_get_field_content(i, "Name", veh[veh_id][vName], MAX_PLAYER_NAME+1);


    UPD2: можно строчку с ID просто закомментировать и использовать только vehicleid, подобно тому, что в энуме игрока хранится ID, но используется playerid

    UPD3: может ты имел ввиду исправить на это?

    1. veh[veh_id][vID] = i;


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я бы ещё добавил проверку на значение в veh_id после создания авто, проверяя невалидные значения, которые возвращает CreateVehicle в случае, если по каким-то причинам не смогла создать автомобиль. Такого, по хорошему, происходить не должно, но лучше писать систему, которая будет устойчива к подобным ошибкам.
    Так?

    1. if(veh_id == INVALID_VEHICLE_ID) return i--;


    UPD: на всякий случай

    1. if(veh_id == INVALID_VEHICLE_ID) return i--;
    2. else if(veh_id != INVALID_VEHICLE_ID) continue;
    Последний раз редактировалось SteveStage; 19.11.2019 в 18:49.

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Мда... переписал я, как ты просил, и опять проблемы AMX Backt*** и т.д. в ShowPTS и dc_cmd_pts

    1. @_LoadCars();
    2. @_LoadCars()
    3. {
    4. new
    5. rows,
    6. fields;
    7. cache_get_data(rows, fields);
    8.  
    9. new veh_id, veh_model, Float:veh_x, Float:veh_y, Float:veh_z, Float:veh_a, Float:veh_hp, veh_color1, veh_color2, veh_dmg1, veh_dmg2, veh_dmg3, veh_dmg4,
    10. veh_price, veh_paintjob, veh_class, veh_name[MAX_PLAYER_NAME+1];
    11. for(new i; i < rows; i++)
    12. {
    13. veh_model = cache_get_field_content_int(i, "Model");
    14. veh_x = cache_get_field_content_float(i, "X");
    15. veh_y = cache_get_field_content_float(i, "Y");
    16. veh_z = cache_get_field_content_float(i, "Z");
    17. veh_a = cache_get_field_content_float(i, "A");
    18. veh_hp = cache_get_field_content_float(i, "HP");
    19. veh_color1 = cache_get_field_content_int(i, "Color1");
    20. veh_color2 = cache_get_field_content_int(i, "Color2");
    21. veh_dmg1 = cache_get_field_content_int(i, "Dmg1");
    22. veh_dmg2 = cache_get_field_content_int(i, "Dmg2");
    23. veh_dmg3 = cache_get_field_content_int(i, "Dmg3");
    24. veh_dmg4 = cache_get_field_content_int(i, "Dmg4");
    25. veh_price = cache_get_field_content_int(i, "Price");
    26. veh_paintjob = cache_get_field_content_int(i, "Paintjob");
    27. veh_class = cache_get_field_content_int(i, "Class");
    28. veh_id = cache_get_field_content_int(i, "ID");
    29. cache_get_field_content(i, "Name", veh_name, MAX_PLAYER_NAME+1);
    30.  
    31. veh_id = CreateVehicle(veh_model, veh_x, veh_y, veh_z, veh_a, veh_color1, veh_color2, 0);
    32. if(veh_id == INVALID_VEHICLE_ID) return i--;
    33. else if(veh_id != INVALID_VEHICLE_ID) continue;
    34. UpdateVehicleDamageStatus(veh_id, veh_dmg1, veh_dmg2, veh_dmg3, veh_dmg4);
    35. SetVehicleHealth(veh_id, veh_hp);
    36. if(veh_paintjob > 0)
    37. ChangeVehiclePaintjob(veh_id, veh_paintjob-1); // 1, 2, 3 - нумерация винилов по порядку, 4 - отсутствие винил
    38. if(!strcmp(veh_name, "None"))
    39. {
    40. veh_price = ModelPrice[veh_model-400];
    41. static
    42. fmt_str[] = "Автомобиль продается за %d$";
    43. new
    44. str[sizeof(fmt_str)-2+11+1];
    45. format(str, sizeof(str), fmt_str, veh_price);
    46. CreateDynamic3DTextLabel(str, COLOR_YELLOW, 0, 0, 0.6, 20.0, INVALID_PLAYER_ID, i, 0, -1, -1, -1, 100.0);
    47. }
    48.  
    49. allvehs++;
    50. if(!strcmp(veh_name, "None"))
    51. allbuyvehs++;
    52.  
    53. veh[veh_id][vModel] = veh_model;
    54. veh[veh_id][vX] = veh_x;
    55. veh[veh_id][vY] = veh_y;
    56. veh[veh_id][vZ] = veh_z;
    57. veh[veh_id][vA] = veh_a;
    58. veh[veh_id][vHP] = veh_hp;
    59. veh[veh_id][vColor1] = veh_color1;
    60. veh[veh_id][vColor2] = veh_color2;
    61. veh[veh_id][vDmg1] = veh_dmg1;
    62. veh[veh_id][vDmg2] = veh_dmg2;
    63. veh[veh_id][vDmg3] = veh_dmg3;
    64. veh[veh_id][vDmg4] = veh_dmg4;
    65. veh[veh_id][vPrice] = veh_price;
    66. veh[veh_id][vPaintjob] = veh_paintjob;
    67. veh[veh_id][vClass] = veh_class;
    68. veh[veh_id][vID] = i;
    69. cache_get_field_content(i, "Name", veh[veh_id][vName], MAX_PLAYER_NAME+1);
    70. }
    71. return true;
    72. }


    1. CMD:pts(playerid, params[])
    2. {
    3. if(!IsPlayerInAnyVehicle(playerid))
    4. return SCM(playerid, COLOR_RED, !"Вы должны находиться в транспорте, чтобы показать ПТС транспорта!");
    5. new vehicleid = GetPlayerVehicleID(playerid);
    6. if(strcmp(veh[vehicleid][vName], GetName(playerid)))
    7. return SCM(playerid, COLOR_RED, !"Это не ваш транспорт!");
    8. if(spawn_car{vehicleid} == true)
    9. return SCM(playerid, COLOR_RED, !"У созданных администраторами транспортных средств нету ПТС");
    10. new
    11. targetid;
    12.  
    13. if(sscanf(params, "u", targetid))
    14. return SCM(playerid, COLOR_RED, !"Образец показа ПТС транспорта: /pts [id]");
    15. if(!IsPlayerConnected(targetid))
    16. return SCM(playerid, COLOR_RED, !"Игрок с введенным вами ID не в сети!");
    17.  
    18. static const
    19. fmt_str[] = "*%s показал ПТС автомобиля %s";
    20.  
    21. new
    22. str[sizeof(fmt_str)-4+MAX_PLAYER_NAME*2+1];
    23.  
    24. format(str, sizeof(str), fmt_str, GetName(playerid), GetName(targetid));
    25. ProxDetector(playerid, 20.0, COLOR_ACTION, str);
    26. ShowPTS(targetid, vehicleid);
    27. return true;
    28. }


    1. stock ShowPTS(playerid, vehid)
    2. {
    3. static
    4. fmt_str[] =
    5. "\
    6. {00C0FF}Владелец:\t\t\t\t{F81414}%s\
    7. \n{00C0FF}ID транспорта:\t\t\t\t{F81414}%d\
    8. \n{00C0FF}Модель:\t\t\t\t\t{F81414}%s\
    9. \n{00C0FF}Класс:\t\t\t\t\t{F81414}%s\
    10. ";
    11. new
    12. string[sizeof(fmt_str)-8+MAX_PLAYER_NAME+11+25+1+1];
    13. format(string, sizeof(string), fmt_str, veh[vehid][vName], veh[vehid][vID], ModelName[veh[vehid][vModel]-400],
    14. car_class[veh[vehid][vClass]-1]);
    15.  
    16. SPD(playerid, 9866, DSM, !"{00C0FF}ПТС", string, !"{00C0FF}Понятно", !"");
    17. }
    Последний раз редактировалось SteveStage; 19.11.2019 в 18:59.

 

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

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

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

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

Ваши права

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