SA-MP Forums Archive
EditDynamicObject & Array of object ID [Help] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: EditDynamicObject & Array of object ID [Help] (/showthread.php?tid=355092)



EditDynamicObject & Array of object ID [Help] - Marricio - 28.06.2012

Hi guys, I have an array of valid object ids for my furniture system:

pawn Code:
new KitchenModels[][] =
{
    // ======================== //
    {"Kitchen Set", 14720, 1000},
    {"White Kitchen Cabinet 1", 2133, 200},
    {"White Kitchen Cabinet 2", 2134, 200},
    {"Large White Kitchen Cabinet", 2338, 300},
    {"Corner White Kitchen Cabinet", 2341, 300},
    {"Green Kitchen Cabinet 1", 2334, 200},
    {"Green Kitchen Cabinet 2", 2335, 200},
    {"Large Green Kitchen Cabinet", 2158, 300},
    {"Luxury Cooker", 2135, 400},
    {"Luxury Sink", 2136, 400}
};
The first field (0) is the object name, (1) is the object model, and (2) is the cost of that furniture.

Now, I have a dialog that simply generates a list with all these objects using strcat, this dialog being:
pawn Code:
case DIALOG_KITCHENOBJ:
        {
            if(response)
            {
                if(GetServerMoney(playerid) < KitchenModels[listitem][2])
                {
                    format(szString, 128, "This object costs ~g~$%d.", KitchenModels[listitem][2]);
                    ShowErrorMessage(playerid, szString);
                    return 1;
                }
               
                new obj, Float:x1, Float:x2, Float:x3;
                GetPlayerPos(playerid, x1, x2, x3);
                obj = CreateDynamicObject(KitchenModels[listitem][1], x1, x2, x3, 0, 0, 0, GetPlayerVirtualWorld(playerid) );

                EditDynamicObject(playerid, obj);
                SetPVarInt(playerid, "EditingFurni", obj);
               
                printf("*_________*");
                printf("*Obj: %d", KitchenModels[listitem][1]);
                printf("*_________*");
                SendClientMessage(playerid, COLOR_YELLOW, "You are now editing a furniture, click the floppy disk to save, or /cancelfurni to cancel.");
            }
        }
But it doesn't work at all, since when I debugged, Obj says 117 if I choose "Luxury Sink" (last listitem), and if I choose the first one (Kitchen Set) it will print 105. Also, the object edit mode doesn't enable at all, how can I solve this?


Re: EditDynamicObject & Array of object ID [Help] - kadaradam - 16.08.2012

This problem was also my problem.But i found the a solution,before you edit an object update the pos,where you created.
pawn Code:
Streamer_UpdateEx(playerid, x1, x2, x3, GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));