Русское сообщество по скриптингу

VIP меню для ZP4.3

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

VIP меню для ZP4.3

Сообщение edf.PR » 23 фев 2018, 16:33



кто может скинуть меню для випа
Аватара пользователя
edf.PR
 
Сообщения: 7
Зарегистрирован: 23 фев 2018, 13:55
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: C++

Re: VIP меню для ZP4.3

Сообщение Subb98 » 23 фев 2018, 16:34

Такое меню пишется минут за 30. не поленитесь, попробуйте сделать сами.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: VIP меню для ZP4.3

Сообщение Mandar1n » 23 фев 2018, 17:20

В интернете как я понял, этого плагина нет. Вот плагин, где самое сложное уже сделано, отредактировать под оружия, и выдачу хп с броней.

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <zombieplague>

#define PLUGIN "[zp]VipMenu"
#define VERSION "1.0"
#define AUTHOR "NextPawno"

new g_cvar[8], logfile[64], logdate[64]

new 
vipblock[33][5]
new 
vipsurv[33]
new 
vipnem[33]

public 
plugin_init()
{
        
register_plugin(PLUGINVERSIONAUTHOR)

        
register_event("HLTV""Round_End""a""1=0""2=0")

        
g_cvar[1] = register_cvar"zp_vipmenu_blockitem1""3" )
        
g_cvar[2] = register_cvar"zp_vipmenu_blockitem2""3" 
        
g_cvar[3] = register_cvar"zp_vipmenu_blockitem3""3" )
        
g_cvar[4] = register_cvar"zp_vipmenu_blockitem4""3" )
        
g_cvar[5] = register_cvar"zp_vipmenu_only_one_sh""1" )
        
g_cvar[6] = register_cvar"zp_vipmenu_logfile""1" )
        
g_cvar[7] = register_cvar"zp_vipmenu_logfile_format""0" )

        
register_clcmd("say /vipmenu""show_menu_vip")
        
register_clcmd("say_team /vipmenu""show_menu_vip")
        
register_clcmd("vipmenu""show_menu_vip")

        
register_dictionary"zp_vipmenu.txt" )
}

public 
plugin_precache()
{
      new 
logdir[64]

      
get_configsdir(logdir63)
      
get_time("20%y.%m.%d"logdate63)
}

public 
Round_End()
{
      new 
iPlayer[32], iNum
      get_players
(iPlayeriNum)

      for(new 
iiNumi++) 
      {
         
vipblock[iPlayer[i]][1] = 0
         vipblock
[iPlayer[i]][2] = 0
         vipblock
[iPlayer[i]][3] = 0
         vipblock
[iPlayer[i]][4] = 0
         vipsurv
[iPlayer[i]] = 0
         vipnem
[iPlayer[i]] = 0
      
}
}

public 
show_menu_vip(id)
{
      new 
szText555 char ]

      
formatexszTextcharsmaxszText ), "%L"id"ZPVIPMENU_TITLE")
      new 
menu menu_createszText"show_menu_vip_handler" )

      if(
vipblock[id][1]<get_pcvar_num(g_cvar[1]))
      {
         
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_ITEM_1" )
         
menu_additemmenuszText"1")
      }else{
         
formatexszTextcharsmaxszText ), "%L - \r[%L]"id"ZPVIP_ITEM_1"id"ZPVIP_LIMIT" )
         
menu_additemmenuszText"1"ADMIN_ADMIN )
      }

      if(
vipblock[id][2]<get_pcvar_num(g_cvar[2]))
      {
         
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_ITEM_2" )
         
menu_additemmenuszText"2")
      }else{
         
formatexszTextcharsmaxszText ), "%L - \r[%L]"id"ZPVIP_ITEM_2"id"ZPVIP_LIMIT" )
         
menu_additemmenuszText"2"ADMIN_ADMIN )
      }

      if(
vipblock[id][3]<get_pcvar_num(g_cvar[3]))
      {
         
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_ITEM_3" )
         
menu_additemmenuszText"3")
      }else{
         
formatexszTextcharsmaxszText ), "%L - \r[%L]"id"ZPVIP_ITEM_3"id"ZPVIP_LIMIT" )
         
menu_additemmenuszText"1"ADMIN_ADMIN )
      }
   
      if(
vipblock[id][4]<get_pcvar_num(g_cvar[4]))
      {
         new 
players[32], num
         get_players
(playersnum"bh")

         if(
num>=1)
         {
            
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_ITEM_4" )
            
menu_additemmenuszText"4")
         }else{
            
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_ITEM_4" )
            
menu_additemmenuszText"4"ADMIN_ADMIN )
         }
      }else{
         
formatexszTextcharsmaxszText ), "%L - \r[%L]"id"ZPVIP_ITEM_4"id"ZPVIP_LIMIT" )
         
menu_additemmenuszText"4"ADMIN_ADMIN )
      }
   
      
menu_setpropmenuMPROP_EXITMEXIT_ALL )
      
menu_setpropmenuMPROP_EXITNAME"Выход")
       
      if(
get_user_flags(id) & ADMIN_LEVEL_H)
      {
         
menu_displayidmenu)
      }else{
         
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_NO_ACCESS"
         return 
PLUGIN_HANDLED
      
}
      return 
PLUGIN_HANDLED
}

public 
show_menu_vip_handleridmenuitem )
{
      if( 
item == MENU_EXIT )
      {
           
menu_destroymenu )
           return 
PLUGIN_HANDLED
      
}
 
      new 
data], iName64 ], accesscallback
      menu_item_getinfo
menuitemaccessdatacharsmaxdata ), iNamecharsmaxiName ), callback )
 
      new 
key str_to_numdata )
     
      switch( 
key )
      {
           case 
1:
           {
              
vipmenu_playerhz(id)
           }
 
           case 
2:
           {
              
vipmenu_playernemesis(id)
           }
 
           case 
3:
           {
              
vipmenu_playersurvivor(id)
           }
 
           case 
4:
           {
              
vipmenu_playerrevive(id)
           }
      }
      return 
PLUGIN_HANDLED
}

public 
vipmenu_playerhz(id)
{
      new 
szText555 char ];
  
      
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_HZMENU_TITLE")
      new 
i_Menu menu_createszText"vipmenu_playerhz_handler" )
  
      new 
s_Players[32], i_Numi_Player
      
new s_Name[32], s_Player[10]
  
      
get_players(s_Playersi_Num)

      new 
ZombieHuman
             
      Human 
zp_get_human_count()
      
Zombie zp_get_zombie_count()
  
      for (new 
ii_Numi++)
      { 
          
i_Player s_Players[i]
  
          if(!
is_user_alive(i_Player))
                continue
  
          
get_user_name(i_Players_Namecharsmax(s_Name))
          
num_to_str(i_Players_Playercharsmax(s_Player))
  
          if(
zp_get_user_survivor(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_SURVIVOR" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_nemesis(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_BOSS" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_zombie(i_Player))
          {
             if(
Zombie>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }else{
             if(
Human>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }
      }
  
      
menu_setpropi_MenuMPROP_EXITMEXIT_ALL );
      
menu_setpropi_MenuMPROP_NEXTNAME"Далее")
      
menu_setpropi_MenuMPROP_BACKNAME"Назад")
      
menu_setpropi_MenuMPROP_EXITNAME"Выход")

      
menu_display(idi_Menu0)
}

public 
vipmenu_playerhz_handler(idmenuitem)
{
     if (
item == MENU_EXIT)
     {
         
menu_destroy(menu)
         return 
PLUGIN_HANDLED
     
}
 
     new 
s_Data[6], s_Name[64], i_Accessi_Callback
     menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)
 
     new 
