|
hostages и get_user_origin()
|
|
| PAHANCS | Дата: Вторник, 18.11.2008, 17:40:17 | Сообщение # 1 |
 Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Помомогите пожалуста, как найти "origin" hostages, или применить get_user_origin() на hostages. ? В общем я хотел что бы когда стреляют по заложам было больше крови и оставались кровяные следы на земле. На игроков получилось, а на заложей не получается. Пробывал так, но у меня ни чего не получилось : Code
register_event("Damage", " hostages_damage", "b", "2!0")
public hostages_damage() { new iHos = find_ent_by_class(-1, "hostage_entity") while(iHos != 0) { bloods(iHos) }
new jHos = find_ent_by_class(-1, "monster_scientist") while(jHos != 0) { bloods(jHos) } return PLUGIN_HANDLED }
public bloods(id) { static iOrigin[3], blood_small[7] = {190,191,192,193,194,196,197} get_user_origin(id, iOrigin)
set_msg_block(SVC_TEMPENTITY, BLOCK_ONCE)
message_begin(MSG_ALL, SVC_TEMPENTITY) write_byte(TE_BLOODSTREAM) write_coord(iOrigin[0]) write_coord(iOrigin[1]) write_coord(iOrigin[2]+10) write_coord(random_num(-50,50)) write_coord(random_num(-50,50)) write_coord(-10) write_byte(70) write_byte(random_num(50,100)) me ssage_end()
message_begin(MSG_ALL, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) write_coord(iOrigin[0]+random_num(-5,5)) write_coord(iOrigin[1]+random_num(-5,5)) write_coord(iOrigin[2] - 36) write_byte(blood_small[random_num(0, 6)]) message_end() }
А после того как добавил все эти переменные, когда стреляеш по игрокам в консоле пишет ошибку: Code
L 11/18/2008 - 17:02:08: Invalid player id 83 L 11/18/2008 - 17:02:08: [AMXX] Displaying debug trace (plugin "SoBRaNieMod.amxx") L 11/18/2008 - 17:02:08: [AMXX] Run time error 10: native error (native "get_user_origin") L 11/18/2008 - 17:02:08: [AMXX] [0] SoBRaNieMod.sma::bloods (line 507) L 11/18/2008 - 17:02:08: [AMXX] [1] SoBRaNieMod.sma::hostages_damage (line 560)
А на заложей вообще не действует.
PAHANCS
|
| |
|
|
| PomanoB | Дата: Вторник, 18.11.2008, 18:07:42 | Сообщение # 2 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Попробуй использовать FakeMeta Code new orign[3] pev(id,pev_origin,orign)
http://romanov4400.mybrute.com
|
| |
|
|
| PAHANCS | Дата: Вторник, 18.11.2008, 19:12:33 | Сообщение # 3 |
 Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Спасибо за помощь! , попробую. Добавлено (2008-11-18, 6:27 Pm) --------------------------------------------- Попробывал, вышыбает из игры когда стреляеш по игрокам ошибка : Code SZ_GetSpace: overflow without FSB_ALLOWOVERFLOW set on Server Reliable Datagram Может есть ещё варианты ? Добавлено (2008-11-18, 7:12 Pm) --------------------------------------------- Люди смотрящие эту тему помомогите пожалуста, может есть ещё варианты ? ИЗОБРАЖЕНИЕ ОШИБКИ 
PAHANCS
Сообщение отредактировал PAHANCS - Вторник, 18.11.2008, 19:25:07 |
| |
|
|
| DaTa | Дата: Вторник, 18.11.2008, 19:30:55 | Сообщение # 4 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Code new iHos = find_ent_by_class(-1, "hostage_entity") while(iHos != 0) { bloods(iHos) } думаю после 100+го сообщения вылетает
|
| |
|
|
| PAHANCS | Дата: Вторник, 18.11.2008, 20:49:20 | Сообщение # 5 |
 Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Смешно ! , а что в этом коде неправильного ? , может подскажеш что нужно исправить ? это писал : "Генерал-лейтенант, Группа: Cупер-модеры" Code new iHos = find_ent_by_class(-1, "hostage_entity") while(iHos != 0) { bloods(iHos) }
думаю после 100+го сообщения вылетает 
PAHANCS
Сообщение отредактировал PAHANCS - Вторник, 18.11.2008, 20:50:01 |
| |
|
|
| PomanoB | Дата: Вторник, 18.11.2008, 20:55:12 | Сообщение # 6 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Надо делать Bloods именно к тому заложнику которого поранили
http://romanov4400.mybrute.com
|
| |
|
|
| PAHANCS | Дата: Вторник, 18.11.2008, 22:12:56 | Сообщение # 7 |
 Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Quote (PomanoB) Надо делать Bloods именно к тому заложнику которого поранили Я некак не могу додуматься как сделать всё это ? помомоги пожалуста
PAHANCS
|
| |
|
|
| DaTa | Дата: Вторник, 18.11.2008, 23:50:26 | Сообщение # 8 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (PAHANCS) Смешно ! , а что в этом коде неправильного ? , может подскажеш что нужно исправить ? Рекомендую ознакомиться с этой и этой информацией а так же посмотреть плагины других авторов. Code new iHos = find_ent_by_class(-1, "hostage_entity") while(iHos != 0) { bloods(iHos) } Подробно опишу причину зависания, если ты просто не можешь ее увидеть: Code new iHos = find_ent_by_class(-1, "hostage_entity") значит тут iHos принимает значение первого найденного заложника на карте(если их нету - 0) следующий блок кода будет циклически вызываться, пока условие iHos != 0 истинное, но когда же оно станет ложное, что бы цикл мог завершиться все, что тут делается - вызывается bloods с аргументом iHos, поскольку bloods(id) принимает значение переменной, а не ссылку, то аргумент не будет модифицирован внутри этого блока кода, т.е. у нас получился вечный цикл. Ну в итоге у движка заканчивается память на сообщения, которые будут отправлены в конце кадра(?). Возможно ты хотел реализовать это так? Code new iHos while( ( iHos = find_ent_by_class(iHos, "hostage_entity") ) ) { bloods(iHos)
|
| |
|
|
| PAHANCS | Дата: Среда, 19.11.2008, 03:19:15 | Сообщение # 9 |
 Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Да так, Спасибо Большое Тебе За Подробное Разьяснение !!! и всем кто мне помогал я просто мало понимаю в этом.
PAHANCS
|
| |
|
|