Question

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

Share this post


Link to post

24 answers to this question

  • 0

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

Спойлер

 

 

Edited by Skiffi

Share this post


Link to post
  • 0
Только что, Remmi_Feed сказал:

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

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

Share this post


Link to post
  • 0
Только что, Remmi_Feed сказал:

@Покемон dc_cmd

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

Share this post


Link to post
  • 0

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

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

Share this post


Link to post
  • 0
2 минуты назад, Remmi_Feed сказал:

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

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

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

Спойлер

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

 

Share this post


Link to post
  • 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;
}

 

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

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

Share this post


Link to post
  • 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:
}

 

Share this post


Link to post
  • 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. Пример диалогов.

Edited by Remmi_Feed

Share this post


Link to post
  • 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 заменить сам номер диалога. 

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0
5 минут назад, Remmi_Feed сказал:

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

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

Share this post


Link to post
  • 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;
		}

 

Share this post


Link to post
  • 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$?","Починится","Выход");
    }

 

Share this post


Link to post
  • 0
Только что, Remmi_Feed сказал:

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

Спойлер

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

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0
3 минуты назад, Remmi_Feed сказал:

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

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

Edited by Покемон

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0
1 минуту назад, Remmi_Feed сказал:

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

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 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;
}

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0