AMX MOD X
Четверг, 08.01.2026, 19:02:42



Приветствую Вас Гость | RSS
[ Главная ] [ Помогите пожалуйсто !! - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Помогите пожалуйсто !!
ListenДата: Понедельник, 11.08.2008, 23:34:07 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Не в сети
Нужно в определенный момент убрать ВСЕ entity с моделькой "models/w_backpack.mdl"

Это непашет

Code

public cmdRemove()
{
     new c4 = -1
         
     while ( (c4 = fm_find_ent_by_model(c4, "classname", "models/w_backpack.mdl")))
     {
      fm_kill_entity(c4)
      fm_remove_weaponbox(c4)
      fm_remove_entity(c4)
     }
}

Добавлено (2008-08-11, 11:34 Pm)
---------------------------------------------
Пашет только - недавать игроку давать бомбу :) Убрать модельку пока неполучается :/

Code


RegisterHam(Ham_AddPlayerItem, "player", "Ham_AddPlayerItem_Pre", 0)

public Ham_AddPlayerItem_Pre(id, wEnt)
{
     static wId
     wId = get_pdata_int(wEnt, 43, 4)
        
     if(wId == CSW_C4)
     {
      ham_strip_weapon(id, "weapon_c4")
         
                           // баг, если заходишь на плант - плант мигает, а так значек планта исчезает, ну и х с ним <img rel="usm" src="http://amxmodx.ucoz.ru/Smiles/smile.gif" border="0" align="absmiddle" alt=":)">
      message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("StatusIcon"), _, id)
      write_byte(0)
      write_string("c4")
      message_end()
         
      return HAM_SUPERCEDE
     }

    return HAM_IGNORED
}

stock ham_strip_weapon(id, weapon[])
{
    if(!equal(weapon,"weapon_",7))
     return 0

    new wId = get_weaponid(weapon)
       
    if(!wId)
     return 0

    new wEnt
       
    while( (wEnt = engfunc(EngFunc_FindEntityByString, wEnt, "classname", weapon)) && pev(wEnt, pev_owner) != id )
    {
     /* do nothing */
    }
       
    if(!wEnt)
     return 0

    if(get_user_weapon(id) == wId)
     ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)

    if( !ExecuteHamB(Ham_RemovePlayerItem, id, wEnt) )
     return 0
       
    ExecuteHamB(Ham_Item_Kill, wEnt)

    set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId))
       
    return 1
}


Сообщение отредактировал Listen - Понедельник, 11.08.2008, 23:40:00
 
slogicДата: Понедельник, 11.08.2008, 23:36:14 | Сообщение # 2
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Вместо "classname" надо указать имя класса сущностей, и среди них будут найдены те, на которые натянута искомая модель.
 
ListenДата: Понедельник, 11.08.2008, 23:47:26 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Не в сети
напиши пожалуйсто как надо :)
 
slogicДата: Вторник, 12.08.2008, 13:42:14 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
я не знаю какой класс у c4. поробуй weapon_c4 указать.

ты путаешь fm_find_ent_by_model с EngFunc_FindEntityByString. во второй функции "classname" это ИМЯ свойства (другие имена: targetname, target, globalname - это свойства PEV структуры), тогда как в первом случае ты указываешь ЗНАЧЕНИЕ этого свойства. fm_find_ent_by_model внутри себя использует ту же EngFunc_FindEntityByString. К сожалению она не умеет искать по свойству model (и многим другим свойствам PEV структуры), поэтому приходится знать имя класса объекта.

 
ListenДата: Среда, 13.08.2008, 21:11:40 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Не в сети
а как найти и удалить из памяти все лежащие на земле бомбы c4 так и не ответили :(

Сообщение отредактировал Listen - Среда, 13.08.2008, 21:11:52
 
DaTaДата: Четверг, 14.08.2008, 03:38:22 | Сообщение # 6
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
http://forums.alliedmods.net/showthread.php?t=40164 (CS Bomb Scripting)
http://forums.alliedmods.net/showthread.php?t=28284 (Fakemeta Utilities)
Quote
// How to remove the dropped bomb?
new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers()) {
dllfunc(DLLFunc_Think, weapbox) // will remove weaponbox + weapon_c4 entity pair
// remove blinking red bomb mark on the radar
message_begin(MSG_ALL, get_user_msgid("BombPickup"))
message_end()
}

// How to strip the bomb from a player?
engclient_cmd(id, "weapon_c4")
cs_set_user_bpammo(id, CSW_C4, 0)
engclient_cmd(id, "lastinv")
// remove bomb hud icon
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id)
write_byte(0)
write_string("c4")
message_end()

и скажи спасибо VEN'у :)
 
ListenДата: Суббота, 23.08.2008, 22:14:03 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Не в сети
спасибо всем !:)
 
VENДата: Вторник, 26.08.2008, 19:17:03 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Добавил описание к заголовку темы. В следующий раз постарайся сделать это сам.
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026