diff --git a/Export_Code/gml_Object_oClient_Alarm_11.gml b/Export_Code/gml_Object_oClient_Alarm_11.gml index c5bae40..10aface 100644 --- a/Export_Code/gml_Object_oClient_Alarm_11.gml +++ b/Export_Code/gml_Object_oClient_Alarm_11.gml @@ -17,6 +17,7 @@ buffer_write(buffer, buffer_s16, posY) buffer_write(buffer, buffer_u8, global.sax) buffer_write(buffer, buffer_u8, global.spectator) buffer_write(buffer, buffer_u8, playerState) +buffer_write(buffer, buffer_u8, global.itemstaken) buffer_write(buffer, buffer_bool, global.showHealthIndicatorsTimer > 0) bufferSize = buffer_tell(buffer) buffer_seek(buffer, buffer_seek_start, 0) @@ -29,6 +30,7 @@ buffer_write(buffer, buffer_s16, posY) buffer_write(buffer, buffer_u8, global.sax) buffer_write(buffer, buffer_u8, global.spectator) buffer_write(buffer, buffer_u8, playerState) +buffer_write(buffer, buffer_u8, global.itemstaken) buffer_write(buffer, buffer_bool, global.showHealthIndicatorsTimer > 0) result = network_send_packet(socket, buffer, buffer_tell(buffer)) alarm[11] = 20 diff --git a/Export_Code/gml_Object_oClient_Other_68.gml b/Export_Code/gml_Object_oClient_Other_68.gml index c8d30a7..373f28c 100644 --- a/Export_Code/gml_Object_oClient_Other_68.gml +++ b/Export_Code/gml_Object_oClient_Other_68.gml @@ -475,6 +475,7 @@ switch type_event damageMult = real(damageMultStr) experimental = buffer_read(_buffer, buffer_u8) global.MetCount = buffer_read(_buffer, buffer_u8) + global.freeForAll = buffer_read(_buffer, buffer_u8) global.damageMult = damageMult global.saxmode = saxmode global.experimental = experimental diff --git a/Export_Code/gml_Object_oControl_Create_0.gml b/Export_Code/gml_Object_oControl_Create_0.gml index 15c69a5..021a143 100644 --- a/Export_Code/gml_Object_oControl_Create_0.gml +++ b/Export_Code/gml_Object_oControl_Create_0.gml @@ -479,5 +479,6 @@ global.experimental = 0 global.saveStationCooldown = 0 global.hitBySuper = 0 global.MetCount = 41 +global.freeForAll = 0 reset_map() load_character_vars() diff --git a/Export_Code/gml_Script_characterStepEvent.gml b/Export_Code/gml_Script_characterStepEvent.gml index e23734f..e8d6465 100644 --- a/Export_Code/gml_Script_characterStepEvent.gml +++ b/Export_Code/gml_Script_characterStepEvent.gml @@ -3648,3 +3648,5 @@ if (!global.saxmode) } else if (global.damageMult == 2) global.gametime += 1 +if global.freeForAll + global.sax = global.clientID diff --git a/Export_CodeServer/gml_Object_oFreeForAll_Create_0.gml b/Export_CodeServer/gml_Object_oFreeForAll_Create_0.gml new file mode 100644 index 0000000..8b026db --- /dev/null +++ b/Export_CodeServer/gml_Object_oFreeForAll_Create_0.gml @@ -0,0 +1,2 @@ +global.freeForAll = 0 +image_speed = 0 diff --git a/Export_CodeServer/gml_Object_oFreeForAll_Draw_0.gml b/Export_CodeServer/gml_Object_oFreeForAll_Draw_0.gml new file mode 100644 index 0000000..2694d1a --- /dev/null +++ b/Export_CodeServer/gml_Object_oFreeForAll_Draw_0.gml @@ -0,0 +1,4 @@ +draw_self() +draw_set_halign(fa_right) +draw_text((x - sprite_width), (y - 12), "Toggle FFA") +draw_set_halign(fa_left) diff --git a/Export_CodeServer/gml_Object_oFreeForAll_Mouse_4.gml b/Export_CodeServer/gml_Object_oFreeForAll_Mouse_4.gml new file mode 100644 index 0000000..c09dc53 --- /dev/null +++ b/Export_CodeServer/gml_Object_oFreeForAll_Mouse_4.gml @@ -0,0 +1,9 @@ +global.freeForAll = (!global.freeForAll) +if global.freeForAll +{ + global.itemSync = 0 + global.itemToggleSync = 0 + global.healthSync = 0 + global.ammoSync = 0 + global.mapSync = 0 +} diff --git a/Export_CodeServer/gml_Object_oFreeForAll_Step_0.gml b/Export_CodeServer/gml_Object_oFreeForAll_Step_0.gml new file mode 100644 index 0000000..b9e5edb --- /dev/null +++ b/Export_CodeServer/gml_Object_oFreeForAll_Step_0.gml @@ -0,0 +1,4 @@ +if global.freeForAll + image_index = 0 +else + image_index = 1 diff --git a/Export_CodeServer/gml_Object_oServer_Alarm_11.gml b/Export_CodeServer/gml_Object_oServer_Alarm_11.gml index f6324dc..380d4c3 100644 --- a/Export_CodeServer/gml_Object_oServer_Alarm_11.gml +++ b/Export_CodeServer/gml_Object_oServer_Alarm_11.gml @@ -17,6 +17,7 @@ buffer_write(buffer, buffer_u8, samCount) buffer_write(buffer, buffer_string, string(global.damageMult)) buffer_write(buffer, buffer_u8, global.experimental) buffer_write(buffer, buffer_u8, global.MetCount) +buffer_write(buffer, buffer_u8, global.freeForAll) bufferSize = buffer_tell(buffer) buffer_seek(buffer, buffer_seek_start, 0) buffer_write(buffer, buffer_s32, bufferSize) @@ -28,6 +29,7 @@ buffer_write(buffer, buffer_u8, samCount) buffer_write(buffer, buffer_string, string(global.damageMult)) buffer_write(buffer, buffer_u8, global.experimental) buffer_write(buffer, buffer_u8, global.MetCount) +buffer_write(buffer, buffer_u8, global.freeForAll) for (i = 0; i < sockets; i++) network_send_packet(ds_list_find_value(playerList, i), buffer, buffer_tell(buffer)) alarm[11] = 30 diff --git a/Export_CodeServer/gml_Object_oServer_Create_0.gml b/Export_CodeServer/gml_Object_oServer_Create_0.gml index 10afc6b..8d49c34 100644 --- a/Export_CodeServer/gml_Object_oServer_Create_0.gml +++ b/Export_CodeServer/gml_Object_oServer_Create_0.gml @@ -85,3 +85,4 @@ global.doomtime = 0 global.doomenabled = 0 global.doomstarted = 0 global.juggActive = 0 +global.totalItemCount = 0 diff --git a/Export_CodeServer/gml_Object_oServer_Other_68.gml b/Export_CodeServer/gml_Object_oServer_Other_68.gml index 34ab08d..f6f306c 100644 --- a/Export_CodeServer/gml_Object_oServer_Other_68.gml +++ b/Export_CodeServer/gml_Object_oServer_Other_68.gml @@ -1,4 +1,4 @@ -var type_event, ip, findIP, findKickIP, ban, size, type, alignment, bufferSize, findsocket, i, arrList, socket, socketID, ID, arr, seed, findID, _buffer, bufferSizePacket, clientID, sax, sockets, preferredID, f, arrID, arrSocket, clientX, clientY, clientSprite, clientImage, clientA1, clientA1X, clientA1Y, clientA2, clientA2X, clientA2Y, clientA2A, clientMirror, clientArmmsl, clientRoom, clientName, clientBlend, clientFXTimer, clientRoomPrev, clientState, clientSAX, clientSpeedboost, clientSJBall, clientSJDir, clientSpeedCharge, clientPlayerHealth, clientSpectator, clientInvincible, clientMosaic, clientReform, clientVisible, list, clientMapX, clientMapY, spectator, findSamus, event, findDead, playerHealth, missiles, smissiles, pbombs, ping, realPing, spacejump, screwattack, spiderball, speedbooster, bomb, ibeam, wbeam, pbeam, sbeam, cbeam, tempSocket, checkID, checkX, checkY, checkBeam, checkMissile, checkDamage, checkFreeze, lag, lagPositions, timeToCheck, g, lagPosArr, lagPosTime, lagPosID, lagPosX, lagPosY, packetID, name, lobbyLocked, _queenHealth, phase, state, monstersLeft, monstersArea, item, itemArr, v, metdead, metdeadArr, eventArr, tileCount, tileX, tileY, tileData, itemstaken, maxmissiles, maxsmissiles, maxpbombs, maxhealth, etanks, mtanks, stanks, ptanks, gametime, findTime, findReset, dir, sprX, sprY, charge, bombX, bombY, currentWeapon, missileX, missileY, velX, velY, icemissiles, pbombX, pbombY, playerhealth, syncDiff, syncELM, otherAbsorbRelativeX, otherAbsorbRelativeY, otherAbsorbSpriteHeight, saxmode, findIDSamus, findIDSAX, mapposx, mapposy, mirror, sentRoom, playerX, playerY, receivedItem, receivedEvent, receivedMetdead, j, receiveddmap, msg, splitBy, slot, splits, str2, currStr, wrongVersion, playerState, combatState, checkDir, clientSBall; +var type_event, ip, findIP, findKickIP, ban, size, type, alignment, bufferSize, findsocket, i, arrList, socket, socketID, ID, arr, seed, findID, _buffer, bufferSizePacket, clientID, sax, sockets, preferredID, f, arrID, arrSocket, clientX, clientY, clientSprite, clientImage, clientA1, clientA1X, clientA1Y, clientA2, clientA2X, clientA2Y, clientA2A, clientMirror, clientArmmsl, clientRoom, clientName, clientBlend, clientFXTimer, clientRoomPrev, clientState, clientSAX, clientSpeedboost, clientSJBall, clientSJDir, clientSpeedCharge, clientPlayerHealth, clientSpectator, clientInvincible, clientMosaic, clientReform, clientVisible, list, clientMapX, clientMapY, spectator, findSamus, event, findDead, playerHealth, missiles, smissiles, pbombs, ping, realPing, spacejump, screwattack, spiderball, speedbooster, bomb, ibeam, wbeam, pbeam, sbeam, cbeam, tempSocket, checkID, checkX, checkY, checkBeam, checkMissile, checkDamage, checkFreeze, lag, lagPositions, timeToCheck, g, lagPosArr, lagPosTime, lagPosID, lagPosX, lagPosY, packetID, name, lobbyLocked, _queenHealth, phase, state, monstersLeft, monstersArea, item, itemArr, v, metdead, metdeadArr, eventArr, tileCount, tileX, tileY, tileData, itemstaken, maxmissiles, maxsmissiles, maxpbombs, maxhealth, etanks, mtanks, stanks, ptanks, gametime, findTime, findReset, dir, sprX, sprY, charge, bombX, bombY, currentWeapon, missileX, missileY, velX, velY, icemissiles, pbombX, pbombY, playerhealth, syncDiff, syncELM, otherAbsorbRelativeX, otherAbsorbRelativeY, otherAbsorbSpriteHeight, saxmode, findIDSamus, findIDSAX, mapposx, mapposy, mirror, sentRoom, playerX, playerY, receivedItem, receivedEvent, receivedMetdead, j, receiveddmap, msg, splitBy, slot, splits, str2, currStr, wrongVersion, playerState, combatState, checkDir, clientSBall, itempercent; type_event = ds_map_find_value(async_load, "type") ip = ds_map_find_value(async_load, "ip") findIP = ds_list_find_index(banList, ip) @@ -613,9 +613,12 @@ switch type_event sax = buffer_read(_buffer, buffer_u8) spectator = buffer_read(_buffer, buffer_u8) playerState = buffer_read(_buffer, buffer_u8) + itempercent = buffer_read(_buffer, buffer_u8) combatState = buffer_read(_buffer, buffer_bool) findSamus = ds_list_find_index(samusList, clientID) ds_map_replace(global.readyMap, clientID, clientRoom) + if (itempercent > global.totalItemCount) + global.totalItemCount = itempercent if (findSamus != -1 && spectator && (!sax) && global.event[308] < 4) { if (ds_list_size(deadList) > 0) diff --git a/Export_CodeServer/gml_Object_oServer_Step_0.gml b/Export_CodeServer/gml_Object_oServer_Step_0.gml index 7761133..95968fb 100644 --- a/Export_CodeServer/gml_Object_oServer_Step_0.gml +++ b/Export_CodeServer/gml_Object_oServer_Step_0.gml @@ -90,4 +90,4 @@ if (ds_list_size(playerList) > 0 && ds_list_size(resetList) > 0) } if (!global.lobbyLocked) ds_list_clear(deadList) -global.damageMult = 2.5 +global.damageMult = (3 * (global.totalItemCount / 88)) diff --git a/Export_CodeServer/gml_Script_reset_globals.gml b/Export_CodeServer/gml_Script_reset_globals.gml index 96de444..0ec1abe 100644 --- a/Export_CodeServer/gml_Script_reset_globals.gml +++ b/Export_CodeServer/gml_Script_reset_globals.gml @@ -63,6 +63,7 @@ global.gametime = 0 global.doomenabled = 0 global.doomstarted = 0 global.juggActive = 0 +global.totalItemCount = 0 syncedDifficulty = 1 syncedELM = 0 global.seed = 0