Ghost bot support #316
Labels
No labels
bug
duplicate
enhancement
help wanted
in progress...
information
invalid
not enough info
priority high
priority low
priority normal
question
request
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Techwizz/pvpgn-server#316
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From OHSystem created by HarpyWar : Grief-Code/OHSystem#279
Complete discussion: http://archive.is/UzLsz
New discussion: https://community.griefco.de/topic/68-pvpgn-support/
I'm gonna add integration PvPGN + Ghost, and I found your project is well suited for this purpose, because of high activity.
There was a suggestion to add a new connection interface between pvpgn and ghost https://github.com/HarpyWar/pvpgn/issues/35. But I stopped on soft integration using chat commands. Next sheet shows how they can interact.
/cmd {args}
/pvpgn [cmd] [user] {args}
/ghost [cmd] {code} {user} {args}
(text message)
/host [mode] [type] [gamename]
/pvpgn host[user] [mode] [type] [gamename]
/ghost host [code] [user] [gamename]
/chost [map] [gamename]
/pvpgn chost [user] [map] [gamename]
/ghost chost [code] [user] [gamename]
/unhost
/pvpgn unhost [user]
/ghost unhost [code] [user] [gamename]
/ping
/pvpgn ping [user]
/ghost ping [code] [user] [players] [pings]
(players and pings are comma delimited)/swap [slot1] [slot2]
/pvpgn swap [user] [slot1] [slot2]
/ghost swap [code] [user] [username1] [username2]
/open [slot]
/close slot
/pvpgn open [user] [slot]
/ghost open [code] [user] [slot]
/ghost gameresult [code] [players] [ratings] [results]
(result: -1=leave&loss,0=loss, 1=win,2=leave&win) (players, ratings, results are comma delimited)
/stats
command)/start
/abort
/pub
/priv
/pvpgn [cmd] [user] [gamename]
/ghost [cmd] [code] [user] [message]
/pvpgn init
/ghost init
Each callback (for commands that sent by a user) contains
[code]
(ok|err) and [user] who then will receive a message from a server. If[code]
==err
then next argument is an error message. For example:/ghost host err Joe That game name is busy.
Usage scenario for user:
/host ap 5x5 Join All!
1.1 Here PvPGN can send/pvpgn ping Joe 123.123.123.123
to several Ghost bots. Each Ghost sends callback to PvPGN/ghost ping Joe 25
, and then server can select a bot with better ping for the user./pvpgn Joe host ap Join All!
as whisper/ghost host ok Joe Join All!
Game "Join All!" is created!
/ghost gameresult ok Joe,player2,player3,player4 1000,900,950,1100 -1,1,1,0
I want to add this as optional in PvPGN too, from Lua scripting that I added recently. So, it is possible to easy add variations of these. For instance auto host games, if there is no games. Or notify all players in all channels that new game is created.
What should be modified in Ghost (OHSystem):
/pvpgn ...
.Add new config valueCommandpvpgn = true
,pvpgn_name = "PvPGN Realm"
(this is name of the server from which Ghost will received authorized commands). Next features should be enabled only ifpvpgn = true
./pvpgn init
switches GHost to PvPGN mode. Authorized PvPGN server name can be set in existing optionbnet_rootadmin
).-lat
Please, tell me what do you think about it, and could you do these modifications?
Also I'm wondering to add automatic matchmaking system, but I still don't know details about how it works.

When user clicks on the "sword" button in Battle.net chat interface, PvPGN receives that signal and finds other players who also click on the button and waiting for automatch. Here the server can pick up players by their rating and choose the ghost bot wth the best ping for all players.
Difference of this game type with normal type is there is no lobby room. Game starts automatically by the PvPGN signal to all players in coming match.
To add this Ghost should supports host a game from PvPGN signal without join a lobby. But may be it's not working for custom maps like Dota and it sholdn't be implemented.