yojimbos_law icon

same script as below but without the memory issue

yojimbos_law | PRO | 06/29/19 03:06:34 AM UTC | 0 ⭐ | 542 👁️ | Never ⏰ | []
text |

8.01 KB

|

None

|

0 👍

/

0 👎

//itemid[descid][class][sign][modifier 0]...[modifier 169]
//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 ;
 //FINE YOU WIN, JAVA.
int[int][int][int][string]I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me;
 string[int] mod;
file_to_map("sorted tcrs modifiers.txt", mod);
string[int] signs = {"Mongoose", "Wallaby", "Vole", "Marmot", "Opossum",     "Platypus", "Blender", "Wombat", "Packrat"};
int c;
 //tcrsname[itemid][descid][class][sign]
string[int][int][int][int] f;
//now we fill the above with all items with modifiers.
 item bufferi;
boolean bufferb;
string[int] bufferf;
foreach i in signs{
	for j from 1 to 6{ 
		bufferf = file_to_array("data/TCRS_"+j.to_class().replace_string(" ","_")+"_"+signs[i]+".txt");
		foreach k in bufferf{
			bufferi = bufferf[k].group_string("^(\\d+)\\t")[0][1].to_int().to_item();
			//make sure we're looking at a piece of equipment.
			bufferb = false;
			foreach asdf in $slots[hat,back,shirt,weapon,pants,off-hand,acc1]{
				if(bufferi.to_slot() == asdf){
					bufferb = true;
				}
			}
			//these two items are annoying, so we exclude them
			if(bufferb && bufferi != $item[pantogram pants] && bufferi != $item[ring]){
				//only include items with at least one modifier
				bufferb = false;
				//check for modifiers before lucky.
				for asdf from 0 to 13{
					if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
						bufferb = true;
					}
				}
				//check for modifiers after lucky.
				if(!bufferb){
					for asdf from 15 to 169{
						if(bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[asdf]+"\\b").count() > 0){
							bufferb = true;
						}
					}
				}
				//check for lucky, which doesn't actually appear on items for whatever reason.
				//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?
				if(!bufferb){
					//if item drop is a number other than 5, it'll have another modifier, so we won't end up here.
					if(bufferf[k].group_string("^\\d+\\t[^\\t]+\\t\\d+\\t\\t([^\\t]*Item Drop: \\+5)\\b").count() > 0){
						bufferb = true;
					}
				}
				if(bufferb){
					//so, this should be all equipment with at least one modifier.
					//f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k].group_string("^\\d+\\t([^\\t]+)\\t")[0][1];
					f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1] = bufferf[k];
					//we leave on the extra crap here because we check it for item drop later for awful reasons.
					if(k%500 == 0){
						print(f[bufferi.to_int()][bufferi.descid.to_int()][j][i+1]);
					}
				}
			}
		}
		clear(bufferf);
	}
}
 boolean[int] has_mod;
int predicted_item_drop;
 int I_should_really_have_some_counting;
foreach i,j,k,asdf in f{
	//find all modifiers besides lucky.
	for a from 0 to 13{
		if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
			has_mod[a] = true;
		}
		else{
			has_mod[a] = false;
		}
	}
	for a from 15 to 169{
		if(f[i][j][k][asdf].group_string("^\\d+\\t([^\\t]+)\\t")[0][1].group_string("\\b"+mod[a]+"\\b").count() > 0){
			has_mod[a] = true;
		}
		else{
			has_mod[a] = false;
		}
	}
	//now we do item drop arithmetic to find lucky.
	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;
	//it'll be 5 bigger if we have lucky.
	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){
		has_mod[14] = true;
	}
	else{
		has_mod[14] = false;
	}
	 //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;
 	 //grumble grumble.
	string stupid_java = "";
	for im_so_mad_right_now from 0 to 168{
		stupid_java += has_mod[im_so_mad_right_now].to_string()+"\t";
	}
	stupid_java += has_mod[169];
	I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me[j][k][asdf][stupid_java] = i;
  	clear(has_mod);
	cli_execute("gc");
	I_should_really_have_some_counting++;
	if(I_should_really_have_some_counting%420 == 0){
		print(stupid_java);
	}
}
 map_to_file(I_just_want_a_spreadsheet_to_be_pretty_Dont_judge_me, "tcrs functional modifiers by item");

Comments