EPIC4 Manual


dcc_request

Uaktywnai się gdy ktoś będzie Ci oferował jakieś połączenie DCC CHAT lub DCC SEND (inne rodzaje połączeń DCC inicjalizujesz Ty i siłą rzeczy ofert otrzymać od kogoś innego nie możesz).

$0nick osoby oerującej Ci połączenie DCC
$1typ DCC (SEND lub CHAT)
$2opis połączenia DCC (to samo co $1)
$3IP clienta oferującego DCC
$4numer portu IP z którym client jest połączony
$5nazwa pliku (tylko w SEND)
$6rozmiar pliku (tylko w SEND)

ON dcc_request jest jedynym o ostatnim punktem zaczepienia DCC w którym działa funkcja $userhost(). Dlatego warto gdzieś zapisać, jaki dany nick ma user@host, bo może się to później komuś przydać, a nie będzie możliwości zdobycia tej informacji, bo DCC odbywa się już bez udziału IRC serverów. Taki zapis może np. wyglądać tak:


on #-dcc_request 3 * {
   @ dcc_uh[$1][$hash_32bit($0)] = userhost()
}

Ktoś, kto nam oferuje 'DCC SEND' jako 'Raichu!raichu@blah.net' zostanie zapisany w zmiennej:

$dcc_uh.SEND.54088        /* o wartości 'raichu@blah.net' */


Nie rozumiesz przykładu? Zobacz: Wstęp do ONs, Zmienne, $hash_32bit(), $userhost()

A przykład bardziej standardowego wykorzystania ON dcc_request to:


on ^dcc_request * {
   if ([$1] == [CHAT]) {
      echo *** DCC CHAT request from $0!$userhost()
   } elsif ([$1] == [SEND]) {
      echo *** DCC SEND $5 \($6 bytes\) request from $0!$userhost()
   }
}

Jeżeli 'Pikachu' przyśle nam DCC CHAT i DCC SEND, to zobaczymy:

*** DCC CHAT request from Pikachu!pika@pokemnos.int
*** DCC SEND pokeball.zip (345694 bytes) from Pikachu!pika@pokemons.int


Nie rozumiesz przykładu? Zobacz: if, $userhost().

Zobacz także: ON dcc_connect, ON dcc_list, ON dcc_lost, ON dcc_offer



Lista Named ONs Home Następny Paragraf