|
Помогите пожалуйсто !!
|
|
| Listen | Дата: Понедельник, 11.08.2008, 23:34:07 | Сообщение # 1 |
|
Рядовой
Группа: Пользователи
Сообщений: 13
Статус: Не в сети
| Нужно в определенный момент убрать ВСЕ 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
Статус: Не в сети
| Вместо "classname" надо указать имя класса сущностей, и среди них будут найдены те, на которые натянута искомая модель.
|
| |
|
|
| Listen | Дата: Понедельник, 11.08.2008, 23:47:26 | Сообщение # 3 |
|
Рядовой
Группа: Пользователи
Сообщений: 13
Статус: Не в сети
| напиши пожалуйсто как надо
|
| |
|
|
| slogic | Дата: Вторник, 12.08.2008, 13:42:14 | Сообщение # 4 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| я не знаю какой класс у 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
Статус: Не в сети
| а как найти и удалить из памяти все лежащие на земле бомбы c4 так и не ответили
Сообщение отредактировал Listen - Среда, 13.08.2008, 21:11:52 |
| |
|
|
| DaTa | Дата: Четверг, 14.08.2008, 03:38:22 | Сообщение # 6 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| 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
Статус: Не в сети
| спасибо всем !:)
|
| |
|
|
| VEN | Дата: Вторник, 26.08.2008, 19:17:03 | Сообщение # 8 |
|
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Добавил описание к заголовку темы. В следующий раз постарайся сделать это сам.
|
| |
|
|