Account system ideas
< Newer Topic
:: Older Topic >
#1 Sep 29, 2013 1:18 pm
GroupMembers
Posts600
JoinedDec 3, 2008
Alright sorry its taken me so long to make this thread Remcon but here are some ideas from the account system...
Is the account system going to replace the current logon??? if so
A menu to delete/create new chars...
On this menu being able to change account passswords,
adding an account email.
The ability to choose what char you log into - A given....
Maybe certain information that can be added to accounts:
Email
Gamer Tags
Age
Birthday(this could be cool to have the mud do something cool for birthdays later down the road)
Forums account name(if mud has forums)
For immortals:
Being able to see what chars are connected with what accounts... (able to find alts).
Being able to edit accounts- (high level imm) incase something goes wrong.
Having access to account information so they are able to get email information.
Things to look out for....
Pfile Pruging will have to be updated to delete accounts instead of player files.
Is the account system going to replace the current logon??? if so
A menu to delete/create new chars...
On this menu being able to change account passswords,
adding an account email.
The ability to choose what char you log into - A given....
Maybe certain information that can be added to accounts:
Gamer Tags
Age
Birthday(this could be cool to have the mud do something cool for birthdays later down the road)
Forums account name(if mud has forums)
For immortals:
Being able to see what chars are connected with what accounts... (able to find alts).
Being able to edit accounts- (high level imm) incase something goes wrong.
Having access to account information so they are able to get email information.
Things to look out for....
Pfile Pruging will have to be updated to delete accounts instead of player files.
#2 Sep 29, 2013 1:20 pm
GroupMembers
Posts600
JoinedDec 3, 2008
Linking playerfiles with accounts
#3 Oct 8, 2013 9:51 pm
GroupMembers
Posts600
JoinedDec 3, 2008
Wondering on thoughts/ progress of this.
#4 Oct 8, 2013 10:28 pm
GroupAdministrators
Posts1,946
JoinedJul 26, 2005
been busy, do have a little of it done
#5 Oct 9, 2013 9:20 am
GroupMembers
Posts239
JoinedJun 13, 2008
I have something like this setup for my 'new game' I've been trying to port things over. Its actually part of the account system found on mudbites with a few touches. If you want Remcon, I'll fire up the game and let you poke about with it.
ayuri
ayuri
#6 Oct 9, 2013 10:41 am
GroupAdministrators
Posts1,946
JoinedJul 26, 2005
thanks if you want just do a copy paste of all it does at the menu for me for some ideas of what I might add as well as the display
#7 Oct 9, 2013 12:04 pm
GroupMembers
Posts239
JoinedJun 13, 2008
Main account screen when you log in:
This is from within the game typing 'account'
Granted I don't have quest givers that give out quest points or anything like that. All could be easily rolled into it. I"ve not gone much beyond that however as well, last time I really touched it was back in 2011 or early 2012. Trying to figure out what direction I want to take, and then where to start ha.
ayuri
|Account: Ayuri| ============================================== [SW:TBD] This Account has |625| RPP points! New - Create a new character for this account Add - Add a current character to this account Who - See who is online List - List characters who are associated with this account Quit - Log off the MUD Play - Play the character chosen (Note: Type playto play that character!) Character In Clan Quit In Room Ayuri None Immortal Complex Shits This account may multiplay. This account has immortal status.
This is from within the game typing 'account'
[Account: Ayuri |===========================] | Points: 625 Immortal: Yes | | Multiplay: Yes | |--------------|Characters|-------------------| | Ayuri | |======================================[SW:TBD]
Granted I don't have quest givers that give out quest points or anything like that. All could be easily rolled into it. I"ve not gone much beyond that however as well, last time I really touched it was back in 2011 or early 2012. Trying to figure out what direction I want to take, and then where to start ha.
ayuri
#8 Oct 9, 2013 7:59 pm
Last edited Oct 9, 2013 8:19 pm by Amras
GroupMembers
Posts18
JoinedAug 11, 2008
First I think it should be mentioned that the account code that "Kaz Ro" released was "stolen" from the Rebellion in the Stars MUD which was done by Ewerta. Not that it entirely matters but I hate seeing people release code and claim all credit to it.
I have also installed the account code on my MUD (all headers left in place that Ewerta added) and I have modified it quite a bit. When I log in, I am presented with this account menu:
From within the MUD, I made an account command that displays the following:
I was asking about Xerves send_email snippet earlier so I could send verification emails to accounts which just provides a 5 digit number. I have everything functioning properly with it. Account Points are used for changing your Rank and your Prename Title. You also need account points to use some of the more popular race choices on an SWR MUD. Also, if your account is not verified, you are limited to 1 character linked to your account. I made verification necessary for a bunch of things but what I mentioned was what I can remember.
I have also installed the account code on my MUD (all headers left in place that Ewerta added) and I have modified it quite a bit. When I log in, I am presented with this account menu:
Welcome back Michael Last logged in from: sydnns0109w-142176103007.pppoe-dynamic.High-Speed.ns.bellaliant.net Last character played: Diablo Email Address: michael@themudhost.net Account Status: Verified Create - creates a character to add to account Add - adds an existing character to account Menu - displays this list Who - see who is on the game Help - displays a helpfile about accounts List - lists character attributes for each character in account Quit - terminates connection to the MUD Play - plays designated character Account>
From within the MUD, I made an account command that displays the following:
Account Details: (Verified) -------------------------------------------------------------------- First Name : Michael Last Name : Francis Account Name : Michael Account Type: Immortal Account Character : Diablo Multiplay : Yes Account Points: 0 Email : michael@themudhost.net -------------------------------------------------------------------- Other Characters: Amras The Empire 100 A Cheap Hotel
I was asking about Xerves send_email snippet earlier so I could send verification emails to accounts which just provides a 5 digit number. I have everything functioning properly with it. Account Points are used for changing your Rank and your Prename Title. You also need account points to use some of the more popular race choices on an SWR MUD. Also, if your account is not verified, you are limited to 1 character linked to your account. I made verification necessary for a bunch of things but what I mentioned was what I can remember.
#9 Oct 9, 2013 8:54 pm
GroupMembers
Posts600
JoinedDec 3, 2008
need a delete option that ask for passwords.
#10 Oct 9, 2013 9:34 pm
GroupMembers
Posts398
JoinedMar 8, 2005
It's a bit hard to tell, but I would highly recommend listing all the characters of the account directly at the account menu (if it doesn't already), rather than forcing the user to type "list".
Most MMO's show you your characters (or at least as many as will fit on a screen) so you can quickly and easily choose which one to play or delete, as well as making a new one.
Most MMO's show you your characters (or at least as many as will fit on a screen) so you can quickly and easily choose which one to play or delete, as well as making a new one.
#11 Oct 9, 2013 10:26 pm
Last edited Oct 9, 2013 10:30 pm by ayuri
GroupMembers
Posts239
JoinedJun 13, 2008
Amras said:
First I think it should be mentioned that the account code that "Kaz Ro" released was "stolen" from the Rebellion in the Stars MUD which was done by Ewerta. Not that it entirely matters but I hate seeing people release code and claim all credit to it.
Hrm, didn't know it was stolen. Sorry, I don't exactly follow whats going on all that much ha.
Bout the only thing extra mine does is add the rpp to the account file. Makes it handy, I think I had a post on here on looping though everyone or reloading the account file when a change was made to it. If someone is interested I can post the code I came up with looking at 'do_reward' as a template in fote.
I was going to get around to cleaning it up but first I was working on getting the basics working for what I wanted it to do, which was handle the rewards across all characters, so you could earn points on char A and spend them on char B.
Quixadhal,
Yes it does show you right at the start when you first login. Just at the time it was only me. I went and made a new 'test' char here:
Holonet Login: ayuri Enter account password: Last logged in from: localhost.localdomain Last character played: Ayuri |Account: Ayuri| ============================================== [SW:TBD] This Account has |625| RPP points! New - Create a new character for this account Add - Add a current character to this account Who - See who is online List - List characters who are associated with this account Quit - Log off the MUD Play - Play the character chosen (Note: Type playto play that character!) Character In Clan Quit In Room Ayuri None Immortal Complex Shits Test None On a bunk This account may multiplay. This account has immortal status.
ayuri
#12 Oct 10, 2013 8:52 am
GroupMembers
Posts18
JoinedAug 11, 2008
No worries ayuri. Ewerta didn't seem to care too much when I brought it to his attention years ago that his code was available for download. Only thing I didn't like was KazRo put his name all over it.
I've also added dbna2's suggestion for a delete command. It deletes the account as well as all attached characters. You must also provide your password to do so. If you are interested in having a copy of that part of the code I'd be more then willing to share.
I've also added dbna2's suggestion for a delete command. It deletes the account as well as all attached characters. You must also provide your password to do so. If you are interested in having a copy of that part of the code I'd be more then willing to share.
#13 Oct 10, 2013 9:58 am
GroupMembers
Posts239
JoinedJun 13, 2008
Amras said:
No worries ayuri. Ewerta didn't seem to care too much when I brought it to his attention years ago that his code was available for download. Only thing I didn't like was KazRo put his name all over it.
I've also added dbna2's suggestion for a delete command. It deletes the account as well as all attached characters. You must also provide your password to do so. If you are interested in having a copy of that part of the code I'd be more then willing to share.
That's a nifty idea. I've always told the players to just use the suicide command and I'd give them a random weapon to do it.
My RPP loop if anyone wants to take a stab at it. I think it's fairly 'safe' but yeah...be warned not exactly a great code monkey and haven't touched this in years. My biggest concern was/is in the save_account( victim->desc->account ) parts. I think got the kinks ironed out there but not 100% on that.
CMDF( do_reward ) { //ACCOUNT_DATA *account; char_data *victim; char arg[MSL]; int value; argument = one_argument( argument, arg ); if( arg[0] == '\0' ) { send_to_char("&wreward\r\n", ch); send_to_char("This command is logged in a seperate file.\r\n", ch ); return; } if( ( victim = get_char_world( ch, arg ) ) == nullptr ) { send_to_char( "They aren't here.\r\n", ch ); return; } if( victim->is_npc() ) { send_to_char( "Not on NPC's.\r\n", ch ); return; } if( argument[0] == '\0' ) { send_to_char("&wreward \r\n", ch); send_to_char("This command is logged in a seperate file.\r\n", ch ); return; } value = atoi( argument ); if( value < -500 || value > 1000 ) { send_to_char("&wInvalid range. Try -500 to 1000.\r\n", ch ); return; } if( value == 0 ) { send_to_char("&wWhat is the use in that?\r\n", ch ); return; } if( victim->desc == nullptr) { victim->rppoints += value; sprintf (log_buf, "%s rewarded to pfile.", victim->name); log_string( log_buf ); } else { if( value > 0 ) { ch_printf(victim, "&GYou've been rewarded with %d points.\r\n", value ); ch_printf(ch, "&GYou've rewarded %s (%s) with %d points.\r\n", victim->name, victim->desc->account->name, value ); } else { ch_printf(victim, "&GYou've been penalized by %d points.\r\n", value ); ch_printf(ch, "&GYou've deducted %d points from %s.\r\n", value, victim->name); } victim->desc->account->points += value; save_account( victim->desc->account ); } }
Then for the player 'spending the rpp'
CMDF( do_rpconvert ) { char buf[MAX_STRING_LENGTH]; if( ch->is_npc() ) return; if( argument[0] == '\0' ) { send_to_char( "&w&WSpend your RP points on what? The various options are:\r\n", ch ); send_to_char( "&G+----------------------------------------------------+\r\n", ch ); send_to_char( "&G| &W0&G | &WPersonal Capital Ship &G|&W 150 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W1&G | &WForce on your current character &G|&W 100 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W2&G | &WBonus Level to any Class &G|&W 15 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W3&G | &WClone &G|&W 6 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W4&G | &W1 language point &G|&W 4 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W5&G | &W25,000 credits &G|&W 2 RPP &G|&d\r\n", ch ); send_to_char( "&G| &W6&G | &W5% to any skill(max 100%) &G|&W 1 RPP &G|&d\r\n", ch ); send_to_char( "&G+----------------------------------------------------+&d\r\n\r\n\r\n", ch ); send_to_char( "&WFor more information on any bonus, type 'help rpconvert'\r\n", ch ); send_to_char( "&WTo buy your bonus, type 'rpconvert[extra arguments]'\r\n", ch ); send_to_char( "&rException&p: &WFor cloning, type 'clone' at the cloning center or 'backup' if you're a droid.\r\n", ch ); send_to_char( "&rException&p: &WFor your Personal Capital Ship, please contact a member of the Immortal Staff.&d\r\n", ch); return; } if(atoi ( argument ) == 0) { send_to_char( "&GPlease contact a member of the Immortal Staff for this bonus.\r\n", ch); return; } if( atoi( argument ) == 1 ) { if( ch->desc->account->points < 100 ) { send_to_char("Force requires 100 RPP!\r\n", ch); return; } send_to_char("\r\n&WForce has been set on your current character!\r\n", ch); ch->force_chance = 1; if(ch->force_identified == -1 && ch->force_identified != 1) ch->force_identified = 0; ch->desc->account->points -= 100; save_account( ch->desc->account ); save_char_obj( ch ); send_to_char("This character now has the FORCE!\r\n", ch); snprintf(buf, MAX_STRING_LENGTH, "&WAccount &p%s &Whas purchased the FORCE on character %s\r\n", ch->desc->account->name, ch->name); log_string ( buf ); return; } if( atoi( argument ) == 2 ) { char arg1[MAX_STRING_LENGTH]; int iClass; argument = one_argument( argument, arg1 ); if( argument[0] == '\0' || !argument ) { send_to_char( "&RSyntax: rpconvert 1 \r\n", ch ); return; } if( ch->desc->account->points < 15 ) { send_to_char( "&RThis bonus costs 15 RP points. You don't have enough.\r\n", ch ); return; } for( iClass = 0; iClass < MAX_ABILITY; iClass++ ) { if( UPPER( argument[0] ) == UPPER( ability_name[iClass][0] ) && !str_prefix( argument, ability_name[iClass] ) && str_prefix( argument, "force" ) && (max_level(ch, iClass) < 50) ) { ch->bonus[iClass] += 1; ch_printf( ch, "&GYour ability in %s has been increased by 1!\r\n", ability_name[iClass] ); ch_printf( ch, "%s increased class %s with rpconvert.", ch->name, ability_name[iClass] ); ch->desc->account->points -= 15; save_account(ch->desc->account); save_char_obj( ch ); snprintf(buf, MAX_STRING_LENGTH, "&WAccount &p%s &Whas purchased a level on character %s\r\n", ch->desc->account->name, ch->name); log_string ( buf ); break; } } if( iClass == MAX_ABILITY ) { send_to_char( "No such class.\r\n", ch ); return; } return; } if( atoi( argument ) == 3 ) { send_to_char( "&RJust type 'clone' or 'backup' at a cloning facility!\r\n", ch ); return; } if( atoi( argument ) ==4 ) { if(ch->desc->account->points <4) { send_to_char("&RThis bonus costs 2 RPP.\r\n", ch); return; } ch->desc->account->points -= 4; save_account(ch->desc->account); save_char_obj( ch ); snprintf(buf, MAX_STRING_LENGTH, "&WAccount &p%s &Whas purchased a language point on character %s\r\n", ch->desc->account->name, ch->name); log_string ( buf ); ch->pcdata->lang_lesson += 1; save_char_obj( ch ); send_to_char( "&WYou've converted 4 RPP's for 1 language point!\r\n", ch); return; } if( atoi( argument ) ==5 ) { if(ch->desc->account->points <2) { send_to_char("&RThis bonus costs 2 RPP.\r\n", ch); return; } ch->gold += 25000; ch->desc->account->points -= 2; save_account(ch->desc->account); save_char_obj( ch ); snprintf(buf, MAX_STRING_LENGTH, "&WAccount &p%s &Whas purchased 25,000 credits on character %s\r\n", ch->desc->account->name, ch->name); log_string ( buf ); send_to_char( "&WYou've converted 2 RPP's for 25,000 credits!\r\n", ch); return; } if( atoi( argument ) == 6 ) { char arg1[MAX_STRING_LENGTH]; int sn; argument = one_argument( argument, arg1 ); if( argument[0] == '\0' || !argument ) { send_to_char( "&RSyntax: rpconvert 5 \r\n", ch ); return; } if( ch->desc->account->points < 1 ) { send_to_char( "&RThis bonus costs 1 RP point. You don't have enough.\r\n", ch ); return; } sn = skill_lookup( argument ); if( !sn || sn < 1 ) { send_to_char( "&RNo such skill.\r\n", ch ); return; } if( ch->pcdata->learned[sn] < 1 ) { send_to_char( "&RYou must have at least practiced the skill to increase its percentage!\r\n", ch ); return; } if( ch->pcdata->learned[sn] >= 100 ) { send_to_char( "&RYou already have this skill adepted!\r\n", ch ); return; } ch->pcdata->learned[sn] = UMIN( ch->pcdata->learned[sn] + 5, 100 ); ch->desc->account->points -= 1; save_account(ch->desc->account); save_char_obj( ch ); ch_printf( ch, "&GYou have spent 1 RPP to increase %s by 5%!\r\n", skill_table[sn]->name ); sprintf( buf, "%s increased %s by 5%% with rpconvert.\r\n", ch->name, skill_table[sn]->name ); log_string( buf ); return; } do_rpconvert( ch, "" ); }
#14 Oct 10, 2013 3:10 pm
GroupMembers
Posts18
JoinedAug 11, 2008
I just PMed you the remove code ayuri.
#15 Oct 10, 2013 8:19 pm
GroupMembers
Posts600
JoinedDec 3, 2008
That sounds like just what I been looking for... Excited to see what Remcon comes up with.
#16 Oct 13, 2013 7:29 am
GroupMembers
Posts398
JoinedMar 8, 2005
An account system seems like a useful enough thing to warrant making it either included in SmaugFUSS (toggle via #ifdefs perhaps), or at least set up as a directly installable thing against stock code (diff + directions).
WIth a bit of polish, it would actually be quite useful. You could move some security privs to the account, so (for example) nobody can cheat their way to gaining wizard powers by finding a bug to level themselves up.
WIth a bit of polish, it would actually be quite useful. You could move some security privs to the account, so (for example) nobody can cheat their way to gaining wizard powers by finding a bug to level themselves up.
#18 Oct 16, 2013 5:18 pm
GroupMembers
Posts239
JoinedJun 13, 2008
Something else may be interesting to keep track of in the account along with the pfile: Mkills and Pkills.
In the name of big data, see who likes to kill the most NPC's and PC's.
Over all I just liked the idea of having quest points, roll play points, whatever tracked in one spot so if you were willing could let players purchase perks for their other characters.
ayuri
In the name of big data, see who likes to kill the most NPC's and PC's.
Over all I just liked the idea of having quest points, roll play points, whatever tracked in one spot so if you were willing could let players purchase perks for their other characters.
ayuri
#19 Oct 18, 2013 8:21 pm
GroupAdministrators
Posts1,946
JoinedJul 26, 2005
Quixadhal said:
An account system seems like a useful enough thing to warrant making it either included in SmaugFUSS (toggle via #ifdefs perhaps), or at least set up as a directly installable thing against stock code (diff + directions).
WIth a bit of polish, it would actually be quite useful. You could move some security privs to the account, so (for example) nobody can cheat their way to gaining wizard powers by finding a bug to level themselves up.
In lop I actually added in permissions long ago to avoid people doing that lol. Not a bad idea though over all.
#20 Nov 10, 2013 11:03 am
GroupAdministrators
Posts1,946
JoinedJul 26, 2005
Enter your character's name, or type new: remcon Password: Account: Remcon Last logged on Remcon at 11/10/2013 from 127.0.0.1. Characters linked to this account: Remcon Auto logging in Remcon Last connected from: 127.0.0.1
Thats what it shows when logging in with autologin set on character Remcon for account Remcon
relog Your surroundings begin to fade as a mystical swirling vortex of colors envelops your body... When you come to, things aren't as they were. A strange voice says, 'We await your return, Remcon...' You are currently logged on account Remcon. Type 0 or quit to quit. Type 1 or password to change your account password. Type 2 or delete to delete your account. Type 3 or login to pick a character to log in the game. Characters: Remcon If the character you want to log in isn't listed you can still log on it if you know it's password
If you use relog command it takes you to the normal part where you can pick another character etc...
relog Your surroundings begin to fade as a mystical swirling vortex of colors envelops your body... When you come to, things aren't as they were. A strange voice says, 'We await your return, Remcon...' You are currently logged on account Remcon. Type 0 or quit to quit. Type 1 or password to change your account password. Type 2 or delete to delete your account. Type 3 or login to pick a character to log in the game. Characters: Remcon If the character you want to log in isn't listed you can still log on it if you know it's password
accounts Account | Characters ---------- | ----------- ----------- ----------- ----------- ----------- ----------- Remcon | * Remcon ---------- | Last on: Remcon at 11/10/2013 from 127.0.0.1.
The * means that is the character it will autologin (they set it by being on the character and typing autoconnect)
accounts remcon Account: Remcon Max Characters: 5 Last on: Remcon at 11/10/2013 from 127.0.0.1. Character: Remcon Autologin: Yes
Thats it so far on it lol, haven't had a lot of time and still loads I want to get done with it. Ideas are welcome of course.