Skatinam 47 protokolo žaidėjus atsinaujinti CS

Šiame forume galima rasti pamokas, patarimus, skriptus ir kitą naudingą informciją.
User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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
Attachments
proto_stats.sma
(5.47 KiB) Downloaded 912 times
Last edited by beast on 2011 Jul 12 15:45, edited 4 times in total.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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)}  
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Keistas
Jau po truputį tampa savu
Posts: 144
Joined: 2011 Feb 23 19:44
Skype: mindzekas.nu

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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"

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post by aaarnas »

Dėl tokios klaidos viskas veiks.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

KamiN
Gana aktyvus vartotojas
Posts: 227
Joined: 2011 Apr 23 13:17

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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?

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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")    }}
Palikau CS pasaulį ;/ . Nebepasiekiamas.

KamiN
Gana aktyvus vartotojas
Posts: 227
Joined: 2011 Apr 23 13:17

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post by KamiN »

Tai kaip viskas pilnai sujungta atrodytu?

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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

KamiN
Gana aktyvus vartotojas
Posts: 227
Joined: 2011 Apr 23 13:17

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post by KamiN »

Nesukompiliuoja

Image

User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

Re: Skatinam 47 protokolo žaidėjus atsinaujinti CS

Post 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. ;]
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests