RSSy MYGO.pl Opublikowano Wrzesień 16, 2020 o 16:29 RSSy Udostępnij Opublikowano Wrzesień 16, 2020 o 16:29 Hello! can someone remove my tag from this plugin? PHP Code: #include < amxmodx >#include < amxmisc >#include < hamsandwich >#include < fakemeta >#include < adv_vault >/* ====== START EDIT SECTION ====== */// Aici setezi numarul maxim de jucatori care se pot conecta la serverul tau#define MAXPLAYERS 32#define CLANNAME_LENGHT 20#define CLAN_MAXMEMBERS 5#define CLAN_MINMEMBERS 2#define MENU_TITTLE_LENGHT 128#define PASSWORD_LENGHT 50new const MENU_PREFIX[ ] = "\r[ \yAMXX \dCLAN \ySYSTEM \r]\w";new const CHAT_PREFIX[ ] = "!g[ 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_RANGE, C_CLAN_CHAT, C_MAX}enum { WITHOUT_CLAN = 0, CLAN_MEMBER, CLAN_BOSS, CLAN_OWNER, MAX_MEMBER_RANGES }enum { LOAD= 0, SAVE }enum _:RANGES { RANGO_NAME[ 50 ], RANGO_FRAGS }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 ][ ] = { "UNREGISTERED", "REGISTERED", "LOGGED" };new const MemberRange[ MAX_MEMBER_RANGES ][ ] = { "NO CLAN", "MEMBER", "BOSS", "FOUNDER" };new const Rangos[][RANGES] = { { "", 0 }, { "Beginner", 100 }, { "Silver I", 200 }, { "Silver II", 300 }, { "Silver III", 500 }, { "Silver IV", 700 }, { "Silver Elite", 800 }, { "Silver Elite Master", 900 }, { "Gold Nova I", 1000 }, { "Gold Nova II", 1200 }, { "Gold Nova III", 1300 }, { "Gold Nova Master", 1400 }, { "Master Guardian I",1500 }, { "Master Guardian II", 1700 }, { "Master Guardian Elite", 1800 }, { "Distinguished Master Guardian", 1900 }, { "Legendary Eagle", 2000 }, { "Legendary Eagle Master", 2100 }, { "Supreme Master First Class", 2200 }, { "The Global Elite", 2500 }};/* ================ */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("say /claninfo", "INFORMATII") register_clcmd("say","hook_say"); 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, "AFFILIATION"); kFields[ C_CLANNAME ] = adv_vault_register_field( vault, "CLAN NAME", DATATYPE_STRING, CLANNAME_LENGHT-1 ); kFields[ C_DATE ] = adv_vault_register_field( vault, "DATE", 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, "NAME", 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_RANGE ] = adv_vault_register_field( vault, "RANG" ); kFields[ C_CLAN_CHAT ] = adv_vault_register_field( vault, "CLANCHAT" ); adv_vault_init( vault );}public hook_say(id) { static s_Args[192]; read_argv(1, s_Args, sizeof(s_Args) - 1); if(equal(s_Args, "/", 1)) { return PLUGIN_HANDLED; } return PLUGIN_CONTINUE;}public INFORMATII(id){ show_motd(id, "cstrike/addons/amxmodx/configs/claninfo.txt")}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^x04 %s^x03)", Rangos[kRange[index]][RANGO_NAME], kClanName[ index ][ 0 ] ? kClanName[ index ] : "NO CLAN" ); formatex(prefix, charsmax(prefix), "%s%s^x03 %s", flag_get(kBits[ALIVE],index)?"^x01":"^x01*DEAD* ", 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) { Color_Print( index, "Your message is no valid or you are not in a clan yet."); 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*DEAD* ", 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^x04 %s^x03)", Rangos[kRange[index]][RANGO_NAME], kClanName[ index ][ 0 ] ? kClanName[ index ] : "NO CLAN" ); formatex(prefix, charsmax(prefix), "%s%s %s^x03 %s", flag_get(kBits[ALIVE],index)?"^x01":"^x01*DEAD* ", 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); UpdateRange( attacker );}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 ]) { client_print( index, print_center, "YOU'VE CONFIRMED CLAN'S NAME!"); ShowMenuCreateClan( index ); return; } if( !kClanName[ index ][ 0 ]) { client_print( index, print_chat, " TYPE THE CLAN'S NAME "); client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^""); return; } static xd; xd = get_membersnum( index ); if( xd ) { client_print( index, print_center, "THIS CLAN NAME IS ALREADY TAKEN"); 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 ) { client_print( index, print_center, "YOUR PASSWORD, CONTAIN ERRORS" ); client_cmd( index, "messagemode ^"JOIN_PASSWORD^""); return; } switch(kStatus[ index ]) { case NOT_REGISTERED: { client_print( index, print_center, "CONFIRM YOUR PASSWORD TO CONTINUE"); 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 ); client_print( index, print_center, "INCORRECT PASSWORD." ); return; } client_print( index, print_center, "YOU'VE BEEN SUCCESSFULLY LOGGED TO YOUR ACCOUNT"); ForceJoinTeam( index ); } case LOGGUED: { if(flag_get(kBits[CAN_CHANGE_PW], index)) { client_print( index, print_center, "YOU HAVE ALREADY CHANGED YOUR PASSWORD ON THIS MAP"); return; } client_print( index, print_center, "CONFIRM YOUR CURRENT PASSWORD TO CHANGE IT WITH A NEW ONE..." ); 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 CREATE CLAN", MENU_PREFIX ); menu = menu_create( tittle, "menu_create_hand" ); formatex( tittle, MENU_TITTLE_LENGHT-1, "CLAN NAME: \d%s", kClanName[ index ] ); menu_additem( menu, (!kClanName[ index ][ 0 ])?"TYPE THE CLAN NAME":tittle, "1" ); formatex( tittle, MENU_TITTLE_LENGHT-1, "ADD MEMBERS... \d( \r%d \y/ \r%d \d)", members, CLAN_MAXMEMBERS); menu_additem( menu, (!kClanName[ index ][ 0 ])?"\dADD MEMBERS":tittle, "2" ); menu_additem( menu, (members >= CLAN_MINMEMBERS )?"CREATE CLAN":"\dCREATE 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 ] ) { client_print( index, print_center, " TYPE THE CLAN NAME " ); client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"" ); return PLUGIN_HANDLED; } client_print( index, print_center, "YOU'VE CONFIRMED CLAN'S NAME" ); ShowMenuCreateClan( index ); } case 1: { if(!kClanName[ index ][ 0 ]) { client_print( index, print_center, "YOU NEED TO CREATE A CLAN'S NAME BEFORE"); ShowMenuCreateClan( index ); return PLUGIN_HANDLED; } ShowInviteMenu( index ); } case 2: { static members; members = get_membersnum( index ); if(members >= CLAN_MINMEMBERS ) CreateClan( index ); else client_print( index, print_center, "YOU NEED AT LEAST %d MEMBERS TO CREATE THE 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 CLAN MENU: \r%s^n\wMEMBERS: \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, "VIEW MEMBERS", "1" ); menu_additem( menu, "KICK MEMBERS", "2" ); menu_additem( menu, (members >= CLAN_MAXMEMBERS)?"\dINVITE MEMBERS":"INVITE MEMBERS", "3" ); menu_additem( menu, "EDIT RANK \d( del clan )^n", "4" ); formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wCLAN CHAT \y( \dPRIVATE CHAT \d^"\rTEAM SAY\d^"\y)", kActivatedClanChat[ index ] ? "\rDISABLE":"\rENABLE"); menu_additem( menu, tittle, "5"); } case CLAN_BOSS: { menu_additem( menu, "VIEW MEMBERS", "1" ); menu_additem( menu, "KICK MEMBERS", "2" ); menu_additem( menu, (members >= CLAN_MAXMEMBERS)?"\dINVITE MEMBERS":"INVITE MEMBERS", "3" ); formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wCLAN CHAT \y( \dPRIVATE CHAT \d^"\rTEAM SAY\d^"\y)", kActivatedClanChat[ index ] ? "DISABLE":"ENABLE"); menu_additem( menu, tittle, "4"); } case CLAN_MEMBER: { menu_additem( menu, "VIEW MEMBERS^n", "1" ); formatex(tittle, MENU_TITTLE_LENGHT-1, "%s \wCLAN CHAT \y( \dPRIVATE CHAT \d^"\rTEAM SAY\d^"\y)", kActivatedClanChat[ index ] ? "DISABLE":"ENABLE"); 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; } Color_Print( index, "MAX NUMBER OF MEMBERS WAS REACHED"); } 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; } Color_Print( index, "MAX NUMBER OF MEMBERS WAS REACHED"); } 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 SEND INVITE TO AFFILIATE NEW MEMBERS", 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 ) { client_print( index, print_chat, "[CLAN-SYSTEM] YOU HAVE REACHED THE MAX NUMBER OF MEMBERS"); menu_destroy( menu ); return PLUGIN_HANDLED; } client_print( index, print_chat, "[CLAN-SYSTEM] YOU'VE INVITED %s TO JOIN YOUR CLAN.", kPlayerName[ kInvited[index] ] ); client_print( kInvited[ index ], print_chat, "[CLAN-SYSTEM] %s INVITED YOU TO JOIN HIS CLAN: %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 ] ); client_print( index, print_chat, "[CLAN-SYSTEM] %s HAS ACCEPTED YOUR INVITATION", 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 \wHAS SENT YOU AN INVITATION TO JOIN THE CLAN: \y%s", MENU_PREFIX, kPlayerName[ owner ], kClanName[ owner ] ); menu = menu_create(tittle, "menu_invited_hand"); menu_additem( menu, "\yACCEPT", "1"); menu_additem( menu, "\rDECLINE", "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, "[CLAN-SYSTEM] %s HAS ACCEPTED YOUR REQUEST", kPlayerName[ index ]); cmd_CLAN( kClanOwner[ index ] ); } case 1: { client_print( kClanOwner[ index ], print_chat, "[CLAN-SYSTEM] %s HAS DECLINED YOUR INVITATION", 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 CLAN NAME WILL BE: \d%s", MENU_PREFIX, kClanName[ index ] ); menu = menu_create( tittle, "menu_confirm_hand" ); menu_additem( menu, "YES, CONTINUE", "1" ); menu_additem( menu, "NO, CREATE A NEW ONE", "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: { client_print( index, print_chat, "[CLAN-SYSTEM] CLAN NAME WAS SUCCESSFULLY CREATED." ); kClanNameConfirmated[ index ] = true; DataManagement( index, SAVE ); ShowMenuCreateClan( index ); } case 1: { client_print( index, print_chat, " TYPE THE CLAN NAME "); 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 CLAN'S MEMBERS LIST: \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 \wINFORMATION: \y%s \r", MENU_PREFIX, name ); menu = menu_create( tittle, "menu_playerstats_hand" ); formatex( tittle, MENU_TITTLE_LENGHT-1, "\wCLAN RANK: \y%s", MemberRange[ adv_vault_get_field( vault, kFields[ C_MEMBERSHIP]) ]); menu_additem( menu, tittle, "" ); formatex( tittle, MENU_TITTLE_LENGHT-1, "\wGENERAL RANK: \y%s", Rangos[ adv_vault_get_field(vault, kFields[C_RANGE ]) ][ RANGO_NAME ]); 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 KICK MEMBERS OF THE CLAN: \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 ]) ) { Color_Print( index, "YOU CAN'T KICK YOURSELF"); ShowMenuClan( index ); return PLUGIN_HANDLED; } if( level == CLAN_OWNER) { Color_Print( index, "YOU CAN'T KICK THE FOUNDER"); 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, "YOU'VE KICKED: %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'S RANK 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 ]) ) { Color_Print( index, "YOU CAN'T CHANGE YOUR RANK"); ShowMenuClan( index ); return PLUGIN_HANDLED; } if( level == CLAN_OWNER) { Color_Print( index, "YOU CAN'T CHANGE FOUNDER'S RANK"); 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, "YOU'VE CHANGED THE RANK OF: %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, "Account system by \dkikizon^n\wWelcome \r%s^n\wSTATS: \r%s^n\wYOUR LAST VISIT WAS: \r%s", kPlayerName[ index ], Status[ kStatus[ index ] ], kDate[ index ] ); menu = menu_create( tittle, "menu_log_hand" ); menu_additem(menu, (kStatus[ index ] == REGISTERED ) ? "LOG IN":"\dLOG IN", "1" ); menu_additem(menu, (kStatus[ index ] == NOT_REGISTERED ) ? "REGISTER^n":"\dREGISTER^n", "2" ); menu_additem(menu, (kStatus[ index ] == LOGGUED && !flag_get(kBits[CAN_CHANGE_PW],index)) ? "CHANGE PASSWORD":"\dCHANGE PASSWORD", "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) { client_print( index, print_center, "CONFIRM THE PASSWORD TO JOIN YOUR ACCOUNT" ); client_cmd( index,"messagemode ^"JOIN_PASSWORD^"" ); } else { client_print( index, print_center, "YOU CAN'T USE THIS OPTION"); ShowLogMenu( index ); return PLUGIN_HANDLED; } } case 1: { if(kStatus[ index ] == NOT_REGISTERED ) { client_print( index, print_center, "TYPE A PASSWORD TO CREATE A NEW ACCOUNT" ); client_cmd( index ,"messagemode ^"JOIN_PASSWORD^"" ); } else { client_print( index, print_center, "YOU CAN'T USE THIS OPTION" ); ShowLogMenu( index ); return PLUGIN_HANDLED; } } case 2: { if(kStatus[ index ] == LOGGUED && !flag_get(kBits[CAN_CHANGE_PW],index)) { client_print( index, print_center, "CONFIRM YOUR NEW PASSWORD" ); client_cmd( index,"messagemode ^"JOIN_PASSWORD^""); } else { client_print( index, print_center, "YOU ARE NOT LOGGED OR YOU'VE CHANGED YOUR PASSWORD DURING THIS MAP" ); 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,"PASSWORD WILL BE \r%s^n^n\yCONFIRM?", kPassword2[ index ]); menu = menu_create( Tit, "menu_confirmpw_hand" ); menu_additem( menu,"\rYES\w, CONFIRM","1" ); menu_additem( menu,"\rNO\w, TYPE A NEW ONE","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 ); client_print( index, print_center, "YOUR PASSWORD HAS BEEN CHANGED SUCCESSFULLY"); flag_set(kBits[CAN_CHANGE_PW], index); } else { copy(kPassword[ index ], PASSWORD_LENGHT-1, kPassword2[ index ]); client_print( index, print_center, "YOUR NEW ACCOUNT HAS BEEN CREATED" ); DataManagement( index, SAVE ); ForceJoinTeam( index ); } } case 1: { menu_destroy(menu); client_cmd( index, "messagemode ^"JOIN_PASSWORD^"" ); if( kStatus[ index ] == LOGGUED ) client_print( index, print_center, "TYPE YOUR NEW PASSWORD" ); else client_print( index, print_center, "TYPE THE PASSWORD OF YOUR NEWEST ACCOUNT" ); } 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 || RANK: %s", kPlayerName[ index ], kClanName[index][0]?kClanName[index]:"Sin Clan", Rangos[kRange[index]][RANGO_NAME] ); } else { set_hudmessage(0, 255, 0, 0.0, 0.0, 0, 6.0, 1.1, 0.0, 0.0, -1); ShowSyncHudMsg(index, hudSync, "RANK: %s^nCLAN: %s^nFRAGS: %d / %d", Rangos[ kRange[index] ][ RANGO_NAME ], kClanName[ index ][0]?kClanName[ index ]:"NO CLAN", kDataRank[ index ][ KILLS ], Rangos[ kRange[index] ][ RANGO_FRAGS ] ); }}UpdateRange( index ){ static range; range = kRange[ index ]; while( kDataRank[ index ][ KILLS ] >=Rangos[ kRange[index] ][ RANGO_FRAGS ]) ++kRange[ index ]; if(kRange[ index ] > range ) Color_Print( index, "CONGRATS, YOU'VE PASSED TO: !g%s", Rangos[ kRange[index] ][RANGO_NAME]);}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 );} Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi