Raised This Month: $ Target: $400
 0% 

problema con codigo hns


  
 
 
Thread Tools Display Modes
Author Message
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 09-21-2012 , 13:03   problema con codigo hns
#1

hola, hace poco empeze a separarme por un tiempo del zp y provar cosas nuevas, ahora estoy con hns y tengo un problema , bueno lo que yo quiero hacer es tipo una ronda carnage pero con un lider y si lo matan mueren todos los de su team, bueno pero no me funciona se crashea el servidor

PHP Code:
new g_swat[33]
new 
g_terro[33]

public 
Ham_PlayerKilledvictimattackershouldgib)  

        if( !
is_user_connected(victim) || !is_user_connected(attacker) ) 
        return 
HAM_IGNORED

    if( 
get_user_team(victim) == get_user_team(attacker) ) 
                return 
HAM_IGNORED;
    
        if(
is_user_connected(attacker) || is_user_bot(attacker))
    {        
        if(
g_terro[victim]){
            for ( new 
<= get_maxplayers() ; i++)
                      {
                                  if(
cs_get_user_team(i) == CS_TEAM_T
                    
user_kill(i)
                      } 
        }
        if(
g_swat[victim]){
            for ( new 
<= get_maxplayers() ; i++)
                      {
                                  if(
cs_get_user_team(i) == CS_TEAM_CT)
                    
user_kill(i)
                      } 
        }
        }
    
        return 
HAM_IGNORED
}


public 
client_putinserver(plr)
{
    
g_swat[plr] = false
        g_terro
[plr] = false
    
    
return PLUGIN_CONTINUE;
}

public 
client_putinserver(plr)
{
    
g_swat[plr] = false
        g_terro
[plr] = false
    
    set_task
(1.0"VERHUD"plr+TASK_HNSHUD__"b")
    
    return 
PLUGIN_CONTINUE;
}

public 
client_disconnect(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
    
    
return PLUGIN_CONTINUE;
}

public 
start_lider_round(id)
{   
    
round false
    liderround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0)
    
    new 
players[32], count 
     
    get_players
