몬스터 경험치 지급, 경험치 공식 에러 수정, 스킬 사용 중 pc 조이스틱 관련 로직 수정
This commit is contained in:
parent
74da53a303
commit
5ae5724dd5
|
|
@ -57,8 +57,10 @@ messageinfo 엄청 느린 버그
|
|||
- 몬스터 패트롤 거리 조절
|
||||
- 점수와 골드 (기본 1점, 10골드만 주는 중(밸런스 필요))
|
||||
|
||||
|
||||
장비 스탯 추가 구현
|
||||
- 일꾼 이속, RND_SKILL
|
||||
몬스터 골드, 아이템 드랍
|
||||
|
||||
일꾼 추가
|
||||
|
||||
몬스터 아이템 드랍
|
||||
몬스터 경험치
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 0 None, 1 스킬 사용 시 이동 금지
|
||||
/// </summary>
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd<OptionInfo>
|
|||
public TextMeshProUGUI tmp_bgm, tmp_sfx;
|
||||
public DelAccountUI m_DelAccountUI;
|
||||
public SleepMode m_SleepMode;
|
||||
public bool PCMove = true;
|
||||
bool PCMove = true;
|
||||
|
||||
List<CheckShadow> list_CheckShadow = new List<CheckShadow>();
|
||||
int SaveTime = 0;
|
||||
|
|
@ -155,6 +155,13 @@ public class OptionInfo : MonoBehaviourSingletonTemplateBackKeyAdd<OptionInfo>
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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(); }
|
||||
|
|
|
|||
|
|
@ -31,15 +31,20 @@ public class MyInfoUI : MonoBehaviourSingletonuScrollViewArrMgr<MyInfoUI>
|
|||
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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue