Decompile 7 functions in Source/Contents/Skills/SkillActionShinkiroShiranui.cpp
Batch #7705 by secret: 0 byte-identical, 7 confirmed by peer review. - fn_08745 CSkillObjectAction_SS_SBUNSHIN::Slot01: logic confirmed by peer review - fn_08747 CSkillObjectAction_SS_KUNAITRAP::Slot01: logic confirmed by peer review - fn_08769 CSkillAction_SS_FUUMASHOUAKU_HIT::Slot15: logic confirmed by peer review - fn_08772 CSkillAction_SS_KUNAIWAIKYOKU::Slot12: logic confirmed by peer review - fn_08781 CSkillAction_SS_SEKIENHOU::Slot11: logic confirmed by peer review - fn_08794 CSkillAction_SS_KINRYUUHOU::Slot11: logic confirmed by peer review - fn_08799 CSkillAction_SS_ANTENPOU::Slot11: logic confirmed by peer review Peer-reviewed-by: eAthena, Yommy Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
parent
29c066971f
commit
f5153a85dc
1 changed files with 91 additions and 0 deletions
|
|
@ -1,7 +1,11 @@
|
|||
#include "Client/Mode/CGameMode.h"
|
||||
#include "Client/Mode/ModeMgr.h"
|
||||
#include "Contents/Actors/GameActor.h"
|
||||
#include "Contents/Actors/RenderObject.h"
|
||||
#include "Contents/Camera/Camera.h"
|
||||
#include "Contents/Configuration/ServiceOptions.h"
|
||||
#include "Contents/EffectResourceSwitcher.h"
|
||||
#include "Contents/Effects/EZ2STREffectEx.h"
|
||||
#include "Contents/Effects/Effect.h"
|
||||
#include "Contents/Effects/EffectActor.h"
|
||||
#include "Contents/Effects/EffectLists.h"
|
||||
|
|
@ -45,6 +49,7 @@ public:
|
|||
int Slot01() override;
|
||||
int Slot02() override;
|
||||
void Slot08(int level, CGameActor* source) override;
|
||||
void Slot11(int level, CGameActor* source, CGameActor* target) override;
|
||||
void Slot16(int level, CGameActor* source, CGameActor* target) override;
|
||||
};
|
||||
|
||||
|
|
@ -53,6 +58,7 @@ public:
|
|||
int Slot01() override;
|
||||
int Slot02() override;
|
||||
void Slot08(int level, CGameActor* source) override;
|
||||
void Slot11(int level, CGameActor* source, CGameActor* target) override;
|
||||
};
|
||||
|
||||
class CSkillAction_SS_KAGEAKUMU : public CSkillAction {
|
||||
|
|
@ -160,6 +166,18 @@ void CSkillAction_SS_KINRYUUHOU::Slot08(int level, CGameActor* source) {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00795A30
|
||||
// FUNCTION: fn_08794
|
||||
void CSkillAction_SS_KINRYUUHOU::Slot11(int level, CGameActor* source, CGameActor* target) {
|
||||
if (source && target) {
|
||||
const float angle = ScreenAngle(&source->render.position.x, &target->render.position.x, static_cast<CGameMode*>(g_modeMgr.GetGameMode())->camera->frame.view.values);
|
||||
const vector3d position = source->render.position;
|
||||
if (CEffect* effect = g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("kinryuuhou"), position.x, position.y, position.z, 0, -1, 0, 0)) {
|
||||
effect->Slot17(angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00795BD0
|
||||
// FUNCTION: fn_08795
|
||||
void CSkillAction_SS_KINRYUUHOU::Slot16(int level, CGameActor* source, CGameActor* target) {
|
||||
|
|
@ -188,6 +206,15 @@ void CSkillAction_SS_ANTENPOU::Slot08(int level, CGameActor* source) {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00795D90
|
||||
// FUNCTION: fn_08799
|
||||
void CSkillAction_SS_ANTENPOU::Slot11(int level, CGameActor* source, CGameActor* target) {
|
||||
if (source) {
|
||||
const vector3d position = source->render.position;
|
||||
g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("antenpou"), position.x, position.y, position.z, 0, -1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00795D60
|
||||
|
||||
// OFFSET: 0x00795EE0
|
||||
|
|
@ -368,11 +395,13 @@ public:
|
|||
class CSkillObjectAction_SS_SBUNSHIN : public CSkillObjectAction {
|
||||
public:
|
||||
void Slot00(int argument, CRenderObject* object, CGameActor* source) override;
|
||||
void Slot01(CRenderObject* object) override;
|
||||
};
|
||||
|
||||
class CSkillObjectAction_SS_KUNAITRAP : public CSkillObjectAction {
|
||||
public:
|
||||
void Slot00(int argument, CRenderObject* object, CGameActor* source) override;
|
||||
void Slot01(CRenderObject* object) override;
|
||||
};
|
||||
|
||||
class CSkillAction_SS_TOKEDASU : public CSkillAction {
|
||||
|
|
@ -430,10 +459,16 @@ public:
|
|||
void Slot12(vector3d position, int argument2, int argument3) override;
|
||||
};
|
||||
|
||||
class CSkillAction_SS_FUUMASHOUAKU_HIT : public CSkillAction {
|
||||
public:
|
||||
void Slot15(int level, CGameActor* source, CGameActor* target) override;
|
||||
};
|
||||
|
||||
class CSkillAction_SS_KUNAIWAIKYOKU : public CSkillAction {
|
||||
public:
|
||||
int Slot02() override;
|
||||
void Slot08(int level, CGameActor* source) override;
|
||||
void Slot12(vector3d position, int argument2, int argument3) override;
|
||||
};
|
||||
|
||||
class CSkillAction_SS_KUNAIKAITEN : public CSkillAction {
|
||||
|
|
@ -454,6 +489,7 @@ public:
|
|||
int Slot01() override;
|
||||
int Slot02() override;
|
||||
void Slot08(int level, CGameActor* source) override;
|
||||
void Slot11(int level, CGameActor* source, CGameActor* target) override;
|
||||
};
|
||||
|
||||
// OFFSET: 0x00792500
|
||||
|
|
@ -513,6 +549,17 @@ void CSkillObjectAction_SS_SBUNSHIN::Slot00(int argument, CRenderObject* object,
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00792C60
|
||||
// FUNCTION: fn_08745
|
||||
void CSkillObjectAction_SS_SBUNSHIN::Slot01(CRenderObject* object) {
|
||||
if (object) {
|
||||
g_effectMgr->Retire(object->render.accountId, CEZ2STREffectMgr::GetInstance()->EffectId("shinkirou_idle_start"));
|
||||
g_effectMgr->Retire(object->render.accountId, CEZ2STREffectMgr::GetInstance()->EffectId("shinkirou_idle_loop"));
|
||||
const vector3d position = object->render.position;
|
||||
g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("shinkirou_idle_end"), position.x, position.y, position.z, 0, -1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00792F90
|
||||
// FUNCTION: fn_08746
|
||||
void CSkillObjectAction_SS_KUNAITRAP::Slot00(int argument, CRenderObject* object, CGameActor* source) {
|
||||
|
|
@ -522,6 +569,16 @@ void CSkillObjectAction_SS_KUNAITRAP::Slot00(int argument, CRenderObject* object
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00793210
|
||||
// FUNCTION: fn_08747
|
||||
void CSkillObjectAction_SS_KUNAITRAP::Slot01(CRenderObject* object) {
|
||||
if (object) {
|
||||
g_effectMgr->Retire(object->render.accountId, CEZ2STREffectMgr::GetInstance()->EffectId("kunaiarea_01_loop"));
|
||||
const vector3d position = object->render.position;
|
||||
g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("kunaiarea_01_end"), position.x, position.y, position.z, 0, -1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00793450
|
||||
// FUNCTION: fn_08748
|
||||
void CSkillAction_SS_TOKEDASU::Slot12(vector3d position, int argument2, int argument3) {
|
||||
|
|
@ -670,6 +727,15 @@ void CSkillAction_SS_FUUMAKOUCHIKU::Slot12(vector3d position, int argument2, int
|
|||
g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("new_fuumakouchiku"), position.x, position.y, position.z, 0, -1, 0, 0);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00794350
|
||||
// FUNCTION: fn_08769
|
||||
void CSkillAction_SS_FUUMASHOUAKU_HIT::Slot15(int level, CGameActor* source, CGameActor* target) {
|
||||
if (target) {
|
||||
const vector3d position = target->render.position;
|
||||
g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("fuumakouchiku_blasting"), position.x, position.y, position.z, 0, -1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x007944C0
|
||||
// FUNCTION: fn_08770
|
||||
int CSkillAction_SS_KUNAIWAIKYOKU::Slot02() {
|
||||
|
|
@ -685,6 +751,19 @@ void CSkillAction_SS_KUNAIWAIKYOKU::Slot08(int level, CGameActor* source) {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00794540
|
||||
// FUNCTION: fn_08772
|
||||
void CSkillAction_SS_KUNAIWAIKYOKU::Slot12(vector3d position, int argument2, int argument3) {
|
||||
CGameActor* shadow = reinterpret_cast<CGameActor*>(argument3);
|
||||
if (shadow) {
|
||||
const float angle = ScreenAngle(&shadow->render.position.x, &position.x, static_cast<CGameMode*>(g_modeMgr.GetGameMode())->camera->frame.view.values);
|
||||
const vector3d spot = shadow->render.position;
|
||||
if (CEffect* effect = g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("kunaiwaikyoku"), spot.x, spot.y, spot.z, 0, -1, 0, 0)) {
|
||||
effect->Slot17(angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x007946E0
|
||||
// FUNCTION: fn_08773
|
||||
int CSkillAction_SS_KUNAIKAITEN::Slot02() {
|
||||
|
|
@ -756,6 +835,18 @@ void CSkillAction_SS_SEKIENHOU::Slot08(int level, CGameActor* source) {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00794ED0
|
||||
// FUNCTION: fn_08781
|
||||
void CSkillAction_SS_SEKIENHOU::Slot11(int level, CGameActor* source, CGameActor* target) {
|
||||
if (target) {
|
||||
g_effectMgr->Spawn(0, 1270, target->render.position.x, target->render.position.y, target->render.position.z, 0, -1, 0, 0);
|
||||
const vector3d position = target->render.position;
|
||||
if (CEffect* effect = g_effectMgr->Spawn(0, CEZ2STREffectMgr::GetInstance()->EffectId("new_sekienhou"), position.x, position.y, position.z, 0, -1, 0, 0)) {
|
||||
effect->Slot17(270.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00795070
|
||||
// FUNCTION: fn_08782
|
||||
int CSkillAction_SS_REIKETSUHOU::Slot01() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue