Added FFA to Server

main
DodoBirb 4 years ago
parent ebccb56b50
commit 68c2c53957
No known key found for this signature in database
GPG Key ID: 361CA687D5E39154

@ -0,0 +1,2 @@
global.freeForAll = 0
image_speed = 0

@ -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)

@ -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
}

@ -0,0 +1,4 @@
if global.freeForAll
image_index = 0
else
image_index = 1

@ -15,6 +15,7 @@ buffer_write(buffer, buffer_u8, global.lobbyLocked)
buffer_write(buffer, buffer_u8, samCount) buffer_write(buffer, buffer_u8, samCount)
buffer_write(buffer, buffer_string, string(global.damageMult)) buffer_write(buffer, buffer_string, string(global.damageMult))
buffer_write(buffer, buffer_u8, global.experimental) buffer_write(buffer, buffer_u8, global.experimental)
buffer_write(buffer, buffer_u8, global.freeForAll)
bufferSize = buffer_tell(buffer) bufferSize = buffer_tell(buffer)
buffer_seek(buffer, buffer_seek_start, 0) buffer_seek(buffer, buffer_seek_start, 0)
buffer_write(buffer, buffer_s32, bufferSize) buffer_write(buffer, buffer_s32, bufferSize)
@ -24,6 +25,7 @@ buffer_write(buffer, buffer_u8, global.lobbyLocked)
buffer_write(buffer, buffer_u8, samCount) buffer_write(buffer, buffer_u8, samCount)
buffer_write(buffer, buffer_string, string(global.damageMult)) buffer_write(buffer, buffer_string, string(global.damageMult))
buffer_write(buffer, buffer_u8, global.experimental) buffer_write(buffer, buffer_u8, global.experimental)
buffer_write(buffer, buffer_u8, global.freeForAll)
for (i = 0; i < sockets; i++) for (i = 0; i < sockets; i++)
network_send_packet(ds_list_find_value(playerList, i), buffer, buffer_tell(buffer)) network_send_packet(ds_list_find_value(playerList, i), buffer, buffer_tell(buffer))
alarm[11] = 30 alarm[11] = 30

@ -79,3 +79,6 @@ global.lobbyLocked = 0
global.damageMult = 0 global.damageMult = 0
global.clientVersion = "V1.9.3" global.clientVersion = "V1.9.3"
global.experimental = 0 global.experimental = 0
global.freeForAll = 0
global.totalItemCount = 0
global.FFAItemCounter[0] = 0

@ -842,11 +842,76 @@ switch type_event
network_send_packet(tempSocket, buffer, buffer_tell(buffer)) network_send_packet(tempSocket, buffer, buffer_tell(buffer))
} }
else else
{
g++ g++
continue }
ds_grid_read(vars, strict_decompress(buffer_read(_buffer, buffer_string)))
clientID = buffer_read(_buffer, buffer_u8)
packetID = buffer_read(_buffer, buffer_u32)
buffer_delete(buffer)
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)
buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(vars)))
buffer_write(buffer, buffer_u8, clientID)
buffer_write(buffer, buffer_u32, packetID)
bufferSize = buffer_tell(buffer)
buffer_seek(buffer, buffer_seek_start, 0)
buffer_write(buffer, buffer_s32, bufferSize)
buffer_write(buffer, buffer_u8, 1)
buffer_write(buffer, buffer_string, strict_compress(ds_grid_write(vars)))
buffer_write(buffer, buffer_u8, clientID)
buffer_write(buffer, buffer_u32, packetID)
sockets = ds_list_size(playerList)
for (i = 0; i < sockets; i++)
{
if (ds_list_find_value(playerList, i) != socket)
{
if (global.itemSync && global.itemToggleSync)
{
for (i = 0; i < sockets; i++)
{
for (f = 0; f < ds_list_size(idList); f++)
{
arr = ds_list_find_value(idList, f)
arrID = arr[0, 0]
arrSocket = arr[0, 1]
if (arrSocket == ds_list_find_value(playerList, i))
{
findID = ds_list_find_index(samusList, arrID)
if (findID >= 0 && team == 1)
network_send_packet(ds_list_find_value(playerList, i), buffer, buffer_tell(buffer))
findID = ds_list_find_index(saxList, arrID)
if (findID >= 0 && team == 2)
network_send_packet(ds_list_find_value(playerList, i), buffer, buffer_tell(buffer))
}
}
}
}
}
else
{
size = 1024
type = buffer_grow
alignment = 1
socketBuffer = buffer_create(size, type, alignment)
buffer_seek(socketBuffer, buffer_seek_start, 0)
buffer_write(socketBuffer, buffer_u8, 2)
buffer_write(socketBuffer, buffer_string, strict_compress(ds_grid_write(vars)))
buffer_write(socketBuffer, buffer_u8, clientID)
bufferSize = buffer_tell(socketBuffer)
buffer_seek(socketBuffer, buffer_seek_start, 0)
buffer_write(socketBuffer, buffer_s32, bufferSize)
buffer_write(socketBuffer, buffer_u8, 2)
buffer_write(socketBuffer, buffer_string, strict_compress(ds_grid_write(vars)))
buffer_write(socketBuffer, buffer_u8, clientID)
network_send_packet(ds_list_find_value(playerList, i), socketBuffer, buffer_tell(socketBuffer))
buffer_delete(socketBuffer)
} }
} }
break
} }
else else
break break
@ -1303,6 +1368,7 @@ switch type_event
item = ds_list_create() item = ds_list_create()
ds_list_read(item, strict_decompress(buffer_read(_buffer, buffer_string))) ds_list_read(item, strict_decompress(buffer_read(_buffer, buffer_string)))
clientID = buffer_read(_buffer, buffer_u8) clientID = buffer_read(_buffer, buffer_u8)
global.FFAItemCounter[clientID] = buffer_read(_buffer, buffer_u8)
sockets = ds_list_size(playerList) sockets = ds_list_size(playerList)
itemArr = ds_list_find_value(item, 0) itemArr = ds_list_find_value(item, 0)
for (v = 0; v < sockets; v++) for (v = 0; v < sockets; v++)

@ -1,5 +1,8 @@
var etankCount, i, stankCount, ptankCount, mtankCount, itemCount, h, val, sval; var etankCount, i, stankCount, ptankCount, mtankCount, itemCount, h, val, sval;
etankCount = 0 etankCount = 0
global.totalItemCount = 0
for (i = 0; i < array_length_1d(global.FFAItemCounter); i++)
global.totalItemCount += global.FFAItemCounter[i]
for (i = 0; i < array_length_1d(global.itemSamus); i++) for (i = 0; i < array_length_1d(global.itemSamus); i++)
{ {
if (i == 50 || i == 103 || i == 108 || i == 157 || i == 158 || i == 200 || i == 201 || i == 251 || i == 254 || i == 306) if (i == 50 || i == 103 || i == 108 || i == 157 || i == 158 || i == 200 || i == 201 || i == 251 || i == 254 || i == 306)
@ -57,6 +60,8 @@ itemCount = (itemCount / 2)
global.damageMult = ((itemCount / 88) * 3) global.damageMult = ((itemCount / 88) * 3)
if global.experimental if global.experimental
global.damageMult = ((itemCount / 88) * 5) global.damageMult = ((itemCount / 88) * 5)
if global.freeForAll
global.damageMult = (((global.totalItemCount / ds_list_size(playerList)) / 88) * 3)
etankCount = 0 etankCount = 0
for (i = 0; i < array_length_1d(global.itemSAX); i++) for (i = 0; i < array_length_1d(global.itemSAX); i++)
{ {

@ -0,0 +1,123 @@
{
"name": "oFreeForAll",
"sprite": "sOption",
"visible": true,
"solid": false,
"depth": 0,
"persistent": false,
"parent_id": null,
"texture_mask_id": null,
"uses_physics": false,
"is_sensor": false,
"collision_shape": 0,
"density": 0.5,
"restitution": 0.1,
"group": 0,
"linear_damping": 0.1,
"angular_damping": 0.1,
"friction": 0.2,
"awake": true,
"kinematic": false,
"physics_vertices": [],
"events": [
[
{
"event_subtype": 0,
"actions": [
{
"lib_id": 0,
"id": 0,
"kind": 0,
"use_relative": false,
"is_question": false,
"use_apply_to": false,
"exe_type": 0,
"action_name": null,
"code_id": "gml_Object_oFreeForAll_Create",
"argument_count": 0,
"who": 0,
"relative": false,
"is_not": false
}
]
}
],
[],
[],
[
{
"event_subtype": 0,
"actions": [
{
"lib_id": 0,
"id": 0,
"kind": 0,
"use_relative": false,
"is_question": false,
"use_apply_to": false,
"exe_type": 0,
"action_name": null,
"code_id": "gml_Object_oFreeForAll_Step",
"argument_count": 0,
"who": 0,
"relative": false,
"is_not": false
}
]
}
],
[],
[],
[
{
"event_subtype": 4,
"actions": [
{
"lib_id": 0,
"id": 0,
"kind": 0,
"use_relative": false,
"is_question": false,
"use_apply_to": false,
"exe_type": 0,
"action_name": null,
"code_id": "gml_Object_oFreeForAll_MouseLeft",
"argument_count": 0,
"who": 0,
"relative": false,
"is_not": false
}
]
}
],
[],
[
{
"event_subtype": 0,
"actions": [
{
"lib_id": 0,
"id": 0,
"kind": 0,
"use_relative": false,
"is_question": false,
"use_apply_to": false,
"exe_type": 0,
"action_name": null,
"code_id": "gml_Object_oFreeForAll_Draw",
"argument_count": 0,
"who": 0,
"relative": false,
"is_not": false
}
]
}
],
[],
[],
[],
[],
[],
[]
]
}

@ -653,6 +653,20 @@
"pre_create_code": null, "pre_create_code": null,
"image_speed": 0, "image_speed": 0,
"image_index": 0 "image_index": 0
},
{
"x": 1248,
"y": 704,
"object_definition": "oFreeForAll",
"instance_id": 100030,
"creation_code": null,
"scale_x": 1,
"scale_y": 1,
"color": 4294967295,
"rotation": 0,
"pre_create_code": null,
"image_speed": 0,
"image_index": 0
} }
], ],
"tiles": [], "tiles": [],

Loading…
Cancel
Save