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

[ROZWIĄZANE] Byty, które wywołuje ten func_button


  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 28.04.2013 10:13

Cześć, mam ID bytu "func_button", jak teraz dowiedzieć się jakie "wywołuje" ( doprowadza do zmiany pozycji etc. jak na Deathrun ) byty. Czyli załóżmy jaką pułapkę uruchamia func_button o id 12 ? ( potrzebuje metody wydobycia id bytu pułapki lub kilku bytów pułapki )


  • +
  • -
  • 0

#2 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 28.04.2013 12:49

Specjalnie trochę poczytałem na forach mapperskich, lecz tam coś jest mowa o ustawieniu targetu dla bytu, więc może ze stałą pev_target? Nie wiem czy to dobra odpowiedź, to moja dedukcja :) Nie mam teraz jak to sprawdzić zbytnio, jak znajdę czas to coś popatrzę.


  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#3 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 28.04.2013 13:10

https://developer.va...iki/Func_button


new szTarget[ 64 ];
pev( iButton, pev_target, szTarget, 63 );

new iDoor = -1; 
while( ( iDoor = fm_find_ent_by_target( iDoor, szTarget ) ) > 0 )
{
    // do sth..
}

  • +
  • -
  • 1

marwit-0.png


#4 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 28.04.2013 14:05

Hmm.. moim celem jest aby osoba stojąca przy przycisku na dr widziała pokolorowaną pułapkę, to kod, ale coś nie działa :/

Efekt to przycisk pokolorowany na czarno, dziwne :/

#include <amxmodx>

#include <fakemeta>
#include <engine>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
 
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward( FM_AddToFullPack, "fw_Fullpack", 1 );
}
public fw_Fullpack(es_handle, e, ENT, HOST, hostflags, player, pSet)
{
if(player)
return FMRES_IGNORED;
if( !is_user_alive( HOST ) )
return FMRES_IGNORED;
new Float:origin[3];
pev( HOST, pev_origin, origin );
new ent[2];
find_sphere_class( 0, "func_button", 50.0, ent, 1, origin );
if( !ent[0] )
return FMRES_IGNORED;
new szTarget[ 64 ];
pev( ent[0], pev_target, szTarget, 63 );
new iDoor = -1; 
while( ( iDoor = find_ent_by_target( iDoor, szTarget ) ) > 0 )
{
if( iDoor == ENT )
{
set_es( es_handle, ES_RenderMode, kRenderTransColor );
set_es( es_handle, ES_RenderColor, { 55.0, 200.0, 55.0 } );
set_es( es_handle, ES_RenderAmt, 100.0 );
}
}
}


  • +
  • -
  • 0

#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 28.04.2013 14:33

public fw_Fullpack(es_handle, e, ENT, HOST, hostflags, player, pSet)
{
    if(player)
        return FMRES_IGNORED;
        
    if( !is_user_alive( HOST ) )
        return FMRES_IGNORED;
        
    new Float:origin[3];
    pev( HOST, pev_origin, origin ); \\ [1.]

    
    new ent[2];
    find_sphere_class( 0, "func_button", 50.0, ent, 1, origin );\\ [2.]

    if( !ent[0] )
        return FMRES_IGNORED;
        
    new szTarget[ 64 ];
    pev( ent[0], pev_target, szTarget, 63 );           \\ [3.]
    new iDoor = -1;
    while( ( iDoor = find_ent_by_target( iDoor, szTarget ) ) > 0 )             \\ [4.]
    {
        if( iDoor == ENT )                                // [5.]
        {
            set_es( es_handle, ES_RenderMode, kRenderTransColor );
            set_es( es_handle, ES_RenderColor, { 55.0, 200.0, 55.0 } );
            set_es( es_handle, ES_RenderAmt, 100.0 );
        }
    }
}
  • Pobierasz pozycję gracza

     

     

  • Wyszukujesz przycisk położony najbliżej gracza

     

     

  • Pobierasz target na który przycisk wskazuje.

     

     

  • Szukasz wszystkich bytów o określonym targecie

     

     

  • I podświetlasz te, których ID jest RÓWNE ID bytu z fullpacka, czyli podświetlasz de facto również przycisk (posiada on przecież taki sam target)

     

     

 

 

Już widzisz gdzie popełniasz błąd?


Użytkownik GwynBleidD edytował ten post 28.04.2013 15:05

  • +
  • -
  • 3

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 29.04.2013 08:44


Już widzisz gdzie popełniasz błąd?

Niestety nie, moje doświadczenie z bytami wygląda kiepsko. Próbowałem co nieco ale nic nie wyszło. 

 


czyli podświetlasz de facto również przycisk (posiada on przecież taki sam target)

Właśnie nie również ( bo wydaje mi się że zrozumiałeś ze podświetla się przycisk i pułapka ). Podświetla się jedynie przycisk :/


  • +
  • -
  • 0

#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 29.04.2013 14:13

Hmm, a zróbmy drobnego debuga:

client_print(id, print_chat, "ent: %d, ENT: %d, iDoor: %d, targetname: %s", ent[0], ENT, iDoor, szTarget);

dodaj to po while zaraz, później obserwuj w grze jakie wartości się wyświetlają.


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#8 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 29.04.2013 15:16

Spóbuj w engfunc'u z targetname ew. z globalname.. nie pamiętam już jaka wartość kvd za to odpowiadała.
  • +
  • -
  • 1

marwit-0.png


#9 Fili:P

    Godlike

  • Autor tematu
  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 29.04.2013 16:32

Dzięki wszystkim za pomoc. Tak wygląda mój "działający" kod :)

#include <amxmodx>

#include <fakemeta>
#include <engine>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
 
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward( FM_AddToFullPack, "fw_Fullpack", 1 );
}
public fw_Fullpack(es_handle, e, ENT, HOST, hostflags, player, pSet)
{
if(player)
return FMRES_IGNORED;
if( !is_user_alive( HOST ) )
return FMRES_IGNORED;
if( !pev_valid( ENT ) )
return FMRES_IGNORED;
new Float:origin[3];
pev( HOST, pev_origin, origin );
new ent[2];
find_sphere_class( 0, "func_button", 50.0, ent, 1, origin );
if( !ent[0] )
return FMRES_IGNORED;
new szTarget[ 64 ];
pev( ent[0], pev_target, szTarget, 63 );
new szTname[64];
pev( ENT, pev_targetname, szTname, 63 );
if( equal( szTarget, szTname ) )
{
set_es( es_handle, ES_RenderMode, kRenderTransColor );
set_es( es_handle, ES_RenderColor, { 55.0, 200.0, 55.0 } );
set_es( es_handle, ES_RenderAmt, 100.0 );
}
 
}
 


  • +
  • -
  • 0

#10 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 29.04.2013 21:20

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

marwit-0.png





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

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