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;