i_Player str_to_num(s_Data)
 
     if (
is_user_alive(i_Player))
     {
         if(
zp_get_user_zombie(i_Player))
         {
            
zp_disinfect_user(i_Player)
            
vipblock[id][1] = vipblock[id][1]+1
 
            
if(!zp_get_user_zombie(i_Player) && !zp_get_user_survivor(i_Player) && !zp_get_user_nemesis(i_Player))
            {
               new 
name[33], name1[33]
               
get_user_name(idname32)
               
get_user_name(i_Playername132
               
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_PLAYER_HZ_H"namename1)

               
show_menu_vip(id)

               if(
get_pcvar_num(g_cvar[6]) == 1)
               {
                  new 
szText555 char ], szData[32]
                  
get_time("[%H:%M]",szData,31)
 
                  if(
get_pcvar_num(g_cvar[7]) == 0)
                  {
                     
formatex(logfile63"zpvip_%s.log"logdate)
                  }else{
                     
formatex(logfile63"zpvip_%s_%s.log"namelogdate)
                  }

                  
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_LOG_HUMAN"namename1szData);
                  
log_to_file(logfileszText )
               }
            }else{
               
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
               
show_menu_vip(id)
               return 
PLUGIN_HANDLED
            
}
         }else{
            
zp_infect_user(i_Player)
            
vipblock[id][1] = vipblock[id][1]+1
 
            
if(zp_get_user_zombie(i_Player) && !zp_get_user_survivor(i_Player) && !zp_get_user_nemesis(i_Player))
            {
               new 
name[32], name1[32]
               
get_user_name(idname31)
               
get_user_name(i_Playername131)
               
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_PLAYER_HZ_Z"namename1)
 
               
show_menu_vip(id)

               if(
get_pcvar_num(g_cvar[6]) == 1)
               {
                  new 
szText555 char ], szData[32]
                  
get_time("[%H:%M]",szData,31)
 
                  if(
get_pcvar_num(g_cvar[7]) == 0)
                  {
                     
formatex(logfile63"zpvip_%s.log"logdate)
                  }else{
                     
formatex(logfile63"zpvip_%s_%s.log"namelogdate)
                  }

                  
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_LOG_ZOMBIE"namename1szData);
                  
log_to_file(logfileszText )
               }
            }else{
                
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
                
show_menu_vip(id)
                return 
PLUGIN_HANDLED
            
}
         }
     }else{
         new 
name2[32]
         
get_user_name(i_Playername231)
         
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_HZ_DEATH"name2)
         
vipmenu_playerhz(id)
     }
 
     
menu_destroy(menu)
     return 
PLUGIN_HANDLED


public 
vipmenu_playersurvivor(id)
{
      new 
szText555 char ]
  
      
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_SURVIVORMENU_TITLE")
      new 
i_Menu menu_createszText"vipmenu_playersurvivor_handler" )
  
      new 
s_Players[32], i_Numi_Player
      
new s_Name[32], s_Player[10]
  
      
get_players(s_Playersi_Num)

      new 
ZombieHuman
             
      Human 
zp_get_human_count()
      
Zombie zp_get_zombie_count()
  
      for (new 
ii_Numi++)
      { 
          
i_Player s_Players[i]
  
          if(!
is_user_alive(i_Player))
                continue
  
          
get_user_name(i_Players_Namecharsmax(s_Name))
          
num_to_str(i_Players_Playercharsmax(s_Player))
  
          if(
vipsurv[i_Player] && !zp_get_user_survivor(i_Player))
          {
             if(
get_pcvar_num(g_cvar[5])==1)
             {
                
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_USE" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }else
          if(
zp_get_user_survivor(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_SURVIVOR" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_nemesis(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_BOSS" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_zombie(i_Player))
          {
             if(
Zombie>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }else{
             if(
Human>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }
      }
  
      
menu_setpropi_MenuMPROP_EXITMEXIT_ALL );
      
menu_setpropi_MenuMPROP_NEXTNAME"Далее")
      
menu_setpropi_MenuMPROP_BACKNAME"Назад")
      
menu_setpropi_MenuMPROP_EXITNAME"Выход")

      
menu_display(idi_Menu0)
}

public 
vipmenu_playersurvivor_handler(idmenuitem
{
     if (
item == MENU_EXIT)
     {
         
menu_destroy(menu)
         return 
PLUGIN_HANDLED
     
}
 
     new 
s_Data[6], s_Name[64], i_Accessi_Callback
     menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)
 
     new 
i_Player str_to_num(s_Data)
 
     if (
is_user_alive(i_Player))
     {
         if(!
zp_get_user_survivor(i_Player) && !zp_get_user_nemesis(i_Player))
         {
            
zp_make_user_survivor(i_Player)
            
vipblock[id][3] = vipblock[id][3]+1
            vipsurv
[i_Player] = true
         
}else{
            
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
            
show_menu_vip(id)
            return 
PLUGIN_HANDLED
         
}
 
         if(!
zp_get_user_zombie(i_Player) && zp_get_user_survivor(i_Player) && !zp_get_user_nemesis(i_Player))
         {
            new 
name[32], name1[32]
            
get_user_name(idname31)
            
get_user_name(i_Playername131)
            
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_PLAYER_SURVIVOR"namename1)
 
            
show_menu_vip(id)

            if(
get_pcvar_num(g_cvar[7]) == 1)
            {
               new 
szText555 char ], szData[32]
               
get_time("[%H:%M]",szData,31)
 
               if(
get_pcvar_num(g_cvar[6]) == 0)
               {
                  
formatex(logfile63"zpvip_%s.log"logdate)
               }else{
                  
formatex(logfile63"zpvip_%s_%s.log"namelogdate)
               }

               
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_LOG_SURVIVOR"namename1szData);
               
log_to_file(logfileszText )
            }
         }else{
            
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
            
show_menu_vip(id)
            return 
PLUGIN_HANDLED
         
}
     }else{
         new 
name2[32]
         
get_user_name(i_Playername231)
         
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_SURVIVOR_DEATH"name2)
 
         
show_menu_vip(id)
     }
 
     
menu_destroy(menu)
     return 
PLUGIN_HANDLED


public 
vipmenu_playernemesis(id)
{
      new 
szText555 char ]
  
      
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_NEMESISMENU_TITLE")
      new 
i_Menu menu_createszText"vipmenu_playernemesis_handler" )
  
      new 
s_Players[32], i_Numi_Player
      
new s_Name[32], s_Player[10]

      new 
ZombieHuman
             
      Human 
zp_get_human_count()
      
Zombie zp_get_zombie_count()
  
      
get_players(s_Playersi_Num)
  
      for (new 
ii_Numi++)
      { 
          
i_Player s_Players[i]
  
          if(!
is_user_alive(i_Player))
                continue
  
          
get_user_name(i_Players_Namecharsmax(s_Name))
          
num_to_str(i_Players_Playercharsmax(s_Player))

          if(
vipnem[i_Player] && !zp_get_user_nemesis(i_Player))
          {
             if(
get_pcvar_num(g_cvar[5])==1)
             {
                
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_USE" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }else
          if(
zp_get_user_survivor(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_SURVIVOR" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_nemesis(i_Player))
          {
             
formatexszTextcharsmaxszText ), "%s - [%L]"s_Nameid"ZPVIP_BOSS" )
             
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
          }else
          if(
zp_get_user_zombie(i_Player))
          {
             if(
Zombie>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \r[%L]"s_Nameid"ZPVIP_ZOMBIE" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }else{
             if(
Human>=2)
             {
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_Player0)
             }else{
                
formatexszTextcharsmaxszText ), "%s - \y[%L]"s_Nameid"ZPVIP_HUMAN" )
                
menu_additem(i_MenuszTexts_PlayerADMIN_ADMIN)
             }
          }
      }
  
      
