Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. - change function to this
  2. bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum) //SAVIRIS EDIT - Dziwny algorytm treningu zast?iony najzwyklejsz?szans?na przeczytanie
  3. {
  4. CSkillProto * pkSk = CSkillManager::instance().Get(dwSkillVnum);
  5.  
  6. if (!pkSk)
  7. return false;
  8.  
  9. if (!IsLearnableSkill(dwSkillVnum))
  10. {
  11. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Ľö·ĂÇŇ Ľö ľř´Â ˝şĹłŔÔ´Ď´Ů."));
  12. return false;
  13. }
  14.  
  15. sys_log(0, "learn grand master skill[%d] cur %d, next %d", dwSkillVnum, get_global_time(), GetSkillNextReadTime(dwSkillVnum));
  16.  
  17. if (pkSk->dwType == 0)
  18. {
  19. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("±×·Łµĺ ¸¶˝şĹÍ Ľö·ĂŔ» ÇŇ Ľö ľř´Â ˝şĹłŔÔ´Ď´Ů."));
  20. return false;
  21. }
  22.  
  23. if (GetSkillMasterType(dwSkillVnum) != SKILL_GRAND_MASTER)
  24. {
  25. if (GetSkillMasterType(dwSkillVnum) > SKILL_GRAND_MASTER)
  26. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĆŰĆĺĆ® ¸¶˝şĹÍµČ ˝şĹłŔÔ´Ď´Ů. ´ő ŔĚ»ó Ľö·Ă ÇŇ Ľö ľř˝Ŕ´Ď´Ů."));
  27. else
  28. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ŔĚ ˝şĹłŔş ľĆÁ÷ ±×·Łµĺ ¸¶˝şĹÍ Ľö·ĂŔ» ÇŇ °ćÁöżˇ Ŕ̸ŁÁö ľĘľŇ˝Ŕ´Ď´Ů."));
  29. return false;
  30. }
  31.  
  32. std::string strTrainSkill;
  33. {
  34. std::ostringstream os;
  35. os << "training_grandmaster_skill.skill" << dwSkillVnum;
  36. strTrainSkill = os.str();
  37. }
  38.  
  39. // ż©±âĽ­ Č®·üŔ» °č»ęÇŐ´Ď´Ů.
  40. BYTE bLastLevel = GetSkillLevel(dwSkillVnum);
  41.  
  42. int idx = MIN(9, GetSkillLevel(dwSkillVnum) - 30);
  43.  
  44. sys_log(0, "LearnGrandMasterSkill %s table idx %d value %d", GetName(), idx, aiGrandMasterSkillBookCountForLevelUp[idx]);
  45.  
  46. int iBookCount = aiGrandMasterSkillBookCountForLevelUp[idx];
  47.  
  48. if (FindAffect(AFFECT_SKILL_BOOK_BONUS))
  49. {
  50. if (iBookCount&1)
  51. iBookCount = iBookCount / 2 + 1;
  52. else
  53. iBookCount = iBookCount / 2;
  54.  
  55. RemoveAffect(AFFECT_SKILL_BOOK_BONUS);
  56. }
  57.  
  58. int n = number(1, 100);
  59. sys_log(0, "Number(%d)", n);
  60.  
  61. DWORD nextTime = get_global_time() + number(28800, 43200);
  62.  
  63. bool bSuccess = false;
  64.  
  65. const int aiGrandMasterSkillBookSuccessProb[10] =
  66. { //1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 <-- Poziomy G
  67. 95, 90, 85, 80, 75, 70, 65, 60, 55, 50
  68. };
  69. if (n <= aiGrandMasterSkillBookSuccessProb[idx])
  70. {
  71. bSuccess = true;
  72. }
  73.  
  74. if (test_server)
  75. {
  76. ChatPacket(CHAT_TYPE_INFO, "[TEST] Dane: aiGrandMasterSkillBookSuccessProb[%d] = %d, n = %d", idx, aiGrandMasterSkillBookSuccessProb[idx], n);
  77. }
  78.  
  79. if (bSuccess)
  80. {
  81. SkillLevelUp(dwSkillVnum, SKILL_UP_BY_QUEST);
  82. }
  83.  
  84. SetSkillNextReadTime(dwSkillVnum, nextTime);
  85.  
  86. if (bLastLevel == GetSkillLevel(dwSkillVnum))
  87. {
  88. ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("Ĺ©Ŕą, ±â°ˇ żŞ·ůÇĎ°í ŔÖľî! ŔĚ°Ĺ Ľł¸¶ ÁÖČ­ŔÔ¸¶Ŕΰˇ!? Á¨Ŕĺ!"));
  89. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Ľö·ĂŔĚ ˝ÇĆĐ·Î łˇłµ˝Ŕ´Ď´Ů. ´Ů˝Ă µµŔüÇŘÁֽñ⠹ٶř´Ď´Ů."));
  90. LogManager::instance().CharLog(this, dwSkillVnum, "GM_READ_FAIL", "");
  91. return false;
  92. }
  93.  
  94. ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("¸öżˇĽ­ ąş°ˇ ČűŔĚ ĹÍÁ® łŞżŔ´Â ±âşĐŔĚľß!"));
  95. ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("¶ß°Ĺżî ą«ľůŔĚ °čĽÓ żëĽÚŔ˝Äˇ°í ŔÖľî! ŔĚ°Ç, ŔĚ°ÍŔş!"));
  96. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ő łôŔş °ćÁöŔÇ Ľö·ĂŔ» Ľş°řŔűŔ¸·Î łˇł»ĽĚ˝Ŕ´Ď´Ů."));
  97. LogManager::instance().CharLog(this, dwSkillVnum, "GM_READ_SUCCESS", "");
  98. return true;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement