diff --git a/Assets/Ino_nerdnavis.txt b/Assets/Ino_nerdnavis.txt index 834726de6..5f6012ea9 100644 --- a/Assets/Ino_nerdnavis.txt +++ b/Assets/Ino_nerdnavis.txt @@ -57,8 +57,10 @@ messageinfo 엄청 느린 버그 - 몬스터 패트롤 거리 조절 - 점수와 골드 (기본 1점, 10골드만 주는 중(밸런스 필요)) - 장비 스탯 추가 구현 - 일꾼 이속, RND_SKILL -몬스터 골드, 아이템 드랍 +일꾼 추가 + +몬스터 아이템 드랍 +몬스터 경험치 \ No newline at end of file diff --git a/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/JumpAttack2.FBX.meta b/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/JumpAttack2.FBX.meta index be43a25ac..39085d08a 100644 --- a/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/JumpAttack2.FBX.meta +++ b/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/JumpAttack2.FBX.meta @@ -766,13 +766,6 @@ ModelImporter: floatParameter: 0 intParameter: 0 messageOptions: 0 - - time: 0.8657505 - functionName: SkillEvent - data: - objectReferenceParameter: {instanceID: 0} - floatParameter: 0 - intParameter: 1 - messageOptions: 0 transformMask: [] maskType: 3 maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2} @@ -1531,7 +1524,8 @@ ModelImporter: hasTranslationDoF: 0 hasExtraRoot: 0 skeletonHasParents: 0 - lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, type: 3} + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, + type: 3} autoGenerateAvatarMappingIfUnspecified: 1 animationType: 3 humanoidOversampling: 1 diff --git a/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/ShieldAttack.fbx.meta b/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/ShieldAttack.fbx.meta index 303a44895..698207f21 100644 --- a/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/ShieldAttack.fbx.meta +++ b/Assets/ResWork/Suriyun/Animations_ExplosiveLLC/ShieldAttack.fbx.meta @@ -851,13 +851,6 @@ ModelImporter: floatParameter: 0 intParameter: 0 messageOptions: 0 - - time: 0.82727265 - functionName: SkillEvent - data: - objectReferenceParameter: {instanceID: 0} - floatParameter: 0 - intParameter: 1 - messageOptions: 0 transformMask: [] maskType: 3 maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2} @@ -1616,7 +1609,8 @@ ModelImporter: hasTranslationDoF: 0 hasExtraRoot: 0 skeletonHasParents: 0 - lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, type: 3} + lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, + type: 3} autoGenerateAvatarMappingIfUnspecified: 1 animationType: 3 humanoidOversampling: 1 diff --git a/Assets/Script/Character/Actor.cs b/Assets/Script/Character/Actor.cs index ea9d1fb7d..dea8af30a 100644 --- a/Assets/Script/Character/Actor.cs +++ b/Assets/Script/Character/Actor.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.AI; +using UnityEngine.Rendering; using UnityEngine.SceneManagement; public class Actor : MyCoroutine @@ -797,6 +798,7 @@ public class Actor : MyCoroutine #region 스킬 동작 IEnumerator Co_JumpAttack(float heightPos_y, float duration) { + OptionInfo.Ins.Set_PCMove(this, false); var startPos = Get_position(); // 현재 위치 var targetPos = Get_TeleportPostion(m_Target); @@ -826,7 +828,7 @@ public class Actor : MyCoroutine m_bImmortal = true; Model_OnOff(false); Weapon_OnOff(false); - OptionInfo.Ins.PCMove = false; + OptionInfo.Ins.Set_PCMove(this, false); yield return new WaitForSeconds(invisibleTime); @@ -834,7 +836,7 @@ public class Actor : MyCoroutine m_bImmortal = false; Model_OnOff(true); Weapon_OnOff(true); - OptionInfo.Ins.PCMove = true; + OptionInfo.Ins.Set_PCMove(this, true); actVisible?.Invoke(); } @@ -2128,22 +2130,12 @@ public class Actor : MyCoroutine } } } - /// - /// 0 None, 1 스킬 사용 시 이동 금지 - /// public virtual void SkillEvent(int a) { #if UNITY_EDITOR if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 1, a); #endif Shoot_Skill(); - if (a == 0 && m_NavMeshAgent.isOnNavMesh) // 움직임 가능 - m_NavMeshAgent.isStopped = false; - else if (a == 1) - { - IsStop = true; - m_NavMeshAgent.ResetPath(); - } } public virtual void FootR(string s) { diff --git a/Assets/Script/Character/Mob/MobActor.cs b/Assets/Script/Character/Mob/MobActor.cs index aa3ca5bb9..1cd9b7929 100644 --- a/Assets/Script/Character/Mob/MobActor.cs +++ b/Assets/Script/Character/Mob/MobActor.cs @@ -394,11 +394,14 @@ public class MobActor : Actor if (n_Reincarnation <= 0) { DropItemInfo.Ins.Drop_DropItem(2, m_MonsterAppearData.n_DropGold, Get_position()); + var pcstat = MyValue.MyPC.Get_StatInfo(); + var exp = m_MonsterAppearData.n_DropExp; + exp += (uint)(exp * (pcstat.Get_Stat(eStat.EXP_Multiplier) + pcstat.Get_Stat(eStat.Battle_EXP_Multiplier))); + sdata.PC.Add_Exp(exp); sdata.Add_CollectionMobKill(m_MonsterTableData.n_MonsterID); } base.Set_Die(); m_DieTime = m_MonsterAppearData.f_SpawnerDelay; - //m_MonsterAppearData.Cal_DropItems(this); if (IsSubRole(eSubRol.Boss)) { diff --git a/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs b/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs index 027dca0bb..0691d133f 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_DeathBlade.cs @@ -45,12 +45,12 @@ public class Skill_DeathBlade : ProjectileBase IEnumerator Co_JoyStick(Actor hitter) { - OptionInfo.Ins.PCMove = false; + OptionInfo.Ins.Set_PCMove(hitter, false); yield return new WaitForSeconds(0.2f); go_nextattack.SetActive(true); go_nextattack.transform.position = hitter.Get_Center_position(); yield return new WaitForSeconds(0.3f); - OptionInfo.Ins.PCMove = true; + OptionInfo.Ins.Set_PCMove(hitter, true); yield return new WaitForSeconds(0.5f); Off(true); } diff --git a/Assets/Script/Character/Projectile/Skill/Skill_FatalBlow.cs b/Assets/Script/Character/Projectile/Skill/Skill_FatalBlow.cs index ec4a7b304..398e21ee6 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_FatalBlow.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_FatalBlow.cs @@ -23,6 +23,7 @@ public class Skill_FatalBlow : ProjectileBase yield return null; yield return null; m_boxcollider.enabled = false; + OptionInfo.Ins.Set_PCMove(m_ProjecTileData.shooter, true); yield return new WaitForSeconds(1f); Off(true); } diff --git a/Assets/Script/Character/Projectile/Skill/Skill_JumpAttack.cs b/Assets/Script/Character/Projectile/Skill/Skill_JumpAttack.cs index f683c49a1..8f9d9c35e 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_JumpAttack.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_JumpAttack.cs @@ -1,5 +1,6 @@ using System.Collections; using UnityEngine; +using UnityEngine.Rendering; public class Skill_JumpAttack : ProjectileBase { @@ -24,15 +25,16 @@ public class Skill_JumpAttack : ProjectileBase Set_ReduceCoolTime_byStep(2); _data.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Stun : eSkillExtraType.None; - StartCoroutine(Co_Update()); + StartCoroutine(Co_Update(_data.shooter)); } - IEnumerator Co_Update() + IEnumerator Co_Update(Actor hitter) { m_boxcollider.enabled = true; yield return null; yield return null; m_boxcollider.enabled = false; + OptionInfo.Ins.Set_PCMove(hitter, true); yield return new WaitForSeconds(4f); Off(true); } diff --git a/Assets/Script/Character/Projectile/Skill/Skill_PhantomFrenzy.cs b/Assets/Script/Character/Projectile/Skill/Skill_PhantomFrenzy.cs index e99ba6711..7837f64f5 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_PhantomFrenzy.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_PhantomFrenzy.cs @@ -22,9 +22,8 @@ public class Skill_PhantomFrenzy : ProjectileBase // 아래는 순간이동 후 공격인데, 이펙트와 애님이 마땅한 게 없음(트레일) IEnumerator Co_Update() { - OptionInfo.Ins.PCMove = false; - var shooter = m_ProjecTileData.shooter; + OptionInfo.Ins.Set_PCMove(shooter, false); ObscuredInt attackTimes = AttackCount; // 공격 횟수 설정 attackTimes.RandomizeCryptoKey(); Actor target = m_ProjecTileData.target; @@ -55,7 +54,7 @@ public class Skill_PhantomFrenzy : ProjectileBase } // 이동 활성화 및 대기 상태로 전환 - OptionInfo.Ins.PCMove = true; + OptionInfo.Ins.Set_PCMove(shooter, true); shooter.Play_Idle(); } diff --git a/Assets/Script/Character/Projectile/Skill/Skill_ShadowSlash.cs b/Assets/Script/Character/Projectile/Skill/Skill_ShadowSlash.cs index 941092ac4..7b9bafc0e 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_ShadowSlash.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_ShadowSlash.cs @@ -8,14 +8,14 @@ public class Skill_ShadowSlash : ProjectileBase { go_effect.gameObject.SetActive(false); base.Set(_data); - OptionInfo.Ins.PCMove = false; + OptionInfo.Ins.Set_PCMove(_data.shooter, false); _data.shooter.Set_CurAnim(eAnim.Skill); _data.shooter.Jump(2.1f, 1f, 5f, 2f, () => { go_effect.gameObject.SetActive(true); go_effect.Set(_data); go_effect.transform.position = _data.target.Get_Center_position() + Vector3.up; - OptionInfo.Ins.PCMove = true; + OptionInfo.Ins.Set_PCMove(_data.shooter, true); _data.shooter.Play_Idle(); }); diff --git a/Assets/Script/Info/OptionInfo.cs b/Assets/Script/Info/OptionInfo.cs index 3f062110e..7a89e5189 100644 --- a/Assets/Script/Info/OptionInfo.cs +++ b/Assets/Script/Info/OptionInfo.cs @@ -28,7 +28,7 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd public TextMeshProUGUI tmp_bgm, tmp_sfx; public DelAccountUI m_DelAccountUI; public SleepMode m_SleepMode; - public bool PCMove = true; + bool PCMove = true; List list_CheckShadow = new List(); int SaveTime = 0; @@ -155,6 +155,13 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd Set_UI(); } + public void Set_PCMove(Actor actor, bool status) + { + if (actor.IsRole(eRole.PC) && !actor.IsEnemy()) + PCMove = status; + } + public bool Get_PCMove() { return PCMove; } + public void Add_CheckShadow(CheckShadow _cs) { list_CheckShadow.RemoveAll(r => r == null); diff --git a/Assets/Script/Server/ServerClass.cs b/Assets/Script/Server/ServerClass.cs index ded828d36..4673d9994 100644 --- a/Assets/Script/Server/ServerClass.cs +++ b/Assets/Script/Server/ServerClass.cs @@ -2670,11 +2670,15 @@ public class SD_PC Lv.RandomizeCryptoKey(); // TODO 정인호 : 유저 레벨업 함 } + + if (MyInfoUI.isIns) MyInfoUI.Ins.Set_Exp(); } public float Get_ExpSliderValue() { - return DSUtil.Get_SliderValue((float)(Exp / Get_Exp(Lv + 1))); + float prevLevelExp = Get_Exp(Lv); + float nextLevelExp = Get_Exp(Lv + 1); + return (Exp - prevLevelExp) / (nextLevelExp - prevLevelExp); } public void Reset_Stat() diff --git a/Assets/Script/Table/IngameStage/table_monsterappear.cs b/Assets/Script/Table/IngameStage/table_monsterappear.cs index dc979d092..9b53a155f 100644 --- a/Assets/Script/Table/IngameStage/table_monsterappear.cs +++ b/Assets/Script/Table/IngameStage/table_monsterappear.cs @@ -73,8 +73,8 @@ public class MonsterAppearData : TableDataBase set { _PatrolRange = value; _PatrolRange.RandomizeCryptoKey(); } } // 몬스터들의 순찰 범위 - ObscuredInt _DropExp; - public int n_DropExp + ObscuredUInt _DropExp; + public uint n_DropExp { get { return _DropExp; } set { _DropExp = value; _DropExp.RandomizeCryptoKey(); } diff --git a/Assets/Script/UI/Stage/MyInfoUI.cs b/Assets/Script/UI/Stage/MyInfoUI.cs index 428095526..0b1aa912b 100644 --- a/Assets/Script/UI/Stage/MyInfoUI.cs +++ b/Assets/Script/UI/Stage/MyInfoUI.cs @@ -31,15 +31,20 @@ public class MyInfoUI : MonoBehaviourSingletonuScrollViewArrMgr labels[0].text = ServerInfo.Ins.UserName; labels[1].text = classData.Get_JobName(); - slider_exp.value = sdata.PC.Get_ExpSliderValue(); - texts[2].text = DSUtil.Format("Lv.{0}", sdata.PC.Lv); - texts[3].text = DSUtil.Format("{0}%", DSUtil.GetCommaText_N2(slider_exp.value * 100f)); + Set_Exp(); Set_MainStats(); Set_ScrollView(1, list_buffindex, false); m_IngameBuffDebuffBase.AllOff(); } + public void Set_Exp() + { + var sdata = ServerInfo.Ins.m_ServerData; + slider_exp.value = sdata.PC.Get_ExpSliderValue(); + texts[2].text = DSUtil.Format("Lv.{0}", sdata.PC.Lv); + texts[3].text = DSUtil.Format("{0}%", DSUtil.GetCommaText_N2(slider_exp.value * 100f)); + } public void Set_HP(double curHP, double maxHP) { slider_hp.value = DSUtil.Get_SliderValue((float)(curHP / maxHP)); diff --git a/Assets/ThirdParty/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs b/Assets/ThirdParty/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs index 962a6e64b..16f8cceb4 100644 --- a/Assets/ThirdParty/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs +++ b/Assets/ThirdParty/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs @@ -31,7 +31,7 @@ public class FloatingJoystick : Joystick // 입력 방향을 카메라 방향에 맞춰 변환 Vector3 direction = cameraForward.normalized * Vertical + cameraRight.normalized * Horizontal; - if (OptionInfo.Ins.PCMove && direction != Vector3.zero) + if (OptionInfo.Ins.Get_PCMove() && direction != Vector3.zero) { MyValue.m_RealCamera.Set_DistanceUp(Vertical < 0); // 아래로 움직일 경우 MyValue.m_RealCamera.m_BackMove = Vertical < 0;