Added experimental random seed auto sync

cleaner
milesthenerd 6 years ago
parent 1edb32e209
commit c893e3808d

@ -4373,6 +4373,7 @@
<script>scripts\strict_decompress.gml</script> <script>scripts\strict_decompress.gml</script>
<script>scripts\strict_encode_verb.gml</script> <script>scripts\strict_encode_verb.gml</script>
<script>scripts\create_buffer.gml</script> <script>scripts\create_buffer.gml</script>
<script>scripts\send_seed.gml</script>
</scripts> </scripts>
</scripts> </scripts>
<shaders name="shaders"> <shaders name="shaders">
@ -5862,4 +5863,4 @@
<TutorialName></TutorialName> <TutorialName></TutorialName>
<TutorialPage>0</TutorialPage> <TutorialPage>0</TutorialPage>
</TutorialState> </TutorialState>
</assets> </assets>

@ -31,8 +31,7 @@ canSend = false;
connected = false; connected = false;
queenHealthWait = false; queenHealthWait = false;
queenDead = false; queenDead = false;
seedSent = false; seed = undefined;
seedReceived = false;
var type; var type;
type = network_socket_tcp; type = network_socket_tcp;
var file = file_text_open_read(working_directory + "\ipaddress.txt"); var file = file_text_open_read(working_directory + "\ipaddress.txt");
@ -364,21 +363,6 @@ if(!is_undefined(oQueen.phase)){
} }
} }
if(oControl.seed != 0 &amp;&amp; !is_undefined(oControl.seed) &amp;&amp; !seedSent){
seedSent = true;
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, 3);
buffer_write(buffer, buffer_f64, oControl.seed);
buffer_write(buffer, buffer_u8, global.clientID);
popup_text("Seed sent");
}
if(keyboard_check_pressed(vk_f2)){ if(keyboard_check_pressed(vk_f2)){
instance_destroy(); instance_destroy();
} }
@ -491,12 +475,12 @@ switch(type_event){
} }
break; break;
case 4: case 4:
seed = buffer_read(_buffer, buffer_f64); var _seed = buffer_read(_buffer, buffer_f64);
var clientID = buffer_read(_buffer, buffer_u8); var clientID = buffer_read(_buffer, buffer_u8);
if(clientID != global.clientID){ if(clientID != global.clientID){
if(oControl.seed != seed &amp;&amp; !seedReceived){ if(seed != _seed){
oControl.seed = seed; seed = _seed;
seedReceived = true; show_debug_message("seed received");
popup_text("Seed received"); popup_text("Seed received");
} }
} }

@ -1,15 +1,26 @@
var temp_seed = random_get_seed(); var temp_seed = random_get_seed();
randomize(); randomize();
oControl.seed = random_get_seed(); if(instance_exists(oClient)){
random_set_seed(oControl.seed); if(!is_undefined(oClient.seed)){
if(oControl.seed != oClient.seed){
oControl.seed = oClient.seed;
random_set_seed(oControl.seed);
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
send_seed();
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
}
if (oControl.mod_usemanualseed == 1) { if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed); random_set_seed(oControl.mod_seed);
oControl.seed = oControl.mod_seed; oControl.seed = oControl.mod_seed;
} }
var list = ds_list_create(); var list = ds_list_create();
ds_list_add(list,0,2,3,4,5,6,7,8,9,10,11,12,13,14); ds_list_add(list,0,2,3,4,5,6,7,8,9,10,11,12,13,14);

@ -1,7 +1,20 @@
var temp_seed = random_get_seed(); var temp_seed = random_get_seed();
randomize(); randomize();
oControl.seed = random_get_seed(); if(instance_exists(oClient)){
random_set_seed(oControl.seed); if(!is_undefined(oClient.seed)){
if(oControl.seed != oClient.seed){
oControl.seed = oClient.seed;
random_set_seed(oControl.seed);
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
send_seed();
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
}
if (oControl.mod_usemanualseed == 1) { if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed); random_set_seed(oControl.mod_seed);

@ -1,11 +1,19 @@
var temp_seed = random_get_seed(); var temp_seed = random_get_seed();
randomize(); randomize();
oControl.seed = random_get_seed(); if(instance_exists(oClient)){
random_set_seed(oControl.seed); if(!is_undefined(oClient.seed)){
if(oControl.seed != oClient.seed){
if (oControl.mod_usemanualseed == 1) { oControl.seed = oClient.seed;
random_set_seed(oControl.mod_seed); random_set_seed(oControl.seed);
oControl.seed = oControl.mod_seed; }
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
send_seed();
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
} }
var randpb = argument0; var randpb = argument0;

@ -1,13 +1,28 @@
var temp_seed = random_get_seed(); var temp_seed = random_get_seed();
randomize(); randomize();
oControl.seed = random_get_seed(); if(instance_exists(oClient)){
random_set_seed(oControl.seed); if(!is_undefined(oClient.seed)){
if(oControl.seed != oClient.seed){
oControl.seed = oClient.seed;
random_set_seed(oControl.seed);
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
send_seed();
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
}
if (oControl.mod_usemanualseed == 1) { if (oControl.mod_usemanualseed == 1) {
random_set_seed(oControl.mod_seed); random_set_seed(oControl.mod_seed);
oControl.seed = oControl.mod_seed; oControl.seed = oControl.mod_seed;
} }
// These lists no longer used after 1.3.3 // These lists no longer used after 1.3.3
oControl.list_bombs = ds_list_create(); oControl.list_bombs = ds_list_create();
ds_list_add(oControl.list_bombs,true,false); ds_list_add(oControl.list_bombs,true,false);

@ -2,6 +2,22 @@
var temp_seed = random_get_seed(); var temp_seed = random_get_seed();
randomize(); randomize();
if(instance_exists(oClient)){
if(!is_undefined(oClient.seed)){
if(oControl.seed != oClient.seed){
oControl.seed = oClient.seed;
random_set_seed(oControl.seed);
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
send_seed();
}
} else {
oControl.seed = random_get_seed();
random_set_seed(oControl.seed);
}
if (oControl.mod_usemanualseed == 1) { random_set_seed(oControl.mod_seed); } if (oControl.mod_usemanualseed == 1) { random_set_seed(oControl.mod_seed); }
oControl.list_powerbombs = ds_list_create(); oControl.list_powerbombs = ds_list_create();

@ -0,0 +1,12 @@
/// send_seed
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
seedBuffer = buffer_create(size, type, alignment);
buffer_seek(seedBuffer, buffer_seek_start, 0);
buffer_write(seedBuffer, buffer_u8, 3);
buffer_write(seedBuffer, buffer_f64, oControl.seed);
buffer_write(seedBuffer, buffer_u8, global.clientID);
var result = network_send_packet(oClient.socket, seedBuffer, buffer_tell(seedBuffer));
popup_text("Seed sent");
Loading…
Cancel
Save