assign number automatically as array?
#1

Let's say I have a 2d array

new OBJECTS[MAX_PLAYERS][5];

and it works like this
objects[1]
objects[2]
objects[3]

Now this is for global.

But let's say I want to make it per player.
How do i assign the numbers automatically.

EG:
Code:
cmd:object(playerid,params[])
{

objects[assign automatically per player instead of always being 1,2,3,4,5] = createplayerobjectxxx

return 1;

}
Reply
#2

loop through it
Reply
#3

You'll need the playerid together with the object ID so storing it in an array that is indexed by a playerid would be a good idea, depending on how many slots there should be per player.
Reply
#4

If your first index is always as playerid.
->
PHP Code:
new OBJECTS[MAX_PLAYERS][5];
#define OBJECTS[%0] OBJECTS[playerid][%0]
cmd:object(playerid,params[])
{
objects[0] = createplayerobjectxxx
// now compiler repaced it with objects[player][0] =... 
return 1;

[ I dont know if I misunderstood or no D:]
Reply
#5

Quote:
Originally Posted by Ada32
View Post
loop through it
Loop is the only way?


Btw jalt I know that but I need an automatic number instead of 1,2,3,4,5 however I fixed it temporary.I need a permanent solution.
Reply
#6

Quote:
Originally Posted by Crystallize
View Post
Loop is the only way?
what's wrong with looping?
Reply
#7

If you want to use that array per player to store 5 objects each per player:
Code:
new objects[MAX_PLAYERS][5];

cmd:object(playerid, params[])
{
    objects[playerid][0] = createplayerobjectxxx
    objects[playerid][1] = createplayerobjectxxx
    objects[playerid][2] = createplayerobjectxxx
    objects[playerid][3] = createplayerobjectxxx
    objects[playerid][4] = createplayerobjectxxx

    return 1;
}
When player 3 uses this command, the server will have the value "3" for the "playerid" variable and will simply use it as a reference to access the array.
So it will create all 5 objects for player 3 in this array as if you had typed this:
Code:
new objects[MAX_PLAYERS][5];

cmd:object(playerid, params[])
{
    objects[3][0] = createplayerobjectxxx
    objects[3][1] = createplayerobjectxxx
    objects[3][2] = createplayerobjectxxx
    objects[3][3] = createplayerobjectxxx
    objects[3][4] = createplayerobjectxxx

    return 1;
}
The same will happen for player 27.
The server will simply paste "27" as the first index of the array.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)