CREATOR4's Forum Posts

  • Hey

    I want to automatically create a new tab which will become the host of a new game for a set of peers. Each time a new host is created, I want the new tab to be on a new computer, so that each host is on it's own tab on it's own computer. This is so the comp doesn't run out of memory from hosting a bunch of separate games

    Is there a service that will allow me to do this?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You are correct in the way you expect the filtering to work

    Are you using the System > Compare Values to compare "if Player.Y > EnvironmentObject.Y" ?

    If so, that may be why the objects are not being filtered. Compare Values doesn't do any picking. Instead you would use Player > Compare values and the filtering should work as expected

    BUT I want to throw in there is an easier way to do this kind of sorting

    Add ALL sorted objects into a single family, including the environment and player

    Then you can sort each member of the family using the System > Sort action, which will sort all objects in a family by a variable

  • I fixed something by disabling some events in the Signalling group. I left a big comment there

    easyupload.io/qif0ie

    I don't know if it's fixed entirely though because I'm not sure what's supposed to be happening

  • I can't open the file

    I get this message:

    Failed to open project. Check it is a valid Construct 3 single-file (.c3p) project.

    Error report information

    Type: unhandled rejection

    Reason: Error: invalid function name 'SetGameState' Error: invalid function name 'SetGameState' at t.ǃm$$ (https://editor.construct.net/r180/projectResources.js:1:307140) at t.ǃdY (https://editor.construct.net/r180/projectResources.js:1:307054) at Object.ǃmmz (https://editor.construct.net/r180/projectResources.js:1:331735) at t.accept (https://editor.construct.net/r180/projectResources.js:1:261270) at t.accept (https://editor.construct.net/r180/projectResources.js:1:297541) at t.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:283340) at t.accept (https://editor.construct.net/r180/projectResources.js:1:261286) at e.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:268614) at e.accept (https://editor.construct.net/r180/projectResources.js:1:261286) at e.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:268614)

    Stack: Error: invalid function name 'SetGameState' at t.ǃm$$ (https://editor.construct.net/r180/projectResources.js:1:307140) at t.ǃdY (https://editor.construct.net/r180/projectResources.js:1:307054) at Object.ǃmmz (https://editor.construct.net/r180/projectResources.js:1:331735) at t.accept (https://editor.construct.net/r180/projectResources.js:1:261270) at t.accept (https://editor.construct.net/r180/projectResources.js:1:297541) at t.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:283340) at t.accept (https://editor.construct.net/r180/projectResources.js:1:261286) at e.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:268614) at e.accept (https://editor.construct.net/r180/projectResources.js:1:261286) at e.ǃm$q (https://editor.construct.net/r180/projectResources.js:1:268614)

    Construct 3 version: r180

    URL: editor.construct.net/r180

    Date: Thu Jan 02 2020 19:01:48 GMT-0600 (Central Standard Time)

    Uptime: 2 s

    Platform information

    Browser: Chrome

    Browser version: 78.0.3904.70

    Browser engine: Chromium

    Browser architecture: 64-bit

    Context: browser

    Operating system: Windows

    Operating system version: 10

    Operating system architecture: 64-bit

    Device type: desktop

    Device pixel ratio: 1

    Logical CPU cores: 6

    Approx. device memory: 8 GB

    User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36

    C3 release: r180 (beta)

    Language setting: en-US

    WebGL information

    Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium)

    Numeric version: 2

    Supports NPOT textures: yes

    Supports GPU profiling: yes

    Supports highp precision: yes

    Vendor: Google Inc.

    Renderer: ANGLE (Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0)

    Major performance caveat: no

    Maximum texture size: 16384

    Point size range: 1 to 1024

    Extensions: EXT_color_buffer_float, EXT_disjoint_timer_query_webgl2, EXT_float_blend, EXT_texture_filter_anisotropic, KHR_parallel_shader_compile, OES_texture_float_linear, WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_s3tc_srgb, WEBGL_debug_renderer_info, WEBGL_debug_shaders, WEBGL_lose_context

  • Gonna need you to post your file captain

  • That's not how you are supposed to use expressions

    Do this instead

    1 means true, 0 means false

  • 1. In Host logic move "Set Platform Default Controls Disabled" To the "On Peer Connected" Event

    The reason the Host is currently moving the peer is because you are only disabling the platform default controls for the host character. This means the peer's default controls are still enabled, and thus the Host is controlling him on accident when you press keys. To fix this just move the disable action to the peer connected event, so that every single peer gets his default controls disabled

    2. In Host logic add a "For Each Cassete_chan" condition underneath the condition where you pick all the peer cassete-chans

    multi_id =/= Multiplayer.MyID

    For Each Cassete_chan

    then put all your logic after that

    3. I can't tell if you are leaving "Peer Controls" group disabled. If you are, make sure you enable this group for the peer. Right now it looks like "Peer" is being enabled but "Peer Controls" is not. This would be why the peer can't move himself

  • Yes, it would be helpful to see as much as possible. All I can do is guess what's wrong right now

  • Can you post your project?

  • In general you should never manually type in the UID of an object when using Pick by UID. Imagine for some reason you need to delete a RoomZone during runtime, and then re-add it into the game. The UID will be different after you recreate it

    Instead, you can use an instance variable called "zone" or something, and do:

    RoomZone zone = "garden" ? play garden

    Roomzone zone = "forest" ? play forest

    This way you can assign any RoomZones the appropriate "zone" variable and they will work

  • No, it's entirely possible. Have you read through the Multiplayer tutorial?

    construct.net/en/tutorials/multiplayer-tutorial-1-concepts-579

  • You need to change 2 things

    1. In the second screenshot move the getbits to a subevent underneath the For Each. Right now they're just floating. This is why the host isn't moving anyone but himself

    2. In the third screenshot, just remove all the Platform Behavior controls in the peer's logic. Like I said in the post before, only the host should be controlling the movement. The peer should only ever send his inputs to the host

    In the peer's logic you should also disable the platform behavior for any peer that is created as well. If you leave it activated there can be weird glitches as the host and peer try to reconcile the state of the game

  • In C3's style of multiplayer, only the host should be controlling the movement. The peer sends his inputs to the host and the host moves the peer's character based on the peer's inputs

    You need to disable the movement behaviors on the peer's side for the peer and host object. I'm assuming you're using 8 Direction. By default it needs to be deactivated, and it should only be activated on the host's game

  • Groups work great for things like this, because you can disable them completely when you're not using them. Here is how I would do it:

    Every 0.03 seconds (30 times per second, because no need to check every tick)

    -Is mouse overlapping Whatever

    -and

    -Is Group "Tooltip" Deactivated

    -> Activate Group "Tooltip"

    TOOLTIP GROUP

    trigger once

    -> Move tooltip to spot, make visible, etc (this is showing the tooltip)

    every 0.03 seconds

    -is mouse NOT overlapping whatever (checking to see if tooltip should be disabled)

    ->move tooltip far away, make invisible, etc

    -> deactivate Group "Tooltip"

    This way you're only checking if NOT OVERLAPPING when the tooltip is actually active, so your collision checks are halved (or fourthed if you were checking every tick and not every 2 ticks before)