Added player location and map syncing

cleaner
milesthenerd 5 years ago
parent 5827dccdc8
commit 3054ed4746

@ -4122,6 +4122,12 @@
</sprites>
<sprite>sprites\sShipGlow</sprite>
</sprites>
<sprites name="Multitroid Assets">
<sprite>sprites\sMultitroidIcon</sprite>
<sprite>sprites\sPalMultitroidNew</sprite>
<sprite>sprites\sDarkMultitroidPlayer</sprite>
<sprite>sprites\sPalMultitroidFusion</sprite>
</sprites>
</sprites>
<backgrounds name="background">
<background>background\bgScreenGuide</background>
@ -5074,6 +5080,7 @@
<script>scripts\create_buffer.gml</script>
<script>scripts\send_seed.gml</script>
<script>scripts\popup_text_ext.gml</script>
<script>scripts\draw_character_ext.gml</script>
</scripts>
</scripts>
<shaders name="shaders">
@ -5094,6 +5101,7 @@
<font>fonts\fontMenuTinyDefault</font>
<font>fonts\fontMenuSmall2Default</font>
<font>fonts\fontSubScrDefault</font>
<font>fonts\font_displayname</font>
</fonts>
<objects name="objects">
<objects name="Test">

@ -15,7 +15,6 @@ The adjusted patcher for the AM2R mod can be found here: https://github.com/lass
## To-do List
- Save syncing
- Message that tells you what power-up has been obtained
- More definitive player data tracking by the server - kinda done but not quite
- Other things I haven't thought of yet, so if you have any ideas or suggestions, let me know in the AM2R Discord Server

@ -1,3 +1,3 @@
[ModSettings]
ipaddress = 10.220.1.3
ipaddress = 206.123.128.236
displayname = milesthenerd

@ -0,0 +1,118 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<font>
<name>m5x7</name>
<size>12</size>
<bold>-1</bold>
<renderhq>0</renderhq>
<italic>0</italic>
<charset>1</charset>
<aa>3</aa>
<includeTTF>0</includeTTF>
<TTFName></TTFName>
<texgroups>
<texgroup0>0</texgroup0>
</texgroups>
<ranges>
<range0>32,127</range0>
</ranges>
<glyphs>
<glyph character="32" x="66" y="2" w="6" h="13" shift="6" offset="0"/>
<glyph character="33" x="84" y="71" w="2" h="11" shift="3" offset="0"/>
<glyph character="34" x="74" y="71" w="4" h="6" shift="5" offset="0"/>
<glyph character="35" x="42" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="36" x="114" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="37" x="91" y="2" w="6" h="11" shift="7" offset="0"/>
<glyph character="38" x="82" y="2" w="7" h="11" shift="8" offset="0"/>
<glyph character="39" x="101" y="71" w="2" h="6" shift="3" offset="0"/>
<glyph character="40" x="48" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="41" x="43" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="42" x="68" y="71" w="4" h="7" shift="5" offset="0"/>
<glyph character="43" x="26" y="56" w="6" h="10" shift="7" offset="0"/>
<glyph character="44" x="38" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="45" x="91" y="56" w="6" h="8" shift="7" offset="0"/>
<glyph character="46" x="92" y="71" w="2" h="11" shift="3" offset="0"/>
<glyph character="47" x="118" y="56" w="4" h="11" shift="5" offset="0"/>
<glyph character="48" x="98" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="49" x="58" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="50" x="10" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="51" x="82" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="52" x="66" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="53" x="42" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="54" x="98" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="55" x="50" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="56" x="2" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="57" x="82" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="58" x="80" y="71" w="2" h="11" shift="3" offset="0"/>
<glyph character="59" x="28" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="60" x="22" y="71" w="4" h="10" shift="5" offset="0"/>
<glyph character="61" x="111" y="56" w="5" h="9" shift="6" offset="0"/>
<glyph character="62" x="16" y="71" w="4" h="10" shift="5" offset="0"/>
<glyph character="63" x="99" y="2" w="6" h="11" shift="7" offset="0"/>
<glyph character="64" x="98" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="65" x="2" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="66" x="90" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="67" x="42" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="68" x="106" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="69" x="34" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="70" x="106" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="71" x="106" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="72" x="34" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="73" x="10" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="74" x="26" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="75" x="114" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="76" x="58" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="77" x="2" y="2" w="8" h="11" shift="9" offset="0"/>
<glyph character="78" x="18" y="56" w="6" h="11" shift="7" offset="0"/>
<glyph character="79" x="90" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="80" x="74" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="81" x="82" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="82" x="50" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="83" x="18" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="84" x="74" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="85" x="18" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="86" x="90" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="87" x="32" y="2" w="8" h="11" shift="9" offset="0"/>
<glyph character="88" x="114" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="89" x="26" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="90" x="58" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="91" x="53" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="92" x="2" y="71" w="4" h="11" shift="5" offset="0"/>
<glyph character="93" x="33" y="71" w="3" h="12" shift="4" offset="0"/>
<glyph character="94" x="8" y="71" w="6" h="7" shift="7" offset="0"/>
<glyph character="95" x="66" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="96" x="96" y="71" w="3" h="6" shift="4" offset="0"/>
<glyph character="97" x="2" y="56" w="6" h="11" shift="7" offset="0"/>
<glyph character="98" x="10" y="56" w="6" h="11" shift="7" offset="0"/>
<glyph character="99" x="41" y="56" w="5" h="11" shift="6" offset="0"/>
<glyph character="100" x="74" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="101" x="34" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="102" x="34" y="56" w="5" h="11" shift="6" offset="0"/>
<glyph character="103" x="42" y="2" w="6" h="13" shift="7" offset="0"/>
<glyph character="104" x="10" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="105" x="63" y="71" w="3" h="11" shift="4" offset="0"/>
<glyph character="106" x="85" y="56" w="4" h="13" shift="5" offset="0"/>
<glyph character="107" x="62" y="56" w="5" h="11" shift="6" offset="0"/>
<glyph character="108" x="58" y="71" w="3" h="11" shift="4" offset="0"/>
<glyph character="109" x="22" y="2" w="8" h="11" shift="9" offset="0"/>
<glyph character="110" x="115" y="2" w="6" h="11" shift="7" offset="0"/>
<glyph character="111" x="107" y="2" w="6" h="11" shift="7" offset="0"/>
<glyph character="112" x="50" y="2" w="6" h="13" shift="7" offset="0"/>
<glyph character="113" x="58" y="2" w="6" h="13" shift="7" offset="0"/>
<glyph character="114" x="55" y="56" w="5" h="11" shift="6" offset="0"/>
<glyph character="115" x="50" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="116" x="48" y="56" w="5" h="11" shift="6" offset="0"/>
<glyph character="117" x="66" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="118" x="18" y="30" w="6" h="11" shift="7" offset="0"/>
<glyph character="119" x="12" y="2" w="8" h="11" shift="9" offset="0"/>
<glyph character="120" x="2" y="17" w="6" h="11" shift="7" offset="0"/>
<glyph character="121" x="74" y="2" w="6" h="13" shift="7" offset="0"/>
<glyph character="122" x="26" y="43" w="6" h="11" shift="7" offset="0"/>
<glyph character="123" x="99" y="56" w="4" h="12" shift="5" offset="0"/>
<glyph character="124" x="88" y="71" w="2" h="11" shift="3" offset="0"/>
<glyph character="125" x="105" y="56" w="4" h="12" shift="5" offset="0"/>
<glyph character="126" x="77" y="56" w="6" h="9" shift="7" offset="0"/>
<glyph character="127" x="69" y="56" w="6" h="9" shift="7" offset="0"/>
</glyphs>
<kerningPairs/>
<image>font_displayname.png</image>
</font>

@ -112,7 +112,8 @@ alarm[0] = 5 + random(3);
<arguments>
<argument>
<kind>1</kind>
<string>if (stun &gt; 0) stun -= 1;
<string>if (global.event[101] &gt;= eventno) instance_destroy();
if (stun &gt; 0) stun -= 1;
if (flashing &gt; 0) flashing -= 1;
if (fxtimer &lt; 5) {
fxtimer += 1;

@ -34,6 +34,34 @@
mysolid.image_xscale = 2;
mysolid.image_yscale = 4;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="3" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>if(global.event[206] == 1){
with (oA4Rock) event_user(0);
with (oA4RockTop) event_user(0);
with (mysolid) instance_destroy();
instance_destroy();
}
</string>
</argument>
</arguments>

@ -2,7 +2,7 @@
<object>
<spriteName>&lt;undefined&gt;</spriteName>
<solid>0</solid>
<visible>0</visible>
<visible>-1</visible>
<depth>0</depth>
<persistent>-1</persistent>
<parentName>&lt;undefined&gt;</parentName>
@ -32,10 +32,11 @@ metroidCountChanged = false;
itemChanged = false;
metdeadChanged = false;
eventChanged = false;
mapChanged = false;
connected = false;
queenHealthWait = false;
queenDead = false;
drawUpdate = false;
sameRoom = false;
phase = 0;
seed = undefined;
var type;
@ -73,11 +74,14 @@ 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();
ds_grid_clear(global.onlineSend, -1);
ds_grid_clear(global.onlineItem, -1);
ds_grid_clear(global.onlineMetdead, -1);
@ -90,6 +94,15 @@ for(var i=0; i&lt;ds_grid_height(global.onlineList); i++){
update_variables("initprev");
update_variables("onlinevars");
if(shader_is_compiled(shd_pal_swapper)){
alpha = 1
} else {
alpha = 0.5
}
posX = 3;
posY = 3;
</string>
</argument>
</arguments>
@ -112,7 +125,21 @@ update_variables("onlinevars");
<arguments>
<argument>
<kind>1</kind>
<string>network_destroy(socket);
<string>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);
@ -121,11 +148,182 @@ ds_grid_destroy(global.onlineReceived);
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);
if(connected){
popup_text("Disconnected");
ds_list_destroy(global.idList);
ds_list_destroy(posData);
global.canConnect = false;
oControl.alarm[10] = 90;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="11">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>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));
alarm[11] = 20;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="10">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>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.roomPrev != room){
global.roomPrev = room;
}
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);
var result = network_send_packet(socket, buffer, buffer_tell(buffer));
}
}
}
alarm[10] = 3;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="6">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>var v = 0;
for(var i=0; i&lt;array_height_2d(global.dmap); i++){
for(var f=0; f&lt;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] = 30;
}
if(mapChanged){
mapChanged = false;
alarm[6]= 75;
}
</string>
</argument>
@ -151,12 +349,13 @@ if(connected){
<kind>1</kind>
<string>var v = 0;
for(var f=0; f&lt;array_length_1d(global.event); f++){
if(f &gt; 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;
show_debug_message(string(global.eventPrev[f]) + " " + string(global.event[f]));
show_debug_message("event changed");
eventChanged = true;
v++;
}
@ -212,8 +411,6 @@ for(var f=0; f&lt;array_length_1d(global.metdead); f++){
global.metdeadChanges[v, 0] = global.metdead[f];
global.metdeadChanges[v, 1] = f;
global.onlineMetdead[# 0, 0] = global.metdeadChanges;
show_debug_message(string(global.metdeadPrev[f]) + " " + string(global.metdead[f]));
show_debug_message("metdead changed");
metdeadChanged = true;
v++;
}
@ -269,8 +466,6 @@ for(var f=0; f&lt;array_length_1d(global.item); f++){
global.itemChanges[v, 0] = global.item[f];
global.itemChanges[v, 1] = f;
global.onlineItem[# 0, 0] = global.itemChanges;
show_debug_message(string(global.itemPrev[f]) + " " + string(global.item[f]));
show_debug_message("item changed");
itemChanged = true;
v++;
}
@ -422,7 +617,6 @@ for(var i=0; i&lt;ds_grid_height(global.onlineList); i++){
global.onlineSend[# 0, i] = global.onlineList[# 0, i];
global.onlineSend[# 1, i] = global.onlineList[# 1, i];
global.onlineSend[# 2, i] = global.onlineList[# 2, i];
show_debug_message(string(global.onlineSend[# 0, i]) + " " + string(global.onlineSend[# 1, i]) + " " + string(global.onlineSend[# 2, i]));
canSend = true;
alarm[0] = 600;
}
@ -584,6 +778,9 @@ if(instance_exists(oQueenHead) &amp;&amp; !is_undefined(oQueenHead.myhealth) &am
alarm[3] = 5;
alarm[4] = 5;
alarm[5] = 5;
alarm[6] = 5;
alarm[10] = 3;
alarm[11] = 20;
} else {
instance_destroy();
popup_text("Failed to connect");
@ -602,6 +799,10 @@ if(global.event[303] &gt; 0){
phase = 0;
}
if(global.event[203] &lt; 9){
global.event[203] = 9;
}
if(instance_exists(oQueen) &amp;&amp; !is_undefined(oQueen.phase)){
if(phase &gt;= 1 &amp;&amp; instance_exists(inst_146524)){
event_perform_object(oQueenFireball, ev_other, ev_user1);
@ -641,43 +842,6 @@ if(instance_exists(oQueen) &amp;&amp; !is_undefined(oQueen.phase)){
}
}
if(connected){
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.roomPrev != room){
global.roomPrev = room;
}
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, room);
var result = network_send_packet(socket, buffer, buffer_tell(buffer));
}
}
}
if(keyboard_check_pressed(vk_f2)){
instance_destroy();
}
@ -685,6 +849,14 @@ if(keyboard_check_pressed(vk_f2)){
if(keyboard_check_pressed(vk_f3)){
popup_text_ext(string(oControl.seed), 300);
}
if(instance_exists(oCharacter)){
posX = global.mapposx;
posY = global.mapposy;
} else {
posX = posX;
posY = posY;
}
</string>
</argument>
</arguments>
@ -713,17 +885,55 @@ 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");
show_debug_message(buffer_get_size(_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) &gt; 0){
var findsocket = ds_list_find_index(roomList, clientID);
if(findsocket &gt;= 0){
ds_list_delete(roomList, findsocket);
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrList = roomListData[| i];
if(arrList[0] == clientID){
ds_list_delete(roomListData, i);
}
}
}
}
for(var f=0; f&lt;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&lt;ds_list_size(posData); v++){
var arrList = posData[| v];
if(clientID == arrList[0]){
ds_list_delete(posData, v);
}
}
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 findsocket = ds_list_find_index(roomList, clientID);
if(global.clientID != clientID){
if(findsocket &lt; 0){
@ -735,11 +945,48 @@ switch(type_event){
arr[2] = clientY;
arr[3] = clientSprite;
arr[4] = clientImage;
arr[5] = clientRoom;
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;
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;
var indexValue = ds_list_find_value(roomList, findsocket);
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrList = roomListData[| i];
if(arrList[0] == indexValue){
roomListData[| i] = arr;
}
}
if(clientRoom != room){
sameRoom = false;
var indexValue = ds_list_find_value(roomList, findsocket);
ds_list_delete(roomList, findsocket);
for(var i=0; i&lt;ds_list_size(roomListData); i++){
@ -751,7 +998,70 @@ switch(type_event){
}
}
}
drawUpdate = true;
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 &amp;&amp; global.clientID != clientID){
sameRoom = true;
} else if(clientRoom != room &amp;&amp; global.clientID != clientID){
if(ds_list_size(roomList) &gt; 0 &amp;&amp; findsocket &gt;= 0){
sameRoom = false;
var indexValue = ds_list_find_value(roomList, findsocket);
ds_list_delete(roomList, findsocket);
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrList = roomListData[| i];
if(arrList[0] == indexValue){
ds_list_delete(roomListData, i);
}
}
}
}
checkList = ds_list_create();
if(ds_list_size(global.idList) &gt; 0){
for(var f=0; f&lt;ds_list_size(global.idList); f++){
if(ds_list_size(posData) &gt; 0 &amp;&amp; clientID != global.clientID){
var arrPosData;
arrPosData[0] = clientID;
arrPosData[1] = clientMapX;
arrPosData[2] = clientMapY;
for(var v=0; v&lt;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) &amp;&amp; surface_exists(oSS_Control.s_map)){
surface_free(oSS_Control.s_map);
}
}
}
var find = ds_list_find_index(checkList, clientID);
if(find &lt; 0){
ds_list_add(posData, arrPosData);
}
} else if(ds_list_size(posData) == 0 &amp;&amp; clientID != global.clientID){
var arrPosData;
arrPosData[0] = clientID;
arrPosData[1] = clientMapX;
arrPosData[2] = clientMapY;
ds_list_add(posData, arrPosData);
if(instance_exists(oMapCursor) &amp;&amp; surface_exists(oSS_Control.s_map)){
surface_free(oSS_Control.s_map);
}
}
}
}
ds_list_destroy(checkList);
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);
@ -833,7 +1143,6 @@ switch(type_event){
case 5:
var monstersLeft = buffer_read(_buffer, buffer_s8);
var clientID = buffer_read(_buffer, buffer_u8);
show_debug_message("metroidsleft received " + string(monstersLeft));
if(global.clientID != clientID &amp;&amp; global.monstersleft != monstersLeft){
global.monstersleft = monstersLeft;
global.monstersleftPrev = global.monstersleft;
@ -845,7 +1154,6 @@ switch(type_event){
case 6:
var monstersArea = buffer_read(_buffer, buffer_s8);
var clientID = buffer_read(_buffer, buffer_u8);
show_debug_message("metroidsarea received " + string(monstersArea));
if(global.clientID != clientID &amp;&amp; global.monstersarea != monstersArea){
global.monstersarea = monstersArea;
global.monstersareaPrev = global.monstersarea;
@ -859,16 +1167,13 @@ switch(type_event){
ds_grid_read(item, strict_decompress(buffer_read(_buffer, buffer_string)));
var clientID = buffer_read(_buffer, buffer_u8);
var itemArr = item[# 0, 0];
show_debug_message(itemArr);
if(is_array(itemArr)){
for(var i=0; i&lt;array_length_1d(global.item); i++){
for(var f=0; f&lt;array_height_2d(itemArr); f++){
if(i == itemArr[f, 1]){
global.itemPrev[i] = itemArr[f, 0];
show_debug_message("item prev index " + string(i) + " changed");
if(global.item[i] != itemArr[f, 0]){
global.item[i] = itemArr[f, 0];
show_debug_message("item current index " + string(i) + " changed");
}
}
}
@ -886,16 +1191,13 @@ switch(type_event){
ds_grid_read(metdead, strict_decompress(buffer_read(_buffer, buffer_string)));
var clientID = buffer_read(_buffer, buffer_u8);
var metdeadArr = metdead[# 0, 0];
show_debug_message(metdeadArr);
if(is_array(metdeadArr)){
for(var i=0; i&lt;array_length_1d(global.metdead); i++){
for(var f=0; f&lt;array_height_2d(metdeadArr); f++){
if(i == metdeadArr[f, 1]){
global.metdeadPrev[i] = metdeadArr[f, 0];
show_debug_message("metdead prev index " + string(i) + " changed");
if(global.metdead[i] != metdeadArr[f, 0]){
global.metdead[i] = metdeadArr[f, 0];
show_debug_message("metdead current index " + string(i) + " changed");
}
}
}
@ -913,16 +1215,13 @@ switch(type_event){
ds_grid_read(event, strict_decompress(buffer_read(_buffer, buffer_string)));
var clientID = buffer_read(_buffer, buffer_u8);
var eventArr = event[# 0, 0];
show_debug_message(eventArr);
if(is_array(eventArr)){
for(var i=0; i&lt;array_length_1d(global.event); i++){
for(var f=0; f&lt;array_height_2d(eventArr); f++){
if(i == eventArr[f, 1]){
global.eventPrev[i] = eventArr[f, 0];
show_debug_message("event prev index " + string(i) + " changed");
if(global.event[i] != eventArr[f, 0]){
global.event[i] = eventArr[f, 0];
show_debug_message("event current index " + string(i) + " changed");
}
}
}
@ -935,6 +1234,35 @@ switch(type_event){
}
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&lt;array_height_2d(global.dmap); i++){
for(var f=0; f&lt;array_length_2d(global.dmap, i); f++){
for(var v=0; v&lt;array_height_2d(dmapArr); v++){
if(i == dmapArr[v, 1] &amp;&amp; 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] = 30;
if(global.clientID == clientID){
ds_grid_clear(global.onlineMap, -1);
global.dmapChanges = 0;
}
ds_grid_destroy(dmap);
break;
}
}
</string>
@ -959,7 +1287,20 @@ switch(type_event){
<arguments>
<argument>
<kind>1</kind>
<string>network_destroy(socket);
<string>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);
@ -968,9 +1309,12 @@ ds_grid_destroy(global.onlineReceived);
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);
</string>
</argument>
</arguments>
@ -993,19 +1337,48 @@ ds_list_destroy(roomListData);
<arguments>
<argument>
<kind>1</kind>
<string>if(ds_list_size(roomListData) &gt; 0){
<string>if(ds_list_size(roomListData) &gt; 0){
for(var i=0; i&lt;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 arrRoom = arrDraw[5];
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];
if(arrRoom == room &amp;&amp; instance_exists(oCharacter)){
draw_sprite_ext(arrSprite, arrImage, arrX, arrY, 1, 1, direction, c_black, image_alpha);
draw_character_ext(arrSprite, arrX, arrY, arrA1, arrA1X, arrA1Y, arrA2, arrA2X, arrA2Y, arrA2A, arrMirror, arrBlend, alpha, arrArmmsl, arrImage, arrID);
draw_set_font(font_displayname);
draw_set_halign(fa_center);
draw_cool_text(arrX, arrY - 52, arrName, c_black, c_white, c_white, 1);
}
}
}
if(instance_exists(oMapCursor)){
if(ds_list_size(posData) &gt; 0){
for(var i=0; i&lt;ds_list_size(posData); i++){
var arrMapIcon = posData[| i];
var arrID = arrMapIcon[0];
var arrX = arrMapIcon[1];
var arrY = arrMapIcon[2];
draw_sprite(sDarkMultitroidPlayer, (arrID - 1), (arrX * 8), ((arrY * 8) + 32));
}
}
}
</string>
</argument>
</arguments>

File diff suppressed because one or more lines are too long

@ -254,6 +254,15 @@ if(room == rm_a7b08A){
}
}
}
if(event &gt; -1){
if(global.event[event] &gt; 0){
if(lock == 1 || lock == 2 || lock == 3){
lock = 0;
open = 1;
}
}
}
</string>
</argument>
</arguments>

@ -65,7 +65,7 @@ mus_change(musArea1A);</code>
<instance objName="oGotoRoom" x="640" y="160" name="inst_108213" locked="0" code="&#xA;targetroom = rm_a1a02;&#xA;targetx = 16;&#xA;targety = 640;&#xA;height = 80;&#xA;direction = 0;&#xA;camstartx = 16;&#xA;camstarty = 640;&#xA;transitionx = 4;&#xA;transitiony = 160;&#xA;" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oFadeTiles" x="128" y="192" name="inst_108214" locked="0" code="&#xA;areax = 560;&#xA;areay = 32;&#xA;" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oGotoRoom" x="0" y="160" name="inst_108215" locked="0" code="&#xA;targetroom = rm_a1a04;&#xA;targetx = 304;&#xA;targety = 160;&#xA;height = 80;&#xA;direction = 180;&#xA;camstartx = 304;&#xA;camstarty = 160;&#xA;transitionx = 316;&#xA;transitiony = 160;&#xA;" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oDoor" x="24" y="96" name="inst_108216" locked="0" code="&#xA;lock = 1;&#xA;event = 52;&#xA;" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oDoor" x="24" y="96" name="inst_108216" locked="0" code="lock = 1;&#xA;event = 52;" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oSolid1" x="0" y="16" name="inst_108217" locked="0" code="" scaleX="3" scaleY="5" colour="4294967295" rotation="0"/>
<instance objName="oSolid1" x="48" y="16" name="inst_108218" locked="0" code="" scaleX="36" scaleY="1" colour="4294967295" rotation="0"/>
<instance objName="oSolid1" x="592" y="32" name="inst_108219" locked="0" code="" scaleX="3" scaleY="4" colour="4294967295" rotation="0"/>

@ -0,0 +1,36 @@
/// draw_character_ext(sprite, x, y, sprite2, s2ox, s2oy, sprite3, s3ox, s3oy, s3angle, facing, color, alpha, s3show, arrID)
var ID = argument15;
if ((oControl.mod_fusion) && (!oControl.msr_fusionsuit)) { // Fusion suit
if (global.currentsuit == 0) { // Power
pal_swap_set(sPalFusion0, 1, false);
} else if (global.currentsuit == 1) { // Varia
pal_swap_set(sPalFusion1, 1, false);
} else if (global.currentsuit == 2) { // Gravity
pal_swap_set(sPalFusion2, 1, false);
}
} else { // Custom color swaps
if (global.currentsuit == 0) { // Power
pal_swap_set(oControl.PowerPalette, 1, false);
} else if (global.currentsuit == 1) { // Varia
pal_swap_set(oControl.VariaPalette, 1, false);
} else if (global.currentsuit == 2) { // Gravity
pal_swap_set(oControl.GravityPalette, 1, false);
}
}
if(oControl.mod_fusion){
pal_swap_set(sPalMultitroidFusion, ID, false);
} else {
pal_swap_set(sPalMultitroidNew, ID, false);
}
draw_sprite_ext(argument0, argument14, argument1, argument2, argument10, 1, 0, argument11, argument12);
draw_sprite_ext(argument3, argument14, argument1 + argument4, argument2 + argument5, argument10, 1, 0, argument11, argument12);
if (argument13 == 1) {
draw_sprite_ext(argument6, argument14, argument1 + argument7, argument2 + argument8, argument10, 1, argument9, argument11, argument12);
}
shader_reset();
pal_swap_reset();

@ -249,6 +249,25 @@ draw_sprite(sGUIPBomb, 1, xoff + 1, 4);
} else draw_sprite(sGUIPBomb, 0, xoff + 1, 4);
}
}
if(instance_exists(oClient)){
if(oClient.connected){
if(ds_list_size(global.idList) > 1){
for(var f=0; f<ds_list_size(global.idList); f++){
var arrList = global.idList[| f];
var ID = arrList[0, 0];
if(ID == global.clientID){
draw_sprite(sMultitroidIcon, (ID - 1), (240 - (f * 10)) + widescreen_space, 5);
} else {
draw_sprite(sDarkMultitroidPlayer, (ID - 1), (240 - (f * 10)) + widescreen_space, 5);
}
}
} else if(ds_list_size(global.idList) == 1 || ds_list_size(global.idList) == 0){
draw_sprite(sMultitroidIcon, 0, 240 + widescreen_space, 5);
}
}
}
if (global.ophudshowmap && global.ophudshowmetrcount) {
draw_background(bgGUIMap, 250 + widescreen_space, 0);
xoff = 250;
@ -268,7 +287,19 @@ draw_background(bgGUIMetCountBG2, xoff + 4 + widescreen_space, 4);
draw_text(xoff + 6 + widescreen_space, 21, to_string_lz(global.monstersleft));
}
}
if (global.ophudshowmap) draw_gui_map(276 + widescreen_space, 0);
if (global.ophudshowmap){
draw_gui_map(276 + widescreen_space, 0);
if(instance_exists(oClient)){
for(var i=0; i<ds_list_size(oClient.posData); i++){
var arrData = oClient.posData[| i];
var xDiff = oClient.posX - arrData[1];
var yDiff = oClient.posY - arrData[2];
if(abs(xDiff) <= 2 && abs(yDiff) <= 1){
draw_sprite(sDarkMultitroidPlayer, (arrData[0] - 1), (((276 + widescreen_space) + 16) - (xDiff * 8)), ((0 + 12) - (yDiff * 8)));
}
}
}
}
} // if (global.classicmode == 0 && global.opshowhud)

@ -11,4 +11,5 @@ repeat (80) {
}
k += 1;
}
ds_list_clear(list);

@ -35,6 +35,7 @@ switch(argument0){
global.currentsuitPrev = global.currentsuit;
global.monstersareaPrev = global.monstersarea;
global.lavastatePrev = global.lavastate;
global.dmapPrev = array_clone(global.dmap);
break;
case "updateprev":
for(var i=0; i<ds_grid_height(global.onlineReceived); i++){
@ -116,6 +117,11 @@ switch(argument0){
if(global.morphballPrev != global.morphball){
global.morphballPrev = global.morphball;
}
if(global.morphball == 1){
popup_text("Morph enabled");
} else {
popup_text("Morph disabled");
}
} else if(global.onlineReceived[# 2, i] == 10 && global.receivedClientID == global.clientID){
global.morphballPrev = global.morphball;
}
@ -125,6 +131,11 @@ switch(argument0){
if(global.jumpballPrev != global.jumpball){
global.jumpballPrev = global.jumpball;
}
if(global.jumpball == 1){
popup_text("Springball enabled");
} else {
popup_text("Springball disabled");
}
} else if(global.onlineReceived[# 2, i] == 11 && global.receivedClientID == global.clientID){
global.jumpballPrev = global.jumpball;
}
@ -134,6 +145,11 @@ switch(argument0){
if(global.powergripPrev != global.powergrip){
global.powergripPrev = global.powergrip;
}
if(global.powergrip == 1){
popup_text("Powergrip enabled");
} else {
popup_text("Powergrip disabled");
}
} else if(global.onlineReceived[# 2, i] == 12 && global.receivedClientID == global.clientID){
global.powergripPrev = global.powergrip;
}
@ -143,6 +159,11 @@ switch(argument0){
if(global.spacejumpPrev != global.spacejump){
global.spacejumpPrev = global.spacejump;
}
if(global.spacejump == 1){
popup_text("Spacejump enabled");
} else {
popup_text("Spacejump disabled");
}
} else if(global.onlineReceived[# 2, i] == 13 && global.receivedClientID == global.clientID){
global.spacejumpPrev = global.spacejump;
}
@ -152,6 +173,11 @@ switch(argument0){
if(global.screwattackPrev != global.screwattack){
global.screwattackPrev = global.screwattack;
}
if(global.screwattack == 1){
popup_text("Screwattack enabled");
} else {
popup_text("Screwattack disabled");
}
} else if(global.onlineReceived[# 2, i] == 14 && global.receivedClientID == global.clientID){
global.screwattackPrev = global.screwattack;
}
@ -161,6 +187,11 @@ switch(argument0){
if(global.hijumpPrev != global.hijump){
global.hijumpPrev = global.hijump;
}
if(global.hijump == 1){
popup_text("Hi jump enabled");
} else {
popup_text("Hi jump disabled");
}
} else if(global.onlineReceived[# 2, i] == 15 && global.receivedClientID == global.clientID){
global.hijumpPrev = global.hijump;
}
@ -170,6 +201,11 @@ switch(argument0){
if(global.spiderballPrev != global.spiderball){
global.spiderballPrev = global.spiderball;
}
if(global.spiderball == 1){
popup_text("Spiderball enabled");
} else {
popup_text("Spiderball disabled");
}
} else if(global.onlineReceived[# 2, i] == 16 && global.receivedClientID == global.clientID){
global.spiderballPrev = global.spiderball;
}
@ -179,6 +215,11 @@ switch(argument0){
if(global.speedboosterPrev != global.speedbooster){
global.speedboosterPrev = global.speedbooster;
}
if(global.speedbooster == 1){
popup_text("Speedbooster enabled");
} else {
popup_text("Speedbooster disabled");
}
} else if(global.onlineReceived[# 2, i] == 17 && global.receivedClientID == global.clientID){
global.speedboosterPrev = global.speedbooster;
}
@ -188,6 +229,11 @@ switch(argument0){
if(global.bombPrev != global.bomb){
global.bombPrev = global.bomb;
}
if(global.bomb == 1){
popup_text("Bombs enabled");
} else {
popup_text("Bombs disabled");
}
} else if(global.onlineReceived[# 2, i] == 18 && global.receivedClientID == global.clientID){
global.bombPrev = global.bomb;
}
@ -197,6 +243,11 @@ switch(argument0){
if(global.ibeamPrev != global.ibeam){
global.ibeamPrev = global.ibeam;
}
if(global.ibeam == 1){
popup_text("Ice beam enabled");
} else {
popup_text("Ice beam disabled");
}
} else if(global.onlineReceived[# 2, i] == 19 && global.receivedClientID == global.clientID){
global.ibeamPrev = global.ibeam;
}
@ -206,6 +257,11 @@ switch(argument0){
if(global.wbeamPrev != global.wbeam){
global.wbeamPrev = global.wbeam;
}
if(global.wbeam == 1){
popup_text("Wave beam enabled");
} else {
popup_text("Wave beam disabled");
}
} else if(global.onlineReceived[# 2, i] == 20 && global.receivedClientID == global.clientID){
global.wbeamPrev = global.wbeam;
}
@ -215,6 +271,11 @@ switch(argument0){
if(global.pbeamPrev != global.pbeam){
global.pbeamPrev = global.pbeam;
}
if(global.pbeam == 1){
popup_text("Plasma beam enabled");
} else {
popup_text("Plasma beam disabled");
}
} else if(global.onlineReceived[# 2, i] == 21 && global.receivedClientID == global.clientID){
global.pbeamPrev = global.pbeam;
}
@ -224,6 +285,11 @@ switch(argument0){
if(global.sbeamPrev != global.sbeam){
global.sbeamPrev = global.sbeam;
}
if(global.sbeam == 1){
popup_text("Spazer beam enabled");
} else {
popup_text("Spazer beam disabled");
}
} else if(global.onlineReceived[# 2, i] == 22 && global.receivedClientID == global.clientID){
global.sbeamPrev = global.sbeam;
}
@ -233,6 +299,11 @@ switch(argument0){
if(global.cbeamPrev != global.cbeam){
global.cbeamPrev = global.cbeam;
}
if(global.cbeam == 1){
popup_text("Charge beam enabled");
} else {
popup_text("Charge beam disabled");
}
} else if(global.onlineReceived[# 2, i] == 23 && global.receivedClientID == global.clientID){
global.cbeamPrev = global.cbeam;
}
@ -287,6 +358,13 @@ switch(argument0){
if(global.currentsuitPrev != global.currentsuit){
global.currentsuitPrev = global.currentsuit;
}
if(global.currentsuit == 2){
popup_text("Gravity suit enabled");
} else if(global.currentsuit == 1){
popup_text("Varia suit enabled");
} else if(global.currentsuit == 0){
popup_text("Power suit enabled");
}
} else if(global.onlineReceived[# 2, i] == 31 && global.receivedClientID == global.clientID){
global.currentsuitPrev = global.currentsuit;
}

@ -0,0 +1,32 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>0</xorig>
<yorigin>0</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>8</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>8</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>9</width>
<height>9</height>
<frames>
<frame index="0">images\sDarkMultitroidPlayer_0.png</frame>
<frame index="1">images\sDarkMultitroidPlayer_1.png</frame>
<frame index="2">images\sDarkMultitroidPlayer_2.png</frame>
<frame index="3">images\sDarkMultitroidPlayer_3.png</frame>
<frame index="4">images\sDarkMultitroidPlayer_4.png</frame>
<frame index="5">images\sDarkMultitroidPlayer_5.png</frame>
<frame index="6">images\sDarkMultitroidPlayer_6.png</frame>
<frame index="7">images\sDarkMultitroidPlayer_7.png</frame>
</frames>
</sprite>

@ -0,0 +1,32 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>0</xorig>
<yorigin>0</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>8</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>8</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>9</width>
<height>9</height>
<frames>
<frame index="0">images\sMultitroidIcon_0.png</frame>
<frame index="1">images\sMultitroidIcon_1.png</frame>
<frame index="2">images\sMultitroidIcon_2.png</frame>
<frame index="3">images\sMultitroidIcon_3.png</frame>
<frame index="4">images\sMultitroidIcon_4.png</frame>
<frame index="5">images\sMultitroidIcon_5.png</frame>
<frame index="6">images\sMultitroidIcon_6.png</frame>
<frame index="7">images\sMultitroidIcon_7.png</frame>
</frames>
</sprite>

@ -0,0 +1,25 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>0</xorig>
<yorigin>0</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>8</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>78</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>9</width>
<height>79</height>
<frames>
<frame index="0">images\sPalMultitroidFusion_0.png</frame>
</frames>
</sprite>

@ -0,0 +1,25 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>0</xorig>
<yorigin>0</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>8</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>86</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>9</width>
<height>87</height>
<frames>
<frame index="0">images\sPalMultitroidNew_0.png</frame>
</frames>
</sprite>
Loading…
Cancel
Save