Mam problem z pluginem podmienia modele broni AWP, ale niestety nie dość, że broń nie jest trzymana w rękach to w dodatku jest trzymana na poziomie pasa i dostępna dla wszystkich użytkowników a powinna byc tylko dla VIP-a czyli osoby z daną flagą (h). Czy można mi jakoś pomóc ?
#include <amxmodx> #include <cstrike> #include <hamsandwich> #include <fakemeta> #include <engine> forward amxbans_admin_connect(id); new Array:g_Array, bool:g_Vip[33], g_Hudmsg; new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"}; public plugin_init(){ register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill"); register_message(get_user_msgid("ScoreAttrib"), "VipStatus"); g_Array=ArrayCreate(64,32); for(new i;i<sizeof g_Langcmd;i++){ register_clcmd(g_Langcmd[i], "ShowVips"); RegisterHam(Ham_Item_Deploy, "weapon_awp", "fwItemDeploy",1); } register_clcmd("say /vip", "ShowMotd"); g_Hudmsg=CreateHudSyncObj(); RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1); } public client_authorized(id){ if(get_user_flags(id) & 524288 == 524288){ client_authorized_vip(id); } } public client_authorized_vip(id){ g_Vip[id]=true; new g_Name[64]; get_user_name(id,g_Name,charsmax(g_Name)); new g_Size = ArraySize(g_Array); new szName[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, szName, charsmax(szName)); if(equal(g_Name, szName)){ return 0; } } ArrayPushString(g_Array,g_Name); set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0); ShowSyncHudMsg(0, g_Hudmsg, "Vip %s wbija na serwer !",g_Name); return PLUGIN_CONTINUE; } public client_disconnect(id){ if(g_Vip[id]){ client_disconnect_vip(id); } } public client_disconnect_vip(id){ g_Vip[id]=false; new Name[64]; get_user_name(id,Name,charsmax(Name)); new g_Size = ArraySize(g_Array); new g_Name[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); if(equal(g_Name,Name)){ ArrayDeleteItem(g_Array,i); break; } } } public VipStatus(){ new id=get_msg_arg_int(1); if(is_user_alive(id) && g_Vip[id]){ set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4); } } public ShowVips(id){ return PLUGIN_CONTINUE; } public client_infochanged(id){ if(g_Vip[id]){ new szName[64]; get_user_info(id,"name",szName,charsmax(szName)); new Name[64]; get_user_name(id,Name,charsmax(Name)); if(!equal(szName,Name)){ ArrayPushString(g_Array,szName); new g_Size=ArraySize(g_Array); new g_Name[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); if(equal(g_Name,Name)){ ArrayDeleteItem(g_Array,i); break; } } } } } public plugin_end(){ ArrayDestroy(g_Array); } public ShowMotd(id){ show_motd(id, "vip.txt", "Informacje o vipie"); } public SpawnedEventPre(id){ if(g_Vip[id]){ if(is_user_alive(id)){ SpawnedEventPreVip(id); } } } public plugin_precache(){ precache_model("models/player/vipct/vipct.mdl"); precache_model("models/player/viptt/viptt.mdl"); precache_model("models/player/awupe/awupe.mdl"); } public SpawnedEventPreVip(id){ new g_Model[64]; formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "viptt" : "vipct"); cs_set_user_model(id,g_Model); } public fwItemDeploy(wpn){ static iOwner; iOwner = pev(wpn,pev_owner); set_pev(iOwner,pev_viewmodel2,"models/player/awupeawupe.mdl"); set_pev(iOwner,pev_weaponmodel2,"models/player/awupeawupe.mdl"); } public amxbans_admin_connect(id){ client_authorized(id); }
Użytkownik Misiaa edytował ten post 30.01.2015 18:12