Вопросы

Как сделать чтобы команда сработывала на пикапе? Наступаешь и пишет диалогом: "Предлагаем починиться за $$$$", "Принять", "Отмена"

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


Ссылка на сообщение

24 ответа на этот вопрос

  • 0

Зачем создавать паблик для стандартных пикапов, если уже создан стримерский?..
Давай начнем все заново, пробуй так.

Спойлер

 

 

Отредактировано пользователем Skiffi

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


Ссылка на сообщение
  • 0
Только что, Remmi_Feed сказал:

Как сделать чтобы команда сработывала на пикапе? Наступаешь и пишет диалогом: "Предлагаем починиться за $$$$", "Принять", "Отмена"

Смотря какой у тебя командный оборот? 

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


Ссылка на сообщение
  • 0
Только что, Remmi_Feed сказал:

@Покемон dc_cmd

так по пробуй, cmd::name(playerid,"");
За место name веди свою команду. 

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


Ссылка на сообщение
  • 0

@Покемон и что это даст кроме показа ида игрока?

мод namalsk rp или же +rp

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


Ссылка на сообщение
  • 0
2 минуты назад, Remmi_Feed сказал:

@Покемон и что это даст кроме показа ида игрока?

мод namalsk rp или же +rp

Чуть не понял тебя. Если же ты говоришь про открытие диалога на пикапе то вот так:
 

Спойлер

ShowPlayerDialog(playerid,ид диалога,DIALOG_STYLE_INPUT,"Тут название","Тут ваш текст","Кнопка1","Кнопка2");

 

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


Ссылка на сообщение
  • 0

@Покемон

Спойлер

CMD:healcar(playerid, params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ZAPCHASTI] == 0) return SendClientMessage(playerid, COLOR_WARNING, "У Вас нет инструментов. Купить их можно на любом АЗС области!");
	new carid = GetPlayerVehicleID(playerid);
	new Float:hpc;
	if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
    GetVehicleHealth(carid,hpc);
    if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
	SetVehicleHealth(carid,1000.0);
	RepairVehicle(carid);
	SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
	for(new c; c < 3; c++)
	{
	    if(PLAYER_DATA[playerid][data_CAR][c] != GetVehicleModel(carid)) continue;
	    PLAYER_DATA[playerid][data_REPAIRS][c] += 1;
	    break;
	}
	PLAYER_DATA[playerid][data_ZAPCHASTI] = 0;
	return true;
}

 

Мне надо ее на пикап переделать но как

самих диалог в команде нету

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


Ссылка на сообщение
  • 0
6 минут назад, Remmi_Feed сказал:

@Покемон

  команда (закрыть спойлер)


CMD:healcar(playerid, params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ZAPCHASTI] == 0) return SendClientMessage(playerid, COLOR_WARNING, "У Вас нет инструментов. Купить их можно на любом АЗС области!");
	new carid = GetPlayerVehicleID(playerid);
	new Float:hpc;
	if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
    GetVehicleHealth(carid,hpc);
    if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
	SetVehicleHealth(carid,1000.0);
	RepairVehicle(carid);
	SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
	for(new c; c < 3; c++)
	{
	    if(PLAYER_DATA[playerid][data_CAR][c] != GetVehicleModel(carid)) continue;
	    PLAYER_DATA[playerid][data_REPAIRS][c] += 1;
	    break;
	}
	PLAYER_DATA[playerid][data_ZAPCHASTI] = 0;
	return true;
}

 

Мне надо ее на пикап переделать но как

Ко всем new:
 

Спойлер

new RepairCar;

В OnGameModeInit:
 

Спойлер

RepairCar = CreatePickup(id пикапа, 2, x,y,z, -1);

В OnPlayerPickUpPickup

Спойлер

    if(pickupid == RepairCar)
    {
        ShowPlayerDialog(playerid,83,DIALOG_STYLE_INPUT,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
    }

В OnDialogResponse:
 

Спойлер

case 83:
{
    if(response)
    {
        new carid = GetPlayerVehicleID(playerid);
        new Float:hpc;
        if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
        GetVehicleHealth(carid,hpc);
        if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
        SetVehicleHealth(carid,1000.0);
        RepairVehicle(carid);
        SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
    }
    else
    {

    }
    return 1:
}

 

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


Ссылка на сообщение
  • 0
Спойлер

C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 014: invalid statement; not in switch
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : warning 215: expression has no effect
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 001: expected token: ";", but found ":"
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 029: invalid expression, assumed zero
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : fatal error 107: too many error messages on one line

 

Спойлер

case dialog_REGISTER:
	    {
			if(response || !response)
			{
			    if(strlen(inputtext) == 0) return Dialog_PLAYER_REGISTER(playerid);
				if(strlen(inputtext) < 6 || strlen(inputtext) > 30) return SendClientMessage(playerid, 0x33CC33AA,"Длина пароля должна быть от 6 до 30 символов"),Dialog_PLAYER_REGISTER(playerid);
        		for(new i = strlen(inputtext); i != 0; --i)
				switch(inputtext[i])
				{
					case 'А'..'Я', 'а'..'я', ',', '`', '=': return SendClientMessage(playerid, 0x33CC33AA, "Разрешено использовать только латинские буквы и цифры"),Dialog_PLAYER_REGISTER(playerid);
				}
				getdate(PLAYER_DATA[playerid][data_REGDATE_YEAR], PLAYER_DATA[playerid][data_REGDATE_MONTH], PLAYER_DATA[playerid][data_REGDATE_DAY]);
				GetPlayerIp(playerid,PLAYER_DATA[playerid][data_REGISTER_IP],32);
				strmid(PLAYER_DATA[playerid][data_PASSWORD], inputtext, 0, strlen(inputtext), 30);
				ShowPlayerDialogFix(playerid, dialog_EMAIL, DIALOG_STYLE_INPUT, "{66CCFF}Email", "{FFFFFF}Введите адрес Вашей электронной почты\nИспользуя его, Вы сможете восстановить доступ к аккаунту\nв случае его взлома или если забудете пароль\n\nУбедитесь в правильности ввода и нажмите 'Далее'", "Далее", "");
			}
		}

 

1. Ошибки

2. Пример диалогов.

Отредактировано пользователем Remmi_Feed

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


Ссылка на сообщение
  • 0
7 минут назад, Remmi_Feed сказал:
  ошибки (закрыть спойлер)


C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 014: invalid statement; not in switch
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : warning 215: expression has no effect
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 001: expected token: ";", but found ":"
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : error 029: invalid expression, assumed zero
C:\Users\Александр\Desktop\VirtualTech RP\gamemodes\new.pwn(5301) : fatal error 107: too many error messages on one line

 

  диалог (закрыть спойлер)


case dialog_REGISTER:
	    {
			if(response || !response)
			{
			    if(strlen(inputtext) == 0) return Dialog_PLAYER_REGISTER(playerid);
				if(strlen(inputtext) < 6 || strlen(inputtext) > 30) return SendClientMessage(playerid, 0x33CC33AA,"Длина пароля должна быть от 6 до 30 символов"),Dialog_PLAYER_REGISTER(playerid);
        		for(new i = strlen(inputtext); i != 0; --i)
				switch(inputtext[i])
				{
					case 'А'..'Я', 'а'..'я', ',', '`', '=': return SendClientMessage(playerid, 0x33CC33AA, "Разрешено использовать только латинские буквы и цифры"),Dialog_PLAYER_REGISTER(playerid);
				}
				getdate(PLAYER_DATA[playerid][data_REGDATE_YEAR], PLAYER_DATA[playerid][data_REGDATE_MONTH], PLAYER_DATA[playerid][data_REGDATE_DAY]);
				GetPlayerIp(playerid,PLAYER_DATA[playerid][data_REGISTER_IP],32);
				strmid(PLAYER_DATA[playerid][data_PASSWORD], inputtext, 0, strlen(inputtext), 30);
				ShowPlayerDialogFix(playerid, dialog_EMAIL, DIALOG_STYLE_INPUT, "{66CCFF}Email", "{FFFFFF}Введите адрес Вашей электронной почты\nИспользуя его, Вы сможете восстановить доступ к аккаунту\nв случае его взлома или если забудете пароль\n\nУбедитесь в правильности ввода и нажмите 'Далее'", "Далее", "");
			}
		}

 

1. Ошибки

2. Пример диалогов.

Я не знаю где тут ошибка не понимаю что какая строка, просто по пробуй в диалоге 83 заменить сам номер диалога. 

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


Ссылка на сообщение
  • 0

@Покемон наступаю на пикап и ничего не происходит

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


Ссылка на сообщение
  • 0
5 минут назад, Remmi_Feed сказал:

@Покемон наступаю на пикап и ничего не происходит

Покажи пожалуйста как ты все вставил ) 

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


