Nos nagyon egyszerű a megoldás. Azt javaslom, de töltögess le bútor rendszereket, mert azt nem fogod érteni és nem tanulsz belőle.
A legjobb mód, ha egy sajátot írsz.
Nem annyira bonyolult. Attól függ, hogy házhoz szeretnéd kötni, vagy játékoshoz.
Ház verzió.
#define MAX_HAZ 100
#define MAX_BUTOR 20
new Butorok[MAX_HAZ][MAX_BUTOR];
Játékos verzió
#define MAX_BUTOR 20
new Butorok[MAX_PLAYERS][MAX_BUTOR];
Illetve szükséges lesz egy tömb ami ezeknek a bútoroknak, tárolja a tulajdonságaikat.
enum butorData
{
Float:bPos[3],
Float:bRot[3],
bVirtual,
bInti
}
new butorInfo[MAX_PLAYERS][MAX_BUTOR][butorData];
Szükség van egy, a játékos/ház meglévő bútorainak számát tároló változóra.
new megvettButorok[MAX_PLAYERS] = 0;
Illetve szükségünk van egy jelenlegi bútor Slot-ját tároló változóra is.
new jelenlegiButor[MAX_PLAYERS] = -1;
Ezután létrehozol egy bútort.
CMD:ujbutor(playerid,params[])
{
if(isnull(params)) return SendClientMessage(playerid,-1,\"Használat: /újbútor (ID)\");
if(megvettButorok > MAX_BUTOR) return SendClientMessage(playerid,-1,\"Nem hozhatsz létre több bútort :C\");
new butorID;
sscanf(params,\"d\",butorID);
new Float:X,Float:Y,Float:Z,virtual,inti;
GetPlayerPos(playerid,X,Y,Z);
virtual = GetPlayerVirtualWorld(playerid);
inti = GetPlayerInterior(playerid);
// LOGIKA
Butorok[playerid][megvettButorok] = CreateDynamicOjbect(butorID,X,Y,Z,0.0,0.0,0.0,virtual,inti);
butorInfo[playerid][megvettButorok][bPos][0] = X;
butorInfo[playerid][megvettButorok][bPos][1] = Y;
butorInfo[playerid][megvettButorok][bPos][2] = Z;
butorInfo[playerid][megvettButorok][bRot][0] = 0.0;
butorInfo[playerid][megvettButorok][bRot][1] = 0.0;
butorInfo[playerid][megvettButorok][bRot][2] = 0.0;
butorInfo[playerid][megvettButorok][bVirtual] = virtual;
butorInfo[playerid][megvettButorok][bInti] = inti;
// A Butorok tömbbe, a játékos táblán, a megvettButorok mezőbe, létrehozunk egy objectet.