Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else if (first.compare("SelectTalents") == 0)
- {
- if (second.length() < 8)
- return;
- int perks[4];
- std::string talents[4];
- // retrieve talents
- talents[0] = second.substr(0, 2);
- talents[1] = second.substr(2, 2);
- talents[2] = second.substr(4, 2);
- talents[3] = second.substr(6, 2);
- for (int i = 0; i < 4; ++i)
- {
- // verify them
- if (!isdigit(talents[i][0]) || !isdigit(talents[i][1]))
- return;
- // Set selected perk
- perks[i] = atoi(talents[i].c_str());
- sender->SetSelectedPerk(i, perks[i]);
- }
- // Save to database
- QueryResult result = CharacterDatabase.PQuery("SELECT COUNT(*) FROM `character_perks` WHERE `GUID` = '%u'", sender->GetGUIDLow());
- if (!result)
- return;
- int rows = result->Fetch()->GetInt32();
- if (rows == 0)
- {
- CharacterDatabase.PQuery("INSERT INTO `character_perks` VALUES ('%u', '%u', '%u', '%u', '%u')",
- sender->GetGUIDLow(), perks[0], perks[1], perks[2], perks[3]);
- }
- else if (rows == 1)
- {
- CharacterDatabase.PQuery("UPDATE `character_perks` SET `perk1`='%u',`perk2`='%u',`perk3`='%u',`perk4`='%u' WHERE `GUID` = '%u'",
- perks[0], perks[1], perks[2], perks[3], sender->GetGUIDLow());
- }
- else
- {
- TC_LOG_INFO("server.error", "[ERROR]: Character %s has multiple perk records in the database.", sender->GetName());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment