Skocz do zawartości
KimPix

[Rozwiązane] Wykrywanie naciśniecia F3

Rekomendowane odpowiedzi

Witam, mam problem, gdyż nie wiem jak zrobić żeby wykrywało naciśnięcie klawisza F3.

Mam taką linijkę:

if (cl_buttons & IN_USE)

I jak zrobić, żeby zamiast IN_USE było F3?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@MAGNET kiedyś jak grałem na jednym serwerze to pod F3 było jedno menu, to jak to zrobili?

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zakładam, że pod F3 masz po prostu zakup podstawowego zestawu broni - on też ma swój numer, ale niestety nie wiem który to klawisz

 

Możesz wgrać u siebie taki oto prosty plugin:

#include < sourcemod >

public void OnPluginStart() {
  RegConsoleCmd("sm_test", RunTest);
}

public Action RunTest(int client, int args) {
  CreateTimer(0.5, PrintButtons, client, TIMER_REPEAT);
}

public Action PrintButtons(Handle timer, int client) {
  PrintToChat(client, "Klawisze: %d", GetClientButtons(client));
}

Po wprowadzeniu komendy !test na czacie co pół sekundy będzie wypisywana suma bitowa aktualnie naciskanych klawiszy. Wystarczy, że odczytasz tę wartość w momencie, gdy będziesz miał wciśnięty tylko klawisz F3 - i ten właśnie numerek będziesz używał ?

 

Chyba, że ktoś wie jak się nazywa klawisz od zakupu primary broni, to wtedy będzie szybciej

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

I jak będę miał ten numer to co dalej z nim? @MAGNET

Edytowane przez KimPix

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
if (cl_buttons & TWÓJ_NUMER_KTÓRY_ZNALAZŁEŚ)

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

void MenusOnCommandsCreate(/*void*/)
{
    // Hook commands
    RegConsoleCmd("zmainmenu", MenusCommandCatched, "Open the main menu.");
    
    // Hook listeners
    AddCommandListener(MenusOnOpen);
}

/**
 * Handles the <!zmainmenu> command. Open the main menu.
 * 
 * @param clientIndex       The client index.
 * @param iArguments        The number of arguments that were in the argument string.
 **/ 
public Action MenusCommandCatched(const int clientIndex, const int iArguments)
{
    // Open the main menu
    MenuMain(clientIndex);
    return Plugin_Handled;
}

/**
 * Callback for command listener to open the main menu.
 *
 * @param clientIndex       The client index.
 * @param commandMsg        Command name, lower case. To get name as typed, use GetCmdArg() and specify argument 0.
 * @param iArguments        Argument count.
 **/
public Action MenusOnOpen(const int clientIndex, const char[] commandMsg, const int iArguments)
{
    // Gets command alias
    static char sCommand[SMALL_LINE_LENGTH];
    gCvarList[CVAR_GAME_CUSTOM_MENU_BUTTON].GetString(sCommand, sizeof(sCommand));
    
    // Validate command
    if(!strcmp(sCommand, commandMsg))
    {
        // Open the main menu
        MenuMain(clientIndex);
        return Plugin_Handled;
    }
    
    // Allow command
    return Plugin_Continue;
}
    gCvarList[CVAR_GAME_CUSTOM_MENU_BUTTON]     = CreateConVar("zp_game_custom_menu_button",        "autobuy",                                                         "Bind of the button for the menu open. Look here: https://www.reddit.com/r/GlobalOffensive/comments/36cjph/default_binds/");
    gCvarList[CVAR_GAME_CUSTOM_SKILL_BUTTON]    = CreateConVar("zp_game_custom_skill_button",       "rebuy",                                                           "Bind of the button for the skill usage. Look here: https://www.reddit.com/r/GlobalOffensive/comments/36cjph/default_binds/");
    gCvarList[CVAR_GAME_CUSTOM_LIGHT_BUTTON]    = CreateConVar("zp_game_custom_light_button",       "+lookatweapon",                                                   "Bind of the button for the flashlight trigger. Look here: https://www.reddit.com/r/GlobalOffensive/comments/36cjph/default_binds/");

 

Kod pochodzi z https://forums.alliedmods.net/showthread.php?t=290657
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!.

 

Przeanalizuj go i już łatwo dostosujesz do własnego pluginu.

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Lubię to! 3
#pragma semicolon 1
#pragma newdecls required

#define F3_BUTTON "autobuy"
#define F4_BUTTON "rebuy"

public void OnPluginStart()
{
    AddCommandListener(MenuOpen);
}

public Action MenuOpen(int client, const char[] command, int args)
{
    if(!strcmp(F3_BUTTON, command))
    {
        //Funkcję, którą chcesz wywołać
        return Plugin_Handled;
    }

    return Plugin_Continue;
}

Pamiętaj, że zadziała to tylko, jeśli gracze nie zmieni domyślnych przycisków od sprawdzanych komend. 

Edytowane przez Master

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include < sourcemod >

public OnPluginStart()
{
    AddCommandListener(Listener, "autobuy");
}

public Action Listener(int client, const char[] cmd, int argc)
{
    PrintToChat(client, "F3");
    return Plugin_Continue;
}  

można też tak ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Przed chwilą, mastah7991 napisał:

#include < sourcemod >

public OnPluginStart()
{
    AddCommandListener(Listener, "autobuy");
}

public Action Listener(int client, const char[] cmd, int argc)
{
    PrintToChat(client, "F3");
    return Plugin_Continue;
}  

można też tak ?

Też prawda ;d 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Yup, nie wiedziałem że na to klawisza nie ma ?

człowiek uczy się całe życie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...