Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Взрыв гранаты и предмет
tolik1231 Дата: Вторник, 08.11.2016, 08:06:20 | Сообщение # 1
Сообщений: 71
Репутация: -1 [ +/- ]
Можно ли как-то перехватить толчек предмета гранатой? в идеале нужно ограничить гранате толчек предмета когда она взрывается.
 
tonline_kms65 Дата: Воскресенье, 13.11.2016, 02:09:44 | Сообщение # 2
Сообщений: 215
Репутация: 3 [ +/- ]
Я бы делал так:
При создании ENT

Код

//-----------------------------------------------------
public OnEntityCreated(entity, const String:classname[]) {
if(StrEqual(classname, "weapon_hegrenade")) {
SDKHook(entity, SDKHook_StartTouchPost, Touch);   // возможно не SDKHook_StartTouchPost, я наскоро пишу.
  }
//------------------------------------------------------
Touch(entity, other) {            // entity - сама граната |  other - что то, с чем произошло взаимодействие гранаты.       
char classname[32];
GetEdictClassname(entity, classname, sizeof(classname));
if (StrEqual(classname, "weapon_hegrenade", true)){
int id_HE = StringToInt(classname);                    // строковая id гранаты в число (лишнее, но уже написал.)
if (other != игрок в радиусе взрыва){
SetEntProp(id_HE , Prop_Data, "m_iMagnitude", 150);       // сила взрыва
SetEntProp(id_HE , Prop_Data, "m_iRadiusOverride", 100);  // радиус взрыва
Можно задать жизнь гранате, появится возможность взрывать гранаты стреляя по ним.
типа такого:
SetEntProp(id_HE , Prop_Data, "m_iMaxHealth", iHealch);
SetEntProp(id_HE , Prop_Data, "m_iHealth", iHealch);
DispatchKeyValue (id_HE , "ExplodeRadius", "16");
DispatchKeyValue (id_HE , "ExplodeDamage", "10");
SetEntProp(id_HE , Prop_Data, "m_takedamage", 2);
и т.д. Фантазируй.

} else if (if (other == игрок в радиусе взрыва){
игрок улетел на... 3 буквы.
...........................
.......................
.................
............
......
  }
}
//-----------------------------------------------------


Я прошу прощения. Здесь ошибка и все молчат. Определение радиуса взрыва делается в цикле.


Сообщение отредактировал tonline_kms65 - Пятница, 06.01.2017, 02:30:39
 
  • Страница 1 из 1
  • 1
Поиск: