larsiusprime / SteamWrap

Haxe native extension for the Steam API
MIT License
106 stars 44 forks source link

Support for BIsDlcInstalled()? #25

Open gbelo opened 5 years ago

gbelo commented 5 years ago

The command BIsDlcInstalled() may or may not be explicitly supported yet, or the function that implements it isn't working as expected.

The library has the function isDlcInstalled() which seems to return 'true' when Steam is running with an account logged in -- regardless of whether the account has the DLC installed or even has a key for that DLC.

(It returns 'false' when it's not running/logged in, or the steam_appid.txt isn't present, as would be expected.)

This --

package;

import steamwrap.api.Steam;

class AchievementHandler
{
    public static function initialize()
    {
        Steam.init(945490);
        trace("DLC? " + Steam.isDlcInstalled(996680));
    }
    [...]
}

Produces this --

Steam.hx:477: Steam active
AchievementHandler.hx:40: DLC? true

-- even when logged into an account that doesn't have a key for the DLC.

Users have also verified: even when an account doesn't have that DLC even activated, the program is reporting as though it's installed.

For what's installed on my end:

C:\Users\m24>haxelib list
actuate: [1.8.7]
box2d: [1.2.3]
flixel-addons: 2.6.0 [2.7.3]
flixel-demos: [2.7.0]
flixel-templates: [2.5.4]
flixel-tools: [1.4.3]
flixel-ui: [2.3.2]
flixel: 4.4.1 [4.6.0]
hxcpp: [3.4.188]
hxnodejs-steam-webapi: [0.6.0-alpha]
hxnodejs: [4.0.9]
layout: [1.2.1]
lime-samples: [6.2.0]
lime: [6.4.0]
openfl-samples: [6.0.0]
openfl: [8.2.2]
steamwrap: [git]

It's hooking in with e.g. Achievements working correctly, so I know it's communicating with Steam as it should.

I'll update if I find out more on my end.

SETENTIAdev commented 4 years ago

I'm having the exact same issue. It returns true for any request. Even for not existing DLCs. And yes, the rest is just working fine (achievements and other functions).

Is there any other way to check if DLC is installed? I read about WebApi, but doesn't seem to work, as it needs a call from a secure server and such.