menu_setpropi_MenuMPROP_EXITMEXIT_ALL );
      
menu_setpropi_MenuMPROP_NEXTNAME"Далее")
      
menu_setpropi_MenuMPROP_BACKNAME"Назад")
      
menu_setpropi_MenuMPROP_EXITNAME"Выход")
  
      
menu_display(idi_Menu0)
}

public 
vipmenu_playernemesis_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}

    new 
s_Data[6], s_Name[64], i_Accessi_Callback
    menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)

    new 
i_Player str_to_num(s_Data)

    if (
is_user_alive(i_Player))
    {
        if(!
zp_get_user_survivor(i_Player) && !zp_get_user_nemesis(i_Player))
        {
           
zp_make_user_nemesis(i_Player)
           
vipblock[id][2] = vipblock[id][2]+1
           vipnem
[i_Player] = true
        
}else{
           
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
           
show_menu_vip(id)
           return 
PLUGIN_HANDLED
        
}

        if(
zp_get_user_zombie(i_Player) && !zp_get_user_survivor(i_Player) && zp_get_user_nemesis(i_Player))
        {
           new 
name[32], name1[32]
           
get_user_name(idname31)
           
get_user_name(i_Playername131)
           
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NEMESIS"namename1)

           
show_menu_vip(id)

           if(
get_pcvar_num(g_cvar[6]) == 1)
           {
              new 
szText555 char ], szData[32]
              
get_time("[%H:%M]",szData,31)
 
              if(
get_pcvar_num(g_cvar[7]) == 0)
              {
                 
formatex(logfile63"zpvip_%s.log"logdate)
              }else{
                 
formatex(logfile63"zpvip_%s_%s.log"namelogdate)
              }

              
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_LOG_NEMESIS"namename1szData);
              
log_to_file(logfileszText )
           }
        }else{
           
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
           
show_menu_vip(id)
           return 
PLUGIN_HANDLED
        
}
    }else{
        new 
name2[32]
        
get_user_name(i_Playername231)
        
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NEMESIS_DEATH"name2)

        
show_menu_vip(id)
    }

    
menu_destroy(menu)
    return 
PLUGIN_HANDLED


public 
vipmenu_playerrevive(id)
{
      new 
szText555 char ]
  
      
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_REVIVEMENU_TITLE")
      new 
i_Menu menu_createszText"vipmenu_playerrevive_handler" )
  
      new 
s_Players[32], i_Numi_Player
      
new s_Name[32], s_Player[10]
  
      
get_players(s_Playersi_Num)
  
      for (new 
ii_Numi++)
      { 
          
i_Player s_Players[i]
  
          if(
is_user_alive(i_Player))
                continue
  
          
get_user_name(i_Players_Namecharsmax(s_Name))
          
num_to_str(i_Players_Playercharsmax(s_Player)) 
             
          
formatexszTextcharsmaxszText ), "%s"s_Name)
          
menu_additem(i_MenuszTexts_Player0)
      }
  
      
menu_setpropi_MenuMPROP_EXITMEXIT_ALL )
      
menu_setpropi_MenuMPROP_NEXTNAME"Далее")
      
menu_setpropi_MenuMPROP_BACKNAME"Назад")
      
menu_setpropi_MenuMPROP_EXITNAME"Выход")

      
menu_display(idi_Menu0)
}

public 
vipmenu_playerrevive_handler(idmenuitem)
{
      if (
item == MENU_EXIT)
      {
          
menu_destroy(menu)
          return 
PLUGIN_HANDLED
      
}
  
      new 
s_Data[6], s_Name[64], i_Accessi_Callback
      menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)
  
      new 
i_Player str_to_num(s_Data)
  
      if (!
is_user_alive(i_Player))
      {
          
ExecuteHamB(Ham_CS_RoundRespawni_Player)
          
vipblock[id][4] = vipblock[id][4]+

          
if(is_user_alive(i_Player))
          {
             new 
name[32], name1[32]
             
get_user_name(idname31)
             
get_user_name(i_Playername131)
             
ChatColor(0"!g[VIP]!y%L",0,"ZPVIP_PLAYER_REVIVE"namename1

             
show_menu_vip(id)

             if(
get_pcvar_num(g_cvar[6]) == 1)
             {
                new 
szText555 char ], szData[32]
                
get_time("[%H:%M]",szData,31)
 
                if(
get_pcvar_num(g_cvar[7]) == 0)
                {
                   
formatex(logfile63"zpvip_%s.log"logdate)
                }else{
                   
formatex(logfile63"zpvip_%s_%s.log"namelogdate)
                }

                
formatexszTextcharsmaxszText ), "%L"id"ZPVIP_LOG_REVIVE"namename1szData);
                
log_to_file(logfileszText )
             }
          }else{
             
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_NO")
             
show_menu_vip(id)
             return 
PLUGIN_HANDLED
          
}
      }else{
          new 
name2[32]
          
get_user_name(i_Playername231)
          
ChatColor(id"!g[VIP]!y%L",0,"ZPVIP_PLAYER_REVIVE_ALIVE"name2)
  
          
show_menu_vip(id)
      }
  
      
menu_destroy(menu)
      return 
PLUGIN_HANDLED


stock ChatColor(const id, const input[], any:...)
{
      new 
count 1players[32]
      static 
msg[191]
      
vformat(msg190input3)
      
      
replace_all(msg190"!g""^4")
      
replace_all(msg190"!y""^1")
      
replace_all(msg190"!team""^3")
      
      if (
idplayers[0] = id; else get_players(playerscount"ch")
      {
          for (new 
0counti++)
          {
              if (
is_user_connected(players[i]))
              {
                  
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                  
write_byte(players[i]);
                  
write_string(msg);
                  
message_end();
              }
          }
      }
}  


Код: Выделить всё
[ru]
ZPVIPMENU_TITLE = [SERVER VIPMENU]
ZPVIP_ITEM_1 Превратить в Зомби/Человека
ZPVIP_ITEM_2 
Дать Босса
ZPVIP_ITEM_3 
Дать Выжившего
ZPVIP_ITEM_4 
Воскресить

ZPVIP_HZMENU_TITLE 
Выбери игрока для превращения
ZPVIP_PLAYER_HZ_H 
Игрок !team%!yПревратил игрока !team%s в !gЧеловека
ZPVIP_PLAYER_HZ_Z 
Игрок !team%!yПревратил игрока !team%s в !gЗомби
ZPVIP_PLAYER_HZ_DEATH 
Игрок !team%!yкоторого вы хотели превратить !gУмер

ZPVIP_SURVIVORMENU_TITLE 
Выбери игрока для превращения
ZPVIP_PLAYER_SURVIVOR 
Игрок !team%!yПревратил игрока !team%s в !gВыжившего
ZPVIP_PLAYER_SURVIVOR_DEATH 
Игрок !team%!yкоторого вы хотели превратить в выжившего !gУмер

ZPVIP_NEMESISMENU_TITLE 
Выбери игрока для превращения
ZPVIP_PLAYER_NEMESIS 
Игрок !team%!yПревратил игрока !team%s в !gБосса
ZPVIP_PLAYER_NEMESIS_DEATH 
Игрок !team%!yкоторого вы хотели превратить в босса !gУмер

ZPVIP_REVIVEMENU_TITLE 
Выбери игрока для воскрешение
ZPVIP_PLAYER_REVIVE 
Игрок !team%!yВоскресил игрока !team%s
ZPVIP_PLAYER_REVIVE_ALIVE 
Игрок !team%!yкоторого вы хотели воскресить !gЖивой

ZPVIP_PLAYER_NO 
После последней !gпроверки!y игрока произошли !team изменения!действие !gОтменено
ZPVIP_NO_ACCESS 
У !teamВас!y недостаточно прав для использование !gVipMenu

ZPVIP_LIMIT 
Действует лимит
ZPVIP_BOSS 
Босс
ZPVIP_SURVIVOR 
Выживший
ZPVIP_ZOMBIE 
Зомби
ZPVIP_HUMAN 
Человек
ZPVIP_USE 
Уже давалось

ZPVIP_LOG_NEMESIS 
= %s превратил  игрока %s в немезидуВремя %s
ZPVIP_LOG_SURVIVOR 
= %s превратил  игрока %s в выжившегоВремя %s
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: VIP меню для ZP4.3

Сообщение 3BEPb » 23 фев 2018, 18:25

Mandar1n, увы но ты ему не облегчил задачу а лишь усложнил.
Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: VIP меню для ZP4.3

Сообщение Mandar1n » 23 фев 2018, 19:37

3BEPb писал(а):Mandar1n, увы но ты ему не облегчил задачу а лишь усложнил.

Я лишь присоединился к посту выше меня.
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: VIP меню для ZP4.3

Сообщение 3BEPb » 23 фев 2018, 21:21

Mandar1n, в посте выше имеется в виду 2 менюшки около 200 строк кода а не как у тебя куча менюшек и не нужного автору кода почти на 800 строк.

Смысл разбираться в устройстве большого плагина и переделывать его если проще написать с 0 без лишнего кода и кучи времени для прочтения и понятия для чего это всё нужно.
Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: VIP меню для ZP4.3

Сообщение Mandar1n » 23 фев 2018, 23:55

3BEPb писал(а):Mandar1n, в посте выше имеется в виду 2 менюшки около 200 строк кода а не как у тебя куча менюшек и не нужного автору кода почти на 800 строк.

Смысл разбираться в устройстве большого плагина и переделывать его если проще написать с 0 без лишнего кода и кучи времени для прочтения и понятия для чего это всё нужно.


Изменить менюшку под выдачу хп, брони и просто ввод в чат "/goldweapon" проще, чем думать, как сделать игрока вышившим/немезидой и писать плагин с нуля, если ты вообще не шаришь
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: VIP меню для ZP4.3

Сообщение edf.PR » 24 фев 2018, 16:20

я написал но проблема с вызовом меню ,ввел нужную команду ,не работает ,может ошибка где-то
Код: Выделить всё
register_clcmd("/admin_menu", "ClCmd_AdminMenu"                                
                register_clcmd
("/vip_menu" , "ClCmd_VipMenu" )
Аватара пользователя
edf.PR
 
Сообщения: 7
Зарегистрирован: 23 фев 2018, 13:55
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: C++

Re: VIP меню для ZP4.3

Сообщение JustProOnline » 24 фев 2018, 20:05

Код: Выделить всё
register_clcmd("say /admin_menu", "ClCmd_AdminMenu" )

Код: Выделить всё
register_clcmd("say_team /admin_menu", "ClCmd_AdminMenu" )

Код: Выделить всё
register_clcmd("say /vip_menu" , "ClCmd_VipMenu")

Код: Выделить всё
register_clcmd("say_team /vip_menu" , "ClCmd_VipMenu")
Аватара пользователя
JustProOnline
 
Сообщения: 160
Зарегистрирован: 30 дек 2017, 10:14
Благодарил (а): 23 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около года
Языки программирования: C++
Counter-Strike 1.6

Re: VIP меню для ZP4.3

Сообщение edf.PR » 24 фев 2018, 20:16

неа не робит(
Последний раз редактировалось edf.PR 25 фев 2018, 00:56, всего редактировалось 1 раз.
Аватара пользователя
edf.PR
 
Сообщения: 7
Зарегистрирован: 23 фев 2018, 13:55
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: C++


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 14