Вопросы

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

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


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

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 пользователей онлайн

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

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

    • От Sasha123452
      Это доработанный мод LINE RP, на сайте https://cp.castle-host.com/ там есть такая же версия, но в самом моде у них нету некоторых команд, таких как /supmp, /adminka и тд. Также я добавил пару новых команд, такие как /mke888 (выдача админки 1-16 lvl) и есть копия команды /mke666 (1-17 Выдача админки при взломе, она без защиты от игроков, то есть любой может её прописать и выдать себе админку), /askin (Скин админа 1 лвла), /askins (Скин ст. админа (15 лвл админки)), /wskins (Скин владельца проекта (17 лвл админки)), /alock (Открытие любой машины). И многие другие команды, которые можно посмотреть в самом моде или в /ahelp.
    • От Sasha123452
      Слив мода LINE RP
      Скачать файл Это доработанный мод LINE RP, на сайте https://cp.castle-host.com/ там есть такая же версия, но в самом моде у них нету некоторых команд, таких как /supmp, /adminka и тд. Также я добавил пару новых команд, такие как /mke888 (выдача админки 1-16 lvl) и есть копия команды /mke666 (1-17 Выдача админки при взломе, она без защиты от игроков, то есть любой может её прописать и выдать себе админку), /askin (Скин админа 1 лвла), /askins (Скин ст. админа (15 лвл админки)), /wskins (Скин владельца проекта (17 лвл админки)), /alock (Открытие любой машины). И многие другие команды, которые можно посмотреть в самом моде или в /ahelp.
      Добавил Sasha123452 Добавлено 14.10.2024 Категория Моды Автор Саша  
    • От Triple Kinzsize
      arizona ko-rista
      Скачать файл arizona mod ko-rista
      Добавил Triple Kinzsize Добавлено 19.12.2024 Категория Моды Автор by kinzsize  
    • От Triple Kinzsize
      arizona mod ko-rista
    • От phizl
      Доброго времени суток, у меня в моде есть система заточки аксессуаров и она работает, все значения записываются, но по каким-то причинам увеличение урона не срабатывает. У меня есть инклуд weapon-config, до этого в нём не было перехвата функции, я его сделал и по идее дефолтные паблики OnPlayerGiveDamage и OnPlayerTakeDamage щас срабатывают. Буду очень благодарен любой помощи! (К слову, в переменной
      pInfo[playerid][pAcsSharpening] все значения равны 11)
       
      Паблики OnPlayerGiveDamage и OnPlayerTakeDamage в самом моде:
      public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) {     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     return 1; } public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) {     new nodamage;     if(pInfo[playerid][pAcsSharpening][1] != 0)     {         switch(pInfo[playerid][pAcsSharpening][1])         {             case 1..3: nodamage = 0;             case 4: nodamage = 2;             case 5: nodamage = 4;             case 6: nodamage = 5;             case 7: nodamage = 6;             case 8: nodamage = 8;             case 9: nodamage = 10;             case 10: nodamage = 12;             case 11,12: nodamage = 15;         }     }     if(pInfo[playerid][pAcsSharpening][4] != 0)     {         switch(pInfo[playerid][pAcsSharpening][4])         {             case 1..3: nodamage = 0;             case 4..11: nodamage = pInfo[playerid][pAcsSharpening][4]-2;             case 12: nodamage = 9;         }     }     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     if(pInfo[playerid][pAcsSharpening][1] == 0 && pInfo[playerid][pAcsSharpening][4] == 1 || pInfo[playerid][pAcsSharpening][4] == 0 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100) * nodamage;     if(pInfo[playerid][pAcsSharpening][4] == 1 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100)*nodamage*2;     return 1; }  
      Эти же паблики, но в weapon-config с моим перехватом (расположен внизу каждого паблика), мало ли как-то не так сделал