コード例 #1
0
    // Token: 0x06000260 RID: 608 RVA: 0x00013508 File Offset: 0x00011708
    private void SpawnLoot(Vector3 center)
    {
        ZDO zdo  = this.m_nview.GetZDO();
        int @int = zdo.GetInt("drops", 0);

        if (@int <= 0)
        {
            return;
        }
        List <KeyValuePair <GameObject, int> > list = new List <KeyValuePair <GameObject, int> >();

        for (int i = 0; i < @int; i++)
        {
            int        int2   = zdo.GetInt("drop_hash" + i, 0);
            int        int3   = zdo.GetInt("drop_amount" + i, 0);
            GameObject prefab = ZNetScene.instance.GetPrefab(int2);
            if (prefab == null)
            {
                ZLog.LogWarning("Ragdoll: Missing prefab:" + int2 + " when dropping loot");
            }
            else
            {
                list.Add(new KeyValuePair <GameObject, int>(prefab, int3));
            }
        }
        CharacterDrop.DropItems(list, center + Vector3.up * 0.75f, 0.5f);
    }
コード例 #2
0
    // Token: 0x0600108D RID: 4237 RVA: 0x00075570 File Offset: 0x00073770
    private void Load()
    {
        if (this.m_nview == null)
        {
            return;
        }
        DateTime now = DateTime.Now;

        ZLog.Log("Loading dungeon");
        ZDO zdo  = this.m_nview.GetZDO();
        int @int = zdo.GetInt("rooms", 0);

        for (int i = 0; i < @int; i++)
        {
            string             text       = "room" + i.ToString();
            int                int2       = zdo.GetInt(text, 0);
            Vector3            vec        = zdo.GetVec3(text + "_pos", Vector3.zero);
            Quaternion         quaternion = zdo.GetQuaternion(text + "_rot", Quaternion.identity);
            DungeonDB.RoomData room       = DungeonDB.instance.GetRoom(int2);
            if (room == null)
            {
                ZLog.LogWarning("Missing room:" + int2);
            }
            else
            {
                this.PlaceRoom(room, vec, quaternion, null, ZoneSystem.SpawnMode.Client);
            }
        }
        ZLog.Log("Dungeon loaded " + @int);
        ZLog.Log("Dungeon load time " + (DateTime.Now - now).TotalMilliseconds + " ms");
    }
コード例 #3
0
ファイル: ItemDrop.cs プロジェクト: ingvard/valheim-jserver
 // Token: 0x060006DC RID: 1756 RVA: 0x00038A80 File Offset: 0x00036C80
 public static void LoadFromZDO(ItemDrop.ItemData itemData, ZDO zdo)
 {
     itemData.m_durability  = zdo.GetFloat("durability", itemData.m_durability);
     itemData.m_stack       = zdo.GetInt("stack", itemData.m_stack);
     itemData.m_quality     = zdo.GetInt("quality", itemData.m_quality);
     itemData.m_variant     = zdo.GetInt("variant", itemData.m_variant);
     itemData.m_crafterID   = zdo.GetLong("crafterID", itemData.m_crafterID);
     itemData.m_crafterName = zdo.GetString("crafterName", itemData.m_crafterName);
 }
コード例 #4
0
    /// <summary>
    /// Gets "faction" from zdo.
    /// </summary>
    /// <remarks>Spawn That setting.</remarks>
    public static Character.Faction?GetFaction(this ZDO zdo)
    {
        var faction = zdo.GetInt(FactionHash, -1);

        if (faction < 0)
        {
            return(null);
        }

        return((Character.Faction)faction);
    }
コード例 #5
0
            public void unequip()
            {
                if (isFilled())
                {
                    GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(equippedItem);
                    if ((bool)((UnityEngine.Object)itemPrefab))
                    {
                        GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(itemPrefab, this.armorStand.m_dropSpawnPoint.position, this.armorStand.m_dropSpawnPoint.rotation);

                        var itemData = gameObject.GetComponent <ItemDrop>().m_itemData;
                        itemData.m_durability  = zdo.GetFloat($"{zdoVar}durability", itemData.m_durability);
                        itemData.m_stack       = zdo.GetInt($"{zdoVar}stack", itemData.m_stack);
                        itemData.m_quality     = zdo.GetInt($"{zdoVar}quality", itemData.m_quality);
                        itemData.m_variant     = zdo.GetInt($"{zdoVar}variant", itemData.m_variant);
                        itemData.m_crafterID   = zdo.GetLong($"{zdoVar}crafterID", itemData.m_crafterID);
                        itemData.m_crafterName = zdo.GetString($"{zdoVar}crafterName", itemData.m_crafterName);

                        this.armorStand.m_effects.Create(this.armorStand.m_dropSpawnPoint.position, Quaternion.identity, null, 1f);
                        zdo.Set(zdoVar, "");
                        zdo.Set(zdoVariantVar, 0);
                    }
                }
            }
コード例 #6
0
            private static bool DoCheck(Player player, ZDO zdo, string equipKey, string legendaryDataKey, ref ItemDrop.ItemData itemData)
            {
                var zdoLegendaryID = zdo.GetString(legendaryDataKey);

                if (string.IsNullOrEmpty(zdoLegendaryID))
                {
                    var hadItem = itemData != null;
                    if (hadItem)
                    {
                        ForceResetVisEquipment(player, itemData);
                    }
                    itemData = null;
                    return(hadItem);
                }

                var currentLegendaryID = itemData?.GetMagicItem()?.LegendaryID;

                if (currentLegendaryID == zdoLegendaryID)
                {
                    return(false);
                }

                var itemHash   = zdo.GetInt(equipKey);
                var itemPrefab = ObjectDB.instance.GetItemPrefab(itemHash);

                if (itemPrefab?.GetComponent <ItemDrop>()?.m_itemData is ItemDrop.ItemData targetItemData)
                {
                    itemData = new ExtendedItemData(targetItemData);
                    itemData.m_durability = float.PositiveInfinity;
                    var magicItemComponent = itemData.Extended().AddComponent <MagicItemComponent>();
                    var stubMagicItem      = new MagicItem {
                        Rarity = ItemRarity.Legendary, LegendaryID = zdoLegendaryID
                    };
                    magicItemComponent.SetMagicItem(stubMagicItem);

                    ForceResetVisEquipment(player, itemData);
                }

                return(false);
            }
コード例 #7
0
    // Token: 0x060009C5 RID: 2501 RVA: 0x00046F2C File Offset: 0x0004512C
    private void SyncParameters()
    {
        ZDO zdo = this.m_nview.GetZDO();

        if (!this.m_nview.IsOwner())
        {
            for (int i = 0; i < this.m_boolHashes.Length; i++)
            {
                int  num   = this.m_boolHashes[i];
                bool @bool = zdo.GetBool(438569 + num, this.m_boolDefaults[i]);
                this.m_animator.SetBool(num, @bool);
            }
            for (int j = 0; j < this.m_floatHashes.Length; j++)
            {
                int   num2   = this.m_floatHashes[j];
                float @float = zdo.GetFloat(438569 + num2, this.m_floatDefaults[j]);
                if (this.m_smoothCharacterSpeeds && (num2 == ZSyncAnimation.m_forwardSpeedID || num2 == ZSyncAnimation.m_sidewaySpeedID))
                {
                    this.m_animator.SetFloat(num2, @float, 0.2f, Time.fixedDeltaTime);
                }
                else
                {
                    this.m_animator.SetFloat(num2, @float);
                }
            }
            for (int k = 0; k < this.m_intHashes.Length; k++)
            {
                int num3 = this.m_intHashes[k];
                int @int = zdo.GetInt(438569 + num3, this.m_intDefaults[k]);
                this.m_animator.SetInteger(num3, @int);
            }
            float float2 = zdo.GetFloat(ZSyncAnimation.m_animSpeedID, 1f);
            this.m_animator.speed = float2;
            return;
        }
        zdo.Set(ZSyncAnimation.m_animSpeedID, this.m_animator.speed);
    }
コード例 #8
0
 // Token: 0x06000B93 RID: 2963 RVA: 0x000531AD File Offset: 0x000513AD
 private bool CheckBase(RandomEvent ev, ZDO zdo)
 {
     return(ev.m_nearBaseOnly && zdo.GetInt("baseValue", 0) >= 3);
 }
