Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zapis pev_flTimeStepSoundJak zapisać i odczytać w dwóch różnych pluginach wartość pev_flTimeStepSound

pev_fltimestepsound odczyt zapis

Najlepsza odpowiedź TekLak, 09.03.2025 23:29

Rozwiązałem problem używając grenade_throw i zrobienia tam wszystkiego, teraz wszystko działa jak należy. Dziękuje wszystkim za pomoc i można zamykać temat.  ^D^ 

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 TekLak

    Zaawansowany

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 02.03.2025 19:40

Witam,

 

Czy byłaby możliwość aby z zapisanej wartości w pev_flTimeStepSound by ją również odczytać w innym pluginie?
Możliwe ,że źle to opisuje (proszę mnie w takim razie poprawić :^D ) lecz podam przykład o co mi dokładniej chodzi.

 

Mam granat antidote ,który jest zapisywany w takich wartościach:

 

const PEV_NADE_TYPE = pev_flTimeStepSound
const NADE_TYPE_ANTIDOTE = 213769

 

I chce użyć tej wartości ,żeby odczytać ,że ten gracz rzucił takim granatem w pluginie gdzie główna funkcja jest rejestrowana w: register_message(get_user_msgid("TextMsg"), "message_text");

i używam do tego:

#define PEV_NADE_TYPE             pev_flTimeStepSound
#define NADE_TYPE_ANTIDOTE  213769

 

Co bym próbował to i tak w "message_text" nie pojawia się wiadomość o tym ,że rzuciłem tym granatem i pomimo podanej wartości to i tak wyrzuca 0 przy debugowaniu. :mur:

Dla jeszcze większego kontekstu dlaczego używam: register_message(get_user_msgid("TextMsg"), "message_text");

To dlatego ,że chce aby przy Fire In The Hole był napis [Antidote Bomb], jeżeli da się jeszcze w inny sposób to uzyskać chętnie się dowiem ;P

 


  • +
  • -
  • 0

#2 K@MILOVVSKY

    Zaawansowany

  • Użytkownik

Reputacja: 37
Życzliwy

  • Postów:121
  • Steam:steam
  • Imię:Kamil
Offline

Napisano 02.03.2025 21:42

Nie wiem czy do końca czaję, ALE: jak dokładnie rejestrujesz moment wyrzucenia tego specjalnego granatu? Nie możesz w momencie eventu dla wyrzutu wygenerować napis manualnie? Trochę kodu by się przydało. 

register_message(get_user_msgid("TextMsg"), "message_text") przechwytuje wiadomości systemowe (TextMsg), np. "Fire in the Hole!". Jeśli twój granat nie generuje tej wiadomości, to message_text się w ogóle nie wywoła.

 


  • +
  • -
  • 2

#3 mordoryjacz

    Profesjonalista

  • Użytkownik

Reputacja: 30
Życzliwy

  • Postów:185
Offline

Napisano 04.03.2025 18:23

 to dodaj do pluginu z granatem 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public grenade_throw(id, ent) {
    set_pev(ent, PEV_NADE_TYPE, NADE_TYPE_ANTIDOTE);
}

a to do innego pluginiu w ktorym to ma byc 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public message_text(msg_id, msg_dest, player) {
    static szMessage[192];
    get_msg_arg_string(2, szMessage, charsmax(szMessage));

    if(equal(szMessage, "#Fire_in_the_hole")) {
        if(pev_valid(player)) {
            if(pev(player, PEV_NADE_TYPE) == NADE_TYPE_ANTIDOTE) {
                client_print(player, print_chat, "[Antidote Bomb]");
            }
        }
    }
}

ale nie wiem czy #define NADE_TYPE_ANTIDOTE 213769 nie bedzie musialo byc w includzie jakims sprawdz 


  • +
  • -
  • 0

#4 TekLak

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 05.03.2025 01:41

Nie wiem czy do końca czaję, ALE: jak dokładnie rejestrujesz moment wyrzucenia tego specjalnego granatu? Nie możesz w momencie eventu dla wyrzutu wygenerować napis manualnie? Trochę kodu by się przydało. 

register_message(get_user_msgid("TextMsg"), "message_text") przechwytuje wiadomości systemowe (TextMsg), np. "Fire in the Hole!". Jeśli twój granat nie generuje tej wiadomości, to message_text się w ogóle nie wywoła.

 

 

"set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_ANTIDOTE)" rejestruje w "register_forward(FM_SetModel, "fw_SetModel", 1)" i jak Fire in the Hole jest normalnie wyświetlane to rejestrowany granat nie wyświetla się poprawnie tzn, omija granat antidote i od razu podaje zwykły granat.

nade_type = pev(id, PEV_NADE_TYPE)   
           
// Primary grenade types
if(zp_core_is_zombie(caller))
{
    desccolor = g_grenade_desccolor[2];
    pos += formatex(text[pos], sizeof text - pos, " %c%L", g_color_code[desccolor], id, "ZP_INFECTBOMB");
}
else if(nade_type == NADE_TYPE_ANTIDOTE)
{
    desccolor = g_grenade_desccolor[1];
    pos += formatex(text[pos], sizeof text - pos, " %c%L", g_color_code[desccolor], id, "ZP_ANTIDOTEBOMB");
}
else
{
    desccolor = g_grenade_desccolor[0];
    pos += formatex(text[pos], sizeof text - pos, " %c%L", g_color_code[desccolor], id, "ZP_NAPALMNADE");
}

Tutaj to jak próbuje w "register_message(get_user_msgid("TextMsg"), "message_text");" wyświetlić tryb granatu


  • +
  • -
  • 0

#5 TekLak

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 05.03.2025 01:43

 to dodaj do pluginu z granatem 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public grenade_throw(id, ent) {
    set_pev(ent, PEV_NADE_TYPE, NADE_TYPE_ANTIDOTE);
}

a to do innego pluginiu w ktorym to ma byc 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public message_text(msg_id, msg_dest, player) {
    static szMessage[192];
    get_msg_arg_string(2, szMessage, charsmax(szMessage));

    if(equal(szMessage, "#Fire_in_the_hole")) {
        if(pev_valid(player)) {
            if(pev(player, PEV_NADE_TYPE) == NADE_TYPE_ANTIDOTE) {
                client_print(player, print_chat, "[Antidote Bomb]");
            }
        }
    }
}

ale nie wiem czy #define NADE_TYPE_ANTIDOTE 213769 nie bedzie musialo byc w includzie jakims sprawdz 

 

Myślałem ,żeby to w include jakoś zapisać lecz nie mam pomysłu jakby to miało wyglądać delikatnie mówiąc ;>
 


  • +
  • -
  • 0

#6 mordoryjacz

    Profesjonalista

  • Użytkownik

Reputacja: 30
Życzliwy

  • Postów:185
Offline

Napisano 06.03.2025 12:55

 

 to dodaj do pluginu z granatem 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public grenade_throw(id, ent) {
    set_pev(ent, PEV_NADE_TYPE, NADE_TYPE_ANTIDOTE);
}

a to do innego pluginiu w ktorym to ma byc 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public message_text(msg_id, msg_dest, player) {
    static szMessage[192];
    get_msg_arg_string(2, szMessage, charsmax(szMessage));

    if(equal(szMessage, "#Fire_in_the_hole")) {
        if(pev_valid(player)) {
            if(pev(player, PEV_NADE_TYPE) == NADE_TYPE_ANTIDOTE) {
                client_print(player, print_chat, "[Antidote Bomb]");
            }
        }
    }
}

ale nie wiem czy #define NADE_TYPE_ANTIDOTE 213769 nie bedzie musialo byc w includzie jakims sprawdz 

 

Myślałem ,żeby to w include jakoś zapisać lecz nie mam pomysłu jakby to miało wyglądać delikatnie mówiąc ;>
 

 

dodaj do includa #define NADE_TYPE_ANTIDOTE 213769 i tyle i skompiluj pluginy nie zapomnij usunac z nich tego nie wiem chyba powinno dzialac


  • +
  • -
  • 0

#7 TekLak

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 07.03.2025 23:38

 

 

 to dodaj do pluginu z granatem 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public grenade_throw(id, ent) {
    set_pev(ent, PEV_NADE_TYPE, NADE_TYPE_ANTIDOTE);
}

a to do innego pluginiu w ktorym to ma byc 

#define PEV_NADE_TYPE pev_iuser1
#define NADE_TYPE_ANTIDOTE 213769

public message_text(msg_id, msg_dest, player) {
    static szMessage[192];
    get_msg_arg_string(2, szMessage, charsmax(szMessage));

    if(equal(szMessage, "#Fire_in_the_hole")) {
        if(pev_valid(player)) {
            if(pev(player, PEV_NADE_TYPE) == NADE_TYPE_ANTIDOTE) {
                client_print(player, print_chat, "[Antidote Bomb]");
            }
        }
    }
}

ale nie wiem czy #define NADE_TYPE_ANTIDOTE 213769 nie bedzie musialo byc w includzie jakims sprawdz 

 

Myślałem ,żeby to w include jakoś zapisać lecz nie mam pomysłu jakby to miało wyglądać delikatnie mówiąc ;>
 

 

dodaj do includa #define NADE_TYPE_ANTIDOTE 213769 i tyle i skompiluj pluginy nie zapomnij usunac z nich tego nie wiem chyba powinno dzialac

 

 

Usunąłem #define NADE_TYPE_ANTIDOTE 213769 z obu pluginów, dodałem do includa po czym skompilowałem oba pluginy no i przyszedł czas na testy, granat nadal nie jest wykrywany. :crazy: 

Testowałem czy może dodanie #define PEV_NADE_TYPE  pev_iuser1 do includa pomoże lecz nadal nic. Myślę czy może różne pevy przetestować i zobaczyć czy, któryś zadziała.
 


  • +
  • -
  • 0

#8 TekLak

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 07.03.2025 23:44

Dodanie do includa "#define PEV_NADE_TYPE        pev_flTimeStepSound" spowodowało zadziałanie poprawnie granatu lecz nadal nie wyświetla na chacie poprawnego granatu, jestem blisko :^D


  • +
  • -
  • 0

#9 TekLak

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:124
Offline

Napisano 09.03.2025 23:29   Najlepsza odpowiedź

Rozwiązałem problem używając grenade_throw i zrobienia tam wszystkiego, teraz wszystko działa jak należy. Dziękuje wszystkim za pomoc i można zamykać temat.  ^D^ 


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: pev_fltimestepsound, odczyt, zapis

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych