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

Bazooka от Vechta  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

Bazooka от Vechta

Сообщение Tyanka » 07 мар 2022, 01:34

Всем привет. Использую плагин от Vechta. И такой вопрос. Хочу убрать дроп ее (так как она у меня только для админов). Из кода удалил все, что связано с drop. Базуку теперь выкинуть нельзя, но когда она у меня есть и меня заражают или я себя убиваю через kill, то возрождаюсь я за зм с базукой в руках. И могу стрелять по людям. Что не так было сделано?

UPD:
Удалил из кода
Код: Выделить всё
register_clcmd("drop", "drop_call");

и
Код: Выделить всё

public drop_call(id)

Это оставил
Код: Выделить всё

public zp_user_infected_post(id, infector)

и
Код: Выделить всё
drop_rpg_temp(id

У зомби больше не появляется базука, но после убийства или заражения она все равно дропается на землю. Как это можно исправить?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Tyanka
 
Сообщения: 18
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю

Re: Bazooka от Vechta  [Решено]

Сообщение izumi4 » 08 мар 2022, 18:07

Код: Выделить всё

if(equali(entclass, "rpg_temp"))
{
   static touchclass[32];
   pev(touched, pev_classname, touchclass, 31);
   if(!equali(touchclass, "player")) return FMRES_IGNORED;
               
   if(!is_user_alive(touched) || zp_get_user_zombie(touched)) return FMRES_IGNORED;
                       
   emit_sound(touched, CHAN_VOICE, spickup, 1.0, ATTN_NORM, 0, PITCH_NORM);
   g_hasbazooka[touched] = true;
      
   engfunc(EngFunc_RemoveEntity, ent);
       
   return FMRES_HANDLED;
}


Данная часть кода отвечает за касание игроком энтити то бишь вашей базуки которая валяется на земле
Если вы хотите чтобы никто кроме админа не мог ее подобрать то добавьте проверку на флаг

Код: Выделить всё
if(!is_user_alive(touched) || zp_get_user_zombie(touched) || !(get_user_flags(touched) & BAZOOKA_ACCESS)) return FMRES_IGNORED;


Функция:

Код: Выделить всё
drop_rpg_temp(id);


Дропает энтити на землю

Добавлено спустя 9 минут 31 секунду:
Tyanka писал(а):но после убийства или заражения она все равно дропается на землю. Как это можно исправить?


Код: Выделить всё

public zp_user_infected_post(id, infector)
{
   if(g_hasbazooka[id])
   {
      g_hasbazooka[id] = false;
   }
}
Аватара пользователя
izumi4
 
Сообщения: 82
Зарегистрирован: 03 ноя 2019, 12:25
Благодарил (а): 9 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Bazooka от Vechta

Сообщение Tyanka » 09 мар 2022, 15:50

izumi4 писал(а):
Код: Выделить всё

if(equali(entclass, "rpg_temp"))
{
   static touchclass[32];
   pev(touched, pev_classname, touchclass, 31);
   if(!equali(touchclass, "player")) return FMRES_IGNORED;
               
   if(!is_user_alive(touched) || zp_get_user_zombie(touched)) return FMRES_IGNORED;
                       
   emit_sound(touched, CHAN_VOICE, spickup, 1.0, ATTN_NORM, 0, PITCH_NORM);
   g_hasbazooka[touched] = true;
      
   engfunc(EngFunc_RemoveEntity, ent);
       
   return FMRES_HANDLED;
}


Данная часть кода отвечает за касание игроком энтити то бишь вашей базуки которая валяется на земле
Если вы хотите чтобы никто кроме админа не мог ее подобрать то добавьте проверку на флаг

Код: Выделить всё
if(!is_user_alive(touched) || zp_get_user_zombie(touched) || !(get_user_flags(touched) & BAZOOKA_ACCESS)) return FMRES_IGNORED;


Функция:

Код: Выделить всё
drop_rpg_temp(id);


Дропает энтити на землю

Добавлено спустя 9 минут 31 секунду:
Tyanka писал(а):но после убийства или заражения она все равно дропается на землю. Как это можно исправить?


Код: Выделить всё

public zp_user_infected_post(id, infector)
{
   if(g_hasbazooka[id])
   {
      g_hasbazooka[id] = false;
   }
}

Заменил public zp_user_infected_post(id, infector) на Вашу, удалил функцию дропа и все работает как надо. Благодарю за Вашу отзывчивость)
Аватара пользователя
Tyanka
 
Сообщения: 18
Зарегистрирован: 06 мар 2022, 23:02
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Я ничего не знаю


Вернуться в Вопросы по AMXX и его плагинам

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8