Ссылка на сообщение
  • 0

@Покемон

переменную ко всем new далее

Спойлер

 RepairCar = CreatePickup(1352, 2, 2470.31, -2160.43, 21.48, -1);

 

Далее в 

Спойлер

if(pickupid == RepairCar)
    {
        ShowPlayerDialog(playerid,830,DIALOG_STYLE_INPUT,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
    }

 

Спойлер

case 830:
		{
		    if(response)
		    {
		        new carid = GetPlayerVehicleID(playerid);
		        new Float:hpc;
		        if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
		        GetVehicleHealth(carid,hpc);
		        if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
		        SetVehicleHealth(carid,1000.0);
		        RepairVehicle(carid);
		        SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
		    }
		    else
		    {
		    }
		    return 1;
		}

 

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


Ссылка на сообщение
  • 0
3 минуты назад, Remmi_Feed сказал:

@Покемон

переменную ко всем new далее

  OnGamemodeInit (закрыть спойлер)


 RepairCar = CreatePickup(1352, 2, 2470.31, -2160.43, 21.48, -1);

 

Далее в 

  public OnPlayerPickUpDynamicPickup (открыть спойлер)
  OnDialogResponse (закрыть спойлер)


case 830:
		{
		    if(response)
		    {
		        new carid = GetPlayerVehicleID(playerid);
		        new Float:hpc;
		        if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
		        GetVehicleHealth(carid,hpc);
		        if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
		        SetVehicleHealth(carid,1000.0);
		        RepairVehicle(carid);
		        SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
		    }
		    else
		    {
		    }
		    return 1;
		}

 

В паблик OnPlayerPickUpPickup
 

Спойлер

if(pickupid == RepairCar)
    {
        ShowPlayerDialog(playerid,830,DIALOG_STYLE_INPUT,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
    }

 

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


Ссылка на сообщение
  • 0

@Покемон такого нету

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


Ссылка на сообщение
  • 0
Только что, Remmi_Feed сказал:

@Покемон такого нету

Спойлер

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == RepairCar)
    {
        ShowPlayerDialog(playerid,830,DIALOG_STYLE_INPUT,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
    }
    return 1;
}

 

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


Ссылка на сообщение
  • 0

@Покемон заработало но вид диалога не тот. Там есть еще строка для ввода (как при авторизации)

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


Ссылка на сообщение
  • 0
3 минуты назад, Remmi_Feed сказал:

@Покемон заработало но вид диалога не тот. Там есть еще строка для ввода (как при авторизации)

Спутал чуть диалоги упс)
ShowPlayerDialog(playerid,830,DIALOG_STYLE_MSGBOX,"Починка","Вы хотите починить\nавтомобиль за 100$?","Выход");
Чуть текст изменил, если нравиться такой оставь

Отредактировано пользователем Покемон

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


Ссылка на сообщение
  • 0

@Покемон warning 202: number of arguments does not match definition

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


Ссылка на сообщение
  • 0
1 минуту назад, Remmi_Feed сказал:

@Покемон warning 202: number of arguments does not match definition

ShowPlayerDialog(playerid,830,DIALOG_STYLE_MSGBOX,"Починка","Вы хотите починить\nавтомобиль за 100$?","Починится","Выход");

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


Ссылка на сообщение
  • 0

@Покемон заработало но не чиниться и ничего не пишет после нажатия кнопки "Починиться"

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


Ссылка на сообщение
  • 0
Только что, Remmi_Feed сказал:

@Покемон заработало но не чиниться и ничего не пишет после нажатия кнопки "Починиться"

Пробуй:
 

Спойлер

case 830:
{
    if(response)
    {
        new carid = GetPlayerVehicleID(playerid);
        new Float:hpc;
        if(carid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Нужно находиться в автомобиле!");
        GetVehicleHealth(carid,hpc);
        if(hpc == 1000.0) return SendClientMessage(playerid, COLOR_WARNING, "Ваш автомобиль находиться в идеальном состоянии!");
        SetVehicleHealth(carid,1000.0);
        RepairVehicle(carid);
        SendClientMessage(playerid, 0x66CC00FF, "Вы починили свой автомобиль");
    }
    return 1;
}

 

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


Ссылка на сообщение
  • 0

@Покемон все равно

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


Ссылка на сообщение
  • 0

@Skiffi решил 5 минут назад задачу, забыл закрыть)

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


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

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

  • Похожий контент

    • От Illya_Zaxatniy
      Доработка мода Samp-Rp
      Скачать файл Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy       Добавил Illya_Zaxatniy Добавлено 30.12.2024 Категория Моды Автор @illyazaxodnoy  
    • От Illya_Zaxatniy
      Привет, у меня давно валяется данный мод который дорабатывался мною в 22  году, решил его выставить на продажу, поскольку деньги - не лишние.
       
      Ниже прикрепляю лог доработок а также айпи адрес для теста
      также к моду(после приобретения) прилагается список багов, найденных, они не значительные но имеются
       
      лог доработок: 
      1. Вырезана /alevel 2. Теперь чат администрации для всех общий 3. Вырезана команда /serverbonus 4. Теперь администрация от 8 уровня не отображается в /admins и при авторизации в панели администратора 5. Убрал бонус 6. Теперь при авторизации в панели администратора не пишет что ввёл неверный пароль 7. Переписал регистрацию 8. Теперь проверка на блокировку идёт при заходе на сервер, не после ввода пароля 9. Переписал авторизацию 10. Адрес электронной почты при регистрации теперь проверяется по всем параметрам 11. Реферальная система при регистрации теперь проверяет ник или промокод 12. Сделал выбор скинов на текстдравах 13. Переписал /makeleader в диалог (+ теперь выдаются женские скины) 14. Вырезана /fractionid 15. Вырезан ограничитель скорости 16. Теперь при выдаче предупреждения или бане указывается фракция и ранг игрока (Если он состоит в организации) 17. Теперь командой /spawn можно спавнить других игроков 18. Отредактирована команда /recon 19. Вырезан анти-БХ 20. Переписана команда /invite (+ добавлены женские скины) 21. Из главного меню вырезана система слива денег 22. Сделана система телепорта по метке на карте для администрации 23. Переписал систему навигатора (/gps) 24. Переписал /tp (Теперь он работает через навигатор) 25. /mute теперь выдаётся по минутам 26. Добавил команду /tmute для администрации с 1 уровня - просмотр времени до снятия мута у игрока 27. Изменена команда /pm 28. Для начала гонок и пейнтбола теперь достаточно 2 участников 29. Убрана команда ахелп, будет написана новая 30. Теперь в команде присон надо указывать причину 31. Добавлена команда /forum для оповещения об открытия заявок на лидерство на форуме 32. Новый логотип 33. Добавлена команда /rmute для выдачи бана репорта 34. Написана система для тестеров     АЙПИ ДЛЯ ТЕСТА И ПАРОЛЬ: IP 195.18.27.226:1235 PASSWORD : 1   ДЛЯ СВЯЗИ ВК: https://vk.com/iilyazaxodnoy      
    • От Mason
      Всех Приветствую! У меня есть вот такая дверь, мне нужно сделать так чтобы она открывалась на кнопку, дело в том что я знаю про функцию MoveObject и даже попытался сделать так чтобы она открывалась, но когда я захожу в игру и нажимаю на кнопку то ничего не происходит.
      На всякий случай прикладываю код