(playerscount"a"
    
    if(
liderround){
        if(
count
        { 
            new 
iPlayer players[random(count)] 
         
            new 
Name[32
         
            if(
cs_get_user_team(iPlayer) == CS_TEAM_CT
            { 
                
get_user_name(iPlayerNamecharsmax(Name))
                
g_swat[iPlayer] = true
                set_hudmessage
(23821218, -1.00.206.0200.0)
                
show_hudmessage(id"Modo LIDER ON^n Tu Lider: %s"Name)       
            }
        
            if(
cs_get_user_team(iPlayer) == CS_TEAM_T
            { 
                
get_user_name(iPlayerNamecharsmax(Name))
                
g_terro[iPlayer] = true
                set_hudmessage
(23821218, -1.00.206.0200.0)
                
show_hudmessage(id"Modo LIDER ON^n Tu Lider: %s"Name)       
            } 
        }
    }
    
    for( new 
1<= g_maxplayersi++ )
        {
                if( 
is_user_connected) )
                {            
                    
fm_strip_user_weapons);        
                    
fm_give_itemi"weapon_knife" );
                    
cs_set_weapon_ammo(give_item(i"weapon_m4a1"), 30)
                    
cs_set_user_bpammoiCSW_M4A190 )
                }
        }

__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"

Last edited by Roccoxx; 09-21-2012 at 13:07.
Roccoxx is offline
Send a message via MSN to Roccoxx
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 09-21-2012 , 15:41   Re: problema con codigo hns
#2

PHP Code:
new g_swat[33]
new 
g_terro[33]

public 
Ham_PlayerKilled(victimattackershouldgib)
{
    if (!
is_user_connected(attacker) || victim == attacker)
        return 
HAM_IGNORED
    
    
static PlayersT[32], PlayersCT[32], iNumTiNumCT;
    
    
get_players(PlayersTiNumT"ce""TERRORIST")
    
get_players(PlayersCTiNumCT"ce""CT")
    
    if (
is_user_connected(attacker) || is_user_bot(attacker))
    {
        if (
g_terro[victim])
        {
            if (
cs_get_user_team(victim) == CS_TEAM_T)
                
user_kill(iNumT)
        }
        else if (
g_swat[victim])
        {
            if (
cs_get_user_team(victim) == CS_TEAM_CT)
                
user_kill(iNumCT)
        }
    }
    return 
HAM_IGNORED
}


public 
client_putinserver(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
}

public 
client_putinserver(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
    
    set_task
(1.0"VERHUD"plr+TASK_HNSHUD__"b")
}

public 
client_disconnect(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
}

public 
start_lider_round(id)
{   
    
round false
    liderround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0)
    
    new 
players[32], count 
    
    get_players
(playerscount"a")
    
    if (
liderround && count)
    {
        new 
iPlayer players[random(count)]
        
        new 
Name[32]
        
get_user_name(iPlayerNamecharsmax(Name))
        
        if (
cs_get_user_team(iPlayer) == CS_TEAM_CT
            
g_swat[iPlayer] = true
        
        
else if (cs_get_user_team(iPlayer) == CS_TEAM_T)
            
g_terro[iPlayer] = true
        
        set_hudmessage
(23821218, -1.00.206.0200.0)
        
show_hudmessage(id"Modo LIDER ON^n Tu Lider: %s"Name)
    }
    
    for (new 
1<= g_maxplayersi++)
    {
        if (!
is_user_connected(i) || !is_user_alive(i)) continue
        
        
strip_user_weapons(i)
        
give_item(i"weapon_knife")
        
cs_set_weapon_ammo(give_item(i"weapon_m4a1"), 30)
        
cs_set_user_bpammo(iCSW_M4A190)
    }

Por ahi se me escapo algo, fijate xD
__________________
Quote:
Originally Posted by fearAR View Post
Claro esta que no tengo idea de como verificar los diferentes cortes de ángulo.
http://forums.alliedmods.net/showthread.php?t=196349
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
matrix123
Veteran Member
Join Date: Feb 2011
Old 09-21-2012 , 16:26   Re: problema con codigo hns
#3

Quote:
Originally Posted by Swaycher View Post
PHP Code:
new g_swat[33]
new 
g_terro[33]

public 
Ham_PlayerKilled(victimattackershouldgib)
{
    if (!
is_user_connected(attacker) || victim == attacker)
        return 
HAM_IGNORED
    
    
static PlayersT[32], PlayersCT[32], iNumTiNumCT;
    
    
get_players(PlayersTiNumT"ce""TERRORIST")
    
get_players(PlayersCTiNumCT"ce""CT")
    
    if (
is_user_connected(attacker) || is_user_bot(attacker))
    {
        if (
g_terro[victim])
        {
            if (
cs_get_user_team(victim) == CS_TEAM_T)
                
user_kill(iNumT)
        }
        else if (
g_swat[victim])
        {
            if (
cs_get_user_team(victim) == CS_TEAM_CT)
                
user_kill(iNumCT)
        }
    }
    return 
HAM_IGNORED
}


public 
client_putinserver(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
}

public 
client_putinserver(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
    
    set_task
(1.0"VERHUD"plr+TASK_HNSHUD__"b")
}

public 
client_disconnect(plr)
{
    
g_swat[plr] = false
    g_terro
[plr] = false
}

public 
start_lider_round(id)
{   
    
round false
    liderround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0)
    
    new 
players[32], count 
    
    get_players
(playerscount"a")
    
    if (
liderround && count)
    {
        new 
iPlayer players[random(count)]
        
        new 
Name[32]
        
get_user_name(iPlayerNamecharsmax(Name))
        
        if (
cs_get_user_team(iPlayer) == CS_TEAM_CT
            
g_swat[iPlayer] = true
        
        
else if (cs_get_user_team(iPlayer) == CS_TEAM_T)
            
g_terro[iPlayer] = true
        
        set_hudmessage
(23821218, -1.00.206.0200.0)
        
show_hudmessage(id"Modo LIDER ON^n Tu Lider: %s"Name)
    }
    
    for (new 
1<= g_maxplayersi++)
    {
        if (!
is_user_connected(i) || !is_user_alive(i)) continue
        
        
strip_user_weapons(i)
        
give_item(i"weapon_knife")
        
cs_set_weapon_ammo(give_item(i"weapon_m4a1"), 30)
        
cs_set_user_bpammo(iCSW_M4A190)
    }

Por ahi se me escapo algo, fijate xD

Viendo asi nomas pusiste 2 veces client_putinserver :S ademas creo yo matarias el numero y tenes que matar con ID no con el NUMERO de players :S pone get_user_userid(PlayersT) etc creo que funcionaria :B
__________________
matrix123 is offline
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 09-21-2012 , 16:47   Re: problema con codigo hns
#4

No vi eso de las 2 funciones putinserver, yo cambie el code nomas no vi eso, fijate que lo copie de rocco y el lo puso asi.

vos decias que haga:

PHP Code:
user_kill(get_user_userid(PlayersT)) 
?
__________________
Quote:
Originally Posted by fearAR View Post
Claro esta que no tengo idea de como verificar los diferentes cortes de ángulo.
http://forums.alliedmods.net/showthread.php?t=196349

Last edited by Swaycher; 09-21-2012 at 16:55.
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
Old 09-21-2012, 16:54
Swaycher
This message has been deleted by Swaycher.
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 09-21-2012 , 18:22   Re: problema con codigo hns
#5

Quote:
Originally Posted by Swaycher View Post
No vi eso de las 2 funciones putinserver, yo cambie el code nomas no vi eso, fijate que lo copie de rocco y el lo puso asi.

vos decias que haga:

PHP Code:
user_kill(get_user_userid(PlayersT)) 
?
What - The - Fuck - ?

Sabes al menos que hace la funcion .. ?

Code:
get_user_userid( index )
EDIT:

PHP Code:
#include <amxmodx>
#include <cstrike>

new g_guard[33],g_maxplayers

public plugin_init()
{
    
register_plugin("Guard","1.0","Manu")
    
    
register_event("DeathMsg","event_death","a")
    
    
g_maxplayers get_maxplayers()
}

public 
event_death()
{
    static 
iVictim,CsTeams:iTeam,id;
    
    
iVictim   read_data(2);
    
iTeam     cs_get_user_teamiVictim );
    
    if( !
g_guard[iVictim] )
        return 
PLUGIN_CONTINUE;
    
    for( 
id 1;id <= g_maxplayers;id++ )
    {
        if( !
is_user_connected(id) || cs_get_user_team(id) != iTeam )
            continue
        
        
user_silentkill(id);
    }
    
    return 
PLUGIN_CONTINUE

EDIT 2: Tienen 8mil errores en sus codes ... El principal de todo es que checkean el attacker y el victim para despues solo usar el victim que aparte ya esta checkeado ...

Tambien checkean los teams cuando estan usando 2 variables distintas para cada team..

Es como decir que yo se que soy CT, pero checkeo que soy CT para boludear... o_o
__________________

Last edited by Manu127; 09-21-2012 at 18:44.
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
Old 09-21-2012, 21:42
Roccoxx
This message has been deleted by Roccoxx.
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 09-22-2012 , 23:28   Re: problema con codigo hns
#6

no logro hacer el HUD :/ , alto fail mi code puro copy-paste, no se ue me pasa ultimamente en estos ultimos dias no logro aplicar lo aprendido como se debe, y no puedo ni razonar

PHP Code:
public start_pistol_round(id)
{
    
    
round false
    pistolround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0)
     
    for( new 
1<= g_maxplayersi++ )
        {
                if( 
is_user_connected) )
                {            
                    
fm_strip_user_weapons);        
                    
fm_give_itemi"weapon_knife" );
                    
cs_set_weapon_ammo(give_item(i"weapon_deagle"), 7)
                    
cs_set_user_bpammoiCSW_DEAGLE200 )
                }
        }
    
set_hudmessage(9399213, -1.0, -0.806.060.0)
    
show_hudmessage(id"No campear, Ronda Only Deagle")
}

public 
start_lider_round(id)
{   
    
round false
    liderround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0
      
    if(
liderround){
           static 
iPlayersnum
           iPlayersnum 
fnGetAlive()
    
           
id fnGetRandomAlive(random_num(1iPlayersnum))
    
           static 
forward_id,  Name[32]
           
forward_id id
                      
           
if(cs_get_user_team(id) == CS_TEAM_CT
                { 
                    
humanme(id10)
                    
get_user_name(forward_idNamesizeof Name 1)
                    for(new 
=  1<= g_maxplayersi++){
                        
set_hudmessage(23821218, -1.00.206.0200.0)
                        
show_hudmessage(i"Ronda LIDER ON^n Tu Lider %s"Name[forward_id])
          }
                }
        
           
id fnGetRandomAlive(random_num(1iPlayersnum))
           if(
cs_get_user_team(id) == CS_TEAM_T
                { 
                    
humanme(id01)
                    
get_user_name(forward_idNamesizeof Name 1)
                    for(new 
=  1<= g_maxplayersi++){
                        
set_hudmessage(23821218, -1.00.206.0200.0)
                        
show_hudmessage(i"Modo LIDER ON^n Tu Lider %s"Name[forward_id])
                   }
                } 
    }
    
    for( new 
1<= g_maxplayersi++ )
        {
                if( 
is_user_connected) )
                {            
                    
fm_strip_user_weapons);        
                    
fm_give_itemi"weapon_knife" );
                    
cs_set_weapon_ammo(give_item(i"weapon_m4a1"), 30)
                    
cs_set_user_bpammoiCSW_M4A190 )
                }
        }
}

fnGetRandomAlive(n){
    static 
iAliveid
    iAlive 
0
    
    
for (id 1id <= g_maxplayersid++){
        if (
g_bAlive[id])
            
iAlive++    
        if (
iAlive == n)
            return 
id;
    }
    return -
1;
}

fnGetAlive(){
    static 
iAliveid
    iAlive 
0
    
    
for (id 1id <= g_maxplayersid++){
        if (
g_bAlive[id])
            
iAlive++
    }
    return 
iAlive;
}

humanme(idsurvivorsniper)
{    
    
// Reset some vars
    
g_swat[id] = false
    g_terro
[id] = false
    
    
// Set human attributes based on the mode
    
if(survivor)
    {        
// Survivor
        
g_swat[id] = true
    
}
    
    if(
sniper){
        
g_terro[id] = true
    
}            

__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"
Roccoxx is offline
Send a message via MSN to Roccoxx
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 09-23-2012 , 13:10   Re: problema con codigo hns
#7

Si almenos entendiera lo que queres hacer... xD

Esperame que edito.
__________________
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 09-23-2012 , 13:46   Re: problema con codigo hns
#8

Quote:
Originally Posted by Manu127 View Post
Si almenos entendiera lo que queres hacer... xD

Esperame que edito.
EDIT: reemplaze mi code asco anterior por este

yo lo ue uiero hacer es como un modo estilo zp, pero para hns, ue selecciona un jugador al azar de cada team y los hace lideres del grupo y uno de ellos muere todos sus compañeros tambien aca tengo el code pero al mandar la ronda el sv se crashea y es algo del public start_lider_round:

PHP Code:
public start_lider_round(id)
{   
    
round false
    liderround 
true
    
    
new Pointers
    Pointers 
get_cvar_pointer("amx_ltm")
    
set_pcvar_num(Pointers0
      
    if(
liderround){
           new 
plr1plr2
           
new plr3 plr1 plr2
           
static Name[32]
           while(!
is_user_connected(plr1)){
               
plr1 random_num(1g_maxplayers)
               if(
cs_get_user_team(plr1) == CS_TEAM_CTg_swat[plr1] = true
        
        
if(cs_get_user_team(plr1) == CS_TEAM_Tg_terro[plr1] = true           
           
}
           while(
plr2 == plr1 || !is_user_connected(plr2)){
        
plr2 random_num(1g_maxplayers)           
        if(
cs_get_user_team(plr2) == CS_TEAM_CTg_swat[plr2] = true
           
        
if(cs_get_user_team(plr2) == CS_TEAM_Tg_terro[plr2] = true
           
}
           
           if(
cs_get_user_team(id) == CS_TEAM_CT
                { 
                    
get_user_name(g_swat[plr3], Name31)
                    for(new 
=  1<= g_maxplayersi++){
                        
set_hudmessage(23821218, -1.00.206.0200.0)
                        
show_hudmessage(i"Ronda LIDER ON^n Tu Lider %s"Name[g_swat[plr3]])
          }
                }
    
           if(
cs_get_user_team(id) == CS_TEAM_T
                { 
                    
get_user_name(g_terro[plr3], Name31)
                    for(new 
=  1<= g_maxplayersi++){
                        
set_hudmessage(23821218, -1.00.206.0200.0)
                        
show_hudmessage(i"Modo LIDER ON^n Tu Lider %s"Name[g_terro[plr3]])
                   }
                } 
    }
    
    for( new 
1<= g_maxplayersi++ )
        {
                if( 
is_user_connected) )
                {            
                    
fm_strip_user_weapons);        
                    
fm_give_itemi"weapon_knife" );
                    
cs_set_weapon_ammo(give_item(i"weapon_m4a1"), 30)
                    
cs_set_user_bpammoiCSW_M4A190 )
                }
        }
}

public 
eventDeathMsg()
{    
    static 
iVictim,CsTeams:iTeam,id;
    
        
iVictim   read_data(2);
        
iTeam     cs_get_user_teamiVictim );
    
        if( !
g_swat[iVictim] || !g_terro[iVictim])
                return 
PLUGIN_CONTINUE;
    
        for( 
id 1;id <= g_maxplayers;id++ )
        {
                if( !
is_user_connected(id) || cs_get_user_team(id) != iTeam )
                    continue
        
                
user_silentkill(id);
        }
    
    return 
PLUGIN_CONTINUE;

__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"

Last edited by Roccoxx; 09-23-2012 at 13:47.
Roccoxx is offline
Send a message via MSN to Roccoxx
Manu127
Veteran Member
Join Date: Jul 2010
Location: Argentina
Old 09-23-2012 , 13:59   Re: problema con codigo hns
#9

Mira esto

Hace cuanto scripteas? Todavia no me entra que seas senior member...

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>

enum _:TEAMS
{
    
TERRORIST 0,
    
ANTITERRORIST
}

enum
{
    
PISTOL 0,
    
LIDER,
    
NORMAL
}

new 
g_roundtype,g_maxplayers,g_cvar,g_msg,g_swat[33],g_terro[33];

public 
plugin_init()
{
    
register_plugin"RoundType","1.0","Manu" );
    
    
register_event"HLTV","round_start","a","1=0","2=0" );
    
    
g_maxplayers get_maxplayers();
    
    
g_msg CreateHudSyncObj();
    
    
g_cvar get_cvar_pointer("amx_ltm");
}

public 
round_start()
{
    
arrayset(g_swat,0,33);
    
arrayset(g_terro,0,33);
    
    
start_modrandom_num(0,2) );
}

public 
start_mod( const type 
{
    static 
id,name[TEAMS][32],CsTeams:team;
    
    
set_pcvar_num(g_cvar0)
    
    switch( 
type )
    {
        case 
PISTOL:
        {
            
g_roundtype PISTOL
            
            
for( id 1;id <= g_maxplayers;id++ ) 
            { 
                if( !
is_user_connectedid ) )
                    continue
                
                
strip_user_weaponsid )
                
                
give_itemid"weapon_deagle" )
                
                
cs_set_user_bpammoid,CSW_DEAGLE,200 )
            }
            
            
set_hudmessage(9399213, -1.0, -0.806.060.0
            
ShowSyncHudMsg(0,g_msg,"No campear, Ronda Only Deagle")
        }
        case 
LIDER:
        {
            if( !(
id get_playerANTITERRORIST ))  )  
                return 
0;
            
            
g_swat[id] = true
            
            get_user_name
id,name[ANTITERRORIST],31 )
            
            if( !(
id get_playerTERRORIST ))  )  
                return 
0;
            
            
g_terro[id] = true
            
            get_user_name
id,name[TERRORIST],31 )
            
            for( 
id 1;id <= g_maxplayers;id++ ) 
            {
                if( !
is_user_connectedid ) )
                    continue
                
                
team cs_get_user_team(id)
                
                if( !( (
team == CS_TEAM_CT) || (team == CS_TEAM_T) ) )
                    continue
                
                
strip_user_weaponsid )
                
                
give_itemid,"weapon_m4a1" )
                
                
cs_set_user_bpammoid,CSW_M4A1,90 )
                
                
set_hudmessage(9399213, -1.0, -0.806.060.0
                
ShowSyncHudMsg(id,g_msg,"Modo LIDER ON^n Tu Lider %s",name[(team == CS_TEAM_T) ? TERRORIST:ANTITERRORIST])
            }
        }
        default:
        {
            
set_pcvar_num(g_cvar1)
            
            
g_roundtype NORMAL
        
}
    }
    
    return 
1;
}

stock get_player( const type )
{
    static 
id,CsTeams:team,Array:players;
    
    
players ArrayCreate(1,1)
    
    for( 
id 1;id <= g_maxplayers;id++ )
    {
        if( !
is_user_connected(id) )
            continue
        
        
team cs_get_user_team(id)
        
        if( ( (
type == TERRORIST) && (team == CS_TEAM_T) ) || ( (type == ANTITERRORIST) && (team == CS_TEAM_CT) ) )
            
ArrayPushCellplayers,id )
    }
    
    if( !
ArraySize(players) )
        return 
0;
    
    return 
ArrayGetCellplayers,random(ArraySize(players)) );

__________________

Last edited by Manu127; 09-23-2012 at 14:00.
Manu127 is offline
Send a message via MSN to Manu127 Send a message via Skype™ to Manu127
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 09-23-2012 , 14:04   Re: problema con codigo hns
#10

sumando todo 2 meses, porue empezaba y dejaba recien hasta hace una semana empeze a motivarme

edit : hermoso tu code re optimized , vos hace cuanto codeas?

PD: no me muestra el hud ni me da las armas, pero lo bueno es ke no se crashea e.e
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"

Last edited by Roccoxx; 09-23-2012 at 14:28.
Roccoxx is offline
Send a message via MSN to Roccoxx
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:11.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode