[Mod] EmpyrionCommandCrate v2.10.1 (EmpyrionSpotGuard addon)

Discussion in 'Empyrion API' started by Exacute, Jul 23, 2018.

  1. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    Alternatively, if you want to use it right now, you may want to remove 'AttemptToRunEveryInterval: 1800', and rather use ExecuteDelay: 1800 on first, and ExecuteDelay: 1830 on second
     
    #21
    Ephoie likes this.
  2. Slipstream

    Slipstream Captain

    Joined:
    Sep 22, 2016
    Messages:
    429
    Likes Received:
    964
    Wootle, thanks! Missed that, would suggest updating the first post to include more current info. :D

    --Brian
     
    #22
  3. realdark

    realdark Ensign

    Joined:
    Jan 10, 2019
    Messages:
    9
    Likes Received:
    3
    Hey.

    This is great mod :).

    I have some questions that I hope you will answer.

    1. I`m try to make wipe command but doesn't work (im not at home and can`t give the console err at the moment).
    Code:
    - EntryKey: Wipe Playfield
      Version: 1.0
      Creator: realdark
      CommandEntry: # syntax u:wipe <playfield> <all/terrain/deposit/poi/player/info>, will wipe the playfield
      - i: 0  
        key: u:wipe  
        type: key
      - i: 1
        key: playfield
        type: playfield
      - i: 2  
        key: type 
        type: string
      Requirements:
      - AboveAdmin: 2
      Actions:
      - ExecuteCommand:
          - TextPlayfield: "{playfield} will be wiped: {type}"
          - ConsoleCommandSelf: "wipe {playfield} {type}"
    
    2. How i can set command prefix? The example not working :)
    Code:
    Entries:
    - EntryKey: Hi
      Version: 1.0
      CommandEntry:
      - i: -1
        type: key
        key: hh
      - i: 0
        type: key
        key: Hi
      Actions:
      - ExecuteCommand:
        - Text: "Hello, friend"
       ...
    
    3. About the API
    'e' or 'entity': The entityid for the executing player (Who you want to run the command as)
    's' or 'steam': The steamid for the executing player (Who you want to run the command as). If supplied is picked over 'e' (if both are specified)

    If i want to use ingame player name to parse a command what param to use? playername 'p'?

    I saw:

    Required params: ('e' or 's') and 'c'. Supply entityid or steamid, and the command you wish to execute.
    'e': Entityid
    's': steamid
    'c': command to execute

    But if i dont know steamId, what to do? What is enityId (player id)?

    Code:
    http://localhost:8089/ModAPI/?q=command&p="playerA"&c="transfer playerB Detector 1"
    
    The for help
     
    #23
  4. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    From just looking at it, I don't see anything wrong with it. I don't have time today to actually check it myself, but I can't see any immediate issues.

    That being said, when you execute it, do you write *in chat* ".u:wipe <validplayfield> <somestring>"?

    You misunderstand, or I did not clarify it enough. -1 is not something you can *actively* use. -2 and -1 is only listed to show the structure of a command (ie. starting with "." or "/", etc), and optionally followed by 'cc' (or whatever you have specified in config file)

    I currently do not plan on providing custom prefixes, such as cb: .. I might look into it, but it will at best be low-priority.

    The API provided is somewhat basic. It will get more love in the future. But current one requires you to know either steamid or entityid.
    The entityid can be obtained from another tool, such as EAH, or by looking in the log files, or by using ingame console command 'ents'
    If you don't know either steamid or entityid, it is currently not possible to use.
    Keep in mind aswell, that the player must be online currently. Whenever the API overhaul happens, this will likely also become more flexible.
    No ETA on this. Might be a while.

    For your example, there is no 'p'

    for #1: When typing ".u:wipe <validplayfield> <somestring>", if you get some response, it should be working as intentional (in chat). If not, please send me the servers log file, for when you tried it, and I will try to help you further :)
     
    #24
  5. realdark

    realdark Ensign

    Joined:
    Jan 10, 2019
    Messages:
    9
    Likes Received:
    3
    I thing this command is trying to execute in client side instead server side .
    If i type 'wipe' directly in the console all is ok!

    - Yes

    Here is the err:

    Code:
    Windows 10  (10.0.0) 64bit
    Version: Alpha 9.1.0 2137, RAM: 16 GB
    ----
    Initialize engine version: 2017.1.2f1 (cc85bf6a8a04)
    Version:  Direct3D 11.0 [level 11.1]
    10-18:05:28.250 20_05 -EXC- System.IO.DirectoryNotFoundException: Could not find a part of the path "D:\Program Files\Steam\steamapps\common\Empyrion - Galactic Survival\Saves\Games\DediGame\Playfields\Condarim\wipeinfo.txt".
    at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options)
    at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share)
    at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
    at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize)
    at System.IO.StreamWriter..ctor (System.String path)
    at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string)
    at System.IO.File.WriteAllLines (System.String path, System.String[] contents)
    at Assembly-CSharp.PageProvider.DisableView (Boolean , Boolean , Boolean , Boolean , Boolean )
    10-18:06:02.391 20_06 -EXC-
    
    And the log:
    Code:
    10-18:14:48.603 19_14 -LOG- CHAT: bobi84_bg: .u:wipe Condarim deposit
    10-18:14:48.603 19_14 -LOG- COMMANDCRATE DEBUG: Attempting to load lastused file from : lastused.yaml :: C:\SERVICES\ni2248251_1_SHARE\ftproot\empyrion\Content\Mods\CommandCrate\lastused.yaml
    10-18:14:48.612 19_14 -LOG- COMMANDCRATE DEBUG: loaded file lastused.yaml
    10-18:14:48.613 19_14 -LOG- COMMANDCRATE DEBUG: Attempting to load valuta file from : valuta.yaml :: C:\SERVICES\ni2248251_1_SHARE\ftproot\empyrion\Content\Mods\CommandCrate\valuta.yaml
    10-18:14:48.621 19_14 -LOG- COMMANDCRATE DEBUG: loaded file valuta.yaml
    10-18:14:48.621 19_14 -LOG- COMMANDCRATE DEBUG: Attempting to load valutahelper file from : valutahelper.yaml :: C:\SERVICES\ni2248251_1_SHARE\ftproot\empyrion\Content\Mods\CommandCrate\valutahelper.yaml
    10-18:14:48.629 19_14 -LOG- COMMANDCRATE DEBUG: loaded file valutahelper.yaml
    10-18:14:48.629 19_14 -LOG- COMMANDCRATE DEBUG: Attempting to load spotguard specials file from : ../SpotGuard/specialslist.yaml :: C:\SERVICES\ni2248251_1_SHARE\ftproot\empyrion\Content\Mods\SpotGuard/specialslist.yaml
    10-18:14:48.635 19_14 -LOG- COMMANDCRATE DEBUG: loaded file ../SpotGuard/specialslist.yaml
    10-18:14:48.803 19_14 -LOG- COMMANDCRATE DEBUG: PlayerInfoEvent 9988
    10-18:14:48.803 19_14 -LOG- COMMANDCRATE DEBUG: On correct seqnr,9988
    10-18:14:48.803 19_14 -LOG- COMMANDCRATE DEBUG: Received player: 76561198078979195 . 76561198078979195 . bobi84_bg . 
    10-18:14:48.804 19_14 -LOG- handlecommand on .u:wipe Condarim deposit on 76561198078979195
    10-18:14:48.804 19_14 -LOG- COMMANDCRATE DEBUG: attempted handlecmd w. msg .u:wipe Condarim deposit
    10-18:14:48.805 19_14 -LOG- Match on u:wipe(u:wipe)
    10-18:14:48.805 19_14 -LOG- COMMANDCRATE DEBUG: Checking player against lastused list 
    10-18:14:48.805 19_14 -LOG- COMMANDCRATE DEBUG: Checking player against lastused list 
    10-18:14:48.806 19_14 -LOG- COMMANDCRATE DEBUG: user 76561198078979195 was True .. faction 48129 was True
    10-18:14:48.806 19_14 -LOG- COMMANDCRATE DEBUG: Checking targeting: 76561198078979195 .. 0
    10-18:14:48.806 19_14 -LOG- COMMANDCRATE DEBUG: Target was neither found to 0 or -1 : 0
    10-18:14:48.807 19_14 -LOG- COMMANDCRATE DEBUG: backup target: target to self
    10-18:14:48.807 19_14 -LOG- COMMANDCRATE DEBUG: Found 76561198078979195 on Wipe Playfield
    10-18:14:48.807 19_14 -LOG- COMMANDCRATE DEBUG: Accepted 1
    10-18:14:48.807 19_14 -LOG- COMMANDCRATE DEBUG: accepted2 -- True
    10-18:14:48.814 19_14 -LOG- COMMANDCRATE DEBUG: saving lastusedfile lastused.yaml
    10-18:14:48.819 19_14 -LOG- COMMANDCRATE DEBUG: saved file last
    10-18:14:48.820 19_14 -LOG- COMMANDCRATE DEBUG: Attempting to execute action
    10-18:14:48.820 19_14 -LOG- COMMANDCRATE DEBUG: Final vote exec action: True
    10-18:14:48.820 19_14 -LOG- COMMANDCRATE DEBUG: topick from item-award list:0
    10-18:14:48.820 19_14 -LOG- COMMANDCRATE DEBUG: topick from execution list:2
    10-18:14:48.821 19_14 -LOG- COMMANDCRATE DEBUG: sent command SAY p:48129 'Condarim will be wiped: deposit'
    10-18:14:48.822 19_14 -LOG- COMMANDCRATE DEBUG: attempting to send remote cmd: wipe Condarim deposit
    10-18:14:48.823 19_14 -LOG- COMMANDCRATE DEBUG: attempting to send (modified) remote cmd: wipe Condarim deposit
    10-18:14:48.823 19_14 -LOG- COMMANDCRATE DEBUG: sent command remoteex cl=1 'wipe Condarim deposit'
    10-18:14:48.823 19_14 -LOG- COMMANDCRATE DEBUG: sent command SAY p:48129 'CommandCrate: Executing command Wipe Playfield'
    10-18:14:48.824 19_14 -LOG- Finished command '.u:wipe Condarim deposit'. Execution took 00:00:00.0196946
    10-18:14:49.002 19_14 -WRN- ClientExc from CId=1, EId=48129, 76561198078979195/=/'bobi84_bg': System.IO.DirectoryNotFoundException: Could not find a part of the path "D:\Program Files\Steam\steamapps\common\Empyrion - Galactic Survival\Saves\Games\DediGame\Playfields\Condarim\wipeinfo.txt".
      c2137_at   at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
      c2137_at   at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
      c2137_at   at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
      c2137_at   at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] in <filename unknown>:0 
      c2137_at   at System.IO.StreamWriter..ctor (System.String path) [0x00000] in <filename unknown>:0 
      c2137_at   at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string)
      c2137_at   at System.IO.File.WriteAllLines (System.String path, System.String[] contents) [0x00000] in <filename unknown>:0 
      c2137_at   at Assembly-CSharp.PageProvider.DisableView (Boolean , Boolean , Boolean , Boolean , Boolean ) [0x00000] in <filename unknown>:0 
    
    Thx for help :)
     
    #25
  6. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    Thank you ;)
    I tried your code, and it works as intended (on 'my end' - ie. the mod does everything as it's supposed to)
    I also ran it past Jascha (EAH dev). EAH's method for *wiping playfield* defaults to doing file-manipulation, so that should work, if you need to wipe playfields. Or alternatively, doing it by console.
    .. It appears to be 'yet-another-API-bug' (ie. out of my hands)
    I've submitted the bug on the API thread.. But you shouldn't expect it to be fixed anytime soon.....
    (Many of the bugs are more than a half year old)

    Best I can do, I'm fraid, is to suggest you use console commands or EAH for this purpose.
     
    #26
    Ephoie likes this.
  7. realdark

    realdark Ensign

    Joined:
    Jan 10, 2019
    Messages:
    9
    Likes Received:
    3
    Thx for the help and suggestions :). I will try EAH.

    ... And 2 more questions :)
    1. Can i get this vars (i want to print them in the chat): player start date, player play time, server time and etc... Do you have list with them?
    2. Can i get the response from exec command?
    Example:
    ConsoleCommandSelf: "ban player"
    This will return "bla bla bla".
    Can i get it?
     
    #27
  8. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    2: the game API does not support any responses from the console =/
    1: There is a number of variables availible. Please see the provided documentation :)
    Keep in mind, that many of these are dependent on 'when you installed SG/CC' as the game doesn't provide any real Time-baesd info ..
    To properly use the mod, you're going to want to look at the replacement functions (All sort of {something}, that does things or get data)
     
    #28
  9. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    #29
    Ephoie and Taelyn like this.
  10. realdark

    realdark Ensign

    Joined:
    Jan 10, 2019
    Messages:
    9
    Likes Received:
    3
    Ok, will try with 'TelnetCommandSelf'.
    Bay the way... The command `!admins` not working. Тhere seems to be problem with CapFirst.
     
    #30
  11. vannie

    vannie Ensign

    Joined:
    Apr 4, 2016
    Messages:
    5
    Likes Received:
    0
    Hi all

    Just want to ask stupid question I have the VirtualBackpack from Taelyn,
    I like to get the two VirtualBackpack to work but haven't be able to get it to work. Any assistance would be appreciated.
     
    #31
  12. realdark

    realdark Ensign

    Joined:
    Jan 10, 2019
    Messages:
    9
    Likes Received:
    3
    Show the code :)
     
    #32
  13. Taelyn

    Taelyn Guest

    Defently dont show the code...


    At the top there is a min, max setting change the max to 2
    In the middle there is the itemTitle: /1 change it to /2. At the bottom there is min, max again change the max to 2 again.

    Then u have 2 bags

    If u can't figer it out PM me. Then ill help u more
     
    #33
  14. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    v1.2 Released

    So. This have been an update in-progress for quite a while.
    This update was supposed to be focused around a big planet-conquest system. But the API this far havn't supported all I wanted to do, so rather than push something half-assed I held off on it till now.
    The actual Conquest files are omitted from this release, because the system is not finalized - And because the API still not have full support for it ;)
    I'm hoping that the upcoming A10 API patch will allow me to finish it. But for now, this patch will have to do.

    A10 introduced some bugs that this patch is taking care of - aswell as just updating the game-dependencies compiling-wise.

    If you run into any issues, please do report them. As I mentioned, this ended up being a little rushed, so that your mods won't break if you update to A10 :)

    ! If you are running a server that is not A10, please continue to use 'A8' files

    v1.2
    *The main part of commands will now run in a seperate thread, to not slow the game itself down, in case of complex commands.
    *Fixed issue with for-loop functions, where their localized variables wouldn't properly write things to the outputs (this was affecting the default repview)
    *Fixed case where localized variables would not always get properly written ('global', rather than 'local'). (Please note, that this means everything with {local0=somevalue} or {local_test=somevalue} will be ignored. (local<number> and local_<text>) in stringvalue replacements-variable saving)
    *Updated yamls repview, currencyview, as they had small flaws in their handling of displaying the 'current value'
    *Changed frequency of when 'factions' and 'POIlist' gets updated from 30 minutes, to every 1 minute. DSL seems to not always load all on playfield, so to give {EntityInfo} a better chance of properly giving data, 1 minute seems more appropriate.
    *Added new yaml 'corerewards' to /Extensions/, made by Robomikel. Showcases some functionality with nesting & hooks, aswell as provide a good template to build 'rewards for blowing stuff up' ontop. This one triggers on alien core destructions, rewards a sum of gold, and can only be used once daily.
    *When spawning stuff via the item 'interface' (Spawning structure/poi/etc), you may now in addition to 'player', 'target' and 'alien', use a specific number, referencing a player/faction directly. Note, that the mod *DOES NOT* check if the faction exist / etc. Please note, that you must specify id aswell as factiongroup. See 1.13.21 for documentation.
    *When a core is added/removed, it will now additionally trigger updating the internal 'POIlist'.
    *For ease of use, added more 'types' to 1.13.25 in documentation, aswell as support for keywords.
    *Fixed issue where, if no rep/currency was present for a player, a blank would be created, when querying for their reputation/currency.
    *Fixed issue, where for section of actions would execute, regardless of the conditionals being true. New behaviour: For-loops will only execute, if their corresponding conditionals block returns true.
    *Updated replist and currencylist to have a default, if no entries was found.
    *Added 'MaxValue' to valutahelper : Default is -99999 (no maximum). If set, will limit the total amount of this rep/currency to this number.
    *Added 'Category' to valutahelper: Default is 'unsorted'. If set, will sort under this.
    *Added alphabetical sorting when displaying valuta. It will now sort category (alphabetically), and then the results for each category, will further be sorted, by their names.
    *Fixed issue where valutas would not 'valutaresolve' string replace, if the value was negative.
    *Added categories to visual output for 'curlist' and 'replist' yaml entries.
    *Tweaked how 'permadata' is saved: By default, it will still use 'permadata.yaml', or however it's named. But now, it will support using a new tag, 'File', under 'StoreData'. Please see 1.13.3.3 for documentation. This should not break anything current, but will allow you to store data at a specific file, rather than having all output to 'permadata.yaml'. By default, it will still output to this file, unless anything else is specified. Note that all previous save/references related to permadata should still work.
    *Tweaked how you reference 'permadata': If you are worried for collisions, when querying for data, and have it saved in another file, than 'permadata.yaml', you may do {filename:reference}, rather than just {reference}. If saved in "bounty", and your key is "status", you can either do {status} or {bounty:status}. If you have a reference for 'status' in multiple files, and reference it as {status}, it will be first-found used. Note, that this behaviour is also the case, when using delete replace, or interacting with the set, by those replacements (ie. filename:reference as param). Keep in mind, that filename is filename without .yaml (ie, if filename is bounty.yaml, you really specify 'bounty')
    *reworked conditionals: Now each conditional supports complex logic, rather than just a simple x?y statement. (ie you can do 1==1&&(2==3||!false)) , etc. Please report issues, if you encounter any!). All current conditionals should still work, and it still support xbracketx. Please refer to 'Using conditions: (logic)' for full documentation on what you can do.
    *Improved backup function: Now a folder will be created in the Backup directory, with the name "backup-dd-mm-yyyy_HH-MM-SS_" 'Start' (on start), and 'Stop' (on stop). This folder will contain the files it previously backed up, but with their original name (such as 'lastused.yaml', rather than 'lastused.yaml.backup-04-10-2018_17-46-46_Start.yaml')
    *Added new directory 'permadata' to backup (As it is effectively an extension of the permadata.yaml file)
    *Added valutahelper.yaml to backup aswell, as it might be changed during runtime.
    *Added new config option, PermaDataDirectory. By default it is 'permadata'.
    *Added new hook, ValutaChanged. Will trigger whenever a valuta is updated (Reputation/currency/however you use it). Variables 'amount' : How much it changed by, 'valuta' : What was changed, 'oldval' : What it used to be, 'newval' : What it is now.
    *Added replace {DestroyEntity(id)} : Will remove the targeted entity. (See docu)
    *Added replace {RenameEntity([>id<][>new name<])} : Will rename the targeted entity (See docu)
    *Added replace {SetEntityOwnership([>id<][>faction<])} : Will change the ownership of the target. Does not work for entities. (see docu - It's a friendlier version of the console command 'faction entity', that supports names, abbrevations and ids, and doesn't care about casing).
    *Slightly optimised how 'replace to variable' is done, so that it doesn't run both local references, and permadata, if local is enough.
    *Added replace {POIsInRange(range)} : Will get the names of all POIs within range (meters)
    *Added replace {POIsInRange_id(range)} : Will get the id of all POIs within range (meters)
    *Added replace {POIsInRange_target(range)} : Will get the names of all POIs within range (meters), based on targets position
    *Added replace {POIsInRange_target_id(range)} : Will get the id of all POIs within range (meters), based on targets position
    *Added replace {ClosestPOI(amount)} : Will get the names of n-closest POIs
    *Added replace {ClosestPOI_id(amount)} : Will get the IDs of n-closest POIs
    *Added replace {ClosestPOI_target(amount)} : Will get the names of n-closest POIs, based on targets position
    *Added replace {ClosestPOI_target_id(amount)} : Will get the IDs of n-closest POIs, based on targets position
    *Tweaked the replace function to be more 'willing to stop trying', if there's no hits. Might improve performance some.
    *Added to log debug info, if an entry was skipped importing, due to already existing (For normal .yaml files)
    *Added importer for .valuta.yaml files - If found in the /additional/ folder, These will be injected into the main valutahelper.yaml file.
    *Added importer for .epb files - If found in the /additional/ folder, a copy will be made, and placed in <serverroot>/Content/Prefabs, so that the spawning system can make use of them. (The API requires the blueprint files to be located in this folder, in order to be spawnable. If you are interested in spawning structures, please see the section regarding 'ItemDeliveryMethod').
    *Added new tag, ItemROT, 1.13.28. This can be used to specify the rotation of what is spawned.
    *Fixed issue where roundup & rounddown replaces wouldn't accept negative numbers.
    *Tweaked behaviour of math replace: If something is just a number, like {1}, {123}, {-123} etc, it will also be caught by the math-engine, and turned into the number.
    *Added new custom math-modifiers: # and ¤. These extends what it was (If 2#2, it will do 2+2 (4). If -2#2, it will do -2-2 (-4). ¤ is the inverse, ie. 2¤2, would be 2-2 (0), -2¤2 would be -2+2 (0). You can do -2#-2, which is effectively the same as -2¤2)
    *Fixed issue where math wouldn't operate in the 'proper direction' (It would read right to left, rather than right to left).
    *Added 'absolute' (abs), 'acos' (inverse cosinus), 'asin' (inverse sinus), 'tan' (tangent), 'atan' (inverse tangent) to math.
    *Fixed issue with using 'alien', 'predator' (etc), with SetEntityOwnership
    *Added support for 'alien', 'predator', 'alien', 'prey', 'public', 'private', 'target_public', 'target_private', 'player_public', 'player_private' to ItemFaction
    *Added demo, 'FortificationDemo', in the new pvp pack, in file 'basesdemo.yaml', showcasing use of blueprints shipped with mods, that are used, and spawned in a formation.
    *Fixed issue where 'connect' hook would not fire
    *Added hook for 'disconnect'. NOTE please! read the documentation. This hook will NOT always fire (requires another player online), and it will not fire as the disconnecting player (as that player no longer exist). So make sure to capture {thisplayer} and/or {thissteam}. You can really only use this hook for manipulating some variables, and it's not too reliable for obvious reasons. But. It's there.
    *Tweaked behaviour for epb importing: If blueprint already exist by that name in prefab folder, it will *overwrite it* with whatever was found.
    *Added support for 'subdirectories' inside /Prefabs/ for blueprints. You still just provide 'ItemDeliveryMethod' with a bp name (optionally with a .epb extension), and it will search for it. First it will search the /CCImported/ folder and below. If found, it will take this. Otherwise, it will search back from /Prefabs/ and down, and attempt to find it here. If it weren't found, it will assume you meant to spawn an NPC (NOTE! Game does currently not support this, but framework for it is in place)
    *Tweaked behaviour for epb importing: Blueprints imported will now be placed in a folder called /CCImported/. It will be created if it doesn't exist (Inside /Prefabs/).
    *Added support for using {} for ItemDeliveryMethod.
    *Added FortificationDemo_large to 'basesdemo.yaml' in 'pvp' as a demo for even crazier setpieces. This demo spawns a 5 by 5 unit. It have corners, and middle of walls have a chance to be 1 of 3 pieces. It can have between 1-4 openings. It also comes with defensive structures in each corner.
    *Added import of .data.yaml files. Please see documentation for these. They work differently than other imported files! The purpose is to provide some easy-to-transfer default-data, if you so desire (Can for instance be used as a configuration file for your command).
    *Included 'valutahelper.yaml' to being created if it doesn't already exist in mod files.
    *Fixed issue with death-hooks (playerdeath, playerpvpdeath, playerpvpkill), where the pvp ones would always trigger, and fail, because the game now includes 'entities' in 'who killed the person'. Should now behave properly. Addtionally added new {entityinvolved}. to 'playerdeath' hook, if you are interested in the id of the entity involved, if any. Also added {operatingentity} - If whatever killed the player is operating an entity (player flying a HV for instance), will list the entityid here.
    *Fixed issue, where an infinite loop would occur, if requiring more things to be executed (ExecuteCommand), than options provided, and requiring unique entries for each. This will now execute what was possible, log an error, and then stop trying (Continue to next instruction).
    *Added new tag, 'AttemptToRunEveryIntervalSkipLogin', to allow usuage of '', without doing it the first time the player logs in. Default is false (do it also when player first signs in).
    *Fixed debug line for ecf-file loading, not actually displaying the filename of the file being loaded (Minor, debug-related only)
    *Added replace to 'playerdeath' and 'playerpvpdeath' hooks : {secondssincelastdeath}, will resolve to how many seconds since the player have last died, or NA.
    *Added replace {PlayerSecondsSinceLastDeath} and {TargetSecondsSinceLastDeath}. Will Resolve to how long it have been since the Player, or the Target have died in seconds, or 'NA' if player havn't died this session.
    *Fixed issue, where replace {MoveEntity} wouldn't trigger on playfields with spaces in name (such as 'Andromeda Galaxy'). Additionally, if some rotation-params were specified, but not all, rest will now properly default to '0'
    *Fixed issue with 'ExecuteDelay', where local variables wouldn't be passed on to it. This should now behave more properly.
    *Fixed issue where nesting to other commands would (rarely) fail.
    *Fixed issue, where when using {MoveEntity} and specifying playfields, it would be lowercased always (And hence the game would make it fail). It should now respect playfields aswell.
    *Added support for decimal numbers in 'ExecuteDelay' (0.5 will be half a second, etc)
    *Fixed issue, where {EntityInfo} would resolve to garbage for pos & rot, for bases that have been moved since the server start (Game bug!). The fix skips any structure that have pos (0,0,0) or rot (0,0,0) for updating.. This means, that the data might not be accurate, if the structure have been moved by 'outside forces' (Not by this mod). It's the best I can think of as a workaround however.
    *Mod now updates its internal position data for structures, after moving them, in addition to the 30s intervals, to attempt to keep the data as up-to-data as possible, without hogging absurd amount of ressources.
    *Added replaces' {PlayerRotX}, {PlayerRotY}, {PlayerRotZ}, {TargetRotX}, {TargetRotY}, {TargetRotZ}, that can be used to get the executing players or targets rotation.
    *Tweaked the default virtualbackpack to make use of 'File' and 'filerefernce' for variables.
    *Fixed issue where _id , _target for POIsinrange wouldn't output unless insanely lucky.
    *Migrated from .net3.5 to .net4.5
    *Updated dependencies dlls to a10
    *Updated chatcommands to new format (Currently no direct benefit)
    *Fixed issue with SG/CC bridge logging being corrupted due to Eleon changing default time & ip formats
     
    #34
    Ephoie and Taelyn like this.
  15. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    A note on the new chat-system

    Current A10 exp version does not allow commands to be sent in 'private' !
    Nothing I can do about that. But bug is submitted to Eleon

    Messages are however received in private, if they were directed to the player (The old 'server: blahblah', sent to a specific player, messages are now received in 'private' chat)

    I'm additionally told that / no longer works as a prefix, because it havn't been properly implemented in their chat window. Something I also hope they address..
     
    #35
    Last edited: May 15, 2019
    Ephoie and Taelyn like this.
  16. Slipstream

    Slipstream Captain

    Joined:
    Sep 22, 2016
    Messages:
    429
    Likes Received:
    964
    Just wanted to drop in and thank you for all your hard work on these mods. Given the absolute lack of documentation/development of their API, you've done legendary amounts of heavy lifting, and I look forward to attempting to use SG/CC for my PvE-only server. Which, frankly, couldn't exist without something like this. :)

    --Brian
     
    #36
    Ephoie likes this.
  17. remeey

    remeey Commander

    Joined:
    Jul 9, 2017
    Messages:
    152
    Likes Received:
    35
    Has this been updated for the lasest a10 build the !vb command is not working
    Has this been updated to the latest A10 build yet !vb is not working atm for my server
     
    #37
  18. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    It was, but eleon broke it again.
    I'm waiting for them to fix the part I can't on my end.
     
    #38
  19. Exacute

    Exacute Rear Admiral

    Joined:
    Feb 17, 2017
    Messages:
    456
    Likes Received:
    307
    Since last patch, CC havn't been working properly - Eleon introduced a bug that caused API-calls to randomly kick players.
    I just had confirmation from @Taelyn that the recent hotfix sorted this.

    They also removed the call that they just recently introduced, for better chat.. This broke all the commands - which in this case was a blessing in disguise, as your players atleast wouldn't be kicked, when they didn't ask for anything ;)

    So..
    v1.21
    *Fixed Eleon fuckup that rendered all commands unusuable
    *Changed default config.yaml, to use the new foldername (_A10), to make it easier to install again.
     
    #39
    Taelyn likes this.
  20. SacredGlade

    SacredGlade Captain

    Joined:
    Oct 18, 2016
    Messages:
    128
    Likes Received:
    246
    #40

Share This Page