HELP COmmand
#1

how to create this command in dialog, and when a player enter a car to show dialog Buy or Leave ?
Код:
CMD:buyveh(playerid, params[])
{
	for(new i = 0; i < MAX_BUYABLE_VEH; ++i)
	{
	    if(strmatch(vInfo[i][vOwner], pName(playerid)))
	    {
			Total_Player_Vehicles[playerid] = Total_Player_Vehicles[playerid] + 1;
		}
	}

	if(Total_Player_Vehicles[playerid] >= MAX_OWNABLE_VEH) return SendClientMessage(playerid, -1, ""#CRED"You've reached the limit of "#CBLUE""#MAX_OWNABLE_VEH" "#CRED"ownable vehicles!!");

	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You need to be in a buyable vehicle to purchase it!");

	new
		ivID = GetPlayerVehicleID(playerid);

	if(OwnedVeh(ivID) != 0)
	{
		if(strmatch(vInfo[OwnedVeh(ivID)][vOwner], pName(playerid)))
		{
		    SendClientMessage(playerid, COLOR_RED, "This vehicle already has an owner!");
		    return 1;
		}
		if(strmatch(vInfo[OwnedVeh(ivID)][vOwner], "Unbought"))
		{
		    if(vInfo[OwnedVeh(ivID)][vPrice] < GetPlayerMoney(playerid))
		    {
				strmid(vInfo[OwnedVeh(ivID)][vOwner], pName(playerid), 0, 128, 128);

				new
				    Float:vPos[4];

				GetVehiclePos(ivID, vPos[0], vPos[1], vPos[2]);
				GetVehicleZAngle(ivID, vPos[3]);

				strmid(vInfo[OwnedVeh(ivID)][vPlate], pName(playerid), 0, 32, 32);
				vInfo[OwnedVeh(ivID)][vLocked] = 1;

				SetVehicleNumberPlate(ivID, pName(playerid));
				SetVehicleToRespawn(ivID);
				SetVehiclePos(ivID, vPos[0], vPos[1], vPos[2]);
				SetVehicleZAngle(ivID, vPos[3]);
				PutPlayerInVehicle(playerid, ivID, 0);

				GivePlayerMoney(playerid, - vInfo[OwnedVeh(ivID)][vPrice]);

				SendClientMessage(playerid, -1, ""#CYELLOW"Have fun with your private vehicle!");
				SendClientMessage(playerid, -1, ""#CBLUE"Your vehicle is "#CDGREEN"locked.");

				TogglePlayerControllable(playerid, true);

				SavePrivVeh(OwnedVeh(ivID));

				printf("=- Vehicle id: %i has been bought by: %s -=", OwnedVeh(ivID), pName(playerid));
				return 1;
			}
			else return SendClientMessage(playerid, COLOR_RED, "You don't have enough cash to purchase this vehicle!");
		}
		else return SendClientMessage(playerid, COLOR_RED, "This vehicle is not for sale!");
	}
	else return SendClientMessage(playerid, COLOR_RED, "This is not a buyable vehicle!");
}
Reply
#2

You didn't tried, you want from us the script. Try yourself.

https://sampwiki.blast.hk/wiki/ShowPlayerDialog
https://sampwiki.blast.hk/wiki/OnDialogResponse
Reply
#3

Here have it:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST, "Car help","Buy,\r\nLeave");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

    switch(dialogid) // Lookup the dialogid
    {
        case 1:
        {
            if(!response)
            {
                SendClientMessage(playerid, 0xFF0000FF, "You cancelled.");
                return 1; // We processed it
            }
              switch(listitem) // This is far more efficient than using an if-elseif-else structure
                        {
                            case 0: // Listitems start with 0, not 1
                            {
                                                                for(new i = 0; i < MAX_BUYABLE_VEH; ++i)
                                        {
                                            if(strmatch(vInfo[i][vOwner], pName(playerid)))
                                            {
                                                Total_Player_Vehicles[playerid] = Total_Player_Vehicles[playerid] + 1;
                                            }
                                        }

                                        if(Total_Player_Vehicles[playerid] >= MAX_OWNABLE_VEH) return SendClientMessage(playerid, -1, ""#CRED"You've reached the limit of "#CBLUE""#MAX_OWNABLE_VEH" "#CRED"ownable vehicles!!");

                                        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You need to be in a buyable vehicle to purchase it!");

                                        new
                                            ivID = GetPlayerVehicleID(playerid);

                                        if(OwnedVeh(ivID) != 0)
                                        {
                                            if(strmatch(vInfo[OwnedVeh(ivID)][vOwner], pName(playerid)))
                                            {
                                                SendClientMessage(playerid, COLOR_RED, "This vehicle already has an owner!");
                                                return 1;
                                            }
                                            if(strmatch(vInfo[OwnedVeh(ivID)][vOwner], "Unbought"))
                                            {
                                                if(vInfo[OwnedVeh(ivID)][vPrice] < GetPlayerMoney(playerid))
                                                {
                                                    strmid(vInfo[OwnedVeh(ivID)][vOwner], pName(playerid), 0, 128, 128);

                                                    new
                                                        Float:vPos[4];

                                                    GetVehiclePos(ivID, vPos[0], vPos[1], vPos[2]);
                                                    GetVehicleZAngle(ivID, vPos[3]);

                                                    strmid(vInfo[OwnedVeh(ivID)][vPlate], pName(playerid), 0, 32, 32);
                                                    vInfo[OwnedVeh(ivID)][vLocked] = 1;

                                                    SetVehicleNumberPlate(ivID, pName(playerid));
                                                    SetVehicleToRespawn(ivID);
                                                    SetVehiclePos(ivID, vPos[0], vPos[1], vPos[2]);
                                                    SetVehicleZAngle(ivID, vPos[3]);
                                                    PutPlayerInVehicle(playerid, ivID, 0);

                                                    GivePlayerMoney(playerid, - vInfo[OwnedVeh(ivID)][vPrice]);

                                                    SendClientMessage(playerid, -1, ""#CYELLOW"Have fun with your private vehicle!");
                                                    SendClientMessage(playerid, -1, ""#CBLUE"Your vehicle is "#CDGREEN"locked.");

                                                    TogglePlayerControllable(playerid, true);

                                                    SavePrivVeh(OwnedVeh(ivID));

                                                    printf("=- Vehicle id: %i has been bought by: %s -=", OwnedVeh(ivID), pName(playerid));
                                                    return 1;
                                                }
                                                else return SendClientMessage(playerid, COLOR_RED, "You don't have enough cash to purchase this vehicle!");
                                            }
                                            else return SendClientMessage(playerid, COLOR_RED, "This vehicle is not for sale!");
                                        }
                                        else return SendClientMessage(playerid, COLOR_RED, "This is not a buyable vehicle!");
                                    }
                            }
                        }
        }
           
    }
    return 1;
}
Check for the bracket alingments and this is untested.
Reply
#4

isn't working...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)