Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Source Code By Faelz' && Thiagodp
- //Adicionar no _MSG_UseItem.cpp
- #pragma region Pedra Misteriosa
- if (item->sIndex == 4148)
- {
- if (pMob[conn].extra.ClassMaster != CELESTIALCS && pMob[conn].extra.ClassMaster != SCELESTIAL)
- {
- SendItem(conn, m->SourType, m->SourPos, item);
- return;
- }
- int Village = BASE_GetVillage(pMob[conn].TargetX, pMob[conn].TargetY);
- if (Village < 0 || Village >= 5)
- {
- SendClientMessage(conn, g_pMessageStringTable[_NN_OnlyVillage]);
- SendItem(conn, m->SourType, m->SourPos, item);
- return;
- }
- int cl = pMob[conn].extra.ClassMaster == CELESTIALCS ? 0 : 1;
- int ncl = pMob[conn].extra.ClassMaster == CELESTIALCS ? 1 : 0;
- if (pMob[conn].extra.ClassMaster == CELESTIALCS)
- {
- pMob[conn].extra.ClassMaster = SCELESTIAL;
- pMob[conn].extra.QuestInfo.Celestial.CelestialLevel = pMob[conn].MOB.BaseScore.Level;
- int SkillOld = pMob[conn].MOB.LearnedSkill;
- pMob[conn].MOB.LearnedSkill = pMob[conn].MOB.LearnedSkill | SkillOld;
- STRUCT_ITEM *Capa = &pMob[conn].MOB.Equip[15];
- if (Capa->sIndex == 3199) //Capa celestial White
- pMob[conn].MOB.Equip[15].sIndex = 573;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- if (Capa->sIndex == 3198) //Capa Celestial Red
- pMob[conn].MOB.Equip[15].sIndex = 1770;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- if (Capa->sIndex == 3197) //Capa Celestial Blue
- pMob[conn].MOB.Equip[15].sIndex = 1767;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- }
- else
- {
- pMob[conn].extra.ClassMaster = CELESTIALCS;
- pMob[conn].extra.QuestInfo.Celestial.SubCelestialLevel = pMob[conn].MOB.BaseScore.Level;
- pMob[conn].extra.QuestInfo.Celestial.CelestialLevel = pMob[conn].MOB.BaseScore.Level;
- int SkillOld = pMob[conn].MOB.LearnedSkill;
- int SkillLearn = (1 << 24);
- pMob[conn].MOB.LearnedSkill = pMob[conn].MOB.LearnedSkill | SkillLearn + pMob[conn].MOB.LearnedSkill | SkillOld;
- STRUCT_ITEM *Capa = &pMob[conn].MOB.Equip[15];
- if (Capa->sIndex == 573) //Capa Sub-Celestial White
- pMob[conn].MOB.Equip[15].sIndex = 3199;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- if (Capa->sIndex == 1770) //Capa Sub-Celestial Red
- pMob[conn].MOB.Equip[15].sIndex = 3198;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- if (Capa->sIndex == 1767) //Capa Sub-Celestial Blue
- pMob[conn].MOB.Equip[15].sIndex = 3197;
- SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
- }
- pMob[conn].extra.SaveCelestial[cl].BaseScore = pMob[conn].MOB.BaseScore;
- pMob[conn].extra.SaveCelestial[cl].Class = pMob[conn].MOB.Class;
- pMob[conn].extra.SaveCelestial[cl].Exp = pMob[conn].MOB.Exp;
- pMob[conn].extra.SaveCelestial[cl].LearnedSkill = pMob[conn].MOB.LearnedSkill;
- pMob[conn].extra.SaveCelestial[cl].ScoreBonus = pMob[conn].MOB.ScoreBonus;
- pMob[conn].extra.SaveCelestial[cl].SkillBonus = pMob[conn].MOB.SkillBonus;
- pMob[conn].extra.SaveCelestial[cl].SpecialBonus = pMob[conn].MOB.SpecialBonus;
- pMob[conn].extra.SaveCelestial[cl].SPX = pMob[conn].MOB.SPX;
- pMob[conn].extra.SaveCelestial[cl].SPY = pMob[conn].MOB.SPY;
- pMob[conn].extra.SaveCelestial[cl].Soul = pMob[conn].extra.Soul;
- memcpy(pMob[conn].extra.SaveCelestial[cl].SkillBar1, pMob[conn].MOB.SkillBar, 4);
- memcpy(pMob[conn].extra.SaveCelestial[cl].SkillBar2, pUser[conn].CharShortSkill, 16);
- pMob[conn].MOB.BaseScore = pMob[conn].extra.SaveCelestial[ncl].BaseScore;
- pMob[conn].MOB.Class = pMob[conn].extra.SaveCelestial[ncl].Class;
- pMob[conn].MOB.Exp = pMob[conn].extra.SaveCelestial[ncl].Exp;
- pMob[conn].MOB.LearnedSkill = pMob[conn].extra.SaveCelestial[ncl].LearnedSkill;
- pMob[conn].MOB.ScoreBonus = pMob[conn].extra.SaveCelestial[ncl].ScoreBonus;
- pMob[conn].MOB.SkillBonus = pMob[conn].extra.SaveCelestial[ncl].SkillBonus;
- pMob[conn].MOB.SpecialBonus = pMob[conn].extra.SaveCelestial[ncl].SpecialBonus;
- pMob[conn].MOB.SPX = pMob[conn].extra.SaveCelestial[ncl].SPX;
- pMob[conn].MOB.SPY = pMob[conn].extra.SaveCelestial[ncl].SPY;
- pMob[conn].extra.Soul = pMob[conn].extra.SaveCelestial[ncl].Soul;
- memcpy(pMob[conn].MOB.SkillBar, pMob[conn].extra.SaveCelestial[ncl].SkillBar1, 4);
- memcpy(pUser[conn].CharShortSkill, pMob[conn].extra.SaveCelestial[ncl].SkillBar2, 16);
- for (int i = 0; i < MAX_AFFECT; i++)
- {
- if (pMob[conn].Affect[i].Type == 4 || pMob[conn].Affect[i].Type == 8 || pMob[conn].Affect[i].Type == 29 || pMob[conn].Affect[i].Type == 30 || pMob[conn].Affect[i].Type == 34 || pMob[conn].Affect[i].Type == 35 || pMob[conn].Affect[i].Type == 39)
- continue;
- memset(&pMob[conn].Affect[i], 0, sizeof(STRUCT_AFFECT));
- }
- pMob[conn].MOB.Equip[0].sIndex = pMob[conn].extra.MortalFace + 5 + pMob[conn].MOB.Class;
- SendItem(conn, ITEM_PLACE_EQUIP, 0, &pMob[conn].MOB.Equip[0]);
- MSG_SetShortSkill sm_sss;
- memset(&sm_sss, 0, sizeof(MSG_SetShortSkill));
- sm_sss.Size = sizeof(MSG_SetShortSkill);
- sm_sss.ID = ESCENE_FIELD;
- sm_sss.Type = _MSG_SetShortSkill;
- memcpy(sm_sss.Skill1, pMob[conn].extra.SaveCelestial[ncl].SkillBar1, 4);
- memcpy(sm_sss.Skill2, pMob[conn].extra.SaveCelestial[ncl].SkillBar2, 16);
- pUser[conn].cSock.AddMessage((char*)&sm_sss, sizeof(MSG_SetShortSkill));
- BASE_GetBonusSkillPoint(&pMob[conn].MOB, &pMob[conn].extra);
- BASE_GetBonusScorePoint(&pMob[conn].MOB, &pMob[conn].extra);
- BASE_GetHpMp(&pMob[conn].MOB, &pMob[conn].extra);
- pMob[conn].GetCurrentScore(conn);
- GetGuild(conn);
- SendScore(conn);
- SendEtc(conn);
- sprintf(temp, "useitem,mistery stone change god2god");
- ItemLog(temp, pUser[conn].AccountName, pUser[conn].IP);
- if (amount > 1)
- BASE_SetItemAmount(item, amount - 1);
- else
- memset(item, 0, sizeof(STRUCT_ITEM));
- return;
- }
- #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment