From: Keith F. <ven...@us...> - 2002-02-23 09:06:41
|
Update of /cvsroot/planeshift/planeshift/src/server/database/mysql In directory usw-pr-cvs1:/tmp/cvs-serv14576 Modified Files: psdatabase.h psdatabase.cpp Log Message: Added CreateGuild command. Separated Account and Player. Index: psdatabase.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/database/mysql/psdatabase.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** psdatabase.h 22 Feb 2002 17:21:32 -0000 1.2 --- psdatabase.h 23 Feb 2002 09:06:37 -0000 1.3 *************** *** 53,59 **** int CreateAccount(char *username, char *password, char *name); ! int CreatePlayer(char *name, int raceID, int strength, int endurance, int agility, int intelligence, int will, int charisma, int *pcID); int CheckLogin(const char *username, const char *password); --- 53,61 ---- int CreateAccount(char *username, char *password, char *name); ! int CreatePlayer(char *name, int acctid, int raceID, int strength, int endurance, int agility, int intelligence, int will, int charisma, int *pcID); + + int CreateGuild(char *guildname,char *leadername); int CheckLogin(const char *username, const char *password); Index: psdatabase.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/database/mysql/psdatabase.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** psdatabase.cpp 22 Feb 2002 17:21:32 -0000 1.2 --- psdatabase.cpp 23 Feb 2002 09:06:37 -0000 1.3 *************** *** 113,141 **** int psDatabase::CreateAccount(char *username, char *password,char *name) { char sql[1024]; char usernameEsc[513]; char passwordEsc[513]; - char nameEsc[513]; Escape(usernameEsc, username); Escape(passwordEsc, password); - Escape(nameEsc, name); - - ResultSet *rs = mysql->Select("select max(id) from player"); - if (!rs) - { - printf("Couldn't insert new player.\nCommand was <%s>.\nError returned was <%s>\n",sql,mysql->GetLastError()); - return -1; - } - - unsigned int nextid = atoi( (*rs)[0][0] )+1; ! delete rs; ! ! snprintf(sql,sizeof(sql),"insert into player (id,username,password,name,npc_ind) values (%lu,'%s','%s','%s','n')", ! nextid,usernameEsc,passwordEsc,nameEsc); ! ! if (mysql->Command(sql) != 1) { printf("Couldn't insert new player.\nCommand was <%s>.\nError returned was <%s>\n",sql,mysql->GetLastError()); --- 113,131 ---- int psDatabase::CreateAccount(char *username, char *password,char *name) { + /** + * Later this will be split into CreateAccount and CreatePlayer, + * but for now they are together. + */ + char sql[1024]; char usernameEsc[513]; char passwordEsc[513]; Escape(usernameEsc, username); Escape(passwordEsc, password); ! if (mysql->Command("insert into accounts (username,password) values ('%s','%s')", ! usernameEsc,passwordEsc) != 1) { printf("Couldn't insert new player.\nCommand was <%s>.\nError returned was <%s>\n",sql,mysql->GetLastError()); *************** *** 144,159 **** else { ! printf("Created account %lu successfully.\n",nextid); } return 0; } ! int psDatabase::CreatePlayer(char *name,int raceID, int strength, int endurance, int agility, int intelligence, int will, int charisma, int *pcID) { return 0; } // returns: // >0 passwords match correctly. PC_ID value is returned. --- 134,198 ---- else { ! int acctid = mysql->SelectSingleNumber("select id from accounts where username='%s'", ! usernameEsc); ! ! if (CreatePlayer(name,acctid,0,0,0,0,0,0,0,NULL)!=0) ! { ! printf("Created account but could not create player with that name.\n"); ! return -1; ! } ! ! printf("Created account and player successfully.\n"); } return 0; } ! int psDatabase::CreatePlayer(char *name,int acctid,int raceID, int strength, int endurance, int agility, int intelligence, int will, int charisma, int *pcID) { + char nameEsc[513]; + + Escape(nameEsc,name); + + if (mysql->Command("insert into players (name,acct_id,race,strength,endurance,agility,intelligence,will,charisma,object_player) " + "values ('%s',%d,%d,%d,%d,%d,%d,%d,%d,%d)", + nameEsc,acctid,raceID,strength, + endurance, agility, intelligence, + will, charisma, 0) != 1) + { + printf("Couldn't insert new player.\nCommand was <%s>.\nError returned was <%s>\n",mysql->GetLastQuery(),mysql->GetLastError()); + return -1; + } + return 0; + } + + int psDatabase::CreateGuild(char *guildname,char *leadername) + { + char guildEsc[513]; + char nameEsc[513]; + + Escape(guildEsc,guildname); + Escape(nameEsc,leadername); + + int leaderID = mysql->SelectSingleNumber("select id from players where name='%s'",nameEsc); + + if (leaderID == 0xffffffff) + { + return 2; + } + + if (mysql->Command("insert into guilds (name,player_founder,date_created) " + "values ('%s', %d, Now() )", + guildEsc,leaderID) != 1) + { + printf("Couldn't create new guild.\nCommand was <%s>.\nError returned was <%s>\n",mysql->GetLastQuery(),mysql->GetLastError()); + return -1; + } return 0; } + + // returns: // >0 passwords match correctly. PC_ID value is returned. *************** *** 163,167 **** int psDatabase::CheckLogin(const char *username, const char *password) { - char sql[1024]; char usernameEsc[513]; int iRet=0; --- 202,205 ---- *************** *** 169,179 **** Escape(usernameEsc, username); - sprintf(sql, "select id, password from player where username='%s'", usernameEsc); - ResultSet *rs; ! if((rs=mysql->Select(sql)) == NULL) { ! printf("Couldn't insert new player.\nCommand was <%s>.\nError returned was <%s>\n",sql,mysql->GetLastError()); return -1; } --- 207,215 ---- Escape(usernameEsc, username); ResultSet *rs; ! if((rs=mysql->Select("select id, password from accounts where username='%s'", usernameEsc)) == NULL) { ! printf("Couldn't execute CheckLogin query.\nCommand was <%s>.\nError returned was <%s>\n",mysql->GetLastQuery(),mysql->GetLastError()); return -1; } |