Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <hamsandwich>
- #include <fakemeta>
- #include <engine>
- #include <cstrike>
- #include <fun>
- #include <csx>
- #include <nvault>
- #include <xs>
- #include <adv_vault>
- #define PLUGIN "CSGO OUTSTANDING"
- #define VERSION "2.0_final"
- #define AUTHOR "FaTzZu reparat de SideWinder"
- #define get_user_money(%1) cs_get_user_money(%1)
- #define set_user_money(%1,%2) cs_set_user_money(%1,%2)
- #define ENG_NULLENT -1
- #define EV_INT_WEAPONKEY EV_INT_impulse
- #define SKINS_MAX 32
- #define KEY_COST 50
- #define RAFFLE_COST 10
- #define FRAGMENTS_TO_CRAFT 3
- #define DROP_FRAGMENTS_CHANCE 60
- #define POINTS_CHANCE 50
- #define POINTS_FOR_KILL 5
- #define DROP_CASE_CHANCE 10
- #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_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 { Rank_NAME[ 50 ], Rank_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 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" };
- new const Ranks[][RANGES] =
- {
- { "Silver I",0 },
- { "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 }
- };
- enum
- {
- FM_CS_TEAM_UNASSIGNED = 0,
- FM_CS_TEAM_T,
- FM_CS_TEAM_CT,
- FM_CS_TEAM_SPECTATOR
- };
- new FW_PRETHINK_POST
- new user_coin_bet[33], user_incoin_challenge[33], user_coin[33];
- enum Data {
- Points,
- Case,
- Keys,
- Fragments
- }
- enum eData {
- Name[32],
- vModel[64],
- pModel[64],
- Type,
- Chance
- }
- new g_aSkins[SKINS_MAX][eData];
- /* Gift system */
- new g_iReceiver[33], g_iIterator[33], g_iSkinToGift[33];
- /* Destroy system */
- new g_iSkinToDestroy[33];
- /* Raffle system */
- new g_iRafflePlayers[33], raffleMembers;
- /* Market system */
- new g_iSkinsInMarket[33][SKINS_MAX], g_iPrice[33], iSeller[33][SKINS_MAX];
- /* Mute system */
- new iMutedPlayers[33][33];
- /* Core */
- new g_iPlayerSkins[33][SKINS_MAX], g_iPlayerData[33][Data];
- new g_iSkins[33][SKINS_MAX], g_iMaxChance, g_iShowedSkin[33][31], skinsNum;
- new const szTag[] = "[CS:GO OUTSTANDING]"
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_clcmd("enter_coin_bet", "clcmd_coinbet")
- register_logevent("evRoundEnd",2, "1=Round_End");
- register_event("DeathMsg", "evDeathMsg", "a");
- register_clcmd ( "chooseteam", "cmdChangeTeam" );
- register_clcmd ( "jointeam", "cmdChangeTeam" );
- register_event("SendAudio", "terroristsWin" , "a", "2&%!MRAD_terwin");
- register_event("SendAudio", "ctsWin", "a", "2&%!MRAD_ctwin");
- 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( "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_RANGE ] = adv_vault_register_field( vault, "Rank" );
- kFields[ C_CLAN_CHAT ] = adv_vault_register_field( vault, "CLANCHAT" );
- adv_vault_init( vault );
- // Weapon entity names
- new const szWeaponNames[][] = {
- "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
- "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
- "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
- "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
- "weapon_ak47", "weapon_knife", "weapon_p90"
- };
- for (new i; i < sizeof(szWeaponNames); i++)
- {
- if (szWeaponNames[i][0])
- {
- RegisterHam(Ham_Item_AddToPlayer, szWeaponNames[i], "hamAddWeaponToPlayer");
- RegisterHam(Ham_Item_Deploy, szWeaponNames[i], "hamItemDeploy", 1);
- }
- }
- register_forward(FM_SetModel, "fwSetModel");
- register_clcmd("Insert_price", "cmdInsertPrice");
- }
- public cmdChangeTeam ( id )
- {
- static team
- team = fm_cs_get_user_team(id)
- // Unless it's a spectator joining the game
- if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
- return PLUGIN_CONTINUE;
- // Pressing 'M' (chooseteam) ingame should show the main menu instead
- cmdSayMenu(id)
- return PLUGIN_HANDLED;
- }
- /* Precaching models */
- public plugin_precache()
- {
- precache_model("models/v_knife.mdl")
- new szConfigsDir[128], szMessage[64];
- get_configsdir(szConfigsDir, charsmax(szConfigsDir));
- add(szConfigsDir, charsmax(szConfigsDir), "/csgo_outstanding/skinsv");
- if(!file_exists(szConfigsDir))
- {
- write_file(szConfigsDir, ";TYPES 28=Ak47 22=M4a1 18=AWP 26=Deagle 29=Knife");
- write_file(szConfigsDir, ";Skin name v_Model p_Model TYPE Chance");
- write_file(szConfigsDir, ";Exemplu:");
- write_file(szConfigsDir, ";^"Ak47 Dragon Lore^" ^"models/GO/v_ak47_dragonlore.mdl^" ^"models/GO/p_ak47_dragonlore.mdl^" ^"28^" ^"20^"");
- }
- new f = fopen(szConfigsDir, "rt");
- if(!f)
- return;
- new szLineData[256], szName[32], szViewModel[64], szPlayerModel[64], szType[8], szChance[4];
- while(!feof(f))
- {
- fgets(f, szLineData, charsmax(szLineData));
- if(strlen(szLineData) < 2 || szLineData[0] == ';' || !szLineData[0])
- continue;
- parse(szLineData, szName, charsmax(szName), szViewModel, charsmax(szViewModel), szPlayerModel, charsmax(szPlayerModel), szType, charsmax(szType), szChance, charsmax(szChance))
- new iType = str_to_num(szType);
- new iChance = str_to_num(szChance)
- copy(g_aSkins[skinsNum][Name], 31, szName);
- copy(g_aSkins[skinsNum][vModel], 63, szViewModel);
- copy(g_aSkins[skinsNum][pModel], 63, szPlayerModel);
- g_aSkins[skinsNum][Type] = iType;
- g_aSkins[skinsNum][Chance] = iChance;
- skinsNum++
- }
- fclose(f);
- g_iMaxChance = g_aSkins[0][Chance];
- for (new i; i < skinsNum; i++)
- {
- if (g_aSkins[0][Chance] > g_iMaxChance)
- {
- g_iMaxChance = g_aSkins[0][Chance];
- }
- }
- for (new i; i < skinsNum; i++)
- {
- if (!file_exists(g_aSkins[0][vModel]))
- {
- formatex(szMessage, charsmax(szMessage), "Missing model [%s]", g_aSkins[0][vModel]);
- set_fail_state(szMessage);
- }
- if (strlen(g_aSkins[0][pModel]) > 3)
- {
- if (!file_exists(g_aSkins[0][pModel]))
- {
- formatex(szMessage, charsmax(szMessage), "Missing model [%s]", g_aSkins[0][pModel]);
- set_fail_state(szMessage);
- }
- }
- precache_model(g_aSkins[i][vModel]);
- if (strlen(g_aSkins[i][pModel]) > 3)
- {
- precache_model(g_aSkins[i][pModel]);
- }
- }
- }
- /* When client connects */
- public client_putinserver( index )
- {
- new iPlayers[32], iNum;
- get_players(iPlayers, iNum);
- for(new i; i < iNum; i++)
- iMutedPlayers[index][iPlayers[i]] = 0;
- for(new i; i < 31; i++)
- g_iShowedSkin[index][i] = skinsNum;
- g_iSkinToGift[index] = skinsNum;
- g_iSkinToDestroy[index] = skinsNum;
- g_iPrice[index] = 0;
- LoadData(index);
- LoadMarket(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);
- SaveData(index)
- user_incoin_challenge[index] = 0;
- user_coin_bet[index] = 0;
- if(user_coin[index] > 0)
- {
- engfunc(EngFunc_RemoveEntity, user_coin[index])
- user_coin[index] = 0;
- if(!get_challengers_num() && FW_PRETHINK_POST != 0)
- {
- unregister_forward(FM_PlayerPreThink, FW_PRETHINK_POST, 1)
- FW_PRETHINK_POST = 0;
- }
- }
- }
- /* Hook DeathMsg event */
- public evDeathMsg()
- {
- new iChance;
- new iKiller = read_data(1);
- new iVictim = read_data(2);
- if(!is_user_alive(iKiller) || iKiller == iVictim)
- return;
- iChance = random_num(1, 100);
- if (iChance <= POINTS_CHANCE)
- {
- g_iPlayerData[iKiller][Points] += POINTS_FOR_KILL;
- client_print(iKiller, print_center, "+%d Points", POINTS_FOR_KILL);
- }
- if(iChance <= DROP_CASE_CHANCE)
- {
- g_iPlayerData[iKiller][Case]++;
- }
- 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 ];
- }
- }
- /* When client disconnect */
- /* Ham_Item_Deploy */
- public hamItemDeploy(ent)
- {
- static id;
- id = fm_cs_get_weapon_ent_owner(ent);
- if (!pev_valid(id)) {
- return;
- }
- if (g_iShowedSkin[id][cs_get_weapon_id(ent)] < skinsNum)
- {
- set_pev(id, pev_viewmodel2, g_aSkins[ g_iShowedSkin[id][cs_get_weapon_id(ent)]][vModel]);
- if(strlen(g_aSkins[ g_iShowedSkin[id][cs_get_weapon_id(ent)]][pModel]) > 3)
- {
- set_pev(id, pev_weaponmodel2, g_aSkins[ g_iShowedSkin[id][cs_get_weapon_id(ent)]][pModel]);
- }
- }
- }
- /** Principal Menu **/
- public cmdSayMenu(id)
- {
- new menu, szText[128], szText2[128];
- formatex(szText, charsmax(szText), "\w[ \yCSGO OUTSTANDING \w] Points: \y%d \w| Keys: \y%d \w^n Case: \y%d \w| Fragments: \y%d", g_iPlayerData[id][Points], g_iPlayerData[id][Keys], g_iPlayerData[id][Case], g_iPlayerData[id][Fragments])
- menu = menu_create(szText, "menuHandler");
- menu_additem(menu, "Aplica \ySKIN");
- menu_additem(menu, "Deschide \ycufere \w| Crafteaza \ychei^n");
- menu_additem(menu, "Ofera un \ycadou");
- menu_additem(menu, "Distruge un \yskin^n");
- menu_additem(menu, "\wSkins \yMarket^n");
- formatex(szText, charsmax(szText), "Jocuri de \ynoroc\w^n^n%s", szText2);
- menu_additem(menu, "Clan \ySystem");
- menu_additem(menu, szText);
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- return PLUGIN_HANDLED;
- }
- public clcmd_coinbet(id)
- {
- if(user_incoin_challenge[id] > 0) return 1;
- new szArgs[30];
- read_args(szArgs, charsmax(szArgs))
- remove_quotes(szArgs)
- new amount = str_to_num(szArgs);
- if(amount > get_user_money(id)) {
- client_print(id, print_center, "You dont have that amount of money!")
- }
- else {
- user_coin_bet[id] = amount;
- }
- clcmd_stack_menu(id);
- return 1;
- }
- public clcmd_stack_menu(id)
- {
- if(user_incoin_challenge[id] > 0) return 1;
- new menu = menu_create("\rCoin Challenge^n\yChoose your stack!", "coin_menu_handle");
- new szText[32]
- formatex(szText, charsmax(szText), "\wChoose your Stack: \r%d$^n^n", user_coin_bet[id])
- menu_additem(menu, szText, "STACK")
- menu_additem(menu, "\rReady!", "STACK")
- menu_display(id, menu)
- return 1;
- }
- public clclmd_coin_menu(id)
- {
- if(user_coin_bet[id] <= 0)
- {
- clcmd_stack_menu(id)
- client_print(id, print_center, "Choose your stack!")
- return PLUGIN_HANDLED;
- }
- new menu = menu_create("\rCoin Challenge^n\yChoose your opponent!", "coin_menu_handle");
- new players[32], pnum;
- get_players(players, pnum, "ch")
- if(pnum <= 1 || user_incoin_challenge[id] > 0)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- for(new i, szName[32], player, szInfo[3]; i < pnum; i++)
- {
- player = players[i];
- if(player == id || user_incoin_challenge[player] > 0) continue;
- get_user_name(player, szName, charsmax(szName))
- num_to_str(player, szInfo, charsmax(szInfo))
- menu_additem(menu, szName, szInfo)
- }
- menu_display(id, menu)
- return PLUGIN_HANDLED;
- }
- public coin_menu_handle(id, menu, item)
- {
- if(item == MENU_EXIT || user_incoin_challenge[id] > 0)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new sData[12], paccess, iCallback;
- menu_item_getinfo(menu, item, paccess, sData, charsmax(sData), "", 0, iCallback)
- menu_destroy(menu)
- if(equal(sData, "STACK"))
- {
- switch( item )
- {
- case 0:
- {
- client_print(id, print_center, "Choose an amount of money above than zero!")
- client_cmd(id, "messagemode enter_coin_bet")
- }
- case 1: clclmd_coin_menu(id)
- }
- return PLUGIN_HANDLED;
- }
- if(equal(sData, "DUEL", 4))
- {
- strtok(sData, "", 0, sData, charsmax(sData), '|')
- new player = str_to_num(sData);
- if(!is_user_connected(player) || user_incoin_challenge[player] > 0) return PLUGIN_HANDLED;
- new szTargetname[32], szPlayername[32];
- get_user_name(player, szTargetname, charsmax(szTargetname))
- get_user_name(id, szPlayername, charsmax(szPlayername))
- switch( item )
- {
- case 0:
- {
- client_print(player, print_chat, "%s has accepted your coin challenge!", szPlayername)
- client_print(0, print_chat, "%s vs %s in coin flip challenge!", szTargetname, szPlayername)
- new rand = random_num(1,2);
- set_hudmessage(101, 236, 38, -1.0, 0.34, 0, 6.0, 4.0, _, _, -1)
- show_hudmessage(rand == 1 ? id:player, "You are Tails!")
- set_hudmessage(101, 236, 38, -1.0, 0.34, 0, 6.0, 4.0, _, _, -1)
- show_hudmessage(rand == 1 ? player:id, "You are Heads!")
- if(!get_challengers_num() && FW_PRETHINK_POST == 0)
- {
- FW_PRETHINK_POST = register_forward(FM_PlayerPreThink, "fw_client_prethink_post", 1);
- }
- user_coin_bet[id] = user_coin_bet[player]
- user_incoin_challenge[id] = rand == 1 ? 2:1;
- user_incoin_challenge[player] = rand == 1 ? 1:2;
- new chosen = random_num(1,2);
- display_coin(id, chosen)
- display_coin(player, chosen)
- client_print(0, print_chat, "%s is tails & %s is heads!", rand == 1 ? szPlayername:szTargetname, rand == 1 ? szTargetname:szPlayername)
- }
- case 1:
- {
- client_print(player, print_chat, "%s has denied your coin challenge!", szPlayername)
- }
- }
- return PLUGIN_HANDLED;
- }
- new player = str_to_num(sData);
- if(!is_user_connected(player) || user_incoin_challenge[player] > 0)
- {
- clclmd_coin_menu(id)
- return PLUGIN_HANDLED;
- }
- new oldmenu, newmenu;
- player_menu_info(player, oldmenu, newmenu);
- if(oldmenu > 0 || newmenu > 0)
- {
- new szTargetname[32]
- get_user_name(player, szTargetname, charsmax(szTargetname))
- client_print(id, print_center, "%s seems to be busy!", szTargetname)
- clclmd_coin_menu(id)
- return PLUGIN_HANDLED;
- }
- coin_menu_duel(id, player)
- return PLUGIN_HANDLED;
- }
- coin_menu_duel(id, target)
- {
- new szText[64], szName[32]
- get_user_name(id, szName, charsmax(szName))
- formatex(szText, charsmax(szText), "\w%s has Challenged you for \r%d$^n\yIn a coin flip game!^n", szName, user_coin_bet[id])
- new menu = menu_create(szText, "coin_menu_handle");
- formatex(szText, charsmax(szText), "DUEL|%d", id)
- menu_additem(menu, "Accept the Challenge!^n", szText)
- menu_additem(menu, "Deny the Challenge!", szText)
- menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
- menu_display(target, menu)
- }
- display_coin(target, chosen)
- {
- new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
- if(!ent) return;
- user_coin[target] = ent;
- static Float:fOrigin[3], Float:fAim[3];
- pev(target, pev_origin, fOrigin)
- pev(target, pev_view_ofs, fAim)
- xs_vec_add(fOrigin, fAim, fOrigin)
- pev(target, pev_v_angle, fAim)
- angle_vector(fAim, ANGLEVECTOR_FORWARD, fAim)
- xs_vec_mul_scalar(fAim, 10.0, fAim)
- xs_vec_add(fOrigin, fAim, fOrigin)
- pev(target, pev_v_angle, fAim)
- set_pev(ent, pev_classname, "coin")
- set_pev(ent, pev_movetype, MOVETYPE_NOCLIP)
- set_pev(ent, pev_solid, SOLID_NOT)
- set_pev(ent, pev_origin, fOrigin)
- set_pev(ent, pev_v_angle, fAim)
- engfunc(EngFunc_SetModel, ent, "models/coin.mdl")
- set_pev(ent, pev_animtime, get_gametime() + 2.0)
- set_pev(ent, pev_sequence, 1)
- set_pev(ent, pev_frame, 2.0)
- set_pev(ent, pev_framerate, 1.0)
- set_pev(ent, pev_iuser4, chosen)
- set_pev(ent, pev_iuser2, target)
- set_task(6.0, "task_chosen_side", ent)
- }
- public task_chosen_side(const ent)
- {
- new classname[6]
- pev(ent, pev_classname, classname ,charsmax(classname))
- if(!pev_valid(ent) || !equal(classname, "coin")) return;
- set_pev(ent, pev_sequence, 0)
- set_pev(ent, pev_frame, 1.0)
- set_pev(ent, pev_framerate, 1.0)
- if(pev(ent, pev_iuser4) == 2) set_pev(ent, pev_iuser3, 1)
- new owner = pev(ent, pev_iuser2);
- set_task(3.0, "client_disconnect", owner)
- switch(user_incoin_challenge[owner] == pev(ent, pev_iuser4)) {
- case true:{
- set_user_money(owner, (get_user_money(owner)+user_coin_bet[owner]))
- new sName[32];
- get_user_name(owner, sName, charsmax(sName))
- client_print(0, print_chat, "%s won the flip the coin game!", sName)
- set_hudmessage(21, 243, 13, -1.0, 0.28, 0, 6.0, 4.0, _, _, -1)
- show_hudmessage(owner, "You have Won!")
- }
- case false:
- {
- set_user_money(owner, (get_user_money(owner)-user_coin_bet[owner]))
- set_hudmessage(243, 21, 13, -1.0, 0.28, 0, 6.0, 4.0, _, _, -1)
- show_hudmessage(owner, "You have lost!")
- }
- }
- }
- get_challengers_num()
- {
- new players[32],pnum, count;
- get_players(players, pnum, "ch")
- for(new i; i < pnum; i++)
- {
- if(user_incoin_challenge[players[i]] > 0)
- {
- count++;
- }
- }
- return count;
- }
- public fw_client_prethink_post(target)
- {
- static ent;
- if((ent = user_coin[target]) > 0)
- {
- static Float:fOrigin[3], Float:fAim[3];
- pev(target, pev_origin, fOrigin)
- pev(target, pev_view_ofs, fAim)
- xs_vec_add(fOrigin, fAim, fOrigin)
- pev(target, pev_v_angle, fAim)
- angle_vector(fAim, ANGLEVECTOR_FORWARD, fAim)
- xs_vec_mul_scalar(fAim, 10.0, fAim)
- xs_vec_add(fOrigin, fAim, fOrigin)
- pev(target, pev_v_angle, fAim)
- set_pev(ent, pev_origin, fOrigin)
- pev(ent, pev_angles, fOrigin)
- fAim[0] = fOrigin[0];
- fAim[2] = fOrigin[2];
- fAim[1] += 180.0;
- if(pev(ent, pev_iuser3) == 1)
- {
- fAim[1] += 180.0;
- }
- set_pev(ent, pev_angles, fAim)
- }
- }
- public menuHandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0:
- {
- if (user_have_skins(id))
- {
- showSkins(id);
- }
- else
- {
- ColorChat(id, "!g%s!nNu ai !gskinuri !nin inventar!", szTag);
- cmdSayMenu(id);
- }
- }
- case 1: openCaseMenu(id);
- case 2:
- {
- if (user_have_skins(id))
- {
- showGiftMenu(id);
- }
- else
- {
- ColorChat(id, "!g%s!nNu ai !gskinuri !nin inventar!", szTag);
- cmdSayMenu(id);
- }
- }
- case 3:
- {
- if (user_have_skins(id))
- {
- showDestroyMenu(id);
- }
- else
- {
- ColorChat(id, "!g%s!nNu ai !gskinuri !nin inventar!", szTag);
- cmdSayMenu(id);
- }
- }
- case 4: cmdShowMarket(id)
- //case 5: cmdShowTradeMenu(id);
- case 5: showGamesMenu(id)
- case 6: cmd_CLAN( id )
- }
- return PLUGIN_HANDLED;
- }
- /* Apply skin menu */
- public showSkins(id)
- {
- new menu, szText[64], k=0;
- menu = menu_create("\w[ \yCS:GO OUTSTANDING \w] \ySkinurile \wtale", "skinsMenuHandler");
- for(new i; i < skinsNum; i++)
- {
- if(g_iPlayerSkins[id][i])
- {
- formatex(szText, charsmax(szText), "%s - \y%d \wBucati", g_aSkins[i][Name], g_iPlayerSkins[id][i]);
- menu_additem(menu, szText);
- g_iSkins[id][k++] = i;
- }
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new iSkinID = g_iSkins[id][item];
- g_iShowedSkin [id][g_aSkins[iSkinID][Type]] = iSkinID;
- ColorChat(id, "!g%s!nAi aplicat skinul !g%s!n.", szTag, g_aSkins[iSkinID][Name]);
- client_cmd(id, "lastinv");
- showSkins(id);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Open case menu */
- public openCaseMenu(id)
- {
- new menu, szText[128];
- formatex(szText, charsmax(szText), "\w[ \yCSGO OUTSTANDING \w] Points: \y%d \w| Keys: \y%d \w| Case: \y%d \w| Fragments: \y%d", g_iPlayerData[id][Points], g_iPlayerData[id][Keys], g_iPlayerData[id][Case], g_iPlayerData[id][Fragments])
- menu = menu_create(szText, "openCaseMenuHandler");
- if(!g_iPlayerData[id][Keys] || !g_iPlayerData[id][Case])
- {
- formatex(szText, charsmax(szText), "\dDeschide \ycufar^n");
- }
- else
- {
- formatex(szText, charsmax(szText), "Deschide \ycufar^n");
- }
- menu_additem(menu, szText);
- if(g_iPlayerData[id][Fragments] < FRAGMENTS_TO_CRAFT)
- {
- formatex(szText, charsmax(szText), "\dCrafteaza o \ycheie \d( \y%d \d/ \y%d \d)", g_iPlayerData[id][Fragments], FRAGMENTS_TO_CRAFT);
- }
- else
- {
- formatex(szText, charsmax(szText), "Crafteaza o \ycheie \w( \y%d \w/ \y%d \w)", g_iPlayerData[id][Fragments], FRAGMENTS_TO_CRAFT);
- }
- menu_additem(menu, szText);
- if(g_iPlayerData[id][Points] < KEY_COST)
- {
- formatex(szText, charsmax(szText), "\dCumpara o \ycheie \w- \y%d \dPuncte", KEY_COST);
- }
- else
- {
- formatex(szText, charsmax(szText), "Cumpara o \ycheie \w- \y%d \wPuncte", KEY_COST);
- }
- menu_additem(menu, szText);
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public openCaseMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0:
- {
- if(!g_iPlayerData[id][Keys])
- {
- ColorChat(id, "!g%s!n Nu ai o !gcheie!n!", szTag);
- return PLUGIN_HANDLED;
- }
- if(!g_iPlayerData[id][Case])
- {
- ColorChat(id, "!g%s!n Nu ai un !gcufar!n!", szTag);
- return PLUGIN_HANDLED;
- }
- new iSkins[SKINS_MAX], iRand, iChance, k=0;
- iChance = random_num(1, g_iMaxChance);
- for(new i; i < skinsNum; i++)
- {
- if(iChance <= g_aSkins[i][Chance])
- iSkins[k++] = i;
- }
- iRand = k == 0 ? iSkins[k] : iSkins[random(k)];
- g_iPlayerSkins[id][iRand]++;
- g_iPlayerData[id][Keys]--;
- g_iPlayerData[id][Case]--;
- ColorChat(id, "!g%s!nAi deschis un cufar si ai primit skinul !g%s!n.", szTag, g_aSkins[iRand][Name]);
- SaveData(id);
- openCaseMenu(id);
- }
- case 1:
- {
- if(g_iPlayerData[id][Fragments] < FRAGMENTS_TO_CRAFT)
- {
- ColorChat(id, "!g%s!n Insuficiente !gfragmente !npentru a crafta o !gcheie!n.", szTag);
- return PLUGIN_HANDLED;
- }
- g_iPlayerData[id][Keys]++;
- g_iPlayerData[id][Fragments] -= FRAGMENTS_TO_CRAFT;
- ColorChat(id, "!g%s!n Ai transformat !g%d!n fragmente intr-o !gcheie!n.", szTag, FRAGMENTS_TO_CRAFT);
- openCaseMenu(id);
- }
- case 2:
- {
- if(g_iPlayerData[id][Points] < KEY_COST)
- {
- ColorChat(id, "!g%s!n Insuficiente !gpuncte !npentru a cumpara o !gcheie!n.", szTag);
- return PLUGIN_HANDLED;
- }
- g_iPlayerData[id][Keys]++;
- g_iPlayerData[id][Points] -= KEY_COST;
- ColorChat(id, "!g%s!n Ai achizitionat o !gcheie!n.", szTag);
- SaveData(id);
- openCaseMenu(id);
- }
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Gift menu */
- public showGiftMenu(id)
- {
- new menu, szText[128], szName[32];
- menu = menu_create("\w[ \yCS:GO OUTSTANDING\w] \yGift \wMenu", "giftMenuHandler");
- if(g_iReceiver[id])
- {
- get_user_name(g_iReceiver[id], szName, charsmax(szName));
- formatex(szText, charsmax(szText), "Jucator: \y%s", szName);
- }
- else formatex(szText, charsmax(szText), "Alege \yjucator\w:");
- menu_additem(menu, szText);
- if(g_iSkinToGift[id] == skinsNum)
- formatex(szText, charsmax(szText), "Alege \ySkin^n");
- else formatex(szText, charsmax(szText), "Skin spre oferire: \y%s^n", g_aSkins[g_iSkinToGift[id]][Name]);
- menu_additem(menu, szText);
- menu_additem(menu, "\rTrimite");
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public giftMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0:
- {
- new iPlayers[32], iNum, idReceiver;
- get_players(iPlayers, iNum);
- idReceiver = iPlayers[g_iIterator[id]]
- g_iReceiver[id] = idReceiver;
- g_iIterator[id]++;
- if(g_iIterator[id] == iNum)
- g_iIterator[id] = 0;
- showGiftMenu(id);
- }
- case 1:
- {
- showSkinsForGift(id);
- }
- case 2:
- {
- if(g_iSkinToGift[id] == skinsNum)
- {
- ColorChat(id, "!g%s!n Alege un !gskin!n!",szTag);
- showGiftMenu(id)
- return PLUGIN_HANDLED;
- }
- if(g_iReceiver[id] == id)
- {
- ColorChat(id, "!g%s!n Nu iti da !gskinuri !ntie!",szTag);
- showGiftMenu(id)
- return PLUGIN_HANDLED;
- }
- new szName[32];
- get_user_name(id, szName, charsmax(szName));
- g_iPlayerSkins[id][g_iSkinToGift[id]]--;
- g_iPlayerSkins[g_iReceiver[id]][g_iSkinToGift[id]]++;
- ColorChat(g_iReceiver[id], "!g%s!nAi primit !g%s !n de la !g%s!n.", szTag, g_aSkins[g_iSkinToGift[id]][Name], szName);
- g_iSkinToGift[id] = skinsNum;
- SaveData(id);
- SaveData(g_iReceiver[id]);
- }
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Skins List for gift */
- public showSkinsForGift(id)
- {
- new menu, szText[64], k=0;
- menu = menu_create("\w[ \yCS:GO OUTSTANDING \w] Alege skinul pe care vrei sa il daruiesti", "skinsForGiftMenuHandler");
- for(new i; i < skinsNum; i++)
- if(g_iPlayerSkins[id][i])
- {
- formatex(szText, charsmax(szText), "%s - \y%d \wBucati", g_aSkins[i][Name], g_iPlayerSkins[id][i]);
- menu_additem(menu, szText);
- g_iSkins[id][k++] = i;
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsForGiftMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- g_iSkinToGift[id] = g_iSkins[id][item];
- showGiftMenu(id);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Destroy skin menu */
- public showDestroyMenu(id)
- {
- new menu, szText[128];
- menu = menu_create("\w[ \yCS:GO OUTSTANDING \w] \wDestroy \ySkin \wMenu", "destroyMenuHandler");
- if(g_iSkinToDestroy[id] == skinsNum)
- formatex(szText, charsmax(szText), "Alege \ySkin^n");
- else formatex(szText, charsmax(szText), "Skin pentru distrugere: \y%s^n", g_aSkins[g_iSkinToDestroy[id]][Name]);
- menu_additem(menu, szText);
- menu_additem(menu, "\rDistruge");
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public destroyMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0:
- {
- showSkinsForDestroy(id);
- }
- case 1:
- {
- if(g_iSkinToDestroy[id] == skinsNum)
- {
- ColorChat(id, "!g%s!n Alege un !gskin!n!",szTag);
- showDestroyMenu(id)
- return PLUGIN_HANDLED;
- }
- g_iPlayerSkins[id][g_iSkinToDestroy[id]]--;
- g_iPlayerData[id][Fragments]++;
- ColorChat(id, "!g%s!nAi distrus skinul !g%s!n si ai primit un !gfragment !nde !gcheie!n.", szTag, g_aSkins[g_iSkinToDestroy[id]][Name]);
- g_iSkinToDestroy[id] = skinsNum;
- SaveData(id);
- showDestroyMenu(id);
- }
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Skins List to destroy */
- public showSkinsForDestroy(id)
- {
- new menu, szText[64], k=0;
- menu = menu_create("\w[ \yCS:GO OUTSTANDING \w] Alege skinul pe care vrei sa il distrugi", "skinsForDestroyMenuHandler");
- for(new i; i < skinsNum; i++)
- if(g_iPlayerSkins[id][i])
- {
- formatex(szText, charsmax(szText), "%s - \y%d \wBucati", g_aSkins[i][Name], g_iPlayerSkins[id][i]);
- menu_additem(menu, szText);
- g_iSkins[id][k++] = i;
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsForDestroyMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- g_iSkinToDestroy[id] = g_iSkins[id][item];
- showDestroyMenu(id);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Market menu */
- public cmdShowMarket(id)
- {
- new menu;
- menu = menu_create("\w[ \yCSGO OUTSTANDING \w] Market Shop", "marketMenuHandler");
- menu_additem(menu, "\wCumpara \yskin^n");
- menu_additem(menu, "Adauga \yskin \win market");
- menu_additem(menu, "Retrage \yskin \wdin market");
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public marketMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0: showSkinsInMarketMenu(id);
- case 1: showSkinsToSellMenu(id);
- case 2: showRemoveSkinMenu(id);
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Skins in market */
- public showSkinsInMarketMenu(id)
- {
- new menu, szText[256], szName[32], k=0;
- new iPlayers[32], iNum, idV;
- get_players(iPlayers, iNum);
- menu = menu_create("\w[ \yCSGO OUTSTANDING \w] Skinuri in market", "skinsInMarketMenuHandler");
- for(new i; i < iNum; i++)
- {
- idV = iPlayers[i];
- for(new j; j < skinsNum; j++)
- {
- if(g_iSkinsInMarket[idV][j])
- {
- get_user_name(idV, szName, charsmax(szName));
- formatex(szText, charsmax(szText), "\y%s \w[ \y%d \wpoints \w] [ Vanzator: \y%s \w]", g_aSkins[j][Name], g_iSkinsInMarket[idV][j], szName);
- menu_additem(menu, szText);
- g_iSkins[id][k] = j;
- iSeller[id][k++] = idV;
- }
- }
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsInMarketMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new szSellerName[32], szName[32];
- new iSkinID = g_iSkins[id][item]
- new iSellerID = iSeller[id][item];
- if(g_iPlayerData[id][Points] < g_iSkinsInMarket[iSellerID][iSkinID])
- {
- ColorChat(id, "!g%s!nPuncte insuficiente pentru a cumpara skinul!", szTag);
- return PLUGIN_HANDLED;
- }
- get_user_name(id, szName, charsmax(szName));
- get_user_name(iSellerID, szSellerName, charsmax(szSellerName));
- g_iPlayerData[id][Points] -= g_iSkinsInMarket[iSellerID][iSkinID];
- g_iPlayerData[iSellerID][Points] += g_iSkinsInMarket[iSellerID][iSkinID];
- g_iPlayerSkins[id][iSkinID]++;
- ColorChat(0, "!g%s!nA fost achizitionat skinul !g%s !nde la !g%s !ncu !g%d !npuncte de catre !g%s!n.", szTag, g_aSkins[iSkinID][Name], szSellerName, g_iSkinsInMarket[iSellerID][iSkinID], szName);
- ColorChat(iSellerID, "!g%s!nTi-a fost achizitionat skinul !g%s !ncu !g%d !npuncte de catre !g%s!n.", szTag, g_aSkins[iSkinID][Name], g_iSkinsInMarket[iSellerID][iSkinID], szName);
- g_iSkinsInMarket[iSellerID][iSkinID] = 0;
- SaveData(id);
- SaveMarket(id);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- /* Skins to sell */
- public showSkinsToSellMenu(id)
- {
- new menu, szText[128], k=0;
- menu = menu_create("\w[ \yCSGO OUTSTANDING \w] Alege skinul", "skinsToSellMenuHandler");
- if(!g_iPrice[id])
- formatex(szText, charsmax(szText), "Alege \ypretul^n");
- else
- formatex(szText, charsmax(szText), "\yPret\r: \w%d^n", g_iPrice[id]);
- menu_additem(menu, szText);
- for(new i; i < skinsNum; i++)
- {
- if(g_iPlayerSkins[id][i])
- {
- formatex(szText, charsmax(szText), "\y%s \w- \r*\y%d \wBucati", g_aSkins[i][Name], g_iPlayerSkins[id][i]);
- menu_additem(menu, szText);
- g_iSkins[id][k++] = i;
- }
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsToSellMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new iSkinID, szName[32];
- get_user_name(id, szName, charsmax(szName));
- if(item == 0)
- {
- client_cmd(id, "messagemode Insert_price");
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- if(!g_iPrice[id])
- {
- ColorChat(id, "!g%s!nNu ai ales inca pretul!", szTag);
- showSkinsToSellMenu(id)
- return PLUGIN_HANDLED
- }
- iSkinID = g_iSkins[id][item-1];
- if(g_iSkinsInMarket[id][iSkinID])
- {
- ColorChat(id, "!g%s!nAi pus deja acest !gskin in !gmarket!n!", szTag);
- showSkinsToSellMenu(id);
- return PLUGIN_HANDLED;
- }
- g_iPlayerSkins[id][iSkinID]--;
- g_iSkinsInMarket[id][iSkinID] = g_iPrice[id];
- ColorChat(id, "!g%s!nAi adaugat skinul !g%s !nin market cu !g%d !npuncte.", szTag, g_aSkins[iSkinID][Name], g_iPrice[id]);
- ColorChat(0, "!g%s!nJucatorul !g%s !na adaugat skinul !g%s !nin market cu !g%d !npuncte.", szTag, szName, g_aSkins[iSkinID][Name], g_iPrice[id]);
- g_iPrice[id] = 0;
- SaveData(id)
- SaveMarket(id);
- showSkinsToSellMenu(id);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- public cmdInsertPrice(id)
- {
- new szPrice[8];
- read_args(szPrice, charsmax(szPrice));
- remove_quotes(szPrice);
- new iPrice = str_to_num(szPrice);
- if(!iPrice || iPrice < 0)
- {
- ColorChat(id, "!g%s!nInvalid number, try again!", szTag);
- client_cmd(id, "messagemode Insert_price");
- }
- g_iPrice[id] = iPrice;
- showSkinsToSellMenu(id);
- }
- /* Remove skin from market */
- public showRemoveSkinMenu(id)
- {
- new menu, szText[128], k=0;
- menu = menu_create("\w[ \yCSGO OUTSTANDING \w] Alege skinul pe care doresti sa il retragi", "skinsToRemoveMenuHandler");
- for(new i; i < skinsNum; i++)
- {
- if(g_iSkinsInMarket[id][i])
- {
- formatex(szText, charsmax(szText), "\y%s", g_aSkins[i][Name]);
- menu_additem(menu, szText);
- g_iSkins[id][k++] = i;
- }
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public skinsToRemoveMenuHandler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- cmdShowMarket(id);
- return PLUGIN_HANDLED;
- }
- new szName[32], iSkinID;
- get_user_name(id, szName, charsmax(szName));
- iSkinID = g_iSkins[id][item];
- g_iSkinsInMarket[id][iSkinID] = 0;
- g_iPlayerSkins[id][iSkinID]++;
- ColorChat(0, "!g%s!nJucatorul !g%s !na retras skinul !g%s !ndin market.", szTag, szName, g_aSkins[iSkinID][Name]);
- cmdShowMarket(id);
- return PLUGIN_HANDLED;
- }
- /* Games Menu */
- public showGamesMenu(id)
- {
- new menu, szText[64];
- menu = menu_create("\w[ \yCS:GO OUTSTANDING \w] Meniu de \yjocuri", "gamesMenuHandler");
- formatex(szText, charsmax(szText), "Tombola | \y%d \wPuncte", RAFFLE_COST)
- menu_additem(menu, szText);
- formatex(szText, charsmax(szText), "Coin \yFlip")
- menu_additem(menu, szText);
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
- menu_display(id, menu, 0);
- }
- public gamesMenuHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0:
- {
- if(g_iPlayerData[id][Points] < RAFFLE_COST)
- {
- ColorChat(id, "!g%s!nInsuficiente !gpuncte !npentru a juca la tombola", szTag);
- return PLUGIN_HANDLED;
- }
- new szName[32];
- get_user_name(id, szName, charsmax(szName));
- for(new i; i < raffleMembers; i++)
- {
- if(g_iRafflePlayers[i] == id)
- {
- ColorChat(id, "!g%s!nTe-ai inscris deja in tombola runda asta!", szTag);
- return PLUGIN_HANDLED;
- }
- }
- g_iRafflePlayers[raffleMembers++] = id;
- g_iPlayerData[id][Points] -= RAFFLE_COST
- ColorChat(0, "!g%s!nJucatorul !g%s !ns-a inscris in !gtombola!n.Jucatori inscrisi: !g%d!n.", szTag, szName, raffleMembers);
- }
- }
- if( item == MENU_EXIT )
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 1:
- {
- if(user_incoin_challenge[id] > 0) return 1;
- new menu = menu_create("\rCoin Challenge^n\yChoose your stack!", "coin_menu_handle");
- new szText[32]
- formatex(szText, charsmax(szText), "\wChoose your Stack: \r%d$^n^n", user_coin_bet[id])
- menu_additem(menu, szText, "STACK")
- menu_additem(menu, "\rReady!", "STACK")
- menu_display(id, menu)
- }
- }
- return 1;
- }
- /* Round end event */
- public evRoundEnd()
- {
- if(raffleMembers)
- {
- new iRand, szName[32];
- iRand = random(raffleMembers);
- get_user_name(g_iRafflePlayers[iRand], szName, charsmax(szName));
- g_iPlayerData[g_iRafflePlayers[iRand]][Points] += RAFFLE_COST*raffleMembers;
- ColorChat(0, "!g%s!nTombola pe runda aceasta s-a incheiat !", szTag);
- ColorChat(0, "!g%s!nJucatorul !g%s !na avut bulan si a castigat !g%d!n puncte !", szTag, szName, RAFFLE_COST*raffleMembers);
- ColorChat(0, "!g%s!nNu fiti suparati, vorba aia, prost sa fii noroc sa ai !", szTag);
- raffleMembers = 0;
- }
- else
- {
- ColorChat(0, "!g%s!nNiciun jucator !ginscris !nin aceasta runda !", szTag);
- ColorChat(0, "!g%s!nAsteptam extragerea din runda urmatoare !", szTag);
- }
- }
- /* Giving keys when win a round */
- public terroristsWin()
- {
- new iPlayers[32], iNum, id, iRand;
- get_players(iPlayers, iNum, "ae", "TERRORISTS");
- for(new i; i < iNum; i++)
- {
- id = iPlayers[i];
- iRand = random_num(1, 100);
- if(iRand <= DROP_FRAGMENTS_CHANCE)
- {
- g_iPlayerData[id][Fragments]++;
- ColorChat(id, "!g%s!nFelicitari, ai primit un !gfragment !nde cheie !", szTag);
- SaveData(id);
- }
- }
- }
- public ctsWin()
- {
- new iPlayers[32], iNum, id, iRand;
- get_players(iPlayers, iNum, "ae", "CT");
- for(new i; i < iNum; i++)
- {
- id = iPlayers[i];
- iRand = random_num(1, 100);
- if(iRand <= DROP_FRAGMENTS_CHANCE)
- {
- g_iPlayerData[id][Fragments]++;
- ColorChat(id, "!g%s!nFelicitari, ai primit un !gfragment !nde cheie !", szTag);
- SaveData(id);
- }
- }
- }
- public hamAddWeaponToPlayer(ent, id)
- {
- if(!is_valid_ent(ent) || !is_user_connected(id))
- return HAM_IGNORED;
- for (new i; i < skinsNum; i++) {
- if(entity_get_int(ent, EV_INT_WEAPONKEY) == 500+i)
- {
- entity_set_int(ent, EV_INT_WEAPONKEY, 0);
- g_iShowedSkin[id][g_aSkins[i][Type]] = i;
- return HAM_HANDLED;
- }
- }
- return HAM_IGNORED;
- }
- public fwSetModel(entity, model[])
- {
- if(!is_valid_ent(entity))
- return FMRES_IGNORED;
- static szClassName[33];
- entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName));
- if(!equal(szClassName, "weaponbox"))
- return FMRES_IGNORED;
- static iOwner;
- new szModels[][][] = {
- {"models/w_ak47.mdl", "weapon_ak47" },
- {"models/w_m4a1.mdl", "weapon_m4a1" },
- {"models/w_awp.mdl", "weapon_awp" }
- }
- new iWeapons[] = {
- CSW_AK47,
- CSW_M4A1,
- CSW_AWP
- }
- iOwner = entity_get_edict(entity, EV_ENT_owner);
- for(new i; i < sizeof(szModels); i++)
- if(equal(model, szModels[i][0]))
- {
- static iStoredAugID;
- iStoredAugID = find_ent_by_owner(ENG_NULLENT, szModels[i][1], entity);
- if(!is_valid_ent(iStoredAugID))
- return FMRES_IGNORED;
- entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, 500+g_iShowedSkin[iOwner][iWeapons[i]]);
- entity_set_model(entity, szModels[i][0]);
- return FMRES_SUPERCEDE;
- }
- return FMRES_IGNORED;
- }
- /* Save & Load Data */
- public SaveData(id)
- {
- new iVault = nvault_open("CSGOData2");
- new szName[32], szData[256];
- get_user_name(id, szName, charsmax(szName));
- formatex(szData, charsmax(szData), "%i#%i#%i#%i", g_iPlayerData[id][Points], g_iPlayerData[id][Case], g_iPlayerData[id][Keys], g_iPlayerData[id][Fragments]);
- for(new i; i < skinsNum; i++)
- format(szData, charsmax(szData), "%s#%i", szData, g_iPlayerSkins[id][i]);
- nvault_set(iVault, szName, szData);
- nvault_close(iVault);
- }
- public LoadData(id)
- {
- new iVault = nvault_open("CSGOData2");
- if(iVault == INVALID_HANDLE) {
- log_amx("ERROR: Unable to open vault file %s", "CSGOData2");
- return PLUGIN_HANDLED;
- }
- new szName[32], szData[256], szArg[SKINS_MAX][9], iArg[SKINS_MAX], iTimestamp;
- get_user_name(id, szName, charsmax(szName));
- if(nvault_lookup(iVault, szName, szData, charsmax(szData), iTimestamp))
- {
- /* +4 because we must load points keys case and fragments */
- for(new i; i < skinsNum + 4; i ++)
- {
- strtok(szData, szArg[i], charsmax(szArg[]), szData, charsmax(szData), '#');
- iArg[i] = str_to_num(szArg[i]);
- }
- g_iPlayerData[id][Points] = iArg[0];
- g_iPlayerData[id][Case] = iArg[1];
- g_iPlayerData[id][Keys] = iArg[2];
- g_iPlayerData[id][Fragments] = iArg[3];
- for(new i; i < skinsNum; i++)
- g_iPlayerSkins[id][i] = iArg[i+4]; /* +4 because we loaded points keys case and fragments */
- }
- else
- {
- g_iPlayerData[id][Points] = 15;
- g_iPlayerData[id][Case] = 1;
- g_iPlayerData[id][Keys] = 1;
- g_iPlayerData[id][Fragments] = 0;
- for(new i; i < skinsNum; i++)
- g_iPlayerSkins[id][i] = 0;
- }
- nvault_close(iVault);
- return PLUGIN_CONTINUE;
- }
- /* Save & Load Market */
- public SaveMarket(id)
- {
- new iVault = nvault_open("CSGOMarket");
- new szName[32], szData[256];
- get_user_name(id, szName, charsmax(szName));
- for(new i; i < skinsNum; i++)
- format(szData, charsmax(szData), "%s#%i", szData, g_iSkinsInMarket[id][i]);
- nvault_set(iVault, szName, szData);
- nvault_close(iVault);
- }
- public LoadMarket(id)
- {
- new iVault = nvault_open("CSGOMarket");
- new szName[32], szData[256], szArg[SKINS_MAX][9], iArg[SKINS_MAX];
- get_user_name(id, szName, charsmax(szName));
- nvault_get(iVault, szName, szData, charsmax(szData));
- for(new i; i < skinsNum; i ++)
- {
- strtok(szData, szArg[i], charsmax(szArg[]), szData, charsmax(szData), '#');
- iArg[i] = str_to_num(szArg[i]);
- }
- for(new i; i < skinsNum; i++)
- g_iSkinsInMarket[id][i] = iArg[i];
- nvault_close(iVault);
- }
- 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^x01 |^x04 %s ^x03)", Ranks[kRange[index]][Rank_NAME], 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, "!g[CS:GO Outstanding]Mesajul 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^x01 |^x04 %s ^x03)", Ranks[kRange[index]][Rank_NAME], 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);
- 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 ])
- {
- ColorChat(0, "!g[CS:GO Outstanding]Ai confirmat deja numele clanului");
- ShowMenuCreateClan( index );
- return;
- }
- if( !kClanName[ index ][ 0 ])
- {
- ColorChat(0, "!g[CS:GO Outstanding] INTRODUCETI NUMELE CLANULUI ");
- client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"");
- return;
- }
- static xd; xd = get_membersnum( index );
- if( xd )
- {
- ColorChat(0, "!g[CS:GO Outstanding]Acest 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, "!g[CS:GO Outstanding]Eroare parola" );
- client_cmd( index, "messagemode ^"JOIN_PASSWORD^"");
- return;
- }
- switch(kStatus[ index ])
- {
- case NOT_REGISTERED:
- {
- ColorChat(0, "!g[CS:GO Outstanding]Confirmati 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, "!g[CS:GO Outstanding]Parola incorecta" );
- return;
- }
- ColorChat(0, "!g[CS:GO Outstanding]Te-ai conectat la contul tau");
- ForceJoinTeam( index );
- }
- case LOGGUED:
- {
- if(flag_get(kBits[CAN_CHANGE_PW], index))
- {
- ColorChat(0, "!g[CS:GO Outstanding]V-ati schimbat deja contorul pe aceasta harta");
- return;
- }
- ColorChat(0, "!g[CS:GO Outstanding]Confirmati-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[CS:GO Outstanding] INTRODUCETI NUMELE CLANULUI" );
- client_cmd( index, "messagemode ^"JOIN_CLAN_NAME^"" );
- return PLUGIN_HANDLED;
- }
- ColorChat(0, "!g[CS:GO Outstanding]Ati confirmat deja numele clanului" );
- ShowMenuCreateClan( index );
- }
- case 1:
- {
- if(!kClanName[ index ][ 0 ])
- {
- ColorChat(0, "!g[CS:GO Outstanding]Trebuie 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, "!g[CS:GO Outstanding]Ai 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,"!g[CS:GO Outstanding]Numarul 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,"!g[CS:GO Outstanding]Numarul 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][CS:GO Outstanding] Ati atins numarul maxim de membri");
- menu_destroy( menu );
- return PLUGIN_HANDLED;
- }
- ColorChat(0, "!g[CS:GO Outstanding][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][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][CS:GO Outstanding] Numele clanului a fost creat corect." );
- kClanNameConfirmated[ index ] = true;
- DataManagement( index, SAVE );
- ShowMenuCreateClan( index );
- }
- case 1:
- {
- ColorChat(0, "!g[CS:GO Outstanding] 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, "\wRank General: \y%s",
- Ranks[ adv_vault_get_field(vault, kFields[C_RANGE ]) ][ Rank_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 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,"!g[CS:GO Outstanding]Nu te pooi expedia singur");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- if( level == CLAN_OWNER)
- {
- ColorChat(0,"!g[CS:GO Outstanding]Nu 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);
- ColorChat(0, "!g[CS:GO Outstanding]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,"!g[CS:GO Outstanding]Nu poti schimba rangul, singur");
- ShowMenuClan( index );
- return PLUGIN_HANDLED;
- }
- if( level == CLAN_OWNER)
- {
- ColorChat(0,"!g[CS:GO Outstanding]Nu 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);
- ColorChat(0, "!g[CS:GO Outstanding]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, "!g[CS:GO Outstanding]Introduceti parola pentru a intra in cont" );
- client_cmd( index,"messagemode ^"JOIN_PASSWORD^"" );
- }
- else
- {
- ColorChat(0, "!g[CS:GO Outstanding]Nu puteti alege aceasta optiune");
- ShowLogMenu( index );
- return PLUGIN_HANDLED;
- }
- }
- case 1:
- {
- if(kStatus[ index ] == NOT_REGISTERED )
- {
- ColorChat(0, "!g[CS:GO Outstanding]Introduceti o parola pentru a crea un cont" );
- client_cmd( index ,"messagemode ^"JOIN_PASSWORD^"" );
- }
- else
- {
- ColorChat(0, "!g[CS:GO Outstanding]Nu puteti alege aceasta optiune" );
- ShowLogMenu( index );
- return PLUGIN_HANDLED;
- }
- }
- case 2:
- {
- if(kStatus[ index ] == LOGGUED && !flag_get(kBits[CAN_CHANGE_PW],index))
- {
- ColorChat(0, "!g[CS:GO Outstanding]Introduceti noua parola" );
- client_cmd( index,"messagemode ^"JOIN_PASSWORD^"");
- }
- else
- {
- ColorChat(0, "!g[CS:GO Outstanding]Nu 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, "!g[CS:GO Outstanding]Parola dvs. a fost modificata cu succes");
- flag_set(kBits[CAN_CHANGE_PW], index);
- }
- else
- {
- copy(kPassword[ index ], PASSWORD_LENGHT-1, kPassword2[ index ]);
- ColorChat(0, "!g[CS:GO Outstanding]Contul 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, "!g[CS:GO Outstanding]Introduceti noua Parola" );
- else
- ColorChat(0, "!g[CS:GO Outstanding]Introduceti 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, 0, 0, 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]:"Fara Clan", Ranks[kRange[index]][Rank_NAME] );
- }
- else
- {
- set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 1.1, 0.0, 0.0, -1);
- ShowSyncHudMsg(index, hudSync, "Rank: %s^nClan: %s^nKilluri: %d / %d",
- Ranks[ kRange[index] ][ Rank_NAME ], kClanName[ index ][0]?kClanName[ index ]:"Fara Clan", kDataRank[ index ][ KILLS ], Ranks[ kRange[index] ][ Rank_FRAGS ] );
- }
- }
- UpdateRange( index )
- {
- static range; range = kRange[ index ];
- while( kDataRank[ index ][ KILLS ] >=Ranks[ kRange[index] ][ Rank_FRAGS ])
- ++kRange[ index ];
- if(kRange[ index ] > range )
- ColorChat(0,"!g[CS:GO Outstanding]Felicitari ai urcat in rang: !g%s", Ranks[ kRange[index] ][Rank_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 );
- }
- /* ColorChat */
- 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();
- }
- }
- }
- // Get Weapon Entity's Owner
- stock fm_cs_get_weapon_ent_owner(ent)
- {
- // Prevent server crash if entity's private data not initalized
- if (pev_valid(ent) != 2) return -1;
- return get_pdata_cbase(ent, 41, 4);
- }
- stock user_have_skins(id) {
- new ok = 0;
- for (new i; i < skinsNum; i++) {
- if (g_iPlayerSkins[id][i] > 0) {
- ok = 1;
- }
- }
- return ok;
- }
- stock fm_cs_get_user_team ( id )
- {
- return get_pdata_int ( id, 114, 5 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement