Advertisement
yojimbos_law

same script as below but without the memory issue

Jun 28th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.01 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. //FINE YOU WIN, JAVA.
  5. int[int][int][int][string]I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me;
  6.  
  7. string[int] mod;
  8. file_to_map("sorted tcrs modifiers.txt", mod);
  9. string[int] signs = {"Mongoose", "Wallaby", "Vole", "Marmot", "Opossum", "Platypus", "Blender", "Wombat", "Packrat"};
  10. int c;
  11.  
  12. //tcrsname[itemid][descid][class][sign]
  13. string[int][int][int][int] f;
  14. //now we fill the above with all items with modifiers.
  15.  
  16. item bufferi;
  17. boolean bufferb;
  18. string[int] bufferf;
  19. foreach i in signs{
  20. for j from 1 to 6{
  21. bufferf = file_to_array("data/TCRS_"+j.to_class().replace_string(" ","_")+"_"+signs[i]+".txt");
  22. foreach k in bufferf{
  23. bufferi = bufferf[k].group_string("^(\\d+)\\t")[0][1].to_int().to_item();
  24. //make sure we're looking at a piece of equipment.
  25. bufferb = false;
  26. foreach asdf in $slots[hat,back,shirt,weapon,pants,off-hand,acc1]{
  27. if(bufferi.to_slot() == asdf){
  28. bufferb = true;
  29. }
  30. }
  31. //these two items are annoying, so we exclude them
  32. if(bufferb && bufferi != $item[pantogram pants] && bufferi != $item[ring]){
  33. //only include items with at least one modifier
  34. bufferb = false;
  35. //check for modifiers before lucky.
  36. for asdf from 0 to 13{
  37. if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
  38. bufferb = true;
  39. }
  40. }
  41. //check for modifiers after lucky.
  42. if(!bufferb){
  43. for asdf from 15 to 169{
  44. if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
  45. bufferb = true;
  46. }
  47. }
  48. }
  49. //check for lucky, which doesn't actually appear on items for whatever reason.
  50. //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?
  51. if(!bufferb){
  52. //if item drop is a number other than 5, it'll have another modifier, so we won't end up here.
  53. if(bufferf[k].group_string("^\\d+\\t[^\\t]+\\t\\d+\\t\\t([^\\t]*Item Drop: \\+5)\\b").count() > 0){
  54. bufferb = true;
  55. }
  56. }
  57. if(bufferb){
  58. //so, this should be all equipment with at least one modifier.
  59. //f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1];
  60. f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k];
  61. //we leave on the extra crap here because we check it for item drop later for awful reasons.
  62. if(k%500 == 0){
  63. print(f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1]);
  64. }
  65. }
  66. }
  67. }
  68. clear(bufferf);
  69. }
  70. }
  71.  
  72. boolean[int] has_mod;
  73. int predicted_item_drop;
  74.  
  75. int I_should_really_have_some_counting;
  76. foreach i,j,k,asdf in f{
  77. //find all modifiers besides lucky.
  78. for a from 0 to 13{
  79. if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
  80. has_mod[a] = true;
  81. }
  82. else{
  83. has_mod[a] = false;
  84. }
  85. }
  86. for a from 15 to 169{
  87. if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
  88. has_mod[a] = true;
  89. }
  90. else{
  91. has_mod[a] = false;
  92. }
  93. }
  94. //now we do item drop arithmetic to find lucky.
  95. 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;
  96. //it'll be 5 bigger if we have lucky.
  97. 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){
  98. has_mod[14] = true;
  99. }
  100. else{
  101. has_mod[14] = false;
  102. }
  103. //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;
  104.  
  105. //grumble grumble.
  106. string stupid_java = "";
  107. for im_so_mad_right_now from 0 to 168{
  108. stupid_java += has_mod[im_so_mad_right_now].to_string()+"\t";
  109. }
  110. stupid_java += has_mod[169];
  111. I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me[j][k][asdf][stupid_java] = i;
  112.  
  113.  
  114. clear(has_mod);
  115. cli_execute("gc");
  116. I_should_really_have_some_counting++;
  117. if(I_should_really_have_some_counting%420 == 0){
  118. print(stupid_java);
  119. }
  120. }
  121.  
  122. 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