Tessék
Kód: #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <hamsandwich> #include <cstrike> #include <colorchat> #include <fun> new const PLUGIN[] = "Global Offensive"; new const VERSION[] = "1.1p"; new const AUTHOR[] = "DeRoiD"; #define MAX 50 #define LADAESELY 98 #define PointsMin 3 #define PointsMax 8 #define Drop 5 #define MarkMin 25 #pragma semicolon 1 #define ADMINRANG ADMIN_KICK new bool: skinek[33]; new message[192]; new teamInfo; new maxPlayers; new strName[191]; new strText[191]; new alive[11]; new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon; new UsingWeapon[9][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33], aThing[33], aTarget[33], aPoints[33], Prefix[32]; new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText; new WeaponinMarket[33], bool: inMarket[33], MarketPoints[33], Choosen[33]; new SavedPassword[33][32], bool:Loged[33], Password[33][32], probalkozasok[33] = 0; new DefaultSkin[31][32], NeedKills[30], Rangs[30][32]; new Selected[33]; new const eWeapon[][] = { "weapon_famas", "weapon_usp", "weapon_awp", "weapon_mp5navy", "weapon_m3", "weapon_m4a1", "weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade", "weapon_smokegrenade", "weapon_c4" }; enum _:Fegyver{ uzi[64], nev[20], csw[20], golyo }; new const fegyverek[8][Fegyver] = { { "AK47", "weapon_ak47", CSW_AK47, 90 }, { "M4A1", "weapon_m4a1", CSW_M4A1, 90 }, { "AWP", "weapon_awp", CSW_AWP, 30 }, { "FAMAS", "weapon_famas", CSW_FAMAS, 90 }, { "MP5", "weapon_mp5navy", CSW_MP5NAVY, 120 }, { "SHOTGUN", "weapon_m3", CSW_M3, 32 }, { "DEAGLE", "weapon_deagle", CSW_DEAGLE, 35 }, { "USP", "weapon_usp", CSW_USP, 100 } }; public plugin_precache() { new Line[128], Data[4][48], Len; AllWeapon++; get_configsdir(Folder, 47); format(Folder, 47, "%s/csgo", Folder); format(SkinFile, 47, "%s/skins.cfg", Folder); format(SaveFile, 47, "%s/save.ini", Folder); format(RangFile, 47, "%s/rangs.cfg", Folder); format(RegisterFile, 47, "%s/reg.ini", Folder); format(DefaultSkinFile, 47, "%s/dskins.cfg", Folder); format(Prefix, 31, "[Global Offensive]"); if(file_exists(RangFile)) { for(new i; i < file_size(RangFile, 1); i++) { read_file(RangFile, i, Line, 127, Len); parse(Line, Data[0], 31, Data[1], 31); copy(Rangs[i], 31, Data[0]); NeedKills[i] = str_to_num(Data[1]); } } if(file_exists(SkinFile)) { for(new i; i < file_size(SkinFile, 1); i++) { if(AllWeapon >= MAX-1) break; read_file(SkinFile, i, Line, 127, Len); if(!strlen(Line) || Line[0] == ';') continue; parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31); Weapons[AllWeapon] = str_to_num(Data[0]); copy(WeaponNames[AllWeapon], 31, Data[1]); if(ValidMdl(Data[2])) { precache_model(Data[2]); copy(WeaponMdls[AllWeapon], 47, Data[2]); } WeaponDrop[AllWeapon] = str_to_num(Data[3]); AllWeapon++; } } if(file_exists(DefaultSkinFile)) { for(new i; i < file_size(DefaultSkinFile, 1); i++) { read_file(DefaultSkinFile, i, Line, 127, Len); if(!strlen(Line) || Line[0] == ';') continue; parse(Line, Data[0], 31, Data[1], 47); if(ValidMdl(Data[1])) { precache_model(Data[1]); copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]); } } } } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(PLUGIN, VERSION, FCVAR_SERVER); register_clcmd("say /menu", "MenuOpen"); register_clcmd("say /reg", "RegMenu"); register_clcmd("say /gun", "Guns"); register_clcmd("say /guns", "Guns"); register_concmd("Cost", "MarketCost"); register_concmd("Gift", "GiftPoint"); register_concmd("UserPassword", "PlayerPassword"); register_forward(FM_CmdStart, "CmdStart" ); SayText = get_user_msgid("SayText"); teamInfo = get_user_msgid ("TeamInfo"); maxPlayers = get_maxplayers(); register_message (SayText, "avoid_duplicated"); register_forward(FM_ClientUserInfoChanged, "ClientInfoChanged"); RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1); for(new i; i < sizeof(eWeapon); i++) RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1); register_clcmd ("say", "hook_say"); register_clcmd ("say_team", "hook_teamsay"); } public client_connect(id) { skinek[id]=true; probalkozasok[id] = 0; Selected[id] = 0; for(new i; i<9; i++) UsingWeapon[i][id]=0; for(new i = 1; i < AllWeapon; i++) uWeapon[i][id]=0; } public CmdStart(id, uc_handle, seed) { if(get_uc(uc_handle, UC_Impulse) == 201) MenuOpen(id); } public Guns(id) { if(Choosen[id] < 1) { Choosen[id] = 0; WeaponMenu(id); } } public PlayerSpawn(id) { if(is_user_alive(id)) { Choosen[id] = 0; cs_set_user_money(id, 0, 0); if(user_has_weapon(id, CSW_C4)) { strip_user_weapons(id); give_item(id, "weapon_c4"); give_item(id, "weapon_knife"); WeaponMenu(id); return PLUGIN_HANDLED; } strip_user_weapons(id); give_item(id, "weapon_knife"); WeaponMenu(id); if(cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1); } return PLUGIN_CONTINUE; } public MenuOpen(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_HANDLED; } MenuMod[id] = 0; Menu(id); return PLUGIN_CONTINUE; } public client_death(Killer, Victim) { if(Killer == Victim) return PLUGIN_HANDLED; Kills[Killer]++; if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)-1) if(Kills[Killer] >= NeedKills[Rang[Killer]]) Rang[Killer]++; new pPont, Name[32]; pPont += random_num(PointsMin, PointsMax); Points[Killer] += pPont; set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(Killer, "+%d Pont", pPont); if(Drop >= random_num(1, 100)) { get_user_name(Killer, Name, 31); new x = random_num(1, 4); if(x == 1) { pKey[Killer]++; print_color(0, "!g%s!t %s !y talált egy!g Kulcsot!y!", Prefix, Name); } if(x == 2 || x == 3) { Chest[Killer]++; print_color(0, "!g%s!t %s!y talált egy!g Ládát!y!", Prefix, Name); } } Save(Killer); return PLUGIN_CONTINUE; } public MarketCost(id) { if(inMarket[id] || !Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 0) { client_cmd(id, "messagemode Cost"); return PLUGIN_CONTINUE; } else if(MarkMin >= Cost) { print_color(id, "%s!t %d!y pont alatt nem tudsz eladni semmit!", Prefix, MarkMin); client_cmd(id, "messagemode Cost"); return PLUGIN_CONTINUE; } else { MarketPoints[id] = Cost; MenuMod[id] = 3; Menu(id); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public GiftPoint(id) { if(inMarket[id] || !Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 0 || Points[id] < Cost) { client_cmd(id, "messagemode Gift"); return PLUGIN_CONTINUE; } else { aPoints[id] = Cost; MenuMod[id] = 5; Menu(id); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public WeaponSwitch(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new wid = cs_get_weapon_id(Weapon); if(id > 32 || id < 1) { return HAM_SUPERCEDE; } if(skinek[id]) { for(new j; j<9; j++) { if(wid == Weapons[UsingWeapon[j][id]]) { set_pev(id, pev_viewmodel2, WeaponMdls[UsingWeapon[j][id]]); return HAM_SUPERCEDE; } } if(ValidMdl(DefaultSkin[wid])) set_pev(id, pev_viewmodel2, DefaultSkin[wid]); } return HAM_IGNORED; } public ChestOpen(id) { new rWeapon, rNum = random_num(1, 100); if(LADAESELY >= rNum) { do { rWeapon = random_num(1, (AllWeapon-1)); rNum = random_num(1, 100); } while(WeaponDrop[rWeapon] < rNum); new Name[32]; get_user_name(id, Name, 31); print_color(0, "!g%s!t %s!y talált egy!t %s!y-t.", Prefix, Name, WeaponNames[rWeapon]); uWeapon[rWeapon][id]++; Save(id); } else print_color(id, "!g%s!y Sajnos ebben a ládában nem volt semmi!", Prefix); } public Menu(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_CONTINUE; } new sMenu, Line[128]; if(MenuMod[id] == -2) { formatex(Line, 127, "\r%s\y Válassz valamit! \d[Pont: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; num_to_str(i, String, 31); formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(Chest[id] > 0) { formatex(Line, 127, "\rLáda \d|\y %d darab", Chest[id]); menu_additem(sMenu, Line, "101"); All++; } if(pKey[id] > 0) { formatex(Line, 127, "\rKulcs \d|\y %d darab", pKey[id]); menu_additem(sMenu, Line, "102"); All++; } if(Points[id] > 0) { formatex(Line, 127, "\rPont \d|\y %d", Points[id]); menu_additem(sMenu, Line, "103"); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); return PLUGIN_CONTINUE; } } else if(MenuMod[id] == -1) { formatex(Line, 127, "\r%s\y Válassz valamit! \d[Pont: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; num_to_str(i, String, 31); formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(Chest[id] > 0) { formatex(Line, 127, "\rLáda \d|\y %d darab", Chest[id]); menu_additem(sMenu, Line, "101"); All++; } if(pKey[id] > 0) { formatex(Line, 127, "\rKulcs \d|\y %d darab", pKey[id]); menu_additem(sMenu, Line, "102"); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); return PLUGIN_CONTINUE; } } else if(MenuMod[id] == 0) { formatex(Line, 127, "\r%s\y Fõ menĂĽ \d[Pont: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); formatex(Line, 127, "FelszerelĂ©s"); menu_additem(sMenu, Line, "1"); if(!inMarket[id]) { formatex(Line, 127, "Láda nyitás"); menu_additem(sMenu, Line, "2"); } else { formatex(Line, 127, "Láda nyitás \d[Piacozás közben nem engedĂ©lyezett]"); menu_additem(sMenu, Line, "0"); } formatex(Line, 127, "Piac"); menu_additem(sMenu, Line, "3"); if(!inMarket[id]) { formatex(Line, 127, "AjándĂ©kozás^n"); menu_additem(sMenu, Line, "5"); if(Rang[id] == file_size(RangFile, 1) -1) formatex(Line, 127, "\wSkinek:\d %s^n\rRangod:\d %s \y[Ă–lĂ©s: \r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]], Kills[id]); else formatex(Line, 127, "\wSkinek:\d %s^n\rKövetkezõ Rangod:\d %s \y[Ă–lĂ©s: \r%d\d/\r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]); menu_additem(sMenu, Line, "6"); } else { formatex(Line, 127, "AjándĂ©kozás \d[Piacozás közben nem engedĂ©lyezett]^n"); menu_additem(sMenu, Line, "0"); if(Rang[id] == file_size(RangFile, 1) -1) formatex(Line, 127, "\wSkinek:\d %s^n\rRangod:\d %s \y[Ă–lĂ©s: \r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]], Kills[id]); else formatex(Line, 127, "\wSkinek:\d %s^n\rKövetkezõ Rangod:\d %s \y[Ă–lĂ©s: \r%d\d/\r%d]", skinek[id] ? "\yBekapcsolva" : "\rKikapcsolva", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]); menu_additem(sMenu, Line, "6"); } } else if(MenuMod[id] == 1) { formatex(Line, 127, "\r%s\y FelszerelĂ©s \d[Pont: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; formatex(String, 31, "%d %d", i, Weapons[i]); formatex(Line, 127, "\r%s \d|\y %d darab", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); return PLUGIN_CONTINUE; } } else if(MenuMod[id] == 2) { formatex(Line, 127, "\r%s\y Láda nyitás ^n\rLáda:\y %d \w| \rKulcs:\y %d", Prefix, Chest[id], pKey[id]); sMenu = menu_create(Line, "MenuHandler"); formatex(Line, 127, "Láda nyitás \d[1 láda Ă©s 1 kulcs]"); menu_additem(sMenu, Line, "1"); } else if(MenuMod[id] == 3) { formatex(Line, 127, "\r%s\y Piac \d[Pont: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; if(!inMarket[id]) { for(new i = 1; i < AllWeapon; i++) { if(i == WeaponinMarket[id] && uWeapon[i][id] > 0) { formatex(Line, 127, "\rStandod:\d %s^n\yĂra:\d %d", WeaponNames[i], MarketPoints[id]); All++; } } if(101 == WeaponinMarket[id] && Chest[id] > 0) { formatex(Line, 127, "\rStandod:\d Láda^n\yĂra:\d %d", MarketPoints[id]); All++; } if(102 == WeaponinMarket[id] && pKey[id] > 0) { formatex(Line, 127, "\rStandod:\d Kulcs^n\yĂra:\d %d", MarketPoints[id]); All++; } if(All == 0) formatex(Line, 127, "\dVálasz valamit!"); menu_additem(sMenu, Line, "-1"); } if(!inMarket[id]) formatex(Line, 127, "\rMehet^n"); else formatex(Line, 127, "\dVissza^n"); menu_additem(sMenu, Line, "0"); new Name[32]; for(new x; x < 32; x++) { if(!is_user_connected(x)) continue; if(inMarket[x] && MarketPoints[x] > 0) { num_to_str(x, String, 31); get_user_name(x, Name, 31); if(101 == WeaponinMarket[x]) { formatex(Line, 127, "\r%s \d|\y Láda \d| \rĂra:\y %d", Name, MarketPoints[x]); menu_additem(sMenu, Line, String); } else if(102 == WeaponinMarket[x]) { formatex(Line, 127, "\r%s \d|\y Kulcs \d| \rĂra:\y %d", Name, MarketPoints[x]); menu_additem(sMenu, Line, String); } else { formatex(Line, 127, "\r%s \d|\y %s \d| \rĂra:\y %d", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]); menu_additem(sMenu, Line, String); } } } } else if(MenuMod[id] == 5) { formatex(Line, 127, "\r%s\y AjándĂ©kozás \d[Arany: \y%d\d]", Prefix, Points[id]); sMenu = menu_create(Line, "MenuHandler"); new All, Name[32], String[32]; get_user_name(aTarget[id], Name, 31); if(aTarget[id] > 0) { if(aPoints[id] == 0) aPoints[id] = 1; formatex(Line, 127, "JátĂ©kos: \d%s", Name); menu_additem(sMenu, Line, "-1"); for(new i = 1; i < AllWeapon; i++) { if(i == aThing[id] && uWeapon[i][id] > 0) { formatex(Line, 127, "AjándĂ©k:\d %s^n", WeaponNames[i]); menu_additem(sMenu, Line, "-2"); All++; } } if(aThing[id] == 0 && All == 0) { formatex(Line, 127, "Válasz valamit!^n"); menu_additem(sMenu, Line, "-2"); } else if(aThing[id] > 100) { if(101 == aThing[id]) { formatex(Line, 127, "AjándĂ©k:\d Láda"); } if(102 == aThing[id]) { formatex(Line, 127, "AjándĂ©k:\d Kulcs"); } if(103 == aThing[id]) { formatex(Line, 127, "AjándĂ©k:\d Arany"); } menu_additem(sMenu, Line, "-2"); } formatex(Line, 127, "MennyisĂ©g:\d %d^n", aPoints[id]); menu_additem(sMenu, Line, "-4"); formatex(Line, 127, "\yKĂĽldĂ©s!"); menu_additem(sMenu, Line, "-3"); } else { for(new i; i < 32; i++) { if(is_user_connected(i) && i != id) { get_user_name(i, Name, 31); num_to_str(i, String, 31); menu_additem(sMenu, Name, String); } } } } menu_display(id, sMenu); return PLUGIN_CONTINUE; } public MenuHandler(id, gMenu, Key) { if(Key == MENU_EXIT) { MenuMod[id] = 0; menu_destroy(gMenu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32]; menu_item_getinfo(gMenu, Key, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); Key = str_to_num(sKey); if(MenuMod[id] == -2) { aThing[id] = Key; MenuMod[id] = 5; Menu(id); return PLUGIN_CONTINUE; } else if(MenuMod[id] == -1) { WeaponinMarket[id] = Key; client_cmd(id, "messagemode Cost"); return PLUGIN_CONTINUE; } else if(MenuMod[id] == 0) { if(Key==6) { if(skinek[id]) skinek[id]=false; else skinek[id]=true; MenuMod[id] = 0; } else MenuMod[id] = Key; Menu(id); return PLUGIN_CONTINUE; } else if(MenuMod[id] == 1) { parse(Data[0], Data[2], 31, Data[3], 31); if(str_to_num(Data[3]) == 28) UsingWeapon[0][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 18) UsingWeapon[1][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 15) UsingWeapon[2][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 29) UsingWeapon[3][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 21) UsingWeapon[4][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 22) UsingWeapon[5][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 19) UsingWeapon[6][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 16) UsingWeapon[7][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 26) UsingWeapon[8][id] = str_to_num(Data[2]); return PLUGIN_CONTINUE; } else if(MenuMod[id] == 2) { if(Key == 1) { if(Chest[id] > 0 && pKey[id] > 0) { Chest[id]--; pKey[id]--; ChestOpen(id); Menu(id); return PLUGIN_CONTINUE; } } return PLUGIN_CONTINUE; } else if(MenuMod[id] == 3) { if(Key == -1) { MenuMod[id] = -1; Menu(id); return PLUGIN_CONTINUE; } else if(Key == 0) { if(inMarket[id]) inMarket[id] = false; else if(MarketPoints[id] > 0) { get_user_name(id, Name, 31); if(WeaponinMarket[id] > 100) print_color(0, "!g%s!t %s!y kirakott egy !t%s!g %d!y pontĂ©rt!",Prefix, Name, (WeaponinMarket[id] == 101) ? "Ládát" : "Kulcsot", MarketPoints[id]); else print_color(0, "!g%s!t %s!y kirakott egy !t%s !y-t!g %d!y pontĂ©rt!",Prefix, Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]); inMarket[id] = true; } Menu(id); return PLUGIN_CONTINUE; } else if(inMarket[Key] && Points[id] >= MarketPoints[Key]) { get_user_name(Key, Name, 31); get_user_name(id, mName, 31); if(WeaponinMarket[Key] < 101) { print_color(0, "!g%s!t %s!y vásárolt egy!t %s!y-t!g %d!y pontĂ©rt !t%s!y-tĂłl/tõl!", Prefix, mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name); uWeapon[WeaponinMarket[Key]][id]++; uWeapon[WeaponinMarket[Key]][Key]--; } else if(WeaponinMarket[Key] == 101) { print_color(0, "!g%s!t %s!y vásárolt egy!t ládát!g %d!y pontĂ©rt !t%s!y-tĂłl/tõl!", Prefix, mName, MarketPoints[Key], Name); Chest[id]++; Chest[Key]--; } else if(WeaponinMarket[Key] == 102) { print_color(0, "!g%s!t %s!y vásárolt egy!t kulcsot!g %d!y pontĂ©rt !t%s!y-tĂłl/tõl!", Prefix, mName, MarketPoints[Key], Name); pKey[id]++; pKey[Key]--; } Points[Key] += MarketPoints[Key]; Points[id] -= MarketPoints[Key]; Save(Key); Save(id); inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; MenuMod[id] = 0; } return PLUGIN_CONTINUE; } else if(MenuMod[id] == 5) { if(Key == -1) { aTarget[id] = 0; } if(Key == -2) { MenuMod[id] = -2; } if(Key == -3) { if(aThing[id] < 100) { if(uWeapon[aThing[id]][id] > 0) { if(uWeapon[aThing[id]][id]<aPoints[id]) { client_cmd(id, "messagemode Gift"); print_color(id, "!g%s !yNincs !g%d !t%s!y fegyvered.", Prefix, aPoints[id], WeaponNames[aThing[id]]); return PLUGIN_CONTINUE; } uWeapon[aThing[id]][aTarget[id]]+=aPoints[id]; uWeapon[aThing[id]][id]-=aPoints[id]; new Name[32], Name2[32]; get_user_name(id, Name, 31); get_user_name(aTarget[id], Name2, 31); print_color(id, "!g%s !yKĂĽldtĂ©l !t%s!y-nak/nek !g%d !t%s!y-t", Prefix, Name2, aPoints[id], WeaponNames[aThing[id]]); print_color(aTarget[id], "!g%s !t%s !ykĂĽldött !g%d !t%s!y-t.", Prefix, Name, aPoints[id], WeaponNames[aThing[id]]); Save(aTarget[id]); Save(id); MenuMod[id] = 0; aThing[id] = 0; aTarget[id] = 0; aPoints[id] = 0; } } else { new Name[32], Name2[32]; get_user_name(id, Name, 31); get_user_name(aTarget[id], Name2, 31); if(101 == aThing[id]) { if(Chest[id]<aPoints[id]) { client_cmd(id, "messagemode Gift"); print_color(id, "!g%s !yNincs !g%d !tládád!y.", Prefix, aPoints[id]); return PLUGIN_CONTINUE; } Chest[aTarget[id]]+=aPoints[id]; Chest[id]-=aPoints[id]; print_color(id, "!g%s !yKĂĽldtĂ©l !t%s!y-nak/nek!g %d!t Ládát!y.", Prefix, Name2, aPoints[id]); print_color(aTarget[id], "!g%s !t%s !ykĂĽldött!g %d!t Ládát!y.", Prefix, Name, aPoints[id]); } else if(102 == aThing[id]) { if(pKey[id]<aPoints[id]) { client_cmd(id, "messagemode Gift"); print_color(id, "!g%s !yNincs !g%d!t kulcsod!y.", Prefix, aPoints[id]); return PLUGIN_CONTINUE; } pKey[aTarget[id]]+=aPoints[id]; pKey[id]-=aPoints[id]; print_color(id, "!g%s !yKĂĽldtĂ©l !t%s!y-nak/nek!g %d!t Kulcsot!y.", Prefix, Name2, aPoints[id]); print_color(aTarget[id], "!g%s !t%s !ykĂĽldött!g %d!t Kulcsot!y.", Prefix, Name, aPoints[id]); } else if(103 == aThing[id]) { if(Points[id]<aPoints[id]) { client_cmd(id, "messagemode Gift"); print_color(id, "!g%s !yNincs !g%d aranyad.", Prefix, aPoints[id]); return PLUGIN_CONTINUE; } Points[aTarget[id]] += aPoints[id]; Points[id] -= aPoints[id]; print_color(id, "!g%s !yKĂĽldtĂ©l !t%s!y-nak/nek !g%d!t Pontot!y.", Prefix, Name2, aPoints[id]); print_color(aTarget[id], "!g%s !t%s !ykĂĽldött !g%d!t Pontot!y.", Prefix, Name, aPoints[id]); } Save(aTarget[id]); Save(id); MenuMod[id] = 0; aThing[id] = 0; aTarget[id] = 0; aPoints[id] = 0; } } if(Key == -4) { client_cmd(id, "messagemode Gift"); return PLUGIN_CONTINUE; } if(Key > 0) aTarget[id] = Key; Menu(id); return PLUGIN_CONTINUE; } MenuMod[id] = 0; return PLUGIN_CONTINUE; } stock print_color(const id, const input[], any:...) { new Count = 1, Players[32]; static Msg[191]; vformat(Msg, 190, input, 3); replace_all(Msg, 190, "!g", "^4"); replace_all(Msg, 190, "!y", "^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 (is_user_connected(Players[i])) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]); write_byte(Players[i]); write_string(Msg); message_end(); } } } return PLUGIN_HANDLED; } public client_putinserver(id) { Kills[id] = 0, Rang[id] = 0, Points[id] = 0, Choosen[id] = 0, pKey[id] = 0, Chest[id] = 0; for(new i; i < AllWeapon; i++) uWeapon[i][id] = 0; Load(id); Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; } public Load(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; new pFile, Name[32]; pFile = fopen(SaveFile, "rt"); get_user_name(id, Name, 31); if(pFile) { new Line[1024]; new LineName[32]; new data[16]; while(!feof(pFile)) { fgets(pFile, Line, 1023); if(Line[0] == ';' || !strlen(Line)) continue; strbreak(Line, LineName, 31, Line, 1023); if(equal(LineName, Name)) { strbreak(Line, data, 15, Line, 1023); Kills[id] = str_to_num(data); strbreak(Line, data, 15, Line, 1023); Points[id] = str_to_num(data); strbreak(Line, data, 15, Line, 1023); pKey[id] = str_to_num(data); strbreak(Line, data, 15, Line, 1023); Chest[id] = str_to_num(data); strbreak(Line, data, 15, Line, 1023); Rang[id] = str_to_num(data); for(new i; i < MAX; i++) { strbreak(Line, data, 15, Line, 1023); uWeapon[i][id] = str_to_num(data); } fclose(pFile); return PLUGIN_HANDLED; } } fclose(pFile); } return PLUGIN_CONTINUE; } public Save(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; new pFile, Name[32]; pFile = fopen(SaveFile, "rt"); get_user_name(id, Name, 31); if(pFile) { new Line[192], Lines; new LineName[32], bool:Found; new mLine[1024], LoadWeapon[1024], String[16]; format(String, 15, "^"%i^" ", Kills[id]); add(LoadWeapon, 1023, String); format(String, 15, "^"%i^" ", Points[id]); add(LoadWeapon, 1023, String); format(String, 15, "^"%i^" ", pKey[id]); add(LoadWeapon, 1023, String); format(String, 15, "^"%i^" ", Chest[id]); add(LoadWeapon, 1023, String); format(String, 15, "^"%i^" ", Rang[id]); add(LoadWeapon, 1023, String); for(new i; i < MAX; i++) { format(String, 15, "^"%i^" ", uWeapon[i][id]); add(LoadWeapon, 1023, String); } formatex(mLine, 1023, "^"%s^" %s", Name, LoadWeapon); while(!feof(pFile)) { fgets(pFile, Line, 191); if(Line[0] == ';' || strlen(Line) < 2) continue; parse(Line, LineName, 31); if(equal(LineName, Name) && !Found) { write_file(SaveFile, mLine, Lines); fclose(pFile); Found = true; return PLUGIN_HANDLED; } Lines++; } if(!Found) { write_file(SaveFile, mLine); fclose(pFile); return PLUGIN_HANDLED; } fclose(pFile); } return PLUGIN_CONTINUE; } public WeaponMenu(id) { if(Choosen[id] >= 2) return PLUGIN_HANDLED; new String[128]; format(String, 127, "\r%s\y FegyvermenĂĽ", Prefix); new wMenu = menu_create(String, "wMenuHandler"); new szid[10]; if(Choosen[id] == 0) { for(new i=0; i < 6; i++) { num_to_str(i, szid, charsmax(szid)); format(String, 127, "%s", fegyverek[i][uzi]); menu_additem(wMenu, String, szid); } } if(Choosen[id] == 1) { for(new i=6; i < 8; i++) { num_to_str(i, szid, charsmax(szid)); format(String, 127, "%s", fegyverek[i][uzi]); menu_additem(wMenu, String, szid); } } menu_display(id, wMenu); return PLUGIN_CONTINUE; } public wMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return; } new data[32], name[64]; new access, callback; menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback); new szam = str_to_num(data); give_item(id, fegyverek[szam][nev]); cs_set_user_bpammo(id, fegyverek[szam][csw], fegyverek[szam][golyo]); Choosen[id]++; if(Choosen[id] >= 2) Grenades(id); WeaponMenu(id); } public RegMenu(id) { new String[128], Name[32]; if(Registered(id)) format(String, 127, "\r%s\y RegisztráciĂłs MenĂĽ^n\rStátusz: \dRegisztrálva^n\rPrĂłbálkozások:\d %d/3", Prefix, probalkozasok[id]); else format(String, 127, "\r%s\y RegisztráciĂłs MenĂĽ^n\rStátusz: \dNem regisztrált", Prefix); new rMenu = menu_create(String, "rMenuHandler"); get_user_name(id, Name, 31); format(String, 127, "\wFelhasznalĂł:\d %s", Name); menu_additem(rMenu, String, "0"); if(!Registered(id)) { format(String, 127, "\wJelszĂł:\d %s^n", Password[id]); menu_additem(rMenu, String, "1"); if(strlen(Password[id]) > 4) { format(String, 127, "Regisztrálok"); menu_additem(rMenu, String, "2"); } else { format(String, 127, "\dRegisztrálok"); menu_additem(rMenu, String, "0"); } } else { if(!Loged[id]) { format(String, 127, "\wJelszĂł:\d %s^n", Password[id]); menu_additem(rMenu, String, "1"); format(String, 127, "BejelentkezĂ©s!"); menu_additem(rMenu, String, "3"); } else { format(String, 127, "KijelentkezĂ©s!"); menu_additem(rMenu, String, "-1"); } } menu_display(id, rMenu); } public rMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return; } new data[9], name[64], Key; new access, callback; menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback); Key = str_to_num(data); if(Key == -1) ToLogout(id); if(Key == 0) RegMenu(id); if(Key == 1) { client_cmd(id, "messagemode UserPassword"); RegMenu(id); } if(Key == 2) { print_color(id, "!g%s!y Sikeres regisztráciĂł! [Jelszavad: !t%s!y]", Prefix, Password[id]); Register(id, Password[id]); copy(SavedPassword[id], 31, Password[id]); Loged[id] = true; Menu(id); } if(Key == 3) { if(equal(SavedPassword[id], Password[id])) { Loged[id] = true; print_color(id, "!g%s!y Sikeresen belĂ©ptĂ©l!", Prefix); Menu(id); } else { probalkozasok[id]++; if(probalkozasok[id] >= 3) { server_cmd("kick #%i ^"3x elrotottad a jelszot. Ezert kickelve lettel.^"", get_user_userid(id)); probalkozasok[id]=0; return; } client_cmd(id, "messagemode UserPassword"); print_color(id, "!g%s !yHibás jelszĂł. 3. sikertelen probálkozás utan kick jár. Probálkozások: %d/3", Prefix, probalkozasok[id]); RegMenu(id); } } } public ToLogout(id) { if(Loged[id]) { Loged[id] = false; Password[id] = ""; print_color(id, "!g%s!y Sikeresen kilĂ©ptĂ©l!", Prefix); } } public PlayerPassword(id) { new Data[32]; read_args(Data, 31); remove_quotes(Data); if(strlen(Data) < 5) { print_color(id, "!g%s!y TĂşl rövid a jelszĂł!", Prefix); client_cmd(id, "messagemode UserPassword"); return PLUGIN_HANDLED; } if(Loged[id]) return PLUGIN_HANDLED; copy(Password[id], 31, Data); RegMenu(id); return PLUGIN_CONTINUE; } public ClientInfoChanged(id) set_task(1.0, "NameConrol",id); public NameConrol(id){ if(!is_user_connected(id)) return PLUGIN_CONTINUE; new name[31]; get_user_name(id, name, 30); new userid = get_user_userid(id); if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1) { server_cmd("kick #%d Ilyent nem szabad!",userid); return PLUGIN_HANDLED; } new Bnum = strlen(name); new i=0; new Nnum=0; while(i < Bnum) { if(name[i] == '1' || name[i] == '2' || name[i] == '3' || name[i] == '4' || name[i] == '5' || name[i] == '6' || name[i] == '7' || name[i] == '8' || name[i] == '9' || name[i] == '0') Nnum++; ++i; } if( Nnum >= 7) { client_cmd(id, "name ^"Hirdetes Tiltott!^""); client_cmd(id, "retry"); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public avoid_duplicated (msgId, msgDest, receiver) { return PLUGIN_HANDLED; } public hook_say(id) { read_args (message, 191); remove_quotes (message); new Bnum = strlen(message); new Nnum = 0; new i = 0; while(i < Bnum) { if(message[i] == '1' || message[i] == '2' || message[i] == '3' || message[i] == '4' || message[i] == '5' || message[i] == '6' || message[i] == '7' || message[i] == '8' || message[i] == '9' || message[i] == '0') Nnum++; ++i; } if( Nnum >= 7) { ColorChat(id, BLUE,"^3A szerveren tilos a hĂrdetĂ©s!"); return PLUGIN_HANDLED; } if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) return PLUGIN_CONTINUE; new name[192]; name = message; if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1) { ColorChat(id, BLUE,"^3HAHAHA:)"); return PLUGIN_HANDLED; } get_user_name (id, name, 31); new bool:admin = false; if (get_user_flags(id) & ADMINRANG) admin = true; new isAlive; if (is_user_alive (id)) { isAlive = 1; alive = "^x01"; } else { isAlive = 0; alive = "^x01*Halott*"; } static color[10]; if (admin) { get_user_team (id, color, 9); format (strName, 191, "%s^x04[ADMIN][%s]^x03%s", alive, Rangs[Rang[id]], name); format (strText, 191, "^x04%s", message); } else { get_user_team (id, color, 9); format (strName, 191, "%s^x04[%s]^x03%s", alive, Rangs[Rang[id]], name); format (strText, 191, "%s", message); } format (message, 191, "%s^x01 : %s", strName, strText); sendMessage (color, isAlive); return PLUGIN_CONTINUE; } public hook_teamsay(id) { new playerTeam = get_user_team(id); new playerTeamName[19]; switch (playerTeam) { case 1: copy (playerTeamName, 11, "*Te*"); case 2: copy (playerTeamName, 18, "*Ct*"); default: copy (playerTeamName, 9, "*NĂ©zĹ‘*"); } read_args (message, 191); remove_quotes (message); new Bnum = strlen(message); new Nnum = 0; new i = 0; while(i < Bnum) { if(message[i] == '1' || message[i] == '2' || message[i] == '3' || message[i] == '4' || message[i] == '5' || message[i] == '6' || message[i] == '7' || message[i] == '8' || message[i] == '9' || message[i] == '0') Nnum++; ++i; } if( Nnum >= 7) { ColorChat(id, BLUE,"^3A szerveren tilos a hirdetes!"); return PLUGIN_HANDLED; } if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) return PLUGIN_CONTINUE; new name[192]; name = message; if (contain(name, "#Spec_Help_Text") != -1 || contain(name, "#Cstrike_Spetsnaz_Label") != -1 || contain(name, "#Buy") != -1 || contain(name, "#Cstrike_GIGN_Label") != -1 || contain(name, "#Spec_Duck") != -1) { ColorChat(id, BLUE,"^3HAHAHA:)"); return PLUGIN_HANDLED; } get_user_name (id, name, 31); new bool:admin = false; if (get_user_flags(id) & ADMINRANG) admin = true; new isAlive; if (is_user_alive (id)) { isAlive = 1; alive = "^x01"; } else { isAlive = 0; alive = "^x01*Halott*"; } static color[10]; if (admin) { get_user_team (id, color, 9) ; format (strName, 191, "%s(%s)^x04[ADMIN][%s]^x03%s", alive, playerTeamName, Rangs[Rang[id]], name); format (strText, 191, "^x04%s", message); } else { get_user_team (id, color, 9); format (strName, 191, "%s(%s)^x04[%s]^x03%s", alive, playerTeamName, Rangs[Rang[id]], name); format (strText, 191, "%s", message); } format (message, 191, "%s^x01 : %s", strName, strText); sendTeamMessage (color, isAlive, playerTeam); return PLUGIN_CONTINUE; } public sendMessage (color[], alive) { new teamName[10]; for (new player = 1; player < maxPlayers; player++) { if (!is_user_connected(player)) continue; get_user_team (player, teamName, 9); changeTeamInfo (player, color); writeMessage (player, message); changeTeamInfo (player, teamName); } } public sendTeamMessage (color[], alive, playerTeam) { new teamName[10]; for (new player = 1; player < maxPlayers; player++) { if (!is_user_connected(player)) continue; if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_BAN) { get_user_team (player, teamName, 9); changeTeamInfo (player, color); writeMessage (player, message); changeTeamInfo (player, teamName); } } } public changeTeamInfo (player, team[]) { message_begin (MSG_ONE, teamInfo, _, player); write_byte (player); write_string (team); message_end(); } public writeMessage (player, message[]) { message_begin (MSG_ONE, SayText, {0, 0, 0}, player); write_byte (player); write_string (message); message_end (); } stock bool:ValidMdl(Mdl[]) { if(containi(Mdl, ".mdl") != -1) { return true; } return false; } stock bool:Registered(id) { new pFile, Data[2][32], Line[64], Name[32]; get_user_name(id, Name, 31); pFile = fopen(RegisterFile, "rt"); while(!feof(pFile)) { fgets(pFile, Line, 63); parse(Line, Data[0], 31, Data[1], 31); if(equal(Data[0], Name)) { copy(SavedPassword[id], 31, Data[1]); return true; } } fclose(pFile); return false; } stock Register(id, const rSavedPassword[]) { new pFile, Line[64], Name[32]; get_user_name(id, Name, 31); pFile = fopen(RegisterFile, "at+"); format(Line, 63, "^"%s^" ^"%s^"", Name, rSavedPassword); write_file(RegisterFile, Line); fclose(pFile); } stock Grenades(id) { give_item(id, "weapon_hegrenade"); give_item(id, "weapon_smokegrenade"); give_item(id, "weapon_flashbang"); }
|