@@ -78,11 +78,14 @@ alarm[1] = 90;
7878alarm[2] = 300;
7979alarm[5] = 3600;
8080alarm[9] = 60;
81- alarm[10] = 3600;
8281
8382reset_globals();
8483
85- sendSize = 300;
84+ global.slot = 1;
85+
86+ var slotStr = string(global.slot);
87+
88+ global.saveString = "\save" + slotStr + ".txt";
8689</string >
8790 </argument >
8891 </arguments >
@@ -749,6 +752,10 @@ switch(type_event){
749752 }
750753 }
751754 ds_list_delete(playerList, findsocket);
755+
756+ if(ds_list_size(playerList) == 0){
757+ with(oReset) alarm[10] = 1800;
758+ }
752759 }
753760 break;
754761 case network_type_data:
@@ -1091,6 +1098,9 @@ switch(type_event){
10911098 var findsocket = ds_list_find_index(playerList, socket);
10921099 if(findsocket < 0){
10931100 ds_list_add(playerList, socket);
1101+ if(ds_list_size(playerList) > 0 && oReset.alarm[10] > 0){
1102+ oReset.alarm[10] = -1;
1103+ }
10941104 }
10951105 if(ds_list_size(idList) > 0){
10961106 for(var i=0; i< ds_list_size(idList); i++){
@@ -1330,51 +1340,48 @@ switch(type_event){
13301340 ds_list_destroy(event);
13311341 break;
13321342 case 9:
1333- var dmap = ds_list_create();
1334- ds_list_read(dmap, strict_decompress(buffer_read(_buffer, buffer_string)));
1335- var clientID = buffer_read(_buffer, buffer_u8);
1336- var sockets = ds_list_size(playerList);
1337- var dmapArr = dmap[| 0];
1338- if(is_array(dmapArr)){
1339- for(var i=0; i< array_height_2d(global.dmap); i++){
1340- for(var f=0; f< array_length_2d(global.dmap, i); f++){
1341- for(var v=0; v< array_height_2d(dmapArr); v++){
1342- if(i == dmapArr[v, 1] && f == dmapArr[v, 2]){
1343- if(dmapArr[v, 0] > global.dmap[i, f]){
1344- global.dmap[i, f] = dmapArr[v, 0];
1345- } else if(dmapArr[v, 0] < global.dmap[i, f]){
1346- if(global.dmap[i, f] == 10 && dmapArr[v, 0] == 1){
1347- global.dmap[i, f] = dmapArr[v, 0];
1348- }
1349- }
1350- }
1343+ var tileCount = buffer_read(_buffer, buffer_u16);
1344+ if(tileCount > 0){
1345+ buffer_delete(buffer);
1346+ var size, type, alignment;
1347+ size = 1024;
1348+ type = buffer_grow;
1349+ alignment = 1;
1350+ buffer = buffer_create(size, type, alignment);
1351+ buffer_seek(buffer, buffer_seek_start, 0);
1352+ buffer_write(buffer, buffer_s32, bufferSizePacket);
1353+ buffer_write(buffer, buffer_u8, 10);
1354+ buffer_write(buffer, buffer_u16, tileCount);
1355+
1356+ for(var i=0; i< tileCount; i++){
1357+ var tileX = buffer_read(_buffer, buffer_u8);
1358+ var tileY = buffer_read(_buffer, buffer_u8);
1359+ var tileData = buffer_read(_buffer, buffer_u8);
1360+ buffer_write(buffer, buffer_u8, tileX);
1361+ buffer_write(buffer, buffer_u8, tileY);
1362+ buffer_write(buffer, buffer_u8, tileData);
1363+ if(tileData > global.dmap[tileX, tileY]){
1364+ global.dmap[tileX, tileY] = tileData;
1365+ } else if(tileData < global.dmap[tileX, tileY]){
1366+ if(global.dmap[tileX, tileY] == 10 && tileData == 1){
1367+ global.dmap[tileX, tileY] = tileData;
13511368 }
13521369 }
13531370 }
1371+
1372+ var clientID = buffer_read(_buffer, buffer_u8);
1373+
1374+ buffer_write(buffer, buffer_u8, clientID);
1375+
1376+ var sockets = ds_list_size(playerList);
1377+
1378+ for(var i=0; i< sockets; i++){
1379+ network_send_packet(playerList[| i], buffer, buffer_tell(buffer));
1380+ }
13541381 }
1355- buffer_delete(buffer);
1356- var size, type, alignment;
1357- size = 1024;
1358- type = buffer_grow;
1359- alignment = 1;
1360- buffer = buffer_create(size, type, alignment);
1361- buffer_seek(buffer, buffer_seek_start, 0);
1362- buffer_write(buffer, buffer_u8, 10);
1363- buffer_write(buffer, buffer_string, strict_compress(ds_list_write(dmap)));
1364- buffer_write(buffer, buffer_u8, clientID);
1365- var bufferSize = buffer_tell(buffer);
1366- buffer_seek(buffer, buffer_seek_start, 0);
1367- buffer_write(buffer, buffer_s32, bufferSize);
1368- buffer_write(buffer, buffer_u8, 10);
1369- buffer_write(buffer, buffer_string, strict_compress(ds_list_write(dmap)));
1370- buffer_write(buffer, buffer_u8, clientID);
1371- for(var i=0; i< sockets; i++){
1372- network_send_packet(playerList[| i], buffer, buffer_tell(buffer));
1373- }
1374- ds_list_destroy(dmap);
13751382
1376- if(alarm[5] < 360 && alarm[5] > 1){
1377- alarm[5] += 360 ;
1383+ if(alarm[5] < 300 && alarm[5] > 1){
1384+ alarm[5] += 120 ;
13781385 show_debug_message("dmap alarm incremented");
13791386 }
13801387 break;
@@ -1691,9 +1698,9 @@ switch(type_event){
16911698 <arguments >
16921699 <argument >
16931700 <kind >1</kind >
1694- <string >if(file_exists(working_directory + "\save.txt" )){
1701+ <string >if(file_exists(working_directory + global.saveString )){
16951702 var list = ds_list_create();
1696- file = file_text_open_read(working_directory + "\save.txt" );
1703+ file = file_text_open_read(working_directory + global.saveString );
16971704 ds_list_read(list, file_text_read_string(file));
16981705 file_text_close(file);
16991706 global.metdead = list[| 0];
@@ -1734,10 +1741,10 @@ list[| 1] = global.event;
17341741list[| 2] = global.item;
17351742list[| 3] = global.dmap;
17361743list[| 4] = global.monstersleft;
1737- if(file_exists(working_directory + "\save.txt" )){
1738- file_delete(working_directory + "\save.txt" );
1744+ if(file_exists(working_directory + global.saveString )){
1745+ file_delete(working_directory + global.saveString );
17391746}
1740- file = file_text_open_write(working_directory + "\save.txt" );
1747+ file = file_text_open_write(working_directory + global.saveString );
17411748file_text_write_string(file, ds_list_write(list));
17421749file_text_close(file);
17431750ds_list_destroy(list);
0 commit comments