[ZP] Как сделать поднятие предмета по флагу?



Как сделать поднятие предмета по флагу?

Всем привет, частенько вижу, что ребята спрашивают — как можно запретить поднимать предмет или какое либо оружие
без определенного флага. Или же как запретить человеку поднимать оружие если у него нет привилегии.Расскажу вам про самый как по мне простой способ блокировки

Как сделать поднятие предмета по флагу?

Всем привет, частенько вижу, что ребята спрашивают — как можно запретить поднимать предмет или какое либо оружие
без определенного флага. Или же как запретить человеку поднимать оружие если у него нет привилегии.Расскажу вам про самый как по мне простой способ блокировки


1. Для начало впишем все необходимые нам инклуды:

#include amxmodx
#include hamsandwich
#include zombieplague
#include fakemeta_util

2. Создадим макросы с w_ моделью нашего предмета и флага доступа:

#define FLAGACCESS               ADMIN_BAN                     // Флаг, с которым игрок сможет поднять предмет.
#define WEAPONMODEL_W        \"models/anime/hentai.mdl\"    // W_ модель предмета, на который ставим ограничение. Это может быть что угодно (Пушка, сундук, ящик, подарок и так далее)

3.Далее нам нужно зарегистрировать момент поднятия предмета с земли:
Дописываем в public plugin_init:

register_plugin(\"HentaiOneLoveForever\", \"1.0\", \"Mireille (Universe)\");
RegisterHam(Ham_Touch, \"weaponbox\", \"Ham_PlayerTouch\");

4.Теперь перейдем к самой функции:

public Ham_PlayerTouch(iItem, iPlayer)
{
     if(!pev_valid(iItem) || !is_user_alive(iPlayer) || zp_get_user_zombie(iPlayer))
          return HAM_IGNORED;

     new szModelName[32];
     pev(iItem, pev_model, szModelName, charsmax(szModelName));

     if(equal(szModelName, WEAPONMODEL_W))
     {
          if(!(get_user_flags(iPlayer) & FLAGACCESS))
          {
               static Float:flLastTouch[33]; 
               new Float:flGameTime = get_gametime(); 

               if(flLastTouch[iPlayer] < flGameTime) 
               { 
                      flLastTouch[iPlayer] = flGameTime + 3.0; 
                      client_print(iPlayer, print_chat, \"Чтобы взять данный предмет, нужны определенные права!\");

                      return HAM_SUPERCEDE;
               }
          }
     }

     return HAM_IGNORED;
}
Все готово. Если что не получилось, вот готовый пример, сделанный мной:

[attachment=1325]



Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
CHEATS-CS.RU - Топовый контент по CS 1.6