//version 1.4 //deep corruptions will last until you restart the executable, and I don't know how to make chat commands so you can't disable that yet //however, there's currently no good way to corrupt sprites' individual pixels, nor sprite offsets. //Just like proper memory corruptions, this can cause your game to softlock or even crash! That's part of the fun!? //But if you turn on wussmode then that won't happen, at the cost of various exciting effects. //Naturally, it's not the most netplay-friendly. #define is_moddable(ob) return object_is_ancestor(temp, GameObject) //or object_is_ancestor(temp,loadbutton) or object_is_ancestor(temp,mutbutton) or object_is_ancestor(temp,button) or object_is_ancestor(temp,menubutton) #define get_moddable var temp=irandom(global.maxobj) while !object_is_ancestor(temp, GameObject) //or object_get_name(self)="GmlMod" or object_get_name(self)="BackCont"//ds_list_find_index(global.cexclude,object_get_name(self))!=-1//or !variable_instance_exists(self,"x") temp=irandom(global.maxobj) return temp #define rand_sprite var temp=irandom(global.maxsprite) while !sprite_exists(temp) temp=irandom(global.maxsprite) return temp #define init //sprits global.spr_coc_idle=sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC8SURBVDhPY6Al+I+ESQJgTfv+csAxTAwkSQj8zyrq+Z93S+c/06yU/yAAokH8yQdPEjTkv3WbAhhjMwCEQXIgdRDlmACsGIQFHi2FawYBEB+EQXyQOohy7ADsBZhByBgkDpKHKMMPwIpBNoL8DaNB4hBpwgBuAMz5ZBkA0mRt7w82hBQDwApBGtExTA6kiBBAVoyOCYL/GYW9YMUgW9ft3A3ng9ggGqQIH0BWBNcM4aLI4QXIinCxqQUYGADXs8XpY2tmmgAAAABJRU5ErkJggg==",1,8,8) global.spr_coc_walk=sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQCAYAAADpunr5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFuSURBVFhH7VM7bgIxEF1RpeQIOQA3oMgRuARFlAIpOQRVqOjS06aPkCJRcgXK3CMy+2aZkXG89uwOH62cJ42MPe/jsZbqinBe3QODz+9rQJrv3wcpPkOzA0y6IedbDNzL27tbHCZu9DF3AFbs17u92gNVar7FwE2Xj1QxPQo98Bp6FEXnWw2Iixr/bEQLYI/CHryG/gel59sNatAXxD5+4Rz9hhaFcAvNJ5gNahAXF8bfllecN+0kSs8nWA1Ez19PX32h+ZcZAJrp04w8bjzA0PNNBsSDLizugZRB0flmgxru+XXl88NKgTiZfLXH59f27C7Yn363QbRhcQ+kFuTm5krC8ngM4ePi/AiK4RmiD0vpITMkZklBeP79vfM2xPqd3yAkxC6hAXFZy3s0FKCsluE1HrkHS3mEc555KR4w1us8Q0jIDZRCOJAGorHkntauiGX5Z7G+BqzroyVYxH10nHfLTEZOe487/eM6qKojRAikRXXtR4oAAAAASUVORK5CYII=",6,8,8) global.spr_coc_icon=sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAIAAACHPC9vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG5SURBVEhLpZWxTgMxEEQtKko4EELQpEb8QQqa9LR8ABUFRT6CKh0dLaKlj5CQKJDgC5AoKfkHFMY3l/F67dyRsBpF692Zh5MDEg6bxupkNJJCXnYFuWACWROT329HVhxaG6R4B9KC7tuX9+efbSewMKdBfiiBNCJisVgojJ6lCQzEKQVlIFGuP08h5l1xVbIiSAcs6KO6aF7aTl4P3KW6A6bYyYfMztcDwypOBHKsPpBl6SjQ+Cam6iCxlGTY9qT0gcL0YuvuEirzdkIPBH8ddDWdQfIhZlno8aS0pbkCil3Bghi2CFykpMR4dmgrmpZv0yq+l5ZCmw3GrDtDMI3PzlepRFB1EC9f1Xog/hHgGbNRvwmIj6x9dLHQbw6yhcm/QPqM1wDBoRIIBQpeLUilbIynLoS93eP7SfiY7RPhiv9wsYWn/D3oDphiBxBZCOCInw+hIYIUO7esDASRRffj/IkBTIAgxa4GQOwdCEPWMEh3cW6B5MSEqoBit3RYqybWBrq7Tpynrs1zLTdvZDPWZuW/1+RAU16HczeBsu81J7iroKo6UA/rj5QEWsUalOIJRDlfj7Jg0/wC7RiXsJJwyJgAAAAASUVORK5CYII=",1,12,16) global.ccodtext="MEMORY CORRUPTIONS A LA VINESAUCE"; global.ccdtext=global.ccodtext; global.minCorruptChance=.003 global.maxCorruptChance=.06 global.corruptChance=global.minCorruptChance //on average, take 8 of minutes to reach full madness //global.corruptAccel=(global.maxCorruptChance-global.minCorruptChance)/(30*60*7/((global.maxCorruptChance-global.minCorruptChance)/2)) global.corruptAccel=(global.maxCorruptChance-global.minCorruptChance)/(30*60*8) //player sfx global.csndListPlr=["snd_hurt","snd_cptn","snd_spch","snd_dead","snd_lowa","snd_chst","snd_thrn","snd_crwn","snd_idpd","snd_valt","snd_lowh","snd_wrld"] //enemy sfx global.csndListHme=["snd_hurt","snd_dead","snd_mele"] global.csprListHme=["spr_idle","spr_hurt","spr_dead","spr_walk","spr_fire","spr_shadow"] global.shoops=ds_list_create() global.shoopsto=ds_list_create() global.command_list_coc = ["deepcorrupt"] //perform deep corruptions global.deepcorrupt=1 //if wussmode is on, no corruptions that can cause softlocks will be active. global.wussmode=0 //attempt to get max indices for assets; anything from mods loaded after this will not be accounted for global.maxsprite=sprEmoteIndicator while sprite_exists(global.maxsprite+1) global.maxsprite+=1 global.maxsnd=sndStrongSpiritLost while sound_exists(global.maxsnd+1) global.maxsnd+=1 global.maxobj=FireCont while object_exists(global.maxobj+1) global.maxobj+=1 #define scr_maxrecalc while sprite_exists(global.maxsprite+1) global.maxsprite+=1 while sound_exists(global.maxsnd+1) global.maxsnd+=1 while object_exists(global.maxobj+1) global.maxobj+=1 //wait file_load("kill.txt"); /* #define chat_command var iscommand = 0 for (i = 0; array_length_1d(global.command_list_coc) > i; i ++){ //check if the command is from Crown of Corruptions if (string_lower(argument0) == global.command_list_coc[i]){ iscommand = 1 } } if (iscommand == 1){ //if the command is from this mod, return true (keep it from saying it's not a known command) send_command(string_lower(argument0)) return true } #define send_command(command) switch(command){ case "deepcorrupt": if global.deepcorrupt=1 trace("Deep corruptions are now disabled!") else trace("Deep corruptions are now enabled! Watch out!") global.deepcorrupt=1-global.deepcorrupt break; }*/ #define crown_button sprite_index = global.spr_coc_icon; #define step if instance_number(Player)=0{ global.corruptChance=global.minCorruptChance ds_list_clear(global.shoops) ds_list_clear(global.shoopsto)} temp=0 while temp125 sel=wepmodcheck[sel-126]; if choose(0,1)=0 self.wep = sel else self.bwep=sel } if random(1)<.08 { tp=1+irandom(4); typ_amax[tp]=irandom(65535); } if random(1)<.08 { tp=1+irandom(4); ammo[tp]=irandom(typ_amax[tp]); } if random(1)<.2//.0001 self.curse=1-self.curse if random(1)<.2//.0001 self.bcurse=1-self.bcurse } break; case 4://change player race/health/xp target=Player with target{ //race, not done yet if random(1)<.1{ var racmod=mod_get_names("race"); var trac=array_length_1d(racmod); //race 0 is not a valid race? race=irandom_range(1,15+trac); if race>15 race=racmod[race-16]; } if random(1)<.2 player_set_skin(index, irandom(1)) //change max health if random(1)<.05 maxhealth=irandom(65535); //change current health if random(1)<.15 my_health=irandom(maxhealth); if random(1)<.1 GameCont.skillpoints+=-1+irandom(2); GameCont.rad=round(GameCont.rad*random(2)) GameCont.level=irandom(32) } break; case 5://change enemy health target=enemy with target{ //change max health if random(1)<.02 maxhealth=irandom(65535); //change current health if random(1)<.02 my_health=irandom(maxhealth); } break; case 5://change items on ground target=Pickup with target{ if random(1)<.3 curse=irandom(1) if random(1)<.3 cursed=irandom(1) if random(1)<.3 ammo=irandom(65535) } wepmodcheck = mod_get_names("weapon") global.temp = 125+array_length_1d(wepmodcheck); with WepPickup{ //change what weapon it is if random(1)<.5{ //pick one sel=irandom(global.temp); //if mod, set sel appropriately if sel>125 sel=other.wepmodcheck[sel-126]; wep=sel } } break; case 6://modify difficulty target=GameCont with target{ if random(1)<.1 loops=max(0,loops-1+irandom(2)) if random(1)<.1 area=max(0,area-1+irandom(2)) if random(1)<.1 subarea=max(0,subarea-1+irandom(2)) if random(1)<.1 level=max(0,level-1+irandom(2)) if random(1)<.1 horror=max(0,horror-1+irandom(2)) } break; case 7://modify which mutations are active if random(1)<.3{ skillmods=mod_get_names("skill") temp=29+array_length_1d(skillmods) temp=1+irandom(temp-1) if temp>29 temp=skillmods[temp-30] //string_save("s"+string(temp),"kill.txt") skill_set(temp, irandom(1)) } if random(1)<.1{ temp=irandom(13) ultra_set(temp, irandom(ultra_count(temp)), irandom(1)) } break; case 8://modify what sounds something makes with hitme if random(1)<.4{ t2=array_length_1d(global.csndListHme) temp=0 while temp