For a map script I want to see whether a mod is in use, and the first way that occurs to me is to use EBP_Exists for some custom entity in the mod. I've seen the instructions for prepending your mod's ID to the entity's name, but I don't see how to specify the entity's name so that the script can find the blueprint.
I see that the Attribute Editor will let you export luaconstsauto.scar for the mod, but it does not have the new entities and squads in it.
Anyone know how to reference a new squad or entity from a script?
blueprint name for new squad or entity?
17 Jul 2015, 07:05 AM
#1
Posts: 139
17 Jul 2015, 12:52 PM
#2
Posts: 756 | Subs: 8
Your mod's ID (without dashes), then a colon, then the blueprint.
Example:
Example:
Code
BP_GetSquadBlueprint("94e80b04a136401b963d3806d5b13ef4:fuesilier_squad_mp")
17 Jul 2015, 17:57 PM
#3
Posts: 139
I was wondering how to find the name of "fuesilier_squad_mp". Without a faction, there could be duplicates.
However, I think I can use World_GetPossible{Squads,Entities}Blueprint to iterate over everything in the mod, and output the blueprint names. I'll probably try that tonight.
However, I think I can use World_GetPossible{Squads,Entities}Blueprint to iterate over everything in the mod, and output the blueprint names. I'll probably try that tonight.
17 Jul 2015, 18:36 PM
#4
Posts: 756 | Subs: 8
Blueprints are unique per type (squad, entity, etc), and per mod (presumably).
Here is a utility function you might find useful:
Usage:
You could wrap it further like so:
Here is a utility function you might find useful:
-- @param blueprintFunction Relic function that will retrieve a blueprint
-- @param blueprintName Name of the blueprint to be retrieved
-- @return blueprint if it exists; nil otherwise
function getBlueprintIfItExists(blueprintFunction, modID, blueprintName)
local exists, blueprint = pcall(blueprintFunction, modID .. ":" .. blueprintName);
if ( exists == false ) then
blueprint = nil;
end
return blueprint;
end
Usage:
local squadBlueprint = getBlueprintIfItExists(BP_GetSquadBlueprint, "94e80b04a136401b963d3806d5b13ef4", "fuesiliers_mp");
if ( squadBlueprint ) then
-- do stuff with squadBlueprint
end
You could wrap it further like so:
function getSquadBlueprintIfItExists(modID, blueprintName)
return getBlueprintIfItExists(BP_GetSquadBlueprint, modID, blueprintName);
end
17 Jul 2015, 22:36 PM
#5
Posts: 139
So if one faction has ...whatever...\combat_engineers in its archive, there won't be a ...somethingelse..\combat_engineers ? And you can just use "combat_engineers" as the short blueprint name?
18 Jul 2015, 02:09 AM
#6
Posts: 756 | Subs: 8
Exactly.
18 Jul 2015, 02:33 AM
#7
Posts: 139
Great, thanks!
PAGES (1)
1 user is browsing this thread:
1 guest
Ladders Top 10
-
#Steam AliasWL%Streak
- 1.831222.789+37
- 2.34957.860+14
- 3.589215.733+4
- 4.1099614.642-1
- 5.280162.633+8
- 6.305114.728+1
- 7.916405.693-2
- 8.271108.715+22
- 9.721440.621+3
- 10.1041674.607-2
Replay highlight
VS
- cblanco ★
- 보드카 중대
- VonManteuffel
- Heartless Jäger
Einhoven Country
Honor it
9
Download
1231
Board Info
586 users are online:
586 guests
1 post in the last 24h
7 posts in the last week
39 posts in the last month
7 posts in the last week
39 posts in the last month
Registered members: 49060
Welcome our newest member, starkindustries
Most online: 2043 users on 29 Oct 2023, 01:04 AM
Welcome our newest member, starkindustries
Most online: 2043 users on 29 Oct 2023, 01:04 AM