コード例 #9
0
    // Token: 0x060002C0 RID: 704 RVA: 0x00015C6C File Offset: 0x00013E6C
    private void UpdateEquipmentVisuals()
    {
        int hash             = 0;
        int rightHandEquiped = 0;
        int chestEquiped     = 0;
        int legEquiped       = 0;
        int hash2            = 0;
        int beardEquiped     = 0;
        int num            = 0;
        int hash3          = 0;
        int utilityEquiped = 0;
        int leftItem       = 0;
        int rightItem      = 0;
        int variant        = this.m_shoulderItemVariant;
        int variant2       = this.m_leftItemVariant;
        int leftVariant    = this.m_leftBackItemVariant;
        ZDO zdo            = this.m_nview.GetZDO();

        if (zdo != null)
        {
            hash             = zdo.GetInt("LeftItem", 0);
            rightHandEquiped = zdo.GetInt("RightItem", 0);
            chestEquiped     = zdo.GetInt("ChestItem", 0);
            legEquiped       = zdo.GetInt("LegItem", 0);
            hash2            = zdo.GetInt("HelmetItem", 0);
            hash3            = zdo.GetInt("ShoulderItem", 0);
            utilityEquiped   = zdo.GetInt("UtilityItem", 0);
            if (this.m_isPlayer)
            {
                beardEquiped = zdo.GetInt("BeardItem", 0);
                num          = zdo.GetInt("HairItem", 0);
                leftItem     = zdo.GetInt("LeftBackItem", 0);
                rightItem    = zdo.GetInt("RightBackItem", 0);
                variant      = zdo.GetInt("ShoulderItemVariant", 0);
                variant2     = zdo.GetInt("LeftItemVariant", 0);
                leftVariant  = zdo.GetInt("LeftBackItemVariant", 0);
            }
        }
        else
        {
            if (!string.IsNullOrEmpty(this.m_leftItem))
            {
                hash = this.m_leftItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_rightItem))
            {
                rightHandEquiped = this.m_rightItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_chestItem))
            {
                chestEquiped = this.m_chestItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_legItem))
            {
                legEquiped = this.m_legItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_helmetItem))
            {
                hash2 = this.m_helmetItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_shoulderItem))
            {
                hash3 = this.m_shoulderItem.GetStableHashCode();
            }
            if (!string.IsNullOrEmpty(this.m_utilityItem))
            {
                utilityEquiped = this.m_utilityItem.GetStableHashCode();
            }
            if (this.m_isPlayer)
            {
                if (!string.IsNullOrEmpty(this.m_beardItem))
                {
                    beardEquiped = this.m_beardItem.GetStableHashCode();
                }
                if (!string.IsNullOrEmpty(this.m_hairItem))
                {
                    num = this.m_hairItem.GetStableHashCode();
                }
                if (!string.IsNullOrEmpty(this.m_leftBackItem))
                {
                    leftItem = this.m_leftBackItem.GetStableHashCode();
                }
                if (!string.IsNullOrEmpty(this.m_rightBackItem))
                {
                    rightItem = this.m_rightBackItem.GetStableHashCode();
                }
            }
        }
        bool flag = false;

        flag = (this.SetRightHandEquiped(rightHandEquiped) || flag);
        flag = (this.SetLeftHandEquiped(hash, variant2) || flag);
        flag = (this.SetChestEquiped(chestEquiped) || flag);
        flag = (this.SetLegEquiped(legEquiped) || flag);
        flag = (this.SetHelmetEquiped(hash2, num) || flag);
        flag = (this.SetShoulderEquiped(hash3, variant) || flag);
        flag = (this.SetUtilityEquiped(utilityEquiped) || flag);
        if (this.m_isPlayer)
        {
            flag = (this.SetBeardEquiped(beardEquiped) || flag);
            flag = (this.SetBackEquiped(leftItem, rightItem, leftVariant) || flag);
            if (this.m_helmetHideHair)
            {
                num = 0;
            }
            flag = (this.SetHairEquiped(num) || flag);
        }
        if (flag)
        {
            this.UpdateLodgroup();
        }
    }