537 {
538 string characterType =
g_Game.CreateRandomPlayer();
539 bool generateRandomEquip = false;
540
541
543 {
544 if (
g_Game.ListAvailableCharacters().Find(
g_Game.GetMenuDefaultCharacterData().GetCharacterType()) > -1)
545 characterType =
g_Game.GetMenuDefaultCharacterData().GetCharacterType();
546 }
547 else
548 {
549 generateRandomEquip = true;
550 }
551
552 if (PlayerSpawnHandler.IsInitialized())
553 {
554 PlayerSpawnPreset presetData = PlayerSpawnHandler.GetRandomCharacterPreset();
555 if (presetData && presetData.
IsValid())
556 {
558 if (presetCharType ==
string.
Empty)
559 presetCharType = characterType;
561 {
562 PlayerSpawnHandler.ProcessEquipmentData(
m_player,presetData);
564 }
565 else
566 {
567 ErrorEx(
"Failed to create character from type: " + presetCharType +
", using default spawning method");
568 }
569 }
570 else
571 {
572 ErrorEx(
"Failed to load PlayerSpawnPreset data properly, using default spawning method");
573 }
574 }
575
577 {
578 if (generateRandomEquip)
579 g_Game.GetMenuDefaultCharacterData().GenerateRandomEquip();
581 }
582
584 }
void EquipCharacter(MenuDefaultCharacterData char_data)
Spawns character equip from received data. Checks validity against config, randomizes if invalid valu...
bool ProcessLoginData(ParamsReadContext ctx)
returns whether received data is valid, ctx can be filled on client in StoreLoginData()
PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
string GetRandomCharacterType()