traka Postat Februarie 25 Postat Februarie 25 (editat) Easter Event Ultimate este un plugin complex dedicat serverelor de Counter-Strike 1.6 (Public / Classic / Semi-RPG), care adaugă un sistem complet de eveniment cu ouă, misiuni, Boss Bunny, magazin special și clasament TOP 10. SISTEM PRINCIPAL – COLECTARE OUĂ ✔ Primești ouă la kill, ✔ Sistem Double Eggs (x2 ouă), ✔ Golden Egg special (drop la admin/vip sau litera T), ✔ ScreenFade efect auriu la colectare BOSS BUNNY MODE : Un jucător devine Boss Bunny: 2000 HP Viteză mărită Glow colorat random (Disco Effect) Timer dedicat pe HUD Grenade damage redus Recompensă 50 ouă pentru câștigător(i) Modul include: Countdown automat, Alegere random sau manuală a bossului, Echilibrare automată echipe la final. EASTER SHOP (Sistem Puteri) - Magazin complet cu abilități speciale: Radar Scanner (45 sec) Egg Shield (blochează 1 lovitură) Double Eggs x2 Silent Steps Damage Reduce 10% Invisibility 3 sec Life Steal (10 HP / kill) SISTEM MISIUNI (12 Misiuni) 500 / 2500 / 5000 kill-uri Omor Boss Fii Boss Câștigă runde consecutive Knife kills Supraviețuire runde Revive jucător TOP 10 ONLINE ✔ Clasament live jucători online ✔ Rang automat în funcție de ouă: Începător Colector Junior Senior Rege Golden Bunny Easter Legend ADMIN FEATURES - Comenzi: /easter amx_giveeggs (ADMIN) Link Download: https://limewire.com/d/OsYK4#m8oCluwe7r Sursă Sprite (.spr) se instaleaza in mapa sprites. Modulele care le foloseste : #include <amxmodx> #include <engine> #include <amxmisc> #include <fun> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <nvault> Imagini: - L.E - @Dexter. @ GOV.RO Atașat regăsiți și sursa pluginului pentru certitudinea fișierului .amxx #include <amxmodx> #include <engine> #include <amxmisc> #include <fun> #include <cstrike> #include <fakemeta> #include <csx> #include <hamsandwich> #include <nvault> #include <nvault_util> #include <nvault_array> #define PLUGIN "Easter Event Ultimate TOP" #define VERSION "13.3" #define AUTHOR "traka" #define EGG_CLASSNAME "boss_trap_egg" #define GOLDEN_EGG_CLASSNAME "golden_egg" new const GOLDEN_EGG_SPRITE[] = "sprites/iepuras.spr"; new g_CountdownSeconds; new g_PlayerEggs[33]; new bool:g_HasShield[33]; new bool:g_HasRadar[33]; new bool:g_DamageReduce[33]; new bool:g_SilentSteps[33]; new bool:g_DoubleEggs[33]; new bool:g_LifeSteal[33]; new g_Vault; new g_SelectedBossID = 0; new g_BossTarget = 0; new g_IsBossActive = false; //new g_BossTimer = -1; //new g_BossDiscoTask = -1; new g_BossTimerSeconds = 0; new g_MsgScreenFade; //new szName[32]; new g_NoDeathRounds[33]; new g_WinStreak[33]; new CsTeams:g_RoundWinner; #pragma dynamic 32768 #define MAX_PLAYERS 32 #define MAX_TOP 10 #define UPDATE_INTERVAL 300.0 #define MAX_MISSIONS 12 #define MAX_TEXT 64 new g_MissionProgress[33][MAX_MISSIONS]; new g_MissionGoal[MAX_MISSIONS] = {500,2500,5000,100,3,5,1,1,1,3,100,1}; new g_MissionReward[MAX_MISSIONS] = {5,15,30,10,10,25,50,30,3,15,5,1}; enum _:PlayerData { P_Name[32], P_Eggs, P_Missions, P_Rank[32], P_IsAdmin } #define MAX_HTML 32768 new g_szTopCache[MAX_HTML]; public plugin_precache() { precache_model(GOLDEN_EGG_SPRITE); } public plugin_init() { register_plugin(PLUGIN, VERSION, "traka"); g_Vault = nvault_open("easter_eggs"); register_clcmd("say /bunny", "cmd_boss_menu", ADMIN_SLAY); register_clcmd("say /easter", "cmd_easter_menu"); register_clcmd("say /shop", "cmd_easter_shop"); register_clcmd("say /top10", "cmd_top10"); register_clcmd("say /missions", "cmd_missions_menu"); register_concmd("amx_giveeggs", "cmd_give_eggs", ADMIN_BAN, "<nume> <cantitate>"); register_event("HLTV", "event_round_start", "a", "1=0", "2=0"); register_logevent("event_new_round", 2, "1=Round_Start"); register_event("DeathMsg", "event_death", "a"); register_forward(FM_Touch, "fw_Touch"); register_forward(FM_PlayerPreThink, "fw_PlayerPreThink"); register_think(EGG_CLASSNAME, "fw_EggThink"); g_MsgScreenFade = get_user_msgid("ScreenFade"); RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1); RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage"); register_logevent("logevent_round_end", 2, "1=Round_End"); register_event("SendAudio", "event_round_winner_t", "a", "2=%!MRAD_terwin"); register_event("SendAudio", "event_round_winner_ct", "a", "2=%!MRAD_ctwin"); set_task(1.0, "task_display_hud", 0, _, _, "b"); set_task(40.0, "UpdateTopCache", .flags="b"); } public plugin_end() { if(g_Vault != INVALID_HANDLE) nvault_close(g_Vault); } public cmd_easter_menu(id) { new menu = menu_create("\r[LEAGUECS - EASTER MENU]", "easter_menu_handler"); menu_additem(menu, "LEAGUECS - Shop", "1"); menu_additem(menu, "LEAGUECS - Top10", "2"); menu_additem(menu, "LEAGUECS - Missions", "3"); if(get_user_flags(id) & ADMIN_SLAY) menu_additem(menu, "LEAGUECS - Bunny Boss", "4"); else menu_additem(menu, "\d Bunny Boss (Only Admin)", "0"); if(get_user_flags(id) & ADMIN_SLAY) menu_additem(menu, "LEAGUECS - Give Eggs", "5"); else menu_additem(menu, "\d Give Eggs (Only Admin)", "0"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public easter_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], name[64]; new access, callback; menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback); new key = str_to_num(data); switch(key) { case 1: cmd_easter_shop(id); case 2: cmd_top10(id); case 3: cmd_missions_menu(id); case 4: { if(get_user_flags(id) & ADMIN_SLAY) cmd_boss_menu(id); else client_print_color(id, print_team_default, "^4[EASTER] ^1Aceasta optiune este doar pentru ^3admin^1!"); } case 5: { if(get_user_flags(id) & ADMIN_SLAY) client_cmd(id, "messagemode amx_giveeggs"); else client_print_color(id, print_team_default, "^4[EASTER] ^1Aceasta optiune este doar pentru ^3admin^1!"); } } menu_destroy(menu); return PLUGIN_HANDLED; } public cmd_give_eggs(id, level, cid) { if(!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED; new arg1[32], arg2[16]; read_argv(1, arg1, charsmax(arg1)); read_argv(2, arg2, charsmax(arg2)); new target = cmd_target(id, arg1, CMDTARGET_ALLOW_SELF); if(!target) return PLUGIN_HANDLED; new amount = str_to_num(arg2); if(amount <= 0) { client_print_color(id, print_team_default, "^4[EASTER] ^1Cantitate ^3invalida^1!"); return PLUGIN_HANDLED; } g_PlayerEggs[target] += amount; new name[32], admin_name[32]; get_user_name(target, name, charsmax(name)); get_user_name(id, admin_name, charsmax(admin_name)); client_print_color(0, print_team_default, "^4[EASTER] ^1Adminul ^3%s ^1a dat ^4%d ^1oua lui ^3%s^1!", admin_name, amount, name); return PLUGIN_HANDLED; } stock add_mission_progress(id, mission, amount) { if(g_MissionProgress[id][mission] >= g_MissionGoal[mission]) return; g_MissionProgress[id][mission] += amount; if(g_MissionProgress[id][mission] >= g_MissionGoal[mission]) { g_MissionProgress[id][mission] = g_MissionGoal[mission]; g_PlayerEggs[id] += g_MissionReward[mission]; save_player_data(id); client_print_color(id, print_team_default, "^4[MISIUNE] ^1Misiune ^4completata^1! Ai primit ^4%d ^1oua. Total: ^3%d", g_MissionReward[mission], g_PlayerEggs[id]); } } public save_player_data(id) { if(is_user_bot(id)) return; new szName[32], szData[512]; get_user_name(id, szName, charsmax(szName)); new iLen = formatex(szData, charsmax(szData), "%d", g_PlayerEggs[id]); for(new i = 0; i < 12; i++) iLen += formatex(szData[iLen], charsmax(szData) - iLen, " %d", g_MissionProgress[id]); iLen += formatex(szData[iLen], charsmax(szData) - iLen, " ^"%s^"", szName); new isAdmin = (get_user_flags(id) & ADMIN_RESERVATION) ? 1 : 0; iLen += formatex(szData[iLen], charsmax(szData) - iLen, " %d", isAdmin); nvault_set(g_Vault, szName, szData); UpdateTopCache(); } new const g_MissionText[MAX_MISSIONS][MAX_TEXT] = { "Omora 500 jucatori", "Omora 2500 jucatori", "Omora 5000 jucatori", "Colecteaza 100 oua", "Supravietuieste 3 runde", "Nu muri 5 runde", "Omora MEGA Bunny", "Fii Boss", "Castiga o runda", "Castiga 3 runde consecutiv", "Omor un Cutitar", "Revive jucator" }; public cmd_missions_menu(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; new menu = menu_create("\y Easter Missions Progress:", "menu_callback_missions"); new text[256]; new szIndex[4]; for(new i = 0; i < MAX_MISSIONS; i++) { new currentProgress = g_MissionProgress[id]; if(currentProgress > g_MissionGoal) currentProgress = g_MissionGoal; formatex(text, charsmax(text), "%s \r%d/%d \w→ \y+%d oua", g_MissionText, currentProgress, g_MissionGoal, g_MissionReward); num_to_str(i, szIndex, charsmax(szIndex)); menu_additem(menu, text, szIndex); } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public menu_callback_missions(id, menu, item) { menu_destroy(menu); return PLUGIN_HANDLED; } public revive_player(id) { if(!is_user_connected(id)) return; ExecuteHamB(Ham_CS_RoundRespawn, id); add_mission_progress(id, 11, 1); } stock html_escape(szText[], len) { replace_all(szText, len, "&", "&"); replace_all(szText, len, "<", "<"); replace_all(szText, len, ">", ">"); } public UpdateTopCache() { new iVault = nvault_util_open("easter_eggs"); if(iVault == INVALID_HANDLE) return; new Array:hTopList = ArrayCreate(PlayerData); if(hTopList == Invalid_Array) { nvault_util_close(iVault); return; } new szKey[64], szVal[512]; new iPos = 0, iTimeStamp; new data[PlayerData]; while((iPos = nvault_util_read(iVault, iPos, szKey, charsmax(szKey), szVal, charsmax(szVal), iTimeStamp)) > 0) { if(!szVal[0]) continue; data[P_Eggs] = 0; data[P_Missions] = 0; data[P_IsAdmin] = 0; data[P_Name][0] = 0; new buffer[512]; copy(buffer, charsmax(buffer), szVal); new szToken[64], szRest[512]; strtok(buffer, szToken, charsmax(szToken), szRest, charsmax(szRest), ' '); data[P_Eggs] = str_to_num(szToken); for(new i = 0; i < MAX_MISSIONS; i++) { if(!szRest[0]) break; strtok(szRest, szToken, charsmax(szToken), szRest, charsmax(szRest), ' '); if(str_to_num(szToken) >= g_MissionGoal) data[P_Missions]++; } new lastSpace = -1; for(new i = strlen(szRest)-1; i>=0; i--) { if(szRest==' '){ lastSpace=i; break; } } if(lastSpace!=-1) { szRest[lastSpace]=0; } replace_all(szRest, charsmax(szRest), "^"", ""); trim(szRest); if(szRest[0]) copy(data[P_Name], charsmax(data[P_Name]), szRest); else copy(data[P_Name], charsmax(data[P_Name]), szKey); html_escape(data[P_Name], charsmax(data[P_Name])); get_rank_from_score(data[P_Eggs], data[P_Rank], charsmax(data[P_Rank])); ArrayPushArray(hTopList, data); if(ArraySize(hTopList)>=100) break; } nvault_util_close(iVault); if(ArraySize(hTopList)==0) { ArrayDestroy(hTopList); g_szTopCache[0]=0; return; } ArraySort(hTopList, "SortByEggs"); new len = 0; g_szTopCache[0] = 0; len += formatex(g_szTopCache[len], charsmax(g_szTopCache) - len, "<html><head><style>\ body{margin:0;background:url('https://i.imgur.com/75zHSNd.jpeg')no-repeat center top;background-size:100%% 100%%;color:#FFF;font-family:Tahoma;font-size:9px;overflow:hidden;}\ table{width:94%%;position:absolute;bottom:10px;left:3%%;border:1px solid #FF0;background:rgba(0,0,0,0.8);}\ th{color:#FF0;border-bottom:1px solid #FF0;text-transform:uppercase;}\ td{text-align:center;border:1px solid #330;}\ .t1{color:#FFD700;font-weight:bold;}.t2{color:#C0C0C0;font-weight:bold;}.t3{color:#CD7F32;font-weight:bold;}\ </style></head><body><table cellspacing='0' cellpadding='1'>\ <tr><th width='8%%'>#</th><th width='42%%'>Nume</th><th width='30%%'>Rang</th><th width='10%%'>M</th><th width='10%%'>O</th></tr>"); new iCount = min(ArraySize(hTopList), 10); for(new i = 0; i < iCount; i++) { ArrayGetArray(hTopList, i, data); static sS[24]; sS[0] = 0; // Fixat declararea array-ului if(i == 0) copy(sS, charsmax(sS), "class='t1'"); else if(i == 1) copy(sS, charsmax(sS), "class='t2'"); else if(i == 2) copy(sS, charsmax(sS), "class='t3'"); data[P_Name][12] = 0; data[P_Rank][10] = 0; len += formatex(g_szTopCache[len], charsmax(g_szTopCache) - len, "<tr %s><td>%d</td><td>%s</td><td>%s</td><td>%d</td><td>%d</td></tr>", sS, i+1, data[P_Name], data[P_Rank], data[P_Missions], data[P_Eggs]); } len += formatex(g_szTopCache[len], charsmax(g_szTopCache) - len, "</table></body></html>"); ArrayDestroy(hTopList); } public cmd_top10(id) { if(g_szTopCache[0]==0) { client_print(id,print_chat,"[Easter] Topul este gol sau se actualizeaza..."); return PLUGIN_HANDLED; } show_motd(id,g_szTopCache,"EASTER EVENT EGG - LEAGUECS.RO"); return PLUGIN_HANDLED; } public SortByEggs(Array:hArray, item1, item2) { new d1[PlayerData], d2[PlayerData]; ArrayGetArray(hArray,item1,d1); ArrayGetArray(hArray,item2,d2); return (d1[P_Eggs]>d2[P_Eggs])?-1:(d1[P_Eggs]<d2[P_Eggs])?1:0; } stock get_rank_from_score(score, szRank[], len) { if(score<150) copy(szRank,len,"Incepator"); else if(score<300) copy(szRank,len,"Colector"); else if(score<500) copy(szRank,len,"Junior"); else if(score<700) copy(szRank,len,"Senior"); else if(score<900) copy(szRank,len,"Rege"); else if(score<1200) copy(szRank,len,"Golden Bunny"); else copy(szRank,len,"Easter Legend"); } public task_display_hud() { new iPlayers[32], iNum, id; get_players(iPlayers, iNum, "ch"); for(new i = 0; i < iNum; i++) { id = iPlayers; new szName[32], szRank[32], szRadarInfo[64] = ""; get_user_name(id, szName, charsmax(szName)); get_rank_from_score(g_PlayerEggs[id], szRank, charsmax(szRank)); if(g_HasRadar[id] && g_IsBossActive && is_user_alive(g_SelectedBossID)) { new Float:bOrigin[3], Float:pOrigin[3]; pev(g_SelectedBossID, pev_origin, bOrigin); pev(id, pev_origin, pOrigin); formatex(szRadarInfo, charsmax(szRadarInfo), "^n[RADAR] Boss la: %.0f m", get_distance_f(bOrigin, pOrigin) / 40.0); } set_hudmessage(255, 160, 0, 0.02, 0.20, 0, 1.0, 1.1, 0.1, 0.1, -1); show_hudmessage(id, "[ EASTER EVENT ]^n\ ---------------------------^n\ Nume: %s^n\ Rang: %s^n\ Oua adunate in cos: %d%s^n\ ---------------------------^n\ www.LEAGUECS.RO", szName, szRank, g_PlayerEggs[id], szRadarInfo); } } public client_putinserver(id) { g_HasShield[id] = false; g_HasRadar[id] = false; new szName[32], szData[512]; get_user_name(id, szName, charsmax(szName)); g_PlayerEggs[id] = 0; for(new i = 0; i < 12; i++) g_MissionProgress[id] = 0; if(nvault_get(g_Vault, szName, szData, charsmax(szData))) { new szExploded[15][64]; parse(szData, szExploded[0], 63, szExploded[1], 63, szExploded[2], 63, szExploded[3], 63, szExploded[4], 63, szExploded[5], 63, szExploded[6], 63, szExploded[7], 63, szExploded[8], 63, szExploded[9], 63, szExploded[10], 63, szExploded[11], 63, szExploded[12], 63, szExploded[13], 63, szExploded[14], 63); g_PlayerEggs[id] = str_to_num(szExploded[0]); for(new i = 0; i < 12; i++) { g_MissionProgress[id] = str_to_num(szExploded[i+1]); } } UpdateTopCache(); } public client_disconnected(id) { save_player_data(id); } public client_infochanged(id) { new newName[32], oldName[32]; get_user_info(id, "name", newName, charsmax(newName)); get_user_name(id, oldName, charsmax(oldName)); if (!equal(newName, oldName)) { save_player_data(id); } } public cmd_boss_menu(id) { if(!(get_user_flags(id) & ADMIN_SLAY)) return PLUGIN_HANDLED; new menu = menu_create("\yEaster Boss Admin:", "menu_handler"); menu_additem(menu, "Boss Random", "1"); menu_additem(menu, "Alege Jucator", "2"); menu_additem(menu, "\rANULEAZA Boss Mode", "3"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: { g_BossTarget = 0; start_countdown(id); } case 1: { show_player_menu(id); } case 2: { cancel_boss_mode(id); } } menu_destroy(menu); return PLUGIN_HANDLED; } public cancel_boss_mode(id) { remove_task(888); remove_task(777); if(g_IsBossActive) { g_IsBossActive = false; g_SelectedBossID = 0; server_cmd("sv_restart 1"); client_print_color(0, print_team_default, "^4BOSS^1 Modul a fost ^3ANULAT ^1de admin!"); } else { g_CountdownSeconds = 0; client_print_color(0, print_team_default, "^4BOSS^1 Countdown-ul a fost ^3ANULAT^1!"); } } public show_player_menu(id) { new menu = menu_create("Alege viitorul Boss:", "player_menu_handler"); new players[32], pnum, szId[3], szName[32]; get_players(players, pnum); for(new i = 0; i < pnum; i++) { num_to_str(players, szId, charsmax(szId)); get_user_name(players, szName, charsmax(szName)); menu_additem(menu, szName, szId); } menu_display(id, menu, 0); } public player_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], name[64], access, callback; menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback); g_BossTarget = str_to_num(data); start_countdown(id); menu_destroy(menu); return PLUGIN_HANDLED; } public start_countdown(id) { if(g_CountdownSeconds <= 0) g_CountdownSeconds = 60; if(task_exists(888)) remove_task(888); set_task(1.0, "task_boss_countdown", 888, _, _, "b"); client_print_color(0, print_team_default, "^4[BOSS]^1 Adminul a programat activarea ^3BOSS BUNNY^1 peste ^4%d^1 secunde!", g_CountdownSeconds); } public task_boss_countdown() { g_CountdownSeconds--; if(g_CountdownSeconds <= 0) { remove_task(888); client_print_color(0, print_team_default, "^4BOSS^1 Modul va fi activat ^3ACUM^1!"); activate_boss_mode(); return; } if(g_CountdownSeconds > 10) { set_hudmessage(255, 255, 0, -1.0, 0.25, 0, 0.0, 1.1, 0.1, 0.1, -1); } else { set_hudmessage(255, 0, 0, -1.0, 0.25, 1, 0.0, 1.1, 0.1, 0.1, -1); } show_hudmessage(0, "--- ACTIVARE BOSS BUNNY ---^nPregateste-te! Incepe in: %d", g_CountdownSeconds); } public event_round_start() { if(g_IsBossActive) { set_cvar_num("mp_autoteambalance", 0); set_cvar_num("mp_limitteams", 0); if(is_user_alive(g_SelectedBossID)) set_task(0.1, "task_set_boss_attributes", g_SelectedBossID); } else if(g_SelectedBossID == -1) { new players[32], pnum, id; get_players(players, pnum, "h"); for(new i = 0; i < pnum; i++) { id = players; if(i % 2 == 0) cs_set_user_team(id, CS_TEAM_CT); else cs_set_user_team(id, CS_TEAM_T); if(!is_user_alive(id)) ExecuteHamB(Ham_CS_RoundRespawn, id); } set_cvar_num("mp_autoteambalance", 1); set_cvar_num("mp_limitteams", 1); g_SelectedBossID = 0; } if(g_CountdownSeconds > 0) { remove_task(888); set_task(1.0, "task_boss_countdown", 888, _, _, "a", g_CountdownSeconds); } } public activate_boss_mode() { new players[32], pnum; get_players(players, pnum, "ah"); if(pnum < 2) return; g_SelectedBossID = (g_BossTarget && is_user_connected(g_BossTarget)) ? g_BossTarget : players[random(pnum)]; g_IsBossActive = true; set_cvar_float("mp_roundtime", 3.0); set_cvar_num("mp_freezetime", 0); server_cmd("sv_restart 1"); set_task(1.5, "apply_boss_stats", g_SelectedBossID); g_BossTimerSeconds = 180; remove_task(777); set_task(1.0, "task_boss_timer", 777, _, _, "b"); } public apply_boss_stats(id) { if(!is_user_connected(id) || !g_IsBossActive) return; new players[32], pnum, iPlayer; get_players(players, pnum, "h"); for(new i = 0; i < pnum; i++) { iPlayer = players; if(iPlayer == id) cs_set_user_team(iPlayer, CS_TEAM_T); else { cs_set_user_team(iPlayer, CS_TEAM_CT); strip_user_weapons(iPlayer); give_item(iPlayer, "weapon_knife"); give_item(iPlayer, "weapon_deagle"); cs_set_user_bpammo(iPlayer, CSW_DEAGLE, 100); } } remove_c4_entities(); ExecuteHamB(Ham_CS_RoundRespawn, id); // Aplicam HP/Speed set_task(0.1, "task_set_boss_attributes", id); set_task(0.5, "task_boss_disco", 666, _, _, "b"); } public task_set_boss_attributes(id) { if(!is_user_alive(id)) return; strip_user_weapons(id); give_item(id, "weapon_knife"); give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 100); set_pev(id, pev_health, 2000.0); set_pev(id, pev_max_health, 2000.0); set_user_maxspeed(id, 450.0); set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16); } public task_boss_disco() { if(!g_IsBossActive || !is_user_connected(g_SelectedBossID) || !is_user_alive(g_SelectedBossID)) { remove_task(666); return; } static const colors[5][3] = { {255, 0, 0}, // Rosu {0, 255, 0}, // Verde {0, 0, 255}, // Albastru {255, 255, 0}, // Galben {255, 0, 255} // Roz }; new i = random(5); set_user_rendering(g_SelectedBossID, kRenderFxGlowShell, colors[0], colors[1], colors[2], kRenderNormal, 16); emit_sound(g_SelectedBossID, CHAN_AUTO, "buttons/blip1.wav", 0.5, ATTN_NORM, 0, PITCH_NORM); } public task_boss_timer() { if(!g_IsBossActive || !is_user_connected(g_SelectedBossID)) { remove_task(777); if(g_IsBossActive) end_boss_round(); return PLUGIN_HANDLED; } g_BossTimerSeconds--; new szName[32]; get_user_name(g_SelectedBossID, szName, charsmax(szName)); set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 0.1, 1.0, 0.1, 0.1, -1); show_hudmessage(0, "[BOSS: %s]^nHP: %d | Timp: %d:%02d", szName, get_user_health(g_SelectedBossID), g_BossTimerSeconds/60, g_BossTimerSeconds%60); if(g_BossTimerSeconds <= 0) { remove_task(777); if(is_user_alive(g_SelectedBossID)) { g_PlayerEggs[g_SelectedBossID] += 50; client_print_color(0, print_team_default, "^4BOSS ^3%s ^1a supravietuit si a primit ^4(50 oua)", szName); } end_boss_round(); } return PLUGIN_CONTINUE; } public event_death() { if(!g_IsBossActive) return PLUGIN_CONTINUE; new killer = read_data(1); new victim = read_data(2); if(!is_user_connected(victim)) return PLUGIN_CONTINUE; if(victim == g_SelectedBossID) { client_print_color(0, print_team_default, "^4BOSS ^1Vanatorii l-au ucis pe ^3Boss ^1si au primit ^4(50 oua)"); new players[32], pnum, id; get_players(players, pnum, "ae", "CT"); for(new i = 0; i < pnum; i++) { id = players; g_PlayerEggs[id] += 50; save_player_data(id); } g_IsBossActive = false; // prevenim dublare set_task(3.0, "end_boss_round"); } else if(killer == g_SelectedBossID && is_user_connected(killer)) { new players[32], pnum; get_players(players, pnum, "ae", "CT"); if(pnum == 0) { client_print_color(0, print_team_default, "^4[BOSS] ^4Boss-ul ^1i-a eliminat pe toti si a primit ^4(50 oua)"); g_PlayerEggs[g_SelectedBossID] += 50; save_player_data(g_SelectedBossID); g_IsBossActive = false; // prevenim executare dubla set_task(3.0, "end_boss_round"); } } return PLUGIN_CONTINUE; } public logevent_round_end() { if(g_IsBossActive) { end_boss_round(); } for(new i = 1; i <= 32; i++) { if(!is_user_connected(i)) continue; if(is_user_alive(i)) { add_mission_progress(i, 4, 1); g_NoDeathRounds++; if(g_NoDeathRounds >= 5) { add_mission_progress(i, 5, 1); g_NoDeathRounds = 0; } } if(cs_get_user_team(i) == g_RoundWinner) { add_mission_progress(i, 8, 1); g_WinStreak++; if(g_WinStreak >= 3) { add_mission_progress(i, 9, 1); g_WinStreak = 0; } } else { g_WinStreak = 0; } } } public event_round_winner_t() { g_RoundWinner = CS_TEAM_T; } public event_round_winner_ct() { g_RoundWinner = CS_TEAM_CT; } public end_boss_round() { g_IsBossActive = false; remove_task(777); remove_task(666); remove_task(888); set_cvar_float("mp_roundtime", 1.75); new players[32], pnum, id; get_players(players, pnum); for(new i = 0; i < pnum; i++) { id = players; set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0); set_user_maxspeed(id, 250.0); client_cmd(id, "stopsound"); } g_SelectedBossID = -1; client_print_color(0, print_team_default, "^4BOSS ^1Modul s-a terminat. Echipele se ^3(ECHILIBREAZA)"); server_cmd("sv_restart 1"); } stock remove_c4_entities() { new ent = -1; while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "weapon_c4"))) if(pev_valid(ent)) engfunc(EngFunc_RemoveEntity, ent); while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "grenade"))) { new model[64]; pev(ent, pev_model, model, charsmax(model)); if(containi(model, "c4") != -1) engfunc(EngFunc_RemoveEntity, ent); } } public fw_Touch(ent, id) { if(!pev_valid(ent) || !is_user_connected(id) || !is_user_alive(id)) return FMRES_IGNORED; static classname[32]; pev(ent, pev_classname, classname, charsmax(classname)); if(equal(classname, GOLDEN_EGG_CLASSNAME)) { g_PlayerEggs[id] += 1; add_mission_progress(id, 3, 1); save_player_data(id); emit_sound(id, CHAN_ITEM, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); client_print_color(id, print_team_default, "^4OU ^1Ai gasit un ^3Ou de Aur ^4(+1)"); if(g_MsgScreenFade) { message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenFade, _, id); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(255); write_byte(215); write_byte(0); write_byte(120); message_end(); } engfunc(EngFunc_RemoveEntity, ent); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { if(!is_user_connected(victim)) return HAM_IGNORED; if(g_HasShield[victim]) { g_HasShield[victim] = false; client_print_color(victim, print_team_default, "^4SHOP ^1Scutul tau a ^3EXPLODAT ^1dar te-a salvat!"); return HAM_SUPERCEDE; } if(g_DamageReduce[victim]) { SetHamParamFloat(4, damage * 0.9); g_DamageReduce[victim] = false; client_print_color(victim, print_team_default, "^4SHOP ^1Protectia ti-a ^3REDUS ^1dauna primita"); return HAM_HANDLED; } if(g_IsBossActive && victim == g_SelectedBossID) { if(damage_type & DMG_GRENADE) { SetHamParamFloat(4, damage * 0.5); return HAM_HANDLED; } } return HAM_IGNORED; } public fw_PlayerKilled_Post(victim, killer) { if(!is_user_connected(victim)) return; g_NoDeathRounds[victim] = 0; if(is_user_connected(killer) && killer != victim) { add_mission_progress(killer, 0, 1); add_mission_progress(killer, 1, 1); add_mission_progress(killer, 2, 1); if(get_user_weapon(killer) == CSW_KNIFE) add_mission_progress(killer, 10, 1); if(g_IsBossActive) { if(victim == g_SelectedBossID) add_mission_progress(killer, 6, 1); if(killer == g_SelectedBossID) add_mission_progress(killer, 7, 1); } new eggs = 1; if(g_DoubleEggs[killer]) eggs = 2; g_PlayerEggs[killer] += eggs; if(g_LifeSteal[killer]) { new hp = get_user_health(killer); set_user_health(killer, hp + 10); } save_player_data(killer); } // (Admin cu litera 't') if(get_user_flags(victim) & ADMIN_LEVEL_H) { new Float:vOrigin[3]; pev(victim, pev_origin, vOrigin); vOrigin[2] += 15.0; new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); if(pev_valid(ent)) { set_pev(ent, pev_classname, GOLDEN_EGG_CLASSNAME); engfunc(EngFunc_SetModel, ent, GOLDEN_EGG_SPRITE); engfunc(EngFunc_SetSize, ent, Float:{-20.0, -20.0, -20.0}, Float:{20.0, 20.0, 20.0}); set_pev(ent, pev_solid, SOLID_BBOX); set_pev(ent, pev_movetype, MOVETYPE_TOSS); set_pev(ent, pev_origin, vOrigin); set_pev(ent, pev_rendermode, kRenderTransAdd); set_pev(ent, pev_renderamt, 255.0); set_pev(ent, pev_rendercolor, Float:{255.0, 215.0, 0.0}); set_pev(ent, pev_renderfx, kRenderFxGlowShell); set_pev(ent, pev_scale, 0.1); set_task(20.0, "remove_ent", ent); } } } public cmd_easter_shop(id) { new szTitle[64]; format(szTitle, charsmax(szTitle), "\yEaster Shop \w| Oua: \r%d", g_PlayerEggs[id]); new menu = menu_create(szTitle, "shop_handler"); menu_additem(menu, "Radar Scanner \y(15 Oua)", "0"); menu_additem(menu, "Egg Shield \y(25 Oua)", "1"); menu_additem(menu, "Double Eggs x2 \y(40 Oua)", "2"); menu_additem(menu, "Silent Steps \y(20 Oua)", "3"); menu_additem(menu, "Damage Reduce 10% \y(35 Oua)", "4"); menu_additem(menu, "Invisibility 3 sec \y(50 Oua)", "5"); menu_additem(menu, "Life Steal (10 HP/kill) \y(40 Oua)", "6"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public shop_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } if(id == g_SelectedBossID) { client_print_color(id, print_team_default, "^4SHOP ^1Boss-ul ^3NU ^1are voie sa foloseasca magazinul!"); menu_destroy(menu); return PLUGIN_HANDLED; } if(!is_user_alive(id)) { client_print_color(id, print_team_default, "^4SHOP ^1Trebuie sa fii ^3VIU ^1pentru a folosi magazinul!"); menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: { // Radar if(g_HasRadar[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja ^3Radarul ^1activat!"); } else if(g_PlayerEggs[id] >= 15) { g_PlayerEggs[id] -= 15; g_HasRadar[id] = true; set_task(45.0, "stop_radar", id); client_print_color(id, print_team_default, "^4SHOP ^1Ai activat ^3Radar ^1pentru 45 secunde!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^315 oua ^1pentru Radar!"); } case 1: { // Scut if(g_HasShield[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja un ^3Scut ^1activ!"); } else if(g_PlayerEggs[id] >= 25) { g_PlayerEggs[id] -= 25; g_HasShield[id] = true; client_print_color(id, print_team_default, "^4SHOP ^1Ai cumparat un ^3Scut ^1protectiv!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(25 oua) ^1pentru Scut!"); } case 2: { // Double Eggs if(g_DoubleEggs[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja ^3Double Eggs ^1activ!"); } else if(g_PlayerEggs[id] >= 40) { g_PlayerEggs[id] -= 40; g_DoubleEggs[id] = true; client_print_color(id, print_team_default, "^4SHOP ^1Vei primi ^3dublu oua ^1runda aceasta!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(40 oua) ^1pentru Double Eggs!"); } case 3: { // Silent Steps if(g_SilentSteps[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja ^3Pasii Silentiosi ^1activi!"); } else if(g_PlayerEggs[id] >= 20) { g_PlayerEggs[id] -= 20; g_SilentSteps[id] = true; set_user_footsteps(id, 1); client_print_color(id, print_team_default, "^4SHOP ^1Acum te deplasezi ^3fara zgomot^1!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(20 oua) ^1pentru Silent Steps!"); } case 4: { // Damage Reduce if(g_DamageReduce[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja ^3Reducere Damage ^1activa!"); } else if(g_PlayerEggs[id] >= 35) { g_PlayerEggs[id] -= 35; g_DamageReduce[id] = true; client_print_color(id, print_team_default, "^4SHOP ^1Vei primi ^3mai putin damage ^1runda aceasta!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(35 oua) ^1pentru Damage Reduce!"); } case 5: { // Invis 3 sec if(g_PlayerEggs[id] >= 50) { g_PlayerEggs[id] -= 50; remove_task(id + 1234); set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 40); set_task(3.0, "remove_invis", id + 1234); client_print_color(id, print_team_default, "^4SHOP ^1Esti ^3INVIZIBIL ^1pentru 3 secunde!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(50 oua) ^1pentru Invizibilitate!"); } case 6: { // Life Steal if(g_LifeSteal[id]) { client_print_color(id, print_team_default, "^4SHOP ^1Ai deja ^3Life Steal ^1activ!"); } else if(g_PlayerEggs[id] >= 40) { g_PlayerEggs[id] -= 40; g_LifeSteal[id] = true; client_print_color(id, print_team_default, "^4SHOP ^1Vei primi ^3HP ^1la fiecare kill!"); save_player_data(id); } else client_print_color(id, print_team_default, "^4SHOP ^1Ai nevoie de ^3(40 oua0 ^1pentru Life Steal!"); } } menu_destroy(menu); return PLUGIN_HANDLED; } public event_new_round() { for(new i = 1; i <= 32; i++) { g_DoubleEggs = false; g_SilentSteps = false; g_DamageReduce = false; g_LifeSteal = false; if(is_user_connected(i)) { set_user_footsteps(i, 0); set_user_rendering(i, kRenderFxNone, 0, 0, 0, kRenderNormal, 0); } } } public remove_invis(taskid) { new id = taskid - 1234; if(!is_user_connected(id)) return; set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0); client_print_color(id, print_team_default, "^4[SHOP] ^1Invizibilitatea a ^3EXPIRAT"); } public stop_radar(id) g_HasRadar[id] = false; public remove_ent(ent) if(pev_valid(ent)) engfunc(EngFunc_RemoveEntity, ent); Editat Martie 5 de traka Adăugat sursa plugin . 3 2
Administrator Dexter. @ GOV.RO Postat Februarie 25 Administrator Postat Februarie 25 Foarte interesant. @ Server Managerspoate vă interesează să implementați asemenea lucru în perioada de Paște. M-aș bucura, dacă tot este făcut pentru comunitatea LEAGUECS ROMÂNIA, să pui sursa publică pentru certitudinea fișierului .amxx și conținutul acestuia. L.E Fiind un plugin pentru comunitatea LEAGUECS ROMÂNIA, fiecare manager de server poate să-și editeze conținutul informațiilor din plugin cu serverul lui. Aveți sursa atașată mai sus a pluginului. Mulțumesc @traka pentru cooperare. 5
traka Postat Februarie 25 Autor Postat Februarie 25 (editat) pentru modificare modelului de sprite, imi comunicati poate cineva are nevoie in loc de acel OU un iepure...orice alt ceva va pot crea acel sprite... daca observati vreo greseala in cod va rog sa nu sariti in cap...puteti sa imi spuneti si o modificam sa functioneze ok pe server... edit: am creat un sprite nou.... in cod`ul de mai sus la linia - new const GOLDEN_EGG_SPRITE[] = "sprites/numele_tau.spr"; LINK : https://limewire.com/d/GqhL6#GeVwaMND8V POZE: // 3. SPAWN GOLDEN EGG (Admin cu litera 't') if(get_user_flags(victim) & ADMIN_LEVEL_H) { new Float:vOrigin[3]; pev(victim, pev_origin, vOrigin); vOrigin[2] += 15.0; new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); if(pev_valid(ent)) { set_pev(ent, pev_classname, GOLDEN_EGG_CLASSNAME); engfunc(EngFunc_SetModel, ent, GOLDEN_EGG_SPRITE); engfunc(EngFunc_SetSize, ent, Float:{-15.0, -15.0, -15.0}, Float:{15.0, 15.0, 15.0}); set_pev(ent, pev_solid, SOLID_BBOX); set_pev(ent, pev_movetype, MOVETYPE_TOSS); set_pev(ent, pev_origin, vOrigin); set_pev(ent, pev_rendermode, kRenderTransAdd); set_pev(ent, pev_renderamt, 255.0); set_pev(ent, pev_rendercolor, Float:{255.0, 215.0, 0.0}); set_pev(ent, pev_renderfx, kRenderFxGlowShell); set_pev(ent, pev_scale, 0.1); set_task(20.0, "remove_ent", ent); } } } aici aveti codu anume unde in sma se produce caderea spritului... la set_pev(ent, pev_scale, 0.1); aici e marimea lui... la 0.1 puteti il face mai mare dar nu arata frumos... daca vreti sa scoateti culoare aurie se modifica set_pev(ent, pev_rendercolor, Float:{255.0, 215.0, 0.0}); fara culoare. Editat Februarie 27 de traka adaugare spr. nou 1 1
Administrator Dexter. @ GOV.RO Postat Februarie 27 Administrator Postat Februarie 27 Încă odată felicitări traka pentru disponibilitatea de a ajuta Managerii din cadrul comunității. 3
LondoN eXtream Postat Februarie 27 Postat Februarie 27 De ce nu lasi si sursa? nu cred ca e ceva wow sa se fure.
traka Postat Februarie 27 Autor Postat Februarie 27 Daca o sa citecti atent topicul o sa vezi este editat de @Dexter. @ GOV.RO si este sursa. 1 1
Administrator Dexter. @ GOV.RO Postat Februarie 28 Administrator Postat Februarie 28 Acum 23 ore, LondoN eXtream a spus: De ce nu lasi si sursa? nu cred ca e ceva wow sa se fure. Are sursa pusă publică de mine la "L.E" 1
traka Postat Martie 11 Autor Postat Martie 11 (editat) un mic update v:13:5 am facut cateva schimbari la shop.. am adaugat vip contra cost... EASTER VIP PASS VIP Pass poate fi cumpărat din joc sau oferit de admin. Preț : 25.000 Oua Durată: 7 zile Beneficii VIP : +1 Egg bonus la fiecare kill, HP bonus la kill, +10 HP headshot, +5 Armor la fiecare kill, Damage HUD Skin-uri VIP : AK47 custom, M4A1 custom Chat Colorat VIP Bonus zilnic : +10 ouă pe hartă Setări VIP : VIP-ul poate activa sau dezactiva: ✔ X2 Eggs ✔ Weapon Skins ✔ VIP Chat deja skinurile le redenumiti singuri cum doriti si le selectati singur de care aveti nevoie new const VIP_AK_V[] = "models/easter/v_ak47_leaguecs.mdl"; new const VIP_AK_P[] = "models/easter/p_ak47_leaguecs.mdl"; new const VIP_M4_V[] = "models/easter/v_m4a1_leaguecs.mdl"; new const VIP_M4_P[] = "models/easter/p_m4a1_leaguecs.mdl"; Editat Martie 30 de traka 1 1 1
Alexvnder. Postat Martie 17 Postat Martie 17 Salutare, link-ul de la modele nu mai este valabil. Îl poți pune iar te rog?
traka Postat Martie 18 Autor Postat Martie 18 Salut! Acestea nu sunt skinuri personalizate, ci modele standard. Puteți descărca orice skinuri doriți de pe internet și să le înlocuiți în cod, modificând căile de mai jos după bunul plac new const VIP_AK_V[] = "models/easter/v_ak47_leaguecs.mdl"; new const VIP_AK_P[] = "models/easter/p_ak47_leaguecs.mdl"; new const VIP_M4_V[] = "models/easter/v_m4a1_leaguecs.mdl"; new const VIP_M4_P[] = "models/easter/p_m4a1_leaguecs.mdl";
Administrator Dexter. @ GOV.RO Postat Martie 18 Administrator Postat Martie 18 @traka am rugămintea la tine să revii cu niște modele cât de cât personalizate în "LeagueCS" pentru următoarele variabile (dacă se poate.): Citat new const VIP_AK_V[] = "models/easter/v_ak47_leaguecs.mdl"; new const VIP_AK_P[] = "models/easter/p_ak47_leaguecs.mdl"; new const VIP_M4_V[] = "models/easter/v_m4a1_leaguecs.mdl"; new const VIP_M4_P[] = "models/easter/p_m4a1_leaguecs.mdl";
traka Postat Martie 18 Autor Postat Martie 18 (editat) @Dexter. @ GOV.RO cât de cât ))) link: https://www.mediafire.com/file/b2pwjh9medphfr2/easterlgcs.rar/file v2: https://www.mediafire.com/file/m076m6qgm10o055/v_ak47_leaguecsv2.mdl/file v3 : https://www.mediafire.com/file/hepa01pbor4p02d/v_ak47_leaguecsgoldvip.mdl/file Editat Martie 26 de traka
Administrator Dexter. @ GOV.RO Postat Martie 19 Administrator Postat Martie 19 Acum 7 ore, traka a spus: @Dexter. @ GOV.RO cât de cât ))) link: https://www.mediafire.com/file/b2pwjh9medphfr2/easterlgcs.rar/file Merge. @Alexvnder. 1
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum