"Flags"
Posted: Fri Dec 12, 2008 9:21 pm
I work with a lot of other emulators mostly as an admirer (not nearly as obsessed as I am here...
) and something I see a lot are using various alpha-numeric characters in a record as a sort of "flag" for what a zone, npc, item or character can do.
Take for example a `zones`.`flags` field. Instead of having boolean values of 0/1 to show whether or not the zone is always_loaded or a city_zone, you could set a `flags` value of "A" for always loaded and "C" for City Zone. Further, say you wanted a zone where speed enhancements were stripped. A flag of "S" would mean no player could move above default speed. My personal favorite, negate magic - A flag of "M" could mean no magics could be cast in the zone at all (great for summoning evil players into a jail and locking them down for a duration! muhaha! oh, sorry...)
Previously I had thought that using Flags on a Spawn record could be useful for those special abilities NPCs get that we do not... but after talking with Scatman, I think these are just Skills that are already known and flagging an NPC for Triple/Quad attack, Immunity to ____ may be handled via skills. If not, then a `spawn_npcs`.`flags` field could offer the same flexibility.
Last example would be `characters`.`flags` - which could be anything from allowing or disallowing a specific character the ability to do something based on that flag... like perma-fly mode or speed, or cannot cast magic because they were bad, or a special reward for donators on donations servers.
For the record, I am talking about case-sensitive 0-9a-zA-Z which are 62 possible flags.
The possibilities are endless.
So just stow this away for a later day, as I think it would be of great benefit to the configurability of the emulator at some point.
The end.
Take for example a `zones`.`flags` field. Instead of having boolean values of 0/1 to show whether or not the zone is always_loaded or a city_zone, you could set a `flags` value of "A" for always loaded and "C" for City Zone. Further, say you wanted a zone where speed enhancements were stripped. A flag of "S" would mean no player could move above default speed. My personal favorite, negate magic - A flag of "M" could mean no magics could be cast in the zone at all (great for summoning evil players into a jail and locking them down for a duration! muhaha! oh, sorry...)
Previously I had thought that using Flags on a Spawn record could be useful for those special abilities NPCs get that we do not... but after talking with Scatman, I think these are just Skills that are already known and flagging an NPC for Triple/Quad attack, Immunity to ____ may be handled via skills. If not, then a `spawn_npcs`.`flags` field could offer the same flexibility.
Last example would be `characters`.`flags` - which could be anything from allowing or disallowing a specific character the ability to do something based on that flag... like perma-fly mode or speed, or cannot cast magic because they were bad, or a special reward for donators on donations servers.
For the record, I am talking about case-sensitive 0-9a-zA-Z which are 62 possible flags.
The possibilities are endless.
So just stow this away for a later day, as I think it would be of great benefit to the configurability of the emulator at some point.
The end.