View Single Post
Neuro Toxin
Veteran Member
Join Date: Oct 2013
Location: { closing the void; }
Old 07-28-2018 , 22:57   Re: Dynamic Objects and Properties - v.0.0.32 - [2018.05.08]
Reply With Quote #274

Quote:
Originally Posted by oeN.
Hey,

Basically I'm working on Clan System. And Dynamic looks promising.
I need to store Clans names and array of members (strings).
Let's say there are 5 Clans. Indexed 1, 2, 3, 4. Each Clan has unique name and array of members that are in that clan. Is it possible to store these data using Dynamic?

In AmxX I would just do that:
Code:
enum _:ClanData {
	CLAN_ID,
	CLAN_NAME[32],
	CLAN_MEMBERS[MAX_MEMBERS][64]
}
new g_aClans = CreateArray(ClanData);

new clan[ClanData];
clan[CLAN_ID] = 1;
clan[CLAN_NAME] = "My Clan";
clan[CLAN_MEMBERS] = { "Player 1", "Player 2", "Player 3" }
ArrayPushArray(g_aClans, clan);
And done. So easy and so readable. Without dozens of global variables.

Am I doing bad trying to use Dynamic for that?
I would start of by using the Class Builder to build your base class ClanData.

clandata.inc


As per your code example:

Code:
Dynamic Clans = Dynamic();

ClanData Clan = ClanData();
Clan.SetName("My Clan");

Dynamic ClanMembers = ClanData.Members;
ClanMembers.PushString("Player 1");
ClanMembers.PushString("Player 2");
ClanMembers.PushString("Player 3");

Clans.PushDynamic(Clan);
You could then access a ClanData methodmap like so:

Code:
ClanData Clan = Clans.GetDynamicByIndex(0);
__________________
Neuro Toxin is offline