hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.06. 20:32



Jelenlévő felhasználók

Jelenleg 414 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 414 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Disconnect Reason [ Chatbe ]
HozzászólásElküldve: 2013.06.10. 11:17 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Üdvözlök mindenkit! Amit VASTAGON írtam, azokat én írtam bele utólag! Tehát a kérdéseim a következőek lennének:

1, Saját magamon teszteltem a plugint, hogy ki e írja ha kickelem magam: NEM! Mit ronthattam el?

2, Szintén magamon teszteltem hogy ha lebanolom magam ír e valamit: NEM! Miért?

Ha jól értelmeztem a leírást, akkor elvileg CONSOLE -ba is kellene írnia ugyan azokat, mint Chatbe, de nem írja oda se!
Az eredeti leírásba, csatoltak egy képet:
Kép
(Nekem ilyet consoleba nem ír!)

The source:

#include <amxmodx>
#include <amxmisc>
#include <orpheu> // [ 5] Orpheu RUN - orpheu_amxx.dll v2.5.1 pl1 ANY ANY

new const Version[] = "0.5";

enum ReasonCodes
{
DR_TIMEDOUT,
DR_DROPPED,
DR_KICKED,
DR_BANNED,
DR_OTHER
}
new const DisconnectMessages[ ReasonCodes ][] =
{
"Idotullepes",
"Client sent 'drop'",
"Kirugva(kick)",
"Kitiltva(ban)",
""
};
enum DisconnectData
{
ReasonCode,
ReasonMessage[ 32 ]
}

new g_pEnabled , bool:g_bEnabled , g_szName[ 33 ][ 33 ] , g_DisconnectInfo[ DisconnectData ] , g_iFwdDisconnect;

public plugin_init()
{
register_plugin( "Disconnect Reason" , Version , "bugsy" );

g_pEnabled = register_cvar( "dr_enabled" , "1" );
register_cvar( "disconnectreason_version" , Version , ( FCVAR_SERVER | FCVAR_SPONLY ) );

OrpheuRegisterHook( OrpheuGetFunction( "SV_DropClient" ) , "SV_DropClient" );

register_message( get_user_msgid( "TextMsg" ) , "fw_MsgTextMsg" );

g_iFwdDisconnect = CreateMultiForward( "client_disconnect_reason", ET_CONTINUE , FP_CELL , FP_CELL , FP_STRING );
}

public client_putinserver( id )
{
get_user_name( id , g_szName[ id ] , charsmax( g_szName[] ) );
}

public OrpheuHookReturn:SV_DropClient( a , b , const szMessage[] )
{
if ( ( g_bEnabled = bool:!!get_pcvar_num( g_pEnabled ) ) )
{
copy( g_DisconnectInfo[ ReasonMessage ] , charsmax( g_DisconnectInfo[ ReasonMessage ] ) , szMessage );

new ReasonCodes:rcReason;
for ( rcReason = DR_TIMEDOUT ; rcReason < ReasonCodes ; rcReason++ )
{
if ( equal( szMessage , DisconnectMessages[ rcReason ] ) )
break;
}

g_DisconnectInfo[ ReasonCode ] = _:rcReason;
}
}

public client_disconnect( id )
{
new iReturn;
ExecuteForward( g_iFwdDisconnect , iReturn , id , g_DisconnectInfo[ ReasonCode ] , g_DisconnectInfo[ ReasonMessage ] );

if ( g_bEnabled )
{
console_print( 0 , "* %s lecsatlakozott - Ok [ %s ]" , g_szName[ id ] , g_DisconnectInfo[ ReasonMessage ] );
ChatNotify( id );
}
}

public fw_MsgTextMsg( iMsgID , iMsgDest , iMsgArgs )
{
static szMessage[ 19 ];
return ( g_bEnabled && get_msg_arg_string( 2 , szMessage , charsmax( szMessage ) ) && equal( szMessage , "#Game_disconnected" ) ) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}

ChatNotify( iDisconnectID )
{
static szMessage[ 100 ] , iMsgSayText;
formatex( szMessage , charsmax( szMessage ) , "^1*^3 %s ^1lecsatlakozott - Ok [^4 %s ^1]" , g_szName[ iDisconnectID ] , g_DisconnectInfo[ ReasonMessage ] );

emessage_begin( MSG_BROADCAST , iMsgSayText ? iMsgSayText : ( iMsgSayText = get_user_msgid( "SayText" ) ) , _ , 0 );
ewrite_byte( iDisconnectID );
ewrite_string( szMessage );
emessage_end();
}

(Azért nem írtam
SMA Forráskód: [ Mindet kijelol ]
  1.  
mert akkor nem tudom kiemelni a lényeget.)!
============================================================
SMA Forráskód: [ Mindet kijelol ]
  1. static szMessage[ 100 ] , iMsgSayText;
  2. formatex( szMessage , charsmax( szMessage ) , "^1*^3 %s ^1lecsatlakozott - Ok [^4 %s ^1]" , g_szName[ iDisconnectID ] ,

Ezt nem értem!
Ez elvileg az a kód, hogy ha valaki lecsatlakozik, akkor CHATBE írja ki(Indokot és a nevét)!
Nem egyszerűbb lett volna így megoldani?(Ez csak feltételezés)
SMA Forráskód: [ Mindet kijelol ]
  1. client_print(0, print_chat, "[ Pelda-Prefix ] %s nullazta %s statisztikajat.", name, tempname);


Előre is köszönöm válaszotokat!

Üdv. [profil]Anonymous1337[/profil]

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 24 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole