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

Удаление конкретного энтити  [Решено]

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

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

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

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

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

Удаление конкретного энтити

Сообщение RSO_ » 07 янв 2021, 02:38

здравствуйте столкнулся с проблемой как удалит определённый энтити на карте ниже пример не совсем понимая как работает плагин. плагин сравнивает названия карты, ждёт события FM_Spawn, чото удаляет с функцией func_wall. как мне удалить свой обект
Последний раз редактировалось RSO_ 09 янв 2021, 06:52, всего редактировалось 1 раз.
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного энтити  [Решено]

Сообщение RSO_ » 07 янв 2021, 08:34

Код: Выделить всё
Re:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN_NAME "rLJRoadFenceRemover"
#define PLUGIN_VERSION "1.0.2"
#define PLUGIN_AUTHOR "raggy"

#pragma semicolon 1

new g_iFMfwd;

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY);
}

public plugin_precache()
{
new szMapName[13];
get_mapname(szMapName, 12);

if ( equali(szMapName, "de_map") )
g_iFMfwd = register_forward(FM_Spawn, "fwdEntSpawnPre");
}

public fwdEntSpawnPre(entity)
{
if ( !pev_valid(entity) )
return FMRES_IGNORED;

new szModel[4];
pev(entity, pev_model, szModel, 3);

if ( !szModel[0] || !equal(szModel, "*21") )
return FMRES_IGNORED;

new szClassName[10];
pev(entity, pev_classname, szClassName, 9);

if ( !equal(szClassName, "func_wall") )
return FMRES_IGNORED;

engfunc(EngFunc_RemoveEntity, entity);
unregister_forward(FM_Spawn, g_iFMfwd, 0);

return FMRES_SUPERCEDE;


плагин рабочий. обратите внимания
if ( !equal(szClassName, "func_wall") ) - ClassName
if ( !szModel[0] || !equal(szModel, "*21") ) - Model
pev(entity, pev_model, szModel, 3) - длина массива 3 символа
if ( equali(szMapName, "de_map") ) - имя карты
Последний раз редактировалось RSO_ 14 янв 2021, 08:54, всего редактировалось 2 раз(а).
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного браша

Сообщение trojanranson » 08 янв 2021, 13:41

Удаление браша это - удалить часть стены чтоль? Ну как бы карта вроде состоит из брашей наложенная текстурами. Мне аж интересно стало без VHE такое реально:D

Добавлено спустя 5 минут 7 секунд:
Вот если есть на карте энтити "func_wall" вот ее может и можно удалить(вроде).

Добавлено спустя 30 секунд:
а если это просто браш то ничего ты не сделаеш)

Добавлено спустя 18 секунд:
Хоть бы написал что удалить и с какой карты =)
amxx просто хобби для себя.
Аватара пользователя
trojanranson
 
Сообщения: 102
Зарегистрирован: 07 мар 2020, 23:15
Откуда: г.Херосн
Благодарил (а): 33 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Пиво с рыбкой

Re: Удаление конкретного энтити

Сообщение RSO_ » 08 янв 2021, 14:13

да выше плагин рабочий. только заменить de_map на awp_rooftops и запустить карту но я не до конца понял как плагин работает

Добавлено спустя 4 минуты 19 секунд:
ну у меня есть исходник карты ну итд итп. ок а как конкретную ентитю порешать

Добавлено спустя 8 минут 23 секунды:
как то лет 100 назад видел плагин. наводишь прицелом на дверь, ящик, на ентитю бабах и нет его магия :crazy:

Добавлено спустя 3 минуты 49 секунд:
я так полагаю это длинная энтитя if ( !szModel[0] || !equal(szModel, "*21") )
return FMRES_IGNORED;
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного энтити

Сообщение RSO_ » 10 янв 2021, 11:29

подскажите что тут делается ?
Код: Выделить всё

new szModel
[4];
pev(entity, pev_model, szModel, 3);

if ( !szModel[0] || !equal(szModel, "*21") )
return FMRES_IGNORED;
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного энтити

Сообщение trojanranson » 10 янв 2021, 13:15

Плагин если работает, то должен при запуске карты удалить,
Код: Выделить всё
new szModel[4];
pev(entity, pev_model, szModel, 3);

if ( !szModel[0] || !equal(szModel, "*21") )
return FMRES_IGNORED;

это проверка на модельку
удалять он вроде будет энтити с свойством "func_wall" может и это проверяет (szModel, "*21")

Добавлено спустя 4 минуты 32 секунды:
RSO_ писал(а):подскажите что тут делается ?
Код: Выделить всё

new szModel
[4];
pev(entity, pev_model, szModel, 3);

if ( !szModel[0] || !equal(szModel, "*21") )
return FMRES_IGNORED;

Ну я так и не понял на какой карте и что именно удалить надо?

Добавлено спустя 6 минут 16 секунд:
Короче при запуске карты будет удалять func_wall модельку. Если я не ошибаюсь. Двери или ящики удалять не будет, если они не func_wall и не имеют модель.
amxx просто хобби для себя.
Аватара пользователя
trojanranson
 
Сообщения: 102
Зарегистрирован: 07 мар 2020, 23:15
Откуда: г.Херосн
Благодарил (а): 33 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Пиво с рыбкой

Re: Удаление конкретного энтити

Сообщение RSO_ » 10 янв 2021, 14:21

вот не совсем понятно плагин на карте awp_rooftops удаляет забор. *21 это некий номер func_wall
то есть удаляет func_wall 21 номера

Добавлено спустя 3 минуты 24 секунды:
я создал в хамером новую карту создал func_wall но удалить плагином не могу
Последний раз редактировалось RSO_ 10 янв 2021, 15:15, всего редактировалось 1 раз.
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного энтити

Сообщение trojanranson » 10 янв 2021, 15:03

так ты создал энтити func_wall (с текстурой) а не модель с свойством func_wall если я правельно понял, как бы задал стене свойтсво это.

Добавлено спустя 1 минуту 11 секунд:
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

#define PLUGIN_NAME "rLJRoadFenceRemover"
#define PLUGIN_VERSION "1.0.2"
#define PLUGIN_AUTHOR "raggy"

#pragma semicolon 1

new g_iFMfwd;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
    register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY);
}

public plugin_precache()
{
    new szMapName[13];
    get_mapname(szMapName, 12);
    
    if 
( equali(szMapName, "de_map") )
        g_iFMfwd = register_forward(FM_Spawn, "fwdEntSpawnPre");
}

public fwdEntSpawnPre(entity)
{
    if ( !pev_valid(entity) )
        return FMRES_IGNORED;
    
    
//new szModel[4];
    //pev(entity, pev_model, szModel, 3);
    
    
//if ( !szModel[0] || !equal(szModel, "*21") )
        //return FMRES_IGNORED;
    
    new szClassName
[10];
    pev(entity, pev_classname, szClassName, 9);
    
    if 
( !equal(szClassName, "func_wall") )
        return FMRES_IGNORED;
    
    engfunc
(EngFunc_RemoveEntity, entity);
    unregister_forward(FM_Spawn, g_iFMfwd, 0);
    
    return FMRES_SUPERCEDE
;

Попробуй так без проверки на модель.

Добавлено спустя 2 минуты 47 секунд:
Если что попробуй вот это Вы должны зарегистрироваться, чтобы видеть ссылки. ... 7?p=657047

Добавлено спустя 3 минуты 35 секунд:
По описанию подходит: как ты писал удаление при наведение.
amxx просто хобби для себя.
Аватара пользователя
trojanranson
 
Сообщения: 102
Зарегистрирован: 07 мар 2020, 23:15
Откуда: г.Херосн
Благодарил (а): 33 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Пиво с рыбкой

Re: Удаление конкретного энтити

Сообщение RSO_ » 10 янв 2021, 15:41

так ты создал энтити func_wall (с текстурой) а не модель с свойством func_wall если я правельно понял, как бы задал стене свойтсво это.

правой кнопкой мыши :-) в хвмере можно любой браш превратить в энтити
Вы должны зарегистрироваться, чтобы видеть ссылки. ... #func_wall

Если что попробуй вот это Вы должны зарегистрироваться, чтобы видеть ссылки. ... 7?p=657047

он будет работать скорее всего

Добавлено спустя 12 минут 53 секунды:
возможно дело не в плагине а в компиляторе карт
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Удаление конкретного энтити

Сообщение trojanranson » 10 янв 2021, 17:58

Попробуй так удалить
Код: Выделить всё
new ent
while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "func_wall")))
    engfunc(EngFunc_RemoveEntity, ent

Удалить энтити по класнейму(короче говоря удалить по названию)

Добавлено спустя 25 минут 6 секунд:
RSO_ писал(а):
так ты создал энтити func_wall (с текстурой) а не модель с свойством func_wall если я правельно понял, как бы задал стене свойтсво это.

правой кнопкой мыши :-) в хвмере можно любой браш превратить в энтити
Вы должны зарегистрироваться, чтобы видеть ссылки. ... #func_wall

Если что попробуй вот это Вы должны зарегистрироваться, чтобы видеть ссылки. ... 7?p=657047

он будет работать скорее всего

Добавлено спустя 12 минут 53 секунды:
возможно дело не в плагине а в компиляторе карт

Скинь карту .bsp в лс и скажи где там func_wall я попробую удалить.
Чет новенькое будет для меня :D
amxx просто хобби для себя.
Аватара пользователя
trojanranson
 
Сообщения: 102
Зарегистрирован: 07 мар 2020, 23:15
Откуда: г.Херосн
Благодарил (а): 33 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Пиво с рыбкой

След.

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

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

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