Raised This Month: $32 Target: $400
 8% 

new abilities for the plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
luciaus18
Senior Member
Join Date: Dec 2014
Old 02-25-2021 , 14:08   new abilities for the plugin
Reply With Quote #1

Hi! Someone can edit this plugin? I want to add 3 more abilities to this plugin. If you can make it with red color, I want to learn how to do this in the future
This is the source:
Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <hamsandwich>
#include <fun>
#include <WPMGPrintChatColor>
 
#define PLUGIN "Нация Ножей"
#define VERSION "0.8.1"
#define AUTHOR "Psycrow"
 
#define is_entity_player(%1)   (1<=%1<=g_maxPlayers)
#define PRESENT_CLASSNAME   "next21_gift"
#define pev_lifes      pev_euser1
 
#define MODEL_PRESENT       "models/next21_knife_v2/presents/presents.mdl"
#define MODEL_SKINS       3
#define MODEL_SUBMODELS    5
 
#define MAX_MONEY       20000 // Максимальное кол-во денег у игрока
 
#if cellbits == 32
   #define OFFSET_CSMONEY 115
#else
   #define OFFSET_CSMONEY 140
#endif
 
new
   g_msgMoney,
   g_infoTarget,
   g_maxPlayers,
   g_menuId = -1,
   bool: g_registration,
   g_totalGifts,                   //Кол-во загруженных подарков на карте
   g_get_round_times[33],               //Сколько раз игрок поднял подарков за раунд
   g_get_game_times[33],               //Сколько раз игрок поднял подарков за игру
   g_disconnections,               //Сколько игроков покинуло сервер
   bool: g_have_speed[33],               //Имеет ли игрок добавленную скорость
   bool: g_have_gravity[33],            //Имеет ли игрок добавленную гравитацию
   bool: g_have_sw[33],               //Имеет ли игрок заглушенные шаги
   bool: g_save_cpl,               //Изменения в расположении подарков
   Float: g_massage_rate[33],            //Ограничение оповещений о попытке собрать подарок ограниченному игроку
 
   Array:g_gift_id,               //Индексы подарков
   Array:g_gift_x,
   Array:g_gift_y,
   Array:g_gift_z,
   Array:g_plr_steamid,
   Array:g_plr_times
 
 
public plugin_precache()
{
   precache_model(MODEL_PRESENT)
}
 
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
    
   register_cvar("cv_gift_access","l")       // Флаг доступа к меню
   register_cvar("cv_gift_money_min","500")    // Минимальная награда за собрынный подарок
   register_cvar("cv_gift_money_max","8000")    // Максимальная награда за собрынный подарок
   register_cvar("cv_gift_silent_walk","0")    // Добавить ли в подарки бесшумный бег
   register_cvar("cv_gift_gravitation","0.5")    // Значение гравитации. 0.0 - убрать такой вид подарка
   register_cvar("cv_gift_speed","300.0")       // Значение скорости. 0.0 - убрать такой вид подарка
   register_cvar("cv_gift_HE","2")       // Сколько HE гранат можно получить в подарках. 0 - убрать такой вид подарка
   register_cvar("cv_gift_health","35")       // Сколько HP можно получить в подарках. 0 - убрать такой вид подарка
   register_cvar("cv_gift_timerate","500.0")    // Сколько секунд до появление подарка
   register_cvar("cv_gift_get_times_round","0")    // Сколько максимум можно собрать подарков за раундов. 0 - снимает ограничение
   register_cvar("cv_gift_get_times_game","0")    // Сколько максимум можно собрать подарков за игру (карту). 0 - снимает ограничение
   register_cvar("cv_gift_lifes","0")       // Сколько раз может появиться подарок в одном и том же месте (0 - неограниченно, 1 - после сбора больше не появляеться...)
    
   register_clcmd("say /gift", "gift_menu")
   register_clcmd("say_team /gift", "gift_menu" )
   register_clcmd("say /gifts", "gift_menu" )
   register_clcmd("say_team /gifts", "gift_menu" )
    
   g_infoTarget = engfunc(EngFunc_AllocString, "info_target")
}
 
public plugin_cfg()
{
   new map[32]
   get_mapname(map, charsmax(map))
   formatex(map, charsmax(map),"%s.ini",map)
    
   new cfgDir[64], iDir, iFile[128]
   get_configsdir(cfgDir, charsmax(cfgDir))
   formatex(cfgDir, charsmax(cfgDir), "%s/next21_gifts", cfgDir)
    
   iDir = open_dir(cfgDir, iFile, charsmax(iFile))
    
   if(iDir)
   {
      while(next_file(iDir, iFile, charsmax(iFile)))
      {
         if (iFile[0] == '.')
            continue
            
         if(equal(map, iFile))
         {
            format(iFile, 128, "%s/%s", cfgDir, iFile)
            get_gifts(iFile)
            break
         }
      }
   }
   else server_print("[%s] Gifts was not loaded", PLUGIN)   
}
 
public client_putinserver(id)
{
   if(!g_registration) return
    
   if(get_cvar_num("cv_gift_get_times_game"))
   {
      new steamId[32], arraySteamId[32]
      get_user_authid(id, steamId, 31)
      
      for(new i = 0; i < g_disconnections; i++)
      {
         ArrayGetString(g_plr_steamid, i, arraySteamId, 31)
         if(equal(steamId, arraySteamId))
         {
            g_get_game_times[id] = ArrayGetCell(g_plr_times, i)
            return
         }
      }
      g_get_game_times[id] = 0
   }
}
 
public client_disconnect(id)
{
   if(!g_registration) return
    
   if(get_cvar_num("cv_gift_get_times_game"))
   {   
      new steamId[32], arraySteamId[32]
      get_user_authid(id, steamId, 31)
      
      for(new i = 0; i < g_disconnections; i++)
      {
         ArrayGetString(g_plr_steamid, i, arraySteamId, 31)         
         if(equal(steamId, arraySteamId))
         {           
            ArraySetCell(g_plr_times, i, g_get_game_times[id])
            return
         }
      }
      
      ArrayPushString(g_plr_steamid, steamId)
      ArrayPushCell(g_plr_times, g_get_game_times[id])
      g_disconnections++
   }
}
 
public fw_PlayerSpawn(id)
{     
   if(!is_user_alive(id)) return;
   if(g_have_gravity[id])
   {
      set_user_gravity(id)
      g_have_gravity[id] = false
   }
    
   if(g_have_sw[id])
   {
      set_user_footsteps(id, 0)
      g_have_sw[id] = false
   }
    
   g_have_speed[id] = false
}
 
public CurWeapon(id)
{
   if(g_have_speed[id])
      set_user_maxspeed(id, get_cvar_float("cv_gift_speed"))
}
 
public fw_RoundStart()
{
   for(new i = 1; i <= g_maxPlayers; i++)
      g_get_round_times[i] = 0 
    
   new lifes = get_cvar_num("cv_gift_lifes")
   if(lifes)
   {
      new ent
      while((ent = fm_find_ent_by_class(ent, PRESENT_CLASSNAME)))
         set_pev(ent, pev_lifes, lifes)     
   }
}
 
public fw_TouchGift(ent, id)
{   
   if(!is_entity_player(id))
      return
          
   if(g_massage_rate[id] > get_gametime() || !is_user_alive(id) || !pev_valid(ent))
      return
      
   static className[32]
   pev(ent, pev_classname, className, 31)
   if(!equal(className, PRESENT_CLASSNAME))
      return
      
   new times = get_cvar_num("cv_gift_get_times_round")
   if(times && g_get_round_times[id] >= times)
   {
      PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы привысили лимит сбора подарков за раунд", PLUGIN)
      g_massage_rate[id] = get_gametime() + 3.0
      return
   }
    
   times = get_cvar_num("cv_gift_get_times_game")
   if(times && g_get_game_times[id] >= times)
   {
      PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы привысили лимит сбора подарков за игру", PLUGIN)
      g_massage_rate[id] = get_gametime() + 3.0
      return
   }
                
   engfunc(EngFunc_SetModel, ent, MODEL_PRESENT)
   set_pev(ent, pev_skin, random_num(0, MODEL_SKINS - 1))
   set_pev(ent, pev_body, random_num(0, MODEL_SUBMODELS - 1))
          
   hide_gift(ent)
   give_gift(id)
          
   if(get_cvar_num("cv_gift_get_times_game")) g_get_game_times[id]++
   if(get_cvar_num("cv_gift_get_times_round")) g_get_round_times[id]++
   if(get_cvar_num("cv_gift_lifes")) set_pev(ent, pev_lifes, pev(ent, pev_lifes) - 1)
}
 
public set_gift()
{
   if(!g_totalGifts) return
      
   new valid_gifts_count = 0
   new ent, lifes_active = get_cvar_num("cv_gift_lifes")
   while((ent = fm_find_ent_by_class(ent, PRESENT_CLASSNAME)))
   {     
      if(pev(ent, pev_solid) != SOLID_NOT || (lifes_active && !pev(ent, pev_lifes)))
         valid_gifts_count++
   }           
      
   if(valid_gifts_count == g_totalGifts) return
    
   new bool: check = false, id
   while(check == false)
   {
      id = random_num(0, g_totalGifts - 1)
      ent = ArrayGetCell(g_gift_id ,id)
      if(pev(ent, pev_solid) == SOLID_NOT && (!lifes_active || pev(ent, pev_lifes)))
      {
         set_pev(ent, pev_solid, SOLID_TRIGGER)         
         unhide_gift(ent)
         check = true
      }
   }
}
 
public gift_menu(id)
{
   if(!is_user_access(id))
   {
      PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tУ вас нет прав на эту функцию", PLUGIN)
      return
   }
    
   new menu_name[90]
   format(menu_name, 89, "\rРасстановка подарков^n\dТекущий подарок: %d", g_totalGifts + 1)
 
   g_menuId = menu_create(menu_name, "menu_handler")
    
   menu_additem(g_menuId, "\wУстановить Подарок", "1", 0)
    
   if(!g_totalGifts)
   {
      menu_additem(g_menuId, "\dУдалить предыдущий Подарок", "2", 0)
      menu_additem(g_menuId, "\dУдалить все Подарки", "3", 0)
   }
   else
   {
      menu_additem(g_menuId, "\wУдалить предыдущий Подарок", "2", 0)
      menu_additem(g_menuId, "\wУдалить все Подарки", "3", 0)
   }
      
   if(!g_save_cpl)
      menu_additem(g_menuId, "\dСохранить изменения", "4", 0)
   else menu_additem(g_menuId, "\wСохранить изменения", "4", 0)
 
   menu_setprop(g_menuId, MPROP_EXIT, MEXIT_ALL)
   menu_setprop(g_menuId, MPROP_EXITNAME, "\yВыход")
   menu_display(id, g_menuId, 0)
    
   new keys
   get_user_menu(id, g_menuId, keys)
    
   for(new i = 0; i < g_totalGifts; i++)
      unhide_gift(ArrayGetCell(g_gift_id, i))
}
 
public menu_handler(id, menu, item)
{
   if(item == MENU_EXIT)
   {
      new ent
      for(new i = 0; i < g_totalGifts; i++)
      {
         ent = ArrayGetCell(g_gift_id, i)
         if(pev(ent, pev_solid) == SOLID_NOT) hide_gift(ent)
      }
    
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
    
   switch(item)
   {
      case 0:
      {   
         new Float:fOrigin[3]
         fm_get_aim_origin(id, fOrigin)
          
         if(create_gift(fOrigin))
            g_save_cpl = true
            
         menu_destroy(menu)
         gift_menu(id)
      }
      case 1:
      {
         if(!g_totalGifts)
         {
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tНа карте нет Подарков", PLUGIN)
            menu_destroy(menu)
            gift_menu(id)
            return PLUGIN_HANDLED
         }
          
         g_save_cpl = true
         PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tПодарок удален", PLUGIN)
          
          
         g_totalGifts--
         engfunc(EngFunc_RemoveEntity, ArrayGetCell(g_gift_id, g_totalGifts))
         ArrayDeleteItem(g_gift_id, g_totalGifts)
         ArrayDeleteItem(g_gift_x, g_totalGifts)
         ArrayDeleteItem(g_gift_y, g_totalGifts)
         ArrayDeleteItem(g_gift_z, g_totalGifts)
            
         menu_destroy(menu)
         gift_menu(id)
      }
      case 2:
      {
         if(!g_totalGifts)
         {
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tНа карте нет Подарков", PLUGIN)
            menu_destroy(menu)
            gift_menu(id)
            return PLUGIN_HANDLED
         }
          
         g_save_cpl = true
         PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tБыло удалено !g%d !tПодарков", PLUGIN, g_totalGifts)
          
         new ent
         while((ent = fm_find_ent_by_class(ent, PRESENT_CLASSNAME)))
            engfunc(EngFunc_RemoveEntity, ent)
            
         g_totalGifts = 0
          
         ArrayClear(g_gift_id)
         ArrayClear(g_gift_x)
         ArrayClear(g_gift_y)
         ArrayClear(g_gift_z)
          
         menu_destroy(menu)
         gift_menu(id)         
 
      }
      case 3:
      {
         if(!g_save_cpl)
         {
            menu_destroy(menu)
            gift_menu(id)
            return PLUGIN_HANDLED
         }
          
         g_save_cpl = false
          
         PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !t%s", PLUGIN, save_gifts() ? "Сохранено" : "Не сохранено")
          
         menu_destroy(menu)
         gift_menu(id)
      }
   }
   return PLUGIN_HANDLED
}
 
bool: save_gifts()
{
   new map[32]
   get_mapname(map, charsmax(map))
   formatex(map, charsmax(map), "%s.ini", map)
    
   new cfgDir[64], iFile[128]
   get_configsdir(cfgDir, charsmax(cfgDir))
   formatex(cfgDir, charsmax(cfgDir), "%s/next21_gifts", cfgDir)
   formatex(iFile, charsmax(iFile), "%s/%s", cfgDir, map)
    
   if(!dir_exists(cfgDir))
      if(!mkdir(cfgDir))
         return false
    
   delete_file(iFile)
    
   if(!g_totalGifts)
      return true
    
   for(new i = 0; i < g_totalGifts; i++)
   {
      new text[128], Float:fOrigin[3], ent = ArrayGetCell(g_gift_id, i)
      pev(ent, pev_origin, fOrigin)
      format(text, charsmax(text),"^"%f^" ^"%f^" ^"%f^"",fOrigin[0], fOrigin[1], fOrigin[2])
      write_file(iFile, text, i)
   }
    
   return true
}
 
get_gifts(const iFile[128])
{   
   new file = fopen(iFile, "rt")
    
   if(!file)
   {
      server_print("[%s] Gifts was not loaded", PLUGIN)
      return
   }
      
   while(file && !feof(file))
   {
      new sfLineData[512]
      fgets(file, sfLineData, charsmax(sfLineData))
          
      if(sfLineData[0] == ';')
         continue
          
      if(equal(sfLineData, ""))
         continue 
          
      new origins[3][32], Float: fOrigin[3]     
      parse(sfLineData, origins[0], 31, origins[1], 31, origins[2], 31)
      
      fOrigin[0] = str_to_float(origins[0])
      fOrigin[1] = str_to_float(origins[1])
      fOrigin[2] = str_to_float(origins[2])
      
      create_gift(fOrigin)
   }
    
   fclose(file)
    
   if(!g_totalGifts)
      server_print("[%s] Gifts was not loaded", PLUGIN)
   else if(g_totalGifts == 1)
      server_print("[%s] Loaded one gift", PLUGIN)
   else
      server_print("[%s] Loaded %d gifts", PLUGIN, g_totalGifts)
}
 
bool: create_gift(const Float: fOrigin[3])
{
   new ent = engfunc(EngFunc_CreateNamedEntity, g_infoTarget)
   if(!pev_valid(ent)) return false
    
   if(!g_registration)
   {   
      register_event("CurWeapon", "CurWeapon", "be","1=1")
      register_event("HLTV", "fw_RoundStart", "a", "1=0", "2=0")
      
      RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
      RegisterHamFromEntity(Ham_Touch, ent, "fw_TouchGift")
      
      set_task(get_cvar_float("cv_gift_timerate"), "set_gift", _, _, _, "b")
      
      g_gift_id = ArrayCreate()
      g_gift_x = ArrayCreate()
      g_gift_y = ArrayCreate()
      g_gift_z = ArrayCreate()
            
      if(get_cvar_num("cv_gift_get_times_game"))
      {
         g_plr_steamid = ArrayCreate(32)
         g_plr_times = ArrayCreate(32)
      }
      
      g_maxPlayers = get_maxplayers()
      g_msgMoney = get_user_msgid("Money")
      
      g_registration = true
      
      fw_RoundStart()
   }
      
   ArrayPushCell(g_gift_id, ent)
      
   ArrayPushCell(g_gift_x, fOrigin[0])
   ArrayPushCell(g_gift_y, fOrigin[1])
   ArrayPushCell(g_gift_z, fOrigin[2])
      
   engfunc(EngFunc_SetModel, ent, MODEL_PRESENT)
   set_pev(ent, pev_origin, fOrigin)
   set_pev(ent, pev_solid, SOLID_NOT)
   set_pev(ent, pev_movetype, MOVETYPE_FLY)
   set_pev(ent, pev_gravity, 1.0)
   set_pev(ent, pev_classname, PRESENT_CLASSNAME)
   set_pev(ent, pev_skin, random_num(0, MODEL_SKINS - 1))
   set_pev(ent, pev_body, random_num(0, MODEL_SUBMODELS - 1))
   engfunc(EngFunc_SetSize, ent, Float:{-15.0, -15.0, 0.0}, Float:{15.0, 15.0, 30.0})
            
   hide_gift(ent)
      
   g_totalGifts++
    
   return true
}
 
hide_gift(ent)
{
   set_pev(ent, pev_solid, SOLID_NOT)
   for(new i = 1; i <= g_maxPlayers; i++)
   {
      new mid, keys
      get_user_menu(i, mid, keys)
      if(mid == g_menuId)
      {
         fm_set_rendering(ent,  kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 150)
         return
      }
   }
   fm_set_rendering(ent,  kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
}
 
unhide_gift(ent)
{
   if(pev(ent, pev_solid) == SOLID_NOT)
      fm_set_rendering(ent,  kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 150)
   else
      fm_set_rendering(ent,  kRenderFxGlowShell, random_num(0,255), random_num(0,255), random_num(0,255), kRenderNormal, 15)
}
 
give_gift(id) //Выдает случайный бонус с подарка. Добавьте case, если хотите доавить свой.
{
   static loopDestroy
   loopDestroy++
    
   if(loopDestroy > 20)
   {
      PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tПодарок оказался пустым", PLUGIN)
      loopDestroy = 0
      return
   }
    
   new max_random_gift = 6//Сколько видов бонусов в подарках
   switch(random_num(1, max_random_gift))
   {
      case 1:
      {
         new reward = random_num(get_cvar_num("cv_gift_money_min"), get_cvar_num("cv_gift_money_max"))
         new curr_money = get_pdata_int(id, OFFSET_CSMONEY)
         if(curr_money + reward > MAX_MONEY)
            reward = MAX_MONEY - curr_money
            
         if(reward)
         {
            set_pdata_int(id, OFFSET_CSMONEY, curr_money + reward)
          
            message_begin(MSG_ONE, g_msgMoney, _, id)
            write_long(curr_money + reward)
            write_byte(1)
            message_end()
          
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !g%d$", PLUGIN, reward)
            loopDestroy = 0
         }
         else give_gift(id)     
      }
      
      case 2:
      {
         if(!g_have_sw[id] && !get_user_footsteps(id) && get_cvar_num("cv_gift_silent_walk"))
         {
            g_have_sw[id] = true
            set_user_footsteps(id)         
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !gбесшумный бег", PLUGIN)
            loopDestroy = 0
         }
         else give_gift(id)
      }
      
      case 3:
      {
         new Float: gravity = get_cvar_float("cv_gift_gravitation")
         if(!g_have_gravity[id] && get_user_gravity(id) > gravity && gravity)
         {
            g_have_gravity[id] = true
            set_user_gravity(id, gravity)   
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !gгравитацию", PLUGIN)
            loopDestroy = 0
         }
         else give_gift(id)
      }
      
      case 4:
      {   
         new Float: speed = get_cvar_float("cv_gift_speed")
         if(!g_have_speed[id] && get_user_maxspeed(id) < speed  && speed)
         {
            g_have_speed[id] = true
            set_user_maxspeed(id, speed)         
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !gскорость", PLUGIN)
            loopDestroy = 0
         }
         else give_gift(id)
      }
      
      case 5:
      {
         new hes = get_cvar_num("cv_gift_HE")
         if(hes)
         {
            if(!user_has_weapon(id, CSW_HEGRENADE))
            {
               fm_give_item(id, "weapon_hegrenade")
               cs_set_user_bpammo(id, CSW_HEGRENADE, hes)               
            }
            else cs_set_user_bpammo(id, CSW_HEGRENADE, cs_get_user_bpammo(id, CSW_HEGRENADE) + hes)
            
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !gкомплект гранат (%d HE)", PLUGIN, hes)
            loopDestroy = 0
         }
         else give_gift(id)
      }
      
      case 6:
      {
         new hp = get_cvar_num("cv_gift_health")
         if(hp)
         {
            fm_set_user_health(id, pev(id, pev_health) + hp)
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM, "!g[%s] !tВы получаете !gздоровье (%d hp)", PLUGIN, hp)
            loopDestroy = 0
         }
         else give_gift(id)
      }
      //case 7: тут по примерам выше
   }
}
 
bool: is_user_access(id)
{     
   new flag_access[24]
   get_cvar_string("cv_gift_access", flag_access, charsmax(flag_access))
    
   new flags = get_user_flags(id)
 
   if(contain(flag_access, "a") > -1 && (flags & ADMIN_IMMUNITY))
      return true
      
   if(contain(flag_access, "b") > -1 && (flags & ADMIN_RESERVATION))
      return true
      
   if(contain(flag_access, "c") > -1 && (flags & ADMIN_KICK))
      return true
      
   if(contain(flag_access, "d") > -1 && (flags & ADMIN_BAN))
      return true
      
   if(contain(flag_access, "e") > -1 && (flags & ADMIN_SLAY))
      return true
      
   if(contain(flag_access, "f") > -1 && (flags & ADMIN_MAP))
      return true
      
   if(contain(flag_access, "g") > -1 && (flags & ADMIN_CVAR))
      return true
      
   if(contain(flag_access, "h") > -1 && (flags & ADMIN_CFG))
      return true
      
   if(contain(flag_access, "i") > -1 && (flags & ADMIN_CHAT))
      return true
      
   if(contain(flag_access, "j") > -1 && (flags & ADMIN_VOTE))
      return true
    
   if(contain(flag_access, "k") > -1 && (flags & ADMIN_PASSWORD))
      return true
      
   if(contain(flag_access, "l") > -1 && (flags & ADMIN_RCON))
      return true
      
   if(contain(flag_access, "m") > -1 && (flags & ADMIN_LEVEL_A))
      return true
      
   if(contain(flag_access, "n") > -1 && (flags & ADMIN_LEVEL_B))
      return true
      
   if(contain(flag_access, "o") > -1 && (flags & ADMIN_LEVEL_C))
      return true
      
   if(contain(flag_access, "p") > -1 && (flags & ADMIN_LEVEL_D))
      return true
      
   if(contain(flag_access, "q") > -1 && (flags & ADMIN_LEVEL_E))
      return true
      
   if(contain(flag_access, "r") > -1 && (flags & ADMIN_LEVEL_F))
      return true
      
   if(contain(flag_access, "s") > -1 && (flags & ADMIN_LEVEL_G))
      return true
      
   if(contain(flag_access, "t") > -1 && (flags & ADMIN_LEVEL_H))
      return true
      
   if(contain(flag_access, "u") > -1 && (flags & ADMIN_MENU))
      return true
      
   if(contain(flag_access, "y") > -1 && (flags & ADMIN_ADMIN))
      return true
      
   if(contain(flag_access, "z") > -1 && (flags & ADMIN_USER))
      return true
      
   return false
}
I want to add:
1. invisible with knife in hand after 3 seconds
2. infinite ammo
3. revive after death (one time)

Last edited by luciaus18; 02-25-2021 at 14:10.
luciaus18 is offline
luciaus18
Senior Member
Join Date: Dec 2014
Old 02-27-2021 , 15:27   Re: new abilities for the plugin
Reply With Quote #2

Nobody? Maybe only one more ability or two? The one which is easier
luciaus18 is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 02-27-2021 , 15:43   Re: new abilities for the plugin
Reply With Quote #3

This isn't a paid service site, either be patient and wait or never post here again.

The rule say's you must wait 14 days ( 2 weeks ) before bumping your thread again.
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !

Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:47.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode