Witam mam problem o to taki ze gdy dodaje model broni do vipa to działa jak trzeba ale jak ustawić aby model mógł używać tylko vip i go mieć a zwykły gracz może go tylko widzieć jak nie żyje proszę o pomoc a to jest mój sma
#include <amxmodx> #include <cstrike> #include <engine> #include <fakemeta_util> #include <fun> #include <hamsandwich> #include <colorchat> // definicje tablicy punktow #define SCOREATTRIB_NONE 0 #define SCOREATTRIB_DEAD (1<<0) #define SCOREATTRIB_BOMB (1<<1) #define SCOREATTRIB_VIP (1<<2) // pojemnik megajumpow new moze_skoczyc[33]; // zmienne ilosciowe new MAGAZYNEK; // flagi new VIP[32]; new GIRL[32]; new ADMIN[32]; // stringi new INFO[64]; // zmienna operacyjna new string:tmp[128]; public plugin_init(){ // inicjalizacja register_plugin("VIP Ultimate", "1.1", "Benio101"); // nasluchiwacze RegisterHam(Ham_Spawn, "player", "SpawnedEvent", 1); register_event("DeathMsg", "DeathMsg", "a"); register_event("CurWeapon","CurWeapon","be","1=1"); register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib"); register_forward(FM_CmdStart, "CmdStart"); // CVARy register_cvar("vip_hp", "10"); // <liczba dodawanego zycia na poczatku kazdej rundy> register_cvar("vip_he", "1"); // <liczba dodawanych granatow HE na poczatku kazdej rundy> register_cvar("vip_fb", "0"); // <liczba dodawanych Flashy na poczatku kazdej rundy> register_cvar("vip_sg", "0"); // <liczba dodawanych Smoke Grenadow na poczatku kazdej rundy> register_cvar("vip_defuse_kit", "0"); // czy dawac defuse kit na poczatku kazdej rundy <0|1> register_cvar("vip_armor", "50"); // <liczba dodawanych punktow kamizelki na poczatku kazdej rundy> register_cvar("vip_speed", "150"); // <liczba dodawanych punktow szybkosci> register_cvar("vip_money", "1000"); // <liczba dodawanych dolarow na poczatku kazdej rundy> register_cvar("vip_skoki", "3"); // <liczba mozliwych do wykonania skokow w powietrzu> register_cvar("vip_napis", "1"); // czy w tabeli punktow ma widniec VIP przy nicku <0|1> register_cvar("vip_girl_model_ct", "1"); // czy ustawiac model dla kobiety CT <0|1> register_cvar("vip_girl_model_tt", "1"); // czy ustawiac model dla kobiety TT <0|1> register_cvar("vip_admin_model_ct", "1"); // czy ustawiac model dla Admina CT <0|1> register_cvar("vip_admin_model_tt", "1"); // czy ustawiac model dla Admina TT <0|1> register_cvar("vip_vip_model_ct", "1"); // czy ustawiac model dla VIPa CT <0|1> register_cvar("vip_vip_model_tt", "1"); // czy ustawiac model dla VIPa TT <0|1> register_cvar("vip_vip_flag", "t"); // <flaga vipa|""> register_cvar("vip_girl_flag", "p"); // <flaga dziewczyny|""> register_cvar("vip_admin_flag", "d"); // <flaga admina|""> register_cvar("vip_recharge", "1"); // czy dawac pelen magazynek za zabicie wroga <0|1> register_cvar("vip_add_money", "200"); // <liczba dodatkowych pieniedzy za zwykle zabicie> register_cvar("vip_add_hs_money", "700"); // <liczba dodatkowych pieniedzy za zabicie HeadShotem> register_cvar("vip_money_limit", "16000"); // <limit pieniedzy> register_cvar("vip_add_frags", "0"); // <liczba dodatkowych fragow za zwykle zabicie> register_cvar("vip_add_hs_frags", "0"); // <liczba dodatkowych fragow za zabicie HeadShotem> register_cvar("vip_add_hp", "10"); // <liczba dodatkowych punktow zycia za zwykle zabicie> register_cvar("vip_add_hs_hp", "30"); // <liczba dodatkowych punktow zycia za zabicie HeadShotem> register_cvar("vip_hp_limit", "255"); // <limit punktow zycia> register_cvar("vip_armor_limit", "511"); // <limit punktow kamizelki> register_cvar("vip_screen_flash", "1"); // czy wyswietlac zielone migniecie na poczatku rundy <0|1> register_cvar("vip_powitanie_txt", "1"); // czy wyswietlac powitanie vipa na serwerze <0|1> register_cvar("vip_powitanie_wav", "1"); // czy witac vipow emisja pliku wav <0|1> register_cvar("vip_deagle", "0"); // ilosc magazynkow amunicji w deaglu <0|1-6> register_cvar("vip_fiveseven", "0"); // ilosc magazynkow amunicji w fiveseven <0|1-6> register_cvar("vip_m4", "0"); // ilosc magazynkow amunicji w m4a1 <0|1-4> register_cvar("vip_ak", "0"); // ilosc magazynkow amunicji w ak47 <0|1-4> register_cvar("vip_awp", "0"); // ilosc magazynkow amunicji w awp <0|1-4> register_cvar("vip_krowa", "0"); // ilosc magazynkow amunicji w m249 <0|1-3> register_cvar("vip_shotgun", "0"); // ilosc magazynkow amunicji w xm1014 <0|1-6> register_cvar("vip_online_info", "1"); // czy pokazywac liste vipow online <0|1> register_cvar("vip_info", ""); // <nazwa pliku TXT z informacja o VIPie w formacie HTML|""> // pobranie CVARow tekstowych get_cvar_string("vip_vip_flag",VIP,31); get_cvar_string("vip_girl_flag",GIRL,31); get_cvar_string("vip_admin_flag",ADMIN,31); get_cvar_string("vip_info",INFO,63); // komendy if(get_cvar_num("vip_online_info")){ register_clcmd("say /vipy","pokaz_vipy_online"); register_clcmd("say /vips","pokaz_vipy_online"); } if(!equal(VIP,"")){ register_clcmd("say /vip","pokaz_informacje_o_vipie"); } } public plugin_precache(){ // wczytanie strojow if(get_cvar_num("vip_girl_model_ct")) precache_generic("models/player/GirlCT/GirlCT.mdl"); if(get_cvar_num("vip_girl_model_tt")) precache_model("models/player/GirlTT/GirlTT.mdl"); if(get_cvar_num("vip_admin_model_ct")) precache_model("models/player/AdminCT/AdminCT.mdl"); if(get_cvar_num("vip_admin_model_tt")) precache_model("models/player/AdminTT/AdminTT.mdl"); if(get_cvar_num("vip_vip_model_ct")) precache_model("models/player/VipCT/VipCT.mdl"); if(get_cvar_num("vip_vip_model_rt")) precache_model("models/player/VipTT/VipTT.mdl"); if(get_cvar_num("vip_powitanie_wav")) precache_sound("misc/vip_siema.wav"); precache_model("models/v_awpvip.mdl"); } public client_putinserver(id){ // powitanie vipa if(is_user_connected(id) && (get_user_flags(id) & read_flags(VIP))){ if(get_cvar_num("vip_powitanie_txt")){ get_user_name(id,tmp,31); set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2); show_hudmessage(0, "Przychodzi Vip^n %s^n Witamy!!!",tmp); } if(get_cvar_num("vip_powitanie_wav")) client_cmd(0,"spk misc/vip_siema"); } } public MessageScoreAttrib(iMsgID, iDest, iReceiver){ // status VIP w tabeli punktow new id = get_msg_arg_int(1); if(is_user_connected(id) && get_user_flags(id) & read_flags(VIP)){ if(is_user_alive(id)){ if(cs_get_user_team(id)==CS_TEAM_T && user_has_weapon(id, CSW_C4) && cs_get_user_plant(id)){ set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_BOMB); } else { set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_VIP); } } else { set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_DEAD); } } } public pokaz_informacje_o_vipie(id){ // komenda /vip if(is_user_connected(id)){ show_motd(id, INFO, "Informacje o VIPie"); } } public SpawnedEvent(id){ // event respawnu set_task(1.0,"Spawned",id); } public Spawned(id){ if(!is_user_alive(id)) return PLUGIN_HANDLED; // odzianie w nowy stroj if(get_user_flags(id) & read_flags(GIRL)){ if(cs_get_user_team(id)==CS_TEAM_CT && get_cvar_num("vip_girl_model_ct")){ cs_reset_user_model(id); cs_set_user_model(id, "GirlCT"); } if(cs_get_user_team(id)==CS_TEAM_T && get_cvar_num("vip_girl_model_tt")){ cs_reset_user_model(id); cs_set_user_model(id, "GirlTT"); } } else if(get_user_flags(id) & read_flags(ADMIN)){ if(cs_get_user_team(id)==CS_TEAM_CT && get_cvar_num("vip_admin_model_ct")){ cs_reset_user_model(id); cs_set_user_model(id, "AdminCT"); } if(cs_get_user_team(id)==CS_TEAM_T && get_cvar_num("vip_admin_model_tt")){ cs_reset_user_model(id); cs_set_user_model(id, "AdminTT"); } } else if(get_user_flags(id) & read_flags(VIP)){ if(cs_get_user_team(id)==CS_TEAM_CT && get_cvar_num("vip_vip_model_ct")){ cs_reset_user_model(id); cs_set_user_model(id, "VipCT"); } if(cs_get_user_team(id)==CS_TEAM_T && get_cvar_num("vip_vip_model_tt")){ cs_reset_user_model(id); cs_set_user_model(id, "VipTT"); } } if (get_user_flags(id) & read_flags(VIP)){ // dodanie punktow kamizelki fm_set_user_armor(id, get_user_armor(id)+get_cvar_num("vip_armor")); if(get_user_armor(id)>get_cvar_num("vip_armor_limit"))fm_set_user_armor(id, get_cvar_num("vip_armor_limit")); // dodanie zycia fm_set_user_health(id, get_user_health(id)+get_cvar_num("vip_hp")); if(get_user_health(id)>get_cvar_num("vip_hp_limit"))fm_set_user_health(id, get_cvar_num("vip_hp_limit")); // dodanie pieniedzy cs_set_user_money(id, cs_get_user_money(id) + get_cvar_num("vip_money")); if(cs_get_user_money(id)>get_cvar_num("vip_money_limit"))cs_set_user_money(id, get_cvar_num("vip_money_limit")); // dodanie granatow give_item(id,"weapon_hegrenade"); give_item(id,"weapon_flashbang"); if(get_cvar_num("vip_fb")>1) give_item(id,"weapon_flashbang"); give_item(id,"weapon_smokegrenade"); // dodanie pistoletow if(get_cvar_num("vip_deagle")){ fm_give_item(id, "weapon_deagle"); MAGAZYNEK=get_cvar_num("vip_deagle"); while(--MAGAZYNEK)fm_give_item(id, "ammo_50ae"); } if(get_cvar_num("vip_fiveseven")){ fm_give_item(id, "weapon_fiveseven"); MAGAZYNEK=get_cvar_num("vip_fiveseven"); while(--MAGAZYNEK)fm_give_item(id, "ammo_57mm"); } // dodanie broni if(get_cvar_num("vip_m4")){ fm_give_item(id, "weapon_m4a1"); MAGAZYNEK=get_cvar_num("vip_m4"); while(--MAGAZYNEK)fm_give_item(id, "ammo_556nato"); } if(get_cvar_num("vip_ak")){ fm_give_item(id, "weapon_ak47"); MAGAZYNEK=get_cvar_num("vip_ak"); while(--MAGAZYNEK)fm_give_item(id, "ammo_762nato"); } if(get_cvar_num("vip_awp")){ fm_give_item(id, "weapon_awp"); MAGAZYNEK=get_cvar_num("vip_awp"); while(--MAGAZYNEK)fm_give_item(id, "ammo_338magnum"); } if(get_cvar_num("vip_krowa")){ fm_give_item(id, "weapon_m249"); MAGAZYNEK=get_cvar_num("vip_krowa"); while(--MAGAZYNEK)fm_give_item(id, "ammo_556nato"); } if(get_cvar_num("vip_shotgun")){ fm_give_item(id, "weapon_xm1014"); MAGAZYNEK=get_cvar_num("vip_shotgun"); while(--MAGAZYNEK)fm_give_item(id, "ammo_buckshot"); } // dodanie defuse kita if(get_cvar_num("vip_defuse_kit"))fm_give_item(id, "item_thighpack"); // dodanie multijumpa moze_skoczyc[id]=get_cvar_num("vip_skoki"); // zielony blysk if(get_cvar_num("vip_screen_flash"))screen_flash(id, 0, 255, 0, 100); } return PLUGIN_CONTINUE; } public DeathMsg(){ // id = zabojca new id = read_data(1); new hs = read_data(3); // uzupelnienie magazynkow if(is_user_alive(id)) if(get_cvar_num("vip_recharge"))recharge(id); if(is_user_connected(id) && (get_user_flags(id) & read_flags(VIP))){ // dodanie pieniedzy za zabicie cs_set_user_money(id, cs_get_user_money(id) + (hs?get_cvar_num("vip_add_hs_money"):get_cvar_num("vip_add_money"))); // limitacja maksymalnej ilosci gotowki if(cs_get_user_money(id)>get_cvar_num("vip_money_limit"))cs_set_user_money(id, get_cvar_num("vip_money_limit")); // dodanie fragow za zabicie set_user_frags(id, get_user_frags(id) + (hs?get_cvar_num("vip_add_hs_frags"):get_cvar_num("vip_add_frags"))); // dodanie zycia za zabicie fm_set_user_health(id, get_user_health(id) + (hs?get_cvar_num("vip_add_hs_hp"):get_cvar_num("vip_add_hp"))); // limitacja maksymalnej liczby HP if(get_user_health(id)>get_cvar_num("vip_hp_limit"))fm_set_user_health(id, get_cvar_num("vip_hp_limit")); // dynamiczna aktualizacja tablicy punktow message_begin(MSG_ALL,85) write_byte(id) write_short(get_user_frags(id)) write_short(get_user_deaths(id)) write_short(0) write_short(get_user_team(id)) message_end() } } public CmdStart(id, uc_handle){ if(!is_user_alive(id)) return FMRES_IGNORED; new flags = pev(id, pev_flags); // onsluga multiskoku if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && moze_skoczyc[id] && (get_user_flags(id) & read_flags(VIP))) { --moze_skoczyc[id]; new Float:velocity[3]; pev(id, pev_velocity,velocity); velocity[2] = random_float(265.0,285.0); set_pev(id, pev_velocity,velocity); } else if(flags & FL_ONGROUND) moze_skoczyc[id] = get_cvar_num("vip_skoki"); return FMRES_IGNORED; } public CurWeapon(id){ // zmiana predkosci maksymalnej if(get_user_flags(id) & read_flags(VIP)) set_user_maxspeed(id, get_user_maxspeed(id) + get_cvar_num("vip_speed")); new weapon = read_data(2); if(get_user_flags(id) & 524288 == 524288 && weapon == CSW_AWP) { entity_set_string(id, EV_SZ_viewmodel, "models/v_awpvip.mdl") } return PLUGIN_CONTINUE; } public pokaz_vipy_online(id){ // lista vipow online new vipy[33][32]; new str[1024]; new count=0; new i,n=get_maxplayers(); for(i=1; i<=n; ++i){ if(is_user_connected(i) && (get_user_flags(i) & read_flags(VIP))){ get_user_name(i, vipy[count], 31); ++count; } } if(count){ format(str,1023, "VIP%s online:^x01 ",str, vipy[i], (count>1?"y":"")); for(i=0; i<count; ++i){ format(str,1023,"%s%s%s",str, vipy[i], (i<count-1?"^x04,^x01 ":"^x04.")); } ColorChat(id,GREEN, str); } else { ColorChat(id,RED, "Brak VIPow online."); } return PLUGIN_HANDLED; } public recharge(id){ if(!is_user_alive(id)) return; // uzupelnienie magazynkow - stale switch(get_user_weapon(id)){ case CSW_GLOCK18: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_glock18", id),20) case CSW_USP: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_usp", id),12) case CSW_P228: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_p228", id),13) case CSW_DEAGLE: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_deagle", id),7) case CSW_FIVESEVEN: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_fiveseven", id),20) case CSW_ELITE: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_elite", id),30) case CSW_M3: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_m3", id),8) case CSW_XM1014: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_xm1014", id),7) case CSW_TMP: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_tmp", id),30) case CSW_MAC10: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_mac10", id),30) case CSW_MP5NAVY: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_mp5navy", id),30) case CSW_UMP45: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_ump45", id),25) case CSW_P90: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_p90", id),50) case CSW_FAMAS: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_famas", id),30) case CSW_GALIL: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_galil", id),35) case CSW_AK47: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_ak47", id),30) case CSW_M4A1: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_m4a1", id),30) case CSW_SCOUT: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_scout", id),10) case CSW_SG552: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_sg552", id),30) case CSW_AUG: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_aug", id),30) case CSW_SG550: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_sg550", id),30) case CSW_G3SG1: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_g3sg1", id),20) case CSW_AWP: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_awp", id),10) case CSW_M249: cs_set_weapon_ammo(find_ent_by_owner(-1, "weapon_m249", id),100) } } public screen_flash(id,red,green,blue,alpha){ // zielony blysk message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id); write_short(1<<12); write_short(1<<12); write_short(1<<12); write_byte(red); write_byte(green); write_byte(blue); write_byte(alpha); message_end(); }
dodana podmiana modeli:
new weapon = read_data(2); if(get_user_flags(id) & 524288 == 524288 && weapon == CSW_AWP) { entity_set_string(id, EV_SZ_viewmodel, "models/v_awpvip.mdl")
Użytkownik mucek181 edytował ten post 13.10.2014 20:38