AMX MOD X
Четверг, 08.01.2026, 20:20:47



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
hostages и get_user_origin()
PAHANCSДата: Вторник, 18.11.2008, 17:40:17 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Помомогите пожалуста, как найти "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
Репутация: 70
Статус: Не в сети
Попробуй использовать FakeMeta
Code

new orign[3]
pev(id,pev_origin,orign)


http://romanov4400.mybrute.com
 
PAHANCSДата: Вторник, 18.11.2008, 19:12:33 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Спасибо за помощь! , попробую.

Добавлено (2008-11-18, 6:27 Pm)
---------------------------------------------
Попробывал, вышыбает из игры когда стреляеш по игрокам

ошибка :

Code

SZ_GetSpace: overflow without FSB_ALLOWOVERFLOW set on Server Reliable Datagram

Может есть ещё варианты ?

Добавлено (2008-11-18, 7:12 Pm)
---------------------------------------------
Люди смотрящие эту тему помомогите пожалуста, может есть ещё варианты ?

ИЗОБРАЖЕНИЕ ОШИБКИ

Прикрепления: 0341863.jpg (11.4 Kb)


PAHANCS

Сообщение отредактировал PAHANCS - Вторник, 18.11.2008, 19:25:07
 
DaTaДата: Вторник, 18.11.2008, 19:30:55 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Code
new iHos = find_ent_by_class(-1, "hostage_entity")
while(iHos != 0)
{
bloods(iHos)
}

думаю после 100+го сообщения вылетает :D
 
PAHANCSДата: Вторник, 18.11.2008, 20:49:20 | Сообщение # 5
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Смешно ! , а что в этом коде неправильного ? , может подскажеш что нужно исправить ?

это писал : "Генерал-лейтенант, Группа: Cупер-модеры"

Code

new iHos = find_ent_by_class(-1, "hostage_entity")   
while(iHos != 0)   
{   
bloods(iHos)   
}

думаю после 100+го сообщения вылетает :D


PAHANCS

Сообщение отредактировал PAHANCS - Вторник, 18.11.2008, 20:50:01
 
PomanoBДата: Вторник, 18.11.2008, 20:55:12 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Надо делать Bloods именно к тому заложнику которого поранили

http://romanov4400.mybrute.com
 
PAHANCSДата: Вторник, 18.11.2008, 22:12:56 | Сообщение # 7
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Quote (PomanoB)
Надо делать Bloods именно к тому заложнику которого поранили

Я некак не могу додуматься как сделать всё это ? помомоги пожалуста


PAHANCS
 
DaTaДата: Вторник, 18.11.2008, 23:50:26 | Сообщение # 8
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
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)
Code
while(iHos != 0)

следующий блок кода будет циклически вызываться, пока условие iHos != 0 истинное, но когда же оно станет ложное, что бы цикл мог завершиться
Code
{
bloods(iHos)
}

все, что тут делается - вызывается 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
Репутация: 4
Статус: Не в сети
Да так, Спасибо Большое Тебе За Подробное Разьяснение !!! и всем кто мне помогал :D

я просто мало понимаю в этом.


PAHANCS
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026