Page 1 of 1

/ PAMOKA / multiline SVC_DISCONNECT (kick)

Posted: 2013 Mar 18 00:45
by Tetusis
Ka gi rašydamas savo plugina nusprendžiau pasidalinti naudinga informacija su jumis ir sukurti pamoka, pirmiausiai kuom ji skiriasi nuo šios pamokos - https://forums.alliedmods.net/showthread.php?t=47227: Image

, o gi tuom, kad metodas yra daug paprastesnis ir lengvesnis, taipogi lygiuodamas eilutes su

Code: Select all

^n
pamačiau, kad galima atrasti vietos ir 4 eilutei nukeliant teksta "You have been disconnected from the server." kas yra šiuo metu visiškai unikalu



Image


Štai paprastas kodas su funkcija kuria parašius į konsolę jus gaunate rezultata nurodyta virš šio teksto (paveikslelyje), jame esančioje funkcijoje viskas paaiškinta. Taigi kam to reikia? žmogus nevisada pasižiūri kas yra konsolėje, pirmiausiai dėmesys atkreipiamas į šia žinute, na ,o pagrindinė priežastis kodėl informacija perkialiama į konsolę yra vietos trūkumas, naudomiesi šį metoda galėsite sutalpinti daug daugiau informacijos negu paprasčiausioje kick funkcijoje, sėkmės.

Code: Select all

#include <amxmodx>#include <amxmisc> public plugin_init() {    register_plugin("/ PAMOKA / multiline SVC_DISCONNECT (kick)", "0.1", "Serious Spot")        register_clcmd("dc", "disconnect", ADMIN_ALL)   } public disconnect(id) {        // Zinutes ilgis char'ais    new MSG_LENGHT[256]     // Simbolis ^n reiskia, kad pereiname prie kitos eilutes, teksta galite redaguoti    formatex(MSG_LENGHT, charsmax(MSG_LENGHT), "^n1 EILUTE^n2 EILUTE^n3 EILUTE^n4 EILUTE^n^n")     message_begin(MSG_ONE, SVC_DISCONNECT, _, id)    write_string(MSG_LENGHT)    message_end()    }

Re: / PAMOKA / multiline SVC_DISCONNECT (kick)

Posted: 2013 Mar 18 21:56
by aaarnas
Akivaizdu counter-strik'e, kad ^n tai nauja eilutė.

Ir nerašyk kaip papuola. Uppercase paprastai rašomi tik makrosai, arba paprastos konstantos. Labai neaiškus kodas dėl to tampa.

Realiai tas pats turėtų veikti ir su serverio komanda ' kick uid "fsdf^nfsdfd" ' (priklauso nuo to, kaip ji apdorojama)

Gali parašyti kaip stock:

Code: Select all

// ^n - for new line in message.stock disconnect_client(id, message[]) {     message_begin(MSG_ONE, SVC_DISCONNECT, _, id)    write_string(message)    message_end()    }
O šiaip naudingas dalykas. Patiko man SVC_DISCONNECT, niekada apie jį nebuvau pasidomėjęs.

Re: / PAMOKA / multiline SVC_DISCONNECT (kick)

Posted: 2013 Mar 18 22:20
by hleV
Atsimenu buvo kažkas susipisę su tuo SVC_DISCONNECT vienu metu. Kažkada kūriau plugin'ą žmogui, tai buvo funkcija originali su SVC_DISCONNECT, bet teko grįžt prie įprasto būdo. Tik vat neatsimenu kas konkrečiai ten buvo. Gal jau ir susitvarkė viskas po update.

Code: Select all

Disconnect(id, const reason[]){    //message_begin(MSG_ONE_UNRELIABLE, SVC_DISCONNECT, _, id);    //write_string(reason);    //message_end();     server_cmd("kick #%d ^"%s^"", get_user_userid(id), reason);}
Gal dėl MSG_ONE_UNRELIABLE...

Re: / PAMOKA / multiline SVC_DISCONNECT (kick)

Posted: 2013 Mar 18 23:26
by Tetusis
hleV wrote:Atsimenu buvo kažkas susipisę su tuo SVC_DISCONNECT vienu metu. Kažkada kūriau plugin'ą žmogui, tai buvo funkcija originali su SVC_DISCONNECT, bet teko grįžt prie įprasto būdo. Tik vat neatsimenu kas konkrečiai ten buvo. Gal jau ir susitvarkė viskas po update.

Code: Select all

Disconnect(id, const reason[]){    //message_begin(MSG_ONE_UNRELIABLE, SVC_DISCONNECT, _, id);    //write_string(reason);    //message_end();     server_cmd("kick #%d ^"%s^"", get_user_userid(id), reason);}
Gal dėl MSG_ONE_UNRELIABLE...

bandziau butent su

Code: Select all

MSG_ONE_UNRELIABLE
, pluginas visiskai nefunkcionavo, kiek skaiciau

Code: Select all

MSG_ONE_UNRELIABLE
lyginant su

Code: Select all

MSG_ONE
maziau crashin'a serveri, bet funkcija su

Code: Select all

MSG_ONE_UNRELIABLE
net neveike, gryzau prie pastarojo.