몬스터 경험치 지급, 경험치 공식 에러 수정, 스킬 사용 중 pc 조이스틱 관련 로직 수정
This commit is contained in:
parent
74da53a303
commit
5ae5724dd5
|
|
@ -57,8 +57,10 @@ messageinfo 엄청 느린 버그
|
||||||
- 몬스터 패트롤 거리 조절
|
- 몬스터 패트롤 거리 조절
|
||||||
- 점수와 골드 (기본 1점, 10골드만 주는 중(밸런스 필요))
|
- 점수와 골드 (기본 1점, 10골드만 주는 중(밸런스 필요))
|
||||||
|
|
||||||
|
|
||||||
장비 스탯 추가 구현
|
장비 스탯 추가 구현
|
||||||
- 일꾼 이속, RND_SKILL
|
- 일꾼 이속, RND_SKILL
|
||||||
몬스터 골드, 아이템 드랍
|
|
||||||
|
|
||||||
|
일꾼 추가
|
||||||
|
|
||||||
|
몬스터 아이템 드랍
|
||||||
|
몬스터 경험치
|
||||||
|
|
@ -766,13 +766,6 @@ ModelImporter:
|
||||||
floatParameter: 0
|
floatParameter: 0
|
||||||
intParameter: 0
|
intParameter: 0
|
||||||
messageOptions: 0
|
messageOptions: 0
|
||||||
- time: 0.8657505
|
|
||||||
functionName: SkillEvent
|
|
||||||
data:
|
|
||||||
objectReferenceParameter: {instanceID: 0}
|
|
||||||
floatParameter: 0
|
|
||||||
intParameter: 1
|
|
||||||
messageOptions: 0
|
|
||||||
transformMask: []
|
transformMask: []
|
||||||
maskType: 3
|
maskType: 3
|
||||||
maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2}
|
maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2}
|
||||||
|
|
@ -1531,7 +1524,8 @@ ModelImporter:
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 0
|
skeletonHasParents: 0
|
||||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, type: 3}
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd,
|
||||||
|
type: 3}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
animationType: 3
|
animationType: 3
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
|
|
|
||||||
|
|
@ -851,13 +851,6 @@ ModelImporter:
|
||||||
floatParameter: 0
|
floatParameter: 0
|
||||||
intParameter: 0
|
intParameter: 0
|
||||||
messageOptions: 0
|
messageOptions: 0
|
||||||
- time: 0.82727265
|
|
||||||
functionName: SkillEvent
|
|
||||||
data:
|
|
||||||
objectReferenceParameter: {instanceID: 0}
|
|
||||||
floatParameter: 0
|
|
||||||
intParameter: 1
|
|
||||||
messageOptions: 0
|
|
||||||
transformMask: []
|
transformMask: []
|
||||||
maskType: 3
|
maskType: 3
|
||||||
maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2}
|
maskSource: {fileID: 101100000, guid: 4ebc95c8618479f4d8251c7dafa10029, type: 2}
|
||||||
|
|
@ -1616,7 +1609,8 @@ ModelImporter:
|
||||||
hasTranslationDoF: 0
|
hasTranslationDoF: 0
|
||||||
hasExtraRoot: 0
|
hasExtraRoot: 0
|
||||||
skeletonHasParents: 0
|
skeletonHasParents: 0
|
||||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd, type: 3}
|
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: e57e9b8cd5e115f4f8d7736473e5c7fd,
|
||||||
|
type: 3}
|
||||||
autoGenerateAvatarMappingIfUnspecified: 1
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
animationType: 3
|
animationType: 3
|
||||||
humanoidOversampling: 1
|
humanoidOversampling: 1
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
using UnityEngine.SceneManagement;
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
public class Actor : MyCoroutine
|
public class Actor : MyCoroutine
|
||||||
|
|
@ -797,6 +798,7 @@ public class Actor : MyCoroutine
|
||||||
#region 스킬 동작
|
#region 스킬 동작
|
||||||
IEnumerator Co_JumpAttack(float heightPos_y, float duration)
|
IEnumerator Co_JumpAttack(float heightPos_y, float duration)
|
||||||
{
|
{
|
||||||
|
OptionInfo.Ins.Set_PCMove(this, false);
|
||||||
var startPos = Get_position(); // 현재 위치
|
var startPos = Get_position(); // 현재 위치
|
||||||
var targetPos = Get_TeleportPostion(m_Target);
|
var targetPos = Get_TeleportPostion(m_Target);
|
||||||
|
|
||||||
|
|
@ -826,7 +828,7 @@ public class Actor : MyCoroutine
|
||||||
m_bImmortal = true;
|
m_bImmortal = true;
|
||||||
Model_OnOff(false);
|
Model_OnOff(false);
|
||||||
Weapon_OnOff(false);
|
Weapon_OnOff(false);
|
||||||
OptionInfo.Ins.PCMove = false;
|
OptionInfo.Ins.Set_PCMove(this, false);
|
||||||
|
|
||||||
yield return new WaitForSeconds(invisibleTime);
|
yield return new WaitForSeconds(invisibleTime);
|
||||||
|
|
||||||
|
|
@ -834,7 +836,7 @@ public class Actor : MyCoroutine
|
||||||
m_bImmortal = false;
|
m_bImmortal = false;
|
||||||
Model_OnOff(true);
|
Model_OnOff(true);
|
||||||
Weapon_OnOff(true);
|
Weapon_OnOff(true);
|
||||||
OptionInfo.Ins.PCMove = true;
|
OptionInfo.Ins.Set_PCMove(this, true);
|
||||||
|
|
||||||
actVisible?.Invoke();
|
actVisible?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
@ -2128,22 +2130,12 @@ public class Actor : MyCoroutine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// 0 None, 1 스킬 사용 시 이동 금지
|
|
||||||
/// </summary>
|
|
||||||
public virtual void SkillEvent(int a)
|
public virtual void SkillEvent(int a)
|
||||||
{
|
{
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 1, a);
|
if (SettingsMain.Ins) SettingsMain.Ins.Add_Event(System.Reflection.MethodBase.GetCurrentMethod().Name, 1, a);
|
||||||
#endif
|
#endif
|
||||||
Shoot_Skill();
|
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)
|
public virtual void FootR(string s)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -394,11 +394,14 @@ public class MobActor : Actor
|
||||||
if (n_Reincarnation <= 0)
|
if (n_Reincarnation <= 0)
|
||||||
{
|
{
|
||||||
DropItemInfo.Ins.Drop_DropItem(2, m_MonsterAppearData.n_DropGold, Get_position());
|
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);
|
sdata.Add_CollectionMobKill(m_MonsterTableData.n_MonsterID);
|
||||||
}
|
}
|
||||||
base.Set_Die();
|
base.Set_Die();
|
||||||
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
|
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
|
||||||
//m_MonsterAppearData.Cal_DropItems(this);
|
|
||||||
|
|
||||||
if (IsSubRole(eSubRol.Boss))
|
if (IsSubRole(eSubRol.Boss))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,12 +45,12 @@ public class Skill_DeathBlade : ProjectileBase
|
||||||
|
|
||||||
IEnumerator Co_JoyStick(Actor hitter)
|
IEnumerator Co_JoyStick(Actor hitter)
|
||||||
{
|
{
|
||||||
OptionInfo.Ins.PCMove = false;
|
OptionInfo.Ins.Set_PCMove(hitter, false);
|
||||||
yield return new WaitForSeconds(0.2f);
|
yield return new WaitForSeconds(0.2f);
|
||||||
go_nextattack.SetActive(true);
|
go_nextattack.SetActive(true);
|
||||||
go_nextattack.transform.position = hitter.Get_Center_position();
|
go_nextattack.transform.position = hitter.Get_Center_position();
|
||||||
yield return new WaitForSeconds(0.3f);
|
yield return new WaitForSeconds(0.3f);
|
||||||
OptionInfo.Ins.PCMove = true;
|
OptionInfo.Ins.Set_PCMove(hitter, true);
|
||||||
yield return new WaitForSeconds(0.5f);
|
yield return new WaitForSeconds(0.5f);
|
||||||
Off(true);
|
Off(true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ public class Skill_FatalBlow : ProjectileBase
|
||||||
yield return null;
|
yield return null;
|
||||||
yield return null;
|
yield return null;
|
||||||
m_boxcollider.enabled = false;
|
m_boxcollider.enabled = false;
|
||||||
|
OptionInfo.Ins.Set_PCMove(m_ProjecTileData.shooter, true);
|
||||||
yield return new WaitForSeconds(1f);
|
yield return new WaitForSeconds(1f);
|
||||||
Off(true);
|
Off(true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
|
||||||
public class Skill_JumpAttack : ProjectileBase
|
public class Skill_JumpAttack : ProjectileBase
|
||||||
{
|
{
|
||||||
|
|
@ -24,15 +25,16 @@ public class Skill_JumpAttack : ProjectileBase
|
||||||
Set_ReduceCoolTime_byStep(2);
|
Set_ReduceCoolTime_byStep(2);
|
||||||
_data.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Stun : eSkillExtraType.None;
|
_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;
|
m_boxcollider.enabled = true;
|
||||||
yield return null;
|
yield return null;
|
||||||
yield return null;
|
yield return null;
|
||||||
m_boxcollider.enabled = false;
|
m_boxcollider.enabled = false;
|
||||||
|
OptionInfo.Ins.Set_PCMove(hitter, true);
|
||||||
yield return new WaitForSeconds(4f);
|
yield return new WaitForSeconds(4f);
|
||||||
Off(true);
|
Off(true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,8 @@ public class Skill_PhantomFrenzy : ProjectileBase
|
||||||
// 아래는 순간이동 후 공격인데, 이펙트와 애님이 마땅한 게 없음(트레일)
|
// 아래는 순간이동 후 공격인데, 이펙트와 애님이 마땅한 게 없음(트레일)
|
||||||
IEnumerator Co_Update()
|
IEnumerator Co_Update()
|
||||||
{
|
{
|
||||||
OptionInfo.Ins.PCMove = false;
|
|
||||||
|
|
||||||
var shooter = m_ProjecTileData.shooter;
|
var shooter = m_ProjecTileData.shooter;
|
||||||
|
OptionInfo.Ins.Set_PCMove(shooter, false);
|
||||||
ObscuredInt attackTimes = AttackCount; // 공격 횟수 설정
|
ObscuredInt attackTimes = AttackCount; // 공격 횟수 설정
|
||||||
attackTimes.RandomizeCryptoKey();
|
attackTimes.RandomizeCryptoKey();
|
||||||
Actor target = m_ProjecTileData.target;
|
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();
|
shooter.Play_Idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,14 @@ public class Skill_ShadowSlash : ProjectileBase
|
||||||
{
|
{
|
||||||
go_effect.gameObject.SetActive(false);
|
go_effect.gameObject.SetActive(false);
|
||||||
base.Set(_data);
|
base.Set(_data);
|
||||||
OptionInfo.Ins.PCMove = false;
|
OptionInfo.Ins.Set_PCMove(_data.shooter, false);
|
||||||
_data.shooter.Set_CurAnim(eAnim.Skill);
|
_data.shooter.Set_CurAnim(eAnim.Skill);
|
||||||
_data.shooter.Jump(2.1f, 1f, 5f, 2f, () =>
|
_data.shooter.Jump(2.1f, 1f, 5f, 2f, () =>
|
||||||
{
|
{
|
||||||
go_effect.gameObject.SetActive(true);
|
go_effect.gameObject.SetActive(true);
|
||||||
go_effect.Set(_data);
|
go_effect.Set(_data);
|
||||||
go_effect.transform.position = _data.target.Get_Center_position() + Vector3.up;
|
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();
|
_data.shooter.Play_Idle();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd<OptionInfo>
|
||||||
public TextMeshProUGUI tmp_bgm, tmp_sfx;
|
public TextMeshProUGUI tmp_bgm, tmp_sfx;
|
||||||
public DelAccountUI m_DelAccountUI;
|
public DelAccountUI m_DelAccountUI;
|
||||||
public SleepMode m_SleepMode;
|
public SleepMode m_SleepMode;
|
||||||
public bool PCMove = true;
|
bool PCMove = true;
|
||||||
|
|
||||||
List<CheckShadow> list_CheckShadow = new List<CheckShadow>();
|
List<CheckShadow> list_CheckShadow = new List<CheckShadow>();
|
||||||
int SaveTime = 0;
|
int SaveTime = 0;
|
||||||
|
|
@ -155,6 +155,13 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd<OptionInfo>
|
||||||
Set_UI();
|
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)
|
public void Add_CheckShadow(CheckShadow _cs)
|
||||||
{
|
{
|
||||||
list_CheckShadow.RemoveAll(r => r == null);
|
list_CheckShadow.RemoveAll(r => r == null);
|
||||||
|
|
|
||||||
|
|
@ -2670,11 +2670,15 @@ public class SD_PC
|
||||||
Lv.RandomizeCryptoKey();
|
Lv.RandomizeCryptoKey();
|
||||||
// TODO 정인호 : 유저 레벨업 함
|
// TODO 정인호 : 유저 레벨업 함
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (MyInfoUI.isIns) MyInfoUI.Ins.Set_Exp();
|
||||||
}
|
}
|
||||||
|
|
||||||
public float Get_ExpSliderValue()
|
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()
|
public void Reset_Stat()
|
||||||
|
|
|
||||||
|
|
@ -73,8 +73,8 @@ public class MonsterAppearData : TableDataBase
|
||||||
set { _PatrolRange = value; _PatrolRange.RandomizeCryptoKey(); }
|
set { _PatrolRange = value; _PatrolRange.RandomizeCryptoKey(); }
|
||||||
} // 몬스터들의 순찰 범위
|
} // 몬스터들의 순찰 범위
|
||||||
|
|
||||||
ObscuredInt _DropExp;
|
ObscuredUInt _DropExp;
|
||||||
public int n_DropExp
|
public uint n_DropExp
|
||||||
{
|
{
|
||||||
get { return _DropExp; }
|
get { return _DropExp; }
|
||||||
set { _DropExp = value; _DropExp.RandomizeCryptoKey(); }
|
set { _DropExp = value; _DropExp.RandomizeCryptoKey(); }
|
||||||
|
|
|
||||||
|
|
@ -31,15 +31,20 @@ public class MyInfoUI : MonoBehaviourSingletonuScrollViewArrMgr<MyInfoUI>
|
||||||
labels[0].text = ServerInfo.Ins.UserName;
|
labels[0].text = ServerInfo.Ins.UserName;
|
||||||
labels[1].text = classData.Get_JobName();
|
labels[1].text = classData.Get_JobName();
|
||||||
|
|
||||||
slider_exp.value = sdata.PC.Get_ExpSliderValue();
|
Set_Exp();
|
||||||
texts[2].text = DSUtil.Format("Lv.{0}", sdata.PC.Lv);
|
|
||||||
texts[3].text = DSUtil.Format("{0}%", DSUtil.GetCommaText_N2(slider_exp.value * 100f));
|
|
||||||
|
|
||||||
Set_MainStats();
|
Set_MainStats();
|
||||||
Set_ScrollView(1, list_buffindex, false);
|
Set_ScrollView(1, list_buffindex, false);
|
||||||
m_IngameBuffDebuffBase.AllOff();
|
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)
|
public void Set_HP(double curHP, double maxHP)
|
||||||
{
|
{
|
||||||
slider_hp.value = DSUtil.Get_SliderValue((float)(curHP / maxHP));
|
slider_hp.value = DSUtil.Get_SliderValue((float)(curHP / maxHP));
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public class FloatingJoystick : Joystick
|
||||||
// 입력 방향을 카메라 방향에 맞춰 변환
|
// 입력 방향을 카메라 방향에 맞춰 변환
|
||||||
Vector3 direction = cameraForward.normalized * Vertical + cameraRight.normalized * Horizontal;
|
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.Set_DistanceUp(Vertical < 0); // 아래로 움직일 경우
|
||||||
MyValue.m_RealCamera.m_BackMove = Vertical < 0;
|
MyValue.m_RealCamera.m_BackMove = Vertical < 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue