←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
Edycja pluginu CT Only STEAM [JailBreak]

  • +
  • -
aQua. - zdjęcie aQua. 02.04.2013

Witam.
Potrafi ktoś zeedytować plugin, dzięki któremu do CT mogą wchodzić gracze only STEAM, aby działał tak, żeby mogli do niego wchodzić także gracze NonSteam, którym nadam daną flagę w users.ini ?, dajmy na to "ADMIN_LEVEL_E" ( flaga 'q' ).
Za pomoc wielki ++

#include <amxmodx>
#include <cstrike>
#include <colorchat>


#define PLUGIN "Only STEAM in CT"
#define VERSION "1.0"
#define AUTHOR "Raku"
#pragma semicolon 1


const AUTH_STEAM = 2;


new bool: dproto_installed;
new pcv_dp_r_id_provider;


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

if ( cvar_exists( "dp_version" ) )
{
dproto_installed = true;
pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
}
else
{
dproto_installed = false;
pcv_dp_r_id_provider = 0;
}

register_event("TeamInfo","team_assign","a");
}


public team_assign()
{
new id = read_data(1);
if(!is_user_steam(id))
{
new team[32];
read_data(2, team, charsmax(team));

if(equal(team,"CT"))
{

ColorChat(id, RED, "Tylko gracze steam moga byc staraznikiem!");
cs_set_user_team(id, CS_TEAM_T);

return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}


stock bool: is_user_steam(id)
{
if ( dproto_installed )
{
server_cmd("dp_clientinfo %d", id);
server_exec();

static uClient;
uClient = get_pcvar_num(pcv_dp_r_id_provider);

if ( uClient == AUTH_STEAM )
return true;
}
else
{
static sAuthID[32];
get_user_authid(id, sAuthID, charsmax(sAuthID) );

if ( containi( sAuthID, "STEAM_0:" ) > -1 )
return true;
}

return false;
}
Odpowiedz

Pan Marian - zdjęcie Pan Marian 03.04.2013

#include <amxmodx>
#include <cstrike>
#include <colorchat>


#define PLUGIN "Only STEAM in CT"
#define VERSION "1.0"
#define AUTHOR "Raku"
#pragma semicolon 1


const AUTH_STEAM = 2;


new bool: dproto_installed;
new pcv_dp_r_id_provider;


public plugin_init()
{
	    register_plugin(PLUGIN, VERSION, AUTHOR);

	    if ( cvar_exists( "dp_version" ) )
	    {
			    dproto_installed = true;
			    pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
	    }
	    else
	    {
			    dproto_installed = false;
			    pcv_dp_r_id_provider = 0;
	    }

	    register_event("TeamInfo","team_assign","a");
}


public team_assign()
{
	    new id = read_data(1);
	    if(!is_user_steam(id) || !get_user_flags(id) & ADMIN_LEVEL_E)
	    {
			    new team[32];
			    read_data(2, team, charsmax(team));

			    if(equal(team,"CT"))
			    {

					    ColorChat(id, RED, "Tylko gracze steam moga byc staraznikiem!");
					    cs_set_user_team(id, CS_TEAM_T);

					    return PLUGIN_HANDLED;
			    }
	    }
	    return PLUGIN_HANDLED;
}


stock bool: is_user_steam(id)
{
	    if ( dproto_installed )
	    {
			    server_cmd("dp_clientinfo %d", id);
			    server_exec();

			    static uClient;
			    uClient = get_pcvar_num(pcv_dp_r_id_provider);

			    if ( uClient == AUTH_STEAM )
					    return true;
	    }
	    else
	    {
			    static sAuthID[32];
			    get_user_authid(id, sAuthID, charsmax(sAuthID) );

			    if ( containi( sAuthID, "STEAM_0:" ) > -1 )
					    return true;
	    }

	    return false;
}

Sprawdź
Odpowiedz

  • +
  • -
aQua. - zdjęcie aQua. 03.04.2013

A tam po tym if nie powinno występować or ?, że albo steam albo gracze z flagą ADMIN LEVEL E.
Tak mi się wydaje że to nie będzie działać, bo w publicu niżej jest że czyta od gracza czy ma STEAM_0: ,i tylko wtedy dopuszcza do CT ( mogę się mylić ).
Nie chcę wygrywać nie pewnej wersji na serwer, żeby nie okazało się że nawet gracze steam muszą mieć daną flagę żeby dojść do CT.
Odpowiedz

Pan Marian - zdjęcie Pan Marian 03.04.2013

|| oznacza znak alternatywy ( lub ), mianowicie -
 if(!is_user_steam(id) || !get_user_flags(id) & ADMIN_LEVEL_E)

Gdy mamy ten kod, sprawdzane jest czy gracz NIE MA STEAMA, lub gdy gracz NIE MA FLAGI ADMIN_LEVEL_E zostanie wykonana dalsza instrukcja, w tym przypadku jest to nasze wyświetlenie informacji o tym, że tylko gracze steam mogą być strażnikiem i dany index zostaje wrzucony do drużyny terrorystów.
Odpowiedz

  • +
  • -
aQua. - zdjęcie aQua. 03.04.2013

Przekonałeś mnie, wgrałem na serwer, gdy nie było ludzi, sprawdzałem sam, i niestety gdy wszedłem na non steamie, mając flagę "q", pokazywało mi "Tylko gracze steam moga byc staraznikiem", przy próbie przejścia zostałem zabity, i wracało mnie spowrotem do TT.
Jakieś inne pomysły?
Odpowiedz

  • +
  • -
sNH. - zdjęcie sNH. 04.04.2013

Sprawdź

#include <amxmodx>
#include <cstrike>
#include <colorchat>


#define PLUGIN "Only STEAM in CT"
#define VERSION "1.0"
#define AUTHOR "Raku"
#pragma semicolon 1


const AUTH_STEAM = 2;


new bool: dproto_installed;
new pcv_dp_r_id_provider;


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

if ( cvar_exists( "dp_version" ) )
{
dproto_installed = true;
pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
}
else
{
dproto_installed = false;
pcv_dp_r_id_provider = 0;
}

register_event("TeamInfo","team_assign","a");
}


public team_assign()
{
new id = read_data(1);
if(!is_user_steam(id))
{
new team[32];
read_data(2, team, charsmax(team));

if(equal(team,"CT") & ADMIN_LEVEL_E)
{

ColorChat(id, RED, "Tylko gracze steam moga byc staraznikiem!");
cs_set_user_team(id, CS_TEAM_T);

return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}


stock bool: is_user_steam(id)
{
if ( dproto_installed )
{
server_cmd("dp_clientinfo %d", id);
server_exec();

static uClient;
uClient = get_pcvar_num(pcv_dp_r_id_provider);

if ( uClient == AUTH_STEAM )
return true;
}
else
{
static sAuthID[32];
get_user_authid(id, sAuthID, charsmax(sAuthID) );

if ( containi( sAuthID, "STEAM_0:" ) > -1 )
return true;
}

return false;
}
Odpowiedz

  • +
  • -
Dragon1020 - zdjęcie Dragon1020 19.02.2014

Że tak zapytam nie powinno być tak że przy tej linijce:

if ( containi( sAuthID, "STEAM_0:" ) > -1 )

Powinno się też ustawić flag(id) czy coś ?

BO ta linijka jeśli dobrze rozumiem czyta że jeśli ktoś ma początek STEAM_0:(dalszy ciąg cyfr) to pozwala na dołączenie do CT a gdzie jest że jeśli gracz posiada flagę q (+dotychczasowe) to też pozwala na dołączenie do CT ??

 

Jeśli się mylę to sory zwracam honor

Odpowiedz