////////////////////////////////////////////////////////////////////////// // 스텟 초기화 bool local_initStat(CPC* ch, CItem* item, bool bprolong, RequestClient::doItemUse* packet) { ch->m_statpt_remain += ch->m_statpt_str + ch->m_statpt_dex + ch->m_statpt_int + ch->m_statpt_con; ch->m_statpt_str = ch->m_statpt_dex = ch->m_statpt_int = ch->m_statpt_con = 0; ch->InitStat(); { CNetMsg::SP rmsg(new CNetMsg); StatPointRemainMsg(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } ch->CalcStatus(true); ch->m_hp = ch->m_maxHP; ch->m_mp = ch->m_maxMP; { CNetMsg::SP rmsg(new CNetMsg); StatPointRemainMsg(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } return true; }
bool local_initAllStatAndSkill(CPC* ch, CItem* item, bool bprolong, RequestClient::doItemUse* packet) { ch->m_statpt_remain += ch->m_statpt_str + ch->m_statpt_dex + ch->m_statpt_int + ch->m_statpt_con; ch->m_statpt_str = ch->m_statpt_dex = ch->m_statpt_int = ch->m_statpt_con = 0; ch->InitStat(); { CNetMsg::SP rmsg(new CNetMsg); StatPointRemainMsg(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } ch->CalcStatus(true); ch->m_hp = ch->m_maxHP; ch->m_mp = ch->m_maxMP; ch->InitSkill(&ch->m_activeSkillList); ch->InitSkill(&ch->m_passiveSkillList, true); ch->InitSSkill(); if( ch->m_job != JOB_NIGHTSHADOW ) ch->m_job2 = 0; ch->InitStat(); ch->CalcStatus(true); ch->resetCoolTime(&ch->m_activeSkillList); { CNetMsg::SP rmsg(new CNetMsg); ResponseClient::makeSkillListMsg(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } { CNetMsg::SP rmsg(new CNetMsg); ResponseClient::makeSSkillList(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } { CNetMsg::SP rmsg(new CNetMsg); ResponseClient::makeChangeJobReset(rmsg, ch); SEND_Q(rmsg, ch->m_desc); } return true; }
void do_GMStatPoint(CPC *a1, char *a2) { short v2; // [sp+8h] [bp-20h]@19 short v3; // [sp+Ah] [bp-1Eh]@16 short v4; // [sp+Ch] [bp-1Ch]@10 short v4_2; short v6; // [sp+26h] [bp-2h]@4 char *v7; // [sp+34h] [bp+Ch]@4 char *v8; // [sp+34h] [bp+Ch]@10 char *v9; // [sp+34h] [bp+Ch]@13 char *v10; // [sp+34h] [bp+Ch]@16 if(a2) { if(*a2) { v7 = AnyOneArg(a2, g_buf, 0); v6 = atoi(g_buf); if(v6 >= 0) { a1->Unk740 = v6; CNetMsg v5; StatPointRemainMsg(v5, a1); if(a1->Unk768) a1->Unk768->WriteToOutput(v5); if(v7 && *v7) { v8 = AnyOneArg(v7, g_buf, 0); v4_2 = atoi(g_buf); if(v8 && *v8) { v9 = AnyOneArg(v8, g_buf, 0); v4 = atoi(g_buf); if(v9 && *v9) { v10 = AnyOneArg(v9, g_buf, 0); v3 = atoi(g_buf); if(v10 && *v10) { AnyOneArg(v10, g_buf, 0); v2 = atoi(g_buf); if(v4 >= 0 && v4_2 >= 0 && v3 >= 0 && v2 >= 0) { a1->Unk742 = v4_2; a1->Unk744 = v4; a1->Unk746 = v3; a1->Unk748 = v2; a1->InitStat(); a1->CalcStatus(true); } } } } } } } } }