550 {
551 string characterType =
g_Game.CreateRandomPlayer();
552 bool generateRandomEquip = false;
553
554
556 {
557 if (
g_Game.ListAvailableCharacters().Find(
g_Game.GetMenuDefaultCharacterData().GetCharacterType()) > -1)
558 characterType =
g_Game.GetMenuDefaultCharacterData().GetCharacterType();
559 }
560 else
561 {
562 generateRandomEquip = true;
563 }
564
565 if (PlayerSpawnHandler.IsInitialized())
566 {
567 PlayerSpawnPreset presetData = PlayerSpawnHandler.GetRandomCharacterPreset();
568 if (presetData && presetData.
IsValid())
569 {
571 if (presetCharType ==
string.
Empty)
572 presetCharType = characterType;
574 {
575 PlayerSpawnHandler.ProcessEquipmentData(
m_player,presetData);
577 }
578 else
579 {
580 ErrorEx(
"Failed to create character from type: " + presetCharType +
", using default spawning method");
581 }
582 }
583 else
584 {
585 ErrorEx(
"Failed to load PlayerSpawnPreset data properly, using default spawning method");
586 }
587 }
588
590 {
591 if (generateRandomEquip)
592 g_Game.GetMenuDefaultCharacterData().GenerateRandomEquip();
594 }
595
597 }
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()