Im currently making exotic weapons for the characters in overwatch for my rpg gamemode. Switching weapons from inventory to Character works fine but when I add a new weapon to the inventory all strings get updated to the most recent weapon added. Sorry If my problem is complicated and I cant really explain the problem too well. It has to do with the inventory variable updating and all hud texts get the new index value and update with the new string information.
variables
{
player:
7: GunLevel
8: GunRarity
9: GunName
10: DamageDealt
26: Inventory
27: InventoryRarity
28: InventoryName
29: InventoryLevel
30: TemporaryRarity
31: TemporaryName
32: TemporaryLevel
33: InventoryID
36: GunDesc
41: InventoryLootID
49: TemporaryDesc
50: InventoryDesc
51: DescID
71: InventoryList
}
subroutines
{
0: ExoticWeaponBlackHammer
}
rule(“Switch Weapon Team 2”)
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Is Communicating(Event Player, Acknowledge) == True;
Event Player.InventoryLevel[Event Player.Inventory] != 0;
Event Player.InventoryLootID[Event Player.Inventory] == 0;
}
actions
{
Event Player.TemporaryLevel = Event Player.GunLevel;
Event Player.TemporaryRarity = Event Player.GunRarity;
Event Player.TemporaryName = Event Player.GunName;
Event Player.TemporaryDesc = Event Player.GunDesc;
Event Player.GunLevel = Event Player.InventoryLevel[Event Player.Inventory];
Event Player.GunRarity = Event Player.InventoryRarity[Event Player.Inventory];
Event Player.GunName = Event Player.InventoryName[Event Player.Inventory];
Event Player.GunDesc = Event Player.InventoryDesc[Event Player.Inventory];
Event Player.InventoryLevel[Event Player.Inventory] = Event Player.TemporaryLevel;
Event Player.InventoryRarity[Event Player.Inventory] = Event Player.TemporaryRarity;
Event Player.InventoryName[Event Player.Inventory] = Event Player.TemporaryName;
Event Player.InventoryDesc[Event Player.Inventory] = Event Player.TemporaryDesc;
Set Damage Dealt(Event Player, Event Player.DamageDealt + Event Player.GunLevel * 0.250);
}
}
rule(“SubRoutine Exotic Weapon WidowMaker Black Hammer”)
{
event
{
Subroutine;
ExoticWeaponBlackHammer;
}
actions
{
Event Player.Inventory += 1;
Modify Player Variable(Event Player, InventoryRarity, Append To Array, Custom String("Exotic"));
Modify Player Variable(Event Player, InventoryName, Append To Array, Custom String("Black Hammer"));
Modify Player Variable(Event Player, InventoryLevel, Append To Array, Random Integer(490, 510));
Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Event Player.InventoryRarity[Event Player.Inventory],
Event Player.InventoryName[Event Player.Inventory], Event Player.InventoryLevel[Event Player.Inventory]), Left,
15 + Event Player.Inventory * 2, White, White, White, Visible To and String, Default Visibility);
Modify Player Variable(Event Player, InventoryID, Append To Array, Last Text ID);
Small Message(Event Player, Custom String("Gained Exotic Loot!"));
Modify Player Variable(Event Player, InventoryLootID, Append To Array, 0);
Modify Player Variable(Event Player, InventoryDesc, Append To Array, Custom String("WidowMaker, Exotic Perk (Explosive Rounds)"));
Create HUD Text(Event Player, Null, Null, Custom String("{0}", Event Player.InventoryDesc[Event Player.Inventory]), Left,
16 + Event Player.Inventory * 2, White, White, White, Visible To and String, Default Visibility);
Modify Player Variable(Event Player, DescID, Append To Array, Last Text ID);
Modify Player Variable(Event Player, InventoryList, Append To Array, Event Player.Inventory);
}
}