-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Workaround for vocalizer issue with 8+ survivor bots #27
Comments
I know the way the survivor manager addon spawns the L4D2 survivors on the L4D1 maps confuses the response system vscript function "rr_GetResponseTargets" (which was used to get the bot's entity by the actor name). This is still a problem in L4B1 but i made a workaround in L4B2 to get the bot's entity by its character id instead. Last time i played with the survivor manager addon it was working. Idk if there is some other problem that i didn't notice. Anyway i don't think i can add the userid to the vocalizer commands that you send via vocalizer menu. |
Problems only happen when the number of survivors exceeds 8, because the same survivors have the same character id. only need to execute |
Wait, you can spawn more than 8 survivors? I didn't know that lol. |
oh, i have never used 'botselect' before. Maybe here in 'botselect', just add bot into "Left4Bots.VocalizerBotSelection" instead of use concept? |
Oh you are right i should select the bot directly. I will see what i can do. Hopefully the survivor manager author or the TLS team come with a better solution tho. |
So i removed all the "ClearContext" and replaced the "AddContext" with "SetContext(string name, string value, float duration)" and 0.1 duration. |
The new method works great, thanks! |
oops i forgot to change it to self. Thanks! |
I'm closing this. If you find any issue or you find a way to implement the subjectid thing feel free to open another issue. |
It's not until after I saw this issue that I was aware of rr_GetResponseTargets being broken, though regardless it would've been broken anyway from any method of getting extra survivors (without the tall order of changing the mission file via text editing or plugins) thanks to issues like the L4D2 survivors being completely replaced by L4D1 duplicates in hard-code + duplicate survivor problems and there wasn't much I feel I could've done to lessen them. Though L4B2 has already fixed this with a workaround and what I discuss is irrelevant now, I decided to fix rr_GetResponseTargets in VSSM for L4D1 mission set maps by replacing it with my own function that returns the proper table of characters including VSSM's fake L4D2 survivors, so other mods using the function can work properly. Or, well, as properly as 8 non-duplicate survivors can.
|
Hey Shadowysn! Sorry for not telling you about this but at the end i thought that it wasn't your job to fix a game's issue that was only affecting L4B, so after making the workaround work on L4B2 and being no longer interested in L4B1, i thought that no extra work was needed. |
It's fine given how much effort it could be to maintain and focus on L4B throughout 3 years, and I admire the work that was put in on both versions. |
If using the "VScript Survivor Manager" add bots which has same Actor name, the vocalizer function will become confused.
A simple example, if my character is "Nick", and look at another "Nick" bot, the vocalizer order does not work.
The reason is that "concepts system" will only tell us Actor name of "who" and "subject", so I thought if I add "userid" for them, is that could solve the problem of the same Actor name?
Use
DoEntFire("!self", "AddContext", "whoid:"+player.GetPlayerUserId(), 0, null, player);
to add the id, yeah, it does work, i can useGetPlayerFromUserID(id)
get player easily.But at the same time I found, I don't know how to add "subjectid" for "subject". :(
So, to solve this problem, there are two points:
DoEntFire("!self", "ClearContext", "", 0, null, player)
.Do you think this idea is feasible?
If only the TLS team could add this just like they did with "TankActive" and "Chapter" in the last update. ;P
The text was updated successfully, but these errors were encountered: