How do I know if I'm about to get any Job Card summon?
Code: Select all
public static Mevius.Db.Api.GachaCardResultType GetGachaResultType(int index)
{
if ((DbManager._i._gachaResult2[index] & 2) == 2)
{
return Mevius.Db.Api.GachaCardResultType.GachaCardResultType_JOB;
}
return Mevius.Db.Api.GachaCardResultType.GachaCardResultType_ABILITY;
}
public static DbManager.JobCardInfo GetGachaJobCardResultInfo(int index)
{
return Mevius.Db.Api.GetJobCardInfoLoaclIndex((int)((4095 & DbManager._i._gachaResult[index]) - 1));
}
public static C912567889466ef0cf80daa8b03815aff.C648971f118c7e1100318b6fb7ac13b59 GetGachaJobCardResult(int index)
{
DbManager.JobCardInfo gachaJobCardResultInfo = Mevius.Db.Api.GetGachaJobCardResultInfo(index);
return C912567889466ef0cf80daa8b03815aff.Find(gachaJobCardResultInfo.card_name);
}
How do I know if I'm about to get any Ability Card summon?
Code: Select all
public static DbManager.CardInfo GetGachaAbilityCardResultInfo(int index)
{
if ((DbManager._i._gachaResult[index] & 32768) == 32768)
{
return Mevius.Db.Api.GetCardInfo("c" + ((int)(8191 & DbManager._i._gachaResult[index])).ToString("D4"), false, false, false, false);
}
if ((DbManager._i._gachaResult2[index] & 4) == 4)
{
return Mevius.Db.Api.GetCardInfo("c" + ((int)(8191 & DbManager._i._gachaResult[index])).ToString("D4"), false, false, false, false);
}
return Mevius.Db.Api.GetCardInfoLoaclIndex((int)((32767 & DbManager._i._gachaResult[index]) - 1));
}
public static Cce76e2a43c381cdc7447ac7340578ed3.Cb7e018306898cacd6ff6351b58dd9425 GetGachaAbilityCardResult(int index)
{
DbManager.CardInfo gachaAbilityCardResultInfo = Mevius.Db.Api.GetGachaAbilityCardResultInfo(index);
return Cce76e2a43c381cdc7447ac7340578ed3.Find(gachaAbilityCardResultInfo.card_name);
}
Code: Select all
case GuiScratchMenu.Status.Scratch_Wait:
if (Mevius.Gui.Util.IsExistTaskId(ref this.m_TaskId))
{
return;
}
if (base._CheckNetworkConnection())
{
NetworkManager.SessionResultType sessionResult = Mevius.Network.Api.GetSessionResult();
if (sessionResult == NetworkManager.SessionResultType.SessionResultType_NONE && Mevius.Db.Api.IsGachaSuccess())
{
if (!this.IsSkillGacha)
{
this.m_ScratchCount = Mevius.Db.Api.GetGachaCardCount();
}
this.m_rareResult = false;
this.m_rarityCutName = this.m_RarityCutNames[0];
int num24 = 0;
int num25 = -1;
this.m_RewardStoneCountedUp = false;
DbManager.BackupReward backupReward = Mevius.Db.Api.GetBackupReward();
for (int num26 = 0; num26 < this.m_ScratchCount; num26++)
{
if (this.IsSkillGacha)
{
SkillCardGacha.GachaResult skillGachaResult = Mevius.Db.Api.GetSkillGachaResult(num26);
if (skillGachaResult.cardInfo.GetCardClass() - 1 > num24)
{
num24 = skillGachaResult.cardInfo.GetCardClass() - 1;
}
if (num24 >= this.m_RarityCutNames.Length)
{
num24 = this.m_RarityCutNames.Length - 1;
}
}
else if (Mevius.Db.Api.GetGachaResultType(num26) == Mevius.Db.Api.GachaCardResultType.GachaCardResultType_JOB)
{
DbManager.JobCardInfo gachaJobCardResultInfo = Mevius.Db.Api.GetGachaJobCardResultInfo(num26);
if (gachaJobCardResultInfo.get_count == 1u)
{
this.m_rareResult = true;
if (num24 < this.m_RarityCutNames.Length - 1)
{
num24 = this.m_RarityCutNames.Length - 1;
}
}
if (gachaJobCardResultInfo.isClassChangeCardNew())
{
this.m_rareResult = true;
if (num24 < this.m_RarityCutNames.Length - 1)
{
num24 = this.m_RarityCutNames.Length - 1;
}
}
if (gachaJobCardResultInfo.isAvatarJob())
{
num24 = this.m_RarityCutNames.Length;
}
}
else
{
DbManager.CardInfo gachaAbilityCardResultInfo = Mevius.Db.Api.GetGachaAbilityCardResultInfo(num26);
int cardIndexByName = Mevius.Db.Api.GetCardIndexByName(gachaAbilityCardResultInfo.card_name);
if (!backupReward.get_receive_card(cardIndexByName) || Mevius.Db.Api.IsClassChangeCard(num26))
{
this.m_rareResult = true;
int num27 = (!Mevius.Gui.Api.IsServiceWorldWide()) ? 5 : 4;
if ((int)gachaAbilityCardResultInfo.getCard().m67848041ff9f182f0939a2860264272d() >= num27)
{
if (num24 < 2)
{
num24 = 2;
}
}
else if (num24 < 1)
{
num24 = 1;
}
if ((int)gachaAbilityCardResultInfo.getCard().me82baaf68246a911ff06abeca30677f1() > 0)
{
num24 = this.m_RarityCutNames.Length;
}
}
}
}
if (this.IsSkillGacha)
{
this.m_scratchMotionName = "z_exidle1";
this.m_rarityCutName = this.m_RarityCutNames[num24];
}
else
{
if (num24 == 1)
{
this.m_rarityCutName = this.m_RarityCutNames[1];
num25 = Mevius.DataSheet.Api.GetResidentInteger("gacha_rare_motion_percent", 30);
}
else if (num24 == 2)
{
if (Mevius.DataSheet.Api.GetResidentInteger("gacha_new_lv5_cut_enable", 0) > 0)
{
this.m_rarityCutName = this.m_RarityCutNames[2];
}
else
{
this.m_rarityCutName = this.m_RarityCutNames[3];
}
num25 = Mevius.DataSheet.Api.GetResidentInteger("gacha_rare_motion_percent_lv5", 80);
}
else if (num24 == this.m_RarityCutNames.Length - 1)
{
this.m_rarityCutName = this.m_RarityCutNames[this.m_RarityCutNames.Length - 1];
num25 = Mevius.DataSheet.Api.GetResidentInteger("gacha_rare_motion_percent_lv5", 80);
}
else if (num24 == this.m_RarityCutNames.Length)
{
this.m_rarityCutName = "ev_0000_360";
num25 = 100;
}
this.m_scratchMotionName = "z_exidle2";
if (this.m_rareResult && (ulong)(Mevius.Common.Random.GetInstance().GetUnsignedInteger() % 100u) <= (ulong)((long)num25))
{
this.m_scratchMotionName = "z_exidle3";
}
}
this._setMenuMode(GuiScratchMenu.MenuMode.Mode_OnScratch, false);
Mevius.Gui.Util.SetText(this.m_TouchScreenLabel, Mevius.Gui.Util.GetGuiText("$scratch_018"));
this.m_Status = GuiScratchMenu.Status.Scratch_CutBegin;
}
else if (sessionResult == NetworkManager.SessionResultType.SessionResultType_TERM_OUT)
{
int num28 = Mevius.Gui.Util.CheckMessageBox(ref this.m_MsgHandle, "$syoukan_011", "$syoukan_006", GuiMessageBox.Buttons.OK, GuiMessageBox.Skin.Default, false, GuiMessageBox.DefaultFromTextButtonSE, Mevius.Gui.Constants.SoundEffectKind.system_se_window_in, false);
if (num28 >= 0)
{
this._setMenuMode(GuiScratchMenu.MenuMode.Mode_Common, false);
this.updateButtonMenu();
this.updateTickeNumDisplay();
this.m_Status = GuiScratchMenu.Status.WaitSelect;
}
}
else
{
this.updateButtonMenu();
this.updateTickeNumDisplay();
this.m_Status = this.m_StatusMemo;
}
}
break;
How do I use that?
Make sure I am familiar with Cheat Engine, activate Mono Features. Look/search at that APIs posted above, play with function Breakpoint, dump the stack, etc. Still hard? Learn Cheat Engine tutorial on YouTube, you gain more knowledge more power. Not spoonfeded
public static C912567889466ef0cf80daa8b03815aff.C648971f118c7e1100318b6fb7ac13b59 GetGachaJobCardResult(int index)
{
DbManager.JobCardInfo
gachaJobCardResultInfo = Mevius.Db.Api.GetGachaJobCardResultInfo(index);
return C912567889466ef0cf80daa8b03815aff.Find(gachaJobCardResultInfo.
card_name);
}
public static Cce76e2a43c381cdc7447ac7340578ed3.Cb7e018306898cacd6ff6351b58dd9425 GetGachaAbilityCardResult(int index)
{
DbManager.CardInfo
gachaAbilityCardResultInfo = Mevius.Db.Api.GetGachaAbilityCardResultInfo(index);
return Cce76e2a43c381cdc7447ac7340578ed3.Find(gachaAbilityCardResultInfo.
card_name);
}
Am I getting a Rare (already owned) 5* Card?
Code: Select all
public const string c_RareLv5Cut = "ev_0000_350";
Look up
ev_0000_350 on the enumerated results.
Am I getting a new Rare (never owned) 5* Card?
Code: Select all
public const string c_RareLv5NewCut = "ev_0000_345";
Look up
ev_0000_345 on the enumerated results.
Am I getting a new Rare 5+Card?
Code: Select all
public const string c_RareLv6Cut = "ev_0000_360";
Look up
ev_0000_360 on the enumerated results.
Am I getting a Normal TRASH Card?
Code: Select all
public const string c_NormalResultCut = "ev_0000_330";
Look up
ev_0000_330 on the enumerated results.
And so on and so on and so on...
--- Supreme Card is categorised within
c_RareLv6Cut