As dorii sa adaugati un meniu cu arme din runda 3.
1.M4A1 +Deagle+ Echipament
2.AK-47 +Deagle+ Echipament
3.AWP +Deagle+ Echipament
.sma
- | Afiseaza codul
[code] /* CREDITE: ConnorMcLeod - pentru bullet damage twistedeuphoria - pentru multi jump */ #include <amxmodx> #include <hamsandwich> #include <engine> #include <cstrike> #include <fun> #include <fakemeta> forward csgor_user_mvp(id, event, kills); forward csgor_user_assist(assist, killer, victim, head); native csgor_get_user_points(id); native csgor_set_user_points(id, amount); native csgor_get_user_keys(id); native csgor_set_user_keys(id, amount); native csgor_get_user_cases(id); native csgor_set_user_cases(id, amount); // -------------------------------------------- // ------------- DE EDITAT --------------- // -------------------------------------------- new const TAG[] = "[CS:GO Remake]"; // TAGUL IN CHAT CARE APARE // Poti adauga mai multe harti, respectand matricea new const restrcited_maps[][] = { "35hp", "35hp_2", "31hp", "1hp", "100hp" } // -------------------------------------------- // ------------- DE EDITAT --------------- // -------------------------------------------- #define PLUGIN_NAME "VIP System API CSGOR" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "YONTU" #define is_user_valid(%1) (1 <= %1 <= max_players) enum _:vip_data { name[32], password[32] } enum cvars { hp_spawn = 0, ap_spawn, show_vip_tab, money_spawn, money_kill, money_hs, show_bullet_dmg, multi_jump, cases, keys, points } new cvar[cvars]; new Array:vip_array; new bool:is_user_vip[33], vips_number = 0; new cvar_password_field; new max_players; new bool:g_bJump[33] = false, g_JumpNum[33] = 0; new g_iPlayerPos[33], g_iPlayerCol[33]; // NU SCHIMBA new const Float:g_flCoords[][] = { {0.50, 0.40}, {0.56, 0.44}, {0.60, 0.50}, {0.56, 0.56}, {0.50, 0.60}, {0.44, 0.56}, {0.40, 0.50}, {0.44, 0.44} } // NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea new const g_iColors[][] = { {0, 127, 255}, // blue {255, 127, 0}, // orange {127, 0, 255}, // purple {255, 0, 0}, // red {255, 100, 150}, // pink {0, 255, 0} // green } public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER); set_cvar_string("vip_", PLUGIN_VERSION); cvar_password_field = register_cvar("amxx_password_field", "_pw"); register_event("DeathMsg", "event_DeathMsg", "a"); register_event("Damage", "event_Damage", "b", "2>0", "3=0"); register_forward(FM_ClientUserInfoChanged, "fw_ChangeName"); RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1); register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib"); register_clcmd("say /vips", "CmdVipsOnline"); register_clcmd("say_team /vips", "CmdVipsOnline"); register_clcmd("say vips", "CmdVipsOnline"); register_clcmd("say_team vips", "CmdVipsOnline"); register_clcmd("say vip", "CmdPrintAttributes"); register_clcmd("say_team vip", "CmdPrintAttributes"); register_clcmd("say /vip", "CmdPrintAttributes"); register_clcmd("say_team /vip", "CmdPrintAttributes"); cvar[hp_spawn] = register_cvar("vip_hp_spawn", "120"); // 0 = dezactivat cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100"); // 0 = dezactivat cvar[show_vip_tab] = register_cvar("vip_show_tab", "1"); // 0 = dezactivat cvar[money_spawn] = register_cvar("vip_money_bonus_spawn", "500"); // 0 = dezactivat cvar[money_kill] = register_cvar("vip_receive_money_kill", "500"); // 0 = dezactivat cvar[money_hs] = register_cvar("vip_receive_money_hs", "800"); // 0 = dezactivat cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1"); // 0 = dezactivat cvar[multi_jump] = register_cvar("vip_multijump", "1"); // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump cvar[cases] = register_cvar("vip_mvp_cases", "1"); // 0 = dezactivat cvar[keys] = register_cvar("vip_mvp_keys", "1"); // 0 = dezactivat cvar[points] = register_cvar("vip_assist_points", "10"); // 0 = dezactivat read_vip_file(); max_players = get_maxplayers(); } read_vip_file() { new path[64]; get_localinfo("amxx_configsdir", path, charsmax(path)); format(path, charsmax(path), "%s/vips.ini", path); new file = fopen(path, "r+"); if(!file_exists(path)) { new format_txt[128]; log_to_file("vip_errors.txt", "Nu am gasit fisierul '%s'. Il creez acum!", path); format(format_txt, charsmax(format_txt), ";------------ | %s - Configuration file | ------------", PLUGIN_NAME); write_file(path, format_txt); format(format_txt, charsmax(format_txt), ";-------------------------- | by %s | --------------------------^n^n", PLUGIN_AUTHOR); write_file(path, format_txt); write_file(path, "; Exemplu de adaugare VIP:^n; ^"NUME^" ^"PAROLA^"^n^n^n"); } if(vips_number) { ArrayClear(vip_array); vips_number = 0; } new text[121], p_name[32], p_password[32], vip_infos[vip_data]; while(!feof(file)) { fgets(file, text, charsmax(text)); trim(text); if(text[0] == ';' || !strlen(text)) { continue; } if(parse(text, p_name, charsmax(p_name), p_password, charsmax(p_password)) != 2) { log_to_file("vip_errors.txt", "[AMXX] Nu am putut delimita linia (%s). Este scrisa gresit.", text); continue; } copy(vip_infos[name], charsmax(vip_infos), p_name); copy(vip_infos[password], charsmax(vip_infos), p_password); ArrayPushArray(vip_array, vip_infos); vips_number++; } fclose(file); switch(vips_number) { case 0: server_print("[AMXX] Nu am gasit nici un VIP in fisier."); default: server_print("[AMXX] Am incarcat %d VIP%s din fisier.", vips_number, vips_number == 1 ? "" : "I"); } } public plugin_natives() { vip_array = ArrayCreate(vip_data); register_native("is_user_vip", "native_is_user_vip", 1); register_native("set_user_vip", "native_set_user_vip", 1); } public plugin_end() { ArrayDestroy(vip_array); } public native_is_user_vip(id) { return is_user_vip[id]; } public native_set_user_vip(id, bool:value) { return is_user_vip[id] = (value == true) ? true : false; } public csgor_user_mvp(id, event, kills) { if(is_user_alive(id) && is_user_vip[id]) { new cvar1 = get_pcvar_num(cvar[cases]); if(cvar1 != 0) csgor_set_user_cases(id, csgor_get_user_cases(id) + cvar1); new cvar2 = get_pcvar_num(cvar[keys]); if(cvar2 != 0) csgor_set_user_keys(id, csgor_get_user_keys(id) + cvar2); ColorChat(id, "!4%s!1 Ai primit!3 %d!1 chei%s si!3 %d!1 %s.", TAG, cvar1, cvar1 == 1 ? "e" : "", cvar2, cvar2 == 1 ? "cufar" : "cufere"); } } public csgor_user_assist(assist, killer, victim, head) { new cvarp = get_pcvar_num(cvar[points]); if(cvarp != 0 && is_user_vip[assist] && is_user_alive(assist) && assist != killer) { csgor_set_user_points(assist, csgor_get_user_points(assist) + cvarp); ColorChat(assist, "!4%s!1 Ai primit!3 %d!1 puncte pentru asist.", TAG, cvarp); } } public client_disconnect(id) { /* if(is_user_vip[id]) { new name1[32]; get_user_name(id, name1, charsmax(name1)); ColorChat(0, "!4%s!1 VIP-ul!3 %s!1 s-a deconectat de pe server.", TAG, name1); } */ is_user_vip[id] = false; } public client_putinserver(id) { new p_name[32], p_password_field[32], p_password[32]; get_user_info(id, "name", p_name, charsmax(p_name)); get_pcvar_string(cvar_password_field, p_password_field, charsmax(p_password_field)); get_user_info(id, p_password_field, p_password, charsmax(p_password)); is_user_vip[id] = false; new vip_infos[vip_data], i; for(i = 0; i < vips_number; i++) { ArrayGetArray(vip_array, i, vip_infos); if(equal(vip_infos[name], p_name)) { if(equal(vip_infos[password], p_password)) { is_user_vip[id] = true; } else { server_cmd("kick #%d ^"Parola gresita...^"", get_user_userid(id)); } break; } } new map_name[32]; get_mapname(map_name, charsmax(map_name)); for(i = 0; i < sizeof(restrcited_maps); i++) { if(equali(map_name, restrcited_maps)) { is_user_vip[id] = false; break; } } /* if(is_user_vip[id]) { new name1[32]; get_user_name(id, name1, charsmax(name1)); ColorChat(0, "!4%s!1 VIP-ul!3 %s!1 s-a conectat pe server.", TAG, name1); } */ g_JumpNum[id] = 0; g_bJump[id] = false; } public CmdVipsOnline(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; new adminnames[33][32], message[256], i, count, len; len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG); for(i = 1 ; i <= max_players; i++) { if(is_user_connected(i) && is_user_vip) get_user_name(i, adminnames[count++], charsmax(adminnames[])); } if(count > 0) { for(i = 0; i < count; i++) { len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "."); //if(len > 96) ColorChat(id, message); } ColorChat(id, message); } else { len += format(message[len], 255 -len, "!4No one !") ColorChat(id, message); } return PLUGIN_CONTINUE; } public client_PreThink(id) { new jump_num = get_pcvar_num(cvar[multi_jump]); if(!jump_num) return PLUGIN_CONTINUE; if(is_user_alive(id) && !is_user_vip[id]) return PLUGIN_CONTINUE; new nbut = get_user_button(id); new obut = get_user_oldbutton(id); if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if(g_JumpNum[id] < jump_num) { g_bJump[id] = true; g_JumpNum[id]++; return PLUGIN_CONTINUE; } } if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { g_JumpNum[id] = 0; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public client_PostThink(id) { new jump_num = get_pcvar_num(cvar[multi_jump]); if(!jump_num) return PLUGIN_CONTINUE; if(is_user_alive(id) && !is_user_vip[id]) return PLUGIN_CONTINUE; if(g_bJump[id]) { new Float:fVelocity[3]; entity_get_vector(id, EV_VEC_velocity, fVelocity); fVelocity[2] = random_float(265.0, 285.0); entity_set_vector(id, EV_VEC_velocity, fVelocity); g_bJump[id] = false; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public event_DeathMsg() { new killer = read_data(1); new victim = read_data(2); new headshot = read_data(3); new money = headshot ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]); if(is_user_alive(killer) && is_user_vip[killer]) { if(killer == victim) return PLUGIN_HANDLED; if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 16000)); } return PLUGIN_CONTINUE; } public event_Damage(victim) { if(!get_pcvar_num(cvar[show_bullet_dmg])) return PLUGIN_CONTINUE; new id = get_user_attacker(victim); if(is_user_valid(id)) { if(is_user_alive(id) && !is_user_vip[id]) return PLUGIN_HANDLED; if(read_data(4) || read_data(5) || read_data(6)) { new iPos = ++g_iPlayerPos[id]; if(iPos == sizeof(g_flCoords)) iPos = g_iPlayerPos[id] = 0; new iCol = ++g_iPlayerCol[id]; if(iCol == sizeof(g_iColors)) iCol = g_iPlayerCol[id] = 0; set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1); show_hudmessage(id, "%d", read_data(2)); } } return PLUGIN_CONTINUE; } public fw_PlayerSpawnPost(id) { if(is_user_vip[id] && is_user_alive(id)) { set_task(0.25, "give_items", id + 212); return HAM_IGNORED; } return HAM_IGNORED; } public give_items(taskid) { new id = taskid - 212; if(!is_user_alive(id)) return; if(get_pcvar_num(cvar[hp_spawn]) != 0) set_user_health(id, get_pcvar_num(cvar[hp_spawn])); if(get_pcvar_num(cvar[ap_spawn]) != 0) cs_set_user_armor(id, get_pcvar_num(cvar[ap_spawn]), CS_ARMOR_VESTHELM); if(get_pcvar_num(cvar[money_spawn]) != 0) cs_set_user_money(id, min(cs_get_user_money(id) + get_pcvar_num(cvar[money_spawn]), 16000)); if(cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id); give_item(id, "weapon_hegrenade"); give_item(id, "weapon_smokegrenade"); give_item(id, "weapon_flashbang"); cs_set_user_bpammo(id, CSW_FLASHBANG, 2); } // thx ConnorMcLeod public fw_ChangeName(id) { static old_name[32], new_name[32]; pev(id, pev_netname, old_name, charsmax(old_name)); if(old_name[0]) { get_user_info(id, "name", new_name, charsmax(new_name)); if(!equal(old_name, new_name)) { client_putinserver(id); } } return FMRES_IGNORED; } public msg_ScoreAttrib(msgid, dest, id) { if(!get_pcvar_num(cvar[show_vip_tab])) return PLUGIN_CONTINUE; new id = get_msg_arg_int(1); if(is_user_connected(id) && is_user_vip[id]) set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0)); return PLUGIN_CONTINUE; } public CmdPrintAttributes(id) { if(!is_user_connected(id)) return; show_motd(id, "addons/amxmodx/configs/vip.html", "Beneficii VIP"); } stock ColorChat(id, String[], any:...) { static szMesage[192]; vformat(szMesage, charsmax(szMesage), String, 3); replace_all(szMesage, charsmax(szMesage), "!1", "^1"); replace_all(szMesage, charsmax(szMesage), "!3", "^3"); replace_all(szMesage, charsmax(szMesage), "!4", "^4"); static g_msg_SayText = 0; if(!g_msg_SayText) g_msg_SayText = get_user_msgid("SayText"); new Players[32], iNum = 1, i; if(id) Players[0] = id; else get_players(Players, iNum, "ch"); for(--iNum; iNum >= 0; iNum--) { i = Players[iNum]; message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i); write_byte(i); write_string(szMesage); message_end(); } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */ [/code]