Login

russian armor

blueprint name for new squad or entity?

17 Jul 2015, 07:05 AM
#1
avatar of trigg

Posts: 139

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?
17 Jul 2015, 12:52 PM
#2
avatar of eliw00d
Honorary Member Badge

Posts: 756 | Subs: 8

Your mod's ID (without dashes), then a colon, then the blueprint.

Example:
Code
BP_GetSquadBlueprint("94e80b04a136401b963d3806d5b13ef4:fuesilier_squad_mp")
17 Jul 2015, 17:57 PM
#3
avatar of trigg

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.
17 Jul 2015, 18:36 PM
#4
avatar of eliw00d
Honorary Member Badge

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:

-- @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
avatar of trigg

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
avatar of eliw00d
Honorary Member Badge

Posts: 756 | Subs: 8

18 Jul 2015, 02:33 AM
#7
avatar of trigg

Posts: 139

Great, thanks!
1 user is browsing this thread: 1 guest

Ladders Top 10

  • #
    Steam Alias
    W
    L
    %
    Streak
Data provided by Relic Relic Entertainment

Replay highlight

VS
  • U.S. Forces flag cblanco ★
  • The British Forces flag 보드카 중대
  • Oberkommando West flag VonManteuffel
  • Ostheer flag Heartless Jäger
uploaded by XXxxHeartlessxxXX

Board Info

898 users are online: 898 guests
0 post in the last 24h
8 posts in the last week
34 posts in the last month
Registered members: 49107
Welcome our newest member, Falac851
Most online: 2043 users on 29 Oct 2023, 01:04 AM