Advertisement
yojimbos_law

script that eats 4gb of RAM for hours?

Jun 28th, 2019
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.47 KB | None | 0 0
  1. //itemid[descid][class][sign][modifier 0]...[modifier 169]
  2. int[int][int][int][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean][boolean] I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me ;
  3.  
  4. string[int] mod;
  5. file_to_map("sorted tcrs modifiers.txt", mod);
  6. string[int] signs = {"Mongoose", "Wallaby", "Vole", "Marmot", "Opossum", "Platypus", "Blender", "Wombat", "Packrat"};
  7. int c;
  8.  
  9. //tcrsname[itemid][descid][class][sign]
  10. string[int][int][int][int] f;
  11. //now we fill the above with all items with modifiers.
  12.  
  13. item bufferi;
  14. boolean bufferb;
  15. string[int] bufferf;
  16. foreach i in signs{
  17. for j from 1 to 6{
  18. bufferf = file_to_array("data/TCRS_"+j.to_class().replace_string(" ","_")+"_"+signs[i]+".txt");
  19. foreach k in bufferf{
  20. bufferi = bufferf[k].group_string("^(\\d+)\\t")[0][1].to_int().to_item();
  21. //make sure we're looking at a piece of equipment.
  22. bufferb = false;
  23. foreach asdf in $slots[hat,back,shirt,weapon,pants,off-hand,acc1]{
  24. if(bufferi.to_slot() == asdf){
  25. bufferb = true;
  26. }
  27. }
  28. //these two items are annoying, so we exclude them
  29. if(bufferb && bufferi != $item[pantogram pants] && bufferi != $item[ring]){
  30. //only include items with at least one modifier
  31. bufferb = false;
  32. //check for modifiers before lucky.
  33. for asdf from 0 to 13{
  34. if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
  35. bufferb = true;
  36. }
  37. }
  38. //check for modifiers after lucky.
  39. if(!bufferb){
  40. for asdf from 15 to 169{
  41. if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
  42. bufferb = true;
  43. }
  44. }
  45. }
  46. //check for lucky, which doesn't actually appear on items for whatever reason.
  47. //I assume it was modifier #13 at some point so jick made it not show up as a joke and then added more modifiers which got sorted above it?
  48. if(!bufferb){
  49. //if item drop is a number other than 5, it'll have another modifier, so we won't end up here.
  50. if(bufferf[k].group_string("^\\d+\\t[^\\t]+\\t\\d+\\t\\t([^\\t]*Item Drop: \\+5)\\b").count() > 0){
  51. bufferb = true;
  52. }
  53. }
  54. if(bufferb){
  55. //so, this should be all equipment with at least one modifier.
  56. //f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1];
  57. f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k];
  58. //we leave on the extra crap here because we check it for item drop later for awful reasons.
  59. if(k%500 == 0){
  60. print(f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1]);
  61. }
  62. }
  63. }
  64. }
  65. clear(bufferf);
  66. }
  67. }
  68.  
  69. boolean[int] has_mod;
  70. int predicted_item_drop;
  71.  
  72. foreach i,j,k,asdf in f{
  73. //find all modifiers besides lucky.
  74. for a from 0 to 13{
  75. if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
  76. has_mod[a] = true;
  77. }
  78. else{
  79. has_mod[a] = false;
  80. }
  81. }
  82. for a from 15 to 169{
  83. if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
  84. has_mod[a] = true;
  85. }
  86. else{
  87. has_mod[a] = false;
  88. }
  89. }
  90. //now we do item drop arithmetic to find lucky.
  91. predicted_item_drop = has_mod[11].to_int() * 25 + has_mod[12].to_int() * 15 + has_mod[13].to_int() * 10 + has_mod[162].to_int() * 20;
  92. //it'll be 5 bigger if we have lucky.
  93. if(f[i][j][k][asdf].group_string("^\\d+\\t[^\\t]+\\t\\d+\\t\\t([^\\t]*Item Drop: \\+"+(predicted_item_drop+5)+")\\b").count() > 0){
  94. has_mod[14] = true;
  95. }
  96. else{
  97. has_mod[14] = false;
  98. }
  99. I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me[j][k][asdf][has_mod[0]][has_mod[1]][has_mod[2]][has_mod[3]][has_mod[4]][has_mod[5]][has_mod[6]][has_mod[7]][has_mod[8]][has_mod[9]][has_mod[10]][has_mod[11]][has_mod[12]][has_mod[13]][has_mod[14]][has_mod[15]][has_mod[16]][has_mod[17]][has_mod[18]][has_mod[19]][has_mod[20]][has_mod[21]][has_mod[22]][has_mod[23]][has_mod[24]][has_mod[25]][has_mod[26]][has_mod[27]][has_mod[28]][has_mod[29]][has_mod[30]][has_mod[31]][has_mod[32]][has_mod[33]][has_mod[34]][has_mod[35]][has_mod[36]][has_mod[37]][has_mod[38]][has_mod[39]][has_mod[40]][has_mod[41]][has_mod[42]][has_mod[43]][has_mod[44]][has_mod[45]][has_mod[46]][has_mod[47]][has_mod[48]][has_mod[49]][has_mod[50]][has_mod[51]][has_mod[52]][has_mod[53]][has_mod[54]][has_mod[55]][has_mod[56]][has_mod[57]][has_mod[58]][has_mod[59]][has_mod[60]][has_mod[61]][has_mod[62]][has_mod[63]][has_mod[64]][has_mod[65]][has_mod[66]][has_mod[67]][has_mod[68]][has_mod[69]][has_mod[70]][has_mod[71]][has_mod[72]][has_mod[73]][has_mod[74]][has_mod[75]][has_mod[76]][has_mod[77]][has_mod[78]][has_mod[79]][has_mod[80]][has_mod[81]][has_mod[82]][has_mod[83]][has_mod[84]][has_mod[85]][has_mod[86]][has_mod[87]][has_mod[88]][has_mod[89]][has_mod[90]][has_mod[91]][has_mod[92]][has_mod[93]][has_mod[94]][has_mod[95]][has_mod[96]][has_mod[97]][has_mod[98]][has_mod[99]][has_mod[100]][has_mod[101]][has_mod[102]][has_mod[103]][has_mod[104]][has_mod[105]][has_mod[106]][has_mod[107]][has_mod[108]][has_mod[109]][has_mod[110]][has_mod[111]][has_mod[112]][has_mod[113]][has_mod[114]][has_mod[115]][has_mod[116]][has_mod[117]][has_mod[118]][has_mod[119]][has_mod[120]][has_mod[121]][has_mod[122]][has_mod[123]][has_mod[124]][has_mod[125]][has_mod[126]][has_mod[127]][has_mod[128]][has_mod[129]][has_mod[130]][has_mod[131]][has_mod[132]][has_mod[133]][has_mod[134]][has_mod[135]][has_mod[136]][has_mod[137]][has_mod[138]][has_mod[139]][has_mod[140]][has_mod[141]][has_mod[142]][has_mod[143]][has_mod[144]][has_mod[145]][has_mod[146]][has_mod[147]][has_mod[148]][has_mod[149]][has_mod[150]][has_mod[151]][has_mod[152]][has_mod[153]][has_mod[154]][has_mod[155]][has_mod[156]][has_mod[157]][has_mod[158]][has_mod[159]][has_mod[160]][has_mod[161]][has_mod[162]][has_mod[163]][has_mod[164]][has_mod[165]][has_mod[166]][has_mod[167]][has_mod[168]][has_mod[169]] = i;
  100.  
  101. clear(has_mod);
  102. cli_execute("gc");
  103. }
  104.  
  105. map_to_file(I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me, "tcrs functional modifiers by item");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement