Panarama vote cs2

oleg_nelasy

Участник
Сообщения
668
Реакции
46
Использую GitHub - schwarper/CS2MenuManager: CS2MenuManager is a flexible and user-friendly menu system developed for Counter-Strike 2 using the CounterStrikeSharp library. This project provides server administrators and developers with the ability to create customisable menus. It is easy to use for players and easy to configure and extend for administrators.
Пробою делать как в примере другие меню которые я пробовал работают но с этим не получается. Судя по сообщения в чате голосование стартует проходит время голосование не получилос. Но когда запускашь голосование панарама меню не вылазит. Это решение сейчас вообще рабочие?
Нужная подготовка выполнена wasd меню работают без проблем. sv_allow_votes 1

Пример:
public void OnVoteCommand(CCSPlayerController? player, CommandInfo info)
{
    if (player == null || !player.IsValid) return;

    // ВАЖНО: 4-й аргумент теперь VoteHandlerCallback (вместо null)
    var vote = new PanoramaVote(
        "#SFUI_vote_panorama_vote_default",
        //"#SFUI_vote_kick_player",
        "Сменить карту?",
        VoteResultCallback,
        VoteHandlerCallback, 
        this
    )
    {
        VoteCaller = player // null is the server.
    };

    //vote.VoteCaller = player;
    vote.DisplayVoteToAll(20);
}


public bool VoteResultCallback(YesNoVoteInfo info)
{
    /*
    public int TotalVotes;
    public int YesVotes;
    public int NoVotes;
    public int TotalClients;
    public Dictionary<int, (int, int)> ClientInfo = [];
    */

    if (info.YesVotes > info.NoVotes)
    {
        Server.PrintToChatAll("Vote passed!");
        return true;
    }
    
    Server.PrintToChatAll("Vote failed!");
    return false;
}

public void VoteHandlerCallback(YesNoVoteAction action, int param1, CastVote param2)
{
    switch (action)
    {
        case YesNoVoteAction.VoteAction_Start:
            Server.PrintToChatAll("Vote started!");
            break;

        case YesNoVoteAction.VoteAction_Vote:
            var player = Utilities.GetPlayerFromSlot(param1);
            if (player == null) return;
            player.PrintToChat("You voted: " + (param2 == CastVote.VOTE_OPTION1 ? "Yes" : "No"));
            break;

        case YesNoVoteAction.VoteAction_End:
            switch ((YesNoVoteEndReason)param1)
            {
                case YesNoVoteEndReason.VoteEnd_Cancelled:
                    Server.PrintToChatAll("Vote Ended! Cancelled");
                    break;
                case YesNoVoteEndReason.VoteEnd_AllVotes:
                    Server.PrintToChatAll("Vote Ended! Thank you for participating.");
                    break;
                case YesNoVoteEndReason.VoteEnd_TimeUp:
                    Server.PrintToChatAll("Vote Ended! Time is up.");
                    break;
            }
            break;
    }
}
 
Сверху Снизу