Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case MANAGER_ACCOUNT: {
- Account account = IOLoginData::getInstance()->loadAccount(managerNumber);
- if(checkText(text, "cancel") || (checkText(text, "account") && !talkState[1]))
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- msg << "Do you want to change your 'password', request a 'recovery key', add a 'character', or 'delete' a character?";
- }
- else if(checkText(text, "delete") && talkState[1])
- {
- talkState[1] = false;
- talkState[2] = true;
- msg << "Which character would you like to delete?";
- }
- else if(talkState[2])
- {
- std::string tmp = text;
- trimString(tmp);
- if(!isValidName(tmp, false))
- msg << "That name contains invalid characters, try to say your name again, you might have typed it wrong.";
- else
- {
- talkState[2] = false;
- talkState[3] = true;
- managerString = tmp;
- msg << "Do you really want to delete the character named " << managerString << "?";
- }
- }
- else if(checkText(text, "yes") && talkState[3])
- {
- switch(IOLoginData::getInstance()->deleteCharacter(managerNumber, managerString))
- {
- case DELETE_INTERNAL:
- msg << "An error occured while deleting your character. Either the character does not belong to you or it doesn't exist.";
- break;
- case DELETE_SUCCESS:
- msg << "Your character has been deleted.";
- break;
- case DELETE_HOUSE:
- msg << "Your character owns a house. To make sure you really want to lose your house by deleting your character, you have to login and leave the house or pass it to someone else first.";
- break;
- case DELETE_LEADER:
- msg << "Your character is the leader of a guild. You need to disband or pass the leadership someone else to delete your character.";
- break;
- case DELETE_ONLINE:
- msg << "A character with that name is currently online, to delete a character it has to be offline.";
- break;
- }
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- }
- else if(checkText(text, "no") && talkState[3])
- {
- talkState[1] = true;
- talkState[3] = false;
- msg << "Tell me what character you want to delete.";
- }
- else if(checkText(text, "password") && talkState[1])
- {
- talkState[1] = false;
- talkState[4] = true;
- msg << "Tell me your new password please.";
- }
- else if(talkState[4])
- {
- std::string tmp = text;
- trimString(tmp);
- if(tmp.length() < 6)
- msg << "That password is too short, at least 6 digits are required. Please select a longer password.";
- else if(!isValidPassword(tmp))
- msg << "Your password contains invalid characters... please tell me another one.";
- else
- {
- talkState[4] = false;
- talkState[5] = true;
- managerString = tmp;
- msg << "Should '" << managerString << "' be your new password?";
- }
- }
- else if(checkText(text, "yes") && talkState[5])
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- IOLoginData::getInstance()->setPassword(managerNumber, managerString);
- msg << "Your password has been changed.";
- }
- else if(checkText(text, "no") && talkState[5])
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- msg << "Then not.";
- }
- else if(checkText(text, "character") && talkState[1])
- {
- if(account.charList.size() <= 15)
- {
- talkState[1] = false;
- talkState[6] = true;
- msg << "What would you like as your character name?";
- }
- else
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- msg << "Your account reach the limit of 15 players, you can 'delete' a character if you want to create a new one.";
- }
- }
- else if(talkState[6])
- {
- managerString = text;
- trimString(managerString);
- if(managerString.length() < 4)
- msg << "Your name you want is too short, please select a longer name.";
- else if(managerString.length() > 20)
- msg << "The name you want is too long, please select a shorter name.";
- else if(!isValidName(managerString))
- msg << "That name seems to contain invalid symbols, please choose another name.";
- else if(IOLoginData::getInstance()->playerExists(managerString, true))
- msg << "A player with that name already exists, please choose another name.";
- else
- {
- std::string tmp = asLowerCaseString(managerString);
- if(tmp.substr(0, 4) != "god " && tmp.substr(0, 3) != "cm " && tmp.substr(0, 3) != "gm ")
- {
- talkState[6] = false;
- talkState[7] = true;
- msg << managerString << ", are you sure?";
- }
- else
- msg << "Your character is not a staff member, please tell me another name!";
- }
- }
- else if(checkText(text, "no") && talkState[7])
- {
- talkState[6] = true;
- talkState[7] = false;
- msg << "What else would you like to name your character?";
- }
- else if(checkText(text, "yes") && talkState[7])
- {
- talkState[7] = false;
- talkState[8] = true;
- msg << "Should your character be a 'male' or a 'female'.";
- }
- else if(talkState[8] && (checkText(text, "female") || checkText(text, "male")))
- {
- talkState[8] = false;
- talkState[9] = true;
- if(checkText(text, "female"))
- {
- msg << "A female, are you sure?";
- managerSex = PLAYERSEX_FEMALE;
- }
- else
- {
- msg << "A male, are you sure?";
- managerSex = PLAYERSEX_MALE;
- }
- }
- else if(checkText(text, "no") && talkState[9])
- {
- talkState[8] = true;
- talkState[9] = false;
- msg << "Tell me... would you like to be a 'male' or a 'female'?";
- }
- else if(checkText(text, "yes") && talkState[9])
- {
- if(g_config.getBool(ConfigManager::START_CHOOSEVOC))
- {
- talkState[9] = false;
- talkState[11] = true;
- bool firstPart = true;
- for(VocationsMap::iterator it = Vocations::getInstance()->getFirstVocation(); it != Vocations::getInstance()->getLastVocation(); ++it)
- {
- if(it->first == it->second->getFromVocation() && it->first != 0)
- {
- if(firstPart)
- {
- msg << "What do you want to be... " << it->second->getDescription();
- firstPart = false;
- }
- else if(it->first - 1 != 0)
- msg << ", " << it->second->getDescription();
- else
- msg << " or " << it->second->getDescription() << ".";
- }
- }
- }
- else if(g_config.getBool(ConfigManager::START_CHOOSETOWN))
- {
- talkState[9] = false;
- talkState[13] = true;
- bool firstPart = true;
- for(TownMap::const_iterator it = Towns::getInstance()->getFirstTown(); it != Towns::getInstance()->getLastTown(); ++it)
- {
- if(it->second->getID() < 100)
- {
- if(firstPart)
- {
- msg << "Where do you want to live... " << it->second->getName();
- firstPart = false;
- }
- else if(it->first - 1 != 0)
- msg << ", " << it->second->getName();
- else
- msg << " or " << it->second->getName() << ".";
- }
- }
- }
- else if(!IOLoginData::getInstance()->playerExists(managerString, true))
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- if(IOLoginData::getInstance()->createCharacter(managerNumber, managerString, managerNumber2, (uint16_t)managerSex, managerNumber3))
- msg << "Your character has been created.";
- else
- msg << "Your character couldn't be created, please try again.";
- }
- else
- {
- talkState[6] = true;
- talkState[9] = false;
- msg << "A player with that name already exists, please choose another name.";
- }
- }
- else if(talkState[11])
- {
- for(VocationsMap::iterator it = Vocations::getInstance()->getFirstVocation(); it != Vocations::getInstance()->getLastVocation(); ++it)
- {
- std::string tmp = asLowerCaseString(it->second->getName());
- if(checkText(text, tmp) && it != Vocations::getInstance()->getLastVocation() && it->first == it->second->getFromVocation() && it->first != 0)
- {
- msg << "So you would like to be " << it->second->getDescription() << "... are you sure?";
- managerNumber2 = it->first;
- talkState[11] = false;
- talkState[12] = true;
- }
- }
- if(msg.str().length() == 17)
- msg << "I don't understand what vocation you would like to be... could you please repeat it?";
- }
- else if(checkText(text, "yes") && talkState[12])
- {
- if(g_config.getBool(ConfigManager::START_CHOOSETOWN))
- {
- talkState[12] = false;
- talkState[13] = true;
- bool firstPart = true;
- for(TownMap::const_iterator it = Towns::getInstance()->getFirstTown(); it != Towns::getInstance()->getLastTown(); ++it)
- {
- if(it->second->getID() < 100)
- {
- if(firstPart)
- {
- msg << "Where do you want to live... " << it->second->getName();
- firstPart = false;
- }
- else if(it->first - 1 != 0)
- msg << ", " << it->second->getName();
- else
- msg << " or " << it->second->getName() << ".";
- }
- }
- }
- else if(!IOLoginData::getInstance()->playerExists(managerString, true))
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- if(IOLoginData::getInstance()->createCharacter(managerNumber, managerString, managerNumber2, (uint16_t)managerSex, managerNumber3))
- msg << "Your character has been created.";
- else
- msg << "Your character couldn't be created, please try again.";
- }
- else
- {
- talkState[6] = true;
- talkState[9] = false;
- msg << "A player with that name already exists, please choose another name.";
- }
- }
- else if(checkText(text, "no") && talkState[12])
- {
- talkState[11] = true;
- talkState[12] = false;
- msg << "No? Then what would you like to be?";
- }
- else if(talkState[13])
- {
- for(TownMap::const_iterator it = Towns::getInstance()->getFirstTown(); it != Towns::getInstance()->getLastTown(); it++)
- {
- std::string tmp = asLowerCaseString(it->second->getName());
- if(checkText(text, tmp) && it != Towns::getInstance()->getLastTown() && it->second->getID() < 100)
- {
- msg << "So do you want to live in " << it->second->getName() << ".. are you sure?";
- managerNumber3 = it->first;
- talkState[13] = false;
- talkState[14] = true;
- }
- }
- if(msg.str().length() == 17)
- msg << "I don't understand where you would like to live... could you please repeat it?";
- }
- else if(checkText(text, "yes") && talkState[14])
- {
- if(!IOLoginData::getInstance()->playerExists(managerString, true))
- {
- talkState[1] = true;
- for(int8_t i = 2; i <= 14; i++)
- talkState[i] = false;
- if(IOLoginData::getInstance()->createCharacter(managerNumber, managerString, managerNumber2, (uint16_t)managerSex, managerNumber3))
- msg << "Your character has been created.";
- else
- msg << "Your character couldn't be created, please try again.";
- }
- else
- {
- talkState[6] = true;
- talkState[9] = false;
- msg << "A player with that name already exists, please choose another name.";
- }
- }
- else if(checkText(text, "no") && talkState[14])
- {
- talkState[13] = true;
- talkState[14] = false;
- msg << "So where do you want to live?";
- }
- else if(checkText(text, "recovery key") && talkState[1])
- {
- talkState[1] = false;
- talkState[10] = true;
- msg << "Would you like a recovery key?";
- }
- else if(checkText(text, "yes") && talkState[10])
- {
- if(account.recoveryKey != "0")
- msg << "Sorry, you already have a recovery key, for security reasons I may not give you a new one.";
- else
- {
- managerString = generateRecoveryKey(4, 4);
- IOLoginData::getInstance()->setRecoveryKey(managerNumber, managerString);
- msg << "Your recovery key is: " << managerString << ".";
- }
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- }
- else if(checkText(text, "no") && talkState[10])
- {
- msg << "Then not.";
- talkState[1] = true;
- for(int8_t i = 2; i <= 12; i++)
- talkState[i] = false;
- }
- else
- msg << "Please read the latest message that I have specified, I don't understand the current requested action.";
- break;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement