xFaelz

Novas Capa e skill Sub Cele

Apr 25th, 2018
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.79 KB | None | 0 0
  1. //Source Code By Faelz' && Thiagodp
  2. //Adicionar no _MSG_UseItem.cpp
  3. #pragma region Pedra Misteriosa
  4.     if (item->sIndex == 4148)
  5.     {
  6.         if (pMob[conn].extra.ClassMaster != CELESTIALCS && pMob[conn].extra.ClassMaster != SCELESTIAL)
  7.         {
  8.             SendItem(conn, m->SourType, m->SourPos, item);
  9.             return;
  10.         }
  11.  
  12.         int Village = BASE_GetVillage(pMob[conn].TargetX, pMob[conn].TargetY);
  13.  
  14.         if (Village < 0 || Village >= 5)
  15.         {
  16.             SendClientMessage(conn, g_pMessageStringTable[_NN_OnlyVillage]);
  17.             SendItem(conn, m->SourType, m->SourPos, item);
  18.             return;
  19.         }
  20.  
  21.         int cl = pMob[conn].extra.ClassMaster == CELESTIALCS ? 0 : 1;
  22.         int ncl = pMob[conn].extra.ClassMaster == CELESTIALCS ? 1 : 0;
  23.  
  24.         if (pMob[conn].extra.ClassMaster == CELESTIALCS)
  25.         {
  26.             pMob[conn].extra.ClassMaster = SCELESTIAL;
  27.             pMob[conn].extra.QuestInfo.Celestial.CelestialLevel = pMob[conn].MOB.BaseScore.Level;
  28.             int SkillOld = pMob[conn].MOB.LearnedSkill;
  29.             pMob[conn].MOB.LearnedSkill = pMob[conn].MOB.LearnedSkill | SkillOld;
  30.             STRUCT_ITEM *Capa = &pMob[conn].MOB.Equip[15];
  31.             if (Capa->sIndex == 3199) //Capa celestial White
  32.                 pMob[conn].MOB.Equip[15].sIndex = 573;
  33.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  34.             if (Capa->sIndex == 3198) //Capa Celestial Red
  35.                 pMob[conn].MOB.Equip[15].sIndex = 1770;
  36.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  37.             if (Capa->sIndex == 3197) //Capa Celestial Blue
  38.                 pMob[conn].MOB.Equip[15].sIndex = 1767;
  39.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  40.         }
  41.         else
  42.         {
  43.             pMob[conn].extra.ClassMaster = CELESTIALCS;
  44.             pMob[conn].extra.QuestInfo.Celestial.SubCelestialLevel = pMob[conn].MOB.BaseScore.Level;
  45.             pMob[conn].extra.QuestInfo.Celestial.CelestialLevel = pMob[conn].MOB.BaseScore.Level;
  46.             int SkillOld = pMob[conn].MOB.LearnedSkill;
  47.             int SkillLearn = (1 << 24);
  48.             pMob[conn].MOB.LearnedSkill = pMob[conn].MOB.LearnedSkill | SkillLearn + pMob[conn].MOB.LearnedSkill | SkillOld;
  49.             STRUCT_ITEM *Capa = &pMob[conn].MOB.Equip[15];
  50.             if (Capa->sIndex == 573) //Capa Sub-Celestial White
  51.                 pMob[conn].MOB.Equip[15].sIndex = 3199;
  52.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  53.             if (Capa->sIndex == 1770) //Capa Sub-Celestial Red
  54.                 pMob[conn].MOB.Equip[15].sIndex = 3198;
  55.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  56.             if (Capa->sIndex == 1767) //Capa Sub-Celestial Blue
  57.                 pMob[conn].MOB.Equip[15].sIndex = 3197;
  58.                 SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  59.         }
  60.         pMob[conn].extra.SaveCelestial[cl].BaseScore = pMob[conn].MOB.BaseScore;
  61.         pMob[conn].extra.SaveCelestial[cl].Class = pMob[conn].MOB.Class;
  62.         pMob[conn].extra.SaveCelestial[cl].Exp = pMob[conn].MOB.Exp;
  63.         pMob[conn].extra.SaveCelestial[cl].LearnedSkill = pMob[conn].MOB.LearnedSkill;
  64.         pMob[conn].extra.SaveCelestial[cl].ScoreBonus = pMob[conn].MOB.ScoreBonus;
  65.         pMob[conn].extra.SaveCelestial[cl].SkillBonus = pMob[conn].MOB.SkillBonus;
  66.         pMob[conn].extra.SaveCelestial[cl].SpecialBonus = pMob[conn].MOB.SpecialBonus;
  67.         pMob[conn].extra.SaveCelestial[cl].SPX = pMob[conn].MOB.SPX;
  68.         pMob[conn].extra.SaveCelestial[cl].SPY = pMob[conn].MOB.SPY;
  69.        
  70.  
  71.  
  72.         pMob[conn].extra.SaveCelestial[cl].Soul = pMob[conn].extra.Soul;
  73.  
  74.         memcpy(pMob[conn].extra.SaveCelestial[cl].SkillBar1, pMob[conn].MOB.SkillBar, 4);
  75.         memcpy(pMob[conn].extra.SaveCelestial[cl].SkillBar2, pUser[conn].CharShortSkill, 16);
  76.  
  77.         pMob[conn].MOB.BaseScore = pMob[conn].extra.SaveCelestial[ncl].BaseScore;
  78.         pMob[conn].MOB.Class = pMob[conn].extra.SaveCelestial[ncl].Class;
  79.         pMob[conn].MOB.Exp = pMob[conn].extra.SaveCelestial[ncl].Exp;
  80.         pMob[conn].MOB.LearnedSkill = pMob[conn].extra.SaveCelestial[ncl].LearnedSkill;
  81.         pMob[conn].MOB.ScoreBonus = pMob[conn].extra.SaveCelestial[ncl].ScoreBonus;
  82.         pMob[conn].MOB.SkillBonus =  pMob[conn].extra.SaveCelestial[ncl].SkillBonus;
  83.         pMob[conn].MOB.SpecialBonus = pMob[conn].extra.SaveCelestial[ncl].SpecialBonus;
  84.         pMob[conn].MOB.SPX = pMob[conn].extra.SaveCelestial[ncl].SPX;
  85.         pMob[conn].MOB.SPY = pMob[conn].extra.SaveCelestial[ncl].SPY;
  86.         pMob[conn].extra.Soul = pMob[conn].extra.SaveCelestial[ncl].Soul;
  87.  
  88.         memcpy(pMob[conn].MOB.SkillBar, pMob[conn].extra.SaveCelestial[ncl].SkillBar1, 4);
  89.         memcpy(pUser[conn].CharShortSkill, pMob[conn].extra.SaveCelestial[ncl].SkillBar2, 16);
  90.  
  91.         for (int i = 0; i < MAX_AFFECT; i++)
  92.         {
  93.             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)
  94.                 continue;
  95.  
  96.             memset(&pMob[conn].Affect[i], 0, sizeof(STRUCT_AFFECT));
  97.         }
  98.  
  99.         pMob[conn].MOB.Equip[0].sIndex = pMob[conn].extra.MortalFace + 5 + pMob[conn].MOB.Class;
  100.         SendItem(conn, ITEM_PLACE_EQUIP, 0, &pMob[conn].MOB.Equip[0]);
  101.  
  102.         MSG_SetShortSkill sm_sss;
  103.         memset(&sm_sss, 0, sizeof(MSG_SetShortSkill));
  104.  
  105.         sm_sss.Size = sizeof(MSG_SetShortSkill);
  106.         sm_sss.ID = ESCENE_FIELD;
  107.         sm_sss.Type = _MSG_SetShortSkill;
  108.                              
  109.         memcpy(sm_sss.Skill1, pMob[conn].extra.SaveCelestial[ncl].SkillBar1, 4);
  110.         memcpy(sm_sss.Skill2, pMob[conn].extra.SaveCelestial[ncl].SkillBar2, 16);
  111.  
  112.         pUser[conn].cSock.AddMessage((char*)&sm_sss, sizeof(MSG_SetShortSkill));
  113.  
  114.         BASE_GetBonusSkillPoint(&pMob[conn].MOB, &pMob[conn].extra);
  115.         BASE_GetBonusScorePoint(&pMob[conn].MOB, &pMob[conn].extra);
  116.  
  117.         BASE_GetHpMp(&pMob[conn].MOB, &pMob[conn].extra);
  118.  
  119.         pMob[conn].GetCurrentScore(conn);
  120.  
  121.         GetGuild(conn);
  122.  
  123.         SendScore(conn);
  124.         SendEtc(conn);
  125.  
  126.         sprintf(temp, "useitem,mistery stone change god2god");
  127.         ItemLog(temp, pUser[conn].AccountName, pUser[conn].IP);
  128.  
  129.         if (amount > 1)
  130.             BASE_SetItemAmount(item, amount - 1);
  131.  
  132.         else
  133.             memset(item, 0, sizeof(STRUCT_ITEM));
  134.  
  135.         return;
  136.     }
  137. #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment