API Feedback and Suggestions

Discussion in 'Empyrion API' started by Jascha, Mar 8, 2017.

  1. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Hey,
    All the structures are listed/grouped by playfield.
    Just look at the Key of the dictionary where the structures are in.
    hm don't see any problems. Can you try to track that with logs or check when it happens (full server etc). So far I always got the event.
     
    #201
  2. joemorin73

    joemorin73 Captain

    Joined:
    Aug 24, 2016
    Messages:
    319
    Likes Received:
    170
    Part V changes:
    - ModAPI: Fixed Request_Player_ItemExchange Shift-click behavior and not changing text
    - ModAPI: Not loading abstract classes

    No changes to the Mif.dll
     
    #202
    Daede and Jascha like this.
  3. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Smal change to the Interface. See Alpha 6 branch of source example.
    New Events/Requests:

    Event_TraderNPCItemSold

    Gives you Information (TraderNPCItemSoldInfo) when someone bought something from a NPC Trader

    Request_Player_GetAndRemoveInventory / Event_Player_GetAndRemoveInventory
    Ask the Game to take items out of the players (Id) inventory and give you the list of items (Inventory) he was able to take out.
     
    #203
    Exacute likes this.
  4. Alexandra

    Alexandra Ensign

    Joined:
    Apr 9, 2017
    Messages:
    22
    Likes Received:
    2
    Hi!

    1. The necessary function of enabling and disabling offline protection to implement the delay of its activation after the owner of the structure leaves the game

    2. Is it possible to read the player's position before the change playfield?

    3. Where i can read how to use "Request_ConsoleCommand" ?
     
    #204
    Last edited: May 29, 2017
  5. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    this might be something for the game config i gerneral.


    Through the Request_Entity_PosAndRot and the according Event you can get the Players coordinates whenever you like. But if you want to know it allways before changing playfields, that might be more difficult. Especially if you dont know when he will Change a playfield (warp).

    All the Information will be documented soon here. But the command is still missing. I will care for the docu in the next weeks.
    For that command: Ist basicly the same as the former telent commads. If I remember right (I'm not able to check the code right now) it needs a pstring which is basicallya string.
    Just put your Telnet command in there.

    This should be quite up to date.

    -----------------
    Console commands:
    -----------------
    alliances: Lists alliances or alliance requests and allows to set alliances
    ban: Ban a player for an amount of time [Moderator]
    changemode: Changes a local suvival game into creative and vice versa. You need to restart the game after the switch!
    difficulties: Shows the current difficulty setting
    faction: Faction change helper functions [GameMaster]
    gents: List all structures on all playfields (only dedi/server)
    help: List all console commands and show specific help
    initadmin: Sets myself as the initial administrator
    kick: Kick player (or all players) out of game [GameMaster]
    list: Lists special players (i.e. with special permissions or banned players) [GameMaster]
    origins:
    plys: Shows all players in the game
    remoteex:
    saveandexit: Saves the game and exits - optionally after a given timeout [Moderator]
    say: Sends a chat message to all players. say 'text with blanks'
    servers svs: Lists all connected playfield severs
    setposition: Sets the position of a structure [GameMaster]
    setrole: Sets the role for a player (give special permissions) [Admin]
    stats: Prints status information about the current playfield
    stoppf: Stops a specific or all playfield servers
    time: Get / set the global server time [server only]
    unban: Unban a player [GameMaster]

    -----------------
    Command: ban
    -----------------
    alliances with no parameter: shows alliances
    with one paramter (faction): shows pending alliance requests for this faction
    with <fac1> <fac2> <true|false>: will set fac1 and fac2 to either alliance or not

    -----------------
    Command: ban
    -----------------
    Ban a player for an amount of time.

    ban <steam-id or player name> <duration>
    The duration can be given in hours, days or months, e.g. '2h'
    Example: "ban 1234567890 14d" - will ban the player for two weeks

    -----------------
    Command: changemode
    -----------------
    Changes a local suvival game into creative and vice versa. You need to restart the game after the switch!

    -----------------
    Command: difficulties
    -----------------
    Shows the current difficulty setting

    -----------------
    Command: faction
    -----------------
    Faction change helper functions, commands are:
    delete <faction>
    allow <faction> <playerid>
    deny <faction> <playerid>
    remove <faction> <playerid>
    entity <faction> <entityid>
    -> to set private: faction entity Player,<PlayerID> <EntityID>
    -> to set public: faction entity Player, <EntityID>
    list
    list <faction>
    stats

    -----------------
    Command: gents
    -----------------
    List all structures on all playfields (only dedi/server)

    -----------------
    Command: help
    -----------------
    Enter 'help <command>' for help on a console command

    -----------------
    Command: initadmin
    -----------------
    Sets myself as the initial administrator.
    This command can only be executed if there is no player
    with admin permissions.

    -----------------
    Command: kick
    -----------------
    Kick player (or all players) out of game, optionally with a message.

    kick <steam-id or player name> [message] or
    kick all [message]

    -----------------
    Command: list
    -----------------
    Lists players with special permissions or banned players.

    list perm[issions] list players that have special permissions
    list ban[ned] list players that are currently banned

    -----------------
    Command: plys
    -----------------
    Shows all players in the game

    -----------------
    Command: saveandexit
    -----------------
    Saves the game and exits - optionally after a given timeout.
    NOTE: Issuing this command automatically cancels a scheduled 'stoppf' command!
    When using a timeout some warning messages will be broadcasted before actual exiting.

    saveandexit [<timeout in minutes: max=15>]
    - when a timeout is given the exit will be delayed accordingly
    saveandexit cancel - cancels a scheduled exit
    saveandexit - shows a scheduled exit

    Examples: saveandexit 10

    -----------------
    Command: say
    -----------------
    Sends a chat message to players or factions
    say 'text with blanks' -> send a message to all players
    say f:<faction-token> 'text with blanks' -> send a message to a specific faction
    say p:<client-id> 'text with blanks' -> send a message to a specific player
    (use 'plys' to get client ids)

    Examples: say f:Abc 'We deleted the problematic SV'
    say p:3 'I restored your lost HV'

    -----------------
    Command: setrole
    -----------------
    Sets the role for a player (give him special permissions).
    Elevated players can, for example, execute priviledged console commands.

    setrole <steam-id or player name> <role>
    As <role> you can set:
    pl[ayer] - default, no special permissions
    gm | gamemaster - player gets gamemaster permissions
    mod[erator] - player gets moderator permissions
    admin - player gets amdin permissions
    Example: setrole 1234567890 gm

    -----------------
    Command: setposition
    -----------------
    setposition 123 4000,100,-1000

    -----------------
    Command: stoppf
    -----------------
    Stops a specific or all playfield servers - optionally after a given timeout.
    NOTE: Issuing this command automatically cancels a scheduled 'saveandexit'!
    When using a timeout some warning messages will be broadcasted before actual stopping.
    Remaining connected players will be disconnected, they can immediately reconnect.

    stoppf <playfield name>|all [<timeout in minutes: max=15>]
    - stops the server that provides the playfield (or all servers)
    - when a timeout is given the stop will be delayed accordingly
    Note: Put playfield name in single quotes if it contains spaces
    stoppf <playfield name> kill
    - immediately kills the server process that provides the given playfield
    Use only if a normal stop didn't work (may result in not saving latest data)
    stoppf cancel - cancels a scheduled server stop
    stoppf - shows a scheduled stop - if any

    Examples: stoppf Ningues

    -----------------
    Command: time
    -----------------
    Get / set the global server time [can only be executed on servers]

    time [time value] - specify a time value to set the server time to
    without a parameter the current server time will be shown
    -----------------
    Command: unban
    -----------------
    Unban a currently banned player.

    unban <player-name|steam-id>
    Using a player-name as parameter requires the player to be in the game,
    using the steam-id is always possible.
     
    #205
  6. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    I merged the Alpha 6 branch into the master.
    The test project should be up to date now (of course a few functions are still missing)
     
    #206
  7. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Source updated for Alpha 6.1
     
    #207
  8. joemorin73

    joemorin73 Captain

    Joined:
    Aug 24, 2016
    Messages:
    319
    Likes Received:
    170
    I'm having an odd problem with the Notification window:

    (From DMM code.)
    Code:
                GameAPI.Game_Request(CmdId.Request_InGameMessage_AllPlayers, (ushort)CmdId.Request_InGameMessage_AllPlayers, new IdMsgPrio(0, msg, 1, 10));
    
    This was working before. But when I updated to the latest MIF.dll, notifications are no longer showing. Did something change?
     
    #208
  9. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    The Mif.dll from my latest push today? Its for Alpha 6.1 so not working with the current Alpha 6.0
     
    #209
  10. joemorin73

    joemorin73 Captain

    Joined:
    Aug 24, 2016
    Messages:
    319
    Likes Received:
    170
    I was working with the 6.0.1 DLL on 6.0.1. I'll have to try again later today when I get home. Hrrm.
     
    #210
  11. joemorin73

    joemorin73 Captain

    Joined:
    Aug 24, 2016
    Messages:
    319
    Likes Received:
    170
    Wait, 6.1 is still experimental.
     
    #211
  12. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Yes Alpha 6.1 is still experimental.
    Message worked for me so note sure what it could be.
     
    #212
  13. joemorin73

    joemorin73 Captain

    Joined:
    Aug 24, 2016
    Messages:
    319
    Likes Received:
    170
    I think I have the wrong mif in place. Might be me. ;)
     
    #213
  14. <Darth Sidious>

    <Darth Sidious> Lieutenant

    Joined:
    Jul 4, 2017
    Messages:
    57
    Likes Received:
    25
    It is required to intercept events, the ability to modify the transmitted parameters and transfer them further to the server.
    For example, when changing a zone, substitute one zone for another, or simply block the possibility of changing it.

    You need access to the GUI functions: show the window, display the text at arbitrary coordinates, display the menu with a choice and get the current selection from the player.

    It is very necessary to have access to the devices of buildings.

    The ability to change the landscape through the api, build and delete blocks. AI control, entity management.
     
    #214
  15. Xango2000

    Xango2000 Captain

    Joined:
    Jun 15, 2016
    Messages:
    385
    Likes Received:
    202
    I wish there was an event for typed into console so I can log when admins use console commands and if I could move some of my chat commands to the console that would be great.
     
    #215
    Exacute likes this.
  16. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Will come soon ;). First step was done in last game hotfix. Those commands are now logged in the game-logs.
     
    #216
  17. Xango2000

    Xango2000 Captain

    Joined:
    Jun 15, 2016
    Messages:
    385
    Likes Received:
    202
    I wish it was possible to retrieve information about what status effects a player has and affect them with the API.

    That way I can set up a notification system for noobs, have it scan their inventory for items that can cure whatever status effects they have and tell them about it.

    And set up a chat command for the staff to remove any status effects they get while helping players.

    Plus a few other things I have in mind.
     
    #217
    Kassonnade likes this.
  18. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    I'll write it down, thanks.
     
    #218
    Kassonnade likes this.
  19. Xango2000

    Xango2000 Captain

    Joined:
    Jun 15, 2016
    Messages:
    385
    Likes Received:
    202
    I wish there was an event for when a player/faction completes a mission so I can write my own missions that unlock chat commands that I set up in the API.
     
    #219
    Jascha likes this.
  20. Jascha

    Jascha Administrator

    • Moderator
    Joined:
    Jan 22, 2016
    Messages:
    1,141
    Likes Received:
    713
    Thanks. Good point.
     
    #220

Share This Page