Problem z VIP'em
Anakonda016
04.04.2013
Witam. Zrobiłem w Generatorze, Vipa. Gdy wpisuje /vip to pokazuje tylko ten motd, ale mam wszystkie flagi nawet tą na którą sobie dałem czyli Custom Level H. Tutaj macie kod i mysle, że ktos mi pomoże. Czekam na odpowiedź.
#include <amxmodx> #include <colorchat> #include <cstrike> #include <engine> #include <fakemeta> #include <fun> #include <hamsandwich> #define FL_ONGROUND (1<<9) #define FL_WATERJUMP (1<<11) forward amxbans_admin_connect(id); new Array:g_Array, bool:g_Vip[33], gRound=0, maxPlayers, menu, menu_callback_handler, skoki[33], weapon_id; new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"}; public plugin_init(){ register_plugin("VIP Ultimate", "12.1.0.2", "benio101 & speedkill"); register_logevent("RoundEnd", 2, "1=Round_End"); register_forward(FM_CmdStart, "CmdStartPre"); RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1); register_event("HLTV", "event_new_round", "a", "1=0", "2=0"); register_logevent("GameCommencing", 2, "1=Game_Commencing"); g_Array=ArrayCreate(64,32); for(new i;i<sizeof g_Langcmd;i++){ register_clcmd(g_Langcmd[i], "ShowVips"); } register_clcmd("say /vip", "ShowMotd"); } 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); 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 menu_1_handler(id){ set_user_gravity(id, 600.0/800.0); } public plugin_cfg(){ maxPlayers=get_maxplayers(); } public RoundEnd(){ for(new i=1; i<=maxPlayers; ++i){ if(is_user_alive(i)){ set_user_gravity(i, 1.0); } } for(new i=1; i<=maxPlayers; ++i){ skoki[i]=-1; } for(new i=1; i<=maxPlayers; ++i){ if(is_user_alive(i)){ set_user_rendering(i, kRenderFxNone, 255, 255, 255, kRenderNormal, 16); } } } public CmdStartPre(id, uc_handle){ if(g_Vip[id]){ if(is_user_alive(id)){ CmdStartPreVip(id, uc_handle); } } } public CmdStartPreVip(id, uc_handle){ new flags = pev(id, pev_flags); if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){ --skoki[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 && skoki[id]!=-1){ skoki[id] = 1; } } public SpawnedEventPreVip(id){ skoki[id]=-1; set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 0); set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 25); show_vip_menu(id); } public menu_2_handler(id){ skoki[id]=1; } public SpawnedEventPre(id){ if(g_Vip[id]){ if(is_user_alive(id)){ SpawnedEventPreVip(id); } } } public menu_4_handler(id){ set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 0); } public menu_3_handler(id){ set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 25); } public menu_5_handler(id){ set_user_health(id, get_user_health(id)+75); } public menu_7_handler(id){ new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0); give_item(id, "weapon_flashbang"); ++fbnum; new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0); give_item(id, "weapon_smokegrenade"); ++sgnum; } public menu_6_handler(id){ if(get_pdata_cbase(id, 369)==-1){ give_item(id, "weapon_deagle"); give_item(id, "ammo_50ae"); weapon_id=find_ent_by_owner(-1, "weapon_deagle", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 1); cs_set_user_bpammo(id, CSW_DEAGLE, 0); } } public show_vip_menu(id){ menu=menu_create("\rMenu VIPa","menu_handler"); menu_callback_handler=menu_makecallback("menu_callback"); new bool:active=false, num=-1; menu_additem(menu,"\d(\w10000\y$\d) \wWyzszy skok","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w10000\y$\d) \wPodwojny skok","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w15000\y$\d) \wFreeDay","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w16000\y$\d) \wDuszek","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w15000\y$\d) \wDodatkowe 75 HP","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w12000\y$\d) \wDeagle z 1 nabojem","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\d(\w9000\y$\d) \wFlash + smoke","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } if(active){ menu_setprop(menu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(menu,MPROP_TITLE,"\yMenu Vipa"); menu_setprop(menu,MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu); } else { menu_destroy(menu); } } public event_new_round(){ ++gRound; } public GameCommencing(){ gRound=0; } public menu_callback(id, menu, item){ if(cs_get_user_money(id)>=10000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==0){ return ITEM_ENABLED; } if(item==1){ return ITEM_ENABLED; } } } } } } if(cs_get_user_money(id)>=15000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==2){ return ITEM_ENABLED; } if(item==4){ return ITEM_ENABLED; } } } } } } if(cs_get_user_money(id)>=16000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==3){ return ITEM_ENABLED; } } } } } } if(cs_get_user_money(id)>=12000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==5){ return ITEM_ENABLED; } } } } } } if(cs_get_user_money(id)>=9000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==6){ return ITEM_ENABLED; } } } } } } return ITEM_DISABLED; } public menu_handler(id, menu, item){ if(cs_get_user_money(id)>=10000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==0){ menu_1_handler(id); cs_set_user_money(id, cs_get_user_money(id)-10000, 1); } if(item==1){ menu_2_handler(id); cs_set_user_money(id, cs_get_user_money(id)-10000, 1); } } } } } } if(cs_get_user_money(id)>=15000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==2){ menu_3_handler(id); cs_set_user_money(id, cs_get_user_money(id)-15000, 1); } if(item==4){ menu_5_handler(id); cs_set_user_money(id, cs_get_user_money(id)-15000, 1); } } } } } } if(cs_get_user_money(id)>=16000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==3){ menu_4_handler(id); cs_set_user_money(id, cs_get_user_money(id)-16000, 1); } } } } } } if(cs_get_user_money(id)>=12000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==5){ menu_6_handler(id); cs_set_user_money(id, cs_get_user_money(id)-12000, 1); } } } } } } if(cs_get_user_money(id)>=9000){ if(gRound<=1){ if(gRound>=1){ if(get_user_team(id)==1){ if(is_user_alive(id)){ if(item==6){ menu_7_handler(id); cs_set_user_money(id, cs_get_user_money(id)-9000, 1); } } } } } } menu_destroy(menu); return PLUGIN_HANDLED; } public ShowVips(id){ new g_Name[64],g_Message[192]; new g_Size=ArraySize(g_Array); for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); add(g_Message, charsmax(g_Message), g_Name); if(i == g_Size - 1){ add(g_Message, charsmax(g_Message), "."); } else{ add(g_Message, charsmax(g_Message), ", "); } } ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%s", g_Message); 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 client_PreThink(id){ if(g_Vip[id] && is_user_alive(id)){ client_PreThinkVip(id); } } public client_PreThinkVip(id){ entity_set_float(id, EV_FL_fuser2, 0.0); if(entity_get_int(id, EV_INT_button) & 2){ new flags = entity_get_int(id, EV_INT_flags); if(flags & FL_WATERJUMP || entity_get_int(id, EV_INT_waterlevel) >= 2 || !(flags & FL_ONGROUND)){ return PLUGIN_CONTINUE; } new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); velocity[2] += 250.0; entity_set_vector(id, EV_VEC_velocity, velocity); entity_set_int(id, EV_INT_gaitsequence, 6); } return PLUGIN_CONTINUE; } public amxbans_admin_connect(id){ client_authorized(id); }
Anakonda016
04.04.2013
Przepraszam za post pod postem, ale nie mogę edytowac.
Pomoże może tutaj mi ktos? Bardzo to jest ważne
Pomoże może tutaj mi ktos? Bardzo to jest ważne
