Advertisement
Guest User

rs.pl

a guest
Mar 26th, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. load_highscores(URL, Highscores) :-
  2. write('loading highscores'),
  3. setup_call_cleanup(
  4. http_open(URL, In, []),
  5. process(In, Highscores),
  6. close(In)).
  7.  
  8. load_skillnames(SKILLURL, Skillnames) :-
  9. write('loading skillnames'),
  10. setup_call_cleanup(
  11. http_open(SKILLURL, In,[]),
  12. json_read_dict(In, Skillnames),
  13. close(In)
  14. ).
  15.  
  16.  
  17. process(In, Highscores) :-
  18. read_string(In, _, Str),
  19. split_string(Str, "\n\t ", "\n\t ", Lines),
  20. maplist(line_to_scores, Lines, Highscores).
  21.  
  22. line_to_scores(Line, Scores) :-
  23. split_string(Line, ",", "", Str_scores),
  24. maplist(number_string, Scores, Str_scores).
  25.  
  26.  
  27.  
  28. load_skills(Name, Result) :-
  29. write('loading skills'),
  30. Skurl = 'https://gist.githubusercontent.com/janjulius/02b75de6d47d2b712ad5123346ec00ac/raw/5659f9c6248977d526c234988bb69dc06d5a0ad1/skillnames.json',
  31. First = 'https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=',
  32. Second = Name,
  33. atomic_concat(First, Second, HREF),
  34. load_highscores(HREF, Result),
  35. load_skillnames(Skurl, Skillnames),
  36. write(Skillnames),
  37. write('load everything'),
  38. remember_skill(Result, Skillnames).
  39.  
  40. remember_skill([], []).
  41. remember_skill(_, []).
  42. remember_skill(X, []).
  43. remember_skill([H|T], [H1|T1]) :-
  44. write('remembering a skill'),
  45. write(H1),
  46. write(H),
  47. nth0(1, H, Level),
  48. process_hsresults(Level, H1),
  49. remember_skill(T, T1).
  50.  
  51. process_hsresults(H, H1) :-
  52. assert(myskill(H1, H)).
  53.  
  54.  
  55. can_do_quest(Quest, Result) :-
  56. requires_skill(Quest, Rl, Skill),
  57. atom_number(Rl, ReqLevel),
  58. myskill(Skill, Level),
  59. Level @>= ReqLevel.
  60.  
  61. maxed(Skill) :-
  62. myskill(Skill, Level), Level @>= 99.
  63.  
  64. requirements(Quest, PreQ, Lvl, Skill) :-
  65. requires_quest(Quest, PreQ),
  66. requires_skill(Quest, Lvl, Skill),
  67. requirements(PreQ, PreQ, Lvl, Skill).
  68.  
  69. requiredtree(X,Y) :-
  70. requires_quest(X, Y).
  71.  
  72. requiredtree(X, Y):-
  73. requires_quest(X, Z),
  74. requiredtree(Z, Y).
  75.  
  76. skill("Attack").
  77. skill("Strength").
  78. skill("Defence").
  79. skill("Hitpoints").
  80. skill("Ranged").
  81. skill("Prayer").
  82. skill("Magic").
  83. skill("Cooking").
  84. skill("Woodcutting").
  85. skill("Fletching").
  86. skill("Fishing").
  87. skill("Firemaking").
  88. skill("Crafting").
  89. skill("Smithing").
  90. skill("Mining").
  91. skill("Herblore").
  92. skill("Agility").
  93. skill("Thieving").
  94. skill("Slayer").
  95. skill("Farming").
  96. skill("Runecraft").
  97. skill("Hunter").
  98. skill("Construction").
  99.  
  100.  
  101. quest(heroesquest).
  102. quest(shieldofarrav).
  103. quest(lostcity).
  104. quest(merlinscrystal).
  105. quest(dragonslayer).
  106. quest(druidicritual).
  107.  
  108. requires_quest(heroesquest, shieldofarrav).
  109. requires_quest(heroesquest, lostcity).
  110. requires_quest(heroesquest, merlinscrystal).
  111. requires_quest(heroesquest, dragonslayer).
  112. requires_quest(heroesquest, druidicritual).
  113. requires_quest(druidicritual, herpes).
  114.  
  115. requires_skill(heroesquest, '53', "Cooking").
  116. requires_skill(heroesquest, '53', "Fishing").
  117. requires_skill(heroesquest, '25', "Herblore").
  118. requires_skill(heroesquest, '50', "Mining").
  119. requires_skill(lostcity, '31', "Crafting").
  120. requires_skill(lostcity, '36', "Woodcutting").
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement