Page 1 of 2

Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 27 14:55
by beast
Skatinam 47 protokolo žaidėjus atsinaujinti CS - pereiti ant 48 protokolo patch'o (v43).

Dėl ko verta skatinti?
Lengviau ras jūsų serverius per find servers.
Veiks dažnai reikalinga amxx funkcija query_client_cvar.
Na ir aišku įvairūs bug fixai = stabilesnis žaidimas...

Pateiksiu scriptuką, kurio pagalba galima nustatyti ar žaidėjas naudoja seną 47 protokolą (tam reikalingas dproto):

Code: Select all

#include <amxmodx> new bool:g_is_old_cl[33] new pcv_dp_r_protocol public plugin_init(){    pcv_dp_r_protocol = get_cvar_pointer ("dp_r_protocol")} public client_putinserver(id) {       if (!pcv_dp_r_protocol)    {        // Nerastas reikalingas cvar, greičiausiai naudojama sena dproto versija ( < 0.2.9 )        log_amx ("Nerastas dp_r_protocol cvar.")        return PLUGIN_HANDLED    }        server_cmd("dp_clientinfo %d", id)    server_exec()        new proto = get_pcvar_num(pcv_dp_r_protocol)        //tikrinam ar žaidėjo protokolas 47    if(proto == 47)        g_is_old_cl[id] = true        return PLUGIN_CONTINUE} public client_disconnect(id)    g_is_old_cl[id] = false
Akivaizdu, kad norint atlikti veiksmus 47 protokolą naudojantiems žaidėjas, turėsime tikrinti taip:

Code: Select all

if(g_is_old_cl[id]){    //žaidėjas naudoja seną protokolą, atliekam veiksmus} 
Kaip skatinti žaidėjus?

Galima jiems printinti įvairias informacines žinutes, su nuorodom į jūsų saitą, kur ir bus galima parsiųsti naują patchą...
Aišku veiksmingesnes priemonės yra drastiškos priemonės, pvz. seno protokolo žaidėjai negali daryti žalos pataikę HS (aišku apie tai irgi reikia informuoti).
Kiekvieno fantazija sugalvoti ką nors skatinančio... kad ir pvz. free VIP 48 protokolą turintiems žaidėjams tam tikrą laiką...

Taigi, kas turi noro ir serverių, gali prisidėti.

p.s. su žemiau esančiu pluginu galima patikrinti kuris protokolas ir kiek populiaresnis jūsų serveriuose (reikalinga mysql duomenų bazė). Mysql duomenis reikia nustatyti kode:

Code: Select all

#define HOST        "localhost"#define USER        "root"#define PASSWORD    ""#define DATABASE

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 27 15:50
by aaarnas
1 geras dalykas + dar. 48 protokole generuojamas steam id.

Gera pamoka, tik pridėsiu kelis dalykus, kad nekurti papildomos pamokos:
Taip pat su dproto pagalba galima sužinoti ir žaidėjo emuliatorių. Čia skriptas su pavyzdžiais:

Code: Select all

/* Plugin generated by AMXX-Studio */ #include <amxmodx>#include <amxmisc> #define PLUGIN "Dproto stock"#define VERSION "1.0"#define AUTHOR "aaarnas" new player_protocol // Sukuriam dproto cvar'ų pointerius new player_provider new const provider_name[][] = {0, // Registruojam pavadinimus    "Senas non-steam client",     "Steam(legalus)",    "SteamEmu",    "revEmu",     "senos versijos revEmu",    "HLTV",    "SC2009 HLTV",    "AVSMP"} public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR)        player_protocol = get_cvar_pointer("dp_r_protocol") // Registruojame dproto cvar'ų pointerius.    player_provider = get_cvar_pointer("dp_r_id_provider")        register_clcmd("/test", "show") // Registruojam /test komandą} public show(id) {        new protokolas, emuliatorius        get_dproto_info(id, protokolas, emuliatorius) // Su šiuo stock'u gauname id žaidėjo informaciją        client_print(id, print_chat, "Tavo protokolas %d, emuliatorius: %s", protokolas, provider_name[emulaitorius]) // Atspauzdiname žaidėjui} stock get_dproto_info(const id, &protocol=0, &provider=0) {        server_cmd("dp_clientinfo %d", id)    server_exec()        protocol = get_pcvar_num(player_protocol)    provider = get_pcvar_num(player_provider)}  

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 27 17:32
by Keistas
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Dproto stock"
#define VERSION "1.0"
#define AUTHOR "aaarnas"
 
new player_protocol // Sukuriam dproto cvar'ų pointerius
new player_provider
 
new const provider_name[][] = {0, // Registruojam pavadinimus
    "Senas non-steam client",
    "Steam(legalus)",
    "SteamEmu",
    "revEmu",
    "senos versijos revEmu",
    "HLTV",
    "SC2009 HLTV",
    "AVSMP"
}
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    player_protocol = get_cvar_pointer("dp_r_protocol") // Registruojame dproto cvar'ų pointerius.
    player_provider = get_cvar_pointer("dp_r_id_provider")
   
    register_clcmd("/test", "show") // Registruojam /test komandą
}
 
public show(id) {
   
    new protokolas, emulaitorius
   
    get_dproto_info(id, protokolas, emulaitorius) // Su šiuo stock'u gauname id žaidėjo informaciją
   
    client_print(id, print_chat, "Tavo protokolas %d, emuliatorius: %s", protokolas, provider_name[emulaitorius]) // Atspauzdiname žaidėjui
}
 
stock get_dproto_info(const id, &protocol=0, &provider=0) {
   
    server_cmd("dp_clientinfo %d", id)
    server_exec()
   
    protocol = get_pcvar_num(player_protocol)
    provider = get_pcvar_num(player_provider)
}
 


Arnai lygtais klaida padarei turi būti "emuliatorius"

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 27 18:40
by aaarnas
Dėl tokios klaidos viskas veiks.

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 28 18:57
by KamiN
O galit pasakyti, ka rasyti i sita vieta

Code: Select all

if(g_is_old_cl[id]){    //žaidėjas naudoja seną protokolą, atliekam veiksmus} 
Kad kas kokias 5min ismestu mano nustatyta uzrasa is kur siustis ta cs?

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 28 19:24
by aaarnas
Galima tiesiog taip:

Code: Select all

new maxplayers public plugin_init() {     set_task(300.0, "zinute", 0, _, _, "b")    maxplayers = get_maxplayers()} public zinute() {        static id    for(id=1; id<=maxplayers; id++) {                if(!is_user_connected(id)) continue;                if(g_is_old_cl[id]) client_print(id, print_chat, "Naudojate sena")    }}

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 28 19:38
by KamiN
Tai kaip viskas pilnai sujungta atrodytu?

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 29 13:39
by newb

Code: Select all

#include <amxmodx> new bool:g_is_old_cl[33]new pcv_dp_r_protocolnew maxplayers public plugin_init() {    pcv_dp_r_protocol = get_cvar_pointer ("dp_r_protocol")    maxplayers = get_maxplayers()    set_task(300.0, "zinute", 0, _, _, "b")} public zinute() {    for(new id=1; id<=maxplayers; id++)         if(g_is_old_cl[id]) {            set_hudmessage(255, 0, 0, 0.02.0, 0.14, 0, 6.0, 12.0)            show_hudmessage(id, "Naudojate sena")                   }} public client_putinserver(id) {       if (!pcv_dp_r_protocol) {        // Nerastas reikalingas cvar, greiciausiai naudojama sena dproto versija ( < 0.2.9 )        log_amx ("Nerastas dp_r_protocol cvar.")        return PLUGIN_HANDLED    }        server_cmd("dp_clientinfo %d", id)    server_exec()        new proto = get_pcvar_num(pcv_dp_r_protocol)        //tikrinam ar zaidejo protokolas 47    if(proto == 47)        g_is_old_cl[id] = true        return PLUGIN_CONTINUE} public client_disconnect(id)    g_is_old_cl[id] = false

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 30 10:37
by KamiN
Nesukompiliuoja

Image

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Posted: 2011 Apr 30 11:07
by nuodas159

Code: Select all

#include <amxmodx> new bool:g_is_old_cl[33]new pcv_dp_r_protocolnew maxplayers public plugin_init() {    pcv_dp_r_protocol = get_cvar_pointer ("dp_r_protocol")     maxplayers = get_maxplayers()     set_task(300.0, "zinute", 0, _, _, "b")} public zinute() {        static id    for(id=1; id<=maxplayers; id++) {                if(!is_user_connected(id)) continue;                if(g_is_old_cl[id]) client_print(id, print_chat, "Naudojate sena")  }} public client_putinserver(id) {       if (!pcv_dp_r_protocol) {        // Nerastas reikalingas cvar, greiciausiai naudojama sena dproto versija ( < 0.2.9 )        log_amx ("Nerastas dp_r_protocol cvar")        return PLUGIN_HANDLED    }        server_cmd("dp_clientinfo %d", id)    server_exec()        new proto = get_pcvar_num(pcv_dp_r_protocol)        //tikrinam ar zaidejo protokolas 47    if(proto == 47)        g_is_old_cl[id] = true        return PLUGIN_CONTINUE} public client_disconnect(id){    g_is_old_cl[id] = false}
Turetu nemesti. ;]