I have 141 items to add to this list, is there a quicker or better way?
#1

pawn Код:
else if(dialogid == DIALOG_FURNILIST)
{
    if(response == 0)
    {
        return 1;
    }
    switch(listitem)
    {
        case 0:
        {
            DealerOrderFurniture(playerid, 2290, InfPrice(400), 0, 0);
        }
        case 1:
        {
            DealerOrderFurniture(playerid, 14490, InfPrice(200), 0, 0);
        }
        case 2:
        {
            DealerOrderFurniture(playerid, 1794, InfPrice(700), 0, 1);
        }
        case 3:
        {
            DealerOrderFurniture(playerid, 2247, InfPrice(60), 0, 0);
        }
        case 4:
        {
            DealerOrderFurniture(playerid, 2306, InfPrice(125), 1, 2);
        }
        case 5:
        {
            DealerOrderFurniture(playerid, 2073, InfPrice(100), 0, 0);
        }
        case 6:
        {
            DealerOrderFurniture(playerid, 1740, InfPrice(120), 1, 1);
        }
        case 7:
        {
            DealerOrderFurniture(playerid, 1734, InfPrice(130), 0, 0);
        }
        case 8:
        {
            DealerOrderFurniture(playerid, 2100, InfPrice(800), 0, 0);
        }
        case 9:
        {
            DealerOrderFurniture(playerid, 14527, InfPrice(80), 0, 0);
        }
    }
}
Title says all.

Pasting messed up the indentation.
Reply
#2

Nope, i don't think so.You could just SendClientMessage it and make commands to buy them...Like /buy1 = buy furnitures only...
Reply
#3

I'd use an array and "listitem" as its index.
Reply
#4

Quote:
Originally Posted by Konstantinos
Посмотреть сообщение
I'd use an array and "listitem" as its index.
Ahh that's a pretty good idea actually.
But don't I still effectively have to add them all to the array?
Reply
#5

Yes, but you can use the same array to generate the required dialog in the first place.
Reply
#6

I kind of understand,

Would it be like switch(FurniArray[listitem]]?

And then elsewhere like

FurniArray[0] = DealerOrderFurniture(....?
Reply
#7

For this will I also have to add 141 spaces to this:

pawn Код:
format(string, sizeof(string), "%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)\n%s ($%s)", GetFurniName(2290), AddCommas(InfPrice(400)),
        GetFurniName(14490), AddCommas(InfPrice(200)), GetFurniName(1794), AddCommas(InfPrice(700)),GetFurniName(2247), AddCommas(InfPrice(60)), GetFurniName(2306), AddCommas(InfPrice(125)), GetFurniName(2073), AddCommas(InfPrice(100)), GetFurniName(1740), AddCommas(InfPrice(120)),GetFurniName(1734), AddCommas(InfPrice(130)), GetFurniName(2100), AddCommas(InfPrice(800)),GetFurniName(14527), AddCommas(InfPrice(80)));
Reply
#8

Do it like this, so you only have to add a new element in the array when you want to expand your furniture list, doing it manually (like you're doing) makes no sense, and it's hard to read.

PHP код:
enum e_furn
{
    
furnimodel
    furniname
[32],
    
furnicost
}
new 
FurnitureArray[][e_furn] =
{
    
//
    // Model, name, cost
    //
    
{1337"Trash Bin"100}
};
//
// Showing the dialog
//
new dialog[1024]; // It has to be large
for(new 0!= sizeof FurnitureArrayi++)
{
    
format(dialogsizeof dialog"%s ($%d)\n%s"FurnitureArray[i][furniname], FurnitureArray[i][furnicost], dialog);
}
// Now just show this dialog
//
// Processing the dialog (this OnDialogResponse)
//
printf("You selected furniture model %d (name: %s)"FurnitureArray[listitem][furnimodel] ,FurnitureInfo[listitem][furniname]); 
Reply
#9

Ahhh you're a hero. Thank you very much!

EDIT:
How would I add that to my existing function as I need that!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)