public void EncodeInitData(COutPacket p) { p.Encode4(dwId); p.Encode4(nSkillID); p.Encode1(nCharLevel); p.Encode1(nSLV); Position.EncodePos(p); p.Encode1(Position.MoveAction); p.Encode2(Position.Foothold); p.Encode1((byte)nMoveAbility); p.Encode1((byte)nAssistType); p.Encode1((byte)nEnterType); var mirrorTarget = nSkillID == (int)Skills.DUAL5_DUMMY_EFFECT; p.Encode1(mirrorTarget); if (mirrorTarget) { Parent.GetLook().Encode(p); } else if (nSkillID == (int)Skills.MECHANIC_TESLA_COIL) { p.Encode1((byte)nTeslaCoilState); if (nTeslaCoilState == TeslaCoilType.Leader) { foreach (var item in Field.Summons .Where(item => item.nSkillID == (int)Skills.MECHANIC_TESLA_COIL && dwParentID == item.dwParentID)) { p.Encode2(item.Position.X); p.Encode2(item.Position.Y); } } } }
public static COutPacket CheckPasswordResult(int accId, byte gender, byte nGradeCode, short nSubGradeCode, string accountName) { var p = new COutPacket(SendOps.LP_CheckPasswordResult); p.Encode1(0); //nRet p.Encode1(0); //nRegStatID p.Encode4(0); //nUseDay //if (nRet == 2) //{ // COutPacket::Encode1((COutPacket*)&oPacket, v2->m_nBlockReason); // COutPacket::EncodeBuffer((COutPacket*)&oPacket, &v2->m_dtUnblockDate, 8u); //} p.Encode4(accId); // dwAccountId p.Encode1(gender); // nGender p.Encode1(nGradeCode); // nGradeCode p.Encode2(nSubGradeCode); // nSubGradeCode p.Encode1(0); // nCountryID p.EncodeString(accountName); // sNexonClubID p.Encode1(0); // nPurchaseExp p.Encode1(0); // nChatBlockReason p.Encode8(0); // dtChatUnblockDate p.Encode8(0); // dtRegisterDate p.Encode4(4); // flag that affects character creation p.Encode1(true); //If true client will send CP_WorldRequest //If false it check nGameStartMode and returns or sends CP_CheckPinCode p.Encode1(1); //sMsg._m_pStr[432] = CInPacket::Decode1(iPacket); p.Encode8(0); // dwHighDateTime return(p); }
public override void RawEncode(COutPacket p, bool bFromCS = false) { p.Encode1(3); p.Encode4(nItemID); var bCashItem = liCashItemSN != 0; p.Encode1(bCashItem); if (bCashItem) // arent all pets cash items?? o__o { p.Encode8(liCashItemSN); } p.EncodeDateTime(tDateExpire); p.EncodeStringFixed(sPetName, 13); p.Encode1(nLevel); p.Encode2(nTameness); p.Encode1(nRepleteness); if (tDateDead == DateTime.MaxValue) { p.Encode8(0); } else { p.EncodeDateTime(tDateDead); } p.Encode2(nPetAttribute); p.Encode2(usPetSkill); p.Encode4(nRemainLife); p.Encode2(nAttribute); }
public void Encode(COutPacket p) { p.Encode4(Left); p.Encode4(Top); p.Encode4(Right); p.Encode4(Bottom); }
public void EncodeInitData(COutPacket p) { p.Encode4(dwMobId); p.Encode1(5); // nCalcDamageIndex | Controller p.Encode4(dwTemplateId); //CMob::SetTemporaryStat CPacket.MobStat__EncodeTemporary(p, 0, 0, 0); //CMob::Init p.Encode2(Position.Position.X); //m_ptPosPrev.x p.Encode2(Position.Position.Y); //m_ptPosPrev.y p.Encode1(0 & 1 | 2 * 2); //mob.Position.Stance); //m_nMoveAction p.Encode2(Position.Foothold); // m_nFootholdSN p.Encode2(Position.Foothold); // m_nHomeFoothold var m_nSummonType = unchecked ((byte)-2); p.Encode1(m_nSummonType); //m_nSummonType //if(m_nSummonType == -3 || m_nSummonType >= 0) // p.Encode4(0); //m_dwSummonOption p.Encode1(0); //m_nTeamForMCarnival p.Encode4(0); //nEffectItemID p.Encode4(0); //m_nPhase }
//Eventually move this out of socket public void Initialize(ushort version) { m_version = version; m_siv = new MapleIV(0xBADF00D); m_riv = new MapleIV(0XDEADBEEF); //m_siv = new MapleIV(0x52616A61); //Raja //m_riv = new MapleIV(0x6E523078); //nR0x using (var p = new COutPacket()) { p.Encode2(0x0E); p.Encode2((short)version); p.EncodeString("1"); p.Encode4((int)m_riv.Value); p.Encode4((int)m_siv.Value); p.Encode1(8); var buffer = p.ToArray(); SendRaw(buffer); } Receive(); }
private COutPacket StatReset(params MobStatEntry[] toRemove) { var p = new COutPacket(SendOps.LP_MobStatReset); p.Encode4(Parent.dwId); var movementAffectingStat = EncodeMask(p, toRemove); // order matters var sorted = toRemove .ToList() .OrderBy(item => item.MobStatTypeID); foreach (var entry in sorted) { if (entry.MobStatTypeID == (int)MobStatType.Burned) { p.Encode4(0); //size // for each size // p.Encode4(charId[i]) // p.Encode4(skillId[i]) } } p.Encode1(0); // m_nCalcDamageStatIndex if (movementAffectingStat) { p.Encode1(false); } return(p); }
public void Encode(COutPacket p) { switch ((MobStatType)MobStatTypeID) { case MobStatType.Burned: p.Encode4(0); // size //tCur = (int)v45; //do //{ // v47 = ZList < MobStat::BURNED_INFO >::AddTail(&v4->lBurnedInfo); // v47->dwCharacterID = CInPacket::Decode4(v8); // v47->nSkillID = CInPacket::Decode4(v8); // v47->nDamage = CInPacket::Decode4(v8); // v47->tInterval = CInPacket::Decode4(v8); // v47->tEnd = CInPacket::Decode4(v8); // v48 = CInPacket::Decode4(v8); // v49 = tCur-- == 1; // v47->nDotCount = v48; // v47->tLastUpdate = v7; //} //while (!v49); break; case MobStatType.Disable: p.Encode1(false); // bInvincible p.Encode1(false); // bDisable break; default: p.Encode2(nOption); p.Encode4(rOption); p.Encode2(nDurationSeconds); // seconds break; } }
private COutPacket UserSkillCancelRemote(int nSkillID) // TODO move this to a CPacket subclass { var p = new COutPacket(SendOps.LP_UserSkillCancel); p.Encode4(dwParentID); p.Encode4(nSkillID); return(p); }
/// <summary> /// This packet is sent to activate the tesla coils. /// The client will expect three coils in the map for this to work. /// </summary> public static COutPacket TeslaTriangle(int dwParentID, List <int> teslaCoilSummonIDs) { var p = new COutPacket(SendOps.LP_UserTeslaTriangle); p.Encode4(dwParentID); teslaCoilSummonIDs.ForEach(coil => p.Encode4(coil)); return(p); }
private void EncodeState(COutPacket p) { p.Encode1((byte)nState); p.Encode4(100 * nSnowManCurHP[0] / SNOWMAN_BASE_HP); p.Encode4(100 * nSnowManCurHP[1] / SNOWMAN_BASE_HP); aSnowBall[0].Encode(p); aSnowBall[1].Encode(p); }
public void Encode(COutPacket p) { p.Encode4(dwPairCharacterID); p.EncodeStringFixed(sPairCharacterName, 13); p.Encode8(liSN); p.Encode8(liPairSN); p.Encode4(dwFriendItemID); }
public void Encode(COutPacket p) { p.Encode4(dwFriendID); p.EncodeStringFixed(sFriendName, 13); p.Encode1((byte)(nFlag == 10 ? 0 : nFlag)); p.Encode4(bOnline && !bCashShop ? nChannelID : -1); p.EncodeStringFixed(sFriendGroup, 17); }
public static COutPacket MobAffected(int dwMobID, int nSkillID, int tDelay) { var p = new COutPacket(SendOps.LP_MobAffected); p.Encode4(dwMobID); p.Encode4(nSkillID); p.Encode2((short)(tDelay > short.MaxValue ? short.MaxValue : tDelay)); return(p); }
// CSummonedPool::OnMove public static COutPacket SummonedMove(CSummon summon, CInPacket iPacket) { var oPacket = new COutPacket(SendOps.LP_SummonedMove); oPacket.Encode4(summon.dwParentID); oPacket.Encode4(summon.dwId); summon.Position.UpdateMovePath(oPacket, iPacket); return(oPacket); }
// CSummonedPool::OnRemoved public static COutPacket LeaveFieldPacket(CSummon summon) { var p = new COutPacket(SendOps.LP_SummonedLeaveField); p.Encode4(summon.dwParentID); p.Encode4(summon.dwId); p.Encode1((byte)summon.nLeaveType); return(p); }
public void Encode(COutPacket p) { p.Encode4(bPredictQuit); foreach (var gift in nLogoutGiftCommoditySN) { p.Encode4(gift); } }
// CSummonedPool::OnSkill public static COutPacket SummonedSkill(CSummon summon, int summonSkillId, byte bAttackAction) { var p = new COutPacket(SendOps.LP_SummonedSkill); p.Encode4(summon.dwParentID); p.Encode4(summonSkillId); p.Encode1(bAttackAction); return(p); }
public static COutPacket MakerItemEffectRemote(int dwCharId, bool bSuccess) { var p = new COutPacket(SendOps.LP_UserEffectRemote); p.Encode4(dwCharId); p.Encode1((byte)UserEffect.ItemMaker); // local and remote are same p.Encode4(bSuccess ? 0 : 1); return(p); }
} // DONE /// <summary> /// Packet sent to all guild members after a character has joined the guild. /// </summary> /// <returns></returns> public static COutPacket JoinGuild_Done(GuildMember g) { var p = new COutPacket(SendOps.LP_GuildResult); EncodeHeader(p, GuildOps.GuildRes_JoinGuild_Done); p.Encode4(g.Guild.GuildID); p.Encode4(g.dwParentID); g.EncodeGuildMember(p); return(p); } // DONE
private static COutPacket MakerRelease() { var p = new COutPacket(SendOps.LP_UserMakerResult); p.Encode4(0); p.Encode4(0); p.Encode4(0); p.Encode4(0); return(p); }
} // DONE /// <summary> /// Gets sent to all members after guild points have been changed /// </summary> /// <param name="g"></param> /// <returns></returns> public static COutPacket IncPoint_Done(Guild g) { var p = new COutPacket(SendOps.LP_GuildResult); EncodeHeader(p, GuildOps.GuildRes_IncPoint_Done); p.Encode4(g.GuildID); p.Encode4(g.GuildPoints); p.Encode4(g.GuildLevel); return(p); } // DONE
} // DONE /// <summary> /// Gets sent to all guild members after a guild members rank has changed /// </summary> /// <param name="g"></param> /// <returns></returns> public static COutPacket SetMemberGrade_Done(GuildMember g) { var p = new COutPacket(SendOps.LP_GuildResult); EncodeHeader(p, GuildOps.GuildRes_SetMemberGrade_Done); p.Encode4(g.Guild.GuildID); p.Encode4(g.dwParentID); p.Encode1(g.GuildRank); return(p); } // DONE
} // DONE /// <summary> /// Sent to all guild members after a member has logged in or out. /// </summary> /// <param name="g"></param> /// <returns></returns> public static COutPacket NotifyLoginOrLogout(GuildMember g) { var p = new COutPacket(SendOps.LP_GuildResult); EncodeHeader(p, GuildOps.GuildRes_NotifyLoginOrLogout); p.Encode4(g.Guild.GuildID); p.Encode4(g.dwParentID); p.Encode1(g.bOnline); return(p); } // DONE
private static COutPacket BuildMonsterCrystalResponse(int nItemGained, int nItemLost) { var p = new COutPacket(SendOps.LP_UserMakerResult); p.Encode4(1); p.Encode4(3); // op code p.Encode4(nItemGained); p.Encode4(nItemLost); return(p); }
public static COutPacket EnableShopActions(WvsShopClient c) { var p = new COutPacket(SendOps.LP_CashShopQueryCashResult); p.Encode4(c.Account.AccountData.NX_Credit); // nx cash p.Encode4(c.Account.AccountData.NX_Maplepoint); // maple point p.Encode4(c.Account.AccountData.NX_Prepaid); // prepaid nx return(p); }
public static COutPacket MobSpecialEffectBySkill(int dwMobId, int nSkillID, int casterId, short tDelay) { var p = new COutPacket(SendOps.LP_MobSpecialEffectBySkill); p.Encode4(dwMobId); p.Encode4(nSkillID); p.Encode4(casterId); p.Encode2(tDelay); return(p); }
public static void Encode(COutPacket p) { aLimitGoods.Add(new LimitGoods() { nItemID = 1040077, nState = -1, nOriginCount = 100, nRemainCount = 100, dwConditionFlag = 3, nDateStart = 10, nDateEnd = 25, nHourStart = 0, nHourEnd = 0, }); aLimitGoods[1].nSN[0] = 20400012; //for (int i = 0; i < 7; i++) //{ // aLimitGoods[0].abWeek[i] = 1; //} var stockItems = new List <KeyValuePair <int, int> >(); foreach (var item in aLimitGoods) { foreach (var itemSerialNumber in item.nSN) { if (itemSerialNumber != 0) { stockItems.Add(new KeyValuePair <int, int>(itemSerialNumber, -1)); } } } //p.Encode2((short)stockItems.Count); //foreach (var item in stockItems) //{ // p.Encode4(item.Key); // p.Encode4(item.Value); //} p.Encode2(1); p.Encode4(20400012); p.Encode4(-1); p.Encode2((short)aLimitGoods.Count); foreach (var item in aLimitGoods) { item.Encode(p); } }
} // DONE /// <summary> /// Invite packet sent to the invitee /// </summary> /// <returns></returns> public static COutPacket InviteGuild(int dwInviterID, string sInviter, int nLevel, int nJobCode) { var p = new COutPacket(SendOps.LP_GuildResult); p.Encode1((byte)GuildOps.GuildReq_InviteGuild); p.Encode4(dwInviterID); p.EncodeString(sInviter); p.Encode4(nLevel); p.Encode4(nJobCode); return(p); } // DONE
} // DONE /// <summary> /// Sent to all guild members after a member changes level or job /// </summary> /// <returns></returns> public static COutPacket ChangeLevelOrJob(GuildMember g) { var p = new COutPacket(SendOps.LP_GuildResult); EncodeHeader(p, GuildOps.GuildRes_ChangeLevelOrJob); p.Encode4(g.Guild.GuildID); p.Encode4(g.dwParentID); p.Encode4(g.ParentLevel); p.Encode4(g.ParentJob); return(p); } // DONE