Question

Здравствуйте, не работает починка по пикапу, наступаю на пикап высвечивается диалог и дальше ничего не происходит.

 

Спойлер

case dialog_REPAIR:
		{
            {
                if(!response) return true;
  		        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;
            }
        }

 

 

Спойлер

if(pickupid == pick_repair)
    {
        ShowPlayerDialogFix(playerid, dialog_REPAIR, DIALOG_STYLE_MSGBOX,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
  		return true;
    }

 

 

Share this post


Link to post

15 answers to this question

  • 0

Да.

Share this post


Link to post
  • 0

up!

Share this post


Link to post
  • 0

@Remmi_Feedвообще ноль реакций или диалог появляется но в нем ничего не выбирается? Да и как ты будешь активировать пикап находясь в машине? Он разве так активируется?

Share this post


Link to post
  • 0

@stibs после того как я наступаю на пикап высвечивается диалог, после выбираю любую конпку и все. На этом кино заканчивается

Share this post


Link to post
  • 0

@Remmi_Feed так действительно, как будет срабатывать пикап, если ты будешь находится в машине? 

Share this post


Link to post
  • 0

@DEST Даже если не в машине

Share this post


Link to post
  • 0

@Remmi_Feed если не в машине, то код не сработает из-за того, что невозможно получить ID машины. 

Share this post


Link to post
  • 0

@DEST и как тогда сделать? Через команду?

Share this post


Link to post
  • 0

@stibs ,@DEST , есть такой тип пикапа как 14 - "Берется, но только в машине. Падает сквозь объекты, созданные по CreateObject, и т.п."
Но, опять же, вроде как, сам не тестил, для того чтобы его взять необходимо наехать на пикап игроком, т.е. физической его моделью.



Могу предложить вариант реализации через динамическую зону.

Share this post


Link to post
  • 0

@Skiffi Подобнее, впервые слышу просто 

Share this post


Link to post
  • 0

@Remmi_Feed он имел введу стример зоны (streamer) там можно как и круглые создать так и любых размеров)))

Share this post


Link to post
  • 0

@Remmi_Feed в разделе уроки есть, посмотрите там. 

Share this post


Link to post
  • 0
new
	RepairZone;

public OnGameModeInit() {
	RepairZone = CreateDynamicSphere(/*X,Y,Z*/,5.0); //X,Y,Z координаты, выставите самостоятельно
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
	switch(listitem) {
		case dialog_REPAIR: {
			if(!response)
				return 1;
			if(!IsPlayerInAnyVehicle(playerid))
				return SendClientMessage(playerid,-1,!"Вы должны находиться в транспорте!");

			new
				vID = GetPlayerVehicleID(playerid);

			SetVehicleHealth(vID, 1000.0);
			RepairVehicle(vID);

			return GivePlayerMoney(playerid,-100);
			/*Сохранение, сделаете сами*/
		}
	}
}

public OnPlayerEnterDynamicArea(playerid, areaid) {
	if(areaid == RepairZone)
		return ShowPlayerDialogFix(playerid, dialog_REPAIR, DIALOG_STYLE_MSGBOX,"Починка","Не желаете ли вы починить свой автомобиль за 100$?","Починится","Выход");
	return 1;
}

 

Share this post


Link to post
  • 0

@Skiffi 

OnPlayerEnterDynamicArea

Такого паблика то нету. Создать?

Share this post


Link to post
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By def
      arizona.pwn(23374) : error 012: invalid function call, not a valid address
      arizona.pwn(23374) : error 001: expected token: ";", but found ")"
      arizona.pwn(23374) : error 029: invalid expression, assumed zero
      arizona.pwn(23374) : fatal error 107: too many error messages on one line
      жалуется на данную строчку:
       
      %s{cccccc}Для продолжения нажмите 'Далее'",PN(playerid),playerid,ItemsInfo[itemid][ItemName2],hours,cost*hours,Inventory[playerid][2][slot], AksColorName(Inventory[playerid][4][slot]), Inventory[playerid][5][slot] ? GetNameStripe(Inventory[playerid][5][slot]) : "");