Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- #include < amxmisc >
- #include < hamsandwich >
- #include < fakemeta >
- #include < adv_vault >
- /* ====== START EDIT SECTION ====== */
- // Aqui cambia "32" por la cantidad maxima de jugadores que pueden entrar a tu server
- #define MAXPLAYERS 32
- #define CLANNAME_LENGHT 20
- #define CLAN_MAXMEMBERS 5
- #define CLAN_MINMEMBERS 2
- #define MENU_TITTLE_LENGHT 128
- #define PASSWORD_LENGHT 50
- new const MENU_PREFIX[ ] = "\r[ \yCS:GO Outstanding \dCLAN \ySYSTEM \r]\w";
- new const CHAT_PREFIX[ ] = "!g[ CS:GO Outstanding CLAN SYSTEM ]!n";
- /* ==== END EDIT SECTION ==== */
- #define MP MAXPLAYERS+1
- #define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
- #define flag_set(%1,%2) (%1 |= (1 << (%2 & 31)))
- #define flag_unset(%1,%2) (%1 &= ~(1 << (%2 & 31)))
- #define TASK_HUD 1000
- #define ID_HUD ( taskid - TASK_HUD )
- enum
- {
- C_MEMBERSHIP, C_CLANNAME, C_DATE, C_PASS, C_PNAME, C_KILLS, C_DEATHS, C_HS_KILLS, C_HS_DEATHS,
- C_KNIFE_KILLS, C_KNIFE_DEATHS, C_SUICIDES, C_SPAWNS, C_CLAN_CHAT,
- C_MAX
- }
- enum { WITHOUT_CLAN = 0, CLAN_MEMBER, CLAN_BOSS, CLAN_OWNER, MAX_MEMBER_RANGES }
- enum { LOAD= 0, SAVE }
- enum { NOT_REGISTERED = 0, REGISTERED, LOGGUED, MAX_STATUS }
- enum _:DATA_RANK { KILLS, DEATHS, HS_KILLS, HS_DEATHS, KNIFE_KILLS, KNIFE_DEATHS, SUICIDES, SPAWNS }
- enum _:BITS { CONNECTED, ALIVE, CAN_CHANGE_PW }
- enum _:MSGS { MSG_VGUI, MSG_SHOWMENU, MSG_SAYTEXT, MSG_TEAMINFO }
- new const P_NAME[ ] = "CLAN SYSTEM";
- new const P_VERSION[ ] = "1.1b";
- new const P_AUTOR[ ] = "kikizon";
- new kBits[BITS], kMsg[MSGS];
- new kClanMembership[ MP ], kRange[ MP ], kActivatedClanChat[ MP ];
- new kInvited[ MP ], kClanOwner[ MP ], kDataRank[ MP ][ DATA_RANK ];
- new kClanName[ MP ][ CLANNAME_LENGHT ], kClanNameConfirmated[ MP ];
- new kPlayerName[ MP ][ 32 ], kPname[ MP ][ 32 ];
- new vault, kFields[ C_MAX ], kPassword[ MP ][ PASSWORD_LENGHT ], kPassword2[ MP ][ PASSWORD_LENGHT ], kDate[ MP ][ 32 ], kStatus[ MP ];
- new hudSync;
- new const Status[ MAX_STATUS ][ ] = { "Neinregistrat", "Inregistrat", "Logat" };
- new const MemberRange[ MAX_MEMBER_RANGES ][ ] = { "Fara Clan", "Membru", "Conducator", "Fondator" };
- /* ================ */
- public plugin_init()
- {
- register_plugin( P_NAME, P_VERSION, P_AUTOR );
- register_event("DeathMsg", "ev_DeathMsg", "a");
- RegisterHam(Ham_Killed, "player", "ham_PlayerKilledPost", true );
- RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawnPost", true );
- register_forward( FM_ClientUserInfoChanged, "fm_ClientInfoChanged" );
- register_clcmd( "say", "Block_Say" );
- register_clcmd( "say_team", "Block_TeamSay" );
- register_clcmd( "say /clan", "cmd_CLAN" );
- register_clcmd( "JOIN_CLAN_NAME", "JoinClanName" );
- register_clcmd( "JOIN_PASSWORD", "JoinPassword" );
- kMsg[MSG_VGUI] = get_user_msgid("VGUIMenu");
- kMsg[MSG_SHOWMENU] = get_user_msgid("ShowMenu");
- kMsg[MSG_SAYTEXT] = get_user_msgid("SayText");
- kMsg[MSG_TEAMINFO] = get_user_msgid("TeamInfo");
- register_message(kMsg[MSG_VGUI], "message_VGUImenu");
- register_message(kMsg[MSG_SHOWMENU], "message_VGUImenu");
- hudSync = CreateHudSyncObj();
- vault = adv_vault_open( "CLAN_SYSTEM", true );
- kFields[ C_MEMBERSHIP ] = adv_vault_register_field( vault, "MEMBRESIA");
- kFields[ C_CLANNAME ] = adv_vault_register_field( vault, "NOMBRE DE CLAN", DATATYPE_STRING, CLANNAME_LENGHT-1 );
- kFields[ C_DATE ] = adv_vault_register_field( vault, "FECHA", DATATYPE_STRING, 32 );
- kFields[ C_PASS ] = adv_vault_register_field( vault, "PASSWORD", DATATYPE_STRING, PASSWORD_LENGHT-1 );
- kFields[ C_PNAME ] = adv_vault_register_field( vault, "NOMBRE", DATATYPE_STRING, 31 );
- kFields[ C_KILLS ] = adv_vault_register_field( vault, "KILLS" );
- kFields[ C_DEATHS ] = adv_vault_register_field( vault, "DEATHS" );
- kFields[ C_HS_KILLS ] = adv_vault_register_field( vault, "HS KILLS" );
- kFields[ C_HS_DEATHS ] = adv_vault_register_field( vault, "HS DEATHS" );
- kFields[ C_KNIFE_KILLS ] = adv_vault_register_field( vault, "KNIFE KILLS" );
- kFields[ C_KNIFE_DEATHS ] = adv_vault_register_field( vault, "KNIFE DEATHS" );
- kFields[ C_SUICIDES ] = adv_vault_register_field( vault, "SUICIDES" );
- kFields[ C_SPAWNS ] = adv_vault_register_field( vault, "RESPAWNS" );
- kFields[ C_CLAN_CHAT ] = adv_vault_register_field( vault, "CLANCHAT" );
- adv_vault_init( vault );
- }
- public client_putinserver( index )
- {
- flag_set(kBits[CONNECTED], index);
- get_user_name( index, kPlayerName[ index ], 31 );
- get_time( "%c", kDate[ index ], 31);
- kClanMembership[ index ] = WITHOUT_CLAN;
- kClanName[ index ] = "^0";
- kPassword[ index ] = "^0";
- kClanNameConfirmated[ index ] = false;
- kRange[ index ] = 0;
- kActivatedClanChat[ index ] = false;
- DataManagement( index, LOAD );
- }
- public client_disconnect( index )
- {
- remove_task( index+TASK_HUD );
- DataManagement( index, SAVE );
- flag_unset(kBits[CONNECTED], index);
- }
- public Block_Say(index)
- {
- static said[191];
- read_args(said, charsmax(said));
- szRemove_Quotes(said, said);
- replace_all(said, charsmax(said), "%", "");
- replace_all(said, charsmax(said), "#", "");
- if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
- static color[11], prefix[111], range[64];
- get_user_team(index, color, charsmax(color));
- formatex(range, charsmax(range), "^x03(^x04 %s ^x03)", kClanName[ index ][ 0 ] ? kClanName[ index ] : "Fara Clan" );
- formatex(prefix, charsmax(prefix), "%s%s^x03 %s", flag_get(kBits[ALIVE],index)?"^x01":"^x01*Mort* ", range, kPlayerName[index]);
- if (is_user_admin(index)) format(said, charsmax(said), "^x04%s", said);
- format(said, charsmax(said), "%s^x01 : %s", prefix, said);
- static i, team[11];
- for (i = 1; i <= MAXPLAYERS; ++i)
- {
- if (!flag_get(kBits[CONNECTED],i)) continue;
- if (is_user_admin(i) || flag_get(kBits[ALIVE],index) && flag_get(kBits[ALIVE],i) || !flag_get(kBits[ALIVE],index) && !flag_get(kBits[ALIVE],i))
- {
- get_user_team(i, team, charsmax(team));
- changeTeamInfo(i, color);
- writeMessage(i, said);
- changeTeamInfo(i, team);
- }
- }
- return PLUGIN_HANDLED_MAIN;
- }
- public Block_TeamSay(index)
- {
- static said[191];
- read_args(said, 190);
- szRemove_Quotes( said, said );
- replace_all(said, 190, "%", "");
- replace_all(said, 190, "#", "");
- if(kActivatedClanChat[ index ] )
- {
- if(!ValidMessage(said, 1) || kClanMembership[ index ] == WITHOUT_CLAN)
- {
- ColorChat(0, "!gMesajul dvs. este inevalid sau nu sunteti intr-un clan");
- return PLUGIN_HANDLED;
- }
- static i, team[11], color[11], range[128], prefix[111];
- get_user_team(index, color, charsmax(color));
- formatex(range, charsmax(range), "^x03(^x01 PRIVATE CHAT:^x04 %s ^x03)", kClanName[ index ]);
- formatex(prefix, charsmax(prefix), "%s%s^x03 %s", flag_get(kBits[ALIVE],index)?"^x01":"^x01*Mort* ", range, kPlayerName[index]);
- if (kClanMembership[ index ] == CLAN_OWNER || kClanMembership[ index ] == CLAN_BOSS) format(said, charsmax(said), "^x04%s", said);
- format(said, charsmax(said), "%s^x01 : %s", prefix, said);
- for (i = 1; i <= MAXPLAYERS; ++i)
- {
- if (!flag_get(kBits[CONNECTED],i)) continue;
- if ( equal(kClanName[ index ], kClanName[ i ]) )
- {
- get_user_team(i, team, charsmax(team));
- changeTeamInfo(i, color);
- writeMessage(i, said);
- changeTeamInfo(i, team);
- }
- }
- }
- else
- {
- if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
- static playerTeam, playerTeamName[19];
- playerTeam = get_user_team(index);
- switch (playerTeam)
- {
- case 1: copy (playerTeamName, 6, "^x03 * CT *");
- case 2: copy (playerTeamName, 8, "^x03 * TT *");
- default: copy (playerTeamName, 11, "* SPEC *");
- }
- static color[11], prefix[111], range[128];
- get_user_team(index, color, charsmax(color));
- formatex(range, charsmax(range), "^x03(^x04 %s ^x03)", kClanName[ index ][ 0 ] ? kClanName[ index ] : "Fara Clan" );
- formatex(prefix, charsmax(prefix), "%s%s %s^x03 %s", flag_get(kBits[ALIVE],index)?"^x01":"^x01*Mort* ", playerTeamName, range, kPlayerName[index]);
- if (is_user_admin(index)) format(said, charsmax(said), "^x04%s", said);
- format(said, charsmax(said), "%s^x01 : %s", prefix, said);
- static i, team[11];
- for (i = 1; i <= MAXPLAYERS; ++i)
- {
- if (!flag_get(kBits[CONNECTED],i)) continue;
- if (get_user_team(i) == playerTeam)
- {
- if (flag_get(kBits[ALIVE],index) && flag_get(kBits[ALIVE],i) || !flag_get(kBits[ALIVE],index) && !flag_get(kBits[ALIVE],i))
- {
- get_user_team(i, team, charsmax(team));
- changeTeamInfo(i, color);
- writeMessage(i, said);
- changeTeamInfo(i, team);
- }
- }
- }
- }
- return PLUGIN_HANDLED_MAIN;
- }
- public ham_PlayerKilledPost( victim, attacker, shouldgib )
- {
- if( !is_user_connected( attacker ) || victim == attacker || !attacker )
- return;
- if(get_user_weapon( attacker ) == CSW_KNIFE)
- {
- ++kDataRank[ attacker ][ KNIFE_KILLS ];
- ++kDataRank[ victim ][ KNIFE_DEATHS ];
- }
- ++kDataRank[ attacker ][ KILLS ];
- ++kDataRank[ victim ][ DEATHS ];
- flag_unset(kBits[ALIVE],victim);
- }
- public ham_PlayerSpawnPost( index )
- {
- flag_set(kBits[ALIVE],index);
- if( !flag_get(kBits[ALIVE], index)) return;
- ++kDataRank[ index ][ SPAWNS ];
- }
- public ev_DeathMsg()
- {
- static victim, attacker, headshot;
- attacker = read_data(1);
- victim = read_data(2);
- headshot = read_data(3);
- if( !attacker || victim == attacker )
- {
- ++kDataRank[ victim ][ SUICIDES ];
- return;
- }
- if( headshot )
- {
- ++kDataRank[ attacker ][ HS_KILLS ];
- ++kDataRank[ victim ][ HS_DEATHS ];
- }
- }
- /* ================ */
- public cmd_CLAN( index )
- {
- if( kClanMembership[ index ] == WITHOUT_CLAN )
- {
- ShowMenuCreateClan( index );
- return PLUGIN_HANDLED;
- }
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- public JoinClanName( index )
- {
- read_args(kClanName[ index ], CLANNAME_LENGHT-1);
- szRemove_Quotes(kClanName[ index ], kClanName[ index ]);
- trim(kClanName[ index ]);
- if( kClanNameConfirmated[ index ])
- {
- ColorChat(0, "!gAi confirmat deja numele clanului");
- ShowMenuCreateClan( index );
- return;
- }
- if( !kClanName[ index ][ 0 ])
- {
- ColorChat(0, "!g INTRODUCETI NUMELE CLANULUI ");
- client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"");
- return;
- }
- static xd; xd = get_membersnum( index );
- if( xd )
- {
- ColorChat(0, "!gAcest clan este folosit");
- kClanName[ index ] = "^0";
- ShowMenuCreateClan( index )
- return;
- }
- ShowMenuConfirmateClanName( index );
- }
- public JoinPassword( index )
- {
- read_args(kPassword[ index ], PASSWORD_LENGHT-1);
- szRemove_Quotes(kPassword[ index ], kPassword[ index ]);
- trim(kPassword[ index ]);
- if( !kPassword[ index ][ 0 ] || containi( kPassword[ index ], " ") != -1 )
- {
- ColorChat(0, "!gEroare parola" );
- client_cmd( index, "messagemode ^"JOIN_PASSWORD^"");
- return;
- }
- switch(kStatus[ index ])
- {
- case NOT_REGISTERED:
- {
- ColorChat(0, "!gConfirmati parola pentru a continua");
- copy(kPassword2[ index ], PASSWORD_LENGHT-1, kPassword[ index ]);
- ShowMenuConfirmatePw( index );
- }
- case REGISTERED:
- {
- new buffer[PASSWORD_LENGHT];
- adv_vault_get_prepare( vault, _, kPassword[ index ]);
- adv_vault_get_field( vault, kFields[ C_PASS ], buffer, charsmax(buffer));
- if(! equal(buffer, kPassword[ index ]))
- {
- ShowLogMenu( index );
- ColorChat(0, "!gParola incorecta" );
- return;
- }
- ColorChat(0, "!gTe-ai conectat la contul tau");
- ForceJoinTeam( index );
- }
- case LOGGUED:
- {
- if(flag_get(kBits[CAN_CHANGE_PW], index))
- {
- ColorChat(0, "!gV-ati schimbat deja contorul pe aceasta harta");
- return;
- }
- ColorChat(0, "!gConfirmati-va parola pentru a o schimba ..." );
- copy(kPassword2[ index ], PASSWORD_LENGHT-1, kPassword[ index ]);
- ShowMenuConfirmatePw( index );
- }
- }
- }
- /*============================
- MENUS
- ============================*/
- ShowMenuCreateClan( index )
- {
- static menu, tittle[MENU_TITTLE_LENGHT], members; members = get_membersnum( index );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s CREAZA CLAN", MENU_PREFIX );
- menu = menu_create( tittle, "menu_create_hand" );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "Numele Clan: \d%s", kClanName[ index ] );
- menu_additem( menu, (!kClanName[ index ][ 0 ])?"Introduceti numele clanului":tittle, "1" );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "Adaugati membrii ... \d( \r%d \y/ \r%d \d)", members, CLAN_MAXMEMBERS);
- menu_additem( menu, (!kClanName[ index ][ 0 ])?"\dAdaugati membri":tittle, "2" );
- menu_additem( menu, (members >= CLAN_MINMEMBERS )?"CREARE CLAN":"\dCREARE CLAN", "3" );
- menu_display( index, menu );
- }
- public menu_create_hand( index, menu, item )
- {
- switch( item )
- {
- case MENU_EXIT: { menu_destroy( menu ); return PLUGIN_HANDLED; }
- case 0:
- {
- if(!kClanNameConfirmated[ index ] )
- {
- ColorChat(0, "!g INTRODUCETI NUMELE CLANULUI" );
- client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"" );
- return PLUGIN_HANDLED;
- }
- ColorChat(0, "!gAti confirmat deja numele clanului" );
- ShowMenuCreateClan( index );
- }
- case 1:
- {
- if(!kClanName[ index ][ 0 ])
- {
- ColorChat(0, "!gTrebuie sa creati numele clanului inainte");
- ShowMenuCreateClan( index );
- return PLUGIN_HANDLED;
- }
- ShowInviteMenu( index );
- }
- case 2:
- {
- static members; members = get_membersnum( index );
- if(members >= CLAN_MINMEMBERS )
- CreateClan( index );
- else
- ColorChat(0, "!gAi nevoie de cel putin %d membrii pentru a crea clan", CLAN_MINMEMBERS );
- }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowMenuClan( index )
- {
- static menu, tittle[ MENU_TITTLE_LENGHT ], members; members = get_membersnum( index );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s MENU CLAN: \r%s^n\wMembrii: \y%d \d/ \y%d",
- MENU_PREFIX, kClanName[ index ], members, CLAN_MAXMEMBERS );
- menu = menu_create( tittle, "menu_clan" );
- switch(kClanMembership[ index ])
- {
- case CLAN_OWNER:
- {
- menu_additem( menu, "Vedeti membrii", "1" );
- menu_additem( menu, "Scoateti membrii", "2" );
- menu_additem( menu, (members >= CLAN_MAXMEMBERS)?"\dInvita membrii":"Invita membrii", "3" );
- menu_additem( menu, "Editeaza Rankurile \d( Din Clan )^n", "4" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wClan Chat \y( \dPrivate chat \d^"\rTEAM SAY\d^"\y)",
- kActivatedClanChat[ index ] ? "\rDesactiveaza":"\rActiveaza");
- menu_additem( menu, tittle, "5");
- }
- case CLAN_BOSS:
- {
- menu_additem( menu, "Vedeti membrii", "1" );
- menu_additem( menu, "Scoateti membrii", "2" );
- menu_additem( menu, (members >= CLAN_MAXMEMBERS)?"\dInvita membrii":"Invita membrii", "3" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wClan Chat \y( \dPrivate chat \d^"\rTEAM SAY\d^"\y)",
- kActivatedClanChat[ index ] ? "Dezactiveaza":"Activeaza");
- menu_additem( menu, tittle, "4");
- }
- case CLAN_MEMBER:
- {
- menu_additem( menu, "Vedeti membrii^n", "1" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wClan Chat \y( \dPrivate chat \d^"\rTEAM SAY\d^"\y)",
- kActivatedClanChat[ index ] ? "Dezactiveaza":"Activeaza");
- menu_additem( menu, tittle, "2");
- }
- }
- menu_display( index, menu );
- }
- public menu_clan( index, menu, item )
- {
- if( item == MENU_EXIT )
- {
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- static members; members = get_membersnum( index );
- switch(kClanMembership[ index ])
- {
- case CLAN_OWNER:
- {
- switch( item )
- {
- case 0: ShowClanMembers( index );
- case 1: ShowKickMembersMenu( index );
- case 2:
- {
- if(members < CLAN_MAXMEMBERS)
- {
- ShowInviteMenu( index );
- return PLUGIN_HANDLED;
- }
- ColorChat(0,"!gNumarul maxim de membri a fost deja atins");
- }
- case 3: EditRangesMembers( index );
- case 4:
- {
- if(kActivatedClanChat[ index ])
- {
- kActivatedClanChat[ index ] = false;
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- kActivatedClanChat[ index ] = true;
- ShowMenuClan( index );
- }
- }
- }
- case CLAN_BOSS:
- {
- switch( item )
- {
- case 0: ShowClanMembers( index );
- case 1: ShowKickMembersMenu( index );
- case 2:
- {
- if(members < CLAN_MAXMEMBERS)
- {
- ShowInviteMenu( index );
- return PLUGIN_HANDLED;
- }
- ColorChat(0,"!gNumarul maxim de membri a fost deja atins");
- }
- case 3:
- {
- if(kActivatedClanChat[ index ])
- {
- kActivatedClanChat[ index ] = false;
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- kActivatedClanChat[ index ] = true;
- ShowMenuClan( index );
- }
- }
- }
- case CLAN_MEMBER:
- {
- switch( item )
- {
- case 0: ShowClanMembers( index );
- case 1:
- {
- if(kActivatedClanChat[ index ])
- {
- kActivatedClanChat[ index ] = false;
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- kActivatedClanChat[ index ] = true;
- ShowMenuClan( index );
- }
- }
- }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowInviteMenu( index )
- {
- static n, menu, pos[3], tittle[MENU_TITTLE_LENGHT];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s Trimiteti invitatii pentru a se alatura clanului", MENU_PREFIX );
- menu = menu_create( tittle, "menu_invite_hand" );
- for( n = 1; n <= MAXPLAYERS; ++n )
- {
- if( !flag_get(kBits[CONNECTED], n) ) continue;
- if( kClanMembership[ n ] != WITHOUT_CLAN ) continue;
- if( index == n ) continue;
- num_to_str( n, pos, 2 );
- menu_additem( menu, kPlayerName[ n ], pos );
- }
- menu_display( index, menu );
- }
- public menu_invite_hand( index, menu, item )
- {
- if( item == MENU_EXIT )
- {
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- static iKey[ 6 ], iAccess, iCallback;
- menu_item_getinfo( menu, item, iAccess, iKey, charsmax( iKey ), _, _, iCallback );
- kInvited[ index ] = str_to_num( iKey );
- if( get_membersnum( index ) == CLAN_MAXMEMBERS )
- {
- ColorChat(0, "!g[CS:GO Outstanding] Ati atins numarul maxim de membri");
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ColorChat(0, "!g[CS:GO Outstanding] Ati invitat %s sa se alature clanului.", kPlayerName[ kInvited[index] ] );
- client_print( kInvited[ index ], print_chat, "[CS:GO Outstanding] %s ti-a trimis o invitatie sa et alaturi clanului lui: %s", kPlayerName[ index ], kClanName[ index ] );
- kClanOwner[ kInvited[ index ] ] = index;
- if(is_user_bot( kInvited[ index ] ) )
- {
- kClanMembership[ kInvited[ index ] ] = CLAN_MEMBER;
- copy(kClanName[ kInvited[index] ], CLANNAME_LENGHT-1, kClanName[ index ] );
- ColorChat(0, "!g[CS:GO Outstanding] %s a acceptat solicitarea dvs.", kPlayerName[ kInvited[index] ] );
- DataManagement( kInvited[ index ], SAVE );
- cmd_CLAN( index );
- }
- else
- ShowMenuInvited( kInvited[ index ] , index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowMenuInvited( invited, owner )
- {
- static menu, tittle[ MENU_TITTLE_LENGHT ];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s \r%s \w?i-a trimis o invita?ie de a intra in clan: \y%s",
- MENU_PREFIX, kPlayerName[ owner ], kClanName[ owner ] );
- menu = menu_create(tittle, "menu_invited_hand");
- menu_additem( menu, "\yAcepta", "1");
- menu_additem( menu, "\rRespinge", "2");
- menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
- menu_display( invited, menu );
- }
- public menu_invited_hand( index, menu, item )
- {
- switch (item)
- {
- case 0:
- {
- kClanMembership[ index ] = CLAN_MEMBER;
- copy(kClanName[ index ], CLANNAME_LENGHT-1, kClanName[ kClanOwner[index] ]);
- client_print( kClanOwner[ index ], print_chat, "[CS:GO Outstanding] %s a acceptat solicitarea dvs.", kPlayerName[ index ]);
- cmd_CLAN( kClanOwner[ index ] );
- }
- case 1:
- {
- client_print( kClanOwner[ index ], print_chat, "[CS:GO Outstanding] %s a respins solicitarea dvs", kPlayerName[ index ]);
- cmd_CLAN( kClanOwner[ index ] );
- kClanMembership[ index ] = WITHOUT_CLAN;
- kClanOwner[ index ] = 0;
- kClanName[ index ] = "^0";
- }
- case MENU_EXIT: { menu_destroy(menu); return PLUGIN_HANDLED; }
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- ShowMenuConfirmateClanName( index )
- {
- static menu, tittle[ MENU_TITTLE_LENGHT ];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s Numele clanului va fi: \d%s", MENU_PREFIX, kClanName[ index ] );
- menu = menu_create( tittle, "menu_confirm_hand" );
- menu_additem( menu, "Da, Continua", "1" );
- menu_additem( menu, "Nu, Vreau sa il rescriu", "2");
- menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
- menu_display( index, menu );
- }
- public menu_confirm_hand( index, menu, item )
- {
- switch( item )
- {
- case MENU_EXIT: { menu_destroy(menu); return PLUGIN_HANDLED; }
- case 0:
- {
- ColorChat(0, "!g[CS:GO Outstanding] Numele clanului a fost creat corect." );
- kClanNameConfirmated[ index ] = true;
- DataManagement( index, SAVE );
- ShowMenuCreateClan( index );
- }
- case 1:
- {
- ColorChat(0, "!g INTRODUCEtI NUMELE CLANULUI ");
- client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"");
- }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowClanMembers( index )
- {
- static menu, keyindex, szkeyindex[5], item[128], item2[50], tittle[ MENU_TITTLE_LENGHT ];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s Lista membrilor din clan: \d %s", MENU_PREFIX, kClanName[ index ]);
- menu = menu_create( tittle, "menu_members_hand");
- adv_vault_find_start( vault, kFields[ C_CLANNAME ], kClanName[ index ], FINDFLAGS_EQUAL);
- while((keyindex = adv_vault_find_next( vault )))
- {
- adv_vault_get_field( vault, kFields[ C_PNAME], item2, charsmax(item2) );
- num_to_str( keyindex, szkeyindex, charsmax(szkeyindex) );
- formatex( item, charsmax(item), "%s \d( \y %s \d)", item2, MemberRange[adv_vault_get_field(vault, kFields[C_MEMBERSHIP])] );
- menu_additem( menu, item, szkeyindex);
- }
- adv_vault_find_closed( vault );
- menu_display( index, menu );
- }
- public menu_members_hand( index, menu, item )
- {
- if( item == MENU_EXIT)
- {
- cmd_CLAN( index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- static iKey, szitem[5], keyindex;
- menu_item_getinfo( menu, item, iKey, szitem, charsmax(szitem), _, _, iKey );
- keyindex = str_to_num(szitem);
- ShowMenuPlayerStats( index, keyindex );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowMenuPlayerStats( index, keyindex )
- {
- new name[32], tittle[ MENU_TITTLE_LENGHT ], menu
- if(!adv_vault_get_prepare( vault, keyindex ))
- return;
- adv_vault_get_field( vault, kFields[ C_PNAME ], name, 31 );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s \wInformatii despre: \y%s \r", MENU_PREFIX, name );
- menu = menu_create( tittle, "menu_playerstats_hand" );
- formatex( tittle, MENU_TITTLE_LENGHT-1, "\wRank din clan: \y%s",
- MemberRange[ adv_vault_get_field( vault, kFields[ C_MEMBERSHIP]) ]);
- menu_additem( menu, tittle, "" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wKills: \y%d", adv_vault_get_field( vault, kFields[ C_KILLS ]) );
- menu_additem( menu , tittle, "" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wDeaths: \y%d", adv_vault_get_field( vault, kFields[ C_DEATHS ]) );
- menu_additem( menu, tittle, "" );
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wHeadshot Kills: \y%d", adv_vault_get_field( vault, kFields[ C_HS_KILLS]) );
- menu_additem( menu, tittle, "");
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wHeadshot Deaths: \y%d", adv_vault_get_field( vault, kFields[ C_HS_DEATHS]) );
- menu_additem( menu, tittle, "");
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wKnife Kills: \y%d", adv_vault_get_field( vault, kFields[ C_KNIFE_KILLS ]) );
- menu_additem( menu, tittle, "");
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wKnife Deaths: \y%d", adv_vault_get_field( vault, kFields[ C_KNIFE_DEATHS]) );
- menu_additem( menu, tittle, "");
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wSuicides: \y%d", adv_vault_get_field( vault, kFields[ C_SUICIDES ]) );
- menu_additem( menu, tittle, "");
- formatex(tittle, MENU_TITTLE_LENGHT-1, "\wRespawns: \y%d", adv_vault_get_field( vault, kFields[ C_SPAWNS ]) );
- menu_additem( menu, tittle, "");
- menu_display( index, menu );
- }
- public menu_playerstats_hand( index, menu, item )
- {
- if( item == MENU_EXIT )
- {
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- if(item < 6)
- menu_display( index, menu, 0);
- else
- menu_display( index, menu, 1);
- return PLUGIN_HANDLED;
- }
- ShowKickMembersMenu( index )
- {
- static menu, keyindex, szkeyindex[5], item[128], tittle[ MENU_TITTLE_LENGHT ];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s Scoateti Jucatorii Clanului: \d %s", MENU_PREFIX, kClanName[ index ]);
- menu = menu_create( tittle, "menu_kick_hand");
- adv_vault_find_start( vault, kFields[ C_CLANNAME ], kClanName[ index ], FINDFLAGS_EQUAL);
- while((keyindex = adv_vault_find_next( vault )))
- {
- adv_vault_get_field( vault, kFields[ C_PNAME ], item, charsmax(item) );
- num_to_str( keyindex, szkeyindex, charsmax(szkeyindex) );
- menu_additem( menu, item, szkeyindex);
- }
- adv_vault_find_closed( vault );
- menu_display( index, menu );
- }
- public menu_kick_hand( index, menu, item )
- {
- if( item == MENU_EXIT)
- {
- cmd_CLAN( index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- static iKey, szitem[5], keyindex;
- menu_item_getinfo( menu, item, iKey, szitem, charsmax(szitem), _, _, iKey );
- keyindex = str_to_num(szitem);
- if(!adv_vault_get_prepare( vault, keyindex ))
- return PLUGIN_HANDLED;
- static level, name[32];
- adv_vault_get_field( vault, kFields[ C_PNAME ], name, 31);
- level = adv_vault_get_field( vault, kFields[ C_MEMBERSHIP]);
- if(equal(name, kPlayerName[ index ]) )
- {
- ColorChat(0,"!gNu te pooi expedia singur");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- if( level == CLAN_OWNER)
- {
- ColorChat(0,"!gNu puteti expedia fondatorul clanului");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- adv_vault_set_start( vault )
- adv_vault_set_field( vault, kFields[ C_CLANNAME ], "^0");
- adv_vault_set_field( vault, kFields[ C_MEMBERSHIP ], WITHOUT_CLAN );
- adv_vault_set_field( vault, kFields[ C_CLAN_CHAT ], false);
- adv_vault_set_end( vault, _, name);
- Color_Print(index, "Ai expulzat din Clan: %s", name );
- ShowMenuClan( index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- EditRangesMembers( index )
- {
- static menu, keyindex, szkeyindex[5], item[128], item2[50], tittle[ MENU_TITTLE_LENGHT ];
- formatex( tittle, MENU_TITTLE_LENGHT-1, "%s Clan Ranks Editor: \d %s", MENU_PREFIX, kClanName[ index ]);
- menu = menu_create( tittle, "menu_ranges_hand");
- adv_vault_find_start( vault, kFields[ C_CLANNAME ], kClanName[ index ], FINDFLAGS_EQUAL);
- while((keyindex = adv_vault_find_next( vault )))
- {
- adv_vault_get_field( vault, kFields[ C_PNAME], item2, charsmax(item2) );
- num_to_str( keyindex, szkeyindex, charsmax(szkeyindex) );
- formatex( item, charsmax(item), "%s \d( \y %s \d)", item2, MemberRange[adv_vault_get_field(vault, kFields[C_MEMBERSHIP])] );
- menu_additem( menu, item, szkeyindex);
- }
- adv_vault_find_closed( vault );
- menu_display( index, menu );
- }
- public menu_ranges_hand( index, menu, item )
- {
- if( item == MENU_EXIT)
- {
- cmd_CLAN( index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- static iKey, szitem[5], keyindex;
- menu_item_getinfo( menu, item, iKey, szitem, charsmax(szitem), _, _, iKey );
- keyindex = str_to_num(szitem);
- if(!adv_vault_get_prepare( vault, keyindex ))
- return PLUGIN_HANDLED;
- static level, name[32];
- adv_vault_get_field( vault, kFields[ C_PNAME ], name, 31);
- level = adv_vault_get_field( vault, kFields[ C_MEMBERSHIP]);
- if(equal(name, kPlayerName[ index ]) )
- {
- ColorChat(0,"!gNu poti schimba rangul, singur");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- if( level == CLAN_OWNER)
- {
- ColorChat(0,"!gNu puteti schimba Rank la fondatorul clanului");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- adv_vault_set_start( vault )
- if( level == CLAN_MEMBER )
- adv_vault_set_field( vault, kFields[ C_MEMBERSHIP ], CLAN_BOSS );
- else if( level == CLAN_BOSS )
- adv_vault_set_field( vault, kFields[ C_MEMBERSHIP ], CLAN_MEMBER );
- adv_vault_set_end( vault, _, name);
- Color_Print(index, "Ati schimbat rangul la: %s", name );
- ShowMenuClan( index );
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- /* ACCOUNT SYSTEM */
- ShowLogMenu( index)
- {
- static menu, tittle[MENU_TITTLE_LENGHT];
- formatex(tittle, MENU_TITTLE_LENGHT-1, "Sistem de logare \dCS:GO Outstanding^n\wBine ai venit \r%s^n\wStare: \r%s^n\wUltima ta visita a fost pe: \r%s",
- kPlayerName[ index ], Status[ kStatus[ index ] ], kDate[ index ] );
- menu = menu_create( tittle, "menu_log_hand" );
- menu_additem(menu, (kStatus[ index ] == REGISTERED ) ? "Conectati-va":"\dConectati-va", "1" );
- menu_additem(menu, (kStatus[ index ] == NOT_REGISTERED ) ? "inregistrare^n":"\dinregistrare^n", "2" );
- menu_additem(menu, (kStatus[ index ] == LOGGUED && !flag_get(kBits[CAN_CHANGE_PW],index)) ? "Schimbati parola":"\dSchimbati parola", "3" );
- menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
- menu_display( index, menu );
- }
- public menu_log_hand( index, menu, item )
- {
- switch( item )
- {
- case 0:
- {
- if(kStatus[ index ] == REGISTERED)
- {
- ColorChat(0, "!gIntroduceti parola pentru a intra in cont" );
- client_cmd( index,"messagemode ^"JOIN_PASSWORD^"" );
- }
- else
- {
- ColorChat(0, "!gNu puteti alege aceasta optiune");
- ShowLogMenu( index );
- return PLUGIN_HANDLED;
- }
- }
- case 1:
- {
- if(kStatus[ index ] == NOT_REGISTERED )
- {
- ColorChat(0, "!gIntroduceti o parola pentru a crea un cont" );
- client_cmd( index ,"messagemode ^"JOIN_PASSWORD^"" );
- }
- else
- {
- ColorChat(0, "!gNu puteti alege aceasta optiune" );
- ShowLogMenu( index );
- return PLUGIN_HANDLED;
- }
- }
- case 2:
- {
- if(kStatus[ index ] == LOGGUED && !flag_get(kBits[CAN_CHANGE_PW],index))
- {
- ColorChat(0, "!gIntroduceti noua parola" );
- client_cmd( index,"messagemode ^"JOIN_PASSWORD^"");
- }
- else
- {
- ColorChat(0, "!gNu sunteti conectat sau v-ati schimbat deja parola pe parcursul hartii" );
- ShowLogMenu( index );
- return PLUGIN_HANDLED;
- }
- }
- case MENU_EXIT: { menu_destroy( menu ); return PLUGIN_HANDLED; }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ShowMenuConfirmatePw( index )
- {
- static menu, Tit[ MENU_TITTLE_LENGHT ];
- formatex( Tit, MENU_TITTLE_LENGHT-1,"Parola va fii \r%s^n^n\yconfirmi??", kPassword2[ index ]);
- menu = menu_create( Tit, "menu_confirmpw_hand" );
- menu_additem( menu,"\rDa\w, Confirma","1" );
- menu_additem( menu,"\rNu\w,Vreau sa o rescriu","2" );
- menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
- menu_display( index, menu );
- }
- public menu_confirmpw_hand( index, menu, item )
- {
- switch(item)
- {
- case 0:
- {
- if( kStatus[ index ] == LOGGUED )
- {
- copy(kPassword[ index ], PASSWORD_LENGHT-1, kPassword2[ index ]);
- DataManagement( index, SAVE );
- ColorChat(0, "!gParola dvs. a fost modificata cu succes");
- flag_set(kBits[CAN_CHANGE_PW], index);
- }
- else
- {
- copy(kPassword[ index ], PASSWORD_LENGHT-1, kPassword2[ index ]);
- ColorChat(0, "!gContul dvs. a fost creat cu succes" );
- DataManagement( index, SAVE );
- ForceJoinTeam( index );
- }
- }
- case 1:
- {
- menu_destroy(menu);
- client_cmd( index, "messagemode ^"JOIN_PASSWORD^"" );
- if( kStatus[ index ] == LOGGUED )
- ColorChat(0, "!gIntroduceti noua Parola" );
- else
- ColorChat(0, "!gIntroduceti Parola pentru contul dvs. nou" );
- }
- case MENU_EXIT: { menu_destroy( menu ); return PLUGIN_HANDLED; }
- }
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- /*============================
- STOCKS
- ============================*/
- stock szRemove_Quotes( const szStr[ ], szOut[ ] )
- {
- if ( !szStr[ 1 ] )
- {
- szOut[ 0 ] = EOS;
- return 0;
- }
- copy( szOut, strlen( szStr )-2, szStr[ 1 ] );
- trim( szOut );
- static iLen, i;
- iLen = strlen( szOut );
- for ( i = 0; i < iLen; ++i)
- {
- if (szOut[ i ] == '"')
- return 0;
- }
- return iLen;
- }
- stock ValidMessage(text[], maxcount)
- {
- static len, i, count;
- len = strlen(text);
- count = 0;
- if (!len) return false;
- for (i = 0; i < len; ++i)
- {
- if (text[i] != ' ')
- {
- ++count;
- if (count >= maxcount)
- return true;
- }
- }
- return false;
- }
- public changeTeamInfo(player, team[])
- {
- message_begin(MSG_ONE, kMsg[MSG_TEAMINFO], _, player);
- write_byte(player);
- write_string(team);
- message_end();
- }
- public writeMessage(player, message[])
- {
- message_begin(MSG_ONE, kMsg[MSG_SAYTEXT], {0, 0, 0}, player);
- write_byte(player);
- write_string(message);
- message_end();
- }
- stock Color_Print(const id, const input[], any:...)
- {
- new count = 1, players[32];
- static msg[191], len;
- len = formatex(msg, charsmax(msg), "%s ", CHAT_PREFIX);
- vformat(msg[len], 190 - len, input, 3);
- replace_all(msg, 190, "!g", "^4");
- replace_all(msg, 190, "!n", "^1");
- replace_all(msg, 190, "!t", "^3");
- if(id)
- players[0] = id;
- else
- get_players(players, count, "ch");
- for (new i = 0; i < count; ++i)
- {
- if(flag_get(kBits[CONNECTED], players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, kMsg[MSG_SAYTEXT], _, players[i]);
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- public message_VGUImenu( msgid, dest, index )
- {
- if( kStatus[ index ] != LOGGUED )
- ShowLogMenu( index );
- return 1;
- }
- public DataManagement( index, type )
- {
- if( !flag_get(kBits[CONNECTED],index) ) return;
- if(type == LOAD)
- {
- if( !adv_vault_get_prepare( vault, _, kPlayerName[ index ] ) )
- {
- kStatus[ index ] = NOT_REGISTERED;
- return;
- }
- else
- {
- kStatus[ index ] = REGISTERED;
- kClanMembership[ index ] = adv_vault_get_field( vault, kFields[ C_MEMBERSHIP ] );
- adv_vault_get_field( vault, kFields[ C_CLANNAME ], kClanName[ index ], CLANNAME_LENGHT );
- adv_vault_get_field( vault, kFields[ C_DATE ], kDate[ index ], 31);
- adv_vault_get_field( vault, kFields[ C_PASS ], kPassword[ index ], PASSWORD_LENGHT-1);
- adv_vault_get_field( vault, kFields[ C_PNAME ], kPname[ index ], 31 );
- kDataRank[ index ][ KILLS ] = adv_vault_get_field( vault, kFields[ C_KILLS ] );
- kDataRank[ index ][ DEATHS ] = adv_vault_get_field( vault, kFields[ C_DEATHS ] );
- kDataRank[ index ][ HS_KILLS ] = adv_vault_get_field( vault, kFields[ C_HS_KILLS ] );
- kDataRank[ index ][ HS_DEATHS ] = adv_vault_get_field( vault, kFields[C_HS_DEATHS ] );
- kDataRank[ index ][ KNIFE_KILLS ] = adv_vault_get_field( vault, kFields[C_KNIFE_KILLS ] );
- kDataRank[ index ][ KNIFE_DEATHS ] = adv_vault_get_field( vault, kFields[C_KNIFE_DEATHS ] );
- kDataRank[ index ][ SUICIDES ] = adv_vault_get_field( vault, kFields[C_SUICIDES ] );
- kDataRank[ index ][ SPAWNS ] = adv_vault_get_field( vault, kFields[C_SPAWNS ] );
- kActivatedClanChat[ index ] = adv_vault_get_field( vault, kFields[ C_CLAN_CHAT ] );
- }
- }
- else
- {
- copy(kPname[ index ], 31, kPlayerName[ index ]);
- adv_vault_set_start( vault );
- adv_vault_set_field( vault, kFields[ C_MEMBERSHIP ], kClanMembership[ index ] );
- adv_vault_set_field( vault, kFields[ C_CLANNAME ], kClanName[ index ] );
- adv_vault_set_field( vault, kFields[ C_DATE ], kDate[ index ]);
- adv_vault_set_field( vault, kFields[ C_PASS ], kPassword[ index ]);
- adv_vault_set_field( vault, kFields[ C_PNAME ], kPname[ index ]);
- adv_vault_set_field( vault, kFields[ C_KILLS ], kDataRank[ index ][ KILLS ]);
- adv_vault_set_field( vault, kFields[ C_DEATHS ], kDataRank[ index ][DEATHS]);
- adv_vault_set_field( vault, kFields[ C_HS_KILLS ], kDataRank[ index ][ HS_KILLS ]);
- adv_vault_set_field( vault, kFields[ C_HS_DEATHS ], kDataRank[ index ][ HS_DEATHS ]);
- adv_vault_set_field( vault, kFields[ C_KNIFE_KILLS ], kDataRank[ index ][ KNIFE_KILLS ]);
- adv_vault_set_field( vault, kFields[ C_KNIFE_DEATHS], kDataRank[ index ][ KNIFE_DEATHS ]);
- adv_vault_set_field( vault, kFields[ C_SUICIDES], kDataRank[ index ][ SUICIDES ]);
- adv_vault_set_field( vault, kFields[ C_SPAWNS ], kDataRank[ index ][ SPAWNS ]);
- adv_vault_set_field( vault, kFields[ C_CLAN_CHAT ], kActivatedClanChat[ index ] );
- adv_vault_set_end( vault, 0, kPlayerName[ index ] );
- }
- }
- public fm_ClientInfoChanged( index, buffer )
- {
- if( flag_get(kBits[CONNECTED],index) )
- {
- if(kStatus[ index ] == LOGGUED)
- {
- static OldName[33];
- engfunc(EngFunc_InfoKeyValue, buffer, "name", OldName, sizeof OldName - 1);
- if(equal(OldName, kPlayerName[ index ]))
- return FMRES_IGNORED;
- set_user_info( index, "name", kPlayerName[ index ]);
- client_cmd( index, "setinfo ^"name^" ^"%s^"", kPlayerName[ index ]);
- }
- }
- return FMRES_IGNORED;
- }
- public ForceJoinTeam( index )
- {
- static teammsg_block, teammsg_block_vgui, restore, vgui;
- restore = get_pdata_int( index, 510 );
- vgui = restore & (1<<0);
- if ( vgui ) set_pdata_int( index, 510, restore & ~(1<<0) );
- teammsg_block = get_msg_block( kMsg[MSG_SHOWMENU] );
- teammsg_block_vgui = get_msg_block( kMsg[MSG_VGUI] );
- set_msg_block( kMsg[MSG_SHOWMENU], BLOCK_ONCE );
- set_msg_block( kMsg[MSG_VGUI], BLOCK_ONCE );
- engclient_cmd( index, "jointeam", "5" );
- engclient_cmd( index, "joinclass", "5" );
- set_msg_block( kMsg[MSG_SHOWMENU], teammsg_block);
- set_msg_block( kMsg[MSG_VGUI], teammsg_block_vgui);
- if (vgui) set_pdata_int( index, 510, restore );
- kStatus[ index ] = LOGGUED;
- set_task( 1.0, "ShowHUD", index + TASK_HUD, _, _, "b" );
- }
- public ShowHUD( taskid )
- {
- static index; index = ID_HUD;
- if ( !is_user_alive(index) )
- {
- index = pev( index, pev_iuser2 );
- if ( !flag_get(kBits[ALIVE],index)) return;
- }
- if( index != ID_HUD)
- {
- set_hudmessage(255, 200, 220, 0.60, 0.50, 0, 6.0, 1.1, 0.0, 0.0, -1);
- ShowSyncHudMsg(index, hudSync, "%s^nClan: %s",
- kPlayerName[ index ], kClanName[index][0]?kClanName[index]:"Fara Clan", kRange[index]);
- }
- else
- {
- set_hudmessage(0, 255, 0, 0.0, 0.0, 0, 6.0, 1.1, 0.0, 0.0, -1);
- ShowSyncHudMsg(index, hudSync, "^nClan: %s^nKilluri: %d / %d",
- kRange[index], kClanName[ index ][0]?kClanName[ index ]:"Fara Clan", kDataRank[ index ][ KILLS ]);
- }
- }
- public get_membersnum( index )
- {
- if( !kClanName[ index ][ 0 ]) return 0;
- static num, keyindex, keyname[32]; num = 0;
- adv_vault_find_start( vault, kFields[ C_CLANNAME ], kClanName[ index ], FINDFLAGS_EQUAL );
- while((keyindex = adv_vault_find_next( vault )))
- {
- adv_vault_get_keyname( vault, keyindex, keyname, 31 );
- ++num;
- }
- adv_vault_find_closed( vault );
- if(!num) return 0;
- return num;
- }
- CreateClan( index )
- {
- if(!flag_get(kBits[CONNECTED],index) ) return;
- kClanMembership[ index ] = CLAN_OWNER;
- DataManagement( index, SAVE );
- cmd_CLAN( index );
- }
- stock ColorChat(const id,const input[], any:...) {
- new iNum = 1, iPlayers[32];
- static szMessage[191];
- vformat(szMessage, charsmax(szMessage),input, 3);
- replace_all(szMessage, charsmax(szMessage), "!g", "^4");
- replace_all(szMessage, charsmax(szMessage), "!n", "^1");
- replace_all(szMessage, charsmax(szMessage), "!t", "^3");
- if(id) iPlayers[0] = id;
- else get_players(iPlayers, iNum, "ch");
- for(new i = 0; i < iNum; i++)
- {
- if(is_user_connected(iPlayers[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[i]);
- write_byte(iPlayers[i]);
- write_string(szMessage);
- message_end();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement