Перейти к содержанию
Авторизация  
АЛЕКСАНДР МАМАЕВ

Всем привет сделал перекраску авто в сто цвет вводиться а дальше нечего

Рекомендуемые сообщения

АЛЕКСАНДР МАМАЕВ

Всем привет у меня в моде система 3 авто решил сделать перекраску в сто но цвет вводиться а дальше нечего непроисходит

       case 2:
                                        {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1,1,"{66CC00}Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Перекрасить", "Назад");
                    }
 
 
case dialog_CTO1:
                {
                        if(response)
                        {
                                new color[2];
                                if(sscanf(inputtext, "p<,>ii",color[0], color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                if(color[0] < 0 || color[0] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                if(color[1] < 0 || color[1] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
 
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][0])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                    SaveWarehouse();
                                        SaveVehicleColor(playerid, color[0], color[1], 1);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][0], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №1!");
                                }
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][1])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                        SaveVehicleColor(playerid, color[0], color[1], 2);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][1], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №2!");
                                }
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][2])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                        SaveVehicleColor(playerid, color[0], color[1], 3);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][2], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №3!");
                                }
                        }
                }
 
stock SaveVehicleColor(playerid,color1,color2,slot)
{
        switch(slot)
        {
                case 1:
                {
                        PLAYER_DATA[playerid][data_CAR_COLOR1][0] = color1;
                        PLAYER_DATA[playerid][data_CAR_COLOR2][0] = color2;
                }
                case 2:
                {
                        PLAYER_DATA[playerid][data_CAR_COLOR1][1] = color1;
                        PLAYER_DATA[playerid][data_CAR_COLOR2][1] = color2;
                }
                case 3:
                {
                        PLAYER_DATA[playerid][data_CAR_COLOR1][2] = color1;
                        PLAYER_DATA[playerid][data_CAR_COLOR2][1] = color2;
                }
        }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo

Зачем записывать числовое значение в строку? (color) И небольшие проблемы с условными конструкциями, некоторые условия вообще не возвращаются, и код можно сказать тупо не идёт дальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@gegelo, а как исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo
@АЛЕКСАНДР МАМАЕВ, конструкция else if

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@gegelo, так:

case dialog_CTO1:
                {
                        if(response)
                        {
                                new color[2];
                                if(sscanf(inputtext, "p<,>ii",color[0], color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                if(color[0] < 0 || color[0] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                if(color[1] < 0 || color[1] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
 
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][0])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                    SaveWarehouse();
                                        SaveVehicleColor(playerid, color[0], color[1], 1);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][0], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №1!");
                                }
                                else if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][1])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                        SaveVehicleColor(playerid, color[0], color[1], 2);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][1], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №2!");
                                }
                                else if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][2])
                                {
                                    if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
                    give_player_money(playerid, 22000, "#83");
                                    kazna += 22000;
                                        SaveVehicleColor(playerid, color[0], color[1], 3);
                                        ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][2], color[0], color[1]);
                                        SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №3!");
                                }
                        }
                } 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@gegelo, всеровно цвета когда ввожу дальше прерываеться и машина некраситься 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo
@АЛЕКСАНДР МАМАЕВ, на какой стадии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@gegelo, на стадии когда ввёл цвета и нажал далее 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo

case dialog_CTO1:
{
if(response)
{
new color[2];
if(sscanf(inputtext, "p<,>ii",color[0], color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
if(color[0] < 0 || color[0] > 252)
{
ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
}
else if(color[1] < 0 || color[1] > 252)
{
ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
}

if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][0])
{
if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
give_player_money(playerid, 22000, "#83");
kazna += 22000;
SaveWarehouse();
SaveVehicleColor(playerid, color[0], color[1], 1);
ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][0], color[0], color[1]);
SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №1!");
}
else if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][1])
{
if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
give_player_money(playerid, 22000, "#83");
kazna += 22000;
SaveVehicleColor(playerid, color[0], color[1], 2);
ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][1], color[0], color[1]);
SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №2!");
}
else if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_CAR][2])
{
if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
give_player_money(playerid, 22000, "#83");
kazna += 22000;
SaveVehicleColor(playerid, color[0], color[1], 3);
ChangeVehicleColor(PLAYER_DATA[playerid][data_CAR][2], color[0], color[1]);
SendClientMessage(playerid,COLOR_WHITE,"Вы успешно перекрасили свое авто №3!");
}
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@gegelo, некрасит вот выбераю перекраску потом ввожу цвета через запятую жму перекрасить и дальше нечего

1.jpg

2.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

UP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

цвета через запятую без пробелов попробуй написать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@EgasVegas, так я так и делаю на скрине же видно 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@EgasVegas, может неправильно выходит при окраске может в диологе надо на подобе команды парк сделать толька как переделать непойму

CMD:park(playerid,params[])
{
	new count_car[MAX_PLAYERS] = 0, Float: car_pos_x, Float: car_pos_y, Float: car_pos_z, Float: car_pos_r;
	GetVehiclePos(GetPlayerVehicleID(playerid), car_pos_x, car_pos_y, car_pos_z);
	GetVehicleZAngle(GetPlayerVehicleID(playerid), car_pos_r);
	if(PLAYER_DATA[playerid][data_LOGGED] == false) return true;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_WARNING, "Вы должны быть в автомобиле");
	for(new i; i < 3; i++)
	{
		if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][i]) count_car[playerid]++;
	}
	if(!count_car[playerid]) return SendClientMessage(playerid, COLOR_WARNING, "Вы должны быть в своем автомобиле");
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][0]) PLAYER_DATA[playerid][data_CARX][0] = car_pos_x, PLAYER_DATA[playerid][data_CARY][0] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][0] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][0] = car_pos_r;
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][1]) PLAYER_DATA[playerid][data_CARX][1] = car_pos_x, PLAYER_DATA[playerid][data_CARY][1] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][1] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][1] = car_pos_r;
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][2]) PLAYER_DATA[playerid][data_CARX][2] = car_pos_x, PLAYER_DATA[playerid][data_CARY][2] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][2] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][2] = car_pos_r;
	SendClientMessage(playerid, COLOR_GREEN, "Вы успешно припарковали свой автомобиль на этом месте");
	SavePlayerData(playerid);
	return true;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

if(sscanf(inputtext, "p<,>dd",color[0], color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");

Но меня смущает авто.. может быть ид авто попутал..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@SCRIPTMAN, да нет тут 0 это первый цвет авто а 1 это второй цвет авто ну салона 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

UP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@АЛЕКСАНДР МАМАЕВ,у меня только 1 мысль: просто не идет получение id авто. замени PLAYER_DATA[playerid][data_CAR][2] и остальное на 

GetPlayerVehicleID(playerid)

а лучше:

new carid = GetPlayerVehicleID(playerid);

и вместо GetPlayerVehicleID(playerid) юзай переменную carid

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@SCRIPTMAN, попробывал вот так деньги снимает но некрасит:

		case dialog_CTO1:
                {
                        if(response)
                        {
                               
                                new color[2];
                                if(sscanf(inputtext, "p<,>ii",color[0], color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                if(color[0] < 0 || color[0] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                else if(color[1] < 0 || color[1] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
            					give_player_money(playerid, 22000, "#83");
                    			kazna += 22000;
                   				SaveWarehouse();
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][0]) PLAYER_DATA[playerid][data_CAR_COLOR1][0] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][0] = color[1];
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][1]) PLAYER_DATA[playerid][data_CAR_COLOR1][1] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][1] = color[1];
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][2]) PLAYER_DATA[playerid][data_CAR_COLOR1][2] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][2] = color[1];
	                            SendClientMessage(playerid, COLOR_GREEN, "Вы успешно перекрасили свой автомобиль");
                                SavePlayerData(playerid);
                       }
                } 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

	case dialog_CTO1:
                {
                        if(response)
                        {
                               
                                new color[2];
                                if(sscanf(inputtext, "p<,>ii",color[0],color[1])) return ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                if(color[0] < 0 || color[0] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                else if(color[1] < 0 || color[1] > 252)
                                {
                                        ShowPlayerDialogFix(playerid, dialog_CTO1, DIALOG_STYLE_LIST, "{FFCC00Перекраска", "Введите Основной и дополнительный цвет транспорта через запятую", "Принять", "Назад");
                                        return SendClientMessage(playerid, COLOR_GREY, "ID цвета от 0 до 252!");
                                }
                                if(get_player_money(playerid) < 22000) return SendClientMessage(playerid, COLOR_WARNING, "У вас недостаточно денег на руках!");
            					give_player_money(playerid, 22000, "#83");
                    			kazna += 22000;
                   				SaveWarehouse();
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][0]) PLAYER_DATA[playerid][data_CAR_COLOR1][0] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][0] = color[1];
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][1]) PLAYER_DATA[playerid][data_CAR_COLOR1][1] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][1] = color[1];
                                if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][2]) PLAYER_DATA[playerid][data_CAR_COLOR1][2] = color[0], PLAYER_DATA[playerid][data_CAR_COLOR2][2] = color[1];
	                            SendClientMessage(playerid, COLOR_GREEN, "Вы успешно перекрасили свой автомобиль");
                                SavePlayerData(playerid);
                       }
                } 

Попробуй.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@EgasVegas, всё краситься но только цвет поевляеться после того как выйти из игры и заного зайти это можно исправить? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

Можно.

Присвой после перекраски мир определённый для цветов машины.

Точно не знаю как это сделать, но нужно поиграть с функцией Setworld


И попробуй удалить вот это

	SaveWarehouse();

И вот это

SavePlayerData(playerid);

Посмотри что будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@EgasVegas, а типа Update ну вот с номера типа после получения обновляються или это только к номерам?

UpdateDynamic3DTextLabelText(car_label[PLAYER_DATA[i][data_VEH][0]], 0xFFFFFFFF, string);

 

 


SaveWarehouse();

это чтобы 22 тысячи в казну шли а SavePlayerData это сохранение в аккаунт

Изменено пользователем АЛЕКСАНДР МАМАЕВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

@АЛЕКСАНДР МАМАЕВ,Не знаю.Я не скачивал этот мод, я не знаю как там и что устроено. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@EgasVegas,  я ещё выеснил если игрок перекрасил авто и вылез с него и рескар тогда тоже меняеться цвет на перекрашеный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.