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.
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
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.
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" ?
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. Spoiler: Possible Telnet commands 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.
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)
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?
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.
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.
Will come soon . First step was done in last game hotfix. Those commands are now logged in the game-logs.
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.
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.