- De adaugat sa dea hp si pe headshot (+25 hp) si la kill normal sa fie +15 hp.
- De adaugat sa dea 250 $ pe kill normal si 350 $ pe headshot
P.s: Nu imi apare damage-ul facut (imi apare doar daca trag in alt vip), daca se poate fixa si asta.
Sursa:
- Aici | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <hamsandwich> #include <fun> #define PLUGIN "VipCs" #define VERSION "1.5" #define AUTHOR "Alexandru" #define RUNDA_ARME 4 new const g_szFileName [] = "vip_list.ini"; new g_szFile[128]; new Trie: g_tVipList; new bool: g_bIsVip[33]; // = false new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2; new jumpnum[33] = 0; new bool:dojump[33] = false; new RoundCheck public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1); register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0"); register_event("HLTV", "event_new_round", "a", "1=0", "2=0") g_type = register_cvar("amx_bulletdamage","1"); g_recieved = register_cvar("amx_bulletdamage_recieved","1"); register_cvar("amx_maxjumps","1"); g_hudmsg1 = CreateHudSyncObj(); g_hudmsg2 = CreateHudSyncObj(); register_clcmd("say /vips","cmdVips"); register_clcmd("say_team /vips","cmdVips"); } public plugin_precache() { g_tVipList = TrieCreate(); } public plugin_cfg() { new szDir[128]; get_configsdir(szDir, charsmax(szDir)); formatex(g_szFile, charsmax(g_szFile), "%s/%s", szDir, g_szFileName); if(!file_exists(g_szFile)) { new fp = fopen(g_szFile, "a+"); if(fp) { fputs(fp, "; ===========================================================^n"); fputs(fp, "; --------------------- VIP LIST ----------------------------^n"); fputs(fp, "; ===========================================================^n"); fputs(fp, "; Nota: Incepe randul cu ^";^" pentru a dezactiva un VIP^n" ); //fputs( fp, "^b" ); } fclose(fp); } ReadIniFile(); } public plugin_end() { TrieDestroy(g_tVipList); } public event_new_round(){ RoundCheck++ } ReadIniFile() { new fp = fopen(g_szFile , "rt"); if(!fp) { return 0; } new szData[256], i; while(!feof(fp)) { fgets(fp, szData, charsmax(szData)); trim(szData); if(!szData[0] || szData[0] == ';' || szData[0] == '#' || (szData[0] == '/' && szData[1] == '/')) { continue; } TrieSetCell(g_tVipList, szData, i); i ++; } return 0; } public client_putinserver(id) { new szName[32]; get_user_name(id, szName, charsmax(szName)) new szSteamID[32]; get_user_authid(id, szSteamID, charsmax(szSteamID)) if(TrieKeyExists(g_tVipList, szName) || TrieKeyExists(g_tVipList, szSteamID)) { g_bIsVip[id] = true; } if(g_bIsVip[id]) { jumpnum[id] = 0; dojump[id] = false; } } public client_disconnect(id) { if(g_bIsVip[id]) { g_bIsVip[id] = false; jumpnum[id] = 0; dojump[id] = false; } } public HAM_Spawn_Post(id) { if(is_user_alive(id) && g_bIsVip[id]) { give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35); give_item(id, "weapon_hegrenade"); give_item(id, "weapon_flashbang"); cs_set_user_bpammo(id, CSW_FLASHBANG, 2); cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM); g_enabled = get_pcvar_num(g_type); //new CM[32] //get_mapname(CM,charsmax(CM)) //if((containi(CM,"de_"))) //{ if(cs_get_user_team(id)==CS_TEAM_CT) { /*if(cs_get_user_defuse(id)==1) cs_set_user_defuse(id, 1, 255, 255, 0, "defuser", 0) else cs_set_user_defuse(id, 1, 255, 255, 0, "defuser", 0)*/ cs_set_user_defuse(id, 1, 255, 255, 0, _, 0) } if(get_pcvar_num(g_recieved)) g_showrecieved = true; if(RoundCheck >= RUNDA_ARME) show_menuX(id); } } public on_damage(id) { if(g_enabled && g_bIsVip[id]) { static attacker; attacker = get_user_attacker(id); static damage; damage = read_data(2); if(g_showrecieved) { set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1); ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage); } if(is_user_connected(attacker)) { if(g_bIsVip[attacker]) { set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1); ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage); } } } } public cmdVips(id) { new iPlayers[32],iNum,len,name[32],buffer[256],player,i,count = 0; get_players(iPlayers,iNum); for(i = 0;i < iNum; i++) { player = iPlayers; if(g_bIsVip[player]) { count++; get_user_name(player,name,charsmax(name)); len = len+= formatex(buffer[len],charsmax(buffer),"%s ,",name); } } if(count > 0) client_print(id,print_chat,"[Cs] Membrii VIP online: %s",buffer); else client_print(id,print_chat,"[Cs] Nu este niciun membru VIP online."); } public show_menuX(id) { new menu = menu_create("\r MENIU VIP CS :", "v_handler"); menu_additem(menu, "\y M4A1", "1"); menu_additem(menu, "\y AK47", "2"); menu_additem(menu, "\y AWP", "3"); //menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu); } public v_handler(id, menu, item) // de modificat... { if(!g_bIsVip[id]) { menu_destroy(menu); return PLUGIN_HANDLED; } if(!is_user_alive(id)) { menu_destroy(menu); return PLUGIN_HANDLED; } /* if(item < 0) { return 0 } new Key[3] new Access, CallBack menu_item_getinfo(menu, item, Access, Key, 2, _, _, CallBack) new isKey = str_to_num(Key) */ switch(item) // switch(isKey) { case 0: { give_item(id, "weapon_m4a1"); cs_set_user_bpammo(id, CSW_M4A1, 90); } case 1: { give_item(id, "weapon_ak47"); cs_set_user_bpammo(id, CSW_AK47, 90); } case 2: { give_item(id, "weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, 30); } } menu_destroy(menu); return PLUGIN_HANDLED; } public client_death(killer, victim, wpnindex, hitplace, TK) // de modficat { if(wpnindex == CSW_C4 || killer == victim || !is_user_connected(killer) || !is_user_connected(victim) || !g_bIsVip[killer]) { return PLUGIN_HANDLED; } if(hitplace == HIT_HEAD) { set_user_health(killer, min(100, get_user_health(killer) + 25)); //cs_set_user_money(killer, cs_get_user_money(killer) + 250); } if(hitplace != HIT_HEAD) // else { set_user_health(killer, min(100, get_user_health(killer) + 25)); //cs_set_user_money(killer, cs_get_user_money(killer) + 150); } //set_user_health(killer, get_user_health(killer) + 25) return PLUGIN_HANDLED; } public client_PreThink(id) { if(!is_user_alive(id) || !g_bIsVip[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(jumpnum[id] < get_cvar_num("amx_maxjumps")) { dojump[id] = true; jumpnum[id]++; return PLUGIN_CONTINUE; } } if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { jumpnum[id] = 0; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public client_PostThink(id) { if(!is_user_alive(id) || !g_bIsVip[id]) return PLUGIN_CONTINUE; if(dojump[id] == true) { new Float:velocity[3]; entity_get_vector(id,EV_VEC_velocity,velocity); velocity[2] = random_float(265.0,285.0); entity_set_vector(id,EV_VEC_velocity,velocity); dojump[id] = false; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; }