<undefined> 0 -1 0 -1 <undefined> <undefined> 1 603 7 0 0 -1 2 self 0 0 1 network_set_config(network_config_connect_timeout, 5000); strict_init("dictionary.json"); queenHealthResetQueued = false; canSend = false; showName = true; metroidCountChanged = false; itemChanged = false; metdeadChanged = false; eventChanged = false; mapChanged = false; itemstakenChanged = false; maxmissilesChanged = false; maxsmissilesChanged = false; maxpbombsChanged = false; maxhealthChanged = false; etanksChanged = false; mtanksChanged = false; stanksChanged = false; ptanksChanged = false; connected = false; queenHealthWait = false; queenDead = false; sameRoom = false; queenHealth = 600; phase = 0; maxpbombsTimer = 10; maxhealthTimer = 10; etanksTimer = 10; mtanksTimer = 10; stanksTimer = 10; ptanksTimer = 10; teleport = false; state = undefined; seed = undefined; var type; type = network_socket_tcp; ini_open(working_directory + "\mod settings.ini"); ipaddress = ini_read_string("ModSettings", "ipaddress", "127.0.0.1"); name = ini_read_string("ModSettings", "displayname", "name"); port = ini_read_real("ModSettings", "port", 64198); reactorsequence = string_lower(ini_read_string("ModSettings", "reactorsequence", "synced")); preferredcolor = string_lower(ini_read_string("ModSettings", "preferredcolor", "random")); ini_close(); socket = network_create_socket(type); isConnected = network_connect(socket, ipaddress, port); switch(preferredcolor){ case "green": preferredcolor = 1; break; case "red": preferredcolor = 2; break; case "blue": preferredcolor = 3; break; case "yellow": preferredcolor = 4; break; case "orange": preferredcolor = 5; break; case "purple": preferredcolor = 6; break; case "pink": preferredcolor = 7; break; case "white": preferredcolor = 8; break; case "random": preferredcolor = 9; break; } var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); global.queenhealthPrev = 600; global.queenphasePrev = 0; if(instance_exists(oCharacter)){ global.prevX = oCharacter.x; global.prevY = oCharacter.y; global.prevSprite = oCharacter.sprite_index; global.prevIndex = oCharacter.image_index; } global.roomPrev = room; global.clientID = 0; global.packetID = 0; global.receivedPacketID = 0; global.onlineList = ds_grid_create(3, 35); global.onlineSend = ds_grid_create(3, 35); global.onlineItem = ds_grid_create(1, 1); global.onlineMetdead = ds_grid_create(1, 1); global.onlineEvent = ds_grid_create(1, 1); global.onlineMap = ds_grid_create(1, 1); global.onlineReceived = ds_grid_create(3, 35); //global.storedBuffers = ds_grid_create(2, 1); global.receivedPacketIDs = ds_list_create(); roomList = ds_list_create(); roomListData = ds_list_create(); global.idList = ds_list_create(); posData = ds_list_create(); global.hatchlingList = ds_list_create(); ds_grid_clear(global.onlineSend, -1); ds_grid_clear(global.onlineItem, -1); ds_grid_clear(global.onlineMetdead, -1); ds_grid_clear(global.onlineEvent, -1); ds_grid_clear(global.onlineReceived, -1); for(var i=0; i<ds_grid_height(global.onlineList); i++){ ds_grid_set(global.onlineList, 2, i, i); } update_variables("initprev"); update_variables("onlinevars"); if(shader_is_compiled(shd_pal_swapper)){ alpha = 1 } else { alpha = 0.5 } posX = 3; posY = 3; time = 60; trail = 0; 1 603 7 0 0 -1 2 self 0 0 1 if(connected){ popup_text("Disconnected"); buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 254); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } network_destroy(socket); buffer_delete(buffer); ds_grid_destroy(global.onlineList); ds_grid_destroy(global.onlineSend); ds_grid_destroy(global.onlineReceived); //ds_grid_destroy(global.storedBuffers); ds_grid_destroy(global.onlineItem); ds_grid_destroy(global.onlineMetdead); ds_grid_destroy(global.onlineEvent); ds_grid_destroy(global.onlineMap); ds_list_destroy(global.receivedPacketIDs); ds_list_destroy(roomList); ds_list_destroy(roomListData); ds_list_destroy(global.idList); ds_list_destroy(posData); ds_list_destroy(global.hatchlingList); global.canConnect = false; oControl.alarm[10] = 90; 1 603 7 0 0 -1 2 self 0 0 1 buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 101); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_s16, room); buffer_write(buffer, buffer_s16, posX); buffer_write(buffer, buffer_s16, posY); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); if(ds_list_size(posData)){ } alarm[11] = 20; 1 603 7 0 0 -1 2 self 0 0 1 if(sameRoom){ if(instance_exists(oCharacter)){ if(oCharacter.x != global.prevX || oCharacter.y != global.prevY || global.roomPrev != room || global.prevSprite != oCharacter.sprite_index || global.prevIndex != oCharacter.image_index){ if(global.prevX != oCharacter.x){ global.prevX = oCharacter.x; } if(global.prevY != oCharacter.y){ global.prevY = oCharacter.y; } if(global.prevSprite != oCharacter.sprite_index){ global.prevSprite = oCharacter.sprite_index; } if(global.prevIndex != oCharacter.image_index){ global.prevIndex = oCharacter.image_index; } buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 100); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_s16, oCharacter.x); buffer_write(buffer, buffer_s16, oCharacter.y); buffer_write(buffer, buffer_s16, oCharacter.sprite_index); buffer_write(buffer, buffer_s16, oCharacter.image_index); buffer_write(buffer, buffer_s16, oCharacter.aspr1); buffer_write(buffer, buffer_s16, oCharacter.asprx); buffer_write(buffer, buffer_s16, oCharacter.aspry); buffer_write(buffer, buffer_s16, oCharacter.aspr2); buffer_write(buffer, buffer_s16, oCharacter.aspr2x); buffer_write(buffer, buffer_s16, oCharacter.aspr2y); buffer_write(buffer, buffer_s16, oCharacter.aspr2a); buffer_write(buffer, buffer_s16, oCharacter.mirror); buffer_write(buffer, buffer_s16, oCharacter.armmsl); buffer_write(buffer, buffer_s16, room); buffer_write(buffer, buffer_string, name); buffer_write(buffer, buffer_s16, oCharacter.image_blend); buffer_write(buffer, buffer_s8, oCharacter.fxtimer); buffer_write(buffer, buffer_s16, global.roomPrev); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); if(global.roomPrev != room){ global.roomPrev = room; } } } } alarm[10] = 3; 1 603 7 0 0 -1 2 self 0 0 1 if(global.maxsmissilesPrev != global.maxsmissiles){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 12); buffer_write(buffer, buffer_u8, global.maxsmissiles); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); maxsmissilesChanged = true; } if(!maxsmissilesChanged){ alarm[9] = 10; } if(maxsmissilesChanged){ maxsmissilesChanged = false; alarm[9]= 75; } 1 603 7 0 0 -1 2 self 0 0 1 if(global.maxmissilesPrev != global.maxmissiles){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 11); buffer_write(buffer, buffer_u16, global.maxmissiles); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); maxmissilesChanged = true; } if(!maxmissilesChanged){ alarm[8] = 10; } if(maxmissilesChanged){ maxmissilesChanged = false; alarm[8]= 75; } 1 603 7 0 0 -1 2 self 0 0 1 if(global.itemstakenPrev != global.itemstaken){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 10); buffer_write(buffer, buffer_u8, global.itemstaken); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); itemstakenChanged = true; } if(!itemstakenChanged){ alarm[7] = 10; } if(itemstakenChanged){ itemstakenChanged = false; alarm[7] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 var v = 0; if(global.ingame){ for(var i=0; i<array_height_2d(global.dmap); i++){ for(var f=0; f<array_length_2d(global.dmap, i); f++){ if(global.dmapPrev[i, f] != global.dmap[i, f]){ global.dmapChanges[v, 0] = global.dmap[i, f]; global.dmapChanges[v, 1] = i; global.dmapChanges[v, 2] = f; global.onlineMap[# 0, 0] = global.dmapChanges; mapChanged = true; if(v == 30){ break; } v++; } } } } if(mapChanged){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 9); buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineMap))); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } if(!mapChanged){ alarm[6] = 10; } if(mapChanged){ mapChanged = false; alarm[6] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 var v = 0; for(var f=0; f<array_length_1d(global.event); f++){ if(f > 350){ break; } if(global.eventPrev[f] != global.event[f]){ global.eventChanges[v, 0] = global.event[f]; global.eventChanges[v, 1] = f; global.onlineEvent[# 0, 0] = global.eventChanges; eventChanged = true; v++; } } if(eventChanged){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 8); buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineEvent))); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } if(!eventChanged){ alarm[5] = 10; } if(eventChanged){ eventChanged = false; alarm[5] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 var v = 0; for(var f=0; f<array_length_1d(global.metdead); f++){ if(global.metdeadPrev[f] != global.metdead[f]){ global.metdeadChanges[v, 0] = global.metdead[f]; global.metdeadChanges[v, 1] = f; global.onlineMetdead[# 0, 0] = global.metdeadChanges; metdeadChanged = true; v++; } } if(metdeadChanged){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 7); buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineMetdead))); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } if(!metdeadChanged){ alarm[4] = 10; } if(metdeadChanged){ metdeadChanged = false; alarm[4] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 var v = 0; for(var f=0; f<array_length_1d(global.item); f++){ if(global.itemPrev[f] != global.item[f]){ global.itemChanges[v, 0] = global.item[f]; global.itemChanges[v, 1] = f; global.onlineItem[# 0, 0] = global.itemChanges; itemChanged = true; v++; } } if(itemChanged){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 6); buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineItem))); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } if(!itemChanged){ alarm[3] = 10; } if(itemChanged){ itemChanged = false; alarm[3] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 if(global.monstersleftPrev != global.monstersleft){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 4); buffer_write(buffer, buffer_s8, global.monstersleft); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); metroidCountChanged = true; } if(global.monstersareaPrev != global.monstersarea){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 5); buffer_write(buffer, buffer_s8, global.monstersarea); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); metroidCountChanged = true; } if(!metroidCountChanged){ alarm[2] = 10; } if(metroidCountChanged){ metroidCountChanged = false; alarm[2] = 75; } 1 603 7 0 0 -1 2 self 0 0 1 if(queenHealthResetQueued){ if(!is_undefined(oQueenHead.myhealth) && !is_undefined(oQueen.phase)){ if(global.queenhealthPrev != queenHealth){ if(queenHealth == 999999){ queenHealth = 0; oQueenHead.myhealth = queenHealth; with(oQueenHead){ if (myhealth <= 0 && state != 100 && state != 50) { if (oQueen.phase < 3) head_damage = 1; if (oQueen.phase == 3) head_damage = 2; if (oQueen.phase < 5) { state = 50; statetime = 0; myhealth = 999999; with (oQueen) { state = 6; statetime = 0; } } if (oQueen.phase == 5) { with (oQueen) { state = 100; statetime = 0; } state = 100; } } } } } oQueenHead.myhealth = queenHealth; oQueen.phase = phase; queenHealthResetQueued = false; if(phase >= 1 && instance_exists(inst_146524)){ event_perform_object(oQueenFireball, ev_other, ev_user1); oQueen.state = 7; oQueen.statetime = 0; with(oQueen){ head_target_snap = 1; head_target_x = x + neck_x + 10; head_target_y = y + neck_y; } } if(phase >= 2 && instance_exists(inst_146525) && instance_exists(inst_146520)){ event_perform_object(oQueenFireball, ev_other, ev_user2); oQueen.state = 7; oQueen.statetime = 0; with(oQueen){ head_target_snap = 1; head_target_x = x + neck_x + 10; head_target_y = y + neck_y; } } if(phase >= 3 && instance_exists(inst_146526) && instance_exists(inst_146514)){ event_perform_object(oQueenFireball, ev_other, ev_user3); oQueen.state = 7; oQueen.statetime = 0; with(oQueen){ head_target_snap = 1; head_target_x = x + neck_x + 10; head_target_y = y + neck_y; } } if(phase >= 4 && instance_exists(inst_146527)){ event_perform_object(oQueenFireball, ev_other, ev_user4); oQueen.state = 7; oQueen.statetime = 0; with(oQueen){ head_target_snap = 1; head_target_x = x + neck_x + 10; head_target_y = y + neck_y; } } } alarm[1] = 5; } 1 603 7 0 0 -1 2 self 0 0 1 update_variables("onlinevars"); for(var i=0; i<ds_grid_height(global.onlineList); i++){ if(global.onlineList[# 0, i] != global.onlineList[# 1, i] && i != 0 && i != 1 && i != 3){ global.onlineSend[# 0, i] = global.onlineList[# 0, i]; global.onlineSend[# 1, i] = global.onlineList[# 1, i]; global.onlineSend[# 2, i] = global.onlineList[# 2, i]; canSend = true; alarm[0] = 600; } /* if(i == 0){ var v = 0; var itemPrev = global.onlineList[# 0, 0]; var item = global.onlineList[# 1, 0]; for(var f=0; f<array_length_1d(item); f++){ if(itemPrev[f] != item[f]){ global.itemChanges[v, 0] = global.item[f]; global.itemChanges[v, 1] = f; global.onlineSend[# 1, 0] = global.itemChanges; global.onlineSend[# 2, 0] = global.onlineList[# 2, 0]; show_debug_message(string(global.itemPrev[f]) + " " + string(global.item[f])); show_debug_message("item changed"); canSend = true; v++; } } } if(i == 1){ var v = 0; var metdeadPrev = global.onlineList[# 0, 1]; var metdead = global.onlineList[# 1, 1]; for(var f=0; f<array_length_1d(metdead); f++){ if(metdeadPrev[f] != metdead[f]){ global.metdeadChanges[v, 0] = global.metdead[f]; global.metdeadChanges[v, 1] = f; global.onlineSend[# 1, 1] = global.metdeadChanges; global.onlineSend[# 2, 1] = global.onlineList[# 2, 1]; show_debug_message(string(global.metdeadPrev[f]) + " " + string(global.metdead[f])); show_debug_message("metdead changed"); canSend = true; v++; } } } if(i == 3){ var v = 0; var eventPrev = global.onlineList[# 0, 3]; var event = global.onlineList[# 1, 3]; for(var f=0; f<array_length_1d(eventPrev) - 1; f++){ if(eventPrev[f] != event[f]){ global.eventChanges[v, 0] = global.event[f]; global.eventChanges[v, 1] = f; global.onlineSend[# 1, 3] = global.eventChanges; global.onlineSend[# 2, 3] = global.onlineList[# 2, 3]; show_debug_message(string(global.eventPrev[f]) + " " + string(global.event[f])); show_debug_message("event changed"); canSend = true; v++; } } } */ } if(canSend){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 0); buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(global.onlineSend))); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_u32, global.packetID); //global.storedBuffers[# 0, global.packetID] = global.onlineSend; //global.storedBuffers[# 1, global.packetID] = global.clientID; var result = network_send_packet(socket, buffer, buffer_tell(buffer)); show_debug_message("packetID = " + string(global.packetID)); global.packetID++; //ds_grid_resize(global.storedBuffers, 2, global.packetID + 1); ds_grid_clear(global.onlineSend, -1); } if(!canSend){ alarm[0] = 10; } if(canSend){ canSend = false; alarm[0] = 75; } if(instance_exists(oCharacter)){ check_areaclear(); if(global.playerhealth <= 0){ if(oCharacter.state != oCharacter.DEFEATED){ oCharacter.alarm[0] = 6; oCharacter.state = oCharacter.DEFEATED; mus_current_fadeout(); sfx_stop_all(); } } } if(instance_exists(oQueenHead) && !is_undefined(oQueenHead.myhealth) && !is_undefined(oQueen.phase)){ if(global.queenhealthPrev != oQueenHead.myhealth || oQueen.phase != phase){ show_debug_message("queen health sent " + string(oQueenHead.myhealth)); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 2); buffer_write(buffer, buffer_s32, oQueenHead.myhealth); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_s8, oQueen.phase); buffer_write(buffer, buffer_s8, oQueen.state); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } } /* if(instance_exists(oQueen) && !is_undefined(oQueen.phase)){ if(oQueen.phase < phase){ oQueen.phase = phase; } else if(oQueen.phase > phase && global.event[303] == 0){ phase = oQueen.phase; } } */ 1 603 7 0 0 -1 2 self 0 0 1 if(!connected){ if(isConnected >= 0){ connected = true; popup_text("Connected"); buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 1); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); instance_create(x, y, oNametag); } else { instance_destroy(); popup_text("Failed to connect"); } } if(instance_exists(oCharacter)){ if(global.event[203] < 9 && string_lower(reactorsequence) == "disabled"){ global.event[203] = 9; } } if(global.event[303] > 0){ phase = 0; } if(room == rm_death){ phase = 0; queenHealth = 600; } if((room == rm_a4b02 || room == rm_a4b03 || room == rm_a4b04 || room == rm_a4b05 || room == rm_a4b06 || room == rm_a4b07 || room == rm_a4b08 || room == rm_a4b09 || room == rm_a4b10 || room == rm_a4b11 || room == rm_a4b12 || room == rm_a4b13 || room == rm_a4b14 || room == rm_a4b15 || room == rm_a4b16 || room == rm_a4b17 || room == rm_a4b18 || room == rm_a4b19) && global.event[203] > 0 && global.event[203] < 9 && !instance_exists(oA4EscapeControl)){ instance_create(x, y, oA4EscapeControl); } if(room == rm_a4b01 && global.event[203] == 9 && instance_exists(oA4EscapeControl)){ with(oA4EscapeControl){ event_user(0); } } if(is_undefined(oQueenHead.myhealth) && is_undefined(oQueen.phase)){ if(!queenHealthResetQueued){ queenHealthResetQueued = true; alarm[1] = 5; } } if(instance_exists(oQueen) && !is_undefined(oQueen.phase)){ if(global.event[303] > 0 && !queenDead){ with(oQueen){ state = 100; statetime = 0; mus_fadeout(musQueen); mus_fadeout(musQueen2); mus_fadeout(musQueen3); mus_fadeout(musQueenBreak); mus_fadeout(musQueenIntro); } queenDead = true; } } if(keyboard_check_pressed(vk_f2)){ instance_destroy(); } if(keyboard_check_pressed(vk_f3)){ popup_text_ext(string(oControl.seed), 300); } if(keyboard_check_pressed(vk_f4)){ showName = -showName; if(showName){ popup_text("Nametags enabled"); } else { popup_text("Nametags disabled"); } } if(instance_exists(oCharacter)){ posX = global.mapposx; posY = global.mapposy; } else { posX = posX; posY = posY; } if(time == 0 && connected){ if(ds_list_size(global.idList) > 0){ checkListID = ds_list_create(); for(var i=0; i<ds_list_size(global.idList); i++){ var arr = global.idList[| i]; ds_list_add(checkListID, arr[0, 0]); } for(var i=0; i<ds_list_size(roomList); i++){ var ID = roomList[| i]; var findID = ds_list_find_index(checkListID, ID); if(findID < 0){ ds_list_delete(roomList, i); } } for(var i=0; i<ds_list_size(roomListData); i++){ var arr = roomListData[| i]; var findID = ds_list_find_index(checkListID, arr[0]); if(findID < 0){ ds_list_delete(roomListData, i); } } for(var i=0; i<ds_list_size(posData); i++){ var arr = posData[| i]; var findID = ds_list_find_index(checkListID, arr[0]); if(findID < 0){ ds_list_delete(posData, i); } } ds_list_destroy(checkListID); } time = 60; } if(maxpbombsTimer == 0 && connected){ if(global.maxpbombsPrev != global.maxpbombs){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 13); buffer_write(buffer, buffer_u8, global.maxpbombs); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); maxpbombsChanged = true; } if(!maxpbombsChanged){ maxpbombsTimer = 10; } if(maxpbombsChanged){ maxpbombsChanged = false; maxpbombsTimer = 75; } } if(maxhealthTimer == 0 && connected){ if(global.maxhealthPrev != global.maxhealth){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 14); buffer_write(buffer, buffer_u16, global.maxhealth); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); maxhealthChanged = true; } if(!maxhealthChanged){ maxhealthTimer = 10; } if(maxhealthChanged){ maxhealthChanged = false; maxhealthTimer = 75; } } if(etanksTimer == 0 && connected){ if(global.etanksPrev != global.etanks){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 15); buffer_write(buffer, buffer_u8, global.etanks); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); etanksChanged = true; } if(!etanksChanged){ etanksTimer = 10; } if(etanksChanged){ etanksChanged = false; etanksTimer = 75; } } if(mtanksTimer == 0 && connected){ if(global.mtanksPrev != global.mtanks){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 16); buffer_write(buffer, buffer_u8, global.mtanks); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); mtanksChanged = true; } if(!mtanksChanged){ mtanksTimer = 10; } if(mtanksChanged){ mtanksChanged = false; mtanksTimer = 75; } } if(stanksTimer == 0 && connected){ if(global.stanksPrev != global.stanks){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 17); buffer_write(buffer, buffer_u8, global.stanks); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); stanksChanged = true; } if(!stanksChanged){ stanksTimer = 10; } if(stanksChanged){ stanksChanged = false; stanksTimer = 75; } } if(ptanksTimer == 0 && connected){ if(global.ptanksPrev != global.ptanks){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 18); buffer_write(buffer, buffer_u8, global.ptanks); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); ptanksChanged = true; } if(!ptanksChanged){ ptanksTimer = 10; } if(ptanksChanged){ ptanksChanged = false; ptanksTimer = 75; } } time--; maxpbombsTimer--; maxhealthTimer--; etanksTimer--; mtanksTimer--; stanksTimer--; ptanksTimer--; if(instance_exists(self)){ if(ds_list_size(roomListData) > 0){ for(var h=0; h<ds_list_size(roomListData); h++){ var arrList = roomListData[| h]; var arrID = arrList[0]; var arrX = arrList[1]; var arrY = arrList[2]; var findHatchlingID = ds_list_find_index(global.hatchlingList, arrID); if(instance_exists(oHatchling)){ if(findHatchlingID == -1){ ds_list_add(global.hatchlingList, arrID); var hatchling = instance_create(arrX, arrY, oHatchling); with(hatchling){ targetx = arrX; targety = arrY; myid = arrID; } } } else { if(findHatchlingID >= 0){ ds_list_delete(global.hatchlingList, findHatchlingID); } } } } else { if(ds_list_size(global.hatchlingList) > 0){ ds_list_clear(global.hatchlingList); } } } 1 603 7 0 0 -1 2 self 0 0 1 var type_event = ds_map_find_value(async_load, "type"); switch(type_event){ case network_type_data: var _buffer = ds_map_find_value(async_load, "buffer"); buffer_seek(_buffer, buffer_seek_start, 0); show_debug_message(string(buffer_get_size(_buffer))); msgid = buffer_read(_buffer, buffer_u8); switch(msgid){ case 254: var clientID = buffer_read(_buffer, buffer_u8); if(ds_list_size(roomList) > 0){ var findsocket = ds_list_find_index(roomList, clientID); if(findsocket >= 0){ ds_list_delete(roomList, findsocket); } } for(var i=0; i<ds_list_size(roomListData); i++){ var arrList = roomListData[| i]; if(arrList[0] == clientID){ ds_list_delete(roomListData, i); } } for(var f=0; f<ds_list_size(global.idList); f++){ var arrList = global.idList[| f]; if(clientID == arrList[0, 0]){ ds_list_delete(global.idList, f); } } for(var v=0; v<ds_list_size(posData); v++){ var arrList = posData[| v]; if(clientID == arrList[0]){ ds_list_delete(posData, v); } } if(instance_exists(oHatchling)){ with(oHatchling){ if(myid != 0){ instance_destroy(); } } } break; case 200: global.clientID = preferredcolor; break; case 100: var clientID = buffer_read(_buffer, buffer_u8); var clientX = buffer_read(_buffer, buffer_s16); var clientY = buffer_read(_buffer, buffer_s16); var clientSprite = buffer_read(_buffer, buffer_s16); var clientImage = buffer_read(_buffer, buffer_s16); var clientA1 = buffer_read(_buffer, buffer_s16); var clientA1X = buffer_read(_buffer, buffer_s16); var clientA1Y = buffer_read(_buffer, buffer_s16); var clientA2 = buffer_read(_buffer, buffer_s16); var clientA2X = buffer_read(_buffer, buffer_s16); var clientA2Y = buffer_read(_buffer, buffer_s16); var clientA2A = buffer_read(_buffer, buffer_s16); var clientMirror = buffer_read(_buffer, buffer_s16); var clientArmmsl = buffer_read(_buffer, buffer_s16); var clientRoom = buffer_read(_buffer, buffer_s16); var clientName = buffer_read(_buffer, buffer_string); var clientBlend = buffer_read(_buffer, buffer_s16); var clientFXTimer = buffer_read(_buffer, buffer_s8); var clientRoomPrev = buffer_read(_buffer, buffer_s16); var findsocket = ds_list_find_index(roomList, clientID); if(global.clientID != clientID){ if(findsocket < 0){ if(clientRoom == room || clientRoom == rm_options || clientRoom == itemroom || clientRoom == subscreenroom || clientRoom == maproom || clientRoom == rm_subscreen){ ds_list_add(roomList, clientID); var arr; arr[0] = clientID; arr[1] = clientX; arr[2] = clientY; arr[3] = clientSprite; arr[4] = clientImage; arr[5] = clientA1; arr[6] = clientA1X; arr[7] = clientA1Y; arr[8] = clientA2; arr[9] = clientA2X; arr[10] = clientA2Y; arr[11] = clientA2A; arr[12] = clientMirror; arr[13] = clientArmmsl; arr[14] = clientRoom; arr[15] = clientName; arr[16] = clientBlend; arr[17] = clientFXTimer; arr[18] = clientRoomPrev; ds_list_add(roomListData, arr); } } else { var arr; arr[0] = clientID; arr[1] = clientX; arr[2] = clientY; arr[3] = clientSprite; arr[4] = clientImage; arr[5] = clientA1; arr[6] = clientA1X; arr[7] = clientA1Y; arr[8] = clientA2; arr[9] = clientA2X; arr[10] = clientA2Y; arr[11] = clientA2A; arr[12] = clientMirror; arr[13] = clientArmmsl; arr[14] = clientRoom; arr[15] = clientName; arr[16] = clientBlend; arr[17] = clientFXTimer; arr[18] = clientRoomPrev; var indexValue = ds_list_find_value(roomList, findsocket); for(var i=0; i<ds_list_size(roomListData); i++){ var arrList = roomListData[| i]; if(arrList[0] == indexValue){ roomListData[| i] = arr; } } if(clientRoom != room && (clientRoom != rm_options && clientRoom != itemroom && clientRoom != subscreenroom && clientRoom != maproom && clientRoom != rm_subscreen)){ sameRoom = false; var indexValue = ds_list_find_value(roomList, findsocket); ds_list_delete(roomList, findsocket); for(var i=0; i<ds_list_size(roomListData); i++){ var arrList = roomListData[| i]; if(arrList[0] == indexValue){ ds_list_delete(roomListData, i); } } } } } break; case 101: var clientID = buffer_read(_buffer, buffer_u8); var clientRoom = buffer_read(_buffer, buffer_s16); var clientMapX = buffer_read(_buffer, buffer_s16); var clientMapY = buffer_read(_buffer, buffer_s16); var findsocket = ds_list_find_index(roomList, clientID); if(clientRoom == room && global.clientID != clientID){ sameRoom = true; } else if(clientRoom != room && global.clientID != clientID && (clientRoom != rm_options && clientRoom != itemroom && clientRoom != subscreenroom && clientRoom != maproom && clientRoom != rm_subscreen)){ if(ds_list_size(roomList) > 0 && findsocket >= 0){ sameRoom = false; var indexValue = ds_list_find_value(roomList, findsocket); ds_list_delete(roomList, findsocket); for(var i=0; i<ds_list_size(roomListData); i++){ var arrList = roomListData[| i]; if(arrList[0] == clientID){ ds_list_delete(roomListData, i); } } } } var findsocket = ds_list_find_index(roomList, clientID); if(ds_list_size(roomList) > 0 && findsocket >= 0){ for(var i=0; i<ds_list_size(roomListData); i++){ var arrList = roomListData[| i]; if(arrList[0] == clientID){ arrList[14] = clientRoom; roomListData[| i] = arrList; } } } checkList = ds_list_create(); if(ds_list_size(global.idList) > 0){ for(var f=0; f<ds_list_size(global.idList); f++){ if(ds_list_size(posData) > 0 && clientID != global.clientID){ var arrPosData; arrPosData[0] = clientID; arrPosData[1] = clientMapX; arrPosData[2] = clientMapY; for(var v=0; v<ds_list_size(posData); v++){ var arr = posData[| v]; ds_list_add(checkList, arr[0]); if(arr[0] == clientID){ posData[| v] = arrPosData; if(instance_exists(oMapCursor) && surface_exists(oSS_Control.s_map)){ surface_free(oSS_Control.s_map); } } } var find = ds_list_find_index(checkList, clientID); if(find < 0){ ds_list_add(posData, arrPosData); } } else if(ds_list_size(posData) == 0 && clientID != global.clientID){ var arrPosData; arrPosData[0] = clientID; arrPosData[1] = clientMapX; arrPosData[2] = clientMapY; ds_list_add(posData, arrPosData); if(instance_exists(oMapCursor) && surface_exists(oSS_Control.s_map)){ surface_free(oSS_Control.s_map); } } } } ds_list_destroy(checkList); if(clientRoom == rm_a4b01 && room != rm_a4b01 && global.event[203] > 0 && global.event[203] < 9 && !teleport && string_lower(reactorsequence) == "synced"){ if(room == rm_a4b02 || room == rm_a4b03 || room == rm_a4b04 || room == rm_a4b05 || room == rm_a4b06 || room == rm_a4b07 || room == rm_a4b08 || room == rm_a4b09 || room == rm_a4b10 || room == rm_a4b11 || room == rm_a4b12 || room == rm_a4b13 || room == rm_a4b14 || room == rm_a4b15 || room == rm_a4b16 || room == rm_a4b17 || room == rm_a4b18 || room == rm_a4b19){ teleport = true; global.targetx = 624; global.targety = 144; room_change(rm_a4b01, 1); } } break; case 102: ds_list_read(global.idList, strict_decompress(buffer_read(_buffer, buffer_string))); break; case 0: global.clientID = buffer_read(_buffer, buffer_u8); alarm[0] = 5; alarm[2] = 5; alarm[3] = 5; alarm[4] = 5; alarm[5] = 5; alarm[6] = 5; alarm[7] = 5; alarm[8] = 5; alarm[9] = 5; alarm[10] = 3; alarm[11] = 20; buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 200); buffer_write(buffer, buffer_u8, global.clientID); buffer_write(buffer, buffer_u8, preferredcolor); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); break; case 1: ds_grid_read(global.onlineReceived, strict_decompress(buffer_read(_buffer, buffer_string))); global.receivedClientID = buffer_read(_buffer, buffer_u8); if(global.receivedClientID == global.clientID){ global.receivedPacketIDs[| global.receivedPacketID] = buffer_read(_buffer, buffer_u32); } global.receivedPacketID++; if(global.receivedClientID != global.clientID){ update_variables("disablesame"); update_variables("replaceglobalvars"); update_variables("updateprev"); alarm[0] = 10; ds_grid_clear(global.onlineReceived, -1); } break; case 2: ds_grid_read(global.onlineReceived, strict_decompress(buffer_read(_buffer, buffer_string))); global.receivedClientID = buffer_read(_buffer, buffer_u8); update_variables("disablesame"); update_variables("updateprev"); //global.itemChanges = 0; //global.metdeadChanges = 0; //global.eventChanges = 0; alarm[0] = 10; ds_grid_clear(global.onlineReceived, -1); break; case 3: queenHealth = buffer_read(_buffer, buffer_s32); var clientID = buffer_read(_buffer, buffer_u8); phase = buffer_read(_buffer, buffer_s8); state = buffer_read(_buffer, buffer_s8); if(clientID != global.clientID){ if(!is_undefined(oQueenHead.myhealth) && !is_undefined(oQueen.phase)){ if(oQueen.phase == phase){ if(global.queenhealthPrev != queenHealth){ if(queenHealth == 999999){ queenHealth = 0; oQueenHead.myhealth = queenHealth; with(oQueenHead){ if (myhealth <= 0 && state != 100 && state != 50) { if (oQueen.phase < 3) head_damage = 1; if (oQueen.phase == 3) head_damage = 2; if (oQueen.phase < 5) { state = 50; statetime = 0; myhealth = 999999; with (oQueen) { state = 6; statetime = 0; } } if (oQueen.phase == 5) { with (oQueen) { state = 100; statetime = 0; } state = 100; } } } } global.queenhealthPrev = queenHealth; oQueenHead.myhealth = queenHealth; } } if(global.queenphasePrev != phase){ global.queenphasePrev = phase; } } } else { if(!is_undefined(oQueenHead.myhealth) && !is_undefined(oQueen.phase)){ /* if(oQueen.phase == phase){ if(global.queenhealthPrev != queenHealth){ global.queenhealthPrev = queenHealth; oQueenHead.myhealth = queenHealth; } } if(global.queenphasePrev != phase){ global.queenphasePrev = phase; } */ global.queenhealthPrev = oQueenHead.myhealth; global.queenphasePrev = oQueen.phase; } } break; case 4: var _seed = buffer_read(_buffer, buffer_f64); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID){ if(seed != _seed){ seed = _seed; show_debug_message("seed received"); popup_text("Seed received"); } } break; case 5: var monstersLeft = buffer_read(_buffer, buffer_s8); var clientID = buffer_read(_buffer, buffer_u8); if(global.clientID != clientID && global.monstersleft != monstersLeft){ global.monstersleft = monstersLeft; global.monstersleftPrev = global.monstersleft; } else if(global.clientID == clientID){ global.monstersleftPrev = global.monstersleft; } alarm[2] = 10; break; case 6: var monstersArea = buffer_read(_buffer, buffer_s8); var clientID = buffer_read(_buffer, buffer_u8); if(global.clientID != clientID && global.monstersarea != monstersArea){ global.monstersarea = monstersArea; global.monstersareaPrev = global.monstersarea; } else if(global.clientID == clientID){ global.monstersareaPrev = global.monstersarea; } alarm[2] = 10; break; case 7: var item = ds_grid_create(1, 1); ds_grid_read(item, strict_decompress(buffer_read(_buffer, buffer_string))); var clientID = buffer_read(_buffer, buffer_u8); var itemArr = item[# 0, 0]; if(is_array(itemArr)){ for(var i=0; i<array_length_1d(global.item); i++){ for(var f=0; f<array_height_2d(itemArr); f++){ if(i == itemArr[f, 1]){ global.itemPrev[i] = itemArr[f, 0]; if(global.item[i] != itemArr[f, 0]){ global.item[i] = itemArr[f, 0]; } } } } } alarm[3] = 10; if(global.clientID == clientID){ ds_grid_clear(global.onlineItem, -1); global.itemChanges = 0; } ds_grid_destroy(item); break; case 8: var metdead = ds_grid_create(1, 1); ds_grid_read(metdead, strict_decompress(buffer_read(_buffer, buffer_string))); var clientID = buffer_read(_buffer, buffer_u8); var metdeadArr = metdead[# 0, 0]; if(is_array(metdeadArr)){ for(var i=0; i<array_length_1d(global.metdead); i++){ for(var f=0; f<array_height_2d(metdeadArr); f++){ if(i == metdeadArr[f, 1]){ global.metdeadPrev[i] = metdeadArr[f, 0]; if(global.metdead[i] != metdeadArr[f, 0]){ global.metdead[i] = metdeadArr[f, 0]; } } } } } alarm[4] = 10; if(global.clientID == clientID){ ds_grid_clear(global.onlineMetdead, -1); global.metdeadChanges = 0; } ds_grid_destroy(metdead); break; case 9: var event = ds_grid_create(1, 1); ds_grid_read(event, strict_decompress(buffer_read(_buffer, buffer_string))); var clientID = buffer_read(_buffer, buffer_u8); var eventArr = event[# 0, 0]; if(is_array(eventArr)){ for(var i=0; i<array_length_1d(global.event); i++){ for(var f=0; f<array_height_2d(eventArr); f++){ if(i == eventArr[f, 1]){ global.eventPrev[i] = eventArr[f, 0]; if(global.event[i] != eventArr[f, 0]){ global.event[i] = eventArr[f, 0]; } if(eventArr[f, 1] == 308){ if(eventArr[f, 0] == 1 && clientID != global.clientID){ if(instance_exists(oCharacter)){ with(oCharacter){ facing = 0; if (global.currentsuit == 0) sprite_index = scr_suit_sprites(sFront,sFront_fusion); if (global.currentsuit == 1) sprite_index = scr_suit_sprites(sVFront,sFront_fusion); if (global.currentsuit == 2) sprite_index = scr_suit_sprites(sGFront,sFront_fusion); global.enablecontrol = 0; } } popup_text_ext("Ship reached", 120); } if(eventArr[f, 0] == 2 && clientID != global.clientID){ oControl.displaygui = 0; } if(eventArr[f, 0] == 3 && clientID != global.clientID){ instance_create(0, 0, oFinalFadeout); mus_fadeout(musHatchling); } if(eventArr[f, 0] == 4 && clientID != global.clientID){ remove_persistent_objects(); sfx_stop_all(); global.vibL = 0; global.vibR = 0; global.ingame = 0; global.darkness = 0; global.gotolog = -1; global.enablecontrol = 1; global.transitiontype = 0; oControl.displaygui = 1; room_goto(rm_credits); mus_stop_all(); mus_play_once(musCredits); } } } } } } alarm[5] = 10; if(global.clientID == clientID){ ds_grid_clear(global.onlineEvent, -1); global.eventChanges = 0; } ds_grid_destroy(event); break; case 10: var dmap = ds_grid_create(1, 1); ds_grid_read(dmap, strict_decompress(buffer_read(_buffer, buffer_string))); var clientID = buffer_read(_buffer, buffer_u8); var dmapArr = dmap[# 0, 0]; if(is_array(dmapArr)){ for(var i=0; i<array_height_2d(global.dmap); i++){ for(var f=0; f<array_length_2d(global.dmap, i); f++){ for(var v=0; v<array_height_2d(dmapArr); v++){ if(i == dmapArr[v, 1] && f == dmapArr[v, 2]){ global.dmapPrev[i, f] = dmapArr[v, 0]; if(global.dmap[i, f] != dmapArr[v, 0]){ global.dmap[i, f] = dmapArr[v, 0]; if(global.ingame){ with (oControl) event_user(2); } } } } } } } alarm[6] = 10; if(global.clientID == clientID){ ds_grid_clear(global.onlineMap, -1); global.dmapChanges = 0; } ds_grid_destroy(dmap); break; case 11: var itemstaken = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && itemstaken != global.itemstaken){ global.itemstakenPrev = itemstaken; global.itemstaken = itemstaken; } else if(clientID == global.clientID){ global.itemstakenPrev = global.itemstaken; } alarm[7] = 1; break; case 12: var maxmissiles = buffer_read(_buffer, buffer_u16); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && maxmissiles != global.maxmissiles){ global.maxmissilesPrev = maxmissiles; global.maxmissiles = maxmissiles; } else if(clientID == global.clientID){ global.maxmissilesPrev = global.maxmissiles; } alarm[8] = 1; break; case 13: var maxsmissiles = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && maxsmissiles != global.maxsmissiles){ global.maxsmissilesPrev = maxsmissiles; global.maxsmissiles = maxsmissiles; } else if(clientID == global.clientID){ global.maxsmissilesPrev = global.maxsmissiles; } alarm[9] = 1; break; case 14: var maxpbombs = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && maxpbombs != global.maxpbombs){ global.maxpbombsPrev = maxpbombs; global.maxpbombs = maxpbombs; } else if(clientID == global.clientID){ global.maxpbombsPrev = global.maxpbombs; } maxpbombsTimer = 1; break; case 15: var maxhealth = buffer_read(_buffer, buffer_u16); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && maxhealth != global.maxhealth){ global.maxhealthPrev = maxhealth; global.maxhealth = maxhealth; } else if(clientID == global.clientID){ global.maxhealthPrev = global.maxhealth; } maxhealthTimer = 1; break; case 16: var etanks = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && etanks != global.etanks){ global.etanksPrev = etanks; global.etanks = etanks; } else if(clientID == global.clientID){ global.etanksPrev = global.etanks; } etanksTimer = 1; break; case 17: var mtanks = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && mtanks != global.mtanks){ global.mtanksPrev = mtanks; global.mtanks = mtanks; } else if(clientID == global.clientID){ global.mtanksPrev = global.mtanks; } mtanksTimer = 1; break; case 18: var stanks = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && stanks != global.stanks){ global.stanksPrev = stanks; global.stanks = stanks; } else if(clientID == global.clientID){ global.stanksPrev = global.stanks; } stanksTimer = 1; break; case 19: var ptanks = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8); if(clientID != global.clientID && ptanks != global.ptanks){ global.ptanksPrev = ptanks; global.ptanks = ptanks; } else if(clientID == global.clientID){ global.ptanksPrev = global.ptanks; } ptanksTimer = 1; break; } } 1 603 7 0 0 -1 2 self 0 0 1 if(connected){ buffer_delete(buffer); var size, type, alignment; size = 1024; type = buffer_grow; alignment = 1; buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 254); buffer_write(buffer, buffer_u8, global.clientID); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } network_destroy(socket); buffer_delete(buffer); ds_grid_destroy(global.onlineList); ds_grid_destroy(global.onlineSend); ds_grid_destroy(global.onlineReceived); //ds_grid_destroy(global.storedBuffers); ds_grid_destroy(global.onlineItem); ds_grid_destroy(global.onlineMetdead); ds_grid_destroy(global.onlineEvent); ds_grid_destroy(global.onlineMap); ds_list_destroy(global.receivedPacketIDs); ds_list_destroy(roomList); ds_list_destroy(roomListData); ds_list_destroy(global.idList); ds_list_destroy(posData); ds_list_destroy(global.hatchlingList); 1 603 7 0 0 -1 2 self 0 0 1 if(ds_list_size(roomListData) > 0){ for(var i=0; i<ds_list_size(roomListData); i++){ var arrDraw = roomListData[| i]; var arrID = arrDraw[0]; var arrX = arrDraw[1]; var arrY = arrDraw[2]; var arrSprite = arrDraw[3]; var arrImage = arrDraw[4]; var arrA1 = arrDraw[5]; var arrA1X = arrDraw[6]; var arrA1Y = arrDraw[7]; var arrA2 = arrDraw[8]; var arrA2X = arrDraw[9]; var arrA2Y = arrDraw[10]; var arrA2A = arrDraw[11]; var arrMirror = arrDraw[12]; var arrArmmsl = arrDraw[13]; var arrRoom = arrDraw[14]; var arrName = arrDraw[15]; var arrBlend = arrDraw[16]; var arrFXTimer = arrDraw[17]; var arrRoomPrev = arrDraw[18]; if((arrRoom == room || arrRoom == rm_options || arrRoom == itemroom || arrRoom == subscreenroom || arrRoom == maproom || arrRoom == rm_subscreen) && instance_exists(oCharacter) && room != rm_transition){ if(arrSprite == sSpiderMorphBall || arrSprite == sGSpiderMorphBall || arrSprite == sVSpiderMorphBall || arrSprite == sSpiderMorphBall_fusion || arrSprite == sSpiderMorphBall_fusion_gravity || arrSprite == sSpiderMorphBall_fusion_varia){ draw_set_blend_mode(bm_add); draw_set_alpha(arrFXTimer * 0.1); pal_swap_set(sPalSpiderball, arrID, false); draw_sprite_ext(sSpiderballFX, -1, arrX, arrY, 1, 1, 0, -1, 0.2 + arrFXTimer * 0.1); pal_swap_reset(); shader_reset(); draw_set_alpha(1); draw_set_blend_mode(bm_normal); } if(arrRoom != room){ if(arrRoomPrev == room){ draw_character_ext(arrSprite, arrX, arrY, arrA1, arrA1X, arrA1Y, arrA2, arrA2X, arrA2Y, arrA2A, arrMirror, arrBlend, alpha, arrArmmsl, arrImage, arrID); } } else { draw_character_ext(arrSprite, arrX, arrY, arrA1, arrA1X, arrA1Y, arrA2, arrA2X, arrA2Y, arrA2A, arrMirror, arrBlend, alpha, arrArmmsl, arrImage, arrID); } } } } if(instance_exists(oMapCursor)){ if(ds_list_size(posData) > 0){ for(var i=0; i<ds_list_size(posData); i++){ var arrMapIcon = posData[| i]; var arrID = arrMapIcon[0]; var arrX = arrMapIcon[1]; var arrY = arrMapIcon[2]; draw_sprite_ext(sMultitroidMapIcon, (arrID - 1), (arrX * 8), ((arrY * 8) + 32), 1, 1, direction, c_white, oMapCursor.image_alpha); } } } 0 0 0 0.5 0.100000001490116 0 0.100000001490116 0.100000001490116 0.200000002980232 -1 0