Witam mam problem z pluginem na vipa i svipa, ponieważ vip jest darmowy i jeżeli ktoś ma svipa, to wtedy nie daje mu svipa tylko vipa, czyli trzeba zrobić, że flaga N na svipa jest ważniejsza od vipa. Proste, lecz nie dla mnie, proszę o pomoc.
#include <amxmodx>
#include <cstrike>#include <amxmisc>#include <fakemeta>#include <fakemeta_util>#include <hamsandwich>#include <jailbreak>#include <colorchat>//native cs_set_player_model(id, newmodel[]);#define FLAGA_SVIP ADMIN_LEVEL_B//new SkinAK[33], SkinKOSACT[33], SkinKOSATT[33], SkinM4A1[33], SkinDEAGLE[33], ModelTT[33], ModelCT[33];public plugin_init(){// new const szBronie[][] = {// "weapon_scout", "weapon_mac10", "weapon_aug", "weapon_ump45",// "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp",// "weapon_mp5navy", "weapon_m249", "weapon_m4a1", "weapon_tmp",// "weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90",// "weapon_p228", "weapon_hegrenade", "weapon_xm1014",// "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_usp",// "weapon_glock18", "weapon_flashbang", "weapon_deagle"// }register_plugin("JB: VIP & SVIP", "1.0", "d0naciak");register_message(get_user_msgid("SayText"),"handleSayText");register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");register_clcmd("say /vip", "cmd_OpisVIP");register_clcmd("say /svip", "cmd_OpisSVIP");register_clcmd("say /vips", "MenuListaVips");register_clcmd("say /svips", "MenuListaVips")register_clcmd("say /svipy", "MenuListaVips")register_clcmd("say /vipy", "MenuListaVips")RegisterHam(Ham_Spawn, "player", "fw_Odrodzenie_Post", 1);// for(new i = 1; i < sizeof szBronie; i++) {// RegisterHam(Ham_Item_Deploy, szBronie[i], "fw_WybralBron_Post", 1);// RegisterHam(Ham_Item_AddToPlayer, szBronie[i], "fw_DostalBron_Post", 1);// }RegisterHam(Ham_TakeDamage, "player", "fw_Obrazenia");register_forward(FM_CmdStart, "fw_CmdStart");register_forward(FM_PlayerPreThink, "fw_PreThink");}public plugin_precache(){// precache_model("models/jb_anonymuss/v_baseball.mdl");// precache_model("models/jb_anonymuss/p_baseball.mdl");// precache_model("models/jb_anonymuss/v_lom.mdl");// precache_model("models/jb_anonymuss/p_lom.mdl");// precache_model("models/jb_anonymuss/v_golden_deagle.mdl");// precache_model("models/jb_anonymuss/v_golden_ak47.mdl");// precache_model("models/player/mafiozo/mafiozo.mdl");// precache_model("models/jb_anonymuss/v_m4a1zlote.mdl");}public MenuListaVips(id){new menu = menu_create("Lista VIP & SVIP", "Lista_Handler")new iPlayers[32], iNum, szName[64], ItemName[64];get_players(iPlayers, iNum)for(new i=0; i<iNum; i++){if(!is_user_connected(iPlayers[i])) continue;if(is_user_hltv(iPlayers[i])) continue;if(!get_user_vip(iPlayers[i])) continue;get_user_name(iPlayers[i],szName,charsmax(szName))formatex(ItemName, 63, "\y%s %s", szName, get_user_vip(iPlayers[i])==2?" \rSVIP":" \dVIP")menu_additem(menu, ItemName);}if(!ItemName[0]){ColorChat(id, GREEN, "[VIP && SVIP Online]^x01 Brak");return PLUGIN_HANDLED;}menu_display(id,menu);return PLUGIN_HANDLED;}public Lista_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return;}menu_display(id, menu)}public handleSayText(msgId,msgDest,msgEnt){new id = get_msg_arg_int(1);if(!is_user_connected(id)) return PLUGIN_CONTINUE;new szTmp[192], szTmp2[192];get_msg_arg_string(2, szTmp, charsmax(szTmp));new iVip = get_user_vip(id), szPrefix[32];switch(iVip){case 1: copy(szPrefix, 31, "^x04[VIP]");case 2: copy(szPrefix, 31, "^x04[SVIP]");default: return PLUGIN_CONTINUE;}if(!equal(szTmp,"#Cstrike_Chat_All")){add(szTmp2, charsmax(szTmp2), "^x01");add(szTmp2, charsmax(szTmp2), szPrefix);add(szTmp2, charsmax(szTmp2), " ");add(szTmp2, charsmax(szTmp2), szTmp);}else{new szPlayerName[64];get_user_name(id, szPlayerName, charsmax(szPlayerName));get_msg_arg_string(4, szTmp, charsmax(szTmp)); //4. argument zawiera treść wysłanej wiadomościset_msg_arg_string(4, ""); //Musimy go wyzerować, gdyż gra wykorzysta wiadomość podwójnie co może skutkować crash'em 191+ znaków.add(szTmp2, charsmax(szTmp2), "^x01");add(szTmp2, charsmax(szTmp2), szPrefix);add(szTmp2, charsmax(szTmp2), "^x03 ");add(szTmp2, charsmax(szTmp2), szPlayerName);add(szTmp2, charsmax(szTmp2), "^x01 : ");add(szTmp2, charsmax(szTmp2), szTmp)}set_msg_arg_string(2, szTmp2);return PLUGIN_CONTINUE;}public msg_ScoreAttrib(){new id=get_msg_arg_int(1);if(is_user_alive(id) && get_user_vip(id)){set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);}}public client_putinserver(id){if(is_user_connected(id) && get_user_vip(id) == 2){new szNick[32]; get_user_name(id, szNick, 31);set_hudmessage(0, 212, 220, 0.1, 0.15, 2, 1.0, 3.0, 0.1, 0.2, 1)show_hudmessage(0, "SVIP %s^x01 wbil na serwer!", szNick)}}public cmd_OpisVIP(id){show_motd( id,"vip.txt","Opis VIP")return PLUGIN_HANDLED;}public cmd_OpisSVIP(id){show_motd( id,"svip.txt","Opis SVIP")return PLUGIN_HANDLED;}public fw_Odrodzenie_Post(id){if(!is_user_alive(id)) //sprawdza czy gracz nie jest zywyreturn; //nie jest zywy - return, czyli deklaracja zwrotu, ktory zawsze konczy dana funkcje, w tym przypadku fw_Odrodzenie_Postnew iVip = get_user_vip(id); //tworzy zmienna iVip i do niej przypisuje, 0 - brak vipa, 1 - vip, 2 - svipif(!iVip) //jezeli nie ma vipa (!iVip czyli jezeli zmienna jest rowna 0)return; //deklaracje zwrotu, konczy funkcje fw_Odrodzenie_Postswitch(get_user_team(id)) //pobiera druzyne gracza i potem jej zasadzie ustawia{case 1:{fm_set_user_health(id, (iVip == 1) ? 120 : 140); //jezeli druzyna == 1 (case 1:) a 1 to terro, czyli jak jest terro to robi fm_set_user_health - ustawia HP//if(iVip==2) cs_set_player_model(id, "mafiozo");}case 2:{fm_set_user_health(id, (iVip == 1) ? 140 : 160); //jezeli druzyna == 2 (case 2:) a 2 to CT, czyli jak jest terro to robi fm_set_user_health - ustawia HP}}fm_set_user_armor(id, 100); //ustawia 100 armoraif(iVip == 2) {jail_set_user_speed(id, 280.0); //pamietaj ze klany tez biora 280!!!!}}public fw_DostalBron_Post(iEnt, id) {if(!pev_valid(iEnt) || !is_user_alive(id)) {return HAM_IGNORED;}new iDane[1];iDane[0] = cs_get_weapon_id(iEnt);set_task(0.1, "task_DostalBron", id, iDane, 1);return HAM_IGNORED;}public task_DostalBron(iDane[1], id) {if(!is_user_alive(id)) {return PLUGIN_CONTINUE;}if(get_user_weapon(id) == iDane[0]) {UstawSkina(id, iDane[0]);}return PLUGIN_CONTINUE;}public fw_WybralBron_Post(iEnt) {if(!pev_valid(iEnt)) {return HAM_IGNORED;}new id = pev(iEnt, pev_owner);if(!is_user_alive(id)) {return HAM_IGNORED;}UstawSkina(id, cs_get_weapon_id(iEnt));return HAM_IGNORED;}UstawSkina(id, iWeapon){switch(get_user_vip(id)){case 1:{if(iWeapon == CSW_KNIFE && get_user_team(id) == 1 && cs_get_user_shield(id)!=1 && !jail_get_prisoners_fight()){set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_baseball.mdl");set_pev(id, pev_weaponmodel2, "models/jb_anonymuss/p_baseball.mdl");}}case 2:{switch(iWeapon){/*case CSW_KNIFE:{if(cs_get_user_shield(id)!=1){switch(get_user_team(id)){case 1:{set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_lom.mdl");}case 2:{set_pev(id, pev_viewmodel2, "models/jb_cypis/v_palka.mdl");set_pev(id, pev_weaponmodel2, "models/jb_cypis/p_palka.mdl");}}}}*/case CSW_AK47:{set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_golden_ak47.mdl");}case CSW_DEAGLE:{if(cs_get_user_shield(id)!=1){set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_golden_deagle.mdl");}}case CSW_M4A1:{set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_m4a1zlote.mdl")}}}}}/*public MenuSkinow(id){if(!has_flag(id, "a")) return PLUGIN_HANDLED;new menu = menu_create("\yModele\r SVIP'a^n\dby Shawins", "MenuSkinow_Handler");menu_additem(menu, "\yModel\r Wieznia");menu_additem(menu, "\yModel\r Straznika^n");menu_additem(menu, "\yModel\r KOSY");menu_additem(menu, "\yModel\r AK47");menu_additem(menu, "\yModel\r M4A1");menu_additem(menu, "\yModel\r DEAGLE");menu_display(id, menu)return PLUGIN_HANDLED;}public MenuSkinow_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED}switch(item){case 0:{new menu2 = menu_create("\yModel wieznia^n\dby Shawins", "TT_Handler");menu_additem(menu2, "Mafiozo");menu_additem(menu2, "Famale");menu_display(id, menu2)}case 1:{new menu3 = menu_create("\yModel straznika^n\dby Shawins", "CT_Handler");menu_additem(menu3, "Agent Smith");menu_additem(menu3, "Famale");menu_display(id, menu3)}case 2:{new menu4 = menu_create("\yWybierz:", "KNIFE_Handler");menu_additem(menu4, "\yKosa\r Straznika")menu_additem(menu4, "\yKosa\r Wieznia")menu_display(id, menu4)}case 3:{new menu4 = menu_create("\yModel AK47^n\dby Shawins", "AK47_Handler");menu_additem(menu4, "Gold AK47");menu_additem(menu4, "Dragon AK47");menu_display(id, menu4)}case 4:{new menu5 = menu_create("\yModel M4A1^n\dby Shawins", "M4A1_Handler");menu_additem(menu5, "Gold M4A1");menu_additem(menu5, "Frozen M4A1");menu_display(id, menu5)}case 5:{new menu6 = menu_create("\yModel Deagle^n\dby Shawins", "Deagle_Handler");menu_additem(menu6, "Gold Deagle");menu_additem(menu6, "Dragon Deagle");menu_additem(menu6, "Black Deagle");menu_display(id, menu6)}}return PLUGIN_HANDLED;}public TT_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{ModelTT[id]=0ColorChat(id, GREEN, "[Skiny]^x01 Wybrales model^x03 Mafiozo")}case 1:{ModelTT[id]=1ColorChat(id, GREEN, "[Skiny]^x01 Wybrales model^x03 Famale")}}return PLUGIN_HANDLED;}public CT_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{ModelCT[id]=0ColorChat(id, GREEN, "[Skiny]^x01 Wybrales model^x03 Agent Smith")}case 1:{ModelCT[id]=1ColorChat(id, GREEN, "[Skiny]^x01 Wybrales model^x03 Famale")}}return PLUGIN_HANDLED;}public KNIFE_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{new menu2 = menu_create("\yKosa straznika^n\dby Shawins", "KOSACT_Handler");menu_additem(menu2, "Palka");menu_additem(menu2, "Katana");menu_display(id, menu2)}case 1:{new menu3 = menu_create("\yKosa wieznia^n\dby Shawins", "KOSATT_Handler");menu_additem(menu3, "Lom");menu_display(id, menu3)}}return PLUGIN_HANDLED;}public KOSACT_Handler(id,menu,item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{SkinKOSACT[id]=0;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Palka");}case 1:{SkinKOSACT[id]=1;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Katana");}}return PLUGIN_HANDLED;}public KOSATT_Handler(id,menu,item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{SkinKOSATT[id]=0;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Lom");}}return PLUGIN_HANDLED;}public AK47_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{SkinAK[id]=0;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Gold AK47");}case 1:{SkinAK[id]=1;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Dragon AK47");}}return PLUGIN_HANDLED;}public M4A1_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{SkinM4A1[id]=0;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Gold M4A1");}case 1:{SkinM4A1[id]=1;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Frozen M4A1");}}return PLUGIN_HANDLED;}public Deagle_Handler(id, menu, item){if(item==MENU_EXIT){menu_destroy(menu)return PLUGIN_HANDLED;}switch(item){case 0:{SkinDEAGLE[id]=0;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Gold Deagle");}case 1:{SkinDEAGLE[id]=1;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Dragon Deagle");}case 2:{SkinDEAGLE[id]=2;ColorChat(id, GREEN, "[Skiny]^x01 Wybrales skina^x03 Black Deagle");}}return PLUGIN_HANDLED;}*/public fw_WyborBroni_Post(iEnt){if(!pev_valid(iEnt))return;new id = pev(iEnt, pev_owner);if(!is_user_alive(id))return;new iWeapon = cs_get_weapon_id(iEnt);switch(get_user_vip(id)){case 1:{if(iWeapon == CSW_KNIFE && cs_get_user_shield(id)!=1){if(get_user_team(id) == 1){set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_baseball.mdl");set_pev(id, pev_weaponmodel2, "models/jb_anonymuss/p_baseball.mdl");}}}case 2:{switch(iWeapon){case CSW_KNIFE:{if(get_user_team(id) == 1 && cs_get_user_shield(id)!=1){set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_lom.mdl");set_pev(id, pev_weaponmodel2, "models/jb_anonymuss/p_lom.mdl");}}case CSW_AK47:{set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_golden_ak47.mdl");set_pev(id, pev_weaponmodel2, "models/p_golden_ak47.mdl");}case CSW_DEAGLE:{if(cs_get_user_shield(id)!=1){set_pev(id, pev_viewmodel2, "models/jb_anonymuss/v_golden_deagle.mdl");set_pev(id, pev_weaponmodel2, "models/p_golden_deagle.mdl");}}}}}}public fw_Obrazenia(id, iEnt, iAtt, Float:fObr, iDmgBits){if(!is_user_connected(iAtt) || get_user_team(id) == get_user_team(iAtt))return HAM_IGNORED;switch(get_user_vip(iAtt)){case 1:{if(get_user_weapon(iAtt) == CSW_KNIFE){SetHamParamFloat(4, fObr * 1.4);return HAM_HANDLED;}}case 2:{switch(get_user_weapon(iAtt)){case CSW_KNIFE:{SetHamParamFloat(4, fObr * 1.6);return HAM_HANDLED;}case CSW_AK47, CSW_DEAGLE, CSW_M4A1:{SetHamParamFloat(4, fObr * 1.3);return HAM_HANDLED;}}}}return HAM_IGNORED;}public fw_CmdStart(id, iUc){if(!is_user_alive(id))return FMRES_IGNORED;static iSkoki[33];new iFlags = pev(id, pev_flags);if((get_uc(iUc, UC_Buttons) & IN_JUMP) && !(iFlags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && iSkoki[id]){iSkoki[id]--;new Float:fVelocity[3];pev(id, pev_velocity, fVelocity);fVelocity[2] = random_float(265.0,285.0);set_pev(id, pev_velocity, fVelocity);}else if(iFlags & FL_ONGROUND){switch(get_user_vip(id)){case 1: iSkoki[id] = 1;case 2: iSkoki[id] = 2;}}return FMRES_IGNORED;}public fw_PreThink(id){if (is_user_alive(id) && get_user_vip(id) == 2 && pev(id, pev_button) & IN_JUMP){new flags = pev(id, pev_flags)if (flags & FL_WATERJUMP)return FMRES_IGNORED;if ( pev(id, pev_waterlevel) >= 2 )return FMRES_IGNORED;if ( !(flags & FL_ONGROUND) )return FMRES_IGNORED;new Float:velocity[3];pev(id, pev_velocity, velocity);velocity[2] = velocity[2]+250.0<600.0?velocity[2]+250.0:600.0set_pev(id, pev_velocity, velocity);set_pev(id, pev_gaitsequence, 6);}return FMRES_IGNORED;}stock get_user_vip(id){new iFlags = get_user_flags(id);if(iFlags)return 1;else if(iFlags & FLAGA_SVIP)return 2;return 0;}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }*/
Użytkownik UpishDzonny edytował ten post 13.12.2